PHPスクリプトに含まれるファイルのすべての出現のリストを取得しようとしています。
これを含むファイル全体を読んでいます:
<?php
echo 'Hello there';
include 'some_functions.php';
echo 'Trying to find some includes.';
include 'include_me.php';
echo 'Testtest.';
?>
次に、そのファイルに対して次のコードを実行します。
if (preg_match_all ("/(include.*?;){1}/is", $this->file_contents, $matches))
{
print_r($matches);
}
この一致を実行すると、期待される結果が得られます...これは 2 つのインクルード セクションですが、まったく同じことの繰り返し、またはインクルード ステートメントのランダムなチャンクも得られます。出力の例を次に示します。
Array (
[0] => Array ( [0] => include 'some_functions.php'; [1] => include 'include_me.php'; )
[1] => Array ( [0] => include 'some_functions.php'; [1] => include 'include_me.php'; ) )
ご覧のとおり、同じ結果が複数回ネストされた配列になっています。include ステートメントごとに配列内に 1 つの項目が必要であり、繰り返しやネストされた配列は必要ありません。
これらの正規表現に問題があるため、いくつかのガイダンスが必要です。お時間をいただきありがとうございます。