Edit report at https://bugs.php.net/bug.php?id=60380&edit=1
ID: 60380 Comment by: cjbf at cam dot ac dot uk Reported by: evrinoma at gmail dot com Summary: preg_split and old version split Status: Open Type: Bug Package: *Programming Data Structures Operating System: Linux CenOS5 CentOS6 PHP Version: 5.3.8 Block user comment: N Private report: N New Comment: Three \s are needed to match one \. Could that at least be documented if it's not wrong? $text='AA\\nB and B\r';// contains \n and \r print_r(preg_split('/\\\n|\\\r/', $text)); gives Array ( [0] => AA [1] => B and B [2] => ) Previous Comments: ------------------------------------------------------------------------ [2012-08-30 19:02:43] cjbf at cam dot ac dot uk Put simply, preg_split treats "\\" wrongly. It ought to search for an actual "\" but never matches it. ------------------------------------------------------------------------ [2011-11-25 07:15:00] evrinoma at gmail dot com Description: ------------ --splite------- array[0]=0123456789-- array[1]=qwertyuiop-- array[2]=9876543210-- array[3]=poiuytrewq-- array[4]=0123456789-- array[5]=asdfghjkl-- --preg_splite-- array[0]=0123456789\qwertyuiop-- <<<<<<<<< ??? array[1]=9876543210-- array[2]=poiuytrewq-- array[3]=0123456789-- array[4]=asdfghjkl-- array[5]=-- --------------- Test script: --------------- <HTML> <HEAD> <TITLE> BUG </TITLE> </HEAD> <BODY> <? printf(" --splite------- <BR>\n"); $date="0123456789\\qwertyuiop 9876543210.poiuytrewq:0123456789 asdfghjkl"; $var = split( "[-\\. :]",$date ); printf(" array[0]=%s-- <BR>\n",$var[0]); printf(" array[1]=%s-- <BR>\n",$var[1]); printf(" array[2]=%s-- <BR>\n",$var[2]); printf(" array[3]=%s-- <BR>\n",$var[3]); printf(" array[4]=%s-- <BR>\n",$var[4]); printf(" array[5]=%s-- <BR>\n",$var[5]); printf(" --preg_splite-- <BR>\n"); $var = preg_split( "#[-\\. :]#",$date); printf(" array[0]=%s-- <BR>\n",$var[0]); printf(" array[1]=%s-- <BR>\n",$var[1]); printf(" array[2]=%s-- <BR>\n",$var[2]); printf(" array[3]=%s-- <BR>\n",$var[3]); printf(" array[4]=%s-- <BR>\n",$var[4]); printf(" array[5]=%s-- <BR>\n",$var[5]); printf(" --------------- <BR>\n"); ?> </BODY> </HTML> ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60380&edit=1