PHP替换字符串错误


php replacing string error

我试图从字符串中删除字符串,但strstr的结果没有找到字符串。我会尽量在这里说清楚....

问题是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脚本php脚本打开文件并删除元素

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

返回给ajax的数据是:

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

但是由于某种原因它没有找到它。这些是从实际文件和javascript警报中复制和粘贴的。它们看起来一模一样。

我希望这是足够的信息。

strpos是区分大小写的

stripos()

除了尝试使文本搜索不区分大小写之外,您还可能希望通过首先对其使用utf8_decode()来确保它不包含unicode字符。

最后,在尝试使用$_POST['theHTM']之前,对它做一些完整性检查也无妨。(看起来末尾少了一个L,但也值得使用isset()来验证它是否确实存在。)