PHP抓取两行之间的内容



现在我使用PHP代码片段从以下代码的网站抓取一些内容,并显示在我的项目和它的工作良好的内容。

<?php
$lines = file ("https://the-url.com");
for ($i = 1664; $i <= 2325; $i++) {
echo $lines[$i];
}
?>

但问题是,有时代码在网站的中间改变,我必须更新php代码片段与新的行从内容。

如何编写PHP代码,使我说我需要

之间的内容
<div class="results" id="result_list">

<h3 id="alternativen_text" style="float: left; width: 100%;padding-bottom: 6px">

可以用like吗?

<?php
$lines = file ("https://the-url.com");
preg_match('/<div class="results" id="result_list">(.*?)</<h3 id="alternativen_text" style="float: left; width: 100%;padding-bottom: 6px">/s', $lines, $match[1]); {
echo $match[1];
}
?>

PHP只执行一次,在页面加载。这意味着,为此,您需要使用JavaScript而不是PHP,否则您只能获得网站中间的代码,每个页面加载只会抓取一次。

您可以将此代码用于PHP。它获取<div><h3>之间的内容,并将其回显出来(但您可以对其进行任何操作)。

function grab_string_between($str, $starting_word, $ending_word)
{
$sub_start= strpos($str, $starting_word);
$sub_start += strlen($starting_word); 
$size = strpos($str, $ending_word, $sub_start) - $sub_start; 
return substr($str, $sub_start, $size); 
}

$str = file_get_contents("/to/page.php"); 
$substring = grab_string_between($str, '<div class="results" id="result_list">', '<h3 id="alternativen_text"');

echo $substring;

如果内容在页面加载后多次更改,那么唯一的方法就是使用JavaScript。

最新更新