在PHP中从url中剥离一个部分


Strip a section out of a url in PHP

我有以下URL,从Vzaar上传api返回给我:

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

我需要能够从url中剥离第一个"vz82b51a36989c422abc4db1734208933a"。有什么办法在PHP中做到这一点吗?

事先感谢您提供的任何帮助

该字符串似乎在您的URL中出现了两次(它甚至是一个有效的URL吗?)您也没有定义任何获取它的规则,所以这里我只取第5个"部分",用斜杠分隔。

<?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];
?>

你要做的就是取"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];

如果它总是在斜杠之间,你可以在/上爆炸()并抓取第n项

试试这个:

$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, '/'));

在这个例子中,'source'在URL中的位置是不必要的。

字符串总是在完全相同的位置吗?如果是这样,那么……

<?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

我知道我迟到了,但你不应该这样做

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>