PHP включает: проблема длинного пути - PullRequest
5 голосов
/ 08 декабря 2011

Когда я пытаюсь указать длинный путь к файлу, PHP include не загружается.Короткий путь включения работает нормально.

Например, произойдет сбой следующего:

../../contents/2010-St-Louis-Rams-Tickets-Season-Package-Includes-Tickets-For-All-Regular-Season-Home-Games/inc/title.inc

Кто-нибудь знает, где может быть проблема?

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Проверьте, не превышает ли ваш путь (включая имя диска и т. Д.) 260 символов.Потому что это максимальная длина каталога для Windows. Нажмите здесь, чтобы увидеть ссылку .

В ссылке также указывается, что существует возможность создания сверхдлинных имен путей, добавляя к имени пути \ "?Это должно увеличить максимальную длину пути до 32767 символов.Но я понятия не имею, может ли это быть использовано в PHP.

0 голосов
/ 02 августа 2012

У меня была такая же проблема с проектом Symfony 1.x при написании тестов, которые выглядели примерно так:

require_once __DIR__ . '/../../../../bootstrap/unit.php';
require_once __DIR__ . '/../../../../../../../MY/LONG/PATH.php'

Дело в том, что эти /../../ .. занимают много места для символов. В моем случае, если бы они не использовались, это сработало бы.

В symfony вы можете получить корневой каталог вашего проекта, вызвав sfConfig :: get ('sf_root_dir'), и, таким образом, я могу изменить свой код следующим образом:

require_once __DIR__ . '/../../../../bootstrap/unit.php';
require_once sfConfig::get('sf_root_dir') . '/MY/LONG/PATH.php'

Это работает (в моем случае) отлично.

Хотя здесь я использую корневой каталог, предоставляемый фреймворком Symfony, в вашем собственном проекте это просто вопрос определения корневого каталога проекта и обеспечения его доступности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...