Vitaliy21
17.11.2013 - 14:36
Здравствуйте, есть такой
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 и в нем проверять адрес, может кто пожалуйста привести пример как в данном случае можно реализовать? А то в программировании плохо разбираюсь...
А не лучше их не записывать в базу?)Или определенного домена.
Найдите участок кода где у Вас заносятся данные в базу типа
mysql_query("INSERT INTO `table` SET `link` = '".$newlink."' .......);
и сделать как-то так перед этим
$a = 'domen.ru';
if(strpos($newlink, $a))
$newlink= str_replace($a, '' , $newlink);
Вообще гиблая идея если вы не разбираетесь
Vitaliy21
18.11.2013 - 00:29
Попробовал как Вы сказали:
<?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
18.11.2013 - 09:43
Цитата |
. Но почему-то не сработало, скрипт всё равно удалил ссылки которые только были... |
Цитата |
Эта функция может возвращать как 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