0

何千もの Web ページの巨大なコードベースを以前のバージョンから PHP 5.3 にアップグレードしています。短いタグ (<%、<\?= など) の使用をやめ、php.ini でそれらを無効にし、コード内で見つけて置き換えるための合理的な努力をしました。

ただし、誰かが または 短いタグを使用して何かを作成した場合、または一部のレガシー コードに見逃したものが残っている場合、Apache はステータス 200 の空白のドキュメントを返します。問題は、PHP がエラーをスローせず (明らかに、それらを解析していないため)、Apache もエラーであるとログに記録しないように見えることです。これにより、すべてのページを視覚的に検査せずにこれらを検出するという問題が生じます (単純なクローラーは、URL が返す 200 に満足しています)。

サイトがクロールされているときに短いタグにヒットしたときにApacheまたはPHPにエラーをスローさせる方法を知っている人はいますか?

4

1 に答える 1

1

PHP や Apache に短いタグを含むドキュメントに関連する何らかの警告を発行させる方法を実際に見つけることはできませんが、cron ジョブを設定して、サーバーの web フォルダーの下にあるすべてのファイルを検索し、たとえば、したがって、少なくとも短いタグが付いたファイルを指摘しただけです。

簡単な例: cron ジョブ

<?php

// run grep command for '<?' that don't have an immediately p
$found = shell_exec('grep -rn "<?[^p]" *');

if ($found!='') {
  // email or any other action...
}

?>
于 2012-05-12T18:18:38.800 に答える