脸书 api :获得全尺寸封面



我设法得到了封面图片,但我无法获得全尺寸的图片。我在其他一些stackoverflow帖子上读到,他们不是从facebook api获取它,而是替换了url(我现在正在做的事情)。

https://graph.facebook.com/me?fields=cover

A) 如果可能的话,我充其量希望 facebook 退回全尺寸封面,所以我不需要做案例 B。

B) 如果情况 A 是不可能的,是否可以将我现在正在做的事情更改为正则表达式?我只是不确定如果情况 A 是不可能的,这是最好的方法。

$total_chars = strlen($response->cover->source);
$last_occurence = strrpos($response->cover->source, '/');
$new_haystack = substr_replace($response->cover->source, '', $last_occurence, ($total_chars - $last_occurence));
$first_occurence = strrpos($new_haystack, '/');
$new_cover_url = substr_replace($response->cover->source, '', ($first_occurence + 1), ($last_occurence - $first_occurence));

因为:

https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/p180x540/11084131_1381639242163565_3886632224714594501_o.jpg

需要 :

https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/11084131_1381639242163565_3886632224714594501_o.jpg

(p180x540/已被移除)。

这是一种非正则表达式方法。显然对目录更改的缺陷持开放态度,但应该在描述的实例中工作。

$string = 'https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/p180x540/11084131_1381639242163565_3886632224714594501_o.jpg';
$replace = array_reverse(explode('/', $string));
echo str_replace($replace[1] .'/', '', $string);

Preg_replace就可以完成这项工作。但是,我将加入的表达式在未知的极端情况下并不可靠。

    $fb = "https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/p180x540/11084131_1381639242163565_3886632224714594501_o.jpg";
    $fb1 = "https://fbcdn-sphotos-g-a.akamaihd.net/hphotos-ak-xpa1/t31.0-8/11084131_1381639242163565_3886632224714594501_o.jpg";
    $fb = preg_replace('/p[0-9]+x[0-9]+//i', '', $fb);
    echo ($fb);

最新更新