2016-07-14 63 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