1

我正在尝试从输出中删除所有数组垃圾:

http://freebesttickets.info/spinner.php

这样我就得到了一个带有一个 ID perline 的干净列表,而不是一堆混合了 ID 的箭头和括号

我的第一次尝试

<?php
$f = fopen ('http://fanpagelist.com/category/top_users/view/list/sort/fans/page1', 'r');
$page = '';
while ($line = fgets($f)) {
  $page .= $line;
}
fclose ($f);
preg_match_all('#(?:(?<=\bhref="/like_box\.php\?id=)|' .
                '(?<=\bsrc="https://graph\.facebook\.com/))\d+#i',
                $page, $result, PREG_PATTERN_ORDER);


print_r ($result);



?>

我还尝试获取输出并将其粘贴到第二个文件中,并使用 reg 表达式删除括号之间的所有内容,但没有成功

<?php
$string = "[0] => Array 0] => 20531316728 [1] => 20531316728 [2] => 56531631380 [3] => 56531631380 [4] => 7270241753 [5] => 7270241753 [6] => 10092511675 [7] => 10092511675 [8] => 45309870078 [9] => 45309870078 [10] =>";

echo preg_replace("/\([^)]+\)/","",$string); // 'ABC '


?>
4

3 回答 3

1

或者更简单:

print implode("\n", $result[0]);

代替print_r.

于 2012-11-15T22:52:13.780 回答
0

您最好的选择是遍历数组并以这种方式输出所有内容:

for($i=0;$i<$result.length,$i++){
    echo $result[$i];
    echo "<br/>";
}
于 2012-11-15T22:47:41.520 回答
0

而不是通过它使用 print_r( $result ) 循环

foreach ( $result[0] as $id ) {
    echo $id . "\n";
}

将为您提供每行一个 id 的干净列表(如果您在浏览器中打开它,请查看浏览器输出的源代码)

于 2012-11-15T22:51:25.220 回答