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 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 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! Link to comment https://forums.phpfreaks.com/topic/238052-automatically-closing-html-tags/#findComment-1223295 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.