Php preg_replace ile sadece bir kez dize değiştirin

0 Cevap regex

Ben işlevi bir kez değiştirmeniz dize ihtiyacı ve preg_match benim en iyi bahis olabilir inanıyoruz.

Ben bu kullanıyordum, ama nedeniyle kullanım dynamicness için, bazen bu fonksiyon garip davranır:

function str_replace_once($remove , $replace , $string)
{
    $pos = strpos($string, $remove);
    if ($pos === false) 
    {
    // Nothing found
    return $string;
    }
    return substr_replace($string, $replace, $pos, strlen($remove));
} 

Şimdi bu yaklaşımı alıyorum ama aşağıda listelenen hata koştu var .... Ben bu fonksiyonu ile html dizeleri her türlü ayrıştırma yaşıyorum, bu yüzden hataya neden bir değer Thats vermek için onun zor. Şu an itibariyle aşağıda benim kullanımları% 80'i bu hatayı gösteriyor.

function str_replace_once($remove , $replace , $string)
{
    $remove = str_replace('/','\/',$remove);
    $return = preg_replace("/$remove/", $replace, $string, 1);  
    return $return;
}  

hatası:

Uyarı: preg_replace () [function.preg değiştirme]: Derleme başarısız oldu: yinelenecek şey 0 ofset

Herkes bir çözüm rafine miyim?

0 Cevap