ATIKON
ATIKON

Reputation: 447

Split 2 url images to one

I have json data, what I parse.

{"response":[14516,{"id":310457,"from_id":-22759696,"to_id":-22759696,"date":1458731719,"post_type":"post","text":"Полиция Бельгии определила трех подозреваемых в теракте в аэропорту<br>.","attachment":{"type":"photo","photo":{"pid":405948296,"aid":-7,"owner_id":-22759696,"user_id":100,"src":"http:\/\/cs628628.vk.me\/v628628040\/41d81\/DciVVyiqqOU.jpg","src_big":"http:\/\/cs628628.vk.me\/v628628040\/41d82\/q2EumplfhhM.jpg","src_small":"http:\/\/cs628628.vk.me\/v628628040\/41d80\/zaETzTkDLUs.jpg","width":600,"height":340,"text":"Original: http:\/\/cdn15.img22.ria.ru\/images\/139461\/56\/1394615611.jpg","created":1458731718,"post_id":310457,"access_key":"62c1447c0497a750ce"}},"attachments":[{"type":"photo","photo":{"pid":405948296,"aid":-7,"owner_id":-22759696,"user_id":100,"src":"http:\/\/cs628628.vk.me\/v628628040\/41d81\/DciVVyiqqOU.jpg","src_big":"http:\/\/cs628628.vk.me\/v628628040\/41d82\/q2EumplfhhM.jpg","src_small":"http:\/\/cs628628.vk.me\/v628628040\/41d80\/zaETzTkDLUs.jpg","width":600,"height":340,"text":"Original: http:\/\/cdn15.img22.ria.ru\/images\/139461\/56\/1394615611.jpg","created":1458731718,"post_id":310457,"access_key":"62c1447c0497a750ce"}}],"comments":{"count":1},"likes":{"count":7},"reposts":{"count":0}}]}

I'm retrieving "src_big":"http://cs628628.vk.me/v628628040/41d82/q2EumplfhhM.jpg" for example. But this image, not in https://, i need to convert to https by the set of rules.

http://cs629401.vk.me/v629401896/3e689/pT5Z5oukzIE.jpg
https://pp.vk.me/c629401/v629401896/3e689/pT5Z5oukzIE.jpg

There u can see I have similar "c629401" and I need to change

http://cs629401.vk.me/

to

https://pp.vk.me/c629401/

this Images can be with another link for example

http://cs628628.vk.me/v628628040/41d82/q2EumplfhhM.jpg
https://pp.vk.me/c628628/v628628040/41d82/q2EumplfhhM.jpg

Upvotes: 1

Views: 235

Answers (1)

DevilaN
DevilaN

Reputation: 1494

Following code using preg_match should be ok:

<?php
    $imgurl = "http://cs629401.vk.me/v629401896/3e689/pT5Z5oukzIE.jpg";
    $toremove = Array("s", "S");
    preg_match("#http://(.+)\.vk\.me/(.+)#", $imgurl, $matches);
    $simgurl = "https://pp.vk.me/" . str_replace($toremove, "", $matches[1]) . "/" . $matches[2];

    echo $simgurl . "\n";

https://pp.vk.me/c629401/v629401896/3e689/pT5Z5oukzIE.jpg


You can wrap it in a function to convert urls:

<?php

function convertUrl($url)
{
    $toremove = Array("s", "S"); // Letters to remove from matches[1] group
    preg_match("#http://(.+)\.vk\.me/(.+)#", $url, $matches);
    return "https://pp.vk.me/" . str_replace($toremove, "", $matches[1]) . "/" . $matches[2];
}

echo convertUrl("http://cs629401.vk.me/v629401896/3e689/pT5Z5oukzIE.jpg") . "\n";

https://pp.vk.me/c629401/v629401896/3e689/pT5Z5oukzIE.jpg

Upvotes: 5

Related Questions