我设法获得了封面图片,但我无法获得全尺寸的封面图片。我已经阅读了一些其他的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));
因为:
需要:
(已删除p180x540 /。)
答案 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);