将var_dump保存到文本文件中

Yas*_*ida 19 php mysql sql var-dump

我有sql查询的PHP代码

<?
$server = "127.0.0.1";
$username = "root";
$password = "1";

$link= connecttodb($server,$username,$password);

function connecttodb($server,$username,$password)
{

    $rez=fopen("test.txt","ab");
    if ($link=mysql_connect ("$server","$username","$password",TRUE))
    {
        fwrite($rez,"".$server." \r\n");
	    echo "Connected successfully to >> " .$server ;
		
		$result = mysql_query('SHOW DATABASES');
        echo "<br>";
        while ($row = mysql_fetch_array($result))
        {
            var_dump ($row); }
	    }
    }
    ini_set('max_execution_time', 10);
    return $link;
?>
Run Code Online (Sandbox Code Playgroud)

此代码在浏览器上打印我的数据库名称如何将数据库名称保存到文本文件中

Connected successfully to >> 127.0.0.1
array(2) { [0]=> string(18) "information_schema" ["Database"]=> string(18) "information_schema" } array(2) { [0]=> string(2) "db" ["Database"]=> string(2) "db" } array(2) { [0]=> string(5) "mysql" ["Database"]=> string(5) "mysql" } array(2) { [0]=> string(10) "phpmyadmin" ["Database"]=> string(10) "phpmyadmin" } array(2) { [0]=> string(4) "test" ["Database"]=> string(4) "test" }
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 34

您可以使用输出缓冲功能捕获输出并将其写入文件.

ob_flush();
ob_start();
while ($row = mysql_fetch_assoc($result)) {
    var_dump($row);
}
file_put_contents("dump.txt", ob_get_flush());
Run Code Online (Sandbox Code Playgroud)

  • 问题中的代码使用`var_dump()`。问题是关于如何将输出输出到文件中,而不是文件的格式。 (3认同)
  • `$str = print_r($row, true);` 当为 true 时返回一个字符串,与 var_dump 相同 (2认同)

小智 14

不要为此使用var_dump,使用serialize如下:

<?php
$fp = fopen('vardump.txt', 'w');
fwrite($fp, serialize($myobj));
fclose($fp);
?>
Run Code Online (Sandbox Code Playgroud)

要恢复它,可以使用unserialize($ filecontents); 通过从文件中读回来.

  • 简单,好主意.还有`print_r()`从任何变量创建一个字符串,它比序列化数据更容易阅读. (2认同)