※ ChatGPTを利用し、要約された質問です(原文:str_replaceがうまくいきません)
str_replaceがうまくいかない!CSSセレクタの除去方法は?
このQ&Aのポイント
Dust-Me Selectorsを使用して、セレクタを探してみましたが、930件も見つかってしまいました。
サイトのCSSはstyle.cssにまとめられていますが、使われていないセレクタのリストはused-doctype.txtにあります。
PHPのコードを実行してみましたが、str_replaceがうまく機能していません。class1やclass3などが削除されません。解決策を教えてください。
Dust-Me Selectorsを使い、使用していないCSSセレクタを探したところ、930件ほど出てきました。
私のサイトはCSSはstyle.css一つにまとめています。doctype.cssの内部は
.class1,.class2{…}.class1,.class3,.class4{…},…
の形で一行のみ記述されています。
使われていないCSSセレクタは、used-doctype.txt中に、
.class1
.class3
.class4
:
:
の形で記述されています。.今、次のPHPコードを実行しようと思います。
<?php
$css=file_get_contents("./doctype.css");
$handle = fopen( "./used-doctype.txt", "r" );
$null="";
while ($array = fgetcsv( $handle )) {
//echo $array[0];
str_replace($array[0],$null, $css);
}
echo $css;
?>
しかしechoされた結果では、class1、class3、class4がいずれも確認されます。
while中での$array[0]のechoは成功していますので、str_replaceがおかしいと思うのですが原因が判りません。
どこを変更すれば、$cssからclass1、class3などを除去できるでしょうか。
どなたかご教示のほど、どうかよろしくお願いいたします。
お礼
肝心なところを見落としていましたorz うまくいきました。ありがとうございました。