2010-02-26 5 views

Répondre

5

Vous pouvez utiliser les expressions régulières suivantes pour correspondre à votre aiguille partielle ainsi que le reste du mot autour de lui:

$regex = '\b\w*' . $needle . '\w*\b'; 

passent alors que pour preg_replace:

$newtext = preg_replace($regex, '<a href="http://www.something.com/$0">$0</a>', $oldtext); 
+0

Vous devez ajouter le groupe de capture, puis montrer comment l'utiliser pour créer le lien;) – Franz

+0

N'a pas réellement besoin d'un groupe de capture - la correspondance entière est ce que vous souhaitez utiliser de toute façon. – Amber

+0

Ouais, eh bien, vous auriez encore besoin d'un code de remplacement, que vous avez ajouté maintenant;) – Franz

0
$str = "this is going to be really great"; 
$s = explode(" ", $str); 
foreach ($s as $k=>$v) 
{ 
    if (strpos($v,"goi") !== FALSE) 
    { 
     $s[$k]= '<a href="http://wwww.something.com/' . $v . '">' . $v . "</a>"; 
    } 
} 
print_r(implode(" ", $s)); 
0
$str = preg_replace('/(\bgoi\w*)/', 
      '<a href="http://www.something.com/$1">$1</a>', $str) 

\b est pour limite de mot - sans cela, il va correspondre going

Questions connexes