2016-06-10 68 views
1
$file = "sample_623fWB93.txt"; // change filename everyday 
    $fp = fopen($file, "r"); 
    $data = fread($fp, filesize($file)); 
    fclose($fp); 

    $sql = mysql_connect("localhost", "root", ""); 
    if (!$sql) { 
     die("Could not connect: " . mysql_error()); 
    } 

    mysql_select_db("textfile"); 

    $result = mysql_query("LOAD DATA INFILE '$file'" . 
         " INTO TABLE dv_payees FIELDS TERMINATED BY '|'"); 
    if (!$result) { 
     die("Could not load. " . mysql_error()); 
    } 

變化的.TXT文件的文件名有沒有辦法在PHP代碼,可以讀取生成的隨機文件名的.txt是每天都會發生變化,它會在數據庫中自動加載。例如今天的文字是sample_623fWB93.txt,然後是湯姆。該文本文件將在明天之後的sample_9439BJD20.txt。將sample_259KLG11.txt如何給fopen用在PHP

回答

2

使用簡單date格式:

$file = "sample_" . date("d_m_y") . ".txt"; 
$fp = fopen($file, "r"); 
// other stuff 

更新: 如果你的文件有其他名稱格式,不像今天的日期 - 你應該找到在目錄中的文件。至少有兩種方法:

  1. 使用glob()功能與一些正則表達式參數。

    foreach (glob("/path/to/reports/*.txt") as $filename) { 
        echo $filename; 
    } 
    
  2. 如果您確信有一個只有在目錄中的文件(或一個txt文件) - 您可以使用opendirreaddir並找到它的名字。

    ​​
+0

你先生TNX,怎麼樣,如果文本文件的文件名是隨機的?像'sample_75823.txt'然後湯姆。將會是'sample_86304.txt'? –

+0

「75283」和「86304」的邏輯是什麼?沒有? –

0

可以動態生成的文件名:

$base = 'sample_'; 
$extension = '.txt'; 
$dateFormat = 'd_m_y'; 
$file = $base . date($dateFormat) . $extension; 

和你有文件名

+0

tnx你先生,如果文本文件的文件名是隨機的呢?像'sample_75823.txt'然後湯姆。將會是'sample_86304.txt'? –

+0

@DafnyCruz然後你可以用兩個變量'$ min'和'$ max'來替換'$ dateFormat',它將包含可以隨機生成的最小和最大數字,並使用'rand($ min,$ max)'來代替'$ date'。在這裏閱讀更多關於'rand'的信息:http://php.net/manual/en/function.rand.php – dimlucas