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'
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.
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
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
preg_replace('/nothing/', 'something', $str, 1);