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

时间:2016-07-14 22:19:16

标签: php facebook image gd

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

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

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

但是,共享链接似乎不接受我的php参数。当我测试网址时,它会拉动图像,但不会发送任何数字,导致没有文字传输。

有没有办法用参数保存完整的图像并将其发送到Facebook共享网址?我通过嵌入在电子邮件中的链接来做到这一点,所以它不能使用比基本HTML更复杂的东西。

2 个答案:

答案 0 :(得分:2)

您可能需要对您的网址进行编码,以便?,=和&不是由facebooks php脚本阅读。

有关编码的详情,请参阅here

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

所以你的网址是:

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

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

答案 1 :(得分:0)

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

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

<强>脚本wrong.php

$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