使用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更复杂的东西。
答案 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&b=2&c=3">
我的分享网址:
https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php/a=1%26b=2%26c=3