remplacement de la première occurrence avec ereg_replace()
j'ai un petit fichier de code avec deux elements à remplacer qui portent le même nom : ici popen une fonction php ->popen
chaine : popen ici
fichier texte que j'envoie à mon analyseur syntaxique
Code:
1 2 3 4 5 6 7 8
|
<title> bonjours </title>
function test_ipConfig()
{
$fp = popen('ipconfig /all','r');// resultat demandé popen1
echo nl2br(fread($fp,5000));
popen'ipconfig /all','r'); resultat demandé popen 2
} |
Le code de l'expression prend toutes les expression popen et les remplace par popen1 . Ce que je voudrais moi c'est récupérer la premiére , la deuxiéme occurence de l'expression et ensuite la remplacer précisement sans tout changer dans le code source.
Est-ce possible avec la fonction ou ?
voici le code de la petite expression régulière qui recherche ma fonction popen et la met ici en gras.
Code:
1 2 3
|
$page =ereg_replace("popen","\\<b> popen1 </b>",$page);// ici il change toutes les occurrences de popen |
merci j'ai apporté une petite amélioration pour tenir compte de la position
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
function formatpos($match, $str,$pos)
{
$offset = -1;
$i = 1;
echo 'position : '.$pos;
while(($offset = strpos($str, $match, $offset + 1)) !== false)
{
if($i==$pos)
{
//$i++;
$str = substr_replace($str,
$match.$i++,
$offset,
strlen($match));
}
else
{
/*$str = substr_replace($str,
$match.$i++,
$offset,
strlen($match));*/
$i++;
}
}
return $str;
} |
Code:
1 2 3
|
$pos =3;// 3 eme occurence de la chaine function
echo formatpos("function", $page,$pos); |