8768 sujets

Développement web côté serveur, CMS

Bonjour,

Je bute sur un petit problème extraction de données en php :

J'aurais besoin de récupérer une série de deux balises 'hidden' contenues dans une page web.
Ces balises sont du style :
<input type="hidden" name="nomStruct" value="Structure Machin">
<input type="hidden" name="codeStruct" value="0027">

Dans une page il peut y avoir plusieurs blocs contenant ces deux balises input.
L'idée serait de générer un tableau ayant ces deux informations.
J'ai bricolé un script qui sait extraire toutes les balises "nomStruct". Par contre je n'arrive pas à récupérer les couples "nomStruct" et "codeStruct" de façon à créer un tableau.
Sauriez-vous me conseiller sur la démarche à suivre?
Merci de votre aide éventuelle.
Hello

C'est pour faire quoi ? Le but de ma question est de savoir quel techno utilisé, JS, PHP ?
Bonjour Jencal.

J'utilise essentiellement PHP.

C'est pour récupérer des informations afin de créer une base de données qui me servira à alimenter une application de gestion de clubs. Ces infos seront ensuite injectée dans une BDD MySql.

Rien de bien secret dans ces infos, mais je n'ai pas trouvé d'autre solution pour récupérer le code et le nom de chacune des structures nationales.
Je dispose d'une série d'url qui font apparaitre ces infos dans des balise <input type='hidden"

J'ai essayé un utilisant :
preg_match('#"nomStruct" value=".+"#', $html_brut, $nomStruct);
cela fonctionne pour récupérer les noms de structures.

mais comment faire pour récupérer également le code qui est également récupérable par :
preg_match('#"codeStruct" value=".+"#', $html_brut, $codeStruct);

je suppose qu'il faut utiliser une boucle?
Modifié par j2m-17 (31 Oct 2019 - 15:58)
Bonjour,
Tu peux faire

<input type="hidden" name="nomStruct[]" value="Structure Machin">
<input type="hidden" name="codeStruct[]" value="0027">

, ce qui va créer un tableau de toutes tes valeurs de nom et un autre pour les codes. Ensuite en PHP:

foreach($_POST['nomStruct'] as $key => $value){
    $structure = $value;
    $code = $_POST['codeStruct'][$key];
}

Si tes valeurs de nom et code se suivent systématiquement (nom/code/nom/code mais pas nom/code/code/nom), ça devrait fonctionner
Oui voila, la solution de Mathieu8337 est à tester par tes soins Smiley smile
Reviens vers nous si tu as des erreurs!
Merci pour vos réponses.

Mais j'ai du mal exposer mon 'problème' car je sais faire ce que vous proposez.

En fait, je veux récupérer, sur un site web de fédération, des données qui ne sont pas publiques mais qui apparaissent sur certaines de leurs pages dont j'ai récupéré les url.

Mon but est d'"aspirer" ces données afin de me créer ma propre BDD qui me servira ensuite dans une application que je vais développer sous PHP.

Donc un petit script PHP qui va ouvrir le code source de la chaque page et parcourir les lignes afin de tomber sur ces séries de deux input de style 'hidden' dont je veux récupérer les valeurs des name (nomStruct et codeStruct) et, pour chaque groupe les insérer dans un tableau.
Bon, j'ai fini par créer deux tableaux qui ont le même nombre d'enregistrement :
- un tableau des noms
- un tableau des codes

Je pense que je vais arriver à m'en sortir avec çà en intégrant ces données dans ma BDD via des requêtes SQL.

Bonne soirée.