2012-01-21 7 views
3

文字列の一部を特定の開始位置から終了する方法を教えてください。文字列の特定の部分をコピーする

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

:例えば同じように私は、与えられたURLからB000ROAQ30をコピーしたいです

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

:この B000ROAQ30部分は、この場合のようにURLのどこにでもoccourすることができます0

これをコピーするにはどうすればいいですかB000ROAQ30

注:B000ROAQ30は異なる場合がありますが、最初はB00です。

明確でないことがあれば質問してください。 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は次のようになります。を。ここで確認してください:http://ideone.com/XrjIG

+1

それは単純でcooollだよ...ありがとう – Natasha

+0

@ user1128011:問題はない、あなたは大歓迎です。 – Tadeck

+0

これはURLのB00の最初のインスタンスが常に彼が探しているもので、文字と大文字の数字(少なくとも1つ)しかないことを前提としています –

3

...最後のスラッシュの前に常にある:

それはB00で始まり、スラッシュで終わるだけのことを、あなたはB00です見当がつかないと仮定
$rurl = strrev($url); 
list(,$boo) = explode('/', $rurl); 
$boo = strrev($boo); 

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

あなたは私の忍者でした! – Lodewijk

0

特定のパス部分を抽出する場合は、parse_url()とpathinfo()を参照してください。

関連する問題