Supprimer/remplacé une partie de chainePHP

amigos -  
Defouille Messages postés 404 Statut Membre -
Bonjour,
j'ai un exercice PHP a faire et je ne sais pas comment
Merci bien pour m'aider.


une variable PHP {$url}
$url peux etre en plusieur forme comme

$url = "http://xxxxxx.fr/sdfdsf/dsfdsfdsf/dsfsdfsdf- dsfsdf.html?u=dsfdsf"
$url = "http://xxxxsdqsdsqdx.com/sdfdsf/dsfdsfdsf/dsfsdfsdf- dsfsdf.html?u=dsfdsf"
$url = "https://www.xxxx99sdsqdx.net/sdfdsf/dsfdsfdsf/dsfsdfsdf- dsfsdf.html?u=dsfdsf"

1 parti
je veux supprimer
http://xxxxxx.fr/
http://xxxxsdqsdsqdx.com/
http://www.xxxx99sdsqdx.net/

2 parti
remplacé "/" par "+"
le résultat soit
sdfdsf+dsfdsfdsf+dsfsdfsdf- dsfsdf.html?u=dsfdsf
sdfdsf+dsfdsfdsf+dsfsdfsdf- dsfsdf.html?u=dsfdsf
sdfdsf+dsfdsfdsf+dsfsdfsdf- dsfsdf.html?u=dsfdsf

3 parti
je ne veux pas qu'il existe "&u=" ou "?u=" dans les resultats
donc si "?u=" ou "&u=" existe, je veux quelle sera remplacé par "?search=" ou "&search="

la résultat finale est
sdfdsf+dsfdsfdsf+dsfsdfsdf- dsfsdf.html?search=dsfdsf
sdfdsf+dsfdsfdsf+dsfsdfsdf- dsfsdf.html?search=dsfdsf
sdfdsf+dsfdsfdsf+dsfsdfsdf- dsfsdf.html?search=dsfdsf

Merci d'avance
A voir également:

1 réponse

Defouille Messages postés 404 Statut Membre 54
 
Bonjour,

Tu peux résoudre ton problème avec la fonction "preg_replace" qui te permet d'utiliser des expressions régulières pour des transformation sur les chaines.

https://www.php.net/manual/fr/function.preg-replace.php

Par exemple :
1 :
$nouvel_url = preg_replace("^/http:\/\/.*[.]fr\//", "", $url);
$nouvel_url = preg_replace("^/http:\/\/.*[.]com\//", "", $nouvel_url);
$nouvel_url = preg_replace("^/http:\/\/.*[.]net\//", "", $nouvel_url);

Ce qui t'enlevera http://xxxxxx.fr/ com ou net de ta chaine.

2 :
$nouvel_url = preg_replace("/\//", "+", $url);
Ce qui remplacera les "/" par des "+".
Mais tu peux aussi le faire avec str_replace :
$nouvel_url = str_replace("/", "+", $url);


3 :
$nouvel_url = preg_replace("/[&]u=/", "&search=", $url);
$nouvel_url = preg_replace("/[?]u=/", "?search=", $nouvel_url);
Ce qui te remplacera tes "&u=" en "&search=", et tes "?u=" en "&search=".



Voila en espérant que ça t'ai aidé ^^
0