-2

尽管此问题与 Time.ly 称为 All in One Event Calender 的特定 Wordpress 插件有关,但它也可能是与 PHP 相关的一般问题。

我正在尝试修改主题以使用在 ai1ec 后端选择的事件颜色,并希望生成一个简单的 HTML 颜色代码 - 即“#f2f2f2”

该插件本身具有大量功能和 php 短代码,可以从每个事件中提取大量信息,例如下面列出的事件。

<?php echo $event->get_category_text_color(); ?>这将打印style="color: #f2a011;"

也可以更改为打印style="background-color: #f2a011;"配合使用$event->get_category_bg_color();

现在问题的真正实质

我想要做的就是得到那个 HTML 颜色,这样我也可以将它编码成按钮和其他视觉元素。我浏览了博客和代码,试图找到一些无济于事的东西。

我想知道的是,您是否可以编写某种过滤器来仅获取"#f2f2f2"引号内的信息。我知道它不被称为过滤器,因为搜索 php 过滤器会返回完全不同的信息 - 我是一名自学成才的 PHP 程序员,因此搜索很多我不知道的术语可能非常困难!

4

2 回答 2

0

您可以substr()像这样使用该功能:

echo substr($event->get_category_text_color(),14,-2);

在示例中,将返回#f2f2f2.

于 2014-06-20T15:51:23.353 回答
0

如上所述, substr 将是一个很好的解决方案,但它不能解决颜色代码以这种格式表示的情况:

#FFF;

代替:

#FFFFFF;

因此,这个正则表达式应该可以很好地完成这项工作:

'/?=#(.*(?=;)))/'

例子:

证明

$matches = array();
preg_match('/?=#(.*(?=;)))/', $event->get_category_text_color(), $matches);
$colorCode = "#{$matches[0]};";
于 2014-06-23T15:45:17.443 回答