@mascai

Как открыть текстовый файл в битрикс?

Я пытаюсь открыть файл, который находится на одном уровне с init.php

Пробовал несколько вариантов
if ($file = fopen("~/mysite.ru/public_html/bitrix/php_interface/emails.txt", "r")) // returns false
if ($file = fopen("emails.txt", "r"))
if ($file = fopen(__DIR__."emails.txt", "r"))


Имя файла правильное, как мне понять в чем причина?
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 2
@humoured
Вы всё на свете найдёте в коробке с карандашами
Все ваши варианты используют пути, относительно файла, который их использует. В каком-то файле они могут работать верно, в каком-то — нет.

Для Bitrix есть список констант: https://training.bitrix24.com/api_help/main/consta..., среди них, кажется, есть полезные, например SITE_DIR — посмотрите её значение.
В любом случае, адрес можно составить вот так:
$_SERVER["DOCUMENT_ROOT"] . '/bitrix/php_interface/emails.txt'
.
Ответ написан
Adamos
@Adamos
Первый вариант требует от функции раскрыть ~/ - чего она, похоже, не делает.
Второй нацеливается на файл в папке исполнения скрипта (а не на путь, где этот скрипт лежит).
Третий, скорее всего, просто упускает / между путем и именем файла ;)

Лучше всего, как сказано выше, отталкиваться от DOCUMENT_ROOT - сайты меняют хостинги и пути, скрипты перетасовываются... а еще лучше вообще не делать таких вещей.
Потому что файлы, лежащие в пределах веб-сервера, доступны не только вашим скриптам, но и внешним запросам. А это далеко не всегда то, что вы имели в виду.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы