[PHP] Re: Need regular match help - possibly
Hello Gaylen, try this: $string = preg_replace(/\n{3,}/, \n\n\n, $string); James Gaylen Fraley [EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... I need a routine that will allow me to trap multiple br and/or line feed characters and convert them to a constant number. As an example, let's say that you have text that has 10 carriage returns and/or line feeds. I want to limit this to 3. So, I need to be able to parse the line to detect the multiple control characters and convert the string to 3. So if the string looked something like: This is \n\n\n\n\n\n\n\n\n\n a test. I would want it converted to This is \n\n\n a test. Conceivably, it could be This is brbrbrbrbr a test. I would want it converted to This is brbrbr a test. I know I could write a do/while loop, but I was wondering if there is a way using eregi_replace or something along that line? Thanks! -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP] Re: Need regular match help - possibly
Thinking about it, this would probably be even better: $string = preg_replace(/(\n|br){3,}/i, \\1\\1\\1, $string); This: $string = This is a \n\n\n\n\n\n\n\n\n\n\ntest\nTesting\nTesting\n\n123brbrbrbrbrbr brbrbrbrbrSome more testingbrbrbrbrbrbrbrbrbrAnd a little morebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr brbrbrbrbrbrbrbrbrbrbrbrbrbrEven more.; Then outputs as this: This is a br / br / br / testbr / Testingbr / Testingbr / br / 123brbrbrSome more testingbrbrbrAnd a little morebrbrbrEven more. when echo'd with nl2br() As a side note, does anyone know what's with the br tag changing to br /? That's the way I've always used the line break tag for wml pages, but hadn't realised that it's being written that way for standard html now. Is this a change in spec? James Liljim [EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... Hello Gaylen, try this: $string = preg_replace(/\n{3,}/, \n\n\n, $string); James Gaylen Fraley [EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... I need a routine that will allow me to trap multiple br and/or line feed characters and convert them to a constant number. As an example, let's say that you have text that has 10 carriage returns and/or line feeds. I want to limit this to 3. So, I need to be able to parse the line to detect the multiple control characters and convert the string to 3. So if the string looked something like: This is \n\n\n\n\n\n\n\n\n\n a test. I would want it converted to This is \n\n\n a test. Conceivably, it could be This is brbrbrbrbr a test. I would want it converted to This is brbrbr a test. I know I could write a do/while loop, but I was wondering if there is a way using eregi_replace or something along that line? Thanks! -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP] Re: Need regular match help - possibly
Thanks. According to the manual, the br / is for XHTML compliance. This changed in 4.0.5. -- Gaylen [EMAIL PROTECTED] Home http://www.gaylenandmargie.com PHP KISGB v2.3 Guestbook http://www.gaylenandmargie.com/phpwebsite Liljim [EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... Thinking about it, this would probably be even better: $string = preg_replace(/(\n|br){3,}/i, \\1\\1\\1, $string); This: $string = This is a \n\n\n\n\n\n\n\n\n\n\ntest\nTesting\nTesting\n\n123brbrbrbrbrbr brbrbrbrbrSome more testingbrbrbrbrbrbrbrbrbrAnd a little morebrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbrbr brbrbrbrbrbrbrbrbrbrbrbrbrbrEven more.; Then outputs as this: This is a br / br / br / testbr / Testingbr / Testingbr / br / 123brbrbrSome more testingbrbrbrAnd a little morebrbrbrEven more. when echo'd with nl2br() As a side note, does anyone know what's with the br tag changing to br /? That's the way I've always used the line break tag for wml pages, but hadn't realised that it's being written that way for standard html now. Is this a change in spec? James Liljim [EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... Hello Gaylen, try this: $string = preg_replace(/\n{3,}/, \n\n\n, $string); James Gaylen Fraley [EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... I need a routine that will allow me to trap multiple br and/or line feed characters and convert them to a constant number. As an example, let's say that you have text that has 10 carriage returns and/or line feeds. I want to limit this to 3. So, I need to be able to parse the line to detect the multiple control characters and convert the string to 3. So if the string looked something like: This is \n\n\n\n\n\n\n\n\n\n a test. I would want it converted to This is \n\n\n a test. Conceivably, it could be This is brbrbrbrbr a test. I would want it converted to This is brbrbr a test. I know I could write a do/while loop, but I was wondering if there is a way using eregi_replace or something along that line? Thanks! -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]