2

私が持っているもの:
アップローダーに以下のようなリンクを生成させています: (このリンクは1行です)
[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 つの異なるデータで作成されたリンク。
1 番目、pagelink : http://mydomain.ir/direct.php
2 番目、image : http://cdn1.mydomain.ir/up/137594098272081.jpg
3 番目、thumb :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

単純な検索と部分文字列の置換はうまくいきますか?

<?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 に答える