Supprimer une chaîne de caractère

Eléphant du PHP | 287 Messages

20 mars 2009, 12:54

Bonjour
Sur mon site les internautes s'inscrivent et peuvent faireun lien avec leur site web.
Dans mon formulaire je leur précise dene pas mettre le "http://", mais certains le font quand même, et bien sûr le lie ne fonctionne pas.
Est-ce qu'il y a un moyen soit de supprimer le "http" lors de l'envoi dans la base, où au moment de la lecture de la page mettre un "if".
J'ai fait ça :
if(substr($site_web,0,7)==substr($site_web,7,7))
$site_web = substr($site_web,7); 
if( !empty($gd_photo['site_web']) ){
echo 'Visitez le site de l\'auteur : <a class="web_exter" href="http://' . $gd_photo['site_web'] . '" target="_blank">'. $gd_photo['site_web'] .'</a>';
7 puisque j'ai 7 caractères à supprimer.
Problème voilà mon lien : http://http//www.monsite.com
Merci de votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 mars 2009, 13:13

C'est normal... si ta variable $site_web contient un "http://" en double, tu supprimes le premier et tu stockes le résultat dans ta variable $site_web... sauf qu'ensuite tu utilises dans ton code une autre variable ($gd_photo['site_web']) qui n'a elle pas été modifiée, donc forcément.....

A noter également l'existence des fonctions strstr(), ereg() ou preg_match() qui te permettent d'identifier si une chaine est contenue dans une autre... bien que ce que tu as fait fonctionne aussi :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 287 Messages

20 mars 2009, 14:45

Comme ça ça marche :
$gd_photo = str_replace ("http://","",$gd_photo);