Я работал над сайтом с кодом купона и смог изменить некоторые настройки, но этот, кажется, беспокоит меня ...
<?php $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$text = $item->description;
if(preg_match($reg_exUrl, $text, $url)) {
$linktext = substr($url[0], 0, 50);
$text1 = preg_replace($reg_exUrl, '<a href="'.$url[0].'" rel="nofollow"><b>'.$linktext.'...</b></a>', $text);
}
else
{
$text1= $text;
}
$modeddescription = $text ; //string retrieved from SQL ?>
<?php echo ( !empty( $item->description ) ? '<span>' . nl2br($text1) . '</span>' : t( 'theme_no_description', 'No description.' ) ); ?>
Приведенный выше код выводит описание кода купона из SQLи он должен был обнаружить ссылки из текстовых данных SQL.Он обнаруживает только первую ссылку, и если в этом тексте 10 ссылок, все 10 ссылок будут одинаковыми ... например, если текст похож на
http://google.com and http://facebook.com are big companies.
a good example for shopping site is http://amazon.com
itвыдаст
http://google.com and http://google.com are big companies.
a good example for shopping site is http://google.com
Я надеюсь, что кто-то там поможет мне это исправить.Я могу использовать другой код и определять все ссылки по отдельности, но я действительно не хочу показывать ссылку длиной 500 символов на странице.хотите отображать только первые 50 букв слова как заголовок ссылки.
этот код может обнаруживать все отдельные ссылки, но как добавить в нем межстрочный интервал и ограничение в 50 символов?
$string = preg_replace( "~[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]~","<a href=\"\\0\">\\0</a>", $text);
echo ".$string.";?>