警告:我对PHP很陌生并且对这段代码了解不多,我只是在网上找到它并修改了链接和ID。
不确定此代码是否准确,但我想知道是否有办法让我从一个页面显示某个html元素,例如一个id为#34; bioforfooter"的段落另一个页面,例如我的主页,并将字符串中的字符数限制为大约310,同时不切断字符串中的最后一个单词。另外,我希望在字符串后面添加一个超链接,即#34; ...阅读更多" (见代码)。这是我到目前为止的代码,它没有做任何事情。
PHP
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://example.com/about-me.php/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$raw = curl_exec($ch);
curl_close($ch);
$first_step = explode( '<p id="bioforfooter">' , $content );
$second_step = explode("</p>" , $first_step[1] );
if (strlen($second_step[0]) > 310) {
// truncate string
$stringCut = substr($second_step[0], 0, 310);
// make sure it ends in a word so assassinate doesn't become ass...
$result = substr($stringCut, 0, strrpos($stringCut, ' ')).'... <a href="http://www.example.com/about-me.php">Read More</a>';
}
在我的主页上,我有
php echo $result;
在空段落标签中,我纯粹是为了显示生物的预览而没有显示任何内容。请帮忙!
P.S。我最初使用file_get_contents来包含&#34; about-me.php&#34;文件,但页面加载时间超过30秒,这太长了。
答案 0 :(得分:2)
您没有将cUrl请求的结果链接到其余代码。将$content
更改为$raw
并从那里开始。
您可能会发现使用<div>
直接定位DOMDocument()
比扩展HTML更容易。像这样:
$dom = new DOMDocument();
$dom->loadHTML($content);
$xpath = new DOMXPath($dom);
$div = $xpath->query('//div[@id="bioforfooter"]');
$div = $div->item(0);