Путь к файлу - не работает, прошу помочь.

12
S
На сайте с 30.09.2009
Offline
116
911

Ребята. Есть код в файле

  

// Сохранение кэш-файла с контентом
$fp = fopen('/cache/'.$fname.'.cache', 'w');
fwrite($fp, $buffer);
fclose($fp);

Этот код выполняется на страницах в корневой папке и на страницах в папке proizvoditeli/

Перепробовал все варианты написания пути к файлу, либо те либо те страницы выдают ошибку. Прошу помочь.

Перелинковку сделал. Теперь думаю куда потратить денежки - сапа, мира или блоги :)
AlikZP
На сайте с 22.11.2009
Offline
107
#1

$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/cache/'.$fname.'.cache', 'w');

Website CMS: быстрая, удобная, недорогая! Вечная лицензия за 45$ (/ru/forum/524503) Яся - быстрый поиск фото для товаров. OpenCart/ocStore. Дополнение. (/ru/forum/665287) Грамотная верстка ваших макетов (/ru/forum/comment/8853216)
O
На сайте с 06.08.2010
Offline
2
#2

плюс проверь права на запись в папку кеша =)

Ну и на кой мне эта подпись?..
S
На сайте с 30.09.2009
Offline
116
#3
AlikZP:
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/cache/'.$fname.'.cache', 'w');

Спасибо, если не сложно - теперь проблема с

include ("./cache/$fname.cache");

на страницах внутренних - ошибка.

Подскажите пож-та как этот путь правильно прописать?

stroydomen добавил 26.08.2010 в 14:45

Opupenko:
плюс проверь права на запись в папку кеша =)

права 777. ок

AlikZP
На сайте с 22.11.2009
Offline
107
#4

include ("/cache/$fname.cache");

O
На сайте с 06.08.2010
Offline
2
#5

не используй точку, также в двойных кавычках "оборачивай" переменные фигурными скобками, попробуй

include (dirname(__FILE__) . "/cache/{$fname}.cache");

сам я пишу так:

include dirname(__FILE__) . '/cache/' . $fname . '.cache';

кстати, ты бы еще сами ошибки приводил сюда, чтоб мы не терялись в догадках об их природе =)))

S
На сайте с 30.09.2009
Offline
116
#6
Opupenko:
не используй точку, также в двойных кавычках "оборачивай" переменные фигурными скобками, попробуй
include (dirname(__FILE__) . "/cache/{$fname}.cache");
сам я пишу так:
include dirname(__FILE__) . '/cache/' . $fname . '.cache';

кстати, ты бы еще сами ошибки приводил сюда, чтоб мы не терялись в догадках об их природе =)))

Так а если пишете с точками переменную, зачем советуете без? :)

stroydomen добавил 26.08.2010 в 15:23

Opupenko:
include (dirname(__FILE__) . "/cache/{$fname}.cache");
QUOTE]

В таком варианте ошибка
[function.include]: failed to open stream: No such file or directory in 


Во втором варианте таже ошибка
Ладно, сделал через if else код видит в какой он странице и дает тот или иной путь к файлу.
AlikZP
На сайте с 22.11.2009
Offline
107
#7
stroydomen:
Так а если пишете с точками переменную, зачем советуете без? :)

У него точки разделяют переменную и строковое выражение.

Мой вариант работает?

include ("/cache/$fname.cache");
O
На сайте с 06.08.2010
Offline
2
#8

я про точку когда говорил, имел в виду точку в пути, т.е. текущий каталог, вместо нее лучше всегда юзать dirname(__FILE__)

S
На сайте с 30.09.2009
Offline
116
#9
AlikZP:
У него точки разделяют переменную и строковое выражение.

Мой вариант работает?
include ("/cache/$fname.cache");

Нет. Это було среди тех вариантов, о которых я написал, что не сделать мне и все варианты перепробовал.

pikasso
На сайте с 27.01.2008
Offline
150
#10

ТопеГ просто жесть, вы про Debug слышали ? О_о

По теме:

include (realpath(".")."/cache/".$fname.".cache'); 

А вообще скажите, неужили сложно написать так:

echo  dirname(__FILE__) . '/cache/' . $fname . '.cache';

И посмотреть какой именно путь прописываете и подправить ошибку ?🤣

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий