2012-09-17 37 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

相关问题