我想将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-button
的class
列表匹配,并将类列表条目替换为wp-block-button is-icon-pdf
。
一个好的沙箱网站是http::phpylivergex.com#tab preg-replace,这个例子还有一些测试可以在这里找到:
测试沙盒