Porl123 Posted June 1, 2011 Share Posted June 1, 2011 $content = preg_replace('/\[b\](.*?)(\[\/b\]|$)/i','<strong>\\1</strong>',$content); I have this line which I want to convert [ b ]text[ /b ] (had to space out) to <strong>text</strong>. But I want it to imply the </strong> if one isn't detected by the end of the content. I thought this would work but it only matches when it detects the [/b] and not the end of the content. Does anybody see a problem with it? Thanks Quote Link to comment https://forums.phpfreaks.com/topic/238052-automatically-closing-html-tags/ Share on other sites More sharing options...
.josh Posted June 1, 2011 Share Posted June 1, 2011 The dot in .*? by default will only match up to to end of line char (\n), So unless your opening b tag happens to be on the last line, your pattern won't work. You need to use the s modifier to get it to also match \n so it will match to the end of the content. http://php.net/manual/en/reference.pcre.pattern.modifiers.php Quote Link to comment https://forums.phpfreaks.com/topic/238052-automatically-closing-html-tags/#findComment-1223289 Share on other sites More sharing options...
Porl123 Posted June 1, 2011 Author Share Posted June 1, 2011 That's sorted it. (: Cheers man! Quote Link to comment https://forums.phpfreaks.com/topic/238052-automatically-closing-html-tags/#findComment-1223295 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.