【发布时间】:2015-04-07 20:23:46
【问题描述】:
我目前正在使用自制的内容管理系统从头开始开发一个网站项目。以前的网站在 SPIP(法国 CMS)下运行,我正在努力从新平台上的 SPIP 数据库中导入旧内容。
一切进展顺利,我收到了所有文章,设法编写了一个新的 URL 重写引擎,使旧的重写链接保持原样,..
我遇到的问题是文章的 TEXT 字段包含特殊标签。我确实使用 str_replace 将基本的类似 bbcode 的标签转换为 html,但是在尝试在更高级的标签上使用 preg_replace 时遇到了一些麻烦。
这是标签的外观。它包含在 $texte var 中的纯文本之间:
<doc30292|right>
如您所见,语法类似于<docID|alignment>
我需要将所有看起来像这样的标签替换为
display_doc($id,$alignment)
我确实设法使用 preg_match 获取 ID 或对齐方式,但我确实想使用 preg_replace 并且我不知道如何执行此操作。 PCRE 不是我的强项...
有什么帮助吗?
$texte=nl2br($texte);
$texte=preg_replace('#(<br */?>\s*)+#i', '<br /><br/>', $texte);
// SPIP Intertitre
$texte=str_replace("{{{","<h2>",$texte);
$texte=str_replace("}}}","</h2>",$texte);
// SPIP Gras
$texte=str_replace("{{","<b>",$texte);
$texte=str_replace("}}","</b>",$texte);
// SPIP Italic
$texte=str_replace("{","<i>",$texte);
$texte=str_replace("}","</i>",$texte);
preg_match('/<doc(.*?)\|/', $texte, $match);
var_dump($match);
echo $match[1];
【问题讨论】:
-
好吧,发布你的代码,我们当然可以帮助......
-
完成 :) 感谢您的帮助