2016-06-10 6 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()); 
    } 

Есть ли способ закодировать php, который может читать генерируемое произвольное имя файла .txt, которое будет меняться каждый день, и оно будет автоматически загружаться в базу данных. Пример текста сегодня - sample_623fWB93.txt, затем tom. текстовый файл будет sample_9439BJD20.txt, затем на следующий день после тома. будет sample_259KLG11.txtКак сменить имя файла .TXT в PHP

ответ

2

Использовать простой date формат:

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

Update: Если ваши файлы имеют другой формат имени, который не нравится сегодняшняя дата - вы должны найти файл в каталоге. Там вы, по крайней мере два способа:

  1. Использование glob() функции с некоторым параметром регулярных выражений.

    foreach (glob("/path/to/reports/*.txt") as $filename) { 
        echo $filename; 
    } 
    
  2. Если вы уверены, что есть только один файл (или один txt файл) в каталоге - Вы можете использовать opendir и readdir и найти его имя.

    $path = '/path/to/reports/'; 
    if ($dh = opendir($path)) { 
        while (($file = readdir($dh)) !== false) { 
         echo "File: $file : type: " . filetype($path . $file) . "<br />"; 
        } 
        closedir($dh); 
    } 
    
+0

TNX вам, сэр, как насчет того, если имя файла текстового файла является случайным? например 'sample_75823.txt', затем tom. будет 'sample_86304.txt'? –

+0

Какова логика с '75283' и' 86304'? Никто? –

0

Вы можете создать имя файла динамически:

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

И у вас есть имя файла

+0

tnx you sir, а как насчет того, является ли файл текстового файла случайным? например 'sample_75823.txt', затем tom. будет 'sample_86304.txt'? –

+0

@DafnyCruz Затем вы можете заменить '$ dateFormat' двумя переменными' $ min' и '$ max', которые будут содержать минимальные и максимальные числа, которые могут быть генерированы случайным образом, и использовать' rand ($ min, $ max) 'вместо '$ date'. Узнайте больше о 'rand' здесь: http://php.net/manual/en/function.rand.php – dimlucas

Смежные вопросы