[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление html тега из базы
Vitaliy21
Здравствуйте, есть такой php код который удаляет все html ссылки из определённой таблицы:

<?php
$db = mysql_connect('host', 'user', 'password');
mysql_select_db('database');
$query = "SELECT * FROM `table` WHERE `link` LIKE '%\<a %'";
$res = mysql_query($query);
while($row = mysql_fetch_array($res)){
$newlink=preg_replace("'<[\/\!]*a[^<>]*?>'si", '', $row['link']);
mysql_query("UPDATE `table` SET `link` = '".$newlink."' WHERE `link` = '".$row['link']."';");
}
mysql_close($db);
?>


Подскажите, как сделать чтоб данный код удалял ссылки только определённого домена, а на все?

P.S. Одни люди подсказали что можно использовать preg_replace_callback и в нем проверять адрес, может кто пожалуйста привести пример как в данном случае можно реализовать? А то в программировании плохо разбираюсь...
Tapak
А не лучше их не записывать в базу?)Или определенного домена.
Vitaliy21
Можно подробней?
Tapak
Найдите участок кода где у Вас заносятся данные в базу типа

mysql_query("INSERT INTO `table` SET `link` = '".$newlink."' .......);

и сделать как-то так перед этим


$a = 'domen.ru';
if(strpos($newlink, $a))
$newlink= str_replace($a, '' , $newlink);

Вообще гиблая идея если вы не разбираетесь
Vitaliy21
Попробовал как Вы сказали:
<?php  
$db = mysql_connect('host', 'user', 'password');
mysql_select_db('database');
$query = "SELECT * FROM `table` WHERE `link` LIKE '%\<a %'";
$res = mysql_query($query);
while($row = mysql_fetch_array($res)){
$newlink=preg_replace("'<[\/\!]*a[^<>]*?>'si", '', $row['link']);
$a = 'domen.ru';
if(strpos($newlink, $a))
$newlink= str_replace($a, '' , $newlink);
mysql_query("UPDATE `table` SET `link` = '".$newlink."' WHERE `link` = '".$row['link']."';");
}
mysql_close($db);
?>


В $a = 'domen.ru'; указал домен, ссылки которого подлежат удалению. Но почему-то не сработало, скрипт всё равно удалил ссылки которые только были...
Игорь_Vasinsky
Цитата
. Но почему-то не сработало, скрипт всё равно удалил ссылки которые только были...
Цитата
Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.