[DOC-CVS] [doc-en] master: Enable WASM for book.strings, and tweak examples
[email protected] (Derick Rethans)
| Newsgroups | php.doc.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: Derick Rethans (derickr)
Date: 2025-05-06T12:06:07+01:00
Commit: https://github.com/php/doc-en/commit/45042fef652f1b4e904e809fcbfcf31f6c60670b
Raw diff: https://github.com/php/doc-en/commit/45042fef652f1b4e904e809fcbfcf31f6c60670b.diff
Enable WASM for book.strings, and tweak examples
Changed paths:
M reference/strings/book.xml
M reference/strings/functions/addcslashes.xml
M reference/strings/functions/addslashes.xml
M reference/strings/functions/chr.xml
M reference/strings/functions/chunk-split.xml
M reference/strings/functions/echo.xml
M reference/strings/functions/explode.xml
M reference/strings/functions/fprintf.xml
M reference/strings/functions/html-entity-decode.xml
M reference/strings/functions/lcfirst.xml
M reference/strings/functions/md5-file.xml
M reference/strings/functions/number-format.xml
M reference/strings/functions/ord.xml
M reference/strings/functions/parse-str.xml
M reference/strings/functions/print.xml
M reference/strings/functions/setlocale.xml
M reference/strings/functions/sha1-file.xml
M reference/strings/functions/soundex.xml
M reference/strings/functions/sprintf.xml
M reference/strings/functions/str-getcsv.xml
M reference/strings/functions/str-pad.xml
M reference/strings/functions/str-replace.xml
M reference/strings/functions/stripos.xml
M reference/strings/functions/stristr.xml
M reference/strings/functions/strlen.xml
M reference/strings/functions/strnatcmp.xml
M reference/strings/functions/strpbrk.xml
M reference/strings/functions/strpos.xml
M reference/strings/functions/strrpos.xml
M reference/strings/functions/strstr.xml
M reference/strings/functions/strtok.xml
M reference/strings/functions/strtr.xml
M reference/strings/functions/substr-compare.xml
M reference/strings/functions/substr-count.xml
M reference/strings/functions/substr.xml
M reference/strings/functions/ucfirst.xml
M reference/strings/functions/ucwords.xml
M reference/strings/functions/vfprintf.xml
Diff:
diff --git a/reference/strings/book.xml b/reference/strings/book.xml
index 3f801f3901f6..a1495251cc2b 100644
--- a/reference/strings/book.xml
+++ b/reference/strings/book.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<book xml:id="book.strings" xmlns="http://docbook.org/ns/docbook">
+<book xml:id="book.strings" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
<?phpdoc extension-membership="core" ?>
<title>Strings</title>
diff --git a/reference/strings/functions/addcslashes.xml b/reference/strings/functions/addcslashes.xml
index 3b4976439fc9..fbbd1f7ed205 100644
--- a/reference/strings/functions/addcslashes.xml
+++ b/reference/strings/functions/addcslashes.xml
@@ -46,7 +46,8 @@
When you define a sequence of characters in the <parameter>characters</parameter> argument
make sure that you know what characters come between the
characters that you set as the start and end of the range.
- <informalexample>
+ <example>
+ <title><function>addcslashes</function> with Ranges</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -57,13 +58,14 @@ echo addcslashes('foo[ ]', 'A..z');
?>
]]>
</programlisting>
- </informalexample>
+ </example>
Also, if the first character in a range has a higher ASCII value
than the second character in the range, no range will be
constructed. Only the start, end and period characters will be
escaped. Use the <function>ord</function> function to find the
ASCII value for a character.
- <informalexample>
+ <example>
+ <title><function>addcslashes</function> with Characters in Wrong Order</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -72,7 +74,7 @@ echo addcslashes("zoo['.']", 'z..A');
?>
]]>
</programlisting>
- </informalexample>
+ </example>
</para>
<para>
Be careful if you choose to escape characters 0, a, b, f, n, r, t and
@@ -106,7 +108,9 @@ echo addcslashes("zoo['.']", 'z..A');
<programlisting role="php">
<![CDATA[
<?php
+$not_escaped = "PHP isThirty\nYears Old!\tYay to the Elephant!\n";
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
+echo $escaped;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/addslashes.xml b/reference/strings/functions/addslashes.xml
index d57f50dc474c..6fbf07b46da5 100644
--- a/reference/strings/functions/addslashes.xml
+++ b/reference/strings/functions/addslashes.xml
@@ -25,7 +25,8 @@
<para>
A use case of <function>addslashes</function> is escaping the aforementioned
characters in a string that is to be evaluated by PHP:
- <informalexample>
+ <example>
+ <title>Escaping Characters</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -34,7 +35,7 @@ eval("echo '" . addslashes($str) . "';");
?>
]]>
</programlisting>
- </informalexample>
+ </example>
</para>
<para>
The <function>addslashes</function> is sometimes incorrectly used to try to prevent
diff --git a/reference/strings/functions/chr.xml b/reference/strings/functions/chr.xml
index 6e0ec18d93fb..ac2d9ff2db15 100644
--- a/reference/strings/functions/chr.xml
+++ b/reference/strings/functions/chr.xml
@@ -94,14 +94,17 @@ $bytevalue %= 256;
$str = "The string ends in escape: ";
$str .= chr(27); /* add an escape character at the end of $str */
+echo $str, PHP_EOL;
/* Often this is more useful */
-
$str = sprintf("The string ends in escape: %c", 27);
+echo $str, PHP_EOL;
?>
]]>
</programlisting>
</example>
+ </para>
+ <para>
<example>
<title>Overflow behavior</title>
<programlisting role="php">
@@ -126,7 +129,7 @@ aA
<![CDATA[
<?php
$str = chr(240) . chr(159) . chr(144) . chr(152);
-echo $str;
+echo $str, PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/chunk-split.xml b/reference/strings/functions/chunk-split.xml
index b15ae65e8155..5f433c6009c3 100644
--- a/reference/strings/functions/chunk-split.xml
+++ b/reference/strings/functions/chunk-split.xml
@@ -69,8 +69,11 @@
<programlisting role="php">
<![CDATA[
<?php
+$data = 'This is quite a long string, which will get broken up because the line is going to be too long after base64 encoding it.';
+
// format $data using RFC 2045 semantics
$new_string = chunk_split(base64_encode($data));
+echo $new_string, PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/echo.xml b/reference/strings/functions/echo.xml
index 0b0f0d400187..167a9b0c30ad 100644
--- a/reference/strings/functions/echo.xml
+++ b/reference/strings/functions/echo.xml
@@ -105,9 +105,6 @@ echo implode(" and ", $fruits); // lemon and orange and banana
// Non-string expressions are coerced to string, even if declare(strict_types=1) is used
echo 6 * 7; // 42
-// Because echo does not behave as an expression, the following code is invalid.
-($some_var) ? echo 'true' : echo 'false';
-
// However, the following examples will work:
($some_var) ? print 'true' : print 'false'; // print is also a construct, but
// it is a valid expression, returning 1,
@@ -115,6 +112,19 @@ echo 6 * 7; // 42
echo $some_var ? 'true': 'false'; // evaluating the expression first and passing it to echo
?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ <example>
+ <title><literal>echo</literal> is not an expression</title>
+ <programlisting role="php" annotations="non-interactive">
+<![CDATA[
+<?php
+// Because echo does not behave as an expression, the following code is invalid.
+($some_var) ? echo 'true' : echo 'false';
+?>
]]>
</programlisting>
</example>
@@ -134,32 +144,44 @@ echo $some_var ? 'true': 'false'; // evaluating the expression first and passing
part of the expression being output, not part of the <literal>echo</literal>
syntax itself.
- <informalexample>
+ <example>
+ <title>Using Parentheses</title>
<programlisting role="php">
<![CDATA[
<?php
-echo "hello";
+echo "hello", PHP_EOL;
// outputs "hello"
-echo("hello");
+echo("hello"), PHP_EOL;
// also outputs "hello", because ("hello") is a valid expression
-echo(1 + 2) * 3;
+echo(1 + 2) * 3, PHP_EOL;
// outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3
// the echo statement sees the whole expression as one argument
-echo "hello", " world";
+echo "hello", " world", PHP_EOL;
// outputs "hello world"
-echo("hello"), (" world");
+echo("hello"), (" world"), PHP_EOL;
// outputs "hello world"; the parentheses are part of each expression
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
-echo("hello", " world");
+ <para>
+ <example>
+ <title>Invalid Expression</title>
+ <programlisting role="php" annotations="non-interactive">
+ <![CDATA[
+<?php
+echo("hello", " world"), PHP_EOL;
// Throws a Parse Error because ("hello", " world") is not a valid expression
?>
]]>
</programlisting>
- </informalexample>
+ </example>
</para>
</note>
diff --git a/reference/strings/functions/explode.xml b/reference/strings/functions/explode.xml
index 2a62782fac0d..4e186e77a108 100644
--- a/reference/strings/functions/explode.xml
+++ b/reference/strings/functions/explode.xml
@@ -127,15 +127,14 @@
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
-echo $pieces[0]; // piece1
-echo $pieces[1]; // piece2
+echo $pieces[0], PHP_EOL; // piece1
+echo $pieces[1], PHP_EOL; // piece2
// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
-echo $user; // foo
-echo $pass; // *
-
+echo $user, PHP_EOL; // foo
+echo $pass, PHP_EOL; // *
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/fprintf.xml b/reference/strings/functions/fprintf.xml
index 72dcace23d31..506074aa761c 100644
--- a/reference/strings/functions/fprintf.xml
+++ b/reference/strings/functions/fprintf.xml
@@ -70,6 +70,10 @@ if (!($fp = fopen('date.txt', 'w'))) {
return;
}
+$year = 2005;
+$month = 5;
+$day = 6;
+
fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// will write the formatted ISO date to date.txt
?>
diff --git a/reference/strings/functions/html-entity-decode.xml b/reference/strings/functions/html-entity-decode.xml
index c26f3482ecbc..d90ed9f4f2ab 100644
--- a/reference/strings/functions/html-entity-decode.xml
+++ b/reference/strings/functions/html-entity-decode.xml
@@ -166,9 +166,9 @@ $a = htmlentities($orig);
$b = html_entity_decode($a);
-echo $a; // I'll "walk" the <b>dog</b> now
+echo $a, PHP_EOL; // I'll "walk" the <b>dog</b> now
-echo $b; // I'll "walk" the <b>dog</b> now
+echo $b, PHP_EOL; // I'll "walk" the <b>dog</b> now
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/lcfirst.xml b/reference/strings/functions/lcfirst.xml
index ee75c446d54c..0bd2c607d7d9 100644
--- a/reference/strings/functions/lcfirst.xml
+++ b/reference/strings/functions/lcfirst.xml
@@ -69,11 +69,11 @@
<![CDATA[
<?php
$foo = 'HelloWorld';
-$foo = lcfirst($foo); // helloWorld
+echo lcfirst($foo), PHP_EOL; // helloWorld
$bar = 'HELLO WORLD!';
-$bar = lcfirst($bar); // hELLO WORLD!
-$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
+echo lcfirst($bar), PHP_EOL; // hELLO WORLD!
+echo lcfirst(strtoupper($bar)), PHP_EOL; // hELLO WORLD!
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/md5-file.xml b/reference/strings/functions/md5-file.xml
index caf6fbc781ca..323559a66ee4 100644
--- a/reference/strings/functions/md5-file.xml
+++ b/reference/strings/functions/md5-file.xml
@@ -62,7 +62,7 @@
<programlisting role="php">
<![CDATA[
<?php
-$file = 'php-5.3.0alpha2-Win32-VC9-x64.zip';
+$file = '/examples/book.xml';
echo 'MD5 file hash of ' . $file . ': ' . md5_file($file);
?>
diff --git a/reference/strings/functions/number-format.xml b/reference/strings/functions/number-format.xml
index 5220842b2ca2..dab147dc7470 100644
--- a/reference/strings/functions/number-format.xml
+++ b/reference/strings/functions/number-format.xml
@@ -130,17 +130,17 @@
$number = 1234.56;
// english notation (default)
-$english_format_number = number_format($number);
+echo number_format($number), PHP_EOL;
// 1,235
// French notation
-$nombre_format_francais = number_format($number, 2, ',', ' ');
+echo number_format($number, 2, ',', ' '), PHP_EOL;
// 1 234,56
$number = 1234.5678;
// english notation without thousands separator
-$english_format_number = number_format($number, 2, '.', '');
+echo number_format($number, 2, '.', ''), PHP_EOL;
// 1234.57
?>
diff --git a/reference/strings/functions/ord.xml b/reference/strings/functions/ord.xml
index da3931c3a8f7..1f634063b963 100644
--- a/reference/strings/functions/ord.xml
+++ b/reference/strings/functions/ord.xml
@@ -70,7 +70,6 @@ if (ord($str) == 10) {
<programlisting role="php">
<![CDATA[
<?php
-declare(encoding='UTF-8');
$str = "🐘";
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
$byte = substr($str, $pos);
diff --git a/reference/strings/functions/parse-str.xml b/reference/strings/functions/parse-str.xml
index 9b03d2e3d4eb..9840d4deafd6 100644
--- a/reference/strings/functions/parse-str.xml
+++ b/reference/strings/functions/parse-str.xml
@@ -103,15 +103,9 @@ $str = "first=value&arr[]=foo+bar&arr[]=baz";
// Recommended
parse_str($str, $output);
-echo $output['first']; // value
-echo $output['arr'][0]; // foo bar
-echo $output['arr'][1]; // baz
-
-// DISCOURAGED
-parse_str($str);
-echo $first; // value
-echo $arr[0]; // foo bar
-echo $arr[1]; // baz
+echo $output['first'], PHP_EOL; // value
+echo $output['arr'][0], PHP_EOL; // foo bar
+echo $output['arr'][1], PHP_EOL; // baz
?>
]]>
</programlisting>
@@ -127,9 +121,6 @@ echo $arr[1]; // baz
<programlisting role="php">
<![CDATA[
<?php
-parse_str("My Value=Something");
-echo $My_Value; // Something
-
parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>
diff --git a/reference/strings/functions/print.xml b/reference/strings/functions/print.xml
index 79ea861b27ec..e5088f183563 100644
--- a/reference/strings/functions/print.xml
+++ b/reference/strings/functions/print.xml
@@ -61,35 +61,44 @@
<![CDATA[
<?php
print "print does not require parentheses.";
+print PHP_EOL;
// No newline or space is added; the below outputs "helloworld" all on one line
print "hello";
print "world";
+print PHP_EOL;
print "This string spans
multiple lines. The newlines will be
output as well";
+print PHP_EOL;
print "This string spans\nmultiple lines. The newlines will be\noutput as well.";
+print PHP_EOL;
// The argument can be any expression which produces a string
$foo = "example";
print "foo is $foo"; // foo is example
+print PHP_EOL;
$fruits = ["lemon", "orange", "banana"];
print implode(" and ", $fruits); // lemon and orange and banana
+print PHP_EOL;
// Non-string expressions are coerced to string, even if declare(strict_types=1) is used
print 6 * 7; // 42
+print PHP_EOL;
// Because print has a return value, it can be used in expressions
// The following outputs "hello world"
if ( print "hello" ) {
echo " world";
}
+print PHP_EOL;
// The following outputs "true"
( 1 === 1 ) ? print 'true' : print 'false';
+print PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/setlocale.xml b/reference/strings/functions/setlocale.xml
index 23566562e31a..4b93db2b6b9b 100644
--- a/reference/strings/functions/setlocale.xml
+++ b/reference/strings/functions/setlocale.xml
@@ -171,7 +171,7 @@
<para>
<example>
<title><function>setlocale</function> Examples</title>
- <programlisting role="php">
+ <programlisting role="php" annotations="non-interactive">
<![CDATA[
<?php
/* Set locale to Dutch */
@@ -191,7 +191,7 @@ echo "Preferred locale for german on this system is '$loc_de'";
<para>
<example>
<title><function>setlocale</function> Examples for Windows</title>
- <programlisting role="php">
+ <programlisting role="php" annotations="non-interactive">
<![CDATA[
<?php
/* Set locale to Dutch */
diff --git a/reference/strings/functions/sha1-file.xml b/reference/strings/functions/sha1-file.xml
index 72162394adb8..28ec1327c417 100644
--- a/reference/strings/functions/sha1-file.xml
+++ b/reference/strings/functions/sha1-file.xml
@@ -60,10 +60,9 @@
<programlisting role="php">
<![CDATA[
<?php
-foreach(glob('/home/Kalle/myproject/*.php') as $ent)
+foreach (glob('/examples/*.xml') as $ent)
{
- if(is_dir($ent))
- {
+ if (is_dir($ent)) {
continue;
}
diff --git a/reference/strings/functions/soundex.xml b/reference/strings/functions/soundex.xml
index 093a3a37a372..c20cfa65a75e 100644
--- a/reference/strings/functions/soundex.xml
+++ b/reference/strings/functions/soundex.xml
@@ -84,6 +84,8 @@
<programlisting role="php">
<![CDATA[
<?php
+echo soundex("Euler"), PHP_EOL, soundex("Ellery"), PHP_EOL;
+
soundex("Euler") == soundex("Ellery"); // E460
soundex("Gauss") == soundex("Ghosh"); // G200
soundex("Hilbert") == soundex("Heilbronn"); // H416
diff --git a/reference/strings/functions/sprintf.xml b/reference/strings/functions/sprintf.xml
index 2eb37ca294dd..55a2ac6cf36f 100644
--- a/reference/strings/functions/sprintf.xml
+++ b/reference/strings/functions/sprintf.xml
@@ -77,54 +77,79 @@ echo sprintf($format, $num, $location);
There are 5 monkeys in the tree
]]>
</screen>
- <para>
+ </example>
+ <para>
However imagine we are creating a format string in a separate file,
commonly because we would like to internationalize it and we rewrite it as:
+ </para>
+ <example>
+ <title>Wrong Argument Order</title>
+ <para>
+ The format string supports argument numbering/swapping.
</para>
<programlisting role="php">
<![CDATA[
<?php
+$num = 5;
+$location = 'tree';
+
$format = 'The %s contains %d monkeys';
echo sprintf($format, $num, $location);
?>
]]>
</programlisting>
- <para>
- We now have a problem. The order of the placeholders in the
- format string does not match the order of the arguments in the
- code. We would like to leave the code as is and simply indicate
- in the format string which arguments the placeholders refer to.
- We would write the format string like this instead:
- </para>
+ </example>
+ <para>
+ We now have a problem. The order of the placeholders in the
+ format string does not match the order of the arguments in the
+ code. We would like to leave the code as is and simply indicate
+ in the format string which arguments the placeholders refer to.
+ We would write the format string like this instead:
+ </para>
+
+ <example>
+ <title>Use Order Placeholder</title>
<programlisting role="php">
<![CDATA[
<?php
+$num = 5;
+$location = 'tree';
+
$format = 'The %2$s contains %1$d monkeys';
echo sprintf($format, $num, $location);
?>
]]>
</programlisting>
- <para>
- An added benefit is that placeholders can be repeated without adding
- more arguments in the code.
- </para>
+ </example>
+
+ <para>
+ An added benefit is that placeholders can be repeated without adding
+ more arguments in the code.
+ </para>
+
+ <example>
+ <title>Repeated Placeholder</title>
<programlisting role="php">
<![CDATA[
<?php
+$num = 5;
+$location = 'tree';
+
$format = 'The %2$s contains %1$d monkeys.
That\'s a nice %2$s full of %1$d monkeys.';
echo sprintf($format, $num, $location);
?>
]]>
</programlisting>
- <para>
- When using argument swapping, the <literal>n$</literal>
- <emphasis>position specifier</emphasis> must come immediately
- after the percent sign (<literal>%</literal>), before any other
- specifiers, as shown below.
- </para>
</example>
+ <para>
+ When using argument swapping, the <literal>n$</literal>
+ <emphasis>position specifier</emphasis> must come immediately
+ after the percent sign (<literal>%</literal>), before any other
+ specifiers, as shown below.
+ </para>
+
<example>
<title>Specifying padding character</title>
<programlisting role="php">
@@ -143,11 +168,15 @@ echo sprintf("%'.09d\n", 123);
]]>
</screen>
</example>
+
<example>
<title>Position specifier with other specifiers</title>
<programlisting role="php">
<![CDATA[
<?php
+$num = 5;
+$location = 'tree';
+
$format = 'The %2$s contains %1$04d monkeys';
echo sprintf($format, $num, $location);
?>
@@ -160,16 +189,23 @@ The tree contains 0005 monkeys
]]>
</screen>
</example>
+
<example>
<title><function>sprintf</function>: zero-padded integers</title>
<programlisting role="php">
<![CDATA[
<?php
+$year = 2005;
+$month = 5;
+$day = 6;
+
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
+echo $isodate, PHP_EOL;
?>
]]>
</programlisting>
</example>
+
<example>
<title><function>sprintf</function>: formatting currency</title>
<programlisting role="php">
@@ -178,10 +214,10 @@ $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
-echo $money;
-echo "\n";
+echo $money, PHP_EOL;
+
$formatted = sprintf("%01.2f", $money);
-echo $formatted;
+echo $formatted, PHP_EOL;
?>
]]>
</programlisting>
@@ -200,7 +236,7 @@ echo $formatted;
<?php
$number = 362525200;
-echo sprintf("%.3e", $number);
+echo sprintf("%.3e", $number), PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/str-getcsv.xml b/reference/strings/functions/str-getcsv.xml
index 94000f944f61..1d380b2b9346 100644
--- a/reference/strings/functions/str-getcsv.xml
+++ b/reference/strings/functions/str-getcsv.xml
@@ -115,7 +115,7 @@
<?php
$string = 'PHP,Java,Python,Kotlin,Swift';
-$data = str_getcsv($string);
+$data = str_getcsv($string, escape: '\\');
var_dump($data);
?>
@@ -154,7 +154,7 @@ array(5) {
<?php
$string = '';
-$data = str_getcsv($string);
+$data = str_getcsv($string, escape: '\\');
var_dump($data);
?>
diff --git a/reference/strings/functions/str-pad.xml b/reference/strings/functions/str-pad.xml
index 416e81e6c186..9ee118bd96f1 100644
--- a/reference/strings/functions/str-pad.xml
+++ b/reference/strings/functions/str-pad.xml
@@ -94,11 +94,11 @@
<![CDATA[
<?php
$input = "Alien";
-echo str_pad($input, 10); // produces "Alien "
-echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien"
-echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___"
-echo str_pad($input, 6, "___"); // produces "Alien_"
-echo str_pad($input, 3, "*"); // produces "Alien"
+echo str_pad($input, 10), PHP_EOL; // produces "Alien "
+echo str_pad($input, 10, "-=", STR_PAD_LEFT), PHP_EOL; // produces "-=-=-Alien"
+echo str_pad($input, 10, "_", STR_PAD_BOTH), PHP_EOL; // produces "__Alien___"
+echo str_pad($input, 6, "___"), PHP_EOL; // produces "Alien_"
+echo str_pad($input, 3, "*"), PHP_EOL; // produces "Alien"
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/str-replace.xml b/reference/strings/functions/str-replace.xml
index a7ef6f156ad8..01de92935d4c 100644
--- a/reference/strings/functions/str-replace.xml
+++ b/reference/strings/functions/str-replace.xml
@@ -107,10 +107,12 @@
<?php
// Provides: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
+echo $bodytag, PHP_EOL;
// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
+echo $onlyconsonants, PHP_EOL;
// Provides: You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
@@ -118,10 +120,11 @@ $healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
+echo $newphrase, PHP_EOL;
// Provides: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
-echo $count;
+echo $count, PHP_EOL;
?>
]]>
</programlisting>
@@ -140,13 +143,14 @@ $replace = '<br />';
// Processes \r\n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $str);
+echo $newstr, PHP_EOL;
// Outputs F because A is replaced with B, then B is replaced with C, and so on...
// Finally E is replaced with F, because of left to right replacements.
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
-echo str_replace($search, $replace, $subject);
+echo str_replace($search, $replace, $subject), PHP_EOL;
// Outputs: apearpearle pear
// For the same reason mentioned above
@@ -154,7 +158,7 @@ $letters = array('a', 'p');
$fruit = array('apple', 'pear');
$text = 'a p';
$output = str_replace($letters, $fruit, $text);
-echo $output;
+echo $output, PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/stripos.xml b/reference/strings/functions/stripos.xml
index 12789d4464c7..2fbe1aa3dda0 100644
--- a/reference/strings/functions/stripos.xml
+++ b/reference/strings/functions/stripos.xml
@@ -125,13 +125,13 @@ $pos2 = stripos($mystring2, $findme);
// Nope, 'a' is certainly not in 'xyz'
if ($pos1 === false) {
- echo "The string '$findme' was not found in the string '$mystring1'";
+ echo "The string '$findme' was not found in the string '$mystring1'", PHP_EOL;
}
// Note our use of ===. Simply == would not work as expected
// because the position of 'a' is the 0th (first) character.
if ($pos2 !== false) {
- echo "We found '$findme' in '$mystring2' at position $pos2";
+ echo "We found '$findme' in '$mystring2' at position $pos2", PHP_EOL;
}
?>
]]>
diff --git a/reference/strings/functions/stristr.xml b/reference/strings/functions/stristr.xml
index 1c0fde5b9b5d..e66534c97cba 100644
--- a/reference/strings/functions/stristr.xml
+++ b/reference/strings/functions/stristr.xml
@@ -108,8 +108,8 @@
<![CDATA[
<?php
$email = '[email protected]';
- echo stristr($email, 'e'); // outputs [email protected]
- echo stristr($email, 'e', true); // outputs US
+ echo stristr($email, 'e'), PHP_EOL; // outputs [email protected]
+ echo stristr($email, 'e', true), PHP_EOL; // outputs US
?>
]]>
</programlisting>
@@ -122,25 +122,11 @@
<![CDATA[
<?php
$string = 'Hello World!';
- if(stristr($string, 'earth') === FALSE) {
+ if (stristr($string, 'earth') === FALSE) {
echo '"earth" not found in string';
}
// outputs: "earth" not found in string
?>
-]]>
- </programlisting>
- </example>
- </para>
- <para>
- <example>
- <title>Using a non "string" needle</title>
- <programlisting role="php">
-<![CDATA[
-<?php
- $string = 'APPLE';
- echo stristr($string, 97); // 97 = lowercase a
-// outputs: APPLE
-?>
]]>
</programlisting>
</example>
diff --git a/reference/strings/functions/strlen.xml b/reference/strings/functions/strlen.xml
index ca6f2e357649..b08dc2345a9a 100644
--- a/reference/strings/functions/strlen.xml
+++ b/reference/strings/functions/strlen.xml
@@ -49,10 +49,10 @@
<![CDATA[
<?php
$str = 'abcdef';
-echo strlen($str); // 6
+echo strlen($str), PHP_EOL; // 6
$str = ' ab cd ';
-echo strlen($str); // 7
+echo strlen($str), PHP_EOL; // 7
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/strnatcmp.xml b/reference/strings/functions/strnatcmp.xml
index c6234e66a2b9..3f327408a541 100644
--- a/reference/strings/functions/strnatcmp.xml
+++ b/reference/strings/functions/strnatcmp.xml
@@ -73,7 +73,8 @@
An example of the difference between this algorithm and the regular
computer string sorting algorithms (used in <function>strcmp</function>)
can be seen below:
- <informalexample>
+ <example>
+ <title><function>strcmp</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -109,7 +110,7 @@ Array
)
]]>
</screen>
- </informalexample>
+ </example>
For more information see: Martin Pool's <link
xlink:href="&url.strnatcmp;">Natural Order String Comparison</link>
page.
diff --git a/reference/strings/functions/strpbrk.xml b/reference/strings/functions/strpbrk.xml
index d826538ac5b7..a9d877bdb9eb 100644
--- a/reference/strings/functions/strpbrk.xml
+++ b/reference/strings/functions/strpbrk.xml
@@ -63,10 +63,10 @@
$text = 'This is a Simple text.';
// this echoes "is is a Simple text." because 'i' is matched first
-echo strpbrk($text, 'mi');
+echo strpbrk($text, 'mi'), PHP_EOL;
// this echoes "Simple text." because chars are case sensitive
-echo strpbrk($text, 'S');
+echo strpbrk($text, 'S'), PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/strpos.xml b/reference/strings/functions/strpos.xml
index a3cf1c465d63..a8b1aeed6aef 100644
--- a/reference/strings/functions/strpos.xml
+++ b/reference/strings/functions/strpos.xml
@@ -159,6 +159,8 @@ if ($pos !== false) {
// We can search for the character, ignoring anything before the offset
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
+
+echo $pos, PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/strrpos.xml b/reference/strings/functions/strrpos.xml
index 70095f7b2455..b2b022aa9986 100644
--- a/reference/strings/functions/strrpos.xml
+++ b/reference/strings/functions/strrpos.xml
@@ -128,6 +128,7 @@
<programlisting role="php">
<![CDATA[
<?php
+$mystring = 'Elephpant';
$pos = strrpos($mystring, "b");
if ($pos === false) { // note: three equal signs
diff --git a/reference/strings/functions/strstr.xml b/reference/strings/functions/strstr.xml
index daa033188327..591d8fc05bb4 100644
--- a/reference/strings/functions/strstr.xml
+++ b/reference/strings/functions/strstr.xml
@@ -118,10 +118,10 @@
<?php
$email = '[email protected]';
$domain = strstr($email, '@');
-echo $domain; // prints @example.com
+echo $domain, PHP_EOL; // prints @example.com
$user = strstr($email, '@', true);
-echo $user; // prints name
+echo $user, PHP_EOL; // prints name
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/strtok.xml b/reference/strings/functions/strtok.xml
index d6774a980227..e1a3076198ac 100644
--- a/reference/strings/functions/strtok.xml
+++ b/reference/strings/functions/strtok.xml
@@ -122,7 +122,7 @@ $string = "This is\tan example\nstring";
$tok = strtok($string, " \n\t");
while ($tok !== false) {
- echo "Word=$tok<br />";
+ echo "Word={$tok}\n";
$tok = strtok(" \n\t");
}
?>
diff --git a/reference/strings/functions/strtr.xml b/reference/strings/functions/strtr.xml
index 7619b64efdfa..d746a319e4d2 100644
--- a/reference/strings/functions/strtr.xml
+++ b/reference/strings/functions/strtr.xml
@@ -114,9 +114,12 @@
<programlisting role="php">
<![CDATA[
<?php
-//In this form, strtr() does byte-by-byte translation
-//Therefore, we are assuming a single-byte encoding here:
+$addr = "The river å";
+
+// In this form, strtr() does byte-by-byte translation
+// Therefore, we are assuming a single-byte encoding here:
$addr = strtr($addr, "äåö", "aao");
+echo $addr, PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/substr-compare.xml b/reference/strings/functions/substr-compare.xml
index 2adb6354fa45..5acd02a05fae 100644
--- a/reference/strings/functions/substr-compare.xml
+++ b/reference/strings/functions/substr-compare.xml
@@ -127,13 +127,13 @@
<programlisting role="php">
<![CDATA[
<?php
-echo substr_compare("abcde", "bc", 1, 2); // 0
-echo substr_compare("abcde", "de", -2, 2); // 0
-echo substr_compare("abcde", "bcg", 1, 2); // 0
-echo substr_compare("abcde", "BC", 1, 2, true); // 0
-echo substr_compare("abcde", "bc", 1, 3); // 1
-echo substr_compare("abcde", "cd", 1, 2); // -1
-echo substr_compare("abcde", "abc", 5, 1); // warning
+echo substr_compare("abcde", "bc", 1, 2), PHP_EOL; // 0
+echo substr_compare("abcde", "de", -2, 2), PHP_EOL; // 0
+echo substr_compare("abcde", "bcg", 1, 2), PHP_EOL; // 0
+echo substr_compare("abcde", "BC", 1, 2, true), PHP_EOL; // 0
+echo substr_compare("abcde", "bc", 1, 3), PHP_EOL; // 1
+echo substr_compare("abcde", "cd", 1, 2), PHP_EOL; // -1
+echo substr_compare("abcde", "abc", 5, 1), PHP_EOL; // -1
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/substr-count.xml b/reference/strings/functions/substr-count.xml
index ccddb7cae464..34f64136bfb1 100644
--- a/reference/strings/functions/substr-count.xml
+++ b/reference/strings/functions/substr-count.xml
@@ -119,23 +119,22 @@
<![CDATA[
<?php
$text = 'This is a test';
-echo strlen($text); // 14
+echo strlen($text), PHP_EOL; // 14
-echo substr_count($text, 'is'); // 2
+echo substr_count($text, 'is'), PHP_EOL; // 2
// the string is reduced to 's is a test', so it prints 1
-echo substr_count($text, 'is', 3);
+echo substr_count($text, 'is', 3), PHP_EOL;
// the text is reduced to 's i', so it prints 0
-echo substr_count($text, 'is', 3, 3);
-
-// generates a warning because 5+10 > 14
-echo substr_count($text, 'is', 5, 10);
-
+echo substr_count($text, 'is', 3, 3), PHP_EOL;
// prints only 1, because it doesn't count overlapped substrings
$text2 = 'gcdgcdgcd';
-echo substr_count($text2, 'gcdgcd');
+echo substr_count($text2, 'gcdgcd'), PHP_EOL;
+
+// throws an exception because 5+10 > 14
+echo substr_count($text, 'is', 5, 10), PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/substr.xml b/reference/strings/functions/substr.xml
index f3cb6697074f..2f72222d9a1a 100644
--- a/reference/strings/functions/substr.xml
+++ b/reference/strings/functions/substr.xml
@@ -59,9 +59,9 @@
<programlisting role="php">
<![CDATA[
<?php
-$rest = substr("abcdef", -1); // returns "f"
-$rest = substr("abcdef", -2); // returns "ef"
-$rest = substr("abcdef", -3, 1); // returns "d"
+echo substr("abcdef", -1), PHP_EOL; // returns "f"
+echo substr("abcdef", -2), PHP_EOL; // returns "ef"
+echo substr("abcdef", -3, 1), PHP_EOL; // returns "d"
?>
]]>
</programlisting>
@@ -100,10 +100,10 @@ $rest = substr("abcdef", -3, 1); // returns "d"
<programlisting role="php">
<![CDATA[
<?php
-$rest = substr("abcdef", 0, -1); // returns "abcde"
-$rest = substr("abcdef", 2, -1); // returns "cde"
-$rest = substr("abcdef", 4, -4); // returns ""; prior to PHP 8.0.0, false was returned
-$rest = substr("abcdef", -3, -1); // returns "de"
+echo substr("abcdef", 0, -1), PHP_EOL; // returns "abcde"
+echo substr("abcdef", 2, -1), PHP_EOL; // returns "cde"
+echo substr("abcdef", 4, -4), PHP_EOL; // returns ""; prior to PHP 8.0.0, false was returned
+echo substr("abcdef", -3, -1), PHP_EOL; // returns "de"
?>
]]>
</programlisting>
@@ -160,19 +160,19 @@ $rest = substr("abcdef", -3, -1); // returns "de"
<programlisting role="php">
<![CDATA[
<?php
-echo substr('abcdef', 1); // bcdef
-echo substr("abcdef", 1, null); // bcdef; prior to PHP 8.0.0, empty string was returned
-echo substr('abcdef', 1, 3); // bcd
-echo substr('abcdef', 0, 4); // abcd
-echo substr('abcdef', 0, 8); // abcdef
-echo substr('abcdef', -1, 1); // f
+echo substr('abcdef', 1), PHP_EOL; // bcdef
+echo substr("abcdef", 1, null), PHP_EOL; // bcdef; prior to PHP 8.0.0, empty string was returned
+echo substr('abcdef', 1, 3), PHP_EOL; // bcd
+echo substr('abcdef', 0, 4), PHP_EOL; // abcd
+echo substr('abcdef', 0, 8), PHP_EOL; // abcdef
+echo substr('abcdef', -1, 1), PHP_EOL; // f
// Accessing single characters in a string
// can also be achieved using "square brackets"
$string = 'abcdef';
-echo $string[0]; // a
-echo $string[3]; // d
-echo $string[strlen($string)-1]; // f
+echo $string[0], PHP_EOL; // a
+echo $string[3], PHP_EOL; // d
+echo $string[strlen($string)-1], PHP_EOL; // f
?>
]]>
@@ -189,13 +189,13 @@ class apple {
}
}
-echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
-echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
-echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
-echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
-echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
-echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
-echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
+echo "1) ", var_export(substr("pear", 0, 2), true), PHP_EOL;
+echo "2) ", var_export(substr(54321, 0, 2), true), PHP_EOL;
+echo "3) ", var_export(substr(new apple(), 0, 2), true), PHP_EOL;
+echo "4) ", var_export(substr(true, 0, 1), true), PHP_EOL;
+echo "5) ", var_export(substr(false, 0, 1), true), PHP_EOL;
+echo "6) ", var_export(substr("", 0, 1), true), PHP_EOL;
+echo "7) ", var_export(substr(1.2e3, 0, 4), true), PHP_EOL;
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/ucfirst.xml b/reference/strings/functions/ucfirst.xml
index 5ba5efe8e680..1b1a91dc9029 100644
--- a/reference/strings/functions/ucfirst.xml
+++ b/reference/strings/functions/ucfirst.xml
@@ -69,11 +69,11 @@
<![CDATA[
<?php
$foo = 'hello world!';
-$foo = ucfirst($foo); // Hello world!
+echo ucfirst($foo), PHP_EOL; // Hello world!
$bar = 'HELLO WORLD!';
-$bar = ucfirst($bar); // HELLO WORLD!
-$bar = ucfirst(strtolower($bar)); // Hello world!
+echo ucfirst($bar), PHP_EOL; // HELLO WORLD!
+echo ucfirst(strtolower($bar)), PHP_EOL; // Hello world!
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/ucwords.xml b/reference/strings/functions/ucwords.xml
index fd20dbf2ff73..8db161bb92dc 100644
--- a/reference/strings/functions/ucwords.xml
+++ b/reference/strings/functions/ucwords.xml
@@ -88,11 +88,11 @@
<![CDATA[
<?php
$foo = 'hello world!';
-$foo = ucwords($foo); // Hello World!
+echo ucwords($foo), PHP_EOL; // Hello World!
$bar = 'HELLO WORLD!';
-$bar = ucwords($bar); // HELLO WORLD!
-$bar = ucwords(strtolower($bar)); // Hello World!
+echo ucwords($bar), PHP_EOL; // HELLO WORLD!
+echo ucwords(strtolower($bar)), PHP_EOL; // Hello World!
?>
]]>
</programlisting>
@@ -106,9 +106,9 @@ $bar = ucwords(strtolower($bar)); // Hello World!
<![CDATA[
<?php
$foo = 'hello|world!';
-$bar = ucwords($foo); // Hello|world!
+echo ucwords($foo), PHP_EOL; // Hello|world!
-$baz = ucwords($foo, "|"); // Hello|World!
+echo ucwords($foo, "|"), PHP_EOL; // Hello|World!
?>
]]>
</programlisting>
@@ -122,9 +122,9 @@ $baz = ucwords($foo, "|"); // Hello|World!
<![CDATA[
<?php
$foo = "mike o'hara";
-$bar = ucwords($foo); // Mike O'hara
+echo ucwords($foo), PHP_EOL; // Mike O'hara
-$baz = ucwords($foo, " \t\r\n\f\v'"); // Mike O'Hara
+echo ucwords($foo, " \t\r\n\f\v'"), PHP_EOL; // Mike O'Hara
?>
]]>
</programlisting>
diff --git a/reference/strings/functions/vfprintf.xml b/reference/strings/functions/vfprintf.xml
index 7174dbe50511..97a4d50297b0 100644
--- a/reference/strings/functions/vfprintf.xml
+++ b/reference/strings/functions/vfprintf.xml
@@ -75,6 +75,9 @@
if (!($fp = fopen('date.txt', 'w')))
return;
+$year = 2025;
+$month = 5;
+$day = 6;
vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// will write the formatted ISO date to date.txt
?>