Php include settings file

Setting the PHP include path

This article describes several methods for setting the include path in PHP. By using include paths, you can centralize code that your web site frequently uses. Additionally, some features, such as PEAR, require you to set the include path so PHP can locate the appropriate files.

You should create the include directory at the username directory level (that is, one level above the public_html directory). This ensures that sensitive files are not in the public_html directory, which anyone can access.

Method #1: Use the PHP Selector in cPanel

If your hosting account includes the cPanel PHP Selector, this is the easiest way to change the include path. To do this, follow these steps:

  • In the SOFTWARE section of the cPanel home screen, click Select PHP Version : cPanel - Software - Select PHP Version icon
  • On the PHP Selector page, click the Options tab:
    cPanel - PHP Selector - Options tab
  • Under PHP Options , scroll down to the include_path option:
    cPanel - Software - PHP Selector - Options tab - include_path option
  • In the text box, type the include path.

    You can separate multiple directories with a colon. For example, to specify the current directory (.) and the /home/username directory in the include path, type .:/home/username .

    Method #2: Use a custom php.ini file

    You can use a custom php.ini file to specify the include path. If you have not already set up a custom php.ini file, please read this article before you proceed.

    Читайте также:  Узнать процент от суммы php

    To set the include path using a custom php.ini file, follow these steps:

    1. Open the php.ini file in an editor. You can do this by logging into your account over SSH, or by using the cPanel File Manager.
    2. Add the following line to the php.ini file. Replace username with your A2 Hosting username, and replace include_directory with the include directory’s name:
    include_path variable">username/include_directory"

    Method #3: Use the set_include_path() function

    Instead of setting the include path globally in a configuration file, you can set the path directly in a script file. To do this, you use the set_include_path() function.

    When you set the include path using this method, it is only effective for the duration of the script’s execution. The include path that you specify does not affect any other running scripts.

    The following sample code demonstrates how to set the include path using the set_include_path() function. Replace username with your A2 Hosting username:

    Method #4: Use the .htaccess file

    A few of our VPS and dedicated servers use Apache modules instead of CGI binaries to run PHP. If your server uses an Apache module to run PHP, you can modify the .htaccess file in your web site’s document root directory.

    To set the include path using the .htaccess file, follow these steps:

    1. Open the .htaccess file in an editor. You can do this by logging into your account over SSH, or by using the cPanel File Manager.
    2. Add the following line to the .htaccess file. Replace path with the include directory’s path:
    php_value include_path ".:/path"

    More Information

    • For more information about the include_path directive in php.ini files, please visit http://php.net/manual/en/ini.core.php.
    • For more information about the set_include_path() function, please visit http://php.net/manual/en/function.set-include-path.php.

    Article Details

    • What is PHP?
    • PHP script basics
    • Viewing PHP settings
    • Changing PHP settings and versions
    • Custom php.ini files
    • Using php.ini directives
    • Custom .htaccess files for PHP settings
    • Using PHP directives in custom .htaccess files
    • Run PHP scripts from cron jobs
    • Using PHP to send e-mail messages
    • PHP include paths
    • PEAR packages
    • Determining if a PHP function is available
    • ‘500 Internal Server Error’ while running PHP
    • ‘String could not be parsed as XML’ error message in PHP
    • Using the Exif extension in PHP
    • Common issues after PHP upgrade
    • Using a custom php.ini file for cPanel cron jobs
    • Using PHP sessions
    • ionCube PHP Loader support
    • Specifying the MySQL character set in PHP
    • ‘Unable to allocate memory for pool’ error message in PHP
    • Optimizing Symfony using APC
    • Using the internationalization extension in PHP
    • Installing PHP composer
    • Determining if APC is installed on a server
    • Using the MailChimp API with PHP
    • ‘Allowed memory size exhausted’ error message in PHP
    • Using ionCube Loader with different PHP versions
    • Enabling PHP opcode caching
    • Sending e-mail with PHPMailer
    • Hardening PHP 7 and earlier versions
    • Custom PHP settings per directory with .user.ini files
    • ionCube PHP Loader unavailable on PHP 8.0
    • Changing the PHP version for a specific directory

    Grow Your Web Business

    Subscribe to receive weekly cutting edge tips, strategies, and news you need to grow your web business.

    No charge. Unsubscribe anytime.

    Did you find this article helpful? Then you’ll love our support. Experience the A2 Hosting difference today and get a pre-secured, pre-optimized website. Check out our web hosting plans today.

    Hosting

    Источник

    include

    Выражение include включает и выполняет указанный файл.

    Документация ниже также относится к выражению require .

    Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку. Конструкция include выдаст warning, если не сможет найти файл; поведение отлично от require , который выдаст фатальную ошибку.

    Если путь указан — не важно, абсолютный (начинающийся с буквы диска или с \ в Windows или с / в Unix/Linux системах) или относительно текущей директории (начинающийся с . или ..) — директива include_path будет проигнорирована в любом случае. К примеру, если начинается с ../, парсер проверит родительскую директорию на наличие запрошенного файла.

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

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

    Пример #1 Простой пример include

    $color = ‘green’ ;
    $fruit = ‘apple’ ;

    echo «A $color $fruit » ; // A green apple

    Если включение происходит внутри функции включающего файла, тогда весь код, содержащийся во включаемом файле, будет вести себя так, как будто он был определен внутри этой функции. То есть, он будет в той же области видимости переменных этой функции. Исключением к этому правилу являются магические константы, которые выполняются парсером перед тем, как происходит включение.

    Пример #2 Включение внутри функции

    function foo ()
    global $color ;

    /* vars.php в той же области видимости, что и foo(), *
    * поэтому $fruit НЕ доступен снаружи этой области *
    * $color доступен, поскольку мы переменную глобальной */

    foo (); // A green apple
    echo «A $color $fruit » ; // A green

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

    Если «обертки URL include» включены в PHP, вы можете также указать файл для включения через URL (с помощью HTTP или других поддерживающихся обработчиков — смотри Поддерживаемые протоколы и обработчики (wrappers) для списка протоколов) вместо локального пути. Если целевой сервер интерпретирует указанный файл как PHP код, могут быть переданы переменные во включаемый файл с помощью строки URL-запроса, как если бы использовался метод HTTP GET. Это, строго говоря, не тоже самое, что включение файла и наследование родительской области видимости; скрипт выполняется на удаленном сервере и результат выполнения включается в локальный скрипт.

    Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если включена опция allow_url_fopen.

    Пример #3 Пример include через HTTP

    /* В этом примере предполагается, что www.example.com настроен на обработку .php
    * файлов, но не .txt. Также, ‘Works’ обозначает, что переменные
    * $foo и $bar доступны внутри включаемого файла. */

    // Не сработает; file.txt не обрабатывается www.example.com как PHP
    include ‘http://www.example.com/file.txt?foo=1&bar=2’ ;

    // Сработает.
    include ‘http://www.example.com/file.php?foo=1&bar=2’ ;

    $foo = 1 ;
    $bar = 2 ;
    include ‘file.txt’ ; // Сработает.
    include ‘file.php’ ; // Сработает.

    Предупреждение безопасности

    Удаленные файлы могут быть обработаны на удаленной стороне (в зависимости от расширения файла и того, что удаленный сервер выполняет скрипты PHP или нет), но это все равно должно производить валидный PHP скрипт, потому что он будет затем обработан уже на локальном сервере. Если файл с удаленного сервера должен быть обработан там и выведен его результат, предпочтительнее воспользоваться функцией readfile() В противном случае, должны быть предусмотрены дополнительные меры, чтобы обезопасить удаленный скрипт от ошибок и нежелательного кода.

    Смотрите также раздел Удаленные файлы, функции fopen() и file() для дополнительной информации.

    Обработка возвращаемых значений: оператор include возвращает значение FALSE при ошибке и выдает предупреждение. Успешные включения, пока это не переопределено во включаемом файле, возвращают значение 1. Возможно выполнить выражение return внутри включаемого файла, чтобы завершить процесс выполнения в этом файле и вернуться к выполнению включающего файла. Также, возможно вернуть значение из включаемых файлов. Вы можете получить значение включения как если бы вы вызвали обычную функцию. Хотя это не возможно при включении удаленного файла, только если вывод удаленного файла не содержит правильные теги начала и конца PHP кода (так же, как и локальный файл). Вы можете определить необходимые переменные внутри этих тегов и они будут представлены в том месте, где файл был включен.

    Так как include — это специальная языковая конструкция, круглые скобки не обязательны для заключения аргумента. Будьте осторожны при сравнении возвращаемого значения.

    Пример #4 Сравнение возвращаемого значения при include

    // не сработает, интерпретируется как include((‘vars.php’) == ‘OK’), т.е. include(»)
    if (include( ‘vars.php’ ) == ‘OK’ ) echo ‘OK’ ;
    >

    // сработает
    if ((include ‘vars.php’ ) == ‘OK’ ) echo ‘OK’ ;
    >
    ?>

    Пример #5 Выражения include и return

    $bar имеет значение 1, т.к. включение файла произошло успешно. Заметьте разницу между примерами сверху. Первый использует return внутри включаемого файла, тогда как второй не использует. Если файл не может быть включен, возвращается FALSE и возникает E_WARNING .

    Если во включаемом файле определены функции, они могут быть использованы в главном файле вне зависимости от того, были ли они объявлены до return или после. Если файл включается дважды, PHP 5 выдаст фатальную ошибку, потому что функции уже были определены, в то время как PHP 4 не обратил бы внимания на функции, определенные после return . Рекомендуется использовать include_once вместо того, чтобы проверять был ли уже файл включен ранее.

    Другой путь «включить» PHP файл в переменную — это захватить вывод используя Функции контроля вывода с include. К примеру:

    Пример #6 Использование буферизированного вывода для включения PHP файла в строку

    $string = get_include_contents ( ‘somefile.php’ );

    function get_include_contents ( $filename ) if ( is_file ( $filename )) ob_start ();
    include $filename ;
    return ob_get_clean ();
    >
    return false ;
    >

    Для того, чтобы включать файлы автоматически в скрипты, обратите внимание на конфигурационные директивы auto_prepend_file и auto_append_file в php.ini .

    Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

    Источник

  • Оцените статью