user3600150
user3600150

Reputation: 77

php Format arrays and objects etc output in text logfile

Should be a pretty obvious answer, but I have spent several hours looking at existing similar questions and none are working for me

My code generates logfiles for (manual) debugging etc If I use print_r($array,TRUE) to capture the output from an array as a string and then echo with <pre> tags to display that on screen, it's really easy to view and understand what's going on.

However, when I write the same info to the logfile, fwrite doesn't preserve the line break and indentation formatting so there is a splurge of info that takes significant amounts of time to make sense of, esp larger arrays and objects.

I have tried using output buffer

$string=print_r($array,TRUE);
ob_start();
echo "<pre>$string</pre>";
$outputBuffer = ob_get_contents();
ob_end_clean();
fwrite($handle,$outputBuffer);

However, all that's now happening is that I see the <pre> tags added into the basic, non-layout output

e.g.

<pre>DOING QUERY: SELECT * FROM event_triggers WHERE DateTime<='2015-09-16 13:04:30'</pre><pre>Completed checking for event triggers</pre>

Upvotes: 0

Views: 46

Answers (2)

Lahiru Maduranga
Lahiru Maduranga

Reputation: 29

Rename file to .html extension and just open with a browser. Browser will detect it with line break html document. <pre></pre> will output like <p></p> in the browser.

Upvotes: 0

mgrueter
mgrueter

Reputation: 1420

You can't just add HTML tags to a document, open it in an editor expect HTML tags to be rendered correctly.

You either have to setup your log file as a HTML file (doesn't neccessarily have to be valid, so just add .html to the file name and open it in the browser) or use var_dump to echo out the variables.

Upvotes: 1

Related Questions