Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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_Preg Match - Fatal编程技术网

Php在多个双引号之间匹配一个单词并返回整个字符串

Php在多个双引号之间匹配一个单词并返回整个字符串,php,regex,preg-match,Php,Regex,Preg Match,我有以下html代码 <img src="https://example.com/123456789/300.jpg?key=abcdefg" /> <img src="https://example.com/123456789/600.jpg?key=abcdefg" /> <img src="https://example.com/123456789/900.jpg?key=abcdefg" /> <img src="https://example.

我有以下html代码

<img src="https://example.com/123456789/300.jpg?key=abcdefg" />
<img src="https://example.com/123456789/600.jpg?key=abcdefg" />
<img src="https://example.com/123456789/900.jpg?key=abcdefg" />
<img src="https://example.com/123456789/1200.jpg?key=abcdefg" />

刮页时不允许使用Dom语法,因为它已被阻止。

正则表达式不是用于此操作的正确工具。使用解析器

$string = '<img src="https://example.com/123456789/300.jpg?key=abcdefg" />
<img src="https://example.com/123456789/600.jpg?key=abcdefg" />
<img src="https://example.com/123456789/900.jpg?key=abcdefg" />
<img src="https://example.com/123456789/1200.jpg?key=abcdefg" />';
$dom = new DOMDocument;
$dom->loadHTML($string);
$images = $dom->getElementsByTagName('img');
foreach($images as $image) {
    echo $image->getAttribute('src') . PHP_EOL;
}

我也在尝试从600.jpg向左移动到第一个左双引号,然后从600.jpg向左移动到第一个右双引号,但不知道如何向左移动。我不确定你所说的移动是什么意思,你不是在寻找600.jpg图像吗?否决票是对坏问题的惩罚。不适合你不知道答案的问题。一个糟糕的问题是一个以“我如何…”开头的问题。一个好问题是“我试过了,它不起作用,我做错了什么?”谢谢,我明白了,我现在编辑我的问题。我需要它而不使用DOMDocument,因为加载页面时dom phraser被禁用,但感谢您的辛勤工作。加载页面时
是什么意思?你在用JS做这个吗?请出示您的实际使用情况。如果您可以使用
preg\u match
我不明白为什么解析器不可用。@DavidCorp也许您应该编辑您的问题,并清楚地解释您要做什么。我的意思是,你的项目是什么。这有助于防止答案对你毫无用处。不管其他网站上有什么答案。当您将这个字符串输入到PHP中时,您应该能够使用解析器。如果PHP中有
,则可以使用此答案。如果您没有,请编辑问题以显示您拥有什么以及您正在做什么。我不明白您为什么不能使用解析器。如果您有
$string
,您应该能够使用paser。其他站点的技术并不重要(除非它阻止了您,但在这种情况下,
$string
不会填充)。你不需要接受答案,接受的答案应该只针对解决你问题的答案。如果另一个答案是有效的,你应该投赞成票,而不接受这个。然而,正如我所说的,我不明白为什么这不起作用。
$string = '<img src="https://example.com/123456789/300.jpg?key=abcdefg" />
<img src="https://example.com/123456789/600.jpg?key=abcdefg" />
<img src="https://example.com/123456789/900.jpg?key=abcdefg" />
<img src="https://example.com/123456789/1200.jpg?key=abcdefg" />';
$dom = new DOMDocument;
$dom->loadHTML($string);
$images = $dom->getElementsByTagName('img');
foreach($images as $image) {
    echo $image->getAttribute('src') . PHP_EOL;
}
$string = '<img src="https://example.com/123456789/300.jpg?key=abcdefg" />
<img src="https://example.com/123456789/600.jpg?key=abcdefg" />
<img src="https://example.com/123456789/900.jpg?key=abcdefg" />
<img src="https://example.com/123456789/1200.jpg?key=abcdefg" />';
$dom = new DOMDocument;
$dom->loadHTML($string);
$images = $dom->getElementsByTagName('img');
foreach($images as $image) {
    if(strpos($image->getAttribute('src'), '600.jpg') !== FALSE) {
        echo $image->getAttribute('src') . PHP_EOL;
    }
}