php代码不工作xampp

时间:2016-10-06 18:41:30

标签: php regex

我正在使用正则表达式执行某些操作,但下面的代码无论如何都无法在我的计算机上运行。我正在使用XAMPP包。但是,当我在这个网站https://ideone.com/nFkBnC上检查我的PHP代码时,它正在运行。为什么会这样?

<script type="text/javascript">
     function(){
        //reading of file 
     }
</script>

相同的代码在此网站上回复“工作”,但在我的电脑上却是假的。

1 个答案:

答案 0 :(得分:2)

在Windows中,换行符表示两个字符:换行后的回车:# build GNU GLOBAL ./configure --with-exuberant-ctags=/usr/local/bin/ctags sudo make install # use it export GTAGSCONF=/usr/local/share/gtags/gtags.conf export GTAGSLABEL=ctags gtags # invokes Universal Ctags internally emacs -f gtags-mode # load gtags.el + CR。在使用基于模式的实用程序时,这两个字符几乎有一种表示方式LF。但类Unix系统代表一个带有一个字符的换行符:\r\n

在Linux上的主机上运行脚本时,您的RegEx LF有效,因为\R4{3,4}\D44\D能够匹配换行符\D\n)和立即\x0A匹配。

44

但在Windows中,事情有所不同。 Here _________ | | 4 4 4 4 . 4 4 4 . 4 4 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ \x04 \x04 \x04 \x04 \x0A \x04 \x04 \x04 \x0A \x04 \x04 \DCR)匹配,但\x0DLF)之后永远不会匹配,因为您的引擎会立即查找\x0A。所以整个模式都失败了。

44

说,我相信 347 是Linux主机上 Here ______________ | | 4 4 4 4 . . 4 4 4 . . 4 4 ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ \x04 \x04 \x04 \x04 \x0D \x0A \x04 \x04 \x04 \x0D \x0A \x04 \x04 的输出, 379 来自您的Windows主机。基本数学结果是一个数字,它与输入字符串中的新行数相同:

strlen()

但如果您将RegEx更改为379 - 347 = 32 // CR characters in Windows OS ,您会看到它有效,或者您只是意味着新行,您应该将其更改为:

\R4{3,4}\D{1,2}44\D

\R4{3,4}\R44\R 匹配任何类型的换行符(例如\R + CRLFLF,...)