V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
garth
V2EX  ›  Linux

不解析从 Windows 复制过来的 PHP,奇怪

  •  
  •   garth ·
    imgarth · 2014-03-28 00:17:33 +08:00 · 3852 次点击
    这是一个创建于 3674 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原来是在Windows上安装了XAMPP环境测试写PHP的,现在写好了,放到linux上,/var/www/下面的一个子目录里,发现不能解析PHP,html的都可以正常显示。而且,直接在/var/www根目录下创建PHP是可以被成功解析的,再mkdir个新目录,下面的PHP也可以解析。唯独从Windows复制过来的不能解析,真奇怪。
    第 1 条附言  ·  2014-03-28 09:51:14 +08:00
    问题已解决,是换行符的问题,使用dos2unix处理。感谢各位。
    23 条回复    1970-01-01 08:00:00 +08:00
    9hills
        1
    9hills  
       2014-03-28 00:19:25 +08:00 via iPad   ❤️ 1
    检查换行符。。
    garth
        2
    garth  
    OP
       2014-03-28 00:58:17 +08:00
    @9hills 没用到换行符,用了\“,有影响?不知道怎么调试PHP呢。
    yangqi
        3
    yangqi  
       2014-03-28 01:00:59 +08:00   ❤️ 1
    windows和linux的换行符不一样,要转换一下。很多editor都有这个功能
    garth
        4
    garth  
    OP
       2014-03-28 01:07:22 +08:00
    @yangqi 检查了一遍,没有用到\n换行符
    VYSE
        5
    VYSE  
       2014-03-28 02:03:32 +08:00   ❤️ 1
    dos2unix *.php
    lemonda
        6
    lemonda  
       2014-03-28 02:08:08 +08:00
    short_open_tag ?
    JoyNeop
        7
    JoyNeop  
       2014-03-28 02:11:06 +08:00   ❤️ 1
    @garth [换行符]与[转义换行]不是一回事
    JoyNeop
        8
    JoyNeop  
       2014-03-28 02:18:13 +08:00
    yangqi
        9
    yangqi  
       2014-03-28 02:24:30 +08:00   ❤️ 1
    @garth 你所有代码在一行完成的?这里说的不是你输出的换行字符,是你每敲一次回车所产生的换行符,windows和linux是不一样的
    dorentus
        10
    dorentus  
       2014-03-28 02:33:16 +08:00 via iPad
    什么叫「不能解析」?具体错误信息呢?
    jedyu
        11
    jedyu  
       2014-03-28 08:25:21 +08:00   ❤️ 1
    dos2unix *
    Muninn
        12
    Muninn  
       2014-03-28 08:40:21 +08:00
    程序员的基础问题...
    在win上最好也把编辑器设置成unix换行
    justfindu
        13
    justfindu  
       2014-03-28 09:05:56 +08:00
    你应该改一下权限吧
    solar
        14
    solar  
       2014-03-28 09:06:04 +08:00
    也许是权限问题。chmod -Rf 777 试试
    wesley
        15
    wesley  
       2014-03-28 09:08:31 +08:00
    看看是不是文件名大小写的问题
    jsonline
        16
    jsonline  
       2014-03-28 09:16:02 +08:00 via Android
    编码问题?
    Delbert
        17
    Delbert  
       2014-03-28 09:23:19 +08:00   ❤️ 1
    @solar 777 会error500的吧?755就好的啊。
    @wesley 大小写的话就直接404了。

    感觉就是换行的问题。
    @garth 整个文档没用回车?不可能的吧……
    roricon
        18
    roricon  
       2014-03-28 09:31:57 +08:00
    @VYSE
    答案在这里
    wtbhk
        19
    wtbhk  
       2014-03-28 09:44:28 +08:00   ❤️ 1
    UNIX到Windows有问题多半是上面说的换行符、权限、大小写这些问题
    garth
        20
    garth  
    OP
       2014-03-28 09:48:32 +08:00 via Android
    @9hills
    @yangqi
    @jedyu
    @Muninn
    @Delbert
    @wesley
    @jsonline
    是换行符的问题。一开始我还以为是指\n呢。使用dos2unix命令处理下就可以了。十分感谢各位。
    cst4you
        21
    cst4you  
       2014-03-28 09:56:08 +08:00
    我想多半是BOM的问题, 换行符应该还好
    infong
        22
    infong  
       2014-03-28 09:57:53 +08:00
    换行对 php 的解析没多大影响。毕竟它们都是空白字符么。
    不能解析是状况是什么?是直接显示了 php 代码,还是报错?如果报错的话,错误码是什么?

    查看一下 /var/log/(apache2|nginx)/error.log 里面的错误日志,有很多有用信息的。
    另外装一个 php-cli 直接执行 `php SCRIPT.php` 一般也会有出错信息。
    csx163
        23
    csx163  
       2014-03-28 10:29:59 +08:00
    用 PHP_EOL
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3020 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:55 · PVG 22:55 · LAX 07:55 · JFK 10:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.