PHP打印字符串

时间:2012-10-14 20:05:52

标签: php html

我使用var_dump打印一个名为$ info的变量。现在我需要打印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变量被忽略?为什么呢?

3 个答案:

答案 0 :(得分:4)

你有一个对象,而不是一个数组。使用:

echo $info->message_id;

php.net - Objects

响应您的第二点 - 由于字符串封装在<>中,浏览器会尝试将其显示为HTML,如果您查看页面的来源,您会看到您的$temp字符串就在那里。

您可以使用htmlentities()将字符转换为HTML实体:

echo htmlentites($temp);

答案 1 :(得分:1)

除了deifwud所说的你有一个对象而不是一个数组(它们不像JavaScript一样可以互换),你还应该注意到浏览器将<blah blah blah>形式的任何内容视为HTML标记,并且不显示原始格式。如果你去查看源,你会发现它就在那里。要避免此问题,请使用htmlspecialchars()

答案 2 :(得分:0)

同意@deifwud和@Kolink。你的字符串应该是:

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

那将逃脱&lt;和&gt;这样浏览器就不会像标记一样对它们进行抨击。