2011-12-02 55 views
2

我想从字符串中删除一个字符串,但strstr的结果是找不到字符串。我会尝试尽可能清晰,因为我可以在这里......php替换字符串错误

问题是strpos()没有找到$ deletTabHTML。我已经在ajax中提醒过它,它与commonHTML中的一行完全一样,但显然它不是由于某些原因,我无法弄清楚。我假设我错过了一些'隐形'的东西?如果我硬编码要删除的html,我的脚本就可以工作,所以整个脚本都可以工作。

这里是PHP:

$commonHTML = file_get_contents($url); 
if (!empty($_POST['action']) && $_POST['action'] == 'deleteTab') { 
    $deletTabHTML = trim($_POST['theHTM']); 
    if(strpos($commonHTML, $deletTabHTML) !== false) { 
     $is_deleted="deleted"; 
    }else{ 
     $is_deleted="NOT deleted, ERROR:".$deletTabHTML; 
    } 
    echo '{"is_deleted":"' . $is_deleted . '"}'; 
    return; 
} 

更多信息: jQuery是从DOM得到一个元素,并将其发送到PHP脚本这是打开文件和删除元素:

<li id="contact"><a href="#contact" rel="ajax">Contact</a></li> 

回到阿贾克斯的数据是:

<li id="contact"><a href="#contact" rel="ajax">Contact</a></li> 

但出于某种原因,我t没有找到它。 Thos被复制并从实际文件和javascript警报中粘贴。他们看起来完全一样。

我希望这是足够的信息。

+0

执行'var_dump($ commonHTML);'''var_dump($ deletTabHTML);' –

+0

修剪功能是否正确定义?应该是str_replace吗? – ajreal

+1

你是否想要把'L _FOST ['theHTM']'放下来?如果他们有不同的大小写,可能想使用'stripos'。最后说明,您的代码不会替换文本。那是故意的吗? –

回答

0

strpos是区分大小写的

首先它使用utf8_decode()尝试

stripos() 
0

除了试图使文本搜索不区分大小写,您可能还需要确保它不包含任何Unicode字符。

最后,在尝试使用它之前,先对$_POST['theHTM']进行一些理智检查并不会造成伤害。 (它看起来像最后缺少一个L,但它也值得使用isset()来验证它实际存在。)

+0

不,谢谢你的尝试。现在有一些检查,但我压缩了这段代码,所以希望它更容易阅读。我100%确定它存在,我已经在ajax页面中提醒它。 – maddogandnoriko