首页 > 解决方案 > 国家名称后面的标志未显示

问题描述

所以是的,我在 DB 国家代码和国家名称中选择了两者,并尝试将标志放在国家名称后面

SQL

 $sql = "SELECT country,country_code FROM DB";

我表中应该在国旗和国家名称中的行

    echo "<td>" "<IMG SRC='http://api.hostip.info/flag.php' width='30' height='20' BORDER='0' ALT='. $row["$country_code"] .'/>"; " . $row["country"] . </td>";

只显示国家名称。请问有什么解决办法吗?

标签: phphtmlsqlimagetags

解决方案


首先,您需要将字符串与实际变量正确连接。其次,将其与 API 需要的适当 url 结合起来。

似乎 API 需要两个字母的 ISO 国家/地区代码:

http://api.hostip.info/images/flags/us.gif

像这样。

因此,只需应用串联基本原则以及添加正确的 url:

我建议这样做。

$country_code = strtolower($row['country_code']); // do this in application level or on DB level mysql function LOWER(country_code)
$country = $row['country'];
echo "
<td>
    <img src=\"http://api.hostip.info/images/flags/{$country_code}.gif\" width=\"30\" height=\"30\" alt=\"{$country_code}\" />
    {$country}
</td>
";

旁注:除了该代码之外,您还可以添加一个验证来检查该国家/地区代码图像是否存在,以便您还可以在 API 上不存在该图像的情况下添加“无图像”后备。

正确的 PHP 方法来检查外部图像是否存在?


推荐阅读