2012-08-23 40 views
-3

test.php目錄與csv和文本文件相同。現在我想通過所有csv file nameall the text name以下if條件。即用所有的csv文件名替換one.csv。用所有的txt文件名替換one.txt如何傳遞兩個數組?

if (($handle = fopen("one.csv", "r")) !== FALSE && ($handle2 = fopen("one.txt", 'a')) !== FALSE) { ...} 

以下是我的代碼。在運行代碼後,我發現文本中的所有內容文件都是一樣的。它循環太多次。如何更改代碼?謝謝。

$files = glob("./*.csv"); 
    $files1 = glob("./*.txt"); 
    foreach($files as $filepath){ 
    foreach($files1 as $filepath1){ 


    $row = 1; 
if (($handle = fopen("one.csv", "r")) !== FALSE && ($handle2 = fopen("one.txt", 'a')) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     if($row > 1) { 
      $url = $data[8]; 
      foreach($result[0] as $url){ 
       fwrite($handle2, $url."\r\n"); 
      } 

     } 
     $row++; 
    } 
    fclose($handle); 
    fclose($handle2); 
} 

    } 
    } 

txt文件是空的。現在,我想讀取csv文件並提取它的一些內容,然後將它們放入文本文件中。謝謝

+3

我不知道你在做什麼。你能否重新說出你的問題,讓它更有意義? –

+0

我想他打算在他的腳本目錄中打開'.txt'或'.csv'擴展名的所有文件。 –

+0

你是否想用'.txt'打開'.csv'文件,它具有相同的文件名或不是......? –

回答

0

你不需要glob的.txt文件,只是水珠CSV,並通過.txt

$csv = glob('./*.csv'); 
foreach($csv as $file) { 
    $txt = preg_replace('#\.csv$#', '.txt', $file); 
    if (($handle = fopen($file, "r")) !== FALSE && ($handle2 = fopen($txt, 'a')) !== FALSE) { 
    //your code... 
    } 
} 
+0

我把所有的代碼放到我的問題中。謝謝 – down

+0

如果我合併這兩個文學。那麼我不知道如何將它們傳遞給if(($ handle = fopen(「one.csv」,「r」))!== FALSE &&($ handle2 = fopen(「one.txt」,'a' ))!== FALSE) – down

+0

即替換one.csv和one.txt。 – down

0

更換擴展.csv的問題是,你有一個循環內的循環。所以每當第一個循環循環時,它都會在第二個循環中再次執行一切。

嘗試這樣:

$csv_files = glob("./*.csv"); 
$txt_files = glob("./*.txt"); 

$csvs = array(); 
foreach($csv_files as $fp){ 
    $csvs[] = fopen($fp, "r"); 
} 

$txts = array(); 
foreach($txt_files as $fp){ 
    $txts[] = fopen($fp, "r"); 
} 

var_dump($csvs); // all csv file info 
var_dump($txts); // all txt file info 

你可以測試一下,看看!== false在單獨的迴路,如果你想。否則,如果你只是想使用它們,那麼你可以通過單獨的數組循環,並以這種方式從中獲取信息。

+0

我寫過這個假設,你想保持你的CSV和你的TXT分開。然而,你可以做@ @ Bartimeus所說的,並在開始'$ all_files = array_merge($ csv_files,$ txt_files);'時合併這兩個數組,然後你只需要一個'foreach'循環。它不會在性能方面有太大的區別,但如果你想要對待它們,它可能對你更有用。 –

+1

是的,鑑於我們不知道他想做什麼,很難幫助他...... –

+0

是...... ............ –