gpt4 book ai didi

php - 格式化文本文件

转载 作者:行者123 更新时间:2023-12-02 14:19:29 25 4
gpt4 key购买 nike

我的代码中有这个

echo $result['arr']['sub']."\t\t\t\t".$result['arr2']['sub2'];

我通过 header 将其发送到文本文件,但它显示如下:

Subject              Description
Test Checking to see it it works
A long string pushes my description to the side

如何“修复”格式,以便无论第一列中的文本长度如何,第二列始终垂直排列?

最佳答案

我认为您误解了制表符空格的作用。他们不会神奇地考虑以下几行中的文本;他们只是跳转到显示介质配置的下一个空闲制表位

如果前面的文本已经超过了制表位,那么,是的,它将被跳过。

也许您希望在第一列之后有固定宽度的边距。

确定要使用的空格数(可能通过获取第一列中最长项目的长度,并添加一些填充宽度)​​,然后使用 str_repeat 将其附加到第一列中的每个值,记住减去该字段中实际的字符数。

<小时/>

也许像这样,第一列宽度固定为 20:

<?php
$column_width = 20;
foreach ($data as $result) {
echo $result['arr']['sub'];
echo str_repeat(' ', $column_width - strlen($result['arr']['sub']));
echo $result['arr2']['sub2'];
echo "\n";
}
?>

(我没有考虑到第一列中的文本长度超过 20 个字符的情况。)

<小时/>

或者也许像这样,通过我上面描述的巧妙扩展:

<?php
$margin = 5;
$column_width = 0;
foreach ($data as $result) {
$column_width = max($column_width, strlen($result['arr']['sub']));
}
$column_width += $margin;
foreach ($data as $result) {
echo $result['arr']['sub'];
echo str_repeat(' ', $column_width - strlen($result['arr']['sub']));
echo $result['arr2']['sub2'];
echo "\n";
}
?>

(这里第一列自动扩展,所以它有多长并不重要。)

<小时/>

Live demo of both approaches.

<小时/>

进一步的工作可能包括以编程方式将第一列中的文本长度限制为适合您的输出上下文的长度,但我会将其留给您。

关于php - 格式化文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6920179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com