1

$info という名前の変数を出力するために var_dump を使用しています。次に示すように message_id を出力する必要がありますが、文字列が出力されません。

object(stdClass)[10]
  public 'date' => string 'Sun, 14 Oct 2012 19:45:26 +0100' (length=31)
  public 'Date' => string 'Sun, 14 Oct 2012 19:45:26 +0100' (length=31)
  public 'subject' => string 'deposit' (length=7)
  public 'Subject' => string 'deposit' (length=7)
  public 'message_id' => string '<CAKvS7sNb0Cb1AaAbCdEFGHerp5UyJuhfkcJj8P+8CZQj4VTGLA@mail.gmail.com>' (length=68)
  public 'toaddress' => string 'sbsa secretaccount <test@gmail.com>' (length=43)

このラインを使っているのですが、

echo $info->message_id;

また、これを試してみると、

$temp =  '<CAKvS7sNb0Cb1AaAbCdEFGHerp5UyJuhfkcJj8P+8CZQj4VTGLA@mail.gmail.com>';
echo "::$temp::";

:::: だけが出力され、$temp 変数は無視されますか? なんで?

4

3 に答える 3

4

配列ではなく、オブジェクトがあります。使用する:

echo $info->message_id;

php.net-オブジェクト

2 番目のポイントに応じて、文字列が<andにカプセル化されているため、ブラウザはこれを HTML として表示しようとします。ページのソースを表示すると、文字列がそこにある>ことがわかります。$temp

文字を HTML エンティティに変換するには、htmlentities()を使用できます。

echo htmlentites($temp);
于 2012-10-14T20:06:53.923 に答える
1

配列ではなくオブジェクトを持つことについて deifwud が言ったことに加えて(それらは JavaScript のように交換可能ではありません)、フォームのすべてがブラウザーによって HTML タグとして認識され、表示されないことにも注意する必要があります。生。ソースの表示に移動すると、すぐそこにあることがわかります。この問題を回避するには、<blah blah blah>htmlspecialchars()

于 2012-10-14T20:09:19.773 に答える
0

@deifwud と @Kolink の両方に同意します。あなたの文字列は次のようになります:

   $temp = htmlspecialchars('<CAKvS7sNb0Cb1AaAbCdEFGHerp5UyJuhfkcJj8P+8CZQj4VTGLA@mail.gmail.com>');
   echo "::$temp::";

< と > をエスケープして、ブラウザーがタグのように解釈しないようにします。

于 2012-10-14T20:13:16.390 に答える