[RESOLU] Copier/coller des élément de formulaire d'un site à l'autre

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 : [RESOLU] Copier/coller des élément de formulaire d'un site à l'autre

Re: Copier/coller des élément de formulaire d'un site à l'au

par Raydius » 25 nov. 2014, 13:29

Merci pour le mal que tu donne.
Je devrai y arriver avec ces explications.
J'ai plus qu'a ajuster cela à mes besoin est ça devrait être au top.

Re: Copier/coller des élément de formulaire d'un site à l'au

par Nestecha » 21 nov. 2014, 06:33

Assez simplement pour que tu comprennes, copie ça dans une page "test.php" :
<html>
<head>
    <meta charset="UTF-8"/>
</head>
<body>
<select name="test" id="test">VALUE</select>
</body>
</html>

<?php

$oDoc = new DOMDocument(); // on crée un objet dom document
libxml_use_internal_errors(true);
$oDoc->loadHTMLFile('test.php'); // on charge la page dans l'objet
$oXPath = new DOMXPath($oDoc); // on crée un objet XPath qui permet l'utilisation des XPath dans l'objet dom document préalablement crée

$aDatas = array();

$aDatas = $oXPath->query('//select'); // on fait une requête XPath sur l'élément qu'on cherche

foreach($aDatas as $oData) { // on boucle pour atteindre la "node" qui est un objet, qui est l'élément en question. Cette "node" à plusieurs méthodes disponibles, dont "nodeValue" qui est équivalent à ->innertext dans simple html dom parser.
    echo $oData->nodeValue;
}
L'avantage c'est bien sûr la rapidité du code en lui même, mais c'est aussi le XPath.

Le XPath c'est magique quand c'est bien utilisé, et bien plus efficace que dom parser. C'est la raison principale pour laquelle j'utilise DOMDocument plutôt que simplehtmldomparser.

Pour tester, ouvre la console de débuggage (F12), cherche un élément qui t'intéresse dans une page, clique droit et fait "copier XPath". Et hop t'as le chemin direct vers cet élément et il te suffira de le copier dans ta query pour l'obtenir dans ton code :)

Souvent le XPath que tu obtiens est "brut", et il vaut mieux en faire un soi même en observant la structure du code de la page ciblée, mais je te conseille vraiment d'y jeter un coup d'oeil !

Re: Copier/coller des élément de formulaire d'un site à l'au

par Raydius » 20 nov. 2014, 21:15

Je suis pas contre mais je débute en PHP et je ne suis pas parvenu à trouvé un tuto m'expliquant comment utilisé le 'DOMdocument'. :(

Donc si tu a lien pour m'aider afin que je face les chose bien je suis OK.

Re: Copier/coller des élément de formulaire d'un site à l'au

par Nestecha » 20 nov. 2014, 20:52

Évite d'utiliser cette librairie, le code source est affreusement codé et ultra lent, alors que DOMDocument est vraiment optimisé et très tres tres rapide comparé à simple HTML dom parser.

Re: Copier/coller des élément de formulaire d'un site à l'au

par Raydius » 20 nov. 2014, 20:42

Merci pour vos réponses.

J'ai trouvé une solution en chercher des tuto sur le DOMdocument avec une library "simple_html_dom.php".

Voici le lien du tuto http://petit-dev.com/parsez-le-contenu- ... om-parser/.

Re: Copier/coller des élément de formulaire d'un site à l'au

par Nestecha » 12 nov. 2014, 15:40

Tout à fait d'accord, tu peux aussi utiliser DOMDocument, mais évite d'utiliser des expressions régulières pour ca !

Re: Copier/coller des élément de formulaire d'un site à l'au

par Spols » 12 nov. 2014, 15:29

A la base tu peux récupérer le code html de la page distante avec file_get_contents() tu cherche la chaine <select et </select> avec strpos() ou avec une expression régulière et tu obtiendra le code html de ton element de formulaire avec un substr()

Copier/coller des élément de formulaire d'un site à l'autre

par Raydius » 12 nov. 2014, 13:56

Bonjours,
Je voudrais aller chercher des éléments de formulaires sur un site internet et les copier dans sur ma page internet.
Dans un premier temps ça serai un élément <select>.

Auriez vous idée des instruction à utiliser ou même une base de code PHP pour réaliser un clone d'un élément de formulaire.