Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 预处理_Php_Regex - Fatal编程技术网

Php 预处理

Php 预处理,php,regex,Php,Regex,我的代码是这样的: $x = '<p>This is a <a href="1.php?src=123">first</a> paragraph.</p> <p>This is a <a href="2.php?id=987">second</a> pararaph.</p> <p>This is a <a href="3.php?reL=666">third</a>

我的代码是这样的:

$x = '<p>This is a <a href="1.php?src=123">first</a> paragraph.</p>
<p>This is a <a href="2.php?id=987">second</a> pararaph.</p>
<p>This is a <a href="3.php?reL=666">third</a> paragraph'</p>;
但是,它返回一个包含两个元素的数组,在phpliveregex.com上有点不同。

$input = '<p><a href="1.php?src=123">x</a></p> <p><a href="2.php?id=987">y</a></p> <p><a href="3.php?rel=666">third</a></p>';
$output = [];
preg_match_all("/href=\"(.*?)\"/", $input, $output);
print_r($output);
$input='';
$output=[];
preg_match_all(“/href=\”(.*?\”/”,$input,$output);
打印(输出);
有两个问题:

  • preg_match
    仅匹配第一个匹配项;改用
    preg\u match\u all
  • 通过添加问号使您的正则表达式变得懒惰:
    (.*)
    -它应该匹配尽可能短的字符串(即在找到的第一个
    处停止,而不是最后一个)

试一试,如果你需要帮助,然后回来问一个问题:~)好吧。我已经尝试匹配所有的“a”标记并将它们放到数组中:
$input=';$output=[];preg\u match(/href=\“(.\”)/”,$input,$output);print\r($output)
但是,它返回一个包含两个元素的数组,而且它有点不同。非常感谢。是的,我非常接近。。
$input = '<p><a href="1.php?src=123">x</a></p> <p><a href="2.php?id=987">y</a></p> <p><a href="3.php?rel=666">third</a></p>';
$output = [];
preg_match_all("/href=\"(.*?)\"/", $input, $output);
print_r($output);