(file_get_contents)立即获取所有变量

时间:2013-12-20 14:22:13

标签: php regex

<?php

$text = file_get_contents('http://127.0.0.1/text.php');

$start = '<span class="ip">';
$end = '</span>';

$start_p = strpos($text, $start);
$end_p = strpos($text, $end);

$text_p = $end_p - $start_p;

$cut = substr($text, $start_p, $text_p);
$cut = str_replace($start,"",$cut);

$msg = $cut;

echo $msg;

?> 

text.php:

<?php
<span class="ip">11.11.11.11</span>
<span class="ip">22.22.22.22</span>
<span class="ip">33.33.33.33</span>
<span class="ip">44.44.44.44</span>
<span class="ip">55.55.55.55</span>
<span class="ip">66.66.66.66</span>
?>

我想让所有可能的变量以<span class="ip">开头,以</span>结尾。使用此脚本,我设法只获得一个变量11.11.11.11。任何想法如何瞬间输出所有这些?感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

使用preg_match_all代替,使用一行代码捕获所有必需的数据:

preg_match_all('/<span class="ip">([^<]*)<\/span>/', $text, $m);
$ips = $m[1]; 
var_dump($ips); // ['11.11.11.11', '22.22.22.22'...]

Demo。在这里,我使用正则表达式匹配<span>...部分 - 并捕获组以将数据提取到$m变量。