So is this: 
print <<< DOGS 
If you like pets, yell out: 
DOGS AND CATS ARE GREAT! 
DOGS; 
Heredocs are useful for printing out HTML with interpolated variables:  
if ($remaining_cards > 0) { 
$url = '/deal.php'; 
$text = 'Deal More Cards'; 
} else { 
$url = '/new-game.php'; 
$text = 'Start a New Game'; 
print <<< HTML 
There are <b>$remaining_cards</b> left. 
<p> 
<a href="$url">$text</a> 
HTML; 
In this case, the semicolon needs to go after the end-of-string delimiter, to tell PHP the 
statement is ended. In some cases, however, you shouldn't use the semicolon:  
$a = <<< END 
Once upon a time, there was a 
END 
. ' boy!'; 
print $a; 
Once upon a time, there was a boy! 
In this case, the expression needs to continue on the next line, so you don't use a semicolon. 
Note also that in order for PHP to recognize the end-of-string delimiter, the 
.
string 
concatenation operator needs to go on a separate line from the end-of-string delimiter.  
Recipe 1.2 Accessing Substrings 
You want to extract part of a string, starting at a particular place in the string. For example, 
you want the first eight characters of a username entered into a form.  
1.2.1 Solution 
Use 
substr( )
to select your substrings:  
$substring = substr($string,$start,$length); 
$username = substr($_REQUEST['username'],0,8); 
1.2.2 Discussion 
If 
$start
and 
$length
are positive, 
substr( )
returns 
$length
characters in the string, 
starting at 
$start
. The first character in the string is at position 0:  
Can save pdf form data - C# PDF Field Edit Library: insert, delete, update pdf form field in C#.net, ASP.NET, MVC, Ajax, WPF
Online C# Tutorial to Insert, Delete and Update Fields in PDF Document
create a pdf form online; pdf form creation
Can save pdf form data - VB.NET PDF Field Edit library: insert, delete, update pdf form field in vb.net, ASP.NET, MVC, Ajax, WPF
How to Insert, Delete and Update Fields in PDF Document with VB.NET Demo Code
create a pdf form in word; change font size in pdf form field
print substr('watch out for that tree',6,5); 
out f 
If you leave out 
$length
substr( )
returns the string from 
$start
to the end of the 
original string:  
print substr('watch out for that tree',17); 
t tree 
If 
$start
plus 
$length
goes past the end of the string, 
substr( )
returns all of the string 
from 
$start
forward:  
print substr('watch out for that tree',20,5); 
ree 
If 
$start
is negative, 
substr( )
counts back from the end of the string to determine where 
your substring starts:  
print substr('watch out for that tree',-6); 
print substr('watch out for that tree',-17,5); 
t tree 
out f 
If 
$length
is negative, 
substr( )
counts back from the end of the string to determine 
where your substring ends:  
print substr('watch out for that tree',15,-2); 
print substr('watch out for that tree',-4,-1); 
hat tr 
tre 
1.2.3 See Also 
Documentation on 
substr( )
at http://www.php.net/substr
.  
Recipe 1.3 Replacing Substrings 
1.3.1 Problem 
You want to replace a substring with a different string. For example, you want to obscure all 
but the last four digits of a credit card number before printing it.  
1.3.2 Solution 
Use 
substr_replace( )
:  
// Everything from position $start to the end of $old_string 
// becomes $new_substring 
$new_string = substr_replace($old_string,$new_substring,$start); 
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Append one PDF file to the end of another and save to a single PDF file. Thus, C#.NET PDF document merge library control can be counted as an efficient
adding a text field to a pdf; allow users to save pdf form
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
This library DLL can efficiently enable developers to merge two or more PDF document into one and then save as another PDF document using Visual Basic
best way to create pdf forms; add form fields to pdf
// $length characters, starting at position $start, become $new_substring 
$new_string = substr_replace($old_string,$new_substring,$start,$length); 
1.3.3 Discussion 
Without the 
$length
argument, 
substr_replace( )
replaces everything from 
$start
to 
the end of the string. If 
$length
is specified, only that many characters are replaced:  
print substr_replace('My pet is a blue dog.','fish.',12); 
print substr_replace('My pet is a blue dog.','green',12,4); 
$credit_card = '4111 1111 1111 1111'; 
print substr_replace($credit_card,'xxxx ',0,strlen($credit_card)-4); 
My pet is a fish. 
My pet is a green dog. 
xxxx 1111 
If 
$start
is negative, the new substring is placed at 
$start
characters counting from the 
end of 
$old_string
, not from the beginning:  
print substr_replace('My pet is a blue dog.','fish.',-9); 
print substr_replace('My pet is a blue dog.','green',-9,4); 
My pet is a fish. 
My pet is a green dog. 
If 
$start
and 
$length
are 0, the new substring is inserted at the start of 
$old_string
:  
print substr_replace('My pet is a blue dog.','Title: ',0,0); 
Title: My pet is a blue dog
The function 
substr_replace( )
is useful when you've got text that's too big to display all 
at once, and you want to display some of the text with a link to the rest. For example, this 
displays the first 25 characters of a message with an ellipsis after it as a link to a page that 
displays more text:  
$r = mysql_query("SELECT id,message FROM messages WHERE id = $id") or die( 
); 
$ob = mysql_fetch_object($r); 
printf('<a href="more-text.php?id=%d">%s</a>', 
$ob->id, substr_replace($ob->message,' ...',25)); 
The more-text.php page can use the message ID passed in the query string to retrieve the full 
message and display it.  
1.3.4 See Also 
Documentation on 
substr_replace( )
at http://www.php.net/substr-replace
.  
Recipe 1.4 Processing a String One Character at a Time 
1.4.1 Problem 
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Password protected PDF file can be printed
add fillable fields to pdf; change font size in fillable pdf form
How to C#: Basic SDK Concept of XDoc.PDF for .NET
You can generate thumbnail image(s) from PDF file for quick viewing and further to load a PDF document from file or query data and save the PDF document.
add text field to pdf acrobat; adding text fields to pdf
You need to process each character in a string individually.  
1.4.2 Solution 
Loop through each character in the string with 
for
. This example counts the vowels in a 
string:  
$string = "This weekend, I'm going shopping for a pet chicken."; 
$vowels = 0; 
for ($i = 0, $j = strlen($string); $i < $j; $i++) { 
if (strstr('aeiouAEIOU',$string[$i])) { 
$vowels++; 
1.4.3 Discussion 
Processing a string a character at a time is an easy way to calculate the "Look and Say" 
sequence:  
function lookandsay($s) { 
// initialize the return value to the empty string 
$r = ''; 
// $m holds the character we're counting, initialize to the first 
* character in the string 
$m = $s[0]; 
// $n is the number of $m's we've seen, initialize to 1 
$n = 1; 
for ($i = 1, $j = strlen($s); $i < $j; $i++) { 
// if this character is the same as the last one 
if ($s[$i] == $m) { 
// increment the count of this character 
$n++; 
} else { 
// otherwise, add the count and character to the return value 
// 
$r .= $n.$m; 
// set the character we're looking for to the current one // 
$m = $s[$i]; 
// and reset the count to 1 // 
$n = 1; 
// return the built up string as well as the last count and character 
// 
return $r.$n.$m; 
for ($i = 0, $s = 1; $i < 10; $i++) { 
$s = lookandsay($s); 
print "$s\n"; 
1 
11 
21 
1211 
C# WPF PDF Viewer SDK to view, annotate, convert and print PDF in
Form Process. Data: Read, Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert NET RasterEdge WPF PDF Viewer, users can save PDF modifications and
convert word to editable pdf form; add date to pdf form
VB.NET PDF: Basic SDK Concept of XDoc.PDF
You can generate thumbnail image(s) from PDF file for quick viewing and further to load a PDF document from file or query data and save the PDF document.
pdf forms save; adding text to a pdf form
111221 
312211 
13112221 
1113213211 
31131211131221 
13211311123113112211 
It's called the "Look and Say" sequence because each element is what you get by looking at 
the previous element and saying what's in it. For example, looking at the first element, 1, you 
say "one one." So the second element is "11." That's two ones, so the third element is "21." 
Similarly, that's one two and one one, so the fourth element is "1211," and so on.  
1.4.4 See Also 
Documentation on 
for
at http://www.php.net/for
; more about the "Look and Say" sequence 
at http://mathworld.wolfram.com/LookandSaySequence.html
.  
Recipe 1.5 Reversing a String by Word or Character 
1.5.1 Problem 
You want to reverse the words or the characters in a string.  
1.5.2 Solution 
Use 
strrev( )
to reverse by character:  
print strrev('This is not a palindrome.'); 
.emordnilap a ton si sihT 
To reverse by words, explode the string by word boundary, reverse the words, then rejoin:  
$s = "Once upon a time there was a turtle."; 
// break the string up into words 
$words = explode(' ',$s); 
// reverse the array of words 
$words = array_reverse($words); 
// rebuild the string 
$s = join(' ',$words); 
print $s; 
turtle. a was there time a upon Once 
1.5.3 Discussion 
Reversing a string by words can also be done all in one line: 
$reversed_s = join(' ',array_reverse(explode(' ',$s))); 
1.5.4 See Also 
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Offer professional PDF document metadata editing APIs, using which VB.NET developers can redact, delete, view and save PDF metadata. PDF Document Protection.
create a form in pdf from word; create a fillable pdf form from a pdf
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
NET PDF to TIFF conversion control, C# developers can render and TIFF with specified zoom value and save it into The magnification of the original PDF page size
create a pdf form from excel; add email button to pdf form
Recipe 18.8
discusses the implications of using something other than a space character as 
your word boundary; documentation on 
strrev( )
at http://www.php.net/strrev
and 
array_reverse( )
at http://www.php.net/array-reverse
.  
Recipe 1.6 Expanding and Compressing Tabs 
1.6.1 Problem 
You want to change spaces to tabs (or tabs to spaces) in a string while keeping text aligned 
with tab stops. For example, you want to display formatted text to users in a standardized 
way.  
1.6.2 Solution 
Use 
str_replace( )
to switch spaces to tabs or tabs to spaces:  
$r = mysql_query("SELECT message FROM messages WHERE id = 1") or die(); 
$ob = mysql_fetch_object($r); 
$tabbed = str_replace(' ',"\t",$ob->message); 
$spaced = str_replace("\t",' ',$ob->message); 
print "With Tabs: <pre>$tabbed</pre>"; 
print "With Spaces: <pre>$spaced</pre>"; 
Using 
str_replace( )
for conversion, however, doesn't respect tab stops. If you want tab 
stops every eight characters, a line beginning with a five-letter word and a tab should have 
that tab replaced with three spaces, not one. Use the 
pc_tab_expand( )
function shown in 
Example 1-1
to turn tabs to spaces in a way that respects tab stops.  
Example 1-1. pc_tab_expand( )  
function pc_tab_expand($a) { 
$tab_stop = 8; 
while (strstr($a,"\t")) { 
$a = preg_replace('/^([^\t]*)(\t+)/e', 
"'\\1'.str_repeat(' ',strlen('\\2') *  
$tab_stop - strlen('\\1') % $tab_stop)",$a); 
}  
return $a; 
$spaced = pc_tab_expand($ob->message); 
You can use the 
pc_tab_unexpand()
function shown in Example 1-2
to turn spaces back to 
tabs.  
Example 1-2. pc_tab_unexpand( )  
function pc_tab_unexpand($x) { 
$tab_stop = 8; 
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
VB.NET: Extract PDF Pages and Save into a New PDF File. You can easily get pages from a PDF file, and then use these pages to create and output a new PDF file.
add form fields to pdf without acrobat; can save pdf form data
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
control SDK is a mature component on the market, which can also provides doc.Save(outPutFilePath Demo Code: How to Delete Consecutive Pages from PDF in C#.
best program to create pdf forms; chrome save pdf form
$lines = explode("\n",$x); 
for ($i = 0, $j = count($lines); $i < $j; $i++) { 
$lines[$i] = pc_tab_expand($lines[$i]); 
$e = preg_split("/(.\{$tab_stop})/",$lines[$i],-
1,PREG_SPLIT_DELIM_CAPTURE); 
$lastbit = array_pop($e); 
if (!isset($lastbit)) { $lastbit = ''; } 
if ($lastbit == str_repeat(' ',$tab_stop)) { $lastbit = "\t"; } 
for ($m = 0, $n = count($e); $m < $n; $m++) { 
$e[$m] = preg_replace('/  +$',"\t",$e[$m]); 
$lines[$i] = join('',$e).$lastbit; 
$x = join("\n", $lines); 
return $x; 
$tabbed = pc_tab_unexpand($ob->message); 
Both functions take a string as an argument and return the string appropriately modified.  
1.6.3 Discussion 
Each function assumes tab stops are every eight spaces, but that can be modified by changing 
the setting of the 
$tab_stop
variable.  
The regular expression in 
pc_tab_expand( )
matches both a group of tabs and all the text 
in a line before that group of tabs. It needs to match the text before the tabs because the 
length of that text affects how many spaces the tabs should be replaced so that subsequent 
text is aligned with the next tab stop. The function doesn't just replace each tab with eight 
spaces; it adjusts text after tabs to line up with tab stops.  
Similarly, 
pc_tab_unexpand( )
doesn't just look for eight consecutive spaces and then 
replace them with one tab character. It divides up each line into eight-character chunks and 
then substitutes ending whitespace in those chunks (at least two spaces) with tabs. This not 
only preserves text alignment with tab stops; it also saves space in the string.  
1.6.4 See Also 
Documentation on 
str_replace( )
at http://www.php.net/str-replace
.  
Recipe 1.7 Controlling Case 
1.7.1 Problem 
You need to capitalize, lowercase, or otherwise modify the case of letters in a string. For 
example, you want to capitalize the initial letters of names but lowercase the rest.  
1.7.2 Solution 
Use 
ucfirst( )
or 
ucwords( )
to capitalize the first letter of one or more words:  
print ucfirst("how do you do today?"); 
print ucwords("the prince of wales"); 
How do you do today? 
The Prince Of Wales 
Use 
strtolower( )
or 
strtoupper( )
to modify the case of entire strings:  
print strtoupper("i'm not yelling!"); 
// Tags must be lowercase to be XHTML compliant 
print strtolower('<A HREF="one.php">one</A>'); 
I'M NOT YELLING! 
<a href="one.php">one</a> 
1.7.3 Discussion 
Use 
ucfirst( )
to capitalize the first character in a string:  
print ucfirst('monkey face'); 
print ucfirst('1 monkey face'); 
Monkey face 
1 monkey face 
Note that the second line of output is not "1 Monkey face".  
Use 
ucwords( )
to capitalize the first character of each word in a string:  
print ucwords('1 monkey face'); 
print ucwords("don't play zone defense against the philadelphia 76-ers"); 
1 Monkey Face 
Don't Play Zone Defense Against The Philadelphia 76-ers 
As expected, 
ucwords( )
doesn't capitalize the "t" in "don't." But it also doesn't capitalize 
the "e" in "76-ers." For 
ucwords( )
, a word is any sequence of nonwhitespace characters 
that follows one or more whitespace characters. Since both 
'
and 
-
aren't whitespace 
characters, 
ucwords( )
doesn't consider the "t" in "don't" or the "e" in "76-ers" to be word-
starting characters.  
Both 
ucfirst( )
and 
ucwords( )
don't change the case of nonfirst letters:  
print ucfirst('macWorld says I should get a iBook'); 
print ucwords('eTunaFish.com might buy itunaFish.Com!'); 
MacWorld says I should get a iBook 
ETunaFish.com Might Buy ItunaFish.Com! 
The functions 
strtolower( )
and 
strtoupper( )
work on entire strings, not just 
individual characters. All alphabetic characters are changed to lowercase by 
strtolower( )
and 
strtoupper( )
changes all alphabetic characters to uppercase:  
print strtolower("I programmed the WOPR and the TRS-80."); 
print strtoupper('"since feeling is first" is a poem by e. e. cummings.'); 
i programmed the wopr and the trs-80. 
"SINCE FEELING IS FIRST" IS A POEM BY E. E. CUMMINGS. 
When determining upper- and lowercase, these functions respect your locale settings.  
1.7.4 See Also 
For more information about locale settings, see Chapter 16
; documentation on 
ucfirst( )
at http://www.php.net/ucfirst
ucwords( )
at http://www.php.net/ucwords
strtolower( 
)
at http://www.php.net/strtolower
, and 
strtoupper( )
at http://www.php.net/strtoupper
.  
Recipe 1.8 Interpolating Functions and Expressions Within Strings 
1.8.1 Problem 
You want to include the results of executing a function or expression within a string.  
1.8.2 Solution 
Use the string concatenation operator (.) when the value you want to include can't be inside 
the string:  
print 'You have '.($_REQUEST['boys'] + $_REQUEST['girls']).' children.'; 
print "The word '$word' is ".strlen($word).' characters long.'; 
print 'You owe '.$amounts['payment'].' immediately'; 
print "My circle's diameter is ".$circle->getDiameter().' inches.'; 
1.8.3 Discussion 
You can put variables, object properties, and array elements (if the subscript is unquoted) 
directly in double-quoted strings:  
print "I have $children children."; 
print "You owe $amounts[payment] immediately."; 
print "My circle's diameter is $circle->diameter inches."; 
Direct interpolation or using string concatenation also works with heredocs. Interpolating with 
string concatenation in heredocs can look a little strange because the heredoc delimiter and 
the string concatenation operator have to be on separate lines:  
print <<< END 
Right now, the time is  
END 
. strftime('%c') . <<< END 
but tomorrow it will be  
END 
. strftime('%c',time() + 86400); 
Also, if you're interpolating with heredocs, make sure to include appropriate spacing for the 
whole string to appear properly. In the previous example, "Right now the time" has to include 
a trailing space, and "but tomorrow it will be" has to include leading and trailing spaces.  
1.8.4 See Also 
For the syntax to interpolate variable variables (like 
${"amount_$i"}
), see Recipe 5.5
documentation on the string concatenation operator at 
http://www.php.net/language.operators.string
.  
Recipe 1.9 Trimming Blanks from a String 
1.9.1 Problem 
You want to remove whitespace from the beginning or end of a string. For example, you want 
to clean up user input before validating it.  
1.9.2 Solution 
Use 
ltrim( )
rtrim( )
, or 
trim( )
ltrim( )
removes whitespace from the beginning 
of a string, 
rtrim( )
from the end of a string, and 
trim( )
from both the beginning and 
end of a string:  
$zipcode = trim($_REQUEST['zipcode']); 
$no_linefeed = rtrim($_REQUEST['text']); 
$name = ltrim($_REQUEST['name']); 
1.9.3 Discussion 
For these functions, whitespace is defined as the following characters: newline, carriage 
return, space, horizontal and vertical tab, and null.  
Trimming whitespace off of strings saves storage space and can make for more precise display 
of formatted data or text within 
<pre>
tags, for example. If you are doing comparisons with 
user input, you should trim the data first, so that someone who mistakenly enters "98052 " as 
their Zip Code isn't forced to fix an error that really isn't. Trimming before exact text 
comparisons also ensures that, for example, "salami\n" equals "salami." It's also a good idea 
to normalize string data by trimming it before storing it in a database.  
The 
trim( )
functions can also remove user-specified characters from strings. Pass the 
characters you want to remove as a second argument. You can indicate a range of characters 
with two dots between the first and last characters in the range.  
// Remove numerals and space from the beginning of the line 
print ltrim('10 PRINT A$',' 0..9'); 
// Remove semicolon from the end of the line 
print rtrim('SELECT * FROM turtles;',';'); 
PRINT A$ 
Documents you may be interested
Documents you may be interested