2012-01-21 2 views
3

Как я могу получить часть строки из конкретной начальной позиции до конца. Как, например, я хочу, чтобы скопировать B000ROAQ30 из данного URL:скопируйте определенную часть строки php

www.amazon.com/Black-Nokia-HS-47-Stereo-Headset/dp/B000ROAQ30/ref=pd_sim_hi_4

Это B000ROAQ30 часть может происходить подавление в любом месте в URL, как и в этом случае:

www.amazon.com/abc/cdfg/hij/dp/B000ROAQ30/ref=pd_sim_hi_4

Как я могу скопировать этот B000ROAQ30?

Примечание B000ROAQ30 может быть другим, но с B00 в начале.

Пожалуйста, задавайте вопросы, если что-то неясно.

+0

Пожалуйста, отформатируйте свой вопрос - это то, что вы можете сделать, даже если вы не используете английский язык. – Tadeck

ответ

6

Это должно работать:

$url = 'www.amazon.com/Black-Nokia-HS-47-Stereo-Headset/dp/B000ROAQ30/ref=pd_sim_hi_4'; 
preg_match('/B00[0-9A-Z]+/', $url, $matches); 

$result = $matches[0]; 

$result в этом случае будет: B000ROAQ30. Проверьте это здесь: http://ideone.com/XrjIG

+1

Thats soo simple and coooll ... Спасибо – Natasha

+0

@ user1128011: Без проблем, пожалуйста. – Tadeck

+0

Это предполагает, что первый экземпляр B00 в URL-адресе всегда будет тем, кого он ищет, и что он имеет только буквы и номера капитала (по крайней мере один) –

3

Предполагая B00 ... всегда до последнего слеша:

$rurl = strrev($url); 
list(,$boo) = explode('/', $rurl); 
$boo = strrev($boo); 

Предполагая, что вы понятия не имеете, где B00 есть, только, что она начинается с B00 и заканчивается косой чертой:

preg_match('@/B00.*?/@', $boo); 
$boo = trim($boo[0], '/'); 
+0

Ты меня ниндзя! – Lodewijk

0

Возможно, вы захотите посмотреть на parse_url() и pathinfo(), если хотите извлечь определенные части пути.

Смежные вопросы