.: 在 php include_path 中是什么意思?

Emm*_*myS 10 php

我正在尝试在运行 xampp 的机器上安装 Zend。Zend 的帮助文件说,为了设置命令行工具,我需要确保 /library 目录的内容放在我的 php include_path 指定目录中。

当我查看我的 php.ini 时,include_path 被注释掉了,但值看起来像这样:

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
Run Code Online (Sandbox Code Playgroud)

include_path 到底指向哪里?我对 Linux 还很陌生,从未见过 .: 作为文件路径的一部分。

Mar*_*ppi 7

.:实际上只是.(因为:是分隔多个路径的关键字),这意味着正在执行脚本的当前文件夹作为 include_path 的一部分包含在内。这样,当您在同一目录中有两个文件时:

index.php
include-me.php
Run Code Online (Sandbox Code Playgroud)

您可以在 PHP 中使用include('include-me.php');. 如果没有.在道路上,你将无法这样做。

因此,为了完成上述安装,您需要将内容放在/library您正在处理的脚本所在的同一文件夹中 - 或/php/includes(允许您;从 ini 文件中删除)。您还可以创建另一个目录 - 像/opt/Zend/library并添加/opt/Zend/library到您的包含路径语句中:include_path = ".:/php/includes:/opt/Zend/library"

最后 - 由于您正在运行 Ubuntu,因此建议您改用 Ubuntu 的 LAMP 设置(大多数文档都假定您正在使用)。这可以通过删除 XAMPP 并执行sudo tasksel install lamp-server将 Apache 2.2、MySQL、PHP 5.3 安装到系统上来安装。如设置 LAMP 堆栈的最简单方法是什么?


mis*_*ben 4

: 是目录列表中的分隔符。

。表示当前目录

因此,当 php 脚本查找包含文件时,它会在与 php 文件相同的目录中查找 /php/includes。