清理bbcode网址的简单方法

时间:2013-08-08 06:05:54

标签: php

我有:
我有一个上传器生成如下链接:(此链接在一行)
[url="http://mydomain.ir/direct.php?http://cdn1.mydomain.ir/up/137594098272081.jpg"][img]http://cdn1.mydomain.ir/up/thumbs/137594098272081.jpg[/img][/url]

使用3种不同数据创建的链接 首先, pagelink http://mydomain.ir/direct.php
第二,图片http://cdn1.mydomain.ir/up/137594098272081.jpg
第三,拇指http://cdn1.mydomain.ir/up/thumbs/137594098272081.jpg

我想要的是什么:
我想以最简单的方式(快速方式)将这3个数据作为数组提供

有什么问题? :
可以使用explode功能但必须具有良好的功能可能是一个很大的代码 没有更好的方法来简单快速地清理这个链接? ,例如regx。

3 个答案:

答案 0 :(得分:1)

试试这个:

<?php
$regex = '/\[url="(?<pagelink>(.*))\?(?<image>(.*))\"\]\[img\](?<thumb>(.*))\[\/img\]\[\/url\]/i';
$text = '[url="http://mydomain.ir/direct.php?http://cdn1.mydomain.ir/up/137594098272081.jpg"][img]http://cdn1.mydomain.ir/up/thumbs/137594098272081.jpg[/img][/url]';

preg_match($regex, $text, $matches);

print_r($matches);

答案 1 :(得分:0)

$txt='[url="http://mydomain.ir/direct.php?http://cdn1.mydomain.ir/up/137594098272081.jpg"][img]http://cdn1.mydomain.ir/up/thumbs/137594098272081.jpg[/img][/url]';


$re2='(".*?")';    # Double Quote String 1

$result="http://mydomain.ir/direct.php?http://cdn1.mydomain.ir/up/137594098272081.jpg";

然后split"?"作为分隔符..

$returnValue = explode('?', '"http://mydomain.ir/direct.php?http://cdn1.mydomain.ir/up/137594098272081.jpg"');

array (
  0 => '"http://mydomain.ir/direct.php',
  1 => 'http://cdn1.mydomain.ir/up/137594098272081.jpg"',
)

使用THIS工具在线尝试注册

答案 2 :(得分:0)

可以使用简单的搜索和替换子字符串吗?

<?PHP
   $string = '[url="http://mydomain.ir/direct.php?http://cdn1.mydomain.ir/up/137594098272081.jpg"][img]http://cdn1.mydomain.ir/up/thumbs/137594098272081.jpg[/img][/url]';
   $start = '[url="';
   $middle = '"][img]';
   $end = '[/img][/url]';

// get the link that's between $start & $middle
   $theLink= substr($string, strlen($start)+strpos($string, $start), (strlen($string) - strpos($string, $middle))*(-1));
   // output: http://mydomain.ir/direct.php?http://cdn1.mydomain.ir/up/137594098272081.jpg
   // do a explode('?',$theLink) here if you need to

// get the img that's between $middle & $end
   $theImg= substr($string, strlen($middle)+strpos($string, $middle), (strlen($string) - strpos($string, $end))*(-1));
   // output: http://cdn1.mydomain.ir/up/thumbs/137594098272081.jpg
?>