如何使用PHP从css文件中提取图标类名及其内容值


How do I extract an icon class name and its content value from a css file using PHP?

我有一个自定义图标的CSS文件,我想从中提取类名和内容值。

CSS文件的大部分行如下:

.my-icon-bus:before { content: ''e820'; } /* '' */
.my-icon-tools:before { content: ''e821'; } /* '' */
.my-icon-science:before { content: ''e822'; } /* '' */
.my-icon-quotes:before { content: ''e823'; } /* '' */
.my-icon-printer:before { content: ''e827'; } /* '' */

我在regex101.com中尝试了下面的regex模式,它运行得很好——在这里可以看到它的工作原理,返回类名及其内容代码,但当我尝试使用preg_match_all从PHP中执行同样的操作时,它与任何内容都不匹配。

'.(my-icon-'w+):before's*{'s*content:'s*(["']'''w+["']);

这是我的PHP代码,希望你们中的一位RegEx大师能帮我解决这个问题。

$css = file_get_contents( '/path/to/my/css/file/my-icon.css' );
preg_match_all( '/'.(my-icon-'w+):before's*{'s*content:'s*(["'']'''w+["'']);/s', $css, $matches );
var_dump($matches);

如果有人想知道,变量$css确实包含css文件内容。

提前感谢您提供的任何帮助。

/''.(my-icon-''w+):before''s*{''s*content:''s*(['"']''''''w+['"']);/s

注意字符串/''.的开头(双反斜杠),它工作得很好。