`
txf2004
  • 浏览: 7040165 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP在windows和LINUX下的路径分隔符 DIRECTORY_SEPARATOR

阅读更多

众所周知,windows下的是\和/,而LINUX下的是/

在程序本地运行很正常,上传到服务器后,发现图片没有显示出来,图片链接是绝对路径 var/,而且当中带有 \ 但是我记得这个路径已经处理成相对路径的
$path = dirname(dirname(dirname(__FILE__))).'\\';
$search = array( $path, '\\');
$replace = array( '', '/');
return str_replace($search,$replace,$this->tempfolder).$this->filename_prefix.$public.'.jpg';
可以各位也看出来了,第一行代码的用在LINUX “\\”, 就不行。

解决的办法是 用PHP 预定义常量DIRECTORY_SEPARATOR来代替'\','/'这样的路径分隔符,以前觉得既然windows,LINUX 都支持/,那都用成 / 得了,这是没错的。可是从这个例子可以看出,当要对路径字符串进行处理的时候,就比较危险了,所以最好还是用DIRECTORY_SEPARATOR吧

分享到:
评论

相关推荐

    PHP常量DIRECTORY_SEPARATOR原理及用法解析

    由于Windows系统和Linux/Unix系统中路径分隔符不同,`DIRECTORY_SEPARATOR` 提供了一种跨平台兼容的方式来处理路径。在Windows系统中,目录分隔符通常是反斜杠 `\`,而在Linux/Unix系统中,目录分隔符是正斜杠 `/`。...

    php中常量DIRECTORY_SEPARATOR用法深入分析

    由于不同操作系统中,文件路径分隔符存在差异,尤其是在 Windows 和 Linux 系统中,路径分隔符的不一致性常给开发者带来困扰。例如,在 Windows 中,文件路径可以用正斜杠(/)或反斜杠(\)作为分隔符,而在 Linux ...

    解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用

    在Unix-like系统(包括Linux和macOS)中,路径分隔符是正斜线 `/`,而在Windows系统中,路径分隔符是反斜线 `\`。例如,如果你需要创建一个跨平台的目录路径,可以这样做: ```php $directory = "my_directory" . ...

    phpPATH_SEPARATOR判断当前服务器系统类型实例

    例如,当处理文件路径时,Linux和Windows的路径分隔符不同,Linux使用正斜杠 `/`,而Windows使用反斜杠 `\`。如果知道系统类型,就可以根据需要选择合适的分隔符,确保代码在不同环境下都能正常工作。 另外,`PATH_...

    set_include_path在win和linux下的区别

    总的来说,`set_include_path` 在 Windows 和 Linux 下的主要区别在于路径分隔符:Windows 使用 `;`,Linux 使用 `:`。通过使用 `PATH_SEPARATOR`,我们可以编写兼容两种操作系统的代码,避免因路径设置不正确而导致...

    php $_SERVER windows系统与linux系统下的区别说明

    在Windows上,路径分隔符是 `\`,而在Linux或Unix系统中,它是 `/`。使用 `DIRECTORY_SEPARATOR` 常量可以跨平台地处理路径: ```php $path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'filename.ext'; ``` 4...

    PHP预定义常量详解.md

    - **`DIRECTORY_SEPARATOR`**: 目录分隔符,在不同的操作系统上有不同的值,如在Windows上是“\”,而在Unix/Linux上是“/”。 这些常量可以帮助开发者编写跨平台兼容的代码,避免因路径格式不同而导致的问题。 ##...

    php批量上传图片---

    在PHP中,推荐使用`DIRECTORY_SEPARATOR`常量,它会根据操作系统返回正确的分隔符。 - **文件权限**:在Linux系统中,需要设置合适的文件权限,例如`chmod()`函数用于改变文件权限。确保PHP运行用户对上传目录有读写...

    php代码-php 获取路径中的目录信息

    PHP的`DIRECTORY_SEPARATOR`常量可以提供与当前操作系统兼容的路径分隔符,例如`"/path" . DIRECTORY_SEPARATOR . "to" . DIRECTORY_SEPARATOR . "file"`。 最后,`chdir()`函数可以改变当前工作目录,这对于在执行...

    PHP在线解压缩程序

    Linux使用正斜杠(`/`)作为路径分隔符,而Windows使用反斜杠(`\`)。在PHP中,推荐使用`DIRECTORY_SEPARATOR`常量来确保路径的兼容性。 为了实现在线功能,这些PHP脚本需要与前端交互,通常通过AJAX或者HTML表单提交...

    PHP程序设计-3期(KC016) 经验技巧2-1 PHP语法规则.doc

    `DIRECTORY_SEPARATOR`则用于获取当前系统中的目录分隔符,通常在跨平台的代码中很有用。`PHP_EOL`代表当前系统的换行符,确保代码在不同操作系统下的显示一致性。`PHP_VERSION`提供了当前PHP的版本信息,这对于诊断...

    php重要知识点总结(PHP网络开发必背).doc

    - `DIRECTORY_SEPARATOR`: 根据系统返回目录分隔符,例如Windows上的`\`或Linux上的`/`。 - `PATH_SEPARATOR`: 分隔环境变量的目录列表,例如Unix的`:`或Windows的`;`。 3. **错误和异常处理**: - `@`符号:...

    php重要知识点总结PHP网络开发必背.doc

    - `DIRECTORY_SEPARATOR`:根据系统返回目录分隔符,例如在Windows上是`\`,在Unix/Linux上是`/`。 - `PATH_SEPARATOR`:环境变量中的目录列表分隔符,Windows上是`;`,Unix/Linux上是`:`。 3. **错误处理**: -...

    php代码-分割目录方法

    在路径处理中,通常使用`DIRECTORY_SEPARATOR`常量作为分隔符,因为它是平台无关的,能在Windows、Linux和MacOS等操作系统上正确工作。 ```php $path = "/home/user/documents/file.txt"; $parts = explode...

    PHP常用函数手册 (自动保存的).docx

    - **示例**: 在Windows下,`DIRECTORY_SEPARATOR` 是 `\`;在Linux下,是 `/`。 **define()** - **功能**: 定义常量。 - **用法**: `define('NAME', VALUE, CASE_SENSITIVE)`。 - **示例**: `define('BLOGGUY_CNR_...

    php代码-相对路径转绝对路径

    - 不同的服务器环境和文件系统可能会影响路径处理,例如Windows和Linux系统的路径分隔符不同(Windows使用反斜杠,Linux/Unix使用正斜杠)。 5. **实战应用** 在实际项目中,比如处理用户上传的文件、读取配置...

    如何使用php判断所处服务器操作系统的类型

    在Windows系统中,路径分隔符为分号(;),而在Unix-like系统中为冒号(:)。 ```php <?php if(PATH_SEPARATOR==':'){ echo 'This server is running a Unix-like operating system.'; }else{ echo 'This server ...

Global site tag (gtag.js) - Google Analytics