如何使用PHP将对象转换为字符串

问题描述:

我正在使用PHP和MySQL创建Web应用程序。如何使用PHP将对象转换为字符串

<button type="button" class="btn btn-primary btn-lg btn-block" id="buttony">All</button> 
       <button type="button" class="btn btn-default" id="buttony1">Strength</button> 
       <button type="button" class="btn btn-default" id="buttony2">Agility</button> 
      <?php echo "<a href='heroes/" . get_intelligence_hero($name) . ".html'" . "<button type='button' class='btn btn-default' id='buttony3'>Intelligence</button>"; ?> 

使用PHP它接收来自数据库的随机行,然后当你点击它,它把你带到该行自己的HTML页面(这是一个名为DOTA2的游戏。你按一下属性的英雄都有和它会随机选择一个英雄给你,并把它带到网页)。

function get_intelligence_hero($name){ 
    global $con; 
    $result = mysqli_query($con, "SELECT name FROM heroes WHERE attribute = 'intelligence' ORDER BY RAND() LIMIT 1"); 
    if(!$result) { 
     die(mysqli_error($con)); 
    } 
    $hero = serialize((mysqli_fetch_object($result))); 

    echo $hero; 
} 

这是我检索那个英雄的功能,如果他是基于Intelligence属性的话。我使用序列化来查看它是否会转换为字符串。但它给了我这个结果:

O:8:"stdClass":1:{s:4:"name";s:6:"Dazzle";} 

所以它确实将行转换为字符串以及检索英雄。我怎样才能得到行?例如,我如何从所有返回的文本中获得“炫目”?

刚拿到列,您需要:

... 
$hero_object = mysqli_fetch_object($result); 
$hero_name = $hero_object->name; 

return $hero_name; 

请注意,您应该添加错误处理您的数据库调用赶情况就像空的记录集等

另外请注意,如果你打算要在url和html输出中使用变量,您应该正确地转义它。例如,在你的函数返回您可以在URL中使用的值:

return urlencode($hero_name); 

您不要在此情况下,没有任何特殊字符的HTML中当您使用urlencode()将保持未编码的需要htmlspecialchars()

+1

谢谢你的帮助。我也很喜欢你如何详细介绍HTML编码。非常感谢你。 – Lewis 2014-10-28 22:28:44