首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本文件结构(表)

问文本文件结构(表)
EN

Stack Overflow用户
提问于 2011-05-19 10:19:29
回答 2查看 544关注 0票数 2

好了,我知道我最近在用php编写查询并将它们输出到文本文件方面得到了很多帮助。我终于掌握并学会了如何真正做到这一点(谢谢大家!)下面的代码显示了我所拥有的:

现在我知道表结构(th/tr/td)在文本文件中不起作用。我想知道是否有人知道如何将其放入传统的“列”视图中,例如:

代码语言:javascript
复制
id   ||   title   ||   keyword
================================
2    ||   bob     ||   jones
2    ||   bob     ||   jones
2    ||   bob     ||   jones
2    ||   bob     ||   jones

我不一定需要边框或任何东西,只需要一个易于阅读的格式。这个输出的文件将用于我工作的公司的google产品(我相信他们需要一种易于阅读的格式,或者只是以表格形式设置的格式。我可以做一个CSV,但是我知道的比php少。再次感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-19 10:43:54

好的,让我们看看我们怎么做。我将重点介绍相关的页眉打印和显示格式化结果。因此,在本例中,我们将使用fprintf将一些花哨的格式化文本打印到这里的文件中。所以这基本上是如何做到这一点的:

代码语言:javascript
复制
id   ||   title   ||   keyword

首先,我们需要为这些字段设置一些宽度,以便所有内容都能很好地显示出来。我们将每个元素的宽度设置为10:

代码语言:javascript
复制
fprintf($fh, "%-10s || %-10s || %-10s\n", "id", "title", "keyword");

这个%-10s的作用是告诉我们,我们需要一个宽度为10个字符的字符串,如果长度不够,则使用空格进行填充。您可以将10调整为您想要的任何宽度,以获得最佳结果。结果如下所示:

代码语言:javascript
复制
id         || title      || keyword

接下来我们打印出我们的分隔符,我只是稍微调整了一下长度,直到它出来的长度相同:

代码语言:javascript
复制
fprintf($fh, "===================================\n");

然后我们遍历并打印出我们的值:

代码语言:javascript
复制
while ($row = mysql_fetch_assoc($result)) {
  fwrite($fh, "%-10s || %-10s || %-10s\n" $row['card_id'], $row['title'],  $row['description']);
}

这将会给我们类似这样的结果:

代码语言:javascript
复制
id         || title      || keyword   
===================================
2          || bob        || jones     
2          || bob        || jones     
2          || bob        || jones     
2          || bob        || jones   

就是这样!下面是完整的代码以供参考:

代码语言:javascript
复制
<?php
// Make a MySQL Connection
 mysql_connect("mysql4.host.net", "user", "pass") or die(mysql_error()); 
 mysql_select_db("amyadele_test") or die(mysql_error()); 

// Query the database for data
$query = "SELECT card_id,title,description FROM cards";
$result = mysql_query($query);

// Open file for writing
$myFile = "test.txt";
$fh = fopen($myFile, 'w') or die("can't open file");

// Loop through returned data and write (append) directly to file
fprintf($fh, "%-10s || %-10s || %-10s\n", "id", "title", "keyword");
fprintf($fh, "===================================\n");
while ($row = mysql_fetch_assoc($result)) {
  fprintf($fh, "%-10s || %-10s || %-10s\n", $row['card_id'], $row['title'], $row['description']);
}

// Close out the file
fclose($fh);
?>
票数 2
EN

Stack Overflow用户

发布于 2011-05-19 10:33:53

CSV对于fputcsv来说微不足道。

代码语言:javascript
复制
$fh = fopen('output.csv', 'w') or die("can't open file");

// output header and first row
$row = mysql_fetch_assoc($result)
fputcsv($fh, array_keys($row));
fputcsv($fh, $row);

// output the remaining rows
while ($row = mysql_fetch_assoc($result)) {
    fputcsv($fh, $row);
}

fclose($fh);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6053095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档