PHP код останавливает нормальную загрузку сайта - PullRequest
0 голосов
/ 25 июля 2011

У меня есть этот код, чтобы получить HTML-код веб-сайта / файла и заменить некоторые части его содержимого. Позже я печатаю измененный результат

<?php
// Get a file into an array.  In this example we'll go through HTTP to get
// the HTML source of a URL.
$lines = file($link);

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {

}
?>
<?php
$old = array("document.write(", "'", ")", "&lt;a href=&quot;", "&lt;/a&gt;", "target=&quot;_blank&quot;"); 
 $new = array("", "", "", "", "", "");
 $original = htmlspecialchars($line);
 $changed = str_replace($old, $new, $original);

?>

Этот код находится в файле, я включаю этот код, используя <?php include('newfile.php'); ?>

По какой-то причине любой другой файл после включения этого файла не будет работать, например <?php include('somefile.php'); ?> или <?php get_footer(); ?>

Любая помощь будет оценена Извините за мой английский

Daniel


Я получил это: Примечание: неопределенная переменная: do_not_duplicate в /usr/local/pem/vhosts/135377/webspace/httpdocs/folder/wp-content/themes/one/index.php в строке 47 Предупреждение: in_array () : Неверный тип данных для второго аргумента в /usr/local/pem/vhosts/135377/webspace/httpdocs/folder/wp-content/themes/one/index.php в строке 47

Сообщение об ошибке не имеет ничего общего с приведенным ранее кодом, сообщение об ошибке имеет какое-то отношение к Wordpress, в строке 47 этот код: <?php while (have_posts()) : the_post(); if (in_array($post->ID, $do_not_duplicate)) continue; ?><li class="contentli">


Обновление 1

Сообщение об ошибке гласит:

Ошибка разбора: синтаксическая ошибка, неожиданный конец $ в /usr/local/pem/vhosts/135377/webspace/.../newfile.php(26): код eval () в строке 1

Ошибка разбора: синтаксическая ошибка, неожиданный конец $ в /usr/local/pem/vhosts/135377/webspace/.../newfile.php(30): код eval () в строке 1

Неустранимая ошибка: невозможно прорваться / продолжить 1 уровень в /usr/local/pem/vhosts/135377/webspace/.../newfile.php в строке 32


Обновление 2

Нет сообщения об ошибке, но содержимое нижнего колонтитула (<?php get_footer(); ?>) находится в исходном коде сайта, но невидимо для пользователей. (Если я проверю исходный код сайта, я найду все элементы файла нижнего колонтитула, но эти элементы неправильно отображаются в браузере)

Ответы [ 3 ]

0 голосов
/ 25 июля 2011

Вы используете файл function.please объявить переменную ссылки.для справки, пожалуйста, проверьте это http://php.net/manual/en/function.file.php

0 голосов
/ 25 июля 2011

Весьма вероятно, что у вас есть ошибка, но вы не знаете об этом. Итак, давайте попробуем получить больше информации. Рассмотрим следующее для верхней части файла:

<?php
error_reporting(~0);
ini_set('display_errors', 1);
// Get a file into an array.  In this example we'll go through HTTP to get
// the HTML source of a URL.

продолжить с остальной частью файла как есть. Это позволит сообщать обо всех ошибках и отображать их. Надеюсь, это поможет.

Если вы получили какие-либо ошибки, добавьте их в свой вопрос.

0 голосов
/ 25 июля 2011

Вы ничего не делаете в цикле ... возможно, код должен быть:

<?php
// Get a file into an array.  In this example we'll go through HTTP to get
// the HTML source of a URL.
$lines = file($link);

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
    $old = array("document.write(", "'", ")", "&lt;a href=&quot;", "&lt;/a&gt;", "target=&quot;_blank&quot;"); 
    $new = array("", "", "", "", "", "");
    $original = htmlspecialchars($line);
    $changed = str_replace($old, $new, $original);

} 
?>
...