我正在建立一个网站,提供用户可以下载的Windows软件。我想检索另一页上的文本。
Software Review Page (e.g: domain.com/obs-studio/):
<ul class="software_facts">
<li>
<div class="dorat">
<div class="labelimg">[thumbnail]</div>
<div class="wp-block-button is-style-squared">
<form name="myform1" action="/download-page/" method="post"><input name="bode" type="hidden" value="https://github.com/obsproject/obs-studio/releases/download/25.0.8/OBS-Studio-25.0.8-Full-Installer-x64.exe"></form>
<div class="wp-block-button__link has-background has-vivid-green-cyan-background-color" onclick="document.myform1.submit()">Download (24 MB)</div>
</div>
</div>
</li>
<li class="bg">
<p class="labelnil">Nilai:</p>
[kkratings]
</li>
<li>
<p class="label">Version:</p>
<p itemprop="softwareVersion">25.0.8</p>
</li>
<li class="bg">
<p class="label">Publisher:</p>
<p itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization"><span itemprop="name">Jim</span></p>
</li>
<li>
<p class="label">Sistem Operasi:</p>
<p itemprop="operatingSystem">Windows</p>
</li>
<li class="bg">
<p class="label">Kategori Aplikasi:</p>
<p itemprop="applicationCategory">Multimedia</p>
</li>
<li>
<p class="label">Licence:</p>
<p>Freeware</p>
</li>
</ul>
用户被定向到域。com/download page/page单击“下载(24MB)”按钮时。
Download Page (e.g. domain.com/download-page/):
<p>OBS Studio was developed by <strong>Jim</strong>, the latest version is <strong>25.0.8</strong>.</p>
我想要“
Jim“和”
25.0.8“根据用户希望在上一页下载的软件信息更改的部分。
我使用Wordpress,如何使用Javascript或PHP实现这一点。有人能帮我吗,提前谢谢。
SO网友:Adam Bernot
你说的是刮取,这通常是一种不可靠的获取数据的方法,尤其是如果你不控制另一个页面的话。
然而,在PHP中,一旦您使用以下内容检索下载页面wp_remote_get, 可以使用正则表达式提取所需的片段preg_match_all.
$response = wp_remote_get( \'domain.com/download-page/\' );
$page = wp_remote_retrieve_body( $response );
$regexp = \'/developed by <strong>(.*?)<\\/strong>.*?version is <strong>(.*?)<\\/strong>/\';
preg_match( $regexp, $page, $matches );
echo $matches[1]; // Jim
echo $matches[2]; // 25.0.8
基本上
(.*?)
parts捕获模式该部分中出现的内容,并将其放入一个名为
$matches
. 请注意,对下载页面上显示开发人员和版本的方式的任何更改都可能会打破这种模式,因此请小心。