Facebook api:获得全尺寸封面

时间:2015-04-15 12:11:01

标签: php regex facebook facebook-graph-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 /。)

2 个答案:

答案 0 :(得分:2)

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

$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);

答案 1 :(得分:1)

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);