1

在提出以下问题并思考之后,我相信这个正则表达式就是我所需要的。不知道该怎么做。

![anycharacter](anycharacter)[anycharacter](anycharacter)

-原始标题和消息-

PHP Markdown Extra - 不允许图像

现在我只是将 css 设置为在允许降价的区域隐藏图像。我想这样做,如果使用降价图像语法,图像将不会显示。我实际上更希望它只是变成一个链接,但简单地禁止它就可以了。我猜想检查一个正则表达式![text](imagelink)会起作用,但我对正则表达式不够精通,无法做到这一点,也不知道这是否是最佳选择。

-edit- 现在我正在做一个 preg_replace , preg_replace('/!\[/', "[", $text );但我仍然认为这不是最好的解决方案,因为它会删除 ! 即使有时可能还有另一个原因![出现。我想我只需要知道如何![anycharacter](anycharacter)替换[anycharacter](anycharacter)

4

1 回答 1

2

这实际上不是我的代码,它来自http://core.svn.wordpress.org/tags/1.5.1.3/wp-content/plugins/markdown.php但您可以使用它在 _DoImages_reference_callback($matches ) 和 _DoImages_inline_callback($matches) 函数,但这只是一个要点。

$text = preg_replace_callback('{
    (               # wrap whole match in $1
      !\[
        (.*?)       # alt text = $2
      \]

      [ ]?              # one optional space
      (?:\n[ ]*)?       # one optional newline followed by spaces

      \[
        (.*?)       # id = $3
      \]

    )
    }xs', 
    '_DoImages_reference_callback', $text);

#
# Next, handle inline images:  ![alt text](url "optional title")
# Don't forget: encode * and _

$text = preg_replace_callback("{
    (               # wrap whole match in $1
      !\\[
        (.*?)       # alt text = $2
      \\]
      \\(           # literal paren
        [ \\t]*
        <?(\S+?)>?  # src url = $3
        [ \\t]*
        (           # $4
          (['\"])   # quote char = $5
          (.*?)     # title = $6
          \\5       # matching quote
          [ \\t]*
        )?          # title is optional
      \\)
    )
    }xs",
    '_DoImages_inline_callback', $text);
于 2012-04-06T20:51:11.043 回答