2016-07-14 67 views
0

使用PHP GD图像库我已成功输出带有来自url参数(a,b,c)的文本的图像。在Facebook上分享PHP GD创建的图像

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

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

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

有没有办法用参数保存完整的图像,并将它发送到Facebook共享网址?我通过嵌入到电子邮件中的链接来完成此操作,因此它不能使用比基本HTML更复杂的任何内容。

回答

0

所以我最终最终解决了这个问题。在放弃将包含url参数的php图像推送到Facebook后,我试图将图像放入电子邮件中。除了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 
2

您可能需要对您的url进行编码,以免facebook,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

哈哈,没问题。以前,当我尝试时,网址显示为?a = 1,其余缺失。编码后,url现在看起来是?a = 1&b = 2&c = 3,这是完整的url。不过,该图片仍然缺少文字。尽管拉完整个url,但它似乎并没有在图像上生成文本。缓存问题?它拉动背景图像,所以它必须运行脚本,否则一切都将变为空白。 – cul8r

+0

@ cul8r任何成功?我面临同样的问题。 –

+0

@IgorO其实是!我用我解决这个问题的方式更新了问题。 – cul8r