2

我有:
我有一个上传器生成如下链接:(此链接在一行上)
[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 个不同的数据创建的链接。
第一,页面链接http://mydomain.ir/direct.php
第二,图片http://cdn1.mydomain.ir/up/137594098272081.jpg
第三,拇指http://cdn1.mydomain.ir/up/thumbs/137594098272081.jpg

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

什么问题 ?:
可以使用explode功能但必须精细功能可以大码。
没有更好的方法来简单快速地清理这些链接吗?,例如 regx 。

4

3 回答 3

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);
于 2013-08-08T06:22:39.870 回答
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"',
)

使用此工具在线尝试正则表达式

于 2013-08-08T06:21:42.883 回答
0

Could a simple search and replace substring work for you?

<?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
?>
于 2013-08-08T06:51:55.183 回答