Justin01
Justin01

Reputation: 288

Extract specific part of a string in PHP

I was simply wondering what would be the simplest and most efficient way of extracting a certain part of a dynamic string in PHP?

Per example, in this string:

http://www.dailymotion.com/video/xclep1_school-gyrls-something-like-a-party_music#hp-v-v13

I'd only like to extract (and insert in a variable) the: " xclep1_school-gyrls-something-like-a-party_music ".

The main goal is to take this part, insert it to this URL: http://www.dailymotion.com/thumbnail/160x120/video/xclep1_school-gyrls-something-like-a-party_music so I can capture the thumbnail externally.

Sorry if this is a "newbie" question and thank you very much for your time. Any hint/code/php reference is appreciated.

Upvotes: 4

Views: 9259

Answers (4)

Mark Baker
Mark Baker

Reputation: 212522

The parse_url() function and extract the path. Explode on '/' and get the last element

Upvotes: 2

Gordon
Gordon

Reputation: 317197

Try parse_url over regex:

$segments = explode('/', parse_url($url, PHP_URL_PATH));

$segments will be an array containing all segments of the path info, e.g.

Array
(
    [0] => 
    [1] => video
    [2] => xclep1_school-gyrls-something-like-a-party_music
)

So you can do

echo $segments[2];

and get

`xclep1_school-gyrls-something-like-a-party_music`

Upvotes: 12

bharath
bharath

Reputation: 1233

Try this

$url = $_SERVER['REQUEST_URI'];
$parsed_url = parse_url($url);
$url_parts = explode('/',$parsed_url['path']);
print_r($url_parts);

Upvotes: 1

Sjoerd
Sjoerd

Reputation: 75679

One of the following:

preg_match('~/[^/]*$~', $str, $matches);
echo $matches[0];

Or:

$parts = explode('/', $str);
echo array_pop($parts);

Or:

echo substr($str, strrpos($str, '/'));

Upvotes: 4

Related Questions