2012-09-17 57 views
0

Ive下面的代碼,一個函數獲取用戶名列表,並把它們放入數組然後執行函數調用函數get_all_friends,代碼工作正常,沒有錯誤,我的問題在這裏如何如果大量的用戶名稱可以說像10k一樣來調整代碼?用PHP讀取一個文本文件到一個數組 - 建議

就像從文件中讀取包括所有的用戶名名稱和使用

$file_handle = fopen("users.txt") 

請指教擺陣!

<?PHP 
    $user1 = "usernamehere"; 
    $user2 = "usernamehere"; 
    $user3 = "usernamehere"; 
    $u[] = $user1; 
    $u[] = $user2; 
    $u[] = $user3; 

    function get_all_friends($users) 
    { 
     $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, TOKEN_KEY, TOKEN_SECRET); 
     $list = array(); 
     foreach($users as $user) 
     { 
      $result = $connection->get('friends/ids', array(
      "screen_name"=> $user) 
      ); 

      foreach($result->ids as $friend) 
      { 
       $list[] = $friend; 
      } 

     } 
     return $list; 
    } 

    //call the function 
    $result = get_all_friends($u); 

    foreach($result as $res) 
    { 
     $query = "INSERT INTO friends (userid, name, grade, flag) VALUES ($res, 'name', 100, 0) "; 
     mysql_query($query);  
    } 

    //to print the databse result 
    echo "row<br />"; 
    $res = mysql_query("SELECT * FROM friends"); 
    while ($row = mysql_fetch_assoc($res)) 
    { 
     print_r($row); 
    } 
?> 
+0

檢查官方網站上的工作示例:http://php.net/fopen – Kalpesh

回答

1

類似下面應該工作(未經測試):

$filename = "users.txt"; 
$file_handle = fopen($filename, "r"); 
$contents = fread($file_handle, filesize($filename)); 
$usernames = preg_split("/ (,|\\n) /", $contents); 
fclose($file_handle); 

的用戶名必須用逗號或新行分開。

儘管如此,如果你是積極的,用戶名只能由一個新行或逗號分隔,該代碼會更快:

$filename = "users.txt"; 
$file_handle = fopen($filename, "r"); 
$contents = fread($file_handle, filesize($filename)); 
// new line: 
$usernames = explode("\n", $contents); 
// or comma: 
$usernames = explode(",", $contents); 
fclose($handle); 

請選擇只有$用戶名定義之一。

+0

聽起來不錯,但是fclose($ file_handle);應該在函數執行正確後 – Jecki

+0

fclose應該在您完成文件時纔會出現。如果您對get_all_friends函數中的文件沒有做任何處理,那麼它應該在您調用該函數之前完成。 – AdamGold

+0

get_all_friends函數是我的主要功能,我應該從文件中提取每個用戶名,並從twitter中提取朋友ID並將它們添加到數據庫中( – Jecki

0

具體要回答這個問題,檢查file(..) - 「整個文件讀入一個數組」

http://php.net/manual/en/function.file.php

雖然你可能不希望做這種方式,如果文件很大,你可以順序閱讀或進行某種直接導入。

+0

建議直接導入的東西,我的文件會喜歡每行10K行1用戶名 – Jecki

+0

好的,請參閱這裏的答案:http:// stackoverflow。/fonts/3101021/insert-file-contents-into-mysql-tables-column – moopet

相關問題