cvs: phpdoc /en/reference/pcre/functions preg-replace-callback.xml
| From: | Etienne Kneuss | Date: | Wed, 21 Jun 2006 17:08:39 +0000 |
| Subject: | cvs: phpdoc /en/reference/pcre/functions preg-replace-callback.xml | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969373358@lists.php.net to get a copy of this message | ||
colder Wed Jun 21 17:08:39 2006 UTC
Modified files:
/phpdoc/en/reference/pcre/functions preg-replace-callback.xml
Log:
New example using recursion
http://cvs.php.net/viewvc.cgi/phpdoc/en/reference/pcre/functions/preg-replace-callback.xml?r1=1.12&r2=1.13&diff_format=u
Index: phpdoc/en/reference/pcre/functions/preg-replace-callback.xml
diff -u phpdoc/en/reference/pcre/functions/preg-replace-callback.xml:1.12
phpdoc/en/reference/pcre/functions/preg-replace-callback.xml:1.13
--- phpdoc/en/reference/pcre/functions/preg-replace-callback.xml:1.12 Mon Apr 3 15:10:11 2006
+++ phpdoc/en/reference/pcre/functions/preg-replace-callback.xml Wed Jun 21 17:08:39 2006
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.12 $ -->
+<!-- $Revision: 1.13 $ -->
<!-- splitted from ./en/functions/pcre.xml, last change in rev 1.47 -->
<refentry id="function.preg-replace-callback">
<refnamediv>
@@ -90,6 +90,33 @@
]]>
</programlisting>
</example>
+ <example>
+ <title><function>preg_replace_callback</function> using recursive structure
+ to handle encapsulated BB code</title>
+ <programlisting role='php'>
+<![CDATA[
+<?php
+$input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";
+
+function parseTagsRecursive($input)
+{
+
+ $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';
+
+ if (is_array($input)) {
+ $input = '<div style="margin-left:
10px">'.$input[1].'</div>';
+ }
+
+ return preg_replace_callback($regex, 'parseTagsRecursive', $input);
+}
+
+$output = parseTagsRecursive($input);
+
+echo $output;
+?>
+]]>
+ </programlisting>
+ </example>
<note>
<para>
<parameter>count</parameter> parameter is available since PHP 5.1.0.