Php 用于写入htaccess文件的脚本,添加导致500错误的幻象未知字符

Php 用于写入htaccess文件的脚本,添加导致500错误的幻象未知字符,php,apache,.htaccess,Php,Apache,.htaccess,我正在编写一个小部件,允许管理员从administration管理htaccess文件。脚本正在生成的htaccess code中添加渲染为空格的幻影字符,这会引发500错误 代码如下: 产生: 每行末尾都有一个空格/幻影字符。如果在500错误期间,我通过FTP删除空间编辑,并保存htaccess文件,然后刷新页面所有id 如果我按如下方式删除代码中的空格,然后运行代码,则会出现500错误 # block/allow users by ip if(!empty($block_ips) |

我正在编写一个小部件,允许管理员从administration管理
htaccess文件。脚本正在生成的
htaccess code
中添加渲染为空格的幻影字符,这会引发500错误

代码如下: 产生: 每行末尾都有一个空格/幻影字符。如果在500错误期间,我通过FTP删除空间编辑,并保存
htaccess文件
,然后刷新页面所有id

如果我按如下方式删除代码中的空格,然后运行代码,则会出现500错误

# block/allow users by ip
    if(!empty($block_ips) || !empty($allowed_ips)){
    $htaccess_code .= "#Block-Allow users by IP\r\n";
    $htaccess_code .= "order allow,deny\r\n";
    }   
    if(!empty($block_ips)){
    $the_ips = explode(',',$block_ips);
        foreach($the_ips as $the_ip){ $htaccess_code .= "deny from ".trim($the_ip)."\r\n"; }
    }   
    if(!empty($allowed_ips)){
    $the_ips = explode(',',$allowed_ips);
        foreach($the_ips as $the_ip){ $htaccess_code .= "allow from ".trim($the_ip)."\r\n"; }
        }   
    $htaccess_code .= "allow from all\r\n";
    $htaccess_code .= "\r\n";
我不知道从这里到哪里去。。。如蒙协助,将不胜感激

皮特

问题已解决:

虽然我很高兴了解了
PHP\u EOL
,并对整个脚本进行了更改。。。它没有解决这个问题。代码是正确的。问题出在问题中显示的我测试的IP地址上

由于IP地址的速度不够快,我想任何逗号分隔的4位数字都可以用于测试。。。显然不是。我将测试IP更改为已知IP,脚本运行良好

虽然这是一个简单的解决方案,但我认为值得分享

感谢所有的投入。。。非常感谢


Pete

尝试使用常量PHP\u EOL insead of \r\n-这将提供特定于平台的行尾字符序列如果您正在阻止IP,我想您刚刚受到一些黑客攻击,对吗?我也遇到了这个问题,有一个注入脚本刚刚在我的htaccess中添加了一个随机字符来关闭它(这使一些网站很容易受到攻击)-我建议你扫描你的htdocs/public\u html-也许这与你是否尝试过使用
PHP\u EOL
而不是
“\r\n”
有关。或者删除
\r
并仅使用
\n
(linux下线)@CodeBrauer没有受到攻击,但感谢您的输入。@Damien和PiX06我没有尝试过PHP\u EOL。。。不太清楚是什么。现在检查
#Block-Allow users by IP 
    order allow,deny 
    deny from 000.000.111.111 
    deny from 444.444.555.555 
    allow from 444.433.555.555 
    allow from 010.000.111.111 
    allow from all  
# block/allow users by ip
    if(!empty($block_ips) || !empty($allowed_ips)){
    $htaccess_code .= "#Block-Allow users by IP\r\n";
    $htaccess_code .= "order allow,deny\r\n";
    }   
    if(!empty($block_ips)){
    $the_ips = explode(',',$block_ips);
        foreach($the_ips as $the_ip){ $htaccess_code .= "deny from ".trim($the_ip)."\r\n"; }
    }   
    if(!empty($allowed_ips)){
    $the_ips = explode(',',$allowed_ips);
        foreach($the_ips as $the_ip){ $htaccess_code .= "allow from ".trim($the_ip)."\r\n"; }
        }   
    $htaccess_code .= "allow from all\r\n";
    $htaccess_code .= "\r\n";