有人可以帮我构建一个preg_match模式来匹配这些数据吗?
我有这样的数据
ftp://username:password@server <br>
ftp://username:password@server <br>
ftp://username:password@server <br>
等等
我希望preg_match将每一行作为变量匹配,并在foreach循环中使用它
感谢
答案 0 :(得分:0)
你不需要preg_match。你可以使用爆炸。确保在爆炸后使用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>";
如果是,我的解决方案将有效。
答案 1 :(得分: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";}
}