bbcode 相关问题

公告板代码是一种轻量级标记语言,用于格式化许多留言板中的帖子。没有“标准”BBC代码集,但它们通常被解析为其他标记语言。

如何从preg_replace()的replace参数调用函数? [重复]

我正在尝试使用数组中的函数,该函数使用 preg_replace() 来替换某些命令 下面是用于观察的PHP代码 $翻译=数组( “Livro”=>“书&qu...

回答 1 投票 0

React 上的 BBCode 图像标签问题

我有这样的组件,可以在我的 React 网站上呈现 BBCode 图像标签: 代码: BBCodeComponent.tsx: 从“反应”导入反应; 从“react-dom/server&qu...”导入 ReactDOMServer

回答 1 投票 0

Godot 4:如何通过字符代码在RichTextLabel中输入unicode字符?

我在 Godot 4 中使用 RichTextLabel,并尝试在其中插入一个特殊的 unicode 字符(我正在使用 fontawesome)。我知道该字符的 unicode 索引。如何通过

回答 1 投票 0

MemoQ 正则表达式标记器问题 [xxx]yyy[/xxx](已在评论中解决)

在过去的一个半小时里我一直在为此苦苦挣扎,但无法让它发挥作用。我正在尝试为 MemoQ 的正则表达式标记器创建正则表达式。 我有一系列这样的: zzz [xxx]y...

回答 1 投票 0

仅允许来自所见即所得 BBCode 编辑器的 html 标签

我想要基本的东西,例如粗体,斜体,下划线,链接,图像,列表和颜色。我正在使用 bbcode 编辑器。我还在我的 php 中使用 strip_tags,我想绕过这个,所以它只允许 ab...

回答 3 投票 0

将 BBCode 生成的 HTML 转换回 BBCode

我有这个函数来解析 bbcode -> html: $this->text = preg_replace(数组( '/\[b\](.*?)\[\/b\]/ms', '/\[i\](.*?)\[\/i\]/ms', '/\[u\](.*?)\[\/u\]/ms', '/\[img\](.*?)\[\/i...

回答 3 投票 0

使用正则表达式解析 BBCode 文本时出现“编译失败:括号不匹配”错误

在尝试使用正则表达式模式数组解析 BBCode 时,出现错误“编译失败:偏移量 11 处的括号不匹配”。 我不知道偏移量 11 是什么意思,我已经...

回答 3 投票 0

将 BBCode [link='www.example.com]example[/link] 转换为 HTML <a href="www.example.com">example</a>

我的正则表达式有问题。我想翻译 BBCode 链接标签,例如: [link=www.stackoverflow.com]Stack-Overflow[/link] 转换为 HTML 链接: 堆栈溢出&...

回答 2 投票 0

如何解析带有参数的嵌套BB代码

我想为 PHP 网站开发 BB 代码过滤器。 (我正在使用 CakePHP,它将是 BB 代码助手)。我有以下要求: BB 代码可以嵌套。所以这样的事情是有效的 [

回答 5 投票 0

解析 BBCode 并从 BB 标签中提取特定属性[重复]

我需要从我的论坛(PHP)的引号中获取用户名。 我正在搜索的内容将是这样的: [引用作者=用户名链接=主题=1234.msg1234567#1234567日期=1234567890] lorem ipsum dolo...

回答 3 投票 0

将 BBCode [url] 标签转换为可点击的 HTML <a href> 链接 [重复]

我对其他 BBCode 使用 str_replace(),但我坚持使用 url 部分。 我需要转换: [url=http://maps.google.com/maps?ie=UTF-8&oe=utf-8&rls=org.mozilla:en-US:official&cli...

回答 2 投票 0

出于文档原因生成所有有效 BBCode 实体的列表

我已经成功地集成了 BBCode,但我想知道如果我想动态列出所有允许/接受的 BBCode - 我怎样才能做到这一点? (因为手动操作可能很乏味

回答 1 投票 0

解析数组中的BBCode

我正在尝试从 BBCode 调用函数(如 WordPress 短代码)。但我没有找到任何代码来做到这一点,只找到了 HTML 标签解析器,例如: [粗体]粗体文字[/粗体] -> 粗体文字 我正在尝试从 BBCode 调用函数(如 WordPress 短代码)。但我没有找到任何代码来做到这一点,只找到了 HTML 标签解析器,例如: [bold]Bold text[/bold] -> <b>Bold text</b> 但是我想将其保存为数组,例如: [date format="j M, Y" type="jalali"] 这样的事情: array( 'date' => array( 'format' => 'j M, Y', 'type' => 'jalali' ) ) *已编辑 我编写了一个代码来做到这一点(抱歉,如果我的英语不好): [date format="Y/m/d" type="jalali"] => Step 1: Get code between "[" and "]": date format="Y/m/d" type="jalali" Step 2: Explode space in the code: $code = array('date', 'format="Y/m/d"', 'type="jalali"') Step 3: Get shortcode name(offset 0 of $code) and get difference($code excluded offset 0): $name = 'date' $attr = array('format="Y/m/d"', 'type="jalali"') Step 4: Now I have attributes and code name. But the problem is if put space in attributes value it will explode that too: [date format="j M, Y" type="jalali"] => $code = array('date', 'format="j', 'M,', ' Y"', 'type="jalali"'); 现在我该如何解决这个问题或使用正则表达式或其他东西获取名称和属性? 您可以使用正则表达式尝试此操作 $code = '[date format="j M, Y" type="jalali"]'; preg_match_all("/\[([^\]]*)\]/", $code, $matches); $codes = []; foreach($matches[1] as $match) { // Normalize quotes into double quotes $match = str_replace("'",'"',$match); // Split by space but ignore inside of double quotes preg_match_all('/(?:[^\s+"]+|"[^"]*")+/',$match,$tokens); $parsed = []; $prevToken = ''; foreach($tokens[0] as $token) { if(strpos($token,'=') !== false) { if($prevToken !== '') { $parts = explode('=',$token); $parsed[$prevToken][$parts[0]] = trim($parts[1],'"\''); } } else { $parsed[$token] = []; $prevToken = $token; } } $codes[] = $parsed; } var_dump($codes); 结果: array(1) { [0]=> array(1) { ["date"]=> array(2) { ["format"]=> string(6) "j M, Y" ["type"]=> string(6) "jalali" } } } 使用带有 \G(继续元字符)的正则表达式,您可以解析标签的重要部分,然后循环匹配以构造二维数组。 代码:(演示) $text = <<<TEXT Some text [date format="j M, Y" type="jalali"] containing a date tag. TEXT; preg_match_all( '/ (?| #use "branch reset" to ensure all attributes are in column one of result \[ #match literal left brace (date) #match the literal tag name (?=[^\]]*]) #validate that substring is eventually followed by a right brace | #OR \G(?!^) #continue matching from last match, but not from start of string (?: #encapsulate next OR expression ] #match ending delimiter of bbtag | #OR \h([a-z\-]+)="([^"]*)" #match space, capture attribute name, match =", capture value, match " ) #close non-capturing group ) #close branch reset group /x', $text, $m, PREG_SET_ORDER ); $result = []; foreach ($m as $i => $row) { if (!$i) { $parent = $row[1]; } elseif (isset($row[1])) { $result[$parent][$row[1]] = $row[2]; } } var_export($result); 如果您要调用自定义函数并用动态文本替换标签占位符,那么您需要使用 preg_replace_callback() 解析整个标签,并将其分解为回调中的部分。我将演示如何使第一个键值对成为强制,第二个键值对成为可选 代码:(演示) function replaceTag($m) { $result[$m[1]][$m[2]] = $m[3]; if (isset($m[4], $m[5])) { $result[$m[1]][$m[4]] = $m[5]; } return json_encode($result); // https://stackoverflow.com/q/30377948/2943403 } $text = <<<TEXT Some text [date format="j M, Y" type="jalali"] containing a date tag. TEXT; echo preg_replace_callback( '/\[(date) ([a-z\-]+)="([^"]*)"(?: ([a-z\-]+)="([^"]*)")?]/', 'replaceTag', $text ); // Some text {"date":{"format":"j M, Y","type":"jalali"}} containing a date tag.

回答 2 投票 0

自定义 Pandoc 编写器/过滤器:将 BulletList 输出为 BBCode

我想转换这个降价列表(list.md): - 欧洲 - 德国 - 柏林 - 汉堡 到以下输出(BBCode): [列表] [*]欧洲 [列表] [*]德国 [列表] ...

回答 1 投票 0

ASP Noob 需要 vimeo/youtube 支持

我的任务是更新 ASP 系统以支持 vimeo/youtube 嵌入。 有问题的代码文件已声明: <% @LANGUAGE = VBScript %> 这个脚本包含几个函数...

回答 1 投票 0

用于解析标签的简单 JavaScript 正则表达式

我有一个简单的正则表达式: \[引用\](.*?)\[\/引用\] 它将用 table、tr 和 td 替换 [quote]。 (以及 /td、/tr 和 /table 的 [/quote]) 它非常适合同一文件中的多个单独的引号...

回答 3 投票 0

BBCode 解析器到 HTML

我使用 BBCode 库来格式化一些 bbcode 文本。 我写下一个代码: 导入 bbcode 重新进口 # 安装简单的格式化程序。 解析器 = bbcode.Parser() parser.add_simple_formatter('p', '<...

回答 1 投票 0

删除字符串中 bbcode 标签之间的空格

我需要删除字符串中相邻 BBCode 标签之间的所有空格,而不影响 BBCode 文本中的空格。输入是这样的: *[ul] [li]列表项目 1[/li] [li]列出我...

回答 2 投票 0

是否可以使用 HTML 标记来“强制”BBCode 嵌入具有特定尺寸的图像?

我花了很多时间在面向教育/学习的社区中提问和回答问题。最近的论坛使用 Markdown 但仍然有相当多的论坛......

回答 0 投票 0

删除嵌套引号

我有这段文字,我试图删除所有内部引号,而只保留一个引号级别。引号内的文本包含任何字符,甚至包括换行符等。使用正则表达式或...

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.