Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FTP上载后PHP文件格式丢失_Php_Ftp_Winscp - Fatal编程技术网

FTP上载后PHP文件格式丢失

FTP上载后PHP文件格式丢失,php,ftp,winscp,Php,Ftp,Winscp,我正在使用WinSCP将文件传输到FTP站点。我目前有一种情况,文件夹中的一个特定文件在上传时丢失了所有格式,导致PHP文件不再工作 上传时,文件夹中的所有其他PHP文件都能正常工作 我不明白为什么只有一个文件会受到这种影响。有人能解释一下情况吗?文件可能是通过它传输的,它将修改文件的编码和行尾。由于您没有说明“丢失格式”的确切含义,因此很难回答: 根据src的回答,如果由于ASCII/文本模式传输而导致行尾发生更改,则如果在不支持目标行尾的编辑器中打开,则生成的转换文件可能会被视为丢失了格式。

我正在使用WinSCP将文件传输到FTP站点。我目前有一种情况,文件夹中的一个特定文件在上传时丢失了所有格式,导致PHP文件不再工作

上传时,文件夹中的所有其他PHP文件都能正常工作


我不明白为什么只有一个文件会受到这种影响。有人能解释一下情况吗?

文件可能是通过它传输的,它将修改文件的编码和行尾。

由于您没有说明“丢失格式”的确切含义,因此很难回答:

根据src的回答,如果由于ASCII/文本模式传输而导致行尾发生更改,则如果在不支持目标行尾的编辑器中打开,则生成的转换文件可能会被视为丢失了格式。虽然这很难解释为什么只有一个受影响的文件。虽然WinSCP在技术上可以选择不同的传输模式,例如基于文件大小或修改时间戳,但如果配置了,我怀疑您是否选择了。还要注意,WinSCP默认为二进制传输模式。如果您说明WinSCP实际使用的传输模式,这会有所帮助。此信息的最终来源是WinSCP会话日志文件。此外,共享日志文件的相关部分也有助于调查

另一种可能性是,受影响的源文件创建时首先使用了不同的行尾(例如在与通常使用的编辑器不同的编辑器中)。因此,问题与传输模式或WinSCP无关。只有在使用远程端的第三个编辑器打开文件后,差异才可能显现出来,该编辑器只支持一种行尾格式

尽管在这两种情况下,该文件仍应在PHP中工作,因为PHP同时支持Unix和Windows行结尾。可能源文件的格式非常奇怪,以至于在ASCII/文本模式传输期间,服务器混淆并错误地转换了文件。但这只是一个猜测


同样,我们需要更多信息来帮助您。

您所说的“丢失格式”是什么意思?PHP引擎可以解析您的脚本,无论是所有代码都在一行中,没有空格,还是每行代码之间有50个换行符。您确定吗?当代码中的注释与有效命令合并以创建无效命令时会发生什么情况?这就是为什么我从不在PHP中使用
/
注释的原因
/*comment*/
在一行或任何其他格式上都不会有任何问题谢谢你的提示,关于格式问题的原因有什么想法吗?不知道,你说它失去格式是什么意思?是的,我明白了,但我的问题是,为什么文件夹中只有一个文件会受到影响?可能是文件触发的ASCII或二进制模式。可能是文件名或文件内容。可能它是用Windows行结尾保存的,而所有其他文件都是用Unix行结尾保存的。