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??)

上記と同じ 3 行を実行して、曲のタイトルをハード コードすると、次のようになります。

$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

html タグが含まれているようです。$titleしたがって、最初の文字は<.

htmlentities()を使用して完全な出力をエコーすると、実際に探している文字列の部分を確認できるはずです。

echo htmlentities($title);

または、 strip_tags()を使用して、文字列からすべての html タグを単純に削除することもできます。

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