用于在花式盒子 (PHP) 中打开图像的简码


Shortcode for making an image open in a fancybox (PHP)

我在自定义CMS上使用PHP创建简码时遇到了一个小问题。我已经在教程的帮助下在Wordpress中创建了简码,但我找不到有关如何创建可在Wordpress之外工作的短代码的教程。基本上,我正在使用一个插件,当单击图像时,它可以在花哨的框中全宽显示图像。以下是生成图像并使其在单击时能够在花哨框中打开的代码:

<a class="fancybox" title="2009 Four Winns 318 Vista Tour" rel="gallery1" href="../../../../images/sampleboat/sam_0250.jpg"><img src="/wwwroot/userfiles/images/sam_0250.jpg" alt="" width="200" height="200" /></a>
我想

做的是,我想创建一个简码,我可以在其中放置指向图像的链接;像这样:

[专辑 src="../../../../图片/样本船/sam_0250.jpg"]

与此简码对应的函数会将链接插入到该代码的 href=" 和 src=" 标签中

<a class="fancybox" title="2009 Four Winns 318 Vista Tour" rel="gallery1" href="LINK FROM THE SHORTCODE"><img src="LINK FROM THE SHORTCODE" alt="" width="200" height="200" /></a>

因此,我试图实现的功能是我希望能够在文本编辑器中输入此简码:

[专辑 src="../../../../图片/样本船/sam_0250.jpg"]

我想在首页上回显的代码,对应于页面内添加的简码,是这样的:

<a class="fancybox" title="2009 Four Winns 318 Vista Tour" rel="gallery1" href="LINK FROM THE SHORTCODE"><img src="LINK FROM THE SHORTCODE" alt="" width="200" height="200" /></a>

如果有任何解决方案可以实现上述功能,请告诉我。谢谢。

您正在寻找的花哨术语是正则表达式。这些可用于检查字符串内的模式,也可以用其他内容替换(部分)一个字符串。

对于您的示例,这样的事情将起作用:

$result =  preg_replace("/'[(.+)']/", '<a class="fancybox" title="2009 Four Winns 318 Vista Tour" rel="gallery1" href="$1"><img src="$1" alt="" width="200" height="200" /></a>', $input);
echo $result;

在这种情况下,"[something]"将替换为您在上面指定的 html 代码。 $1 将复制在正则表达式的第一对 () 括号之间找到的部分,因此在我的示例示例中,用:"某物"。

阅读更多 关于 preg_replace

我建议阅读正则表达式,因为很有可能使用它们。但是,它们有时可能会非常混乱,因为它们有自己的压缩语法。