PHP可能会从文本中爆炸网址吗?

时间:2016-02-05 20:58:40

标签: php html url youtube explode

我需要从这一行爆炸你的网址:

[embed]https://www.youtube.com/watch?v=L3HQMbQAWRc[/embed]

有可能吗?我需要删除[embed]& [/嵌入]。

4 个答案:

答案 0 :(得分:2)

preg_match就是你所需要的。

<?php

$str = "[embed]https://www.youtube.com/watch?v=L3HQMbQAWRc[/embed]";
preg_match("/\[embed\](.*)\[\/embed\]/", $str, $matches);
echo $matches[1]; //https://www.youtube.com/watch?v=L3HQMbQAWRc

答案 1 :(得分:2)

Host localhost
     Hostname 127.0.0.1
     IdentityFile ~/.ssh/foo
     User foo

请参阅str_replace

答案 2 :(得分:2)

为了更好地衡量,您还可以在正则表达式中使用正lookbehind's and lookahead's

(?<=\[embed\])(.*)(?=\[\/embed\])

您可以这样使用它:

$string = "[embed]https://www.youtube.com/watch?v=L3HQMbQAWRc[/embed]";
$pattern = '/(?<=\[embed\])(.*)(?=\[\/embed\])/';
preg_match($pattern, $string, $matches);
echo $match[1];

以下是正则表达式的解释:

(?<=\[embed\])是一个积极的观察 - 匹配其他东西。

(.*)是一个捕获组 - .匹配任何字符(换行符除外)和Quantifier:*,它提供零次和无限次之间的匹配,尽可能多次。这是在之前和之后的组之间匹配的。 是您正在寻找的机器人。

(?=\[\/embed\])是一个积极的前瞻 - 匹配它之前的事物。

答案 3 :(得分:0)

为什么不使用str_replace? :)快速&amp;简单 http://php.net/manual/de/function.str-replace.php