rechercher des mots avec leurs balises - PHP - Programmation
Marsh Posté le 04-11-2009 à 10:57:34
daniela1 a écrit : Bonjour, |
fait un fopen
puis "aspire le site" avec un fgets dans une variable
et ensuite tu peux faire des eregs
Marsh Posté le 04-11-2009 à 11:06:50
oula partons dans les vieux truc,
pour ouvrir et lire un fichier t'as plus simple : file_get_contents
niveau regexp, c'est plus conseiller d'utilisé "preg" qu'"ereg" ( plus rapide )
mais pour faire des recherches dans un document html (mieux xhtml)
c'est DomDocument, associé a Xpath et ca devrai allé (pour recherche du texte c'est contains() )
Marsh Posté le 04-11-2009 à 11:18:22
par exemple cette ligne ne marche pas
$fp = fopen("http://localhost/repertoire/admin/","r+" ); //lecture du fichier,
c'est normal j'ai easyphp 3.0
Marsh Posté le 04-11-2009 à 11:30:41
utilise file_gets_content comme je t'ai dis
sinon pour ta recherche tu peux faire ca :
<?php |
et ca commence a dater easey php 3.0 non ?, installe la derniere version si c'est possible, ou install zend server
Marsh Posté le 04-11-2009 à 11:55:47
vous pourriez m'expliquer :
query("//*[contains(., '$search')]/text()" ); ?
si par exemple à la place de 'test' je veux "Proposer un site" et "Soumettre un site" ?
Marsh Posté le 04-11-2009 à 12:39:24
comment transposer ce code, je suis hypernovice en programmation, pour rechercher deux expressions dans un texte l'"expression1" et l'"expression2" dois-je mettre
query("//*[contains(child::text(), '$search')]" ) tel quel, ici search ne vaut qu'une expression.
Marsh Posté le 04-11-2009 à 13:10:39
$search1 = 'test';
$search2 = 'test2';
"//*[contains(child::text(), '$search1') or contains(child::text(), '$search2')]"
Marsh Posté le 04-11-2009 à 13:15:12
daniela1 a écrit : vous pourriez m'expliquer : |
donc c'est xpath
//* : va chercher tout les noeuds
ensuite
[contains(child::text(), '$search1')]
dans tout les noeuds on va recuperer tout ceux, dont l'enfant texte contient la chaine $search
mais bon c'est deja du xpath avancé
un truc simple recupere tout les liens serai : //a
je t'invite a fair un petit tour ici
http://fr.wikipedia.org/wiki/XPath
Marsh Posté le 04-11-2009 à 13:55:56
A noter que les fonctions ereg eregi, etc sont dépréciées et seront supprimées en php6.
Il faut utiliser les fonctions preg_match et co...
Gat$
Marsh Posté le 04-11-2009 à 14:01:35
j'ai trouvé une autre façon avec
<html>
<head>
<script language= "javascript">
function la(url){
var i;
var Win;
var Html="";
var Obj;
//-- Tu ouvres le document avec window.open
Win= window.open( "url","le" );
Obj =win.document.getElementsByTagName('a');
for ( i=0; i < Obj.length; i++){
Html += Obj[i].innerHTML;
}
alert(Html);
}
</script>
</head>
<body>
<a href="javascript:la(http://www.aquadesign.be/)"> Ouverture</a>
</body>
</html>
pour le site spécifié bon par exemple, et voir ce qui ne va pas
Marsh Posté le 04-11-2009 à 14:09:30
en fait je voudrais c'est vrai c'est pas terrible m'inscrire automatiquement à quelques formulaires pour m'éviter de m'inscrire manuellement long et répétitif. Souvent dans les pages des annuaires de sites, il y a un liens
"proposer un site", je voudrai le récupérer et faire en sorte si c'est possible qu'il soit cliqué pour accéder à la deuxième page( en fait je sais pas trop comment m'y prendre.
Marsh Posté le 04-11-2009 à 14:13:52
je vois, mais malheureusement, les champs n'ont pas tous le meme nom
par ex pour un champ "votre site" le nom du champ va etre :
site
web-site
link
....
et ca tu peu pas le savoir par avance
t'as des extention pour IE ou Firefox, qui te rempli les formulaire automatiquement, mais c'est pareil c'est une liste exhaustive des noms.
Marsh Posté le 04-11-2009 à 10:53:44
Bonjour,
Comment peut-on après avoir ceci:
$lines = file('http://annuaire.indexweb.info/');
Puis chercher là-dedans une expression précise par exemple "proposer un site" ainsi que les balises qui l'entourent, je sais pas si la fonction ereg permet de faire cela.