Re: [PHP] Heredocs, print_r() and newline "\n" and fnmatch() -curious failures ...
Thanks for the response - I found the answer to Q1 - the problem of formatting newlines - I was running the code outputting to browser - and got lazy on some - just pasting the PHP manual examples code directly, without bracketing with HTML tags such as ... etc. Of course that won't produce the formatting I was expecting and as shown in the manual. What confused me? - some example code includes the HTML tags and produce formatted output! So, I feel really stupid about that one. Perhaps there is a PHP manual update project in here somewhere to normalize the examples code so they can be run to get the output as printed. --- Q2 re the undefined function - fnmatch() - still needs an explanation. I need to get PHP's fnmatch() function, Xdebug, and iMagick's readImage() function working in the same setup. Using Xammplite_Win_32_1.7.1, PHP ver 5.2.9 reports fnmatch() is not a defined function and I haven't been able to get Xdebug functioning on this setup. readImage() works just fine. Using Xammp_Win_32_1.7.3, PHP ver 5.3.1 fnmatch() is defined and Xdebug works 'out of the box' but Apache crashes when iMagick readImage() is called. I think I should communicate this to the extension author. Will post here if I get a result. Thanks again, Peter. YAD Peter Lind wrote: On 23 September 2010 21:47, YAD(YetAnotherDavid) wrote: Question 1 : how to get the newline functioning ? even print_r() output is not 'newlined' as it should be. Also note the \n is missing between the " " in the output text of the second test! Are you outputting to browser or to command line? Browsers have a habit of ignoring whitespaces, reducing them to one whitespace character regardless of their type or how many. Regards Peter -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Heredocs, print_r() and newline "\n" and fnmatch() -curious failures ...
On 24 September 2010 12:49, YAD(YetAnotherDavid) wrote: > Peter Lind wrote: >> >> On 23 September 2010 21:47, YAD(YetAnotherDavid) wrote: >>> >>> This code is 95% cut and paste from the PHP manual examples - >>> the Types/Strings/Heredocs section and the Filesystem/fnmatch pages. >>> There are actually two questions here - I have combined the code into one > > ... > >>> Question 1 : how to get the newline functioning ? even print_r() >>> output >>> is not 'newlined' as it should be. Also note the \n is missing between >>> the " >>> " in the output text of the second test! >>> >> >> Are you outputting to browser or to command line? Browsers have a >> habit of ignoring whitespaces, reducing them to one whitespace >> character regardless of their type or how many. >> >> Regards >> Peter >> > > Thanks Peter, - output is to browser, I develop in Notepad++ and Firefox, > and confirm in IE8. But this stuff used to work - I have been working with > PHP for about two years (not pro) and am used to formatting my output for > legibility - especially echoing or var_dumping variables when still testing > the code. So the failure is recent and I just can't figure what changed. > David Browsers treat newlines as any other whitespace - so print_r and var_dump will not, on their own, provide you with a linebreak in a browser. If you've got xdebug installed, var_dump will provide a nicer output (including line-breaks). However, by far the easiest way to check if you're actually getting linebreaks in your output is checking the source. If you're suddenly experiencing a change in output, then some of your environment variables have changed - hard to say which one without knowing more about your system, but you must obviously have changed/updated something for this to happen. Regards Peter -- WWW: http://plphp.dk / http://plind.dk LinkedIn: http://www.linkedin.com/in/plind BeWelcome/Couchsurfing: Fake51 Twitter: http://twitter.com/kafe15 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Heredocs, print_r() and newline "\n" and fnmatch() -curious failures ...
Peter Lind wrote: On 23 September 2010 21:47, YAD(YetAnotherDavid) wrote: This code is 95% cut and paste from the PHP manual examples - the Types/Strings/Heredocs section and the Filesystem/fnmatch pages. There are actually two questions here - I have combined the code into one ... Question 1 : how to get the newline functioning ? even print_r() output is not 'newlined' as it should be. Also note the \n is missing between the " " in the output text of the second test! Are you outputting to browser or to command line? Browsers have a habit of ignoring whitespaces, reducing them to one whitespace character regardless of their type or how many. Regards Peter Thanks Peter, - output is to browser, I develop in Notepad++ and Firefox, and confirm in IE8. But this stuff used to work - I have been working with PHP for about two years (not pro) and am used to formatting my output for legibility - especially echoing or var_dumping variables when still testing the code. So the failure is recent and I just can't figure what changed. David -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Heredocs, print_r() and newline "\n" and fnmatch() - curious failures ...
As far as I know, you wont get any line breaks. I would suggest putting the results into tags to preserve formatting. whenever I do a print_r(), i also encapsulate it within a tag so it is readable. on another note, when I use variables within double quotes "" (or even the heredoc (but i use smarty templates instead)), I always wrap them in curly braces {} as that is "suggested" (and I personally think should be required). Steve On Thu, 2010-09-23 at 21:47 +0200, YAD(YetAnotherDavid) wrote: > This code is 95% cut and paste from the PHP manual examples - > the Types/Strings/Heredocs section and the Filesystem/fnmatch pages. > There are actually two questions here - I have combined the code into > one test file ... the strings in the code contain the questions .. > at the end I have inserted the output I get from the code - identical in > Firefox and IE8 (so it's not browser related), and on my desktop as well > as my laptop (so it's not a machine quirk). The setup is Xammplite > Win32-1.7.1 with PHP 5.2.9 and Apache 2.2.11 on both WinXP-SP3 installs. > > I tried Xammp Win32-1.7.3 with the same results. Then I tried installing > Apache and PHP and MySQL individually, and got the same ... > Aside from the issue here, I also was unable to get imagick and xdebug > running on the same installation - it was one or the other. imagick's > readfile() caused Apache to baulk on PHP5.3.3, so I returned to a fresh > Xammplite setup. Same results. > > I have spent many hours with this - I would appreciate some insight .. > > Question 1 : how to get the newline functioning ? even print_r() > output is not 'newlined' as it should be. Also note the \n is missing > between the " " in the output text of the second test! > > Question 2 : fnmatch() is an internal function (ie built in to PHP, yet > get_defined_functions() does not find it. Perhaps there are others also > missing, I haven't done a check - could it be a compile error in > Xammplite's PHP binaries? > > - > heredoctest.php = the // comments are not in the actual file ... > - > $str = << Example of string > spanning multiple lines > using heredoc syntax. > (this code cut and paste from > the PHP manual examples ... > it just will not work ...! > EOD; > echo $str . "\n";//echoes the string, fails on newlines in heredoc > // content and in this newline > > /* More complex example, with variables. */ > class foo > { > var $foo; > var $bar; > > function foo() > { > $this->foo = 'Foo'; > $this->bar = array('Bar1', 'Bar2', 'Bar3'); > } > } > > $foo = new foo(); > $name = 'MyName'; > > echo << My name is "$name". I am printing some $foo->foo. > Now, I am printing some {$foo->bar[1]}. > This should print a capital 'A': \x41 > EOT; > // again no newlines on direct heredoc echo ... > > echo << a second test for newlines - "\n" - can't find what is required to > get this to work - have tried everything in the PHP Manual > - still nothing - amazingly even Heredocs does not work. > Tried this on two machines - both running Xammplite 1.7.1. Also > tried installing PHP5.3.3 - and Newdocs doesn't work either. Any ideas? > HDOC; > > //note the n gets escaped, but no actual newline occurs in the output > // and the " " gets left in the output! > > /* And for good measure, here is another bit of frustration - also > code copied directly from the manual ... > 'fnmatch' is an internal function - yet PHP can't find it ... */ > > echo "some form of gray ...\n ... or grey"; // no newline in output > > if (fnmatch("*gr[ae]y", $color)) {// function undefined, dies >echo "some form of gray ...\n ... or grey"; >} > ?> > > - > Here's the output: - the line breaks are non-existent - here, of course > the wrapping is imposed by the mail client editor, but in the browser it > just it all just runs together .. most curious, very frustrating. > - > > Example of string spanning multiple lines using heredoc syntax. (this > code cut and paste from the PHP manual examples ... it just will not > work ...! My name is "MyName". I am printing some Foo. Now, I am > printing some Bar2. This should print a capital 'A': Aa second test for > newlines - " " - can't find what is required to get this to work - have > tried everything in the PHP Manual - still nothing - amazingly even > Heredocs does not work. Tried this on two machines - both running > Xammplite 1.7.1. Also tried installing PHP5.3.3 - and Newdocs doesn't > work either. Any ideas?some form of gray ... ... or grey > Fatal error: Call to undefined function fnmatch() in > C:\xammplite\htdocs\heredoctest.php on line 47 > -- PHP Gen
Re: [PHP] Heredocs, print_r() and newline "\n" and fnmatch() - curious failures ...
On 23 September 2010 21:47, YAD(YetAnotherDavid) wrote: > This code is 95% cut and paste from the PHP manual examples - > the Types/Strings/Heredocs section and the Filesystem/fnmatch pages. > There are actually two questions here - I have combined the code into one > test file ... the strings in the code contain the questions .. > at the end I have inserted the output I get from the code - identical in > Firefox and IE8 (so it's not browser related), and on my desktop as well as > my laptop (so it's not a machine quirk). The setup is Xammplite Win32-1.7.1 > with PHP 5.2.9 and Apache 2.2.11 on both WinXP-SP3 installs. > > I tried Xammp Win32-1.7.3 with the same results. Then I tried installing > Apache and PHP and MySQL individually, and got the same ... > Aside from the issue here, I also was unable to get imagick and xdebug > running on the same installation - it was one or the other. imagick's > readfile() caused Apache to baulk on PHP5.3.3, so I returned to a fresh > Xammplite setup. Same results. > > I have spent many hours with this - I would appreciate some insight .. > > Question 1 : how to get the newline functioning ? even print_r() output > is not 'newlined' as it should be. Also note the \n is missing between the " > " in the output text of the second test! > Are you outputting to browser or to command line? Browsers have a habit of ignoring whitespaces, reducing them to one whitespace character regardless of their type or how many. Regards Peter -- WWW: http://plphp.dk / http://plind.dk LinkedIn: http://www.linkedin.com/in/plind BeWelcome/Couchsurfing: Fake51 Twitter: http://twitter.com/kafe15 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP] Heredocs, print_r() and newline "\n" and fnmatch() - curious failures ...
This code is 95% cut and paste from the PHP manual examples - the Types/Strings/Heredocs section and the Filesystem/fnmatch pages. There are actually two questions here - I have combined the code into one test file ... the strings in the code contain the questions .. at the end I have inserted the output I get from the code - identical in Firefox and IE8 (so it's not browser related), and on my desktop as well as my laptop (so it's not a machine quirk). The setup is Xammplite Win32-1.7.1 with PHP 5.2.9 and Apache 2.2.11 on both WinXP-SP3 installs. I tried Xammp Win32-1.7.3 with the same results. Then I tried installing Apache and PHP and MySQL individually, and got the same ... Aside from the issue here, I also was unable to get imagick and xdebug running on the same installation - it was one or the other. imagick's readfile() caused Apache to baulk on PHP5.3.3, so I returned to a fresh Xammplite setup. Same results. I have spent many hours with this - I would appreciate some insight .. Question 1 : how to get the newline functioning ? even print_r() output is not 'newlined' as it should be. Also note the \n is missing between the " " in the output text of the second test! Question 2 : fnmatch() is an internal function (ie built in to PHP, yet get_defined_functions() does not find it. Perhaps there are others also missing, I haven't done a check - could it be a compile error in Xammplite's PHP binaries? - heredoctest.php = the // comments are not in the actual file ... - foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); } } $foo = new foo(); $name = 'MyName'; echo <bar[1]}. This should print a capital 'A': \x41 EOT; // again no newlines on direct heredoc echo ... echo << - Here's the output: - the line breaks are non-existent - here, of course the wrapping is imposed by the mail client editor, but in the browser it just it all just runs together .. most curious, very frustrating. - Example of string spanning multiple lines using heredoc syntax. (this code cut and paste from the PHP manual examples ... it just will not work ...! My name is "MyName". I am printing some Foo. Now, I am printing some Bar2. This should print a capital 'A': Aa second test for newlines - " " - can't find what is required to get this to work - have tried everything in the PHP Manual - still nothing - amazingly even Heredocs does not work. Tried this on two machines - both running Xammplite 1.7.1. Also tried installing PHP5.3.3 - and Newdocs doesn't work either. Any ideas?some form of gray ... ... or grey Fatal error: Call to undefined function fnmatch() in C:\xammplite\htdocs\heredoctest.php on line 47 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php