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,求大神帮忙,感激不尽
4036 次点击
所在节点    前端开发
24 条回复
qiayue
2018-12-21 00:04:17 +08:00
你知道上面四行代码的作用吗?
其实第二行在你这里没起到作用

第一行:把客户端的 ip 地址传给 ipinfo,得到返回的 json 后解析,得到一个对象
第二行:把对象里的 ip 赋值给 $ip 变量
第三行:把对象里的国家代码赋值给 $country_code 变量
第四行:拼接一个 geognos 的网址,得到一个图片地址,把当前请求 302 跳转到这个图片地址

你的 html 代码中,img 的 src 标签虽然写的地址是 php 的地址,但最终请求的其实是跳转后的图片,所以能够显示图片出来。


但是,你想用什么标签来显示国家名称呢?
有两种办法:
第一种是用 php 获取到图片后,用 gd 重新生成一张图片,并且往图片里边写入国家名称,这样只需要修改 php 代码,html 代码不动;
第二种是,php 只需要一行代码
<?php echo file_get_contents('https://ipinfo .io/'.$_SERVER['REMOTE_ADDR']);?>注意此处我给 .io 之前加了空格,不然无法回帖
然后 html 中用 ajax 从 php 中获取到 json 数据后,用国家代码拼接图片网址显示图片,js 去显示图片和国家名称
moonshow
2018-12-21 00:11:42 +08:00
@qiayue 第一种方法往图片里写入国家名称是什么意思?直接生成一张带文字的图片吗?如果是的话放弃这种方案!我希望文字和图片是分开的
第二种方法 html 怎么写呢?我懂一点点 html 基础标签,js 完全不懂的,如果可以的话就送佛送到西吧,帮忙把完整代码贴出来,提前是在你空的时候,不胜感激!
qiayue
2018-12-21 00:21:08 +08:00
@moonshow 用百度吧,我怎么感觉你目的不是为了学习,而是为了完成作业
这么晚了,要睡觉了
moonshow
2018-12-22 18:59:09 +08:00
@qiayue 强调一点,真不是为了完成作业,我搭建了一个博客主要针对海外用户,想增加一个根据用户 ip 地址显示国家名称和图标的功能!晚安

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

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

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

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

© 2021 V2EX