Разбор / получение элемента заголовка HTML из файла PHP для вызова Ajax - PullRequest
0 голосов
/ 31 декабря 2011

Я пытаюсь получить содержимое элемента title, которое содержится в операторе echo файла PHP.

Я использую файл 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?

1 Ответ

0 голосов
/ 01 января 2012

Вот что я собрал: у вас есть куча HTML-страниц. У вас есть скрипт index.php, который принимает URL-адрес, загружает HTML-код с этого URL-адреса, выменяет заголовок и затем выплевывает 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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...