It seems [php][/php] and [code][/code] don't share the same restrictions:
When used [php]:
$var = "[URL=http://".$url."]".$name."[/URL]";
When used [code]:
$var = "[URL=".$url."]".$name."[/URL]";
In [php] was added http:// by SMF
Is it a bug?
I thought both [php] and [code] were supposed to prohibit using of BBCODE inside and treat it as simple text instead.
whatever it is, evidently it affects both 1.x and 2.x versions.
Yes, that's a bug...
There are two ways around that.
Option 1 - use the HTML entity for one of the brackets (&# 91; for [ and &# 93; for ], but without the spaces). The only problem with this is that they will get parsed as soon as you post, and you'll have to change them back if you quote it/edit it.
Option 2 - just put it in a code box with a PHP tag before the code:
Is there a more "practical" fix?
wait for the bug fix in 2.0 final? (moving this to bug reports since it seems to happen here on 2.0RC4)
originally reported on 1.1.x
Not fixed in 2.0.
I think I've read some discussion about it, but I don't remember where but I can't find it tracked.
The most practical fix is to actually treat php tags as code tags during the preparse stage but that has all kinds of awkward edge conditions.