现在我使用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。