-2

can someone help me construct an preg_match pattern to match this data?

I have data like this

ftp://username:password@server <br>
ftp://username:password@server <br>
ftp://username:password@server <br> 

ect

i would like an preg_match to match each line as an variable, and use that in an foreach loop

thanks

4

2 回答 2

0

你不需要 preg_match。您可以使用爆炸。确保在explode 后使用array_pop 来消除最后一个空键。

<?php
$linkArray = explode(" <br>",$links);
array_pop($linkArray);
?>

现在数组的每个值都将包含链接,但不包含“br”标签。我认为应该这样做。

您的数据是以下方式吗?

$str=    "ftp://username:password@server <br>
          ftp://username:password@server <br>
          ftp://username:password@server <br>";

如果是,我的解决方案将起作用。

于 2012-10-28T05:58:16.873 回答
0

在简单的情况下是......但您应该检查 rfcs 以查看此类 URL 中允许或不允许的字符。

<?php

$lines=explode("\n","ftp://username:password@server <br>
ftp://username:password@server <br>
tp://username:password@server <br>
ftp://username:password@server <br>");

foreach ($lines as $line) {
if (preg_match('/^ftp:\/\/[\da-z]+:[^\@]+\@[^\s]+ <br>\s*$/',$line)) {echo "$line is ok\n";}
}
于 2012-10-28T06:05:37.847 回答