Bonjours les Grafikartistes :D ,
j'ai un petit souci sur str replace et strpos ,j'aimerais detecter un code html d'une banniere sur une page et verifier si il existe ou pas , avant de verifier la page qui contient le code du bannier je fais un str replace pour vider tous les espaces causés par le webmaster pour que je puisse trouve la banniere

voila le code html que le webmaster doit normalement l'inserer sur ca page web

<a href="http://www.adressesite.fr/"> 
<img src="http://adressesite.fr/logo-new4566.png" alt="alt" width="183" height="290">
</a>

et voila quand je vais un strreplace a ma variable du code html ca m'affiche ca ce qui est logique

$lien_client = str_replace(" ", "", strtr($lien_client, "\r\n\t", " "));
<!-- resultat de la bannière apres str replace -->
<ahref="http://www.adressesite.fr/"><imgsrc="http://adressesite.fr/logo-new4566.png"alt="alt"width="183"height="290"></a>

et c'est pour ca quand je veux détecter la variable qui contient le code html du bannière , elle le trouve pas avec strpos je fais comme ca

if (strpos($controler_sug, $lien_client ) === false ) 
{
   mail($email_client, $sujet, $message, $entete) ;
   mail($email_sug, $sujet_2, $message2, $entete) ;
}

Merci d'avance

4 réponses


Salut,

pourquoi remplacer les espaces par rien ?
S'il n'y a pas d'espaces entre les attributs de ta balise, ton code HTML ne va pas fonctionner. Je ne comprends pas trop l’intérêt.

Et que contient ta variable $controler_sug ?

Salut Pewel ,
la variable control_sug contient l'url de la page a verfier voila

$controler_sug = file_get_contents($page_a_verifier);

oui Pewel tout a fait , mais je voulais prévoir la modification du code par le webmaster ou les espaces que l’éditeur wysiwyg ajoute quand le webmaster va coller le code html sur sa page

je te remercie .

je penses que je devrais remplacer le code html que le web master a ajouter sur son site en gros rempalcer les espaces inutil que webmaster a ajouter sur la code html de bannier dans sa page , ai je raison ?

Juste une question, pourquoi n'utilises-tu pas la fontion preg_match ou bien preg_match_all pour trouver le code html?

Si tu es sur a 100% que le webmaster mettra un lien <a ...> </a> avec une image a l'interieur, c'est pas trop dur a faire une expression régulière pour trouverce que tu recherche.
Et pour peu que la banière soit dans une div nommé, c'est encore plus simple.

Exemple:
Pour ce code la:

...]<div id="nomDiv">
    <a href="http://www.adressesite.fr/">                               
    <img src="http://adressesite.fr/logo-new4566.png" alt="alt" width="183" height="290">
    </a>
</div>...]

tu fais:

<?php $contenu = str_replace("\r\n", '', $contenu); //supprime les retour a la ligne
$contenu = str_replace("\t", '', $contenu); //supprime les tabulations
$contenu = preg_replace('/\s\s+/', "", $contenu); //supprime les espaces en dehors des balise

preg_match_all ('|<div id="nomDiv">(.*)</div>|', $contenu, $matches);
var_dump($matches[1][0]); 
// Requltat:
'<a href="http://www.adressesite.fr/"><img src="http://adressesite.fr/logo-new4566.png" alt="alt" width="183" height="290"></a>'
?>

Pour ce code la:

...]<a href="http://www.adressesite.fr/">                               
    <img src="http://adressesite.fr/logo-new4566.png" alt="alt" width="183" height="290">
</a>...]

tu fais:

<?php $contenu = str_replace("\r\n", '', $contenu); //supprime les retour a la ligne
$contenu = str_replace("\t", '', $contenu); //supprime les tabulations
$contenu = preg_replace('/\s\s+/', "", $contenu); //supprime les espaces en dehors des balise
preg_match_all ('|<a (.*)</a>|', $contenu, $matches); //dans ce cas, il recuperera tout les lien contenu dans la page html. Le mieux serais de nommé le lien.

var_dump($matches[0][0]); 
// Requltat:
'<a href="http://www.adressesite.fr/"><img src="http://adressesite.fr/logo-new4566.png" alt="alt" width="183" height="290"></a>'
?>