繁体   English   中英

在Facebook上分享PHP GD创建的图像

[英]Share PHP GD-created image on Facebook

使用PHP GD图像库,我已经成功输出了带有url参数(a,b,c)中的文本的图像。

我需要能够将这些图像发送到Facebook共享URL,以便可以将它们发送到社交媒体。

https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php?a=1&b=2&c=3

但是,共享链接似乎不接受我的php参数。 当我测试url时,它提取图像,但不发送任何数字,导致没有文本通过。

有没有一种方法可以保存带有参数的完整图像并将其发送到Facebook共享URL? 我通过嵌入在电子邮件中的链接来执行此操作,因此它不能使用比基本HTML更复杂的内容。

您可能需要对URL进行编码,以使Facebook php脚本无法读取?,=和&。

有关编码的详细信息,请参见此处

是%3F,=是%3D,&是%26

因此,您的网址为:

https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php%3Fa%3D1%26b%3D2%26c%3D3

注意:我没有测试过,因为我不想发布到Facebook :)

所以我最终最终解决了这个问题。 在放弃将包含PHP图像的url参数推送到Facebook之后,我尝试将图像放入电子邮件中。 除Gmail外,几乎所有客户端都可以使用此功能。 我不得不转换url参数来绕过Gmail代理,该代理允许显示图像,并且它现在恰好可以在Facebook共享器中使用。 双重万岁!

我设置它的原始方法是将php图像与url参数链接起来,并使用$_GET将它们放置在图像上:

脚本错误的

$var1 = $_GET['a'];
$var2 = $_GET['b'];
$var3 = $_GET['c'];

正确的方法如下:

script.php

$uri = $_SERVER['REQUEST_URI'];
$path = substr($uri, strpos($uri, "a=")); // start your url parameters here
$delim = 'abc=&'; // enter all characters you use in parameters (a, b, c, =, &)
$tok = strtok($path, $delim);
$tokens = array();
while ($tok !== false) {
    array_push($tokens, $tok);
    $tok = strtok($delim);
}

$var1 = $tokens[0];
$var2 = $tokens[1];
$var3 = $tokens[2];

这样做是查看URL并从中拉出指定的字符($ delim)放入数组。 然后使用这些字符后面的内容,将其值设置为令牌并将该令牌放置在图像上。

这是我设置PHP图像以显示在电子邮件中的方式:

<img src="http://example.com/script.php/a=1&amp;b=2&amp;c=3">

我的分享网址:

https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php/a=1%26b=2%26c=3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM