PHP插入字符串问题



我想将CSS类"is icon pdf"添加到PHP字符串中。

  • 我正在动态修改WordPress的gutenberg块
$before1 = '<div class="wp-block-button"><a class="wp-block-button__link">button</a></div>';
$before2 = '<div class="wp-block-button is-style-button-large"><a class="wp-block-button__link">button</a></div>';
$before3 = '<div class="wp-block-button is-style-button-large has-custom-width"><a class="wp-block-button__link">button</a></div>';

我想要的结果。我不介意";是图标pdf";。例如,它可以放在样式按钮后面。

$after1 = '<div class="wp-block-button is-icon-pdf"><a class="wp-block-button__link">button</a></div>';
$after2 = '<div class="wp-block-button is-icon-pdf is-style-button-large"><a class="wp-block-button__link">button</a></div>';
$after3 = '<div class="wp-block-button is-icon-pdf is-style-button-large has-custom-width"><a class="wp-block-button__link">button</a></div>';

我尝试了什么。

str_replace( 'wp-block-button ', 'wp-block-button is-icon-pdf ', $before1 );
str_replace( 'wp-block-button ', 'wp-block-button is-icon-pdf ', $before2 );
str_replace( 'wp-block-button ', 'wp-block-button is-icon-pdf ', $before3 );

以下是我得到的结果。

$after1 = '<div class="wp-block-button is-icon-pdf"><a class="wp-block-button is-icon-pdf__link">button</a></div>';
$after1 = '<div class="wp-block-button is-icon-pdf is-style-button-large"><a class="wp-block-button is-icon-pdf__link">button</a></div>';
$after1 = '<div class="wp-block-button is-icon-pdf is-style-button-large has-custom-width"><a class="wp-block-button is-icon-pdf__link">button</a></div>';

一个类=";wp-block-button\ulink";部分应保持不变。希望有人帮我。

这可能只是您的一个起点,因为正则表达式可能会根据您的数据进行微调。这使用preg_replace:

$after = preg_replace('/(<div.*?class=".*?(?<=[ "])wp-block-button(?=[ "]))(.*?")/', '$1 is-icon-pdf $2', $before);

正则表达式指定:

将所有div元素与包括wp-block-buttonclass列表匹配,并将类列表条目替换为wp-block-button is-icon-pdf

一个好的沙箱网站是http::phpylivergex.com#tab preg-replace,这个例子还有一些测试可以在这里找到:

测试沙盒

最新更新