使用特殊字符表示意外结果

时间:2016-03-19 12:58:40

标签: php html strpos

我试图在HTML文档中找到HTML元素 的位置。 所以我这样做:

    $filestring = file_get_contents($filename); //get the raw file
    $filestring = htmlspecialchars($filestring);

   $pos = strpos($filestring, "<head>"); //find the position of <head>
   print_r($pos); //print the position

结束print_r什么也不显示。我认为这是由于特殊字符,但不明白该怎么做。

3 个答案:

答案 0 :(得分:3)

$ filestring中没有<head>这样的东西。 当您使用htmlspecialchars时,<>会被替换:

http://php.net/manual/en/function.htmlspecialchars.php

$pos = strpos($filestring, "&lt;head&gt;");

或者在搜索字符串时不要使用htmlspecialchars

答案 1 :(得分:2)

为什么使用htmlspecialchars? 您是否了解使用此功能会导致><等所有实体替换为&gt;&lt;等表示?

所以,解决方案是

  • 要么不使用htmlspecialchars
  • 或搜索不是<head>,而是搜索&lt;head&gt;

答案 2 :(得分:0)

我认为您应该从代码中删除此行。

$filestring = htmlspecialchars($filestring);