在 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
不过分享link好像不接受我的php参数。当我测试 url 时,它会拉取图像,但不会发送任何数字,导致没有文本通过。
有没有办法保存带参数的完整图片并发送到Facebook分享url?我通过电子邮件中嵌入的 link 来执行此操作,因此它不能使用比基本 HTML.
更复杂的任何内容
您可能需要对 url 进行编码,这样 ?、= 和 & 就不会被 Facebook php 脚本读取。
有关编码的详细信息,请参阅here。
?是 %3F,= 是 %3D 并且 & 是 %26
因此您的 url 将是:
https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php%3Fa%3D1%26b%3D2%26c%3D3
注意:我没有测试过这个,因为我不想 post 到 facebook :)
所以我最终解决了这个问题。在放弃将包含 url 参数的 php 图片推送到 Facebook 后,我尝试将图片放入电子邮件中。除了 Gmail,这几乎适用于所有客户端。我必须转换 url 参数来绕过允许显示图像的 Gmail 代理,并且它现在也可以在 Facebook 共享器中使用。万岁!
我最初设置它的方法是 link 带有 url 参数的 php 图像,并使用 $_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">
还有我的分享URL:
https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php/a=1%26b=2%26c=3
使用 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
不过分享link好像不接受我的php参数。当我测试 url 时,它会拉取图像,但不会发送任何数字,导致没有文本通过。
有没有办法保存带参数的完整图片并发送到Facebook分享url?我通过电子邮件中嵌入的 link 来执行此操作,因此它不能使用比基本 HTML.
更复杂的任何内容您可能需要对 url 进行编码,这样 ?、= 和 & 就不会被 Facebook php 脚本读取。
有关编码的详细信息,请参阅here。
?是 %3F,= 是 %3D 并且 & 是 %26
因此您的 url 将是:
https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php%3Fa%3D1%26b%3D2%26c%3D3
注意:我没有测试过这个,因为我不想 post 到 facebook :)
所以我最终解决了这个问题。在放弃将包含 url 参数的 php 图片推送到 Facebook 后,我尝试将图片放入电子邮件中。除了 Gmail,这几乎适用于所有客户端。我必须转换 url 参数来绕过允许显示图像的 Gmail 代理,并且它现在也可以在 Facebook 共享器中使用。万岁!
我最初设置它的方法是 link 带有 url 参数的 php 图像,并使用 $_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">
还有我的分享URL:
https://www.facebook.com/sharer/sharer.php?u=http://example.com/script.php/a=1%26b=2%26c=3