2009-08-31 2 views
1

Что такое php-скрипт для преобразования таблицы mysql в текстовый файл? Я преобразовал его в формат CSV, который открывается как файл excel. Мне также нужны данные таблицы в текстовом файле. Как мне это сделать?как преобразовать таблицу mysql в текстовый файл в php?

Для преобразования его в формат CSV, я использовал данные заголовка, как:

$filename = "export_".date("Y-m-d_H-i",time()); 
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=".$filename.".csv"); 

Я попытался с помощью заголовка ("Content-Type: текст/обычный"); и использовал расширение .txt. Это не сработало. Кто-нибудь мне подскажет, пожалуйста.

ответ

-1

Я нашел способ сохранить таблицу в текстовом формате, сохраненную в виде приложения ms word с расширением .doc. А заголовки приведены ниже

header("Content-Type: application/msword"); 
header("Content-disposition: attachment" . date("Y-m-d") . ".doc"); 
header("Content-disposition: filename=".$filename.".doc"); 

Но теперь я пытаюсь отобразить его в виде таблицы в текстовом файле .. Потому что это выглядит как бросовые данные без какого-либо выравнивания. Добавление области вкладок не помогает .. Любые предложения?

+0

Вы ответили на свой вопрос вопросом и затем выбрали, что «ответ» как принятый ответ? – Benjam

1

mysqldump создаст файл в формате CSV для вас:

mysqldump -u User1 -p -t -T/path/to/sav [database] --fields-enclosed-by=\" --fields-terminated-by=, --lines-terminated-by=\r\n --no-create-db --no-create-info 

--fields-enclosed-by=\" гарантирует, что все ваши поля заключены цитатами и --fields-terminated-by=, делает эти поля разделенных запятыми.

1

, что об этом один - SQL (CVS)

SELECT   * 
FROM   TABLE1 
INTO   OUTFILE 'path\file.cvs' 
       FIELDS TERMINATED BY '\,' 
       OPTIONALLY ENCLOSED BY '\"' 
       LINES TERMINATED BY '\n' 

Если вы хотите простой текст -

SELECT   * 
FROM   TABLE1 
INTO   OUTFILE 'path\file.sql' 

mysql doc

Оператор SELECT ... INTO имя_файла Outfile » 'формы SELECT записывает выбранные строки в файл. Файл создан на сервере, поэтому у вас должен иметь привилегию FILE использовать этот синтаксис. file_name не может быть существующим файлом, который среди других вещей предотвращает такие файлы, как /etc/passwd, и таблицы базы данных от . Начиная с MySQL 5.0.19, переменная variable_set_filesystem управляет интерпретацией имени файла.

+0

Я даже пробовал это, файл не сохраняется. – Angeline

+0

У вас есть права на запись в пункт назначения? –

+0

Да, у меня есть .. – Angeline

1

файл .csv это обычный текстовый файл, вы просто посылать заголовки, которые заставляют его открыть в Excel.

Если вы хотите, один и тот же формат файла, но не открыт в Excel, просто не отправить эти заголовки:

header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=".$filename.".csv"); 

И вместо того, чтобы отправить этот один:

header('Content-Type: text/plain'); 

Если вы хотите для принудительной загрузки текстового файла, попробуйте следующее:

header('Content-Type: application/force-download'); 
+0

Если это так, содержимое отображается в браузере. Оно не сохраняется как текстовый файл. – Angeline

+0

Обновлен с примером, который должен принудительно загрузить текстовый файл. –

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