gpt4 book ai didi

php - 是否可以更改 PHP 的 print_r 函数的行为

转载 作者:可可西里 更新时间:2023-11-01 10:18:16 28 4
gpt4 key购买 nike

<分区>

我已经用 PHP 编写代码很长时间了(到现在已经 15 年多了),而且我通常在 Windows 操作系统上这样做,尽管大部分时间是为了在 Linux 服务器上执行。多年来,我遇到了一个烦恼,虽然它并不重要,但事实证明它有点烦人,我已经到了想看看我是否能以某种方式解决它的地步。问题是:

在编码时,我经常发现将数组的内容输出到文本文件非常有用,这样我就可以查看它的内容。例如:

$fileArray = file('path/to/file');
$faString = print_r($fileArray, true);
$save = file_put_contents('fileArray.txt', $faString);

现在,当我在记事本中打开文件 fileArray.txt 时,文件的内容全部显示在一行中,而不是在写字板中打开文件时看到的漂亮、漂亮的结构。这是因为,无论操作系统如何,PHP 的 print_r 函数都使用\n 作为换行符,而不是\r\n。我当然可以通过仅添加一行代码来进行必要的替换来自己执行此类替换,而问题就出在这里。那一行,一行额外的代码在我的岁月中转化为数百个不必要的额外步骤。我是一个懒惰的编码员,这已经变得 Not Acceptable 了。

目前,在我的开发机器上,我有一种不同的解决方法(如下所示),但这有它自己的一系列问题,所以我想找到一种方法来“强制” PHP 在没有所有额外代码的情况下放入“正确的”换行符。我怀疑这是否可能,但如果我不问,我永远不会知道,所以...

无论如何,我目前的解决方法是这样的。在我的 PHP 包含路径中,我有一个包含以下代码的文件 (print_w.php):

<?php

function print_w($in, $saveToString = false) {
$out = print_r($in, true);
$out = str_replace("\n", "\r\n", $out);
switch ($saveToString) {
case true: return $out;
default: echo $out;
}
}
?>

我还在 php.ini 中将 auto_prepend_file 设置为同一个文件,这样每次 PHP 在我的开发机器上执行脚本时它都会自动包含它。然后我在测试我的脚本时使用函数 print_w 而不是 print_r。这很好用,只要当我将脚本上传到远程服务器时,我确保删除或注释掉所有对函数 print_w 的引用。如果我错过了一个,我(当然)会遇到一个 fatal error ,这可能比原来的问题更令人沮丧,但我强调在上传之前仔细校对我的代码,所以这通常不是问题。

所以说了这么多之后,我的问题是,有没有办法改变 print_r(或类似的 PHP 函数)的行为以使用 Windows 换行符,而不是 Windows 机器上的 Linux 换行符?

感谢您的宝贵时间。

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