0

プロキシを使用してサーバーに接続するスクリプトに取り組んでおり、機能するプロキシが見つかるまでリストを調べています。

プロキシのリストは次のようになります。

127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080
127.0.0.1:8080

もちろん、何度も同じ IP とポートではありません。さて、もともと私はそれらをすべて配列に入れるために使用するつもりでしたfile()が、明らかに、行全体を含む値を持つ配列が残ります。

理想的には、私が望むのは次のような配列です

"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,
"127.0.0.1" => 8080,

しかし、それを行うための最も簡単な (そして最も効率的な) 方法はわかりません。助言がありますか?

4

2 に答える 2

4

ファイルをループして、いくつかの解析を行います。

$path = './file.txt';

$proxies = array();
foreach(file($path, FILE_SKIP_EMPTY_LINES) as $line) {
  $proxy = trim($line);
  list($ip, $port) = explode(':', $proxy);

  $proxies[$ip] = $port;
}

var_dump($proxies);

キーはすべての要素で同じであるため、「期待される」例は無効な配列表記であることに注意してください。しかし、私はあなたがフォーマットするつもりだったと思いました。

于 2012-06-04T18:28:59.713 に答える
0

次のコードを使用

<?php

$data = "127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080
    127.0.0.1:8080";


    $urls = explode("\n",$data);

    $new_data = array();
    foreach($urls as $url){
        if($url!=""){
            $url_parts = explode(":",$url);
            $new_data[] = array($url_parts[0]=>$url_parts[1]);
        }
    }

    print_r($new_data);




?>
于 2012-06-04T18:35:10.350 に答える