[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: file_get_contents не принимает параметр
Nuzhser
Эту тему создал сначала в разделе для начинающих но не получил ответа

Этот код работает, выводится содержание файла

define('DIR_SYSTEM', 'C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\system/');
$test = DIR_SYSTEM . 'engine/action.php';
$data = file_get_contents($test);
$data = htmlspecialchars($data, ENT_QUOTES);
echo $data;



Этот не выводит ничего кроме ошибки Warning: file_get_contents(DIR_SYSTEM . 'engine/action.php'): failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php-LIBRARY\Test.php on line 24

define('DIR_SYSTEM', 'C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\system/');
$fg = "require_once(DIR_SYSTEM . 'engine/action.php')";
$find = array("require_once(", "require(", ")");
$df = str_replace($find, "", $fg);
//echo $df; - отобразит на экране - DIR_SYSTEM . 'engine/action.php'
echo $df;
$cache = file_get_contents($df);
$cache = htmlspecialchars($cache, ENT_QUOTES);
echo $cache . "<br>";

Насколько догадываюсь file_get_contents() не хочет понимать текст - "require_once(DIR_SYSTEM . 'engine/action.php')", но как ему правильно передать этот папраметр если он скажем получен путем preg_match_all()?



Спустя 18 минут, 24 секунды (28.07.2011 - 11:59) Nikitian написал(а):
echo $df;[php]
Замените на
[php]
eval($df);

Но это какой-то извращенческий способ. Старайтесь не использовать eval() и код, записанный в строковые переменные.

Спустя 3 часа, 14 минут, 4 секунды (28.07.2011 - 15:13) twin написал(а):
Как то так?
 define('DIR_SYSTEM', 'C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\system/'); 
$df = "require_once(DIR_SYSTEM . 'engine/action.php')";
$find = array("require_once(", "require(", ")", "'");
$df = str_replace($find, "", $df);
$df = str_replace('DIR_SYSTEM . ', DIR_SYSTEM, $df);

Спустя 16 минут, 48 секунд (28.07.2011 - 15:30) Nuzhser написал(а):
eval я уже использовал он не работает. по крайней мере так как вы и я пробовал

Twin привет!
$df = str_replace('DIR_SYSTEM . ', DIR_SYSTEM, $df); - хорошая идея но тоже не работает видно DIR_SYSTEM все равно остается текстом и не читается функцией file_get_contents()

Это тоже не работает
$pieces = explode(".", $df);
if(count($pieces)>1){
$con = $pieces[0];
$constant = constant($con);
$fullpath = $constant . $pieces[1] . "." . $pieces[2];

А прописать просто - работает
$test = DIR_SYSTEM . 'engine/action.php';
$data = file_get_contents($test);
$data = htmlspecialchars($data, ENT_QUOTES);
echo $data;

но мне надо именно с текста вытянуть поскольку текст я получаю
через file_get_contents с другого файла
Может я хочу невозможного?

Спустя 19 минут, 48 секунд (28.07.2011 - 15:50) twin написал(а):
Все работает. Внимательнее просто разберись.

Спустя 1 час, 34 минуты, 56 секунд (28.07.2011 - 17:25) Nuzhser написал(а):
Twin я же все таки хотел чтобы ты разобрался а мне на все готовое прошу-с.
Спасибо за умную подсказку. Всетаки русские сильнее чем англичане(в этот раз) - те уже два дня думают что мне надо от них.
Чтобы заработало мне пришлось добавить еще одну строчку дабы убрать лишние апострофы в конце пути, сразу после твоей строчки

$df = str_replace("'", "", $df);



_____________
Лэт ит би
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.