我总是在混合语言时遇到问题,最近我开始使用MYSQL。在这种情况下,我有这个代码:
<?php
$data = mysql_query("SELECT * FROM Badges")
or die(mysql_error());
while($info = mysql_fetch_array( $data ))
{
Print "http://www.google.com/s2/favicons?domain=".$info['Website'] . "";
}
?>
我需要它来打印图像而不是它打印的链接。
http://www.google.com/s2/favicons?domain=“。$ info ['网站']。”成为图片的网址
怎么写?非常感谢
答案 0 :(得分:3)
print '<img src="http://www.google.com/s2/favicons?domain=' . $info['Website'] . '" alt="" />';
其他一些提示......
mysql_*
是旧功能,现在使用PDO要好得多。or die()
也过时了 - 您是否考虑过例外?echo
比print
更常用,您应该使用手册中陈述的情况,例如print
代替Print
。答案 1 :(得分:0)
我通常会发现更容易尝试以抽象的方式表达不同情况的不同之处。在你的情况下,它是网站(在?domain=
之后)不同,其余的都是相同的。因此,图片的网址可以抽象地表示为http://www.google.com/s2/favicons?domain={website}
,其中{website}是未来替换的占位符。
然后使用函数
执行替换$result = str_replace($what_to_replace, $what_to_replace_with, $original_string);
这样做的好处是你永远不会在一行上混合语言,这使代码更容易开发:)只需看看这段代码很容易阅读:
<?php
$img = '<img src="http://www.google.com/s2/favicons?domain={website}" />';
$data = mysql_query("SELECT * FROM Badges")
or die(mysql_error());
while($info = mysql_fetch_array( $data ))
{
$concrete_img = str_replace("{website}", $info['Website'], $img);
print $concrete_img;
}
?>