<?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。任何想法如何瞬间输出所有这些?感谢任何帮助。
答案 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
变量。