PHP是否具有检测正在运行的操作系统的功能?

Vor*_*ler 9 php operating-system newline

我不知道在PHP数据库中查找哪个关键字,所以我在这里问.

我想知道的原因是因为操作系统处理文本文档中的新行有多么不同.

我在Windows中使用CSV文件但每次我想添加一个新行时,真正发生的是新行被粘贴到最新行的后面.

原因是,在Windows中,新行是这样的:\r\n 我正在使用的CSVHandler.class.php文件只添加\n

但是,在MAC OS X中,这是新行,这与windows不同.

所以我正在寻找这个,所以我可以实现一个简单的if()声明并解决这个问题.目前我已经硬编码了\r\n,但它应该更简单,不是吗?

小智 35

*"BTW,nix OS使用\n作为新行.Mc使用\ r \n,Windows - \r \n"

ARRRGH!请停止阅读这个神话!

Mac OS 9使用的就像10年前一样,但没有人再使用OS9了.MACS使用UNIX行结束.\n.今天使用的"Mac"应该指代当代计算机,就像"Windows"指的是XP或vista,除非另有限定.

说Mac使用\ r是正确的说法"Windows运行在MS-DOS之上,只支持FAT16文件系统,并且没有64位支持."

在任何情况下,任何人都不应该使用\ r进行任何操作.除非他们瞄准老屁股.


Pau*_*xon 14

PHP已经包含了常量PHP_EOL来解决你遇到的问题,从php 4.3.10和PHP 5.0.2开始 - 它包含了运行PHP的服务器的合适的行结束序列.

如果您想使用适合特定客户端的不同行尾序列,那么您必须自己编写代码.确定客户端操作系统的一种方法是使用get_browser,假设您的服务器具有最新的browscap.ini


小智 12

您可以使用预定义的常量PHP_OS.

我正在使用

if(PHP_OS ==='WINNT'){...}


Zyx*_*Zyx 5

有关服务器操作系统的信息可以通过以下php_uname()功能获得:

echo 'I have been run on '.php_uname('s');
Run Code Online (Sandbox Code Playgroud)

它还允许检索版本的完整信息.