dize manipülasyon preg_replace veya str_replace

0 Cevap php

Ben başka bir kelime ile bir sözcüğü değiştirmek gerekiyor. Ancak

$var= str_replace($linklabel[$k], $linklabelmod[$k], $var);

istenilen sonucu vermiyor. Örneğin ben bir dize var

$var="the theory of them thesis"; 
$linklabel[1]="the"; 
$linklabelmod[1]="hhh";

What i need is, i just want to replace the word "the". But since "the" is repeated in "theory" "thesis" and "them", all those starting three letters are also getting replaced. Then output becomes $var="hhh hhhory of hhhm hhhsis";//wrong But i need the output $var="hhh theory of them thesis";//write I am bad at explaining a question, plz excuse me...

Şimdiden teşekkürler ....


I (paxdiablo) OP'ın yorumlardan kimden ne toplayabilir, bu değişiklikler (hala çalışmak için değil iddia) Aşağıdaki kodu:

foreach($xpath->query('//a') as $element) {
    $linklabel[] = $element->textContent;
    $link[] = $element->getAttribute("href");
    $i=$i+1;
}
for($k=0;$k<$i;$k++) {
    $linklabelmod[$k] = str_replace($linklabel[$k], $linklabel[$k]."[$k]", $linklabel[$k]);
    $var = preg_replace ('/\b'.preg_quote($linklabel[$k]).'\b/', $linklabelmod[$k], $var);
}
print $var; //printing web page

0 Cevap