【发布时间】:2011-12-31 07:00:49
【问题描述】:
我正在尝试获取包含在 PHP 文件的 echo 语句中的 title 元素的内容。
我正在为一个网站使用一个 PHP 文件,当通过 Ajax 调用访问它时,它只返回页面的一部分,但当直接访问它时,它返回整个页面。
这一切都很好。但是我想在通过Ajax调用访问页面时更改页面的标题,标题标签的innerHTML就是我想要得到的。
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo '
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Products at Avrent</title>
<meta http-equiv="content-type" content="text/htmlcharset=utf-8" />
对于 HTML 文件,此代码有效。
<?php
if(isset($_GET['url'])) {
$url = $_GET['url'];
$html = file_get_html($url);
/* get page's title */
preg_match("/<title>(.+)<\/title>/siU", $html, $matches);
$title = $matches[1];
echo $title;
}
?>
但是当我尝试将它与 PHP 文件一起使用时,它会返回乱码。
谁能帮我找到一个适用于 PHP 文件的 PHP 脚本?
【问题讨论】:
-
您应该尝试使用一些不同的解决方案进行部分渲染,因为您现在正在做的事情很荒谬
-
你真的应该用DOMDocument之类的东西来解析HTML。正则表达式确实不是适合这项工作的工具。
-
@Fenec 假设你至少给我一个不同解决方案的提示。我很乐意使用不同的解决方案,尽管我使用的解决方案很好。
-
@GordonM 我正在使用 simple_html_dom.php 来解析 HTML,但它似乎不适用于 Head 部分中的元素。除了我的直接问题是解析 PHP 和 simple_html_dom.php 对 PHP 文件根本不起作用。但是感谢您的反馈。