[HELP] preg_match_all

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [HELP] preg_match_all

Re: [HELP] preg_match_all

par moogli » 05 janv. 2012, 10:08

j'aouterais aussi que par défaut (il me semble) l'utilisation des fichier distant n'est pas permise.

vérifie :
- ton niveau de report d'erreur (E_ALL | E_STRICT pour développer)
- la valeur du paramètre allow_url_fopen s'il n'est pas a on ça ne peu fonctionner (avec un phpinfo), s'il est a off, je pense que le 1ère point n'est pas bon (devrais surement y avoir un message d'erreur ;) )

Après reste les chaussettes, plus complexe mais pas impossible pour une utilisation aussi simple. De plus certain te dirais au pour parser du html, c'est pas grand coup preg_match* mais avec DOM voir simplexml ;)

sinon, juste pour l'étique, vois avec le proprio de www.site.fr, s'il te peux te mettre a disposition l'information que tu souhaite sous forme de service web. C'est mieux sur le plan déontologie / humain (/ légale ?) et en plus résoudrais ton problème simplement XD

@+

Re: [HELP] preg_match_all

par spooky33 » 04 janv. 2012, 23:14

ce n'est pas une panne temporaire car en gros c'est une signature que j'affiche

donc je vois bien cette signature, mais pour vérifier, j'envoie toutes les données vers une base SQL...l'image fonctionne, s'affiche, et ma base SQL se remplie bien avec l'ip, mais $Page renvoie rien, et $name non plus du coup

peut on vérifier si effectivement il s'agit d'un filtrage du site?

Re: [HELP] preg_match_all

par Calimero » 04 janv. 2012, 22:55

Comme tu disais que le site que tu veux "aspirer" n'est pas le tien, il est possible que le site aie connu une panne temporaire, ou encore qu'il aie mis en place un filtrage qui exclut les consultations de cette manière.

Si tu n'as aucun contrôle sur le site cible, il serait donc prudent de tester tous les cas de figure (partir du principe que le cas $Page vide peut arriver ponctuellement ou éternellement) :)

Re: [HELP] preg_match_all

par spooky33 » 04 janv. 2012, 20:49

Visiblement y'a des soucis au niveau de la fonction 'file_get_contents'

Code : Tout sélectionner

<?php $Page = file_get_contents('http://www.site.fr/'); $pattern = '#font-size: 24px;">(.*)</span>#'; preg_match_all($pattern, $Page, $Data); $name = $Data[1][0]; $ip = getenv ('REMOTE_ADDR');
j'ai envoyé $Page dans une base sql....et il est vide (je rappelle que www.site.fr n'est pas mon site! )

du coup le preg_match_all ne me retourne rien non plus :(

en javascript, je sais qu'on peut utiliser quelque chose du genre :

Code : Tout sélectionner

xmlhttpRequest( { method: 'GET', url: 'http://www.site.fr', ....
mais je cherche a facon de faire tout en PHP...

quelqu'un voit l'erreur?

Re: [HELP] preg_match_all

par spooky33 » 04 janv. 2012, 17:15

merci, je vais vérifier déjà ce que me retourne 'file_get_contents ("http://www.site.com/");' pour être sur que le pattern recherché existe....

je vous tiens informé ;)

Re: [HELP] preg_match_all

par Shenryu » 04 janv. 2012, 13:17

$html = '<span style="font-family:\'CrackhousefranceRegular\'; font-size: 24px;">PSEUDO ICI</span> </a></h2>';
$pattern = '#font-size: 24px;">(.*?)</span>#';
preg_match_all($pattern, $html, $matches);
echo $matches[1][0];

Re: [HELP] preg_match_all

par spooky33 » 04 janv. 2012, 12:34

je précise que ce n'est pas mon site....

je n'ai pas jeté un oeil sur ce que me retourne la fonction....

Re: [HELP] preg_match_all

par moogli » 04 janv. 2012, 09:07

Salut,

Je pige pas trop la si c'est ton tu récupère le pseudo via ton système de session.

À tu regardé ce que retourne le preg_match_all ?

À tu vérifier le masque ? (voir ajouter des options comme i ou s histoire d'éviter les problèmes ?)

@+

[HELP] preg_match_all

par spooky33 » 04 janv. 2012, 00:05

Bonsoir

je sollicite votre aide car je bloque sur un problème PHP.

J'ai une page internet où, une fois loggué, votre pseudo apparait tout le temps (sur toutes les pages du site)

je souhaite créer une image (en PHP) qui affiche un texte genre :

" bonjour [pseudo], votre IP est [IP]"

voici mon code actuel, mais qui ne récupère pas le pseudo:

Code : Tout sélectionner

<?php $Page = file_get_contents ("http://www.site.com/"); preg_match_all('/font-size: 24px;">(.*?)</span> </a></h2>/', $Page, $Data); $name = $Data[0][0]; $ip = getenv ('REMOTE_ADDR'); header("Content-type: image/gif"); ............



dans la source de la page, l'info du pseudo est ici:

Code : Tout sélectionner

<span style="font-family:'CrackhousefranceRegular'; font-size: 24px;">PSEUDO ICI</span> </a></h2>


comment récupérer la chaine PSEUDO ICI ?
merci à tous pour votre aide