Jak użyć własnej funkcji wewnątrz funkcji preg_replace - dodatkowy modyfikator
Aby użyć własnego modyfikatora w funkcji preg_perlace należy do wzorca dodać modyfikator e,
przykłąd pokazuje na przykładzie skracania długich adresów url jak tego dokonać w praktyce.
Przykład użycia:
$text='jakis tekst i bardzo długi adres url <a href"http://xyzzzzzzzzzzzzzzzzz.pl">http://xyzzzzzzzzzzzzzzzzz.pl</a>';
echo tnij_url($text);
//zwróci nam
jakis tekst i bardzo długi adres url http://xyzzz...
W funkcji tnij_url, jest pokazane jak używa się innej funkcji w celu modyfikacji wyszukanego przez wyrażenie regularne pasującego wzorca.
Listing
function truncateUrl($url,$start=14,$limit=14){
if(strlen($url)>$limit){
$url = strip_tags($url,'<a>');
$poczatek = substr($url,0,$start);
$newUrl = $poczatek.'...';
return $newUrl;
}else{
return $url;
}
}
function tnij_url($text){
$wzorzec = "/<a[^>]*>(.*?)<\/a>/e";
$zamiana = "'<a href=\"http://\\1\">'.truncateUrl('\\1').'</a>'";
$nowyText = preg_replace($wzorzec, $zamiana, $text);
return $nowyText;
}
if(strlen($url)>$limit){
$url = strip_tags($url,'<a>');
$poczatek = substr($url,0,$start);
$newUrl = $poczatek.'...';
return $newUrl;
}else{
return $url;
}
}
function tnij_url($text){
$wzorzec = "/<a[^>]*>(.*?)<\/a>/e";
$zamiana = "'<a href=\"http://\\1\">'.truncateUrl('\\1').'</a>'";
$nowyText = preg_replace($wzorzec, $zamiana, $text);
return $nowyText;
}
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno