note 52074 added to function.preg-match-all
| From: | php-general at lists dot php dot net | Date: | Wed, 20 Apr 2005 15:35:41 +0000 |
| Subject: | note 52074 added to function.preg-match-all | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-88274@lists.php.net to get a copy of this message | ||
A little correction to my function below:
<?php
function urlhighlight($str) {
preg_match_all("/http:\/\/?[^ ][^<]+/i",$str,$lnk);
$size = sizeof($lnk[0]);
$i = 0;
while ($i < $size) {
$len = strlen($lnk[0][$i]);
if($len > 30) {
$lnk_txt = substr($lnk[0][$i],0,30)."...";
} else {
$lnk_txt = $lnk[0][$i];
}
$ahref = $lnk[0][$i];
$str = str_replace($ahref,"<a href='$ahref'
target='_blank'>$lnk_txt</a>",$str);
$i++;
}
return $str;
}
?>
The error is in the preg_match_all("/http:\/\/?[^
][^<]+/i",$str,$lnk); the [^<] was missing.
----
Manual Page -- http://www.php.net/manual/en/function.preg-match-all.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+52074
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+52074&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+52074&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+52074&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+52074&report=yes&reason=useless
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+52074&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+52074&report=yes
Search -- http://master.php.net/manage/user-notes.php