【问题标题】:How to echo encoded url image through <img src>如何通过 <img src> 回显编码的 url 图像
【发布时间】:2014-05-11 05:59:02
【问题描述】:

假设我有一个没有扩展名 (.jpg) 的图像链接位置的 url,但是当我转到该 url 时,它显示相应的链接是一个图像?如何在 php 中回显这个 url?

例如来自 recaptcha.net 的 recaptcha 图像,它使用公钥对字符串进行编码。当我制作一个 html 文件并使用它时,它会在页面上输出图像,但是当我尝试在 php 中回显相同的属性时,它只会输出一个空白图像并且不显示谷歌验证码图像。我正在尝试为 vbulletin 创建一个论坛登录页面,但在这种情况下,它应该使用验证码实现,因为我不想注册通过谷歌在我的页面上使用机器人进行爬网。谁能告诉我该怎么做?

所以基本上在请求从分配给 $key 的图像中获取密钥之后,回显请求不会输出图像:

$key = the data inside the GET parameter 'c' everytime the captcha is requested.
echo "<img src='www.google.com/recaptcha/api/image?c=".$key."'/>";

【问题讨论】:

  • 您是否真的使用验证码库来生成图像?
  • 不,我只是从 google recaptcha 中获取的
  • 所以你正在做类似于这里记录的事情? code.google.com/p/recaptcha/wiki/HowToSetUpRecaptcha
  • 没有。我的问题是如何获取这个 url goo.gl/XWyGjO 并使用 echo '' 将其作为图像输出到我的页面上,因为我正在处理的项目是在 php 中。
  • 那你在没有注册 recaptcha 的情况下尝试使用 recaptcha?

标签: javascript php jquery html image


【解决方案1】:

无论文件扩展名如何,您都可以使用图像。重要的是 MIME 类型。

以下不起作用的原因是没有指定协议。

<img src="goo.gl/XWyGjO"/>

工作:

<img src="//goo.gl/XWyGjO"/>
<img src="http://goo.gl/XWyGjO"/>
<img src="https://goo.gl/XWyGjO"/>

// = 继承当前协议。

【讨论】:

  • 放协议时图片不加载。无论如何,当我自己拿钥匙并手动将其放入 url 页面加载时,这实际上并不重要。
  • 只要密钥有效,就会显示图像。您的 $key 变量可能不是有效的键,导致 500 错误。
  • 不不,有效我自己查过。当我在页面上查看源代码时,它看起来像&lt;img src="http://www.google.com/recaptcha/api/image?c=03AHJ_Vusn2Vw6h2…WB-aK9ZaeOwHjS8bzj93In-nxvIv02ISLm0qVM3V6Qx_aFJ-M1rXfN8f8UWm"&gt;&lt;/img&gt;,但它只是不显示图像......我不知道为什么
  • 这不是一个有效的 URL。这个是:&lt;img src="https://www.google.com/recaptcha/api/image?c=03AHJ_VutuhPpm5eTb7OR8cUfxmAB8btOOGuPuhNi_3dT7lRM4BV3uCAZoqF0dF7JaSP2g2X_kTOqvrtwC0kxqtovyjZ2psWdZbnBT7arZocEY8YYnXcqL1zGl5hkY7q3vFbQQzl_4bgIHdRgV5tKU1vJlnZOLYkwjzqTXNgXbmdxXGk2ps_SAgRVYMY7n1mnsT9q_uSlP13-R"/&gt; 替换它,你会看到。只需使用指向图像的链接并记住指定协议,它就会起作用,保证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多