0

这是一个菜鸟问题,但是...

我正在另一个使用 preg_match 获取字符串的 php 文件中调用一个函数。然后我想使用 substr 来获取该字符串的特定部分,但是它不输出字符串中的任何字符。当我从函数中替换变量时preg_match,我得到了正确的输出。

这是基本代码:

$title = $stream["song1"]; // From a preg_match in an external php file
echo $title; // Correctly prints the song name, in this case "mySong"
echo substr($title, 0, 1);  // Outputs a "<" symbol (why??)

如果我运行上面相同的三行,但对歌曲标题进行硬编码:

$title = "mySong";
echo $title; // Correctly prints the song name, in this case "mySong"
echo substr($title, 0, 1);  // Outputs a "m" symbol (correct)

此外,当我检查变量的类型时$title,它返回“字符串”。我确定我在做一些非常愚蠢的事情......有人可以帮忙吗?

4

1 回答 1

2

它似乎$title包含 html 标签,因此第一个字符将是<.

使用htmlentities() 来回显完整的输出,然后您应该能够看到您实际要查找的字符串的哪一部分。

echo htmlentities($title);

或者,您可以使用strip_tags()简单地从字符串中删除所有 html 标签:

$title = strip_tags($title);
echo substr($title, 0, 1); // should work
于 2012-06-09T22:31:56.913 回答