Проверка за линк

ExpressYourself

Registered
Как мога да проверя в даден string дали има линк? и вместо линка да добавя ЛИНК и href към него :)
 
така ли имаш в предвид :

Код:
<?
$str="http://abv.bg";

$preg=preg_match('/^www|http:\/\//', $str);
if ($preg)
{
if (!preg_match('/^http:\/\//', $str))
{
$add="http://";
}
else
{
$add="";
}
$rep=str_replace("$str", '<a href="'.$add.''.$str.'" target="_blank">ЛИНК</a>', $str);
echo $rep;
}
else
{
echo $str;
}
?>
 
kulov каза:
така ли имаш в предвид :

Код:
<?
$str="http://abv.bg";

$preg=preg_match('/^www|http:\/\//', $str);
if ($preg)
{
if (!preg_match('/^http:\/\//', $str))
{
$add="http://";
}
else
{
$add="";
}
$rep=str_replace("$str", '<a href="'.$add.''.$str.'" target="_blank">ЛИНК</a>', $str);
echo $rep;
}
else
{
echo $str;
}
?>

Да такова искам, но секунда искам да пробвам дали ще може да го свържа с кода :)

П.П еи го проблема когато го добавя проверява в целия стринг, а аз искам да проверява дали в стринга съдържа линк и ако съдържа да извежда текста от стринга и вместо линка да извежда ЛИНК
 
Код:
<?php
$text = "tuka ima http://abv.bg tuka nema http://web-tourist.net/forum , a puk tuka ima mnogo dulug http://site.com/b?g=X98uJHIy87%20l";
$text = preg_replace("/(http:\/\/[^\s]+)/i","<a href=\"$1\">$1</a>",$text);
echo $text;
?>
Така мисля, че ще работи.
@kulov много дълъг код за нищо. Поне можеше да го съкратиш така:
Код:
<?php
$str="http://abv.bg";
if (preg_match('/^www|http:\/\//', $str))
{
if (!preg_match('/^http:\/\//', $str)) $add="http://";
$str=str_replace($str, '<a href="'.$add.$str.'" target="_blank">ЛИНК</a>', $str);
}
echo $str;
?>
Абсолютно същото прави като този ти даде, даже мога още да го съкратя. Променливите не се слагат в кавички ако са сами и няма текст, които ги обграждат. Също не се слагат:
$add.''.$str
защото просто не са нужни. Условията са пък още по ненужни. За цялото това нещо можеше да използваш preg_replace.
 

Back
Горе