Я знаю, что regex не популярен здесь, что лучший способ состоит в том, чтобы извлечь значение входного тега в HTML-форме с помощью сценария PHP?
например:
некоторые отделения/таблицы и т.д.
<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>
некоторые отделения/таблицы и т.д.
Спасибо
Если вы хотите извлечь некоторые данные из некоторой строки HTML, лучшим решением часто является работа с классом DOMDocument
, который может загружать HTML в дерево DOM.
Затем вы можете использовать любой способ извлечения данных, связанный с DOM, например, XPath запросы.
Здесь вы можете использовать что-то вроде этого:
$html = <<<HTML
<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>
HTML;
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//input[@name="id"]');
foreach ($tags as $tag) {
var_dump(trim($tag->getAttribute('value')));
}
И вы получите:
string 'this-is-what-i-am-trying-to-extract' (length=35)
$html=new DOMDocument();
$html->loadHTML('<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>');
$els=$html->getelementsbytagname('input');
foreach($els as $inp)
{
$name=$inp->getAttribute('name');
if($name=='id'){
$what_you_are_trying_to_extract=$inp->getAttribute('value');
break;
}
}
echo $what_you_are_trying_to_extract;
//produces: this-is-what-i-am-trying-to-extract
Разместите форму на странице php. Требуемое значение будет в $ _POST ['id'].
Что вы имеете в виду, что regex не популярен? Я, например, люблю регулярные выражения.
В любом случае, вам нужно что-то вроде:
$contents = file_get_contents('/path/to/file.html');
preg_match('/value="(\w+)"/',$contents,$result);