用PHP删除网址中的一个部分

时间:2011-09-22 20:20:06

标签: php

我有以下从Vzaar上传API返回给我的网址:

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

我需要能够从网址中删除第一个“vz82b51a36989c422abc4db1734208933a”。有没有办法在PHP中执行此操作?

提前感谢您提供的任何帮助。

6 个答案:

答案 0 :(得分:2)

该字符串似乎在您的网址中出现两次(甚至是有效的网址?)。你也没有定义任何获得它的规则,所以在这里我只用第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];
?>

答案 1 :(得分: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];

答案 2 :(得分:0)

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

答案 3 :(得分: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

答案 4 :(得分: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中“source”的位置。

答案 5 :(得分: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>