2 回答

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
$parsed 的范圍僅限于 foreach 循環(huán),因此 $output 僅包含循環(huán)最后一次迭代的結(jié)果。您應(yīng)該在循環(huán)之前定義 $output,并將每次迭代的結(jié)果附加到其中。
<?php
$filters = ["https://example.com/file.txt", "https://example.com/file1.txt", "https://example.com/file3.txt"];
function parseFilterLists($filters)
{
// Define a buffer for the output
$output = [];
foreach ($filters as $filter)
{
$file = file_get_contents($filter);
$parsed = preg_replace('/!.*/', '', $file);
$parsed = preg_replace('/\|\|([\w\d]+(?:\.[\w]+)+)(?:[\^\$=~].*)/', '*://*.$1/*', $parsed);
// Get the output for the file we're working on in this iteration
$currOutput = array_filter(explode("\n", $parsed), function ($url) {
return preg_match('/^\*:\/\/\*\.[\w\d-]+\.[\w]+\/\*$/', $url);
});
// Append the output from the current file to the output buffer
$output = array_merge($output, $currOutput);
}
// Return the unique results
return array_unique($output);
}

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
我想這會如你所愿
$filters = [
"https://example.com/file.txt", "https://example.com/file1.txt", "https://example.com/file3.txt"
];
function parseFilterLists( $filters )
{
$files = [];
foreach( $filters as $filter ){
$files[] = file_get_contents( $filter );
}
$parsed = preg_replace( '/!.*/', '', implode("\n", $files));
$parsed = preg_replace( '/\|\|([\w\d]+(?:\.[\w]+)+)(?:[\^\$=~].*)/', '*://*.$1/*', $parsed);
$output = array_filter( explode( "\n", $parsed ), function($url){
return preg_match('/^\*:\/\/\*\.[\w\d-]+\.[\w]+\/\*$/', $url);
});
return array_values(array_unique($output));
}
- 2 回答
- 0 關(guān)注
- 181 瀏覽
添加回答
舉報(bào)