Hello.
Maybe this is the intended behavior, but wordwrap()'s behavior is a bit
illogical on PHP 4.3.1, as it does only break after a plain whitespace, not
after punctuation, \n, etc.
Here's a trivial sample :
$a = "wwwwwwwwwwwwwwwwww\nphprules\nwwwwwwwwwwwwwwwww";
print wordwrap($a, 10, ' ', 10);
Output :
wwwwwwwwww wwwwwwww
p hprules
ww wwwwwwwwww wwwww
The following trivial patch makes wordwrap() wrap after any
non-alphanumeric charater. Output after application of that patch :
wwwwwwwwww wwwwwwww phprules wwwwwwwwww wwwwwww
Best regards,
-Frank.
--- php-4.3.1/ext/standard/string.c 2002-12-27 04:22:20.000000000 +0100
+++ php-4.3.1-jedi/ext/standard/string.c 2003-03-06 12:41:46.000000000 +0100
@@ -654,7 +654,7 @@
for (current = 0; current < textlen; current++) {
if (text[current] == breakchar[0]) {
laststart = lastspace = current;
- } else if (text[current] == ' ') {
+ } else if (!isalnum((unsigned char) text[current])) {
if (current - laststart >= linelength) {
newtext[current] = breakchar[0];
laststart = current;
@@ -701,7 +701,7 @@
}
/* if it is a space, check if it is at the line boundary,
* copy and insert a break, or just keep track of it */
- else if (text[current] == ' ') {
+ else if (!isalnum((unsigned char) text[current])) {
if (current - laststart >= linelength) {
memcpy(newtext+newtextlen, text+laststart,
current-laststart);
newtextlen += current - laststart;
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, visit: http://www.php.net/unsub.php