PHP : Rechercher un mot dans la page ?

Résolu/Fermé
Torkass Messages postés 166 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 21 janvier 2016 - 14 juin 2008 à 04:41
Torkass Messages postés 166 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 21 janvier 2016 - 14 juin 2008 à 19:57
Bonjour,

J'ai un site en .com et un site chez free.
J'ai plusieurs images hébergées chez free qui sont chargées sur le site en .com !
Le problème est que je ne peux pas vérifier si l'image existe sur free, donc je dois mettre une case à cocher sur mon site en .com pour dire si il affiche l'image ou bien une image alternative disant que je n'ai pas cette image en stock.
J'aimerais automatiser tout ça, mais la fonction file_exists() de php ne fonctionne pas avec un serveur distant...

Ma question est donc la suivante : Existe-t-il un moyen en php de regarder si une page ou le code d'une page distante contient une certaine chaîne de caractères ?
Je pensais à par exemple lister les noms de toutes les images hébergées chez free sur une page elle-même chez free et, ainsi vérifier depuis mon site en .com si le nom d'une image est affiché sur cette page pour enfin afficher automatiquement l'image en question si son nom est présent ou l'image alternative si'l ne l'est pas.

Bon, je ne sais pas si c'est faisable, j'ai regardé du côté de highlight_file() et autres show_source(), mais ça ne fonctionne pas... Donc j'attend votre aide.
Merci d'avance.
A voir également:

3 réponses

Zabuza66 Messages postés 366 Date d'inscription vendredi 31 août 2007 Statut Membre Dernière intervention 26 novembre 2008 66
14 juin 2008 à 04:44
Tu peux savoir si une page existe à distance. Un truc genre Filesize URL
<?php echo urlfilesize($votre-lien,'mb') ; ?>
Si la taille est disons supérieure à X alors l'image est présente.

De même, get_header te dira si la page existe;
Regarde par là
https://www.tayo.fr/filesize-pour-une-url-aide.php

Pour ton "test" (ultra bourrin c omme méthode ) regarde du côté de file_get_contents et après strpos.
0
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
14 juin 2008 à 10:23
Salut,

file_exists() doit fonctionner à distance si tu lui passe l'url du fichier (http://www.monsite.com/images/1.jpg)

Sinon tu peux créer un fichier sur ton site d'images (le fichier peut etre static, tu le rempli a la main, soit généré par php). Puis tu l'ouvres depuis ton site .com (fopen(http://xxx.free.fr/.../liste.php) et tu le parcours avec fgets() en plaçant les noms de fichiers images dans un tableau. Ensuite pour savoir si une image existe tu n'as plus qu'a utiliser in_array. --> inconveniant de la méthode : si tu as beaucoup de photos tu vas lire un gros fichier et créer un gros tableau ce qui va etre long.

Tu peux aussi sur ton site free, creer un script php qui va prendre un nom d'image en paramètre et juste écrire ok si la photo existe. Sur l'autre site tu fais qq chose comme $existe = trim(file_get_contents("http://xxx.free.fr/.../test.php?file=$image")) == 'ok';

Ce sont deux exemples mais il y'a bien d'autres possibilités.
0
Zabuza66 Messages postés 366 Date d'inscription vendredi 31 août 2007 Statut Membre Dernière intervention 26 novembre 2008 66
14 juin 2008 à 12:14
file_exists ne fonctionne pas pour une url distance ?
0
Torkass Messages postés 166 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 21 janvier 2016 95
14 juin 2008 à 19:57
Et non, file_exists() ne marche pas sur un serveur distant ! ^^

Alors oui, je te l'accorde, c'est une méthode bourrin XD en tout cas je te remercie pour la fonction urlfilesize(), elle fonctionne et c'est exactement ce qu'il me fallait !

Dr Zoidberg >> Sympa la méthode fopen et fget, je vais garder ça de côté pour d'autres idées ! ^^

Merci à tous les deux.
0