|
Output a string
(PHP 4, PHP 5)
Example 2426. print() examples<?php Related Examples ( Source code ) » print Examples ( Source code ) » React to Form action Examples ( Source code ) » Creating an HTML Form That Accepts Mail-Related Information Examples ( Source code ) » Send email with CC and BCC Examples ( Source code ) » Build query string based on form input Examples ( Source code ) » Responding to Checkboxes Examples ( Source code ) » Form select input Examples ( Source code ) » An HTML Form Including a SELECT Element Examples ( Source code ) » A Simple HTML Form Examples ( Source code ) » Form value validation Examples ( Source code ) » Form Data Validation With Error Count Examples ( Source code ) » Saving State with a Hidden Field Examples ( Source code ) » Call MySelf PHP Examples ( Source code ) » A PHP Number Guessing Script Examples ( Source code ) » Get Text Field value Examples ( Source code ) » Form Numeric value Code Examples / Notes » printrjl
To elaborate on above example adding an array variable $text = <<<END This uses the "here document" syntax to output multiple lines with $variable interpolation. Note that the here document terminator must appear on a line with just a semicolon no extra whitespace! User = {$_REQUEST['user']} END; 'print $text;' Will output the string. Very handy for storing HTML. Or adding {} around the array will allow you to use above mentioned html blocks in conjuction with forms. Rene =<>= ejallison
This is a simple function for printing debug comments that I didn't think of for a long time. Maybe it'll serve you good too. <?php function printd($str) { if ($debug) { echo $str; } } // ... if ($valueCalculatedEarlierInTheScript == 3) { doSomethingWithNoOutput(); printd("doSomethingWithNoOutput() has executed."); } ?> It's mostly just to make sure everything is running without having to go through everything and put in echo "Step #whatever has executed" whenever something mysterious isn't working. jon
the FAQTs article can be found archived at http://web.archive.org/web/20060601063513/http ://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 (url split to get past the line-length limitation) vincent
Sometime there is no choice in using a single or double quote ie when using special chars to format the output to make the HTML more readable you have to use the Double qoutes. Single quotes make PHP fotmat the '\n' as text james-web
Note that if you want to dump the value of a variable, you want to use print_r(), var_dump() or var_export().
g8z
I wanted to print a file on a Windows 2003 server from PHP, and found the "print" function instead. Just in case some other users are trying to physically print to a printer, rather than print to the screen, here's a function to do it. This function will print a single file of one of these types: pdf, doc, xls, rtf, or plain text. If you have the full .exe path, you can print other document types, too. The shell_exec function is not enabled in safe mode. Courtesy of Darren's Script Archive: http://www.tufat.com <?php function print_file($filename) { // path to your adobe executable $adobe_path='"C:/Program Files/Adobe/Acrobat 7.0/Reader/AcroRd32.exe"'; $ext=''; $ext=strrchr($filename,'.'); $ext=substr($ext,1); $ext_xl=substr($ext,0,2); if ($ext=='pdf') { shell_exec ($adobe_path.' /t '.$filename); } else if ($ext=='doc'||$ext=='rtf'||$ext=='txt') { $word = new COM("Word.Application"); $word->visible = true; $word->Documents->Open($filename); $word->ActiveDocument->PrintOut(); $word->ActiveDocument->Close(); $word->Quit(); } else if ($ext_xl=='xl') { $excel = new COM("Excel.Application"); $excel->visible = true; $excel->Workbooks->Open($filename); $excel->ActiveWorkBook->PrintOut(); $excel->ActiveWorkBook->Close(); $excel->Quit(); } } // example of printing a PDF print_file("C:/photo_gallery.pdf"); ?> phpnet
I have written a script to benchmark the several methods of outputting data in PHP: via single quotes, double quotes, heredoc, and printf. The script constructs a paragraph of text with each method. It performs this construction 10,000 times, then records how long it took. In total, it prints 160,000 times and records 16 timings. Here are the raw results. Outputted straight to browser-- Single quotes: 2,813 ms ...with concatenation: 1,179 ms Double quotes: 5,180 ms ...with concatenation: 3,937 ms heredoc: 7,300 ms ...with concatenation: 6,288 ms printf: 9,527 ms ...with concatenation: 8,564 ms Outputted to the output buffer-- Single quotes: 8 ms ...with concatenation: 38 ms Double quotes: 8 ms ...with concatenation: 47 ms heredoc: 17 ms ...with concatenation: 49 ms printf: 54 ms ...with concatenation: 52 ms A nice graph of the script's output can be found here: http://i3x171um.com/output_benchmarks/ob.gif So what should you choose to print your text? I found several things out writing this. First, it should be noted that the print and echo keywords are interchangeable, performance-wise. The timings show that one is probably an alias for the other. So use whichever you feel most comfortable with. Second, if you've ever wondered which was better, the definitive answer is single quotes. Single quotes are at least four times faster in any situation. Double quotes, while more convenient, do pose a debatably significant performance issue when outputting massive amounts of data. Third, stay away from heredoc, and absolutely stay away from [s]printf. They're slow, and the alternatives are there. The source of my script can be found here: http://i3x171um.com/output_benchmarks/ob.txt DO NOT RUN THE SCRIPT ON THE INTERNET! Run it instead from localhost. The script outputs ~45 megabytes of text in an html comment at the top of the page by default. Expect the benchmark to take ~45 seconds. If this is too long, you can change the amount of iterations to a lower number (the results scale accurately down to about 1,000 iterations). jon
I have a small utility run from the command line that processes a potentially huge list of files. As it can take hours to complete, I stuck a print '.'; statement in the body of the main loop to prove that something was happening. For reasons unknown to me, the utiliity suddenly started buffering the output such that it printed nothing until completion, defeating the purpose of the running monitor. Adding flush() statements did nothing. The problem was solved by using fputs(STDOUT, '.'); but I have no idea why. mvpetrovich
I grew quite tired of backslashes, and wrote these routines. It uses the back single quote as a substitute for double quotes within a statement. It made my code much more readable. It is a little easier than using a "here document." I also found I make a few less typing errors. <?php function qq($text) {return str_replace('`','"',$text); } function printq($text) { print qq($text); } function printqn($text) { print qq($text)."\n"; } //example - before echo "<a href=\"#\" class=\"stdbutton\" style=\"float:left;\" onclick=\"myfunction(); return false;\">My Link</a>\n"; //becomes - with printqn function printqn("<a href=`#` class=`stdbutton` style=`float:left;` onclick=`myfunction(); return false;`>My Link</a>"); ?> gem
HERE Documents can reference arrays as long as you enclose the vars in {}. Like this: <?php $line = array( 'title' => "Hello", 'date' => 'Today'); echo <<<EOT Title: {$line['title']} Date: {$line['date']} EOT; ?> Run this and get Title: Hello Date: Today More info here, scroll down to "heredoc syntax": http://www.php.net/manual/en/language.types.string.php floppie
At the top of your page, do something to this effect: <?php $n = "\n"; $t = "\t"; ?> Then, if you need your table cell four tabs in: <?php echo($t . $t . $t . $t . '<td>whatever</td>' . $n); ?> This means the parser only has to interpret four characters inside double quotes, then just stores them in variables. With strings that small, concatenating six things together won't be slow at all. hw{ä}cho.de
@jon: you have to use "ob_flush()" before "flush()" - see notes there.
|
Change Languageaddcslashes addslashes bin2hex chop chr chunk_split convert_cyr_string convert_uudecode convert_uuencode count_chars crc32 crypt echo explode fprintf get_html_translation_table hebrev hebrevc html_entity_decode htmlentities htmlspecialchars_decode htmlspecialchars implode join levenshtein localeconv ltrim md5_file md5 metaphone money_format nl_langinfo nl2br number_format ord parse_str printf quoted_printable_decode quotemeta rtrim setlocale sha1_file sha1 similar_text soundex sprintf sscanf str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count strcasecmp strchr strcmp strcoll strcspn strip_tags stripcslashes stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strrchr strrev strripos strrpos strspn strstr strtok strtolower strtoupper strtr substr_compare substr_count substr_replace substr trim ucfirst ucwords vfprintf vprintf vsprintf wordwrap |