Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2011, 14h11   #1
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Par défaut Verification de plusieurs liens

Bonjour,
J'ai trouvé un script qui permet de vérifier si un lien est présent sur un site Web :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
 
$sURL = 'L\'URL du site à vérifier.'; // URL du site à modifier
$sPattern = 'L\'URL du lien à chercher'; // URL à rechercher.
 
if (($sContent = file_get_contents($sURL)) !== FALSE) {
preg_match_all('`href=["\']?'.$sPattern.'["\']?`i', $sContent, $aMatches);
echo 'Le lien "',$sPattern,'" apparaît ',count($aMatches[0]),' fois sur la page "',$sURL,'".';
}
else echo 'Impossible d'accèder au site "',$sURL,'".';
 
?>
Cela fonctionne parfaitement. Mais je cherche à améliorer le script pour qu'il puisse faire une chose supplémentaire. J'ai plusieurs liens à vérifier sur plusieurs sites Web ( par exemple 10 liens sur 10 sites Web)
Cela vous semble t'il possible à réaliser et surtout comment dois je m'y prendre.
Merci beaucoup de vos futurs renseignements :-)
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h21   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu mets tes liens dans un tableau PHP et tu fais un boucle.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h24   #3
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
Bonjour

si tu as besoin de quelque chose simple et performant, utilise DOMDocument http://php.net/manual/en/book.dom.php

si tu as besoin de quelque chose compliqué, conserve tes expressions régulières toutes faites et fais 100 tests différents. autre chose tu peux améliorer le truc en ne comptant pas le nombre de ligne dans $aMatches mais simplement en récupérant la valeur de retour de preg_match_all
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 16h21   #4
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Grand merci pour vos réponses.
Je vais essayer avec un tableau car les DOM c'est encore hard pour moi.
Je créé donc une variable qui comprend mon tableau :
Code :
1
2
$sURL = array('site1','site2','site3','site4'); 
$sPattern = array('siteA','siteB','siteC','siteD');
J'espère que jusque la je ne me suis pas planté.
Mais ensuite comment créer cette fameuse boucle ?

Merci d'avance de vos réponses !
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 17h55   #5
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Je reviens après quelques tests pour une boucle, le code serait bien cela ?
Code :
1
2
3
4
foreach ( $eURL as $var )
{
// instructions
}
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 18h05   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
ou tu t'embêtes pas et t'utilises ça : http://validator.w3.org/checklink/
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 19h04   #7
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Merci mais ce site ne fait pas la meme chose.
Le but est de vérifier si un lien est en place sur un site ( quand on fait un échange de lien avec un autre site, j'essaye de faire ce script pour vérifier si lien est toujours en place, comme j'ai plusieurs sites web, la tache manuellement est fastidieuse )
APrès d'autres tests j'y arrive presques.
Imaginons le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
$sURL = array('site1','site2','site3','site4'); 
$sPattern = 'sitefixe'; // URL à rechercher.
 
if (($sContent = file_get_contents($sURL)) !== FALSE) {
preg_match_all('`href=["\']?'.$sPattern.'["\']?`i', $sContent, $aMatches);
echo 'Le lien "',$sPattern,'" apparaît ',count($aMatches[0]),' fois sur la page "',$sURL,'".';
}
else echo 'Impossible accèder au site "',$sURL,'".';
 
?>
La j'aurais qu'un seul tableau et faire une boucle dessusn mais je bloque toujours sur la boucle..
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 19h50   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
si tu veux recupere tout les lien c'est avec DOMDocument et récupère tout les href et src, ensuite c'est un get_headers qu'il faut faire
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/02/2011, 20h43   #9
Membre du Club
 
Inscription : juin 2007
Messages : 336
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 336
Points : 48
Points : 48
Merci de votre réponse.
Mais je crois que je suis largué avec les DOM, je pensais que c'était plus simple, je crois que je suis pas au niveau pour cela.
Mais merci quand meme
yuyu599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h23.


 
 
 
 
Partenaires

Hébergement Web