我的RegEx有问题.我想翻译一个BBCode链接
[链接= www.stackoverflow.com]堆栈上溢[/链接]
进入像HTML链接一样
<a href='www.stackoverflow.com'>Stack-Overflow</a>.
Run Code Online (Sandbox Code Playgroud)
在我的String中,可以在BBCode中创建多个链接.我还需要一个函数将html转换回BBCode.
我的功能是BBCode到HTML:
$Text = preg_replace('/\[link=([^ ]+).*\](.*)\[\/link\]/', '<a href="$1">$2</a>', $Text);
Run Code Online (Sandbox Code Playgroud)
HTML到BBCode:
$Text = preg_replace('/\<a href="([^ ]+).*\">(.*)\<\/a\>/Usi', '[link=$1]$2[/link]', $Text);
Run Code Online (Sandbox Code Playgroud)
我的问题是与你的功能,当我有多个链接,它不起作用,当我有一个链接转换为HTML,我想翻译回来,我只有链接的第一个字符.
大家能帮帮我吗?提前致谢
我在论坛中使用SCEditor 。我设法将 bbcodes 插入数据库。但是当我尝试在页面中显示代码时,bbcodes 显示时没有样式。没有html,没有样式。只有坏的 bbcodes。我在其文档页面中调查了很长时间,但没有找到任何 php 解析器。这是屏幕截图。
请问,你能帮我吗,如何在 PHP 中将 bbcode 解析为 html?
如何将 bbcode[url]标签转换为<a>在开始和结束标签之间具有 href 属性和文本的标签?
以下是一些示例字符串:
[url]https://any.com/any[/url]
[URL="https://any.com/any?any=333"]text text[/URL]
[url]http://www.any.com/any?any=44#sss[/url]
*请注意,开始[url]标记中的双引号子字符串是可选的,并且会影响所需的输出...
我试过这种模式:
(?:\[url="(https?://(?:www)?.+?)\]|\[url\](https?://(?:www)?.+\[))
\[url="(https?:\/\/(?:www\.)?.+?)\]|\[url\](https?:\/\/(?:www\.)?.+)\[\/url\]
\[url="(https?:\/\/(?:www\.)?.+)"\]|\[url\](https?:\/\/(?:www\.)?.+)\[\/url\]
Run Code Online (Sandbox Code Playgroud)
像这样:
$pattern ='##i';
$text = preg_replace($pattern,'',$text);
Run Code Online (Sandbox Code Playgroud)
从上面的 bbcode url 标签中,我想要的结果应该是:
<a href="https://any.com/any">https://any.com/any</a>
<a href="https://any.com/any?any=333">text text</a>
<a href="http://www.any.com/any?any=44#sss">http://www.any.com/any?any=44#sss</a>
换句话说,如果 url 位于开始[url]标记的双引号部分,则使用该值作为href值并将[url]标记的 innerHTML保留为生成的<a>标记的 innerHTML 。
如果URL不在双引号部分,但位于打开和关闭之间的[url]标签,然后使用该值作为这两个href值和的的innerHTML <a>。
我已经创建了一个可以下载的演示文件,还有一个可以运行的页面.我需要做的是,所有的标签,只需要在区域中删除(BBCode [code])
更新:该代码不适用于多个BBCode标记.所以,如果有的话
[URL] [Site] [B]
或者其他任何东西,下面的脚本会破坏所有标签.并且不会正确处理页面.
这是演示页面的链接. http://www.cffcs.com/test/EE/Main.asp
这是下载.zip文件的链接.http://www.cffcs.com/test/EE/Request.zip
如果有人可以帮助我,我会非常感激.
使用了下面的代码,但是,我发现它打破了"[code"部分中没有涉及的所有其他内容.这是正在使用的内容,可以在上面的代码文件中找到.
Function ReplaceChar(strString)
strString = Reggex(strString, "\[code=(.*?)\](.*?)\[\/code\]", "<code class=""$1"">$2</code>")
ReplaceChar = strString
End Function
Function ProtectSQL(SQLString)
SQLString = SQLString
SQLString = Replace(SQLString, "'", "''") ' replace > with >
SQLString = Replace(SQLString, vblf,"<br>") ' replace vblf with <br /> (This is mainly used for Memo fields.
SQLString = Trim(SQLString)
ProtectSQL = SQLString
End Function
getText = ProtectSQL(request.form("Answers"))
bigString = ReplaceChar(getText)
'grab the left chunk of text starting to …Run Code Online (Sandbox Code Playgroud) bbcode ×4
php ×3
regex ×2
asp-classic ×1
editor ×1
hyperlink ×1
php-parser ×1
preg-replace ×1
replace ×1