2011-09-22 39 views
1
URL的

我有一個正在從Vzaar上傳API返回到我下面的網址:地帶部分出在PHP

https://vz1.s3.amazonaws.com/vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4vz1vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4"c9f4852682649c4a1c034af092b2938f" 

我需要能夠剝離只是第一個「vz82b51a36989c422abc4db1734208933a」出來的網址。有沒有辦法在PHP中做到這一點?

非常感謝您提供的任何幫助。

+0

作爲一個說明,我需要的字符串總是會有所不同,但它總是在它們之間的兩個斜槓之間。 –

+0

您要使用的網址的一致性如何?他們總是會看起來像這樣嗎? – sberry

+0

它總是在'/ source /'後面嗎? – derp

回答

2

該字符串似乎在您的URL中出現兩次(它甚至是一個有效的URL?)。你也沒有定義任何獲取它的規則,所以在這裏我將第五個「部分」用斜槓分開。

<?php 
    $url = 'https://vz1.s3.amazonaws.com/vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4vz1vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4"c9f4852682649c4a1c034af092b2938f"'; 
    $parsed = parse_url($url); 
    $parts = explode('/', $parsed['path']); 
    echo $parts[5]; 
?> 
+0

謝謝你的回答。這是一個有效的網址。我使用Vzaar視頻平臺來託管視頻,爲了讓Vzaar處理上傳的視頻,我需要抓取上傳視頻的「guid」,這是我需要的部分。 –

+0

我明白了。如果這個問題的答案有助於解決您的問題,請點擊旁邊的綠色複選標記,考慮接受答案作爲您的問題的答案。 –

0

如果它總是在斜線之間,可以在/上爆炸()並抓住第n個項目。

1

你要做的是在「source」標籤後面加上字符串。爆炸完成。

$a = 'https://vz1.s3.amazonaws.com/vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4vz1vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4"c9f4852682649c4a1c034af092b2938f'; 
$parts = explode('/', $a); 
$i = 0; 
for(; $i < count($parts); $i++) 
    if($parts[$i] == 'source') 
     break; 
$i++; 
echo $parts[$i]; 
0

字符串總是在完全相同的位置嗎?如果是這樣,怎麼樣像...

<?php 
    $url = 'https://vz1.s3.amazonaws.com/vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4vz1vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4"c9f4852682649c4a1c034af092b2938f"'; 
    $url = parse_url($url); 
    $url = explode('/',$url['path']); 
    print_r($url[5]); 
?> 

上面的代碼將打印vz82b51a36989c422abc4db1734208933a

+0

實際上使用爆炸而不是拆分。 – Nertim

+0

你可以編輯你自己的帖子,把'explode'代替 –

+0

哈哈...感謝Xeon06,不知道爲什麼我沒有想到那:) – Nertim

0

試試這個:

$str = 'https://vz1.s3.amazonaws.com/vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4vz1vzaar/vz8/2b5/source/vz82b51a36989c422abc4db1734208933a/test.mp4"c9f4852682649c4a1c034af092b2938f"'; 
$str = substr($str, strpos($str, 'source/') + 7); 
echo substr($str, 0, strpos($str, '/')); 

在這個例子中, '源' 在URL中的位置沒有必要。

0

我知道我遲到了這裏的一方,但你不應該需要做的

的GUID會在上傳過程中的第一步XML響應返回給你。

http://developer.vzaar.com/docs/version_1.0/uploading/sign.html

見的例子在底部,你可以從那裏直拉GUID。

<?xml version="1.0" encoding="UTF-8"?> 
<vzaar-api> 
<guid>vz7651d8c2558b46179531548224c87f84</guid> 
    <key>vz7/651/source/vz7651d8c2558b46179531548224c87f84/${filename}</key> 
    <https>false</https> 
    <acl>private</acl> 
    <bucket>vzaar_development_bucket</bucket> 
    <policy>ewogICAgICAnZ ... JywgIF0KICAgICAgfQ==</policy> 
    <expirationdate>2009-06-11T00:05:43.000Z</expirationdate> 
    <accesskeyid>96ZODEDA709P5JNKI6X08U7PBQ31GUY8</accesskeyid> 
    <signature>1ZwSGQjv4nrKUM1M/euO8FdxG20=</signature> 
</vzaar-api>