wordpress に新しいテーマを採用し、構造が良く分からなかったので、
grep で content-area という文字列を含むファイル名一覧を得ようとした。
echo shell_exec("grep -r content-area wp-content/themes/xxx/*');
?>
ところがレンタルサーバーの制限で shell_exec が実行できなかった。
そこで、自分で関数を作ることにした。
この関数は、
$t に探したい文字列
$d に探したいファイルを含むディレクトリ
を設定し実行すると、
$d のディレクトリやそのサブディレクトリ内のファイルをサーチし、
$t の文字列を含むファイルのパスを全て表示する。
function SearchText( $t , $d ){
foreach( scandir( $d ) as $d0 ){
if(( $d0 != "." )and( $d0 != ".." )){
$d1 = $d."/".$d0 ;
if( is_dir( $d1 ) ){
SearchText( $t , $d1 );
}else{
$w1 = file_get_contents( $d1 );
if( $w1 !== FALSE ){
$w2 = strpos( $w1 , $t );
if( $w2 !== FALSE ){
echo "${d1}
\n" ;
}
}
}
}
}
}
?>
以下のコマンドを実行すると
$t = "content-area" ;
$d = "wp-content/themes/xxx" ;
SearchText( $t , $d );
?>
以下のようにファイル名一覧が表示される。
wp-content/themes/xxx/index.php
wp-content/themes/xxx/page.php
wp-content/themes/xxx/single.php