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
Configuration: Windows XP
Firefox 3.5.3

1 réponse

  1. 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