html 如何调用 PHP 生成的图片?

2018-12-20 20:57:32 +08:00
 moonshow
<?php
$ip_from_here = json_decode(file_get_contents('https://ipinfo.io'));
$ip = $ip_from_here->ip;
$country_code = $ip_from_here->country;
echo'<img src="http://www.geognos.com/api/en/countries/flag/'.$country_code.'.png" width="18" height="12">';
?>
上面是一段根据 ip 地址生成国旗图标代码
如何在 html 中引用生成的这个国旗图标呢?

本人刚学 hmtl,求大神帮忙,感激不尽
4048 次点击
所在节点    前端开发
24 条回复
xzc0001
2018-12-20 21:09:10 +08:00
參考驗證碼?我記著以前 discuz 什麽的就是 php 的,然後直接 img 標簽就行吧
moonshow
2018-12-20 21:11:31 +08:00
<img src="这里怎么填写?", alt="", width="18", height="12">
src=地址怎么填写呢?
xfspace
2018-12-20 21:39:15 +08:00
填 PHP 文件的 URL
或做个 rewrite
qiayue
2018-12-20 22:29:07 +08:00
<?php
$ip_from_here = json_decode(file_get_contents('https://ipinfo.io'));
$ip = $ip_from_here->ip;
$country_code = $ip_from_here->country;

header("Location:http://www.geognos.com/api/en/countries/flag/$country_code.png");
?>

存成一个 php 文件,然后 html 的 img 标签 src 写 php 地址
akira
2018-12-20 22:40:15 +08:00
qiayue
2018-12-20 22:57:11 +08:00
@akira $country_code 哪来的?
moonshow
2018-12-20 23:11:56 +08:00
@akira 这行提示 404, 通过 iframe 可以显示出来,貌似一直是固定图标不能根据国家 ip 地址更换,
moonshow
2018-12-20 23:16:01 +08:00
@akira 我是在油管上看到一个视频搬来的 <amp-youtube data-videoid="inevkrO6mqI" layout="responsive" width="480" height="270"></amp-youtube>&t=136s 其实我自己只会一点点 html 而已
通过 iframe 可以显示出来,貌似一直是固定图标不能根据国家 ip 地址更换 这个问题有办法解决吗?
qiayue
2018-12-20 23:16:17 +08:00
@moonshow 4 楼给你正确答案你不用
moonshow
2018-12-20 23:19:39 +08:00
@akira 多谢你这个方法也可以,
qiayue
2018-12-20 23:23:05 +08:00
@moonshow 谁的方法可以?
moonshow
2018-12-20 23:24:16 +08:00
@qiayue 四楼的 也就是你的,第一次用这个网站不太习惯 @错人了 囧 谢谢抱歉了兄 die
moonshow
2018-12-20 23:27:15 +08:00
@qiayue 不能根据 ip 地址更换国家图标 这个问题有办法解决吗?我看视频里是可以的
Fooleap
2018-12-20 23:28:41 +08:00
@moonshow #13
ipinfo.io 默认是根据服务器 IP 地址,需要传一下客户端的 IP。例如:
$ip_from_here = json_decode(file_get_contents('https://ipinfo.io/'.$_SERVER['REMOTE_ADDR']));

参考: https://ipinfo.io/developers
qiayue
2018-12-20 23:35:47 +08:00
<?php
$ip_from_here = json_decode(file_get_contents('https:// ipinfo.io'));
$ip = $ip_from_here->ip;
echo $ip;
?>

你看看输出到的 IP 地址是谁的就知道怎么回事的

如果你的代码是放在了服务器运行,那么实际上是服务器向 ipinfo 发起请求,所以获取的是服务器的 IP 地址,当然最终显示的国家就是服务器所在国家了。
moonshow
2018-12-20 23:37:12 +08:00
@Fooleap 完美实现我想要的功能 厉害了
moonshow
2018-12-20 23:40:26 +08:00
@qiayue 多谢了
moonshow
2018-12-20 23:41:49 +08:00
@Fooleap @qiayue 再增加国家名称或者简称,代码应该怎么写?
qiayue
2018-12-20 23:50:50 +08:00
@moonshow 国家名称显示到哪里?
moonshow
2018-12-20 23:53:32 +08:00
@qiayue 显示在国 qi 前面 现在已经能根据 ip 地址显示 guo 奇 这是完整代码
<?php
$ip_from_here = json_decode(file_get_contents('https://ipinfo.io/'.$_SERVER['REMOTE_ADDR']));
$ip = $ip_from_here->ip;
$country_code = $ip_from_here->country;
header("Location:http://www.geognos.com/api/en/countries/flag/$country_code.png");
?>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/519525

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX