为什么substr()不返回正确的值?

时间:2013-01-25 07:59:58

标签: php

我有以下代码:

$string = "aaa<test>xxx</test>bbb";
echo substr($string, 9);

结果应该是:     的 XXX和LT; /试验&gt; BBB

与此同时,我只收到: 的 xxxbbb

标签发生了什么?为什么这个功能自动裁剪它! 如果我替换&lt; with [works ...我想在我的变量中获得一个结束标记。

4 个答案:

答案 0 :(得分:2)

如果您查看来源,您还会有</test>标记。它在浏览器中不可见,因为它已经被渲染为无效。

要打印此类结果,请使用

var_dump( substr($string, 9) );

答案 1 :(得分:0)

如果在命令行中执行它,它可以正常工作。您是否通过浏览器查看输出?浏览器可能正在尝试解析标记然后忽略它。

答案 2 :(得分:0)

因为浏览器将<test></test>作为html标记,因此您无法在浏览器中看到它。

查看源代码可以帮助您。

答案 3 :(得分:0)

如果你在浏览器中检查php文件的视图源(ctrl + u in chrome),你可以看到

xxx</test>bbb

除非浏览器将</test>解释为标记,否则您可以看到它。