Comment extraire une valeur HTML d'une balise d'entrée à l'aide de PHP
Je sais regex n'est pas populaire ici, quel est le meilleur moyen d'extraire une valeur d'une balise d'entrée dans un formulaire HTML à l'aide d'un script php?
par exemple:
certains divs, tableaux, etc..
<form action="blabla.php" method=post> <input type="text" name="campaign"> <input type="text" name="id" value="this-is-what-i-am-trying-to-extract"> </form>
certains divs, tableaux, etc..
Grâce
Toute chance vous pouvez reformuler? Êtes-vous désireux d'obtenir la valeur de l'entrée de contrôle dans votre script php quand il est posté? Si donc c'est assez basique. Également pas sûr de ce que le commentaire à propos de la regex est dans ce contexte?
Est-ce lors de la génération de la page (avec php) ou une fois que le formulaire est soumis?
Je pense qu'il fait référence à la [correct] "vous ne pouvez pas analyser HTML avec une regex" réponse, mais je ne pense pas qu'il soit encore réalisé que ce n'est pas la façon dont il veut aller à ce sujet, même si vous le pouviez.
Désolé, je devrais m'en suis expliqué mieux. J'ai une chaîne de caractères var avec un tas de HTML. À partir de cette chaîne de HTML, j'ai besoin d'extraire la valeur d'une balise d'entrée, le nom de la balise d'entrée est toujours le même (id) si ça peut aider.
Est-ce lors de la génération de la page (avec php) ou une fois que le formulaire est soumis?
Je pense qu'il fait référence à la [correct] "vous ne pouvez pas analyser HTML avec une regex" réponse, mais je ne pense pas qu'il soit encore réalisé que ce n'est pas la façon dont il veut aller à ce sujet, même si vous le pouviez.
Désolé, je devrais m'en suis expliqué mieux. J'ai une chaîne de caractères var avec un tas de HTML. À partir de cette chaîne de HTML, j'ai besoin d'extraire la valeur d'une balise d'entrée, le nom de la balise d'entrée est toujours le même (id) si ça peut aider.
OriginalL'auteur Jim | 2010-07-14
Vous devez vous connecter pour publier un commentaire.
Si vous voulez extraire des données à partir d'une chaîne HTML, la meilleure solution est souvent de travailler avec le
DOMDocument
classe, qui peut charger HTML à une Arborescence DOM.Ensuite, vous pouvez utiliser n'importe quel DOM liées à la façon de l'extraction de données, comme, par exemple, XPath requêtes.
Ici, vous pouvez utiliser quelque chose comme ceci :
Et vous souhaitez obtenir :
echo $xPath->evaluate('string(//input[@name="id"]/@value)');
OriginalL'auteur Pascal MARTIN
Ouais, je suppose... mais il fonctionne. Pourrait tout aussi bien aller avec le style préféré.
OriginalL'auteur JAL
Post le formulaire à une page php. La valeur que vous voulez être dans $_POST['id'].
OriginalL'auteur Dagg Nabbit
Que voulez-vous dire regex n'est pas populaire? Moi, j'aime les expressions régulières.
De toute façon, ce que vous voulez, c'est quelque chose comme:
Hahha je suis d'accord, la regex est horrible pour l'analyse HTML. Cependant, pour la question à portée de main, la regex est une parfaite solution valable, mais certainement pas la seule solution.
Que faire si il y a d'autres entrées dans le code HTML qui ont une valeur d'attribut? Si l'attribut n'est pas écrit précisément
value="foo"
, maisValue = "foo"
. Que faire si le code HTML contient précisément ce commentaire?Tous ceux qui peuvent être résolus dans la regex. La solution devient de moins en moins élégant. Je ne suis pas du tout en préconisant regex comme une solution pour l'analyse de tout ce que vaguement formé au format HTML. La question posée pour une regex en PHP pour un très spécifique, fermées situation.
D'accord, votre regex ne fonctionne et il s'adapte à la question, mais la meilleure chose à faire est de conseiller à la personne de ne pas utiliser les regexes pour cela et au lieu de proposer une solution qui intègre une meilleure pratique.
OriginalL'auteur Josiah