從PHP的If-Else語句中提取值
P粉722409996
P粉722409996 2023-08-08 14:55:14
0
1
503
<p>Offer.php有200到300個if else語句。我的團隊領導希望獲得if else語句的值。我需要$_GET和=="value"的值。 </p> <p><strong>Offer.php :</strong></p> <pre class="brush:php;toolbar:false;"><?php if (isset($_GET['test']) && $_GET['test'] == "one") { include "hi.php"; } elseif (isset($_GET['demo']) && $_GET['demo'] == "two") { include "hello.php"; } elseif (isset($_GET['try']) && $_GET['try'] == "three") { include "bye.php"; } else { include "default.php"; } ?></pre> <p><strong>Value.php</strong> (試試看) :</p> <pre class="brush:php;toolbar:false;"><?php $code = file_get_contents("offer.php"); // Regular expression to match $_GET variables and their corresponding values $pattern = '/isset($_GET['([^'] )'])s*&&s*$_GET['1']s*==s*"([^"] )"/ '; preg_match_all($pattern, $code, $matches); $getValues = []; $values = []; foreach ($matches as $match) { $getValues[] = $match[1]; $values[] = $match[3]; } print_r($variables); print_r($values); ?></pre> <p><strong>Expect output :</strong></p> <pre class="brush:php;toolbar:false;">Array ( [0] => test [1] => demo [2] => try ) Array ( [0] => one [1] => two [2] => three )</pre> <p><strong>問題:我得到了空數組的輸出。 </strong></p>
P粉722409996
P粉722409996

全部回覆(1)
P粉395056196

你試試這樣

<?php

$code = file_get_contents("offer.php");

$pattern_get = '/isset\($_GET\[\'(.*?)\'\]/';
$pattern_value = '/$_GET\[\'(.*?)\'\]\s*==\s*"(.*?)"/';

preg_match_all($pattern_get, $code, $matches_get, PREG_SET_ORDER);
preg_match_all($pattern_value, $code, $matches_value, PREG_SET_ORDER);

$getValues = [];
$values = [];

foreach ($matches_get as $match) {
    $getValues[] = $match[1];
}

foreach ($matches_value as $match) {
    $values[] = $match[2];
}

print_r($getValues);
print_r($values);

// Creating separate URLs for each $_GET variable and value
for ($i = 0; $i < count($getValues); $i++) {
    $url = 'example.com/?' . $getValues[$i] . '=' . $values[$i];
    echo $url . '<br>' . PHP_EOL;
}

?>
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板