web-dev-qa-db-fra.com

php remplace la première occurrence de string de la 0ème position

Je veux rechercher et remplacer le premier mot par un autre en php comme suit:

$str="nothing inside";

Remplacez 'rien' par 'quelque chose' par la recherche et remplacez sans utiliser substr

le résultat devrait être: 'quelque chose à l'intérieur'

19
Ben

Utilisez preg_replace() avec une limite de 1:

preg_replace('/nothing/', 'something', $str, 1);

Remplacez l'expression régulière /nothing/ par la chaîne que vous souhaitez rechercher. Comme les expressions régulières sont toujours évaluées de gauche à droite, cela correspondra toujours à la première instance.

43
Milind Ganjoo

sur la page de manuel de str_replace (http://php.net/manual/fr/function.str-replace.php), vous pouvez trouver cette fonction 

function str_replace_once($str_pattern, $str_replacement, $string){

    if (strpos($string, $str_pattern) !== false){
        $occurrence = strpos($string, $str_pattern);
        return substr_replace($string, $str_replacement, strpos($string, $str_pattern), strlen($str_pattern));
    }

    return $string;
}

exemple d'utilisation: http://codepad.org/JqUspMPx

13
mishu

essaye ça

preg_replace('/^[a-zA-Z]\s/', 'ReplacementWord ', $string)

ce qu'il fait est de sélectionner n'importe quoi du début jusqu'au premier espace et de le remplacer par replcementWord. remarquez un espace après replcementWord. c'est parce que nous avons ajouté \s dans la chaîne de recherche

3
Uday Sawant
preg_replace('/nothing/', 'something', $str, 1);
0
trex005