从字符串PHP的开头到结尾删除特定字符

时间:2017-09-24 08:39:19

标签: php regex string

我有一个像这样的Sting:

$content = "[video width="640" height="360" mp4="http://click.ir/wp-content/uploads/2017/09/Spinning_cylinder_shaped_elevator.mp4"][/video]"

我想从'[video' to 'mp4="'删除... built-in中是否有function PHP或解决此问题的解决方案。

宽度和高度不是静态的,或在我的问题中定义

4 个答案:

答案 0 :(得分:3)

这是一个简单的1行解决方案,用于删除部分字符串,直到mp4=

$string = '[video width="640" height="360" mp4="http://click.ir/wp-content/uploads/2017/09/Spinning_cylinder_shaped_elevator.mp4"][/video]"';
$data = stristr($string, 'mp4="');
var_dump($data);
// string(96) "mp4="http://click.ir/wp-content/uploads/2017/09/Spinning_cylinder_shaped_elevator.mp4"][/video]""

但是如果你只想要url字符串:

$string = '[video width="640" height="360" mp4="http://click.ir/wp-content/uploads/2017/09/Spinning_cylinder_shaped_elevator.mp4"][/video]"';
preg_match('#"\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))"#', $string, $match);
var_dump(trim($match[0],'"'));
// string(80) "http://click.ir/wp-content/uploads/2017/09/Spinning_cylinder_shaped_elevator.mp4"

答案 1 :(得分:1)

要提取mp4网址部分,只需使用preg_match

preg_match('#mp4=\"(.*)\"#i', $content, $result);
if(!empty($result[1])){
    $url = $result[1];
}else{
   $url = "";
}

答案 2 :(得分:0)

使用正则表达式。如果我的问题是正确的,你需要删除字符串的url部分,直到这个字符串的最后。这是您可以使用的代码:

<?php
    $str = '[video width="640" height="360" mp4="http://click.ir/wp-content/uploads/2017/09/Spinning_cylinder_shaped_elevator.mp4"][/video]';
    $str = preg_replace_callback("/(\[video .*mp4=\")(.*)/", 'the_function', $str);
    function the_function($matches) {
        return $matches[1];
    }
    var_dump($str);
?>

答案 3 :(得分:0)

我假设您想要获取该网址。我会使用正则表达式来获取它的url。正则表达式是http [\ S] *。mp4。

在代码中,这是:

$string = '[video width="640" height="360" mp4="http://click.ir/wp-content/uploads/2017/09/Spinning_cylinder_shaped_elevator.mp4"][/video]"';
// use regex to fetch the url
preg_match("/http[\S]*\.mp4/", $string,  $matches);
// get first match
$url = $matches[0];

// $url is http://click.ir/wp-content/uploads/2017/09/Spinning_cylinder_shaped_elevator.mp4

有更好的URL和更好的正则表达式,但在你的情况下,这将工作。根据您的传入数据,您可以调整正则表达式以获得所需内容。

请参阅preg_match docs:http://php.net/manual/en/function.preg-match.php

在线正则表达式测试员:https://www.regexpal.com/

很多Regex的相关信息:http://www.regular-expressions.info/