#php #file-get-contents
#php #file-get-contents
Вопрос:
Мне нужно использовать некоторые теги PHP для файла (вложенного файла), который вызывается в шаблоне с использованием file_get_contents(вложенного файла).
Я изначально использовал require(вложенный файл) вместо file_get_contents() . Но это не совсем работает, так как мой контент размещается не в том месте. А также я не могу изменить файл шаблона, чтобы использовать require() .
мой шаблон выглядит примерно так:
//TEMPLATE FILE.php
$html = file_get_contents(subFile); //I CAN NOT CHANGE THIS FILE
Затем мой вложенный файл, тот, который я могу изменить.
//SUB FILE.php
<div>Hello world, today is <?php echo date($mydate);?> </div>
Поскольку он вызывается с помощью file_get_contents(), он выводит
Hello world, today is <?php echo date($mydate);?>
Вместо:
Hello world, today is Thursday.
Итак, учитывая, что я не могу изменить TEMPLATE FILE.php
, где используется file_get_content() .
Я подумал, есть ли способ, которым я могу обернуть содержимое SUB FILE.php таким образом, он обработал бы PHP, прежде чем разрешить его вызов с помощью TEMPLATE FILE.php
.
Что-то вроде этого я ищу
//SUB FILE.php
<force Process the PHP ?>
<div>Hello world, today is <?php echo date($mydate);?> </div>
<Finishe Force Process ?>
<allow it to be called via file_get_content();
Если бы я мог изменить файл шаблона, я мог бы использовать htmlspecialchars_decode(); но я не могу.
К сожалению, я не смог найти способ сделать это, поэтому в итоге я получаю это
ob_start();
$output = include (Dir/SubFile);
$output = ob_get_contents();
ob_end_clean();
$html = $output;
//$html = file_get_contents(subFile); The way it was
Комментарии:
1. Можете ли вы получить доступ к вложенному файлу через веб-сервер? Тогда вы можете сделать
file_get_contents("http://localhost/subFile.php");
, и PHP будет выполнен.2. Проблема в том, что я не могу создать файл шаблона, в котором выполняется file_get_contents(). 🙁
3. Тогда, я думаю, вам не повезло. Вы не можете исправить это, изменив вложенный файл, это должно быть сделано в сценарии, который его использует.
4. Сценарий шаблона просто читает файл, и чтение файла не выполняет его.
5.
file_get_contents
иrequire
выполняют две совершенно разные функции. в первом случае вы буквально считываете данные файла, тогда как во втором добавляется содержимое содержимого переданного файла как PHP, где оно включено.
Ответ №1:
Ниже приведен пример официального руководства
$homepage = file_get_contents('http://www.example.com');
echo $homepage;
попробуйте это:
file_get_contents('http://YourDomain/Yoursubfile');
Ответ №2:
Вы не можете использовать <?php echo $a; ?>
для отображения содержимого переменной $a . Потому что вы получите обычный HTML-контент из вашего вложенного файла.
Что вы можете сделать, так это:-
Шаг 1: my_date.php
<?php
$today = date('M-d-Y');
$subfile_html = file_get_contents(subFile); //Path to my_date1.html or my_date1.php
echo $new_html_content = str_replace('{TODAYS_DATE}', $today, $subfile_html); // It will replace the occurance {TODAYS_DATE} with today's date
// OUTPUT:
// Hello world, today is June 20 2014
?>
Шаг 2: my_date1.html или my_date1.php
<div> Hello world, today is {TODAYS_DATE} </div>