Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/68: Рейтинг темы: голосов - 68, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 24.10.2010
Сообщений: 9

Как грамотно задать путь к файлу в file_get_contents()?

12.08.2012, 20:16. Показов 14405. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Проблема следующая: имеется функция show_user_widget(), показывающая виджет входа на сайт:

PHP
1
2
3
4
5
6
7
//Виджет регистрации/авторизации на сайте
function show_user_widget($head) {
...
 $txt = file_get_contents("/users/admin.html");
 $txt = str_replace("{username}", $str['firstname']." ".$str['lastname'], $txt);
 echo $txt;
}
Эту функцию я вызываю в нескольких php файлах: в файле index.php (чтобы показать сам виджет) и в скрипте users/reg.php, который также показывает этот виджет. Скрипт users/reg.php вызывается AJAX запросом.

Загвоздка в том, как прописать путь, в 4й строке кода выше в функции file_get_contents(), ибо вызов show_user_widget($head) в файле index.php происходит нормально, а при вызове из users/reg.php пишет что не найден файл:

Warning: file_get_contents(users/admin.html) [function.file-get-contents]: failed to open stream: No such file or directory in Z:\home\test1.ru\www\includes\widgets.ph p on line 91
Искал в официальной документации по file_get_contents, но ничего не нашёл. Задавать полный путь до файла, так понимаю, не выход.

Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.08.2012, 20:16
Ответы с готовыми решениями:

Как скрыть путь к файлу?
Подскажите как средствами пхп скрыть путь к файлу на сервере... т.е. есть "файл.ехе" есть прямой путь к нему... мне надо этот путь...

Include file_get_contents относительный путь
$file = 'Compile.js.tpl'; include $file; $tpl = file_get_contents($file); echo $tpl;Вторая строчка нормально включает указанный файл...

Разбить путь к файлу на части - путь, файл и расширение
Как разбить путь к файлу на части - путь, файл и расширение? Например: c:\kuku\part1\name.txt $path=c:\kuku\part1\ $name=name ...

12
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.08.2012, 20:21
так зачем вы пишете users/admin.html если вы уже в ней и так находитесь, в этой папке? пишите просто admin.html
1
239 / 236 / 43
Регистрация: 16.03.2011
Сообщений: 750
12.08.2012, 20:26
PHP
1
echo realpath('users\admin.html');
Если не чего не возвращает значит ошибка в пути.
1
1 / 1 / 0
Регистрация: 24.10.2010
Сообщений: 9
12.08.2012, 20:32  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
так зачем вы пишете users/admin.html если вы уже в ней и так находитесь, в этой папке? пишите просто admin.html
Структура файлов и папок следующая:

www.mysite.ru/index.php (здесь вызывается show_user_widget() и работает правильно)
www.mysite.ru/includes/widgets.php (в файле находится функция show_user_widget())
www.mysite.ru/includes/js/ajax.js (здесь вызывается функция show_user_widget() работает НЕ правильно)
www.mysite.ru/users/admin.html (сам шаблон виджета, который использует функция show_user_widget())

Я нахожусь на index.php, путь к файлу users/admin.html верный. Но когда я вызываю функцию из www.mysite.ru/includes/js/ajax.js путь уже не правильный.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.08.2012, 20:36
если только функцию изменять.лучше всего наверное - передавайте адрес туда аргументом
PHP
1
2
3
function show_user_widget($path) {
....
}
а потом вызываете соответственно в корневой директории с адресом папки, в других просто без папки
1
29 / 29 / 4
Регистрация: 08.12.2009
Сообщений: 106
12.08.2012, 20:36
попробуйте указывать от корня сайта /user/admin.html или как там у вас
1
1 / 1 / 0
Регистрация: 24.10.2010
Сообщений: 9
12.08.2012, 20:40  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
если только функцию изменять.лучше всего наверное - передавайте адрес туда аргументом
PHP
1
2
3
function show_user_widget($path) {
....
}
а потом вызываете соответственно в корневой директории с адресом папки, в других просто без папки
Так наверно и придется.

Цитата Сообщение от GuardNW Посмотреть сообщение
попробуйте указывать от корня сайта /user/admin.html или как там у вас
Пробовал. Так же пишет что файл не найден.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.08.2012, 20:42
Цитата Сообщение от FatalStrike Посмотреть сообщение
Пробовал. Так же пишет что файл не найден.
для этого надо установить корневую директорию для подключения файлов
PHP
1
ini_set('include_path','path/to/root');
0
1 / 1 / 0
Регистрация: 24.10.2010
Сообщений: 9
12.08.2012, 20:55  [ТС]
В файле index.php добавил строку:

PHP
1
ini_set('include_path', getenv('DOCUMENT_ROOT'));
В функции изменил путь на:

PHP
1
$txt = file_get_contents("/users/admin.html");
А результат тот же:

Warning: file_get_contents(/users/admin.html) [function.file-get-contents]: failed to open stream: No such file or directory in Z:\home\test1.ru\www\includes\widgets.ph p on line 94
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.08.2012, 20:56
вот так попробуй
PHP
1
$txt = file_get_contents("users/admin.html");
0
1 / 1 / 0
Регистрация: 24.10.2010
Сообщений: 9
12.08.2012, 21:03  [ТС]
Ничего не изменилось. В index.php вызывается без ошибки, а когда с помощью ajax вызываю то

Warning: file_get_contents(users/admin.html) [function.file-get-contents]: failed to open stream: No such file or directory in Z:\home\test1.ru\www\includes\widgets.ph p on line 94
Я только недавно начал изучать web программирование. Пытаюсь разделять html и php код таким образом. Это правильно вообще и используют ли это профессионалы? Или есть другой способ?
0
29 / 29 / 4
Регистрация: 08.12.2009
Сообщений: 106
12.08.2012, 21:46
А как вы вызываете функцию?
0
1 / 1 / 0
Регистрация: 24.10.2010
Сообщений: 9
13.08.2012, 09:23  [ТС]
Цитата Сообщение от GuardNW Посмотреть сообщение
А как вы вызываете функцию?
Сейчас я упрощённо приведу пример.
Файл Корень/includes/functions.php:
PHP
1
2
3
4
function show_txt() {
 $txt = file_get_contents("files/file.html");
 echo $txt; 
}
Файл Корень/index.php:
PHP
1
2
3
4
<?php 
include "/includes/functions.php";
ini_set('include_path', getenv('DOCUMENT_ROOT'));
"Функция возвращает: ".show_txt(); ?>
Файл Корень/users/phpscript.php:
PHP
1
2
3
4
<?php 
include "/includes/functions.php";
"Функция возвращает: ".show_txt();
?>
Файл Корень/js/javascript.js:
JavaScript
1
2
3
4
5
6
7
8
9
$(document).ready(function() {
 $.ajax ({
  type: "POST",
  url: "/includes/phpscript.php",
  success: function(html) {
   document.write(html);
  }
 });
});
Вот. И функция show_txt() в файле Корень/index.php выведет содержимое файла нормально, а скрипт /users/phpscript.php напишет ошибку, что файла files/file.html не существует. Как поступить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.08.2012, 09:23
Помогаю со студенческими работами здесь

Как указать путь к файлу на сервере?
Корневая папка сервера -Папка сайта -public_html -Папка с файлами -blocks ...

Как правильно формировать путь к файлу, при разработке на Open Server?
Пишу вопрос в эту тему, а не в тему к новичкам. На первый взгляд все кажется просто, но скорее всего это не так. Поэтому описываю простые...

Как правильно задать путь в ссылке?
Доброго времени суток всем! Вот такая проблема: см вложение если &quot;ходить по меню&quot; в файле /subdir/indexp.php оно...

Как правильно задать путь к файлам?
Не уверен что это относится именно к php, но это с ними связано. Давайте сразу на примере. Есть файл в корне...

Как получить путь от домена сайта к текущему файлу, который подключен через require?
Файл подключается кодом require('/vp/index.php') Мне нужно из этого файла получить путь типа http://z912.bget.ru/vp/index.php ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru