我正在尝试获取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脚本吗?
答案 0 :(得分:0)
这是我收集的内容:你有一堆HTML页面。你有一个index.php脚本,它接受一个URL,从该URL加载HTML,交换标题,然后将HTML吐出来?
首先,你为什么要这样设置?如果你坚持......
你(非常至少)应该这样做:
<强>的index.php 强>
删除RegEx。你正在使用HTML解析器;用那个!
<?php
if(isset($_GET['url'])) {
$url = $_GET['url'];
$html = file_get_html($url);
/* get page's title */
$title = $html->find('title', 0)->innertext;
echo $title;
}
?>
<强> ajax_page.php 强>
从变量设置标题。
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo '
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>' . $page_title . '</title>
<meta http-equiv="content-type" content="text/htmlcharset=utf-8" />
然后,从index.php:
$page_title = "INSERT THE PAGE TITLE HERE";
require "ajax_page.php";