Это должно решить вашу проблему:
include dirname(__FILE__)."/formextras.php";
__FILE__
- магическая константа, включающая полное имя файла и путь к текущему файлу. dirname
устанавливает путь, так что теперь точно такой же , что и form.php
(без необходимости знать, где находится form.php) ... отсюда вы можете перейти вверх (..) или вниз (включить /) дерева, или просто ссылаться на другой файл в той же папке.
Стоит отметить, что по умолчанию include / require всегда относится к странице, выполняемой в данный момент . Если к form.php
имеется прямой доступ (не включенный на другой странице), то вы можете просто сказать include "formextras.php";
, что означает, что formextras.php
должно быть в том же каталоге, или include "includes/formextras.php";
, то есть formextras.php
в подкаталоге включает в себя form.php
.
Это благословение и проклятие, если у вас есть index.php
, который включает form.php
, который затем включает formextras.php
, тогда относительное включение в form.php
от index.php
, а не form.php
... dirname(__FILE__)
обходит это.
Обновление PHP 5.3 +
Как вы указали, в PHP 5.3 введена новая магическая константа под названием __DIR__
, которая сообщает то же самое, что и dirname(__FILE__)
... если вы можете гарантировать, что 5.3 установлена везде, где это более чистое решение.