PHP错误中的特殊符号

时间:2012-02-23 12:22:49

标签: php html forms

当用户在搜索框中插入特殊符号\\//时,我会收到以下错误:

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity

如何删除它?

    $q=$_GET["abc"];
    $xml = "http://abc/seach?q=".urlencode($q);     
    $Obj = simplexml_load_file($xml);

2 个答案:

答案 0 :(得分:0)

为什么不用这样的东西删除那些符号(即过滤器输入,你应该做什么):

<强> [编辑]

$q = $_GET["abc"];

// Array of character patterns not allowed
$not_allowed = Array('\\','//');

// Strip from query
$q = str_replace($not_allowed,'',$q);

// Pass to XML
....

答案 1 :(得分:0)

根据这里的信息,我最好的猜测是你正在访问的脚本是错误的,而不是你的代码。我建议不要正确处理斜杠并返回无效的XML响应。

有三种方法可以解决这个问题。

  1. 让他们修复他们的脚本以便它可以处理斜杠
  2. 在发送之前从查询中删除斜杠: $q = str_replace(array('//', '\\'), '', $q);
  3. 尝试检查标头或XML响应是否有错误