Php 刮除;正则表达式匹配不';行不通
好的,我有一个类似这样的页面(我添加了“scrapehere”字符串以便于导航,这个页面不是100%正确的html,它有两个相同的字段,具有不同的值。不,我无法修复它,因为我使用的是cms,我觉得这对我来说太复杂了): 它怎么了,为什么不直接打印值呢?它是否已经保存在某个地方,但我的回声是错误的?我希望输出仅为Php 刮除;正则表达式匹配不';行不通,php,regex,Php,Regex,好的,我有一个类似这样的页面(我添加了“scrapehere”字符串以便于导航,这个页面不是100%正确的html,它有两个相同的字段,具有不同的值。不,我无法修复它,因为我使用的是cms,我觉得这对我来说太复杂了): 它怎么了,为什么不直接打印值呢?它是否已经保存在某个地方,但我的回声是错误的?我希望输出仅为值我这样做了: <?php $data = 'scrapehere<input type="hidden" id="_someid" name="_somename" valu
值
我这样做了:
<?php
$data = 'scrapehere<input type="hidden" id="_someid" name="_somename" value="value"/>';
$regex = '/scrapehere<input type="hidden" id="_someid" name="_somename" value="value"/';
preg_match($regex,$data,$match);
print_r($match);
echo $match[1];
?>
我明白了:
Array
(
[0] => scrapehere<input type="hidden" id="_someid" name="_somename" value="value"
)
数组
(
[0]=>请点击此处
这两行都输出数据。var_dump
输出一个数组,其中的第一个元素包含一个输入标记,该标记由于隐藏而不显示在浏览器中
因此,如果您希望输出仅为'value'
,请从代码中删除var_dump($match);
,并让回显
来完成工作。我认为代码中的array(2) { [0]=> string(74) "scrapehere string(5) "value" } value
<?php
$data = 'scrapehere<input type="hidden" id="_someid" name="_somename" value="value"/>';
$regex = '/scrapehere<input type="hidden" id="_someid" name="_somename" value="value"/';
preg_match($regex,$data,$match);
print_r($match);
echo $match[1];
?>
Array
(
[0] => scrapehere<input type="hidden" id="_someid" name="_somename" value="value"
)
var_dump($match);
echo $match[1];