Verification d'url et parcour du code source

Eléphanteau du PHP | 40 Messages

25 févr. 2008, 17:22

Bonjour j'ai créer un formulaire avec un tableau, dans ce tableau sont repertorié plusieur renseignement.
Les renseignement qui nous interresse sont la colonne url(LibelleLienSprice) du type

Code : Tout sélectionner

http://carnet-de-voyage.sprice.com/index.php/
et la colonne code hyperlien(CodeLienSprice) du type

Code : Tout sélectionner

<a href="http://sejours.fr.sprice.com/searchvacation/list/continent_destination:Asie,pays_destination:Chine" target='\"_blank\"' #1aa1e9;\="" color:="" none;="">la Chine</a>
Dans un premier temps je verifie si mon url est accesible grace a la fonction fopen que j'ai trouver sur php.net puis je soihaite parcourir le code source de cette url afin de verifier si le code de mon hyperlien si trouve bien, la partie pour verifier que l'url est accesible fonctionne bien par contre pour le parcour du code source et trouver le code de l'hyperlien de mon tableau,
sa ne fonctionne pas
je laisse en commentaire ce qui doit ce passer
<?php
$bool='true';
while ($Tab= mysql_fetch_array($result))
	{
?>
<tr>

<td>
<?php     //voici le code qui me permet de verifier si l'url existe(trouver sur php.net)
if (isset($_POST['Verification']))
{
if (!$fp = @fopen(''.$Tab[LibelleLienSprice].'',"r")) 
{
echo '<span style="color:red;">'.$Tab['LibelleLienSprice'].'</span>';
$bool='false';
}
else 
{
echo '<span style="color:green;">'.$Tab['LibelleLienSprice'].'</span>';
$bool='true';
}
}
else
{
 echo $Tab['LibelleLienPartenaire'];
}
?>
</td>
<td style="width:150"px;"">
<?php      /*voici le code qui me permet de lire le code source de mon url(www.php.net) j'ai juste rajouter une condition afin de dire si oui ou non mon hyperlien es dans ce code source mais sa ne marche pas*/
if (isset($_POST['Verification']))
{
if($bool=='true')
{
$fp = @fopen(''.$Tab[LibelleLienSprice].'',"r"); //lecture du fichier
while (!feof($fp)) { //on parcourt toutes les lignes
  $page .= fgets($fp, 4096); // lecture du contenu de la ligne
}
if(eregi("^<a href=(.*)</a>$",$page,$regs)==$Tab[CodeLienSprice]) //on isole les titre
{
echo '<span style="color:green;">'.htmlentities($Tab[CodeLienSprice]).'</span>';	
}
else
{
echo '<span style="color:red;">'.htmlentities($Tab[CodeLienSprice]).'</span>';	
}
}
else
{
echo '<span style="color:red;">'.htmlentities($Tab[CodeLienSprice]).'</span>';	
}
}
else
{
echo htmlentities($Tab[CodeLienPartenaire]);	
}
?>
</td>
 
<td>
<?php     //voici le code qui me permet de verifier si l'url existe(trouver sur php.net)
if (isset($_POST['Verification']))
{
if (!$fp = @fopen(''.$Tab[LibelleLienPartenaire].'',"r")) 
{
echo '<span style="color:red;">'.$Tab['LibelleLienPartenaire'].'</span>';
$bool='false';
}
else 
{
echo '<span style="color:green;">'.$Tab['LibelleLienPartenaire'].'</span>';
$bool='true';
}
}
else
{
 echo $Tab['LibelleLienPartenaire'];
}
?>
</td>
<td style="width:150"px;"">
<?php       /*voici le code qui me permet de lire le code source de mon url(www.php.net) j'ai juste rajouter une condition afin de dire si oui ou non mon hyperlien es dans ce code source mais sa ne marche pas*/
if (isset($_POST['Verification']))
{
if($bool=='true')
{
$fp = @fopen(''.$Tab[LibelleLienPartenaire].'',"r"); //lecture du fichier
while (!feof($fp)) { //on parcourt toutes les lignes
  $page .= fgets($fp, 4096); // lecture du contenu de la ligne
}
if(eregi("^<a href=(.*)</a>$",$page,$regs)==$Tab[CodeLienPartenaire]) //on isole les titre
{
echo '<span style="color:green;">'.htmlentities($Tab[CodeLienPartenaire]).'</span>';	
}
else
{
echo '<span style="color:red;">'.htmlentities($Tab[CodeLienPartenaire]).'</span>';	
}
}
else
{
echo '<span style="color:red;">'.htmlentities($Tab[CodeLienPartenaire]).'</span>';	
}
}
else
{
echo htmlentities($Tab[CodeLienPartenaire]);	
}
?>
</td>

</tr>
<?php
}
?>
si quelqu'un peu m'aider
[/url]
Modifié en dernier par mali_67 le 25 févr. 2008, 18:53, modifié 5 fois.

Eléphant du PHP | 445 Messages

25 févr. 2008, 17:27

Enlèves le @devant fopen() comme cela tu pourras voir les éventuels erreur d'ouverture.

Ensuite, vérifie que dans la page que tu ouvres, le code source ou tu récupères ton hyperlien n'a pas changé.

Eléphanteau du PHP | 40 Messages

25 févr. 2008, 17:32

j'ai bien verifier dans le code source si le code na pas changer(c'est toujour le même) c'est surement a cette ligne qu'il y a un probleme et j'ai laisser le @ pour pas qu'un message d'erreur ne s'affiche mais juste mon url en rouge(ce sont les consignes)
if(eregi("^<a href=(.*)</a>$",$page,$regs)==$Tab[CodeLienPartenaire]) //on isole le code

d0m
Mammouth du PHP | 1141 Messages

25 févr. 2008, 17:42

enlever les @ c'est pratique pour un affichage propre, mais lorsqu'on débogue il vaut mieux les enlever. Les messages d'erreurs t'éviteront de t'arracher les cheveux pendant des heures.
Une fois le problème identifié et résolu, tu pourras toujours les enlever si c'est la consigne...

Eléphanteau du PHP | 40 Messages

25 févr. 2008, 17:46

Merci du conseil sa fait 1 mois que je suis sur php alor je n'ai pas encor la bonne logique par contre la recherche que je doit effectuer dans le code source de mon url ne fonctionne toujour pas je cherche des reponses un peu partout mais sans succée quequ'un peu m'aider :(