mirror of
https://github.com/php/web-php.git
synced 2026-03-23 23:02:13 +01:00
Enhancement: Include *.inc files (with exceptions)
Closes GH-662.
This commit is contained in:
@@ -8,7 +8,11 @@ $finder = $config->getFinder()
|
||||
->ignoreDotFiles(false)
|
||||
->in(__DIR__)
|
||||
->exclude('manual/en/')
|
||||
->name('*.inc')
|
||||
->name(__FILE__)
|
||||
->notPath('include/last_updated.inc')
|
||||
->notPath('include/pregen-confs.inc')
|
||||
->notPath('include/pregen-news.inc')
|
||||
->notPath('tests/run-tests.php');
|
||||
|
||||
$config->setRules([
|
||||
|
||||
@@ -10,32 +10,32 @@ include_once __DIR__ . '/version.inc';
|
||||
* - security: the end of security support (usually release + 3 years).
|
||||
*/
|
||||
$BRANCHES = array(
|
||||
/* 3.0 is here because version_compare() can't handle the only version in
|
||||
* $OLDRELEASES, and it saves another special case in
|
||||
* get_branch_security_eol_date(). */
|
||||
'3.0' => array(
|
||||
'security' => '2000-10-20',
|
||||
),
|
||||
'5.3' => array(
|
||||
'stable' => '2013-07-11',
|
||||
'security' => '2014-08-14',
|
||||
),
|
||||
'5.4' => array(
|
||||
'stable' => '2014-09-14',
|
||||
'security' => '2015-09-03',
|
||||
),
|
||||
'5.5' => array(
|
||||
'stable' => '2015-07-10',
|
||||
'security' => '2016-07-21',
|
||||
),
|
||||
'5.6' => array(
|
||||
'stable' => '2017-01-19',
|
||||
'security' => '2018-12-31',
|
||||
),
|
||||
'7.0' => array(
|
||||
'stable' => '2018-01-04',
|
||||
'security' => '2019-01-10',
|
||||
),
|
||||
/* 3.0 is here because version_compare() can't handle the only version in
|
||||
* $OLDRELEASES, and it saves another special case in
|
||||
* get_branch_security_eol_date(). */
|
||||
'3.0' => array(
|
||||
'security' => '2000-10-20',
|
||||
),
|
||||
'5.3' => array(
|
||||
'stable' => '2013-07-11',
|
||||
'security' => '2014-08-14',
|
||||
),
|
||||
'5.4' => array(
|
||||
'stable' => '2014-09-14',
|
||||
'security' => '2015-09-03',
|
||||
),
|
||||
'5.5' => array(
|
||||
'stable' => '2015-07-10',
|
||||
'security' => '2016-07-21',
|
||||
),
|
||||
'5.6' => array(
|
||||
'stable' => '2017-01-19',
|
||||
'security' => '2018-12-31',
|
||||
),
|
||||
'7.0' => array(
|
||||
'stable' => '2018-01-04',
|
||||
'security' => '2019-01-10',
|
||||
),
|
||||
);
|
||||
|
||||
/* Time to keep EOLed branches in the array returned by get_active_branches(),
|
||||
@@ -44,187 +44,187 @@ $BRANCHES = array(
|
||||
$KEEP_EOL = new DateInterval('P28D');
|
||||
|
||||
function format_interval($from, $to) {
|
||||
try {
|
||||
$from_obj = $from instanceof DateTime ? $from : new DateTime($from);
|
||||
$to_obj = $to instanceof DateTime ? $to : new DateTime($to);
|
||||
$diff = $to_obj->diff($from_obj);
|
||||
try {
|
||||
$from_obj = $from instanceof DateTime ? $from : new DateTime($from);
|
||||
$to_obj = $to instanceof DateTime ? $to : new DateTime($to);
|
||||
$diff = $to_obj->diff($from_obj);
|
||||
|
||||
$times = array();
|
||||
if ($diff->y) {
|
||||
$times[] = array($diff->y,'year');
|
||||
if ($diff->m) {
|
||||
$times[] = array($diff->m,'month');
|
||||
}
|
||||
} elseif ($diff->m) {
|
||||
$times[] = array($diff->m,'month');
|
||||
} elseif ($diff->d) {
|
||||
$times[] = array($diff->d,'day');
|
||||
} else {
|
||||
$eolPeriod = 'midnight';
|
||||
}
|
||||
if ($times) {
|
||||
$eolPeriod = implode(', ',
|
||||
array_map(
|
||||
function($t) {
|
||||
return "$t[0] $t[1]" .
|
||||
($t[0] != 1 ? 's' : '');
|
||||
},
|
||||
$times
|
||||
)
|
||||
);
|
||||
$times = array();
|
||||
if ($diff->y) {
|
||||
$times[] = array($diff->y, 'year');
|
||||
if ($diff->m) {
|
||||
$times[] = array($diff->m, 'month');
|
||||
}
|
||||
} elseif ($diff->m) {
|
||||
$times[] = array($diff->m, 'month');
|
||||
} elseif ($diff->d) {
|
||||
$times[] = array($diff->d, 'day');
|
||||
} else {
|
||||
$eolPeriod = 'midnight';
|
||||
}
|
||||
if ($times) {
|
||||
$eolPeriod = implode(', ',
|
||||
array_map(
|
||||
function ($t) {
|
||||
return "$t[0] $t[1]" .
|
||||
($t[0] != 1 ? 's' : '');
|
||||
},
|
||||
$times
|
||||
)
|
||||
);
|
||||
|
||||
if ($diff->invert) {
|
||||
$eolPeriod = "$eolPeriod ago";
|
||||
} else {
|
||||
$eolPeriod = "in $eolPeriod";
|
||||
}
|
||||
}
|
||||
} catch(Exception $e) {
|
||||
$eolPeriod = 'unknown';
|
||||
}
|
||||
if ($diff->invert) {
|
||||
$eolPeriod = "$eolPeriod ago";
|
||||
} else {
|
||||
$eolPeriod = "in $eolPeriod";
|
||||
}
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$eolPeriod = 'unknown';
|
||||
}
|
||||
|
||||
return $eolPeriod;
|
||||
return $eolPeriod;
|
||||
}
|
||||
|
||||
function version_number_to_branch(string $version): ?string {
|
||||
$parts = explode('.', $version);
|
||||
if (count($parts) > 1) {
|
||||
return "$parts[0].$parts[1]";
|
||||
}
|
||||
$parts = explode('.', $version);
|
||||
if (count($parts) > 1) {
|
||||
return "$parts[0].$parts[1]";
|
||||
}
|
||||
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
function get_all_branches() {
|
||||
$branches = array();
|
||||
$branches = array();
|
||||
|
||||
foreach ($GLOBALS['OLDRELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
if (!isset($branches[$major][$branch]) || version_compare($version, $branches[$major][$branch]['version'], 'gt')) {
|
||||
$branches[$major][$branch] = $release;
|
||||
$branches[$major][$branch]['version'] = $version;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($GLOBALS['OLDRELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
if (!isset($branches[$major][$branch]) || version_compare($version, $branches[$major][$branch]['version'], 'gt')) {
|
||||
$branches[$major][$branch] = $release;
|
||||
$branches[$major][$branch]['version'] = $version;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($GLOBALS['RELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
if (!isset($branches[$major][$branch]) || version_compare($version, $branches[$major][$branch]['version'], 'gt')) {
|
||||
$branches[$major][$branch] = $release;
|
||||
$branches[$major][$branch]['version'] = $version;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach ($GLOBALS['RELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
if (!isset($branches[$major][$branch]) || version_compare($version, $branches[$major][$branch]['version'], 'gt')) {
|
||||
$branches[$major][$branch] = $release;
|
||||
$branches[$major][$branch]['version'] = $version;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
krsort($branches);
|
||||
foreach ($branches as &$branch) {
|
||||
krsort($branch);
|
||||
}
|
||||
krsort($branches);
|
||||
foreach ($branches as &$branch) {
|
||||
krsort($branch);
|
||||
}
|
||||
|
||||
return $branches;
|
||||
return $branches;
|
||||
}
|
||||
|
||||
function get_active_branches($include_recent_eols = true) {
|
||||
$branches = array();
|
||||
$now = new DateTime;
|
||||
$branches = array();
|
||||
$now = new DateTime;
|
||||
|
||||
foreach ($GLOBALS['RELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
$threshold = get_branch_security_eol_date($branch);
|
||||
if ($threshold === null) {
|
||||
// No EOL date available, assume it is ancient.
|
||||
continue;
|
||||
}
|
||||
if ($include_recent_eols) {
|
||||
$threshold->add($GLOBALS['KEEP_EOL']);
|
||||
}
|
||||
if ($now < $threshold) {
|
||||
$branches[$major][$branch] = $release;
|
||||
$branches[$major][$branch]['version'] = $version;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($branches[$major])) {
|
||||
ksort($branches[$major]);
|
||||
}
|
||||
}
|
||||
foreach ($GLOBALS['RELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
$threshold = get_branch_security_eol_date($branch);
|
||||
if ($threshold === null) {
|
||||
// No EOL date available, assume it is ancient.
|
||||
continue;
|
||||
}
|
||||
if ($include_recent_eols) {
|
||||
$threshold->add($GLOBALS['KEEP_EOL']);
|
||||
}
|
||||
if ($now < $threshold) {
|
||||
$branches[$major][$branch] = $release;
|
||||
$branches[$major][$branch]['version'] = $version;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($branches[$major])) {
|
||||
ksort($branches[$major]);
|
||||
}
|
||||
}
|
||||
|
||||
ksort($branches);
|
||||
return $branches;
|
||||
ksort($branches);
|
||||
return $branches;
|
||||
}
|
||||
|
||||
/* If you provide an array to $always_include, note that the version numbers
|
||||
* must be in $RELEASES _and_ must be the full version number, not the branch:
|
||||
* ie provide array('5.3.29'), not array('5.3'). */
|
||||
function get_eol_branches($always_include = null) {
|
||||
$always_include = $always_include ?: array();
|
||||
$branches = array();
|
||||
$now = new DateTime;
|
||||
$always_include = $always_include ?: array();
|
||||
$branches = array();
|
||||
$now = new DateTime;
|
||||
|
||||
// Gather the last release on each branch into a convenient array.
|
||||
foreach ($GLOBALS['OLDRELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
if (!isset($branches[$major][$branch]) || version_compare($version, $branches[$major][$branch]['version'], 'gt')) {
|
||||
$branches[$major][$branch] = array(
|
||||
'date' => strtotime($release['date']),
|
||||
'link' => "/releases#$version",
|
||||
'version' => $version,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Gather the last release on each branch into a convenient array.
|
||||
foreach ($GLOBALS['OLDRELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
if (!isset($branches[$major][$branch]) || version_compare($version, $branches[$major][$branch]['version'], 'gt')) {
|
||||
$branches[$major][$branch] = array(
|
||||
'date' => strtotime($release['date']),
|
||||
'link' => "/releases#$version",
|
||||
'version' => $version,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Exclude releases from active branches, where active is defined as "in
|
||||
* the $RELEASES array and not explicitly marked as EOL there". */
|
||||
foreach ($GLOBALS['RELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
if ($now < get_branch_security_eol_date($branch)) {
|
||||
/* This branch isn't EOL: remove it from our array. */
|
||||
if (isset($branches[$major][$branch])) {
|
||||
unset($branches[$major][$branch]);
|
||||
}
|
||||
} else {
|
||||
/* Add the release information to the EOL branches array, since it
|
||||
* should be newer than the information we got from $OLDRELEASES. */
|
||||
$always_include[] = $version;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Exclude releases from active branches, where active is defined as "in
|
||||
* the $RELEASES array and not explicitly marked as EOL there". */
|
||||
foreach ($GLOBALS['RELEASES'] as $major => $releases) {
|
||||
foreach ($releases as $version => $release) {
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
if ($now < get_branch_security_eol_date($branch)) {
|
||||
/* This branch isn't EOL: remove it from our array. */
|
||||
if (isset($branches[$major][$branch])) {
|
||||
unset($branches[$major][$branch]);
|
||||
}
|
||||
} else {
|
||||
/* Add the release information to the EOL branches array, since it
|
||||
* should be newer than the information we got from $OLDRELEASES. */
|
||||
$always_include[] = $version;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Include any release in the always_include list that's in $RELEASES.
|
||||
if ($always_include) {
|
||||
foreach ($always_include as $version) {
|
||||
$parts = explode('.', $version);
|
||||
$major = $parts[0];
|
||||
// Include any release in the always_include list that's in $RELEASES.
|
||||
if ($always_include) {
|
||||
foreach ($always_include as $version) {
|
||||
$parts = explode('.', $version);
|
||||
$major = $parts[0];
|
||||
|
||||
if (isset($GLOBALS['RELEASES'][$major][$version])) {
|
||||
$release = $GLOBALS['RELEASES'][$major][$version];
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
$branches[$major][$branch] = array(
|
||||
'date' => strtotime($release['source'][0]['date']),
|
||||
'link' => "/downloads#v$version",
|
||||
'version' => $version,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isset($GLOBALS['RELEASES'][$major][$version])) {
|
||||
$release = $GLOBALS['RELEASES'][$major][$version];
|
||||
if ($branch = version_number_to_branch($version)) {
|
||||
$branches[$major][$branch] = array(
|
||||
'date' => strtotime($release['source'][0]['date']),
|
||||
'link' => "/downloads#v$version",
|
||||
'version' => $version,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
krsort($branches);
|
||||
foreach ($branches as &$branch) {
|
||||
krsort($branch);
|
||||
}
|
||||
krsort($branches);
|
||||
foreach ($branches as &$branch) {
|
||||
krsort($branch);
|
||||
}
|
||||
|
||||
return $branches;
|
||||
return $branches;
|
||||
}
|
||||
|
||||
/* $branch is expected to have at least two components: MAJOR.MINOR or
|
||||
@@ -232,173 +232,173 @@ function get_eol_branches($always_include = null) {
|
||||
* return either null (if no release exists on the given branch), or the usual
|
||||
* version metadata from $RELEASES for a single release. */
|
||||
function get_initial_release($branch) {
|
||||
$branch = version_number_to_branch($branch);
|
||||
if (!$branch) {
|
||||
return null;
|
||||
}
|
||||
$major = substr($branch, 0, strpos($branch, '.'));
|
||||
$branch = version_number_to_branch($branch);
|
||||
if (!$branch) {
|
||||
return null;
|
||||
}
|
||||
$major = substr($branch, 0, strpos($branch, '.'));
|
||||
|
||||
if (isset($GLOBALS['OLDRELEASES'][$major]["$branch.0"])) {
|
||||
return $GLOBALS['OLDRELEASES'][$major]["$branch.0"];
|
||||
}
|
||||
if (isset($GLOBALS['OLDRELEASES'][$major]["$branch.0"])) {
|
||||
return $GLOBALS['OLDRELEASES'][$major]["$branch.0"];
|
||||
}
|
||||
|
||||
/* If there's only been one release on the branch, it won't be in
|
||||
* $OLDRELEASES yet, so let's check $RELEASES. */
|
||||
if (isset($GLOBALS['RELEASES'][$major]["$branch.0"])) {
|
||||
// Fake a date like we have on the oldreleases array.
|
||||
$release = $GLOBALS['RELEASES'][$major]["$branch.0"];
|
||||
$release['date'] = $release['source'][0]['date'];
|
||||
return $release;
|
||||
}
|
||||
/* If there's only been one release on the branch, it won't be in
|
||||
* $OLDRELEASES yet, so let's check $RELEASES. */
|
||||
if (isset($GLOBALS['RELEASES'][$major]["$branch.0"])) {
|
||||
// Fake a date like we have on the oldreleases array.
|
||||
$release = $GLOBALS['RELEASES'][$major]["$branch.0"];
|
||||
$release['date'] = $release['source'][0]['date'];
|
||||
return $release;
|
||||
}
|
||||
|
||||
// Shrug.
|
||||
return null;
|
||||
// Shrug.
|
||||
return null;
|
||||
}
|
||||
|
||||
function get_final_release($branch) {
|
||||
$branch = version_number_to_branch($branch);
|
||||
if (!$branch) {
|
||||
return null;
|
||||
}
|
||||
$major = substr($branch, 0, strpos($branch, '.'));
|
||||
$branch = version_number_to_branch($branch);
|
||||
if (!$branch) {
|
||||
return null;
|
||||
}
|
||||
$major = substr($branch, 0, strpos($branch, '.'));
|
||||
|
||||
$last = "$branch.0";
|
||||
foreach ($GLOBALS['OLDRELEASES'][$major] as $version => $release) {
|
||||
if (version_number_to_branch($version) == $branch && version_compare($version, $last, '>')) {
|
||||
$last = $version;
|
||||
}
|
||||
}
|
||||
$last = "$branch.0";
|
||||
foreach ($GLOBALS['OLDRELEASES'][$major] as $version => $release) {
|
||||
if (version_number_to_branch($version) == $branch && version_compare($version, $last, '>')) {
|
||||
$last = $version;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($GLOBALS['OLDRELEASES'][$major][$last])) {
|
||||
return $GLOBALS['OLDRELEASES'][$major][$last];
|
||||
}
|
||||
if (isset($GLOBALS['OLDRELEASES'][$major][$last])) {
|
||||
return $GLOBALS['OLDRELEASES'][$major][$last];
|
||||
}
|
||||
|
||||
/* If there's only been one release on the branch, it won't be in
|
||||
* $OLDRELEASES yet, so let's check $RELEASES. */
|
||||
if (isset($GLOBALS['RELEASES'][$major][$last])) {
|
||||
// Fake a date like we have on the oldreleases array.
|
||||
$release = $GLOBALS['RELEASES'][$major][$last];
|
||||
$release['date'] = $release['source'][0]['date'];
|
||||
return $release;
|
||||
}
|
||||
/* If there's only been one release on the branch, it won't be in
|
||||
* $OLDRELEASES yet, so let's check $RELEASES. */
|
||||
if (isset($GLOBALS['RELEASES'][$major][$last])) {
|
||||
// Fake a date like we have on the oldreleases array.
|
||||
$release = $GLOBALS['RELEASES'][$major][$last];
|
||||
$release['date'] = $release['source'][0]['date'];
|
||||
return $release;
|
||||
}
|
||||
|
||||
// Shrug.
|
||||
return null;
|
||||
// Shrug.
|
||||
return null;
|
||||
}
|
||||
|
||||
function get_branch_bug_eol_date($branch) {
|
||||
if (isset($GLOBALS['BRANCHES'][$branch]['stable'])) {
|
||||
return new DateTime($GLOBALS['BRANCHES'][$branch]['stable']);
|
||||
}
|
||||
if (isset($GLOBALS['BRANCHES'][$branch]['stable'])) {
|
||||
return new DateTime($GLOBALS['BRANCHES'][$branch]['stable']);
|
||||
}
|
||||
|
||||
$date = get_branch_release_date($branch);
|
||||
$date = get_branch_release_date($branch);
|
||||
|
||||
return $date ? $date->add(new DateInterval('P2Y')) : null;
|
||||
return $date ? $date->add(new DateInterval('P2Y')) : null;
|
||||
}
|
||||
|
||||
function get_branch_security_eol_date($branch) {
|
||||
if (isset($GLOBALS['BRANCHES'][$branch]['security'])) {
|
||||
return new DateTime($GLOBALS['BRANCHES'][$branch]['security']);
|
||||
}
|
||||
if (isset($GLOBALS['BRANCHES'][$branch]['security'])) {
|
||||
return new DateTime($GLOBALS['BRANCHES'][$branch]['security']);
|
||||
}
|
||||
|
||||
/* Versions before 5.3 are based solely on the final release date in
|
||||
* $OLDRELEASES. */
|
||||
if (version_compare($branch, '5.3', '<')) {
|
||||
$release = get_final_release($branch);
|
||||
/* Versions before 5.3 are based solely on the final release date in
|
||||
* $OLDRELEASES. */
|
||||
if (version_compare($branch, '5.3', '<')) {
|
||||
$release = get_final_release($branch);
|
||||
|
||||
return $release ? new DateTime($release['date']) : null;
|
||||
}
|
||||
return $release ? new DateTime($release['date']) : null;
|
||||
}
|
||||
|
||||
$date = get_branch_release_date($branch);
|
||||
return $date ? $date->add(new DateInterval('P3Y')) : null;
|
||||
$date = get_branch_release_date($branch);
|
||||
return $date ? $date->add(new DateInterval('P3Y')) : null;
|
||||
}
|
||||
|
||||
function get_branch_release_date($branch) {
|
||||
$initial = get_initial_release($branch);
|
||||
$initial = get_initial_release($branch);
|
||||
|
||||
return $initial ? new DateTime($initial['date']) : null;
|
||||
return $initial ? new DateTime($initial['date']) : null;
|
||||
}
|
||||
|
||||
function get_branch_support_state($branch) {
|
||||
$initial = get_branch_release_date($branch);
|
||||
$bug = get_branch_bug_eol_date($branch);
|
||||
$security = get_branch_security_eol_date($branch);
|
||||
$initial = get_branch_release_date($branch);
|
||||
$bug = get_branch_bug_eol_date($branch);
|
||||
$security = get_branch_security_eol_date($branch);
|
||||
|
||||
if ($initial && $bug && $security) {
|
||||
$now = new DateTime;
|
||||
if ($initial && $bug && $security) {
|
||||
$now = new DateTime;
|
||||
|
||||
if ($now >= $security) {
|
||||
return 'eol';
|
||||
}
|
||||
if ($now >= $security) {
|
||||
return 'eol';
|
||||
}
|
||||
|
||||
if ($now >= $bug) {
|
||||
return 'security';
|
||||
}
|
||||
if ($now >= $bug) {
|
||||
return 'security';
|
||||
}
|
||||
|
||||
if ($now >= $initial) {
|
||||
return 'stable';
|
||||
}
|
||||
if ($now >= $initial) {
|
||||
return 'stable';
|
||||
}
|
||||
|
||||
return 'future';
|
||||
}
|
||||
return 'future';
|
||||
}
|
||||
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
function compare_version(array $arrayA, string $versionB)
|
||||
{
|
||||
$arrayB = version_array($versionB, count($arrayA));
|
||||
$arrayB = version_array($versionB, count($arrayA));
|
||||
|
||||
foreach ($arrayA as $index => $componentA) {
|
||||
$componentA = $arrayA[$index];
|
||||
$componentB = $arrayB[$index];
|
||||
if ($componentA != $componentB) {
|
||||
return $componentA > $componentB ? 1 : -1;
|
||||
}
|
||||
}
|
||||
foreach ($arrayA as $index => $componentA) {
|
||||
$componentA = $arrayA[$index];
|
||||
$componentB = $arrayB[$index];
|
||||
if ($componentA != $componentB) {
|
||||
return $componentA > $componentB ? 1 : -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
function version_array(string $version, ?int $length = null)
|
||||
{
|
||||
$versionArray = array_map(
|
||||
'intval',
|
||||
explode('.', $version)
|
||||
);
|
||||
$versionArray = array_map(
|
||||
'intval',
|
||||
explode('.', $version)
|
||||
);
|
||||
|
||||
if (is_int($length)) {
|
||||
$versionArray = count($versionArray) < $length
|
||||
? array_pad($versionArray, $length, 0)
|
||||
: array_slice(
|
||||
$versionArray,
|
||||
0,
|
||||
$length
|
||||
);
|
||||
}
|
||||
if (is_int($length)) {
|
||||
$versionArray = count($versionArray) < $length
|
||||
? array_pad($versionArray, $length, 0)
|
||||
: array_slice(
|
||||
$versionArray,
|
||||
0,
|
||||
$length
|
||||
);
|
||||
}
|
||||
|
||||
return $versionArray;
|
||||
return $versionArray;
|
||||
}
|
||||
|
||||
function get_current_release_for_branch(int $major, ?int $minor): ?string {
|
||||
global $RELEASES, $OLDRELEASES;
|
||||
global $RELEASES, $OLDRELEASES;
|
||||
|
||||
$prefix = "{$major}.";
|
||||
if ($minor !== null) {
|
||||
$prefix .= "{$minor}.";
|
||||
}
|
||||
$prefix = "{$major}.";
|
||||
if ($minor !== null) {
|
||||
$prefix .= "{$minor}.";
|
||||
}
|
||||
|
||||
foreach (($RELEASES[$major] ?? []) as $version => $_) {
|
||||
if (!strncmp($prefix, $version, strlen($prefix))) {
|
||||
return $version;
|
||||
}
|
||||
}
|
||||
foreach (($RELEASES[$major] ?? []) as $version => $_) {
|
||||
if (!strncmp($prefix, $version, strlen($prefix))) {
|
||||
return $version;
|
||||
}
|
||||
}
|
||||
|
||||
foreach (($OLDRELEASES[$major] ?? []) as $version => $_) {
|
||||
if (!strncmp($prefix, $version, strlen($prefix))) {
|
||||
return $version;
|
||||
}
|
||||
}
|
||||
foreach (($OLDRELEASES[$major] ?? []) as $version => $_) {
|
||||
if (!strncmp($prefix, $version, strlen($prefix))) {
|
||||
return $version;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -35,36 +35,36 @@ function release_date($in) {
|
||||
}
|
||||
|
||||
function changelog_makelink(string $branch): string {
|
||||
return '<a href="#PHP_' . urlencode(strtr($branch, '.', '_')) . '">' . htmlentities($branch) . '</a>';
|
||||
return '<a href="#PHP_' . urlencode(strtr($branch, '.', '_')) . '">' . htmlentities($branch) . '</a>';
|
||||
}
|
||||
|
||||
function changelog_header(int $major_version, array $minor_versions): void {
|
||||
site_header("PHP {$major_version} ChangeLog", [
|
||||
'current' => 'docs',
|
||||
'css' => ['changelog.css'],
|
||||
'layout_span' => 12,
|
||||
]);
|
||||
echo "<h1>PHP {$major_version} ChangeLog</h1>\n";
|
||||
$glue = '';
|
||||
foreach($minor_versions as $branch) {
|
||||
echo $glue, changelog_makelink($branch);
|
||||
$glue = ' | ';
|
||||
}
|
||||
echo "\n";
|
||||
site_header("PHP {$major_version} ChangeLog", [
|
||||
'current' => 'docs',
|
||||
'css' => ['changelog.css'],
|
||||
'layout_span' => 12,
|
||||
]);
|
||||
echo "<h1>PHP {$major_version} ChangeLog</h1>\n";
|
||||
$glue = '';
|
||||
foreach ($minor_versions as $branch) {
|
||||
echo $glue, changelog_makelink($branch);
|
||||
$glue = ' | ';
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
function changelog_footer(int $current_major, array $minor_versions): void {
|
||||
$sidebar = "<div class=\"panel\">ChangeLogs<div class=\"body\"><ul>\n";
|
||||
foreach ([8, 7, 5, 4] as $major) {
|
||||
if ($major === $current_major) {
|
||||
$sidebar .= " <li><b>PHP {$major}.x</b>\n <ul>";
|
||||
foreach ($minor_versions as $branch) {
|
||||
$sidebar .= " <li>" . changelog_makelink($branch) . "</li>\n";
|
||||
}
|
||||
$sidebar .= " </ul></li>\n";
|
||||
} else {
|
||||
$sidebar .= " <li><a href=\"/ChangeLog-{$major}.php\">PHP {$major}.x</a></li>\n";
|
||||
}
|
||||
}
|
||||
site_footer(['sidebar' => "$sidebar</ul></div></div>"]);
|
||||
$sidebar = "<div class=\"panel\">ChangeLogs<div class=\"body\"><ul>\n";
|
||||
foreach ([8, 7, 5, 4] as $major) {
|
||||
if ($major === $current_major) {
|
||||
$sidebar .= " <li><b>PHP {$major}.x</b>\n <ul>";
|
||||
foreach ($minor_versions as $branch) {
|
||||
$sidebar .= " <li>" . changelog_makelink($branch) . "</li>\n";
|
||||
}
|
||||
$sidebar .= " </ul></li>\n";
|
||||
} else {
|
||||
$sidebar .= " <li><a href=\"/ChangeLog-{$major}.php\">PHP {$major}.x</a></li>\n";
|
||||
}
|
||||
}
|
||||
site_footer(['sidebar' => "$sidebar</ul></div></div>"]);
|
||||
}
|
||||
|
||||
@@ -1,235 +1,235 @@
|
||||
<?php
|
||||
return array(
|
||||
'AFG' => 'Afghanistan',
|
||||
'ALB' => 'Albania',
|
||||
'DZA' => 'Algeria',
|
||||
'ASM' => 'American Samoa',
|
||||
'AND' => 'Andorra',
|
||||
'AGO' => 'Angola',
|
||||
'AIA' => 'Anguilla',
|
||||
'ATG' => 'Antigua and Barbuda',
|
||||
'ARG' => 'Argentina',
|
||||
'ARM' => 'Armenia',
|
||||
'ABW' => 'Aruba',
|
||||
'AUS' => 'Australia',
|
||||
'AUT' => 'Austria',
|
||||
'AZE' => 'Azerbaijan',
|
||||
'BHS' => 'Bahamas',
|
||||
'BHR' => 'Bahrain',
|
||||
'BGD' => 'Bangladesh',
|
||||
'BRB' => 'Barbados',
|
||||
'BLR' => 'Belarus',
|
||||
'BEL' => 'Belgium',
|
||||
'BLZ' => 'Belize',
|
||||
'BEN' => 'Benin',
|
||||
'BMU' => 'Bermuda',
|
||||
'BTN' => 'Bhutan',
|
||||
'BOL' => 'Bolivia',
|
||||
'BIH' => 'Bosnia and Herzegovina',
|
||||
'BWA' => 'Botswana',
|
||||
'BRA' => 'Brazil',
|
||||
'VGB' => 'British Virgin Islands',
|
||||
'BRN' => 'Brunei Darussalam',
|
||||
'BGR' => 'Bulgaria',
|
||||
'BFA' => 'Burkina Faso',
|
||||
'BDI' => 'Burundi',
|
||||
'KHM' => 'Cambodia',
|
||||
'CMR' => 'Cameroon',
|
||||
'CAN' => 'Canada',
|
||||
'CPV' => 'Cape Verde',
|
||||
'CYM' => 'Cayman Islands',
|
||||
'CAF' => 'Central African Republic',
|
||||
'TCD' => 'Chad',
|
||||
'CHL' => 'Chile',
|
||||
'CHN' => 'China',
|
||||
'COL' => 'Colombia',
|
||||
'COM' => 'Comoros',
|
||||
'COG' => 'Congo',
|
||||
'COK' => 'Cook Islands',
|
||||
'CRI' => 'Costa Rica',
|
||||
'CIV' => 'Cote d\'Ivoire',
|
||||
'HRV' => 'Croatia',
|
||||
'CUB' => 'Cuba',
|
||||
'CYP' => 'Cyprus',
|
||||
'CZE' => 'Czech Republic',
|
||||
'PRK' => 'Democratic People\'s Republic of Korea',
|
||||
'COD' => 'Democratic Republic of the Congo',
|
||||
'DNK' => 'Denmark',
|
||||
'DJI' => 'Djibouti',
|
||||
'DMA' => 'Dominica',
|
||||
'DOM' => 'Dominican Republic',
|
||||
'ECU' => 'Ecuador',
|
||||
'EGY' => 'Egypt',
|
||||
'SLV' => 'El Salvador',
|
||||
'GNQ' => 'Equatorial Guinea',
|
||||
'ERI' => 'Eritrea',
|
||||
'EST' => 'Estonia',
|
||||
'ETH' => 'Ethiopia',
|
||||
'EUR' => 'Europe',
|
||||
'FRO' => 'Faeroe Islands',
|
||||
'FLK' => 'Falkland Islands (Malvinas)',
|
||||
'FJI' => 'Fiji',
|
||||
'FIN' => 'Finland',
|
||||
'FRA' => 'France',
|
||||
'GUF' => 'French Guiana',
|
||||
'PYF' => 'French Polynesia',
|
||||
'GAB' => 'Gabon',
|
||||
'GMB' => 'Gambia',
|
||||
'GEO' => 'Georgia',
|
||||
'DEU' => 'Germany',
|
||||
'GHA' => 'Ghana',
|
||||
'GIB' => 'Gibraltar',
|
||||
'GRC' => 'Greece',
|
||||
'GRL' => 'Greenland',
|
||||
'GRD' => 'Grenada',
|
||||
'GLP' => 'Guadeloupe',
|
||||
'GUM' => 'Guam',
|
||||
'GTM' => 'Guatemala',
|
||||
'GIN' => 'Guinea',
|
||||
'GNB' => 'Guinea-Bissau',
|
||||
'GUY' => 'Guyana',
|
||||
'HTI' => 'Haiti',
|
||||
'VAT' => 'Holy See',
|
||||
'HND' => 'Honduras',
|
||||
'HKG' => 'Hong Kong',
|
||||
'HUN' => 'Hungary',
|
||||
'ISL' => 'Iceland',
|
||||
'IND' => 'India',
|
||||
'IDN' => 'Indonesia',
|
||||
'IRN' => 'Iran',
|
||||
'IRQ' => 'Iraq',
|
||||
'IRL' => 'Ireland',
|
||||
'ISR' => 'Israel',
|
||||
'ITA' => 'Italy',
|
||||
'JAM' => 'Jamaica',
|
||||
'JPN' => 'Japan',
|
||||
'JOR' => 'Jordan',
|
||||
'KAZ' => 'Kazakhstan',
|
||||
'KEN' => 'Kenya',
|
||||
'KIR' => 'Kiribati',
|
||||
'KWT' => 'Kuwait',
|
||||
'KGZ' => 'Kyrgyzstan',
|
||||
'LAO' => 'Lao People\'s Democratic Republic',
|
||||
'LVA' => 'Latvia',
|
||||
'LBN' => 'Lebanon',
|
||||
'LSO' => 'Lesotho',
|
||||
'LBR' => 'Liberia',
|
||||
'LBY' => 'Libyan Arab Jamahiriya',
|
||||
'LIE' => 'Liechtenstein',
|
||||
'LTU' => 'Lithuania',
|
||||
'LUX' => 'Luxembourg',
|
||||
'MAC' => 'Macao Special Administrative Region of China',
|
||||
'MDG' => 'Madagascar',
|
||||
'MWI' => 'Malawi',
|
||||
'MYS' => 'Malaysia',
|
||||
'MDV' => 'Maldives',
|
||||
'MLI' => 'Mali',
|
||||
'MLT' => 'Malta',
|
||||
'MHL' => 'Marshall Islands',
|
||||
'MTQ' => 'Martinique',
|
||||
'MRT' => 'Mauritania',
|
||||
'MUS' => 'Mauritius',
|
||||
'MEX' => 'Mexico',
|
||||
'FSM' => 'Micronesia Federated States of,',
|
||||
'MCO' => 'Monaco',
|
||||
'MNG' => 'Mongolia',
|
||||
'MSR' => 'Montserrat',
|
||||
'MAR' => 'Morocco',
|
||||
'MOZ' => 'Mozambique',
|
||||
'MMR' => 'Myanmar',
|
||||
'NAM' => 'Namibia',
|
||||
'NRU' => 'Nauru',
|
||||
'NPL' => 'Nepal',
|
||||
'NLD' => 'Netherlands',
|
||||
'ANT' => 'Netherlands Antilles',
|
||||
'NCL' => 'New Caledonia',
|
||||
'NZL' => 'New Zealand',
|
||||
'NIC' => 'Nicaragua',
|
||||
'NER' => 'Niger',
|
||||
'NGA' => 'Nigeria',
|
||||
'NIU' => 'Niue',
|
||||
'NFK' => 'Norfolk Island',
|
||||
'MNP' => 'Northern Mariana Islands',
|
||||
'NOR' => 'Norway',
|
||||
'PSE' => 'Occupied Palestinian Territory',
|
||||
'OMN' => 'Oman',
|
||||
'PAK' => 'Pakistan',
|
||||
'PLW' => 'Palau',
|
||||
'PAN' => 'Panama',
|
||||
'PNG' => 'Papua New Guinea',
|
||||
'PRY' => 'Paraguay',
|
||||
'PER' => 'Peru',
|
||||
'PHL' => 'Philippines',
|
||||
'PCN' => 'Pitcairn',
|
||||
'POL' => 'Poland',
|
||||
'PRT' => 'Portugal',
|
||||
'PRI' => 'Puerto Rico',
|
||||
'QAT' => 'Qatar',
|
||||
'KOR' => 'Republic of Korea',
|
||||
'MDA' => 'Republic of Moldova',
|
||||
'REU' => 'Réunion',
|
||||
'ROU' => 'Romania',
|
||||
'RUS' => 'Russian Federation',
|
||||
'RWA' => 'Rwanda',
|
||||
'SHN' => 'Saint Helena',
|
||||
'KNA' => 'Saint Kitts and Nevis',
|
||||
'LCA' => 'Saint Lucia',
|
||||
'SPM' => 'Saint Pierre and Miquelon',
|
||||
'VCT' => 'Saint Vincent and the Grenadines',
|
||||
'WSM' => 'Samoa',
|
||||
'SMR' => 'San Marino',
|
||||
'STP' => 'Sao Tome and Principe',
|
||||
'SAU' => 'Saudi Arabia',
|
||||
'SEN' => 'Senegal',
|
||||
'SRB' => 'Serbia',
|
||||
'YUG' => 'Serbia and Montenegro',
|
||||
'SYC' => 'Seychelles',
|
||||
'SLE' => 'Sierra Leone',
|
||||
'SGP' => 'Singapore',
|
||||
'SVK' => 'Slovakia',
|
||||
'SVN' => 'Slovenia',
|
||||
'SLB' => 'Solomon Islands',
|
||||
'SOM' => 'Somalia',
|
||||
'ZAF' => 'South Africa',
|
||||
'ESP' => 'Spain',
|
||||
'LKA' => 'Sri Lanka',
|
||||
'SDN' => 'Sudan',
|
||||
'SUR' => 'Suriname',
|
||||
'SJM' => 'Svalbard and Jan Mayen Islands',
|
||||
'SWZ' => 'Swaziland',
|
||||
'SWE' => 'Sweden',
|
||||
'CHE' => 'Switzerland',
|
||||
'SYR' => 'Syrian Arab Republic',
|
||||
'TWN' => 'Taiwan',
|
||||
'TJK' => 'Tajikistan',
|
||||
'THA' => 'Thailand',
|
||||
'MKD' => 'The former Yugoslav Republic of Macedonia',
|
||||
'TLS' => 'Timor-Leste',
|
||||
'TGO' => 'Togo',
|
||||
'TKL' => 'Tokelau',
|
||||
'TON' => 'Tonga',
|
||||
'TTO' => 'Trinidad and Tobago',
|
||||
'TUN' => 'Tunisia',
|
||||
'TUR' => 'Turkey',
|
||||
'TKM' => 'Turkmenistan',
|
||||
'TCA' => 'Turks and Caicos Islands',
|
||||
'TUV' => 'Tuvalu',
|
||||
'UGA' => 'Uganda',
|
||||
'UKR' => 'Ukraine',
|
||||
'ARE' => 'United Arab Emirates',
|
||||
'GBR' => 'United Kingdom',
|
||||
'TZA' => 'United Republic of Tanzania',
|
||||
'USA' => 'United States',
|
||||
'VIR' => 'United States Virgin Islands',
|
||||
'XXX' => 'Unknown',
|
||||
'URY' => 'Uruguay',
|
||||
'UZB' => 'Uzbekistan',
|
||||
'VUT' => 'Vanuatu',
|
||||
'VEN' => 'Venezuela',
|
||||
'VNM' => 'Viet Nam',
|
||||
'WLF' => 'Wallis and Futuna Islands',
|
||||
'ESH' => 'Western Sahara',
|
||||
'YEM' => 'Yemen',
|
||||
'ZMB' => 'Zambia',
|
||||
'ZWE' => 'Zimbabwe',
|
||||
'AFG' => 'Afghanistan',
|
||||
'ALB' => 'Albania',
|
||||
'DZA' => 'Algeria',
|
||||
'ASM' => 'American Samoa',
|
||||
'AND' => 'Andorra',
|
||||
'AGO' => 'Angola',
|
||||
'AIA' => 'Anguilla',
|
||||
'ATG' => 'Antigua and Barbuda',
|
||||
'ARG' => 'Argentina',
|
||||
'ARM' => 'Armenia',
|
||||
'ABW' => 'Aruba',
|
||||
'AUS' => 'Australia',
|
||||
'AUT' => 'Austria',
|
||||
'AZE' => 'Azerbaijan',
|
||||
'BHS' => 'Bahamas',
|
||||
'BHR' => 'Bahrain',
|
||||
'BGD' => 'Bangladesh',
|
||||
'BRB' => 'Barbados',
|
||||
'BLR' => 'Belarus',
|
||||
'BEL' => 'Belgium',
|
||||
'BLZ' => 'Belize',
|
||||
'BEN' => 'Benin',
|
||||
'BMU' => 'Bermuda',
|
||||
'BTN' => 'Bhutan',
|
||||
'BOL' => 'Bolivia',
|
||||
'BIH' => 'Bosnia and Herzegovina',
|
||||
'BWA' => 'Botswana',
|
||||
'BRA' => 'Brazil',
|
||||
'VGB' => 'British Virgin Islands',
|
||||
'BRN' => 'Brunei Darussalam',
|
||||
'BGR' => 'Bulgaria',
|
||||
'BFA' => 'Burkina Faso',
|
||||
'BDI' => 'Burundi',
|
||||
'KHM' => 'Cambodia',
|
||||
'CMR' => 'Cameroon',
|
||||
'CAN' => 'Canada',
|
||||
'CPV' => 'Cape Verde',
|
||||
'CYM' => 'Cayman Islands',
|
||||
'CAF' => 'Central African Republic',
|
||||
'TCD' => 'Chad',
|
||||
'CHL' => 'Chile',
|
||||
'CHN' => 'China',
|
||||
'COL' => 'Colombia',
|
||||
'COM' => 'Comoros',
|
||||
'COG' => 'Congo',
|
||||
'COK' => 'Cook Islands',
|
||||
'CRI' => 'Costa Rica',
|
||||
'CIV' => 'Cote d\'Ivoire',
|
||||
'HRV' => 'Croatia',
|
||||
'CUB' => 'Cuba',
|
||||
'CYP' => 'Cyprus',
|
||||
'CZE' => 'Czech Republic',
|
||||
'PRK' => 'Democratic People\'s Republic of Korea',
|
||||
'COD' => 'Democratic Republic of the Congo',
|
||||
'DNK' => 'Denmark',
|
||||
'DJI' => 'Djibouti',
|
||||
'DMA' => 'Dominica',
|
||||
'DOM' => 'Dominican Republic',
|
||||
'ECU' => 'Ecuador',
|
||||
'EGY' => 'Egypt',
|
||||
'SLV' => 'El Salvador',
|
||||
'GNQ' => 'Equatorial Guinea',
|
||||
'ERI' => 'Eritrea',
|
||||
'EST' => 'Estonia',
|
||||
'ETH' => 'Ethiopia',
|
||||
'EUR' => 'Europe',
|
||||
'FRO' => 'Faeroe Islands',
|
||||
'FLK' => 'Falkland Islands (Malvinas)',
|
||||
'FJI' => 'Fiji',
|
||||
'FIN' => 'Finland',
|
||||
'FRA' => 'France',
|
||||
'GUF' => 'French Guiana',
|
||||
'PYF' => 'French Polynesia',
|
||||
'GAB' => 'Gabon',
|
||||
'GMB' => 'Gambia',
|
||||
'GEO' => 'Georgia',
|
||||
'DEU' => 'Germany',
|
||||
'GHA' => 'Ghana',
|
||||
'GIB' => 'Gibraltar',
|
||||
'GRC' => 'Greece',
|
||||
'GRL' => 'Greenland',
|
||||
'GRD' => 'Grenada',
|
||||
'GLP' => 'Guadeloupe',
|
||||
'GUM' => 'Guam',
|
||||
'GTM' => 'Guatemala',
|
||||
'GIN' => 'Guinea',
|
||||
'GNB' => 'Guinea-Bissau',
|
||||
'GUY' => 'Guyana',
|
||||
'HTI' => 'Haiti',
|
||||
'VAT' => 'Holy See',
|
||||
'HND' => 'Honduras',
|
||||
'HKG' => 'Hong Kong',
|
||||
'HUN' => 'Hungary',
|
||||
'ISL' => 'Iceland',
|
||||
'IND' => 'India',
|
||||
'IDN' => 'Indonesia',
|
||||
'IRN' => 'Iran',
|
||||
'IRQ' => 'Iraq',
|
||||
'IRL' => 'Ireland',
|
||||
'ISR' => 'Israel',
|
||||
'ITA' => 'Italy',
|
||||
'JAM' => 'Jamaica',
|
||||
'JPN' => 'Japan',
|
||||
'JOR' => 'Jordan',
|
||||
'KAZ' => 'Kazakhstan',
|
||||
'KEN' => 'Kenya',
|
||||
'KIR' => 'Kiribati',
|
||||
'KWT' => 'Kuwait',
|
||||
'KGZ' => 'Kyrgyzstan',
|
||||
'LAO' => 'Lao People\'s Democratic Republic',
|
||||
'LVA' => 'Latvia',
|
||||
'LBN' => 'Lebanon',
|
||||
'LSO' => 'Lesotho',
|
||||
'LBR' => 'Liberia',
|
||||
'LBY' => 'Libyan Arab Jamahiriya',
|
||||
'LIE' => 'Liechtenstein',
|
||||
'LTU' => 'Lithuania',
|
||||
'LUX' => 'Luxembourg',
|
||||
'MAC' => 'Macao Special Administrative Region of China',
|
||||
'MDG' => 'Madagascar',
|
||||
'MWI' => 'Malawi',
|
||||
'MYS' => 'Malaysia',
|
||||
'MDV' => 'Maldives',
|
||||
'MLI' => 'Mali',
|
||||
'MLT' => 'Malta',
|
||||
'MHL' => 'Marshall Islands',
|
||||
'MTQ' => 'Martinique',
|
||||
'MRT' => 'Mauritania',
|
||||
'MUS' => 'Mauritius',
|
||||
'MEX' => 'Mexico',
|
||||
'FSM' => 'Micronesia Federated States of,',
|
||||
'MCO' => 'Monaco',
|
||||
'MNG' => 'Mongolia',
|
||||
'MSR' => 'Montserrat',
|
||||
'MAR' => 'Morocco',
|
||||
'MOZ' => 'Mozambique',
|
||||
'MMR' => 'Myanmar',
|
||||
'NAM' => 'Namibia',
|
||||
'NRU' => 'Nauru',
|
||||
'NPL' => 'Nepal',
|
||||
'NLD' => 'Netherlands',
|
||||
'ANT' => 'Netherlands Antilles',
|
||||
'NCL' => 'New Caledonia',
|
||||
'NZL' => 'New Zealand',
|
||||
'NIC' => 'Nicaragua',
|
||||
'NER' => 'Niger',
|
||||
'NGA' => 'Nigeria',
|
||||
'NIU' => 'Niue',
|
||||
'NFK' => 'Norfolk Island',
|
||||
'MNP' => 'Northern Mariana Islands',
|
||||
'NOR' => 'Norway',
|
||||
'PSE' => 'Occupied Palestinian Territory',
|
||||
'OMN' => 'Oman',
|
||||
'PAK' => 'Pakistan',
|
||||
'PLW' => 'Palau',
|
||||
'PAN' => 'Panama',
|
||||
'PNG' => 'Papua New Guinea',
|
||||
'PRY' => 'Paraguay',
|
||||
'PER' => 'Peru',
|
||||
'PHL' => 'Philippines',
|
||||
'PCN' => 'Pitcairn',
|
||||
'POL' => 'Poland',
|
||||
'PRT' => 'Portugal',
|
||||
'PRI' => 'Puerto Rico',
|
||||
'QAT' => 'Qatar',
|
||||
'KOR' => 'Republic of Korea',
|
||||
'MDA' => 'Republic of Moldova',
|
||||
'REU' => 'Réunion',
|
||||
'ROU' => 'Romania',
|
||||
'RUS' => 'Russian Federation',
|
||||
'RWA' => 'Rwanda',
|
||||
'SHN' => 'Saint Helena',
|
||||
'KNA' => 'Saint Kitts and Nevis',
|
||||
'LCA' => 'Saint Lucia',
|
||||
'SPM' => 'Saint Pierre and Miquelon',
|
||||
'VCT' => 'Saint Vincent and the Grenadines',
|
||||
'WSM' => 'Samoa',
|
||||
'SMR' => 'San Marino',
|
||||
'STP' => 'Sao Tome and Principe',
|
||||
'SAU' => 'Saudi Arabia',
|
||||
'SEN' => 'Senegal',
|
||||
'SRB' => 'Serbia',
|
||||
'YUG' => 'Serbia and Montenegro',
|
||||
'SYC' => 'Seychelles',
|
||||
'SLE' => 'Sierra Leone',
|
||||
'SGP' => 'Singapore',
|
||||
'SVK' => 'Slovakia',
|
||||
'SVN' => 'Slovenia',
|
||||
'SLB' => 'Solomon Islands',
|
||||
'SOM' => 'Somalia',
|
||||
'ZAF' => 'South Africa',
|
||||
'ESP' => 'Spain',
|
||||
'LKA' => 'Sri Lanka',
|
||||
'SDN' => 'Sudan',
|
||||
'SUR' => 'Suriname',
|
||||
'SJM' => 'Svalbard and Jan Mayen Islands',
|
||||
'SWZ' => 'Swaziland',
|
||||
'SWE' => 'Sweden',
|
||||
'CHE' => 'Switzerland',
|
||||
'SYR' => 'Syrian Arab Republic',
|
||||
'TWN' => 'Taiwan',
|
||||
'TJK' => 'Tajikistan',
|
||||
'THA' => 'Thailand',
|
||||
'MKD' => 'The former Yugoslav Republic of Macedonia',
|
||||
'TLS' => 'Timor-Leste',
|
||||
'TGO' => 'Togo',
|
||||
'TKL' => 'Tokelau',
|
||||
'TON' => 'Tonga',
|
||||
'TTO' => 'Trinidad and Tobago',
|
||||
'TUN' => 'Tunisia',
|
||||
'TUR' => 'Turkey',
|
||||
'TKM' => 'Turkmenistan',
|
||||
'TCA' => 'Turks and Caicos Islands',
|
||||
'TUV' => 'Tuvalu',
|
||||
'UGA' => 'Uganda',
|
||||
'UKR' => 'Ukraine',
|
||||
'ARE' => 'United Arab Emirates',
|
||||
'GBR' => 'United Kingdom',
|
||||
'TZA' => 'United Republic of Tanzania',
|
||||
'USA' => 'United States',
|
||||
'VIR' => 'United States Virgin Islands',
|
||||
'XXX' => 'Unknown',
|
||||
'URY' => 'Uruguay',
|
||||
'UZB' => 'Uzbekistan',
|
||||
'VUT' => 'Vanuatu',
|
||||
'VEN' => 'Venezuela',
|
||||
'VNM' => 'Viet Nam',
|
||||
'WLF' => 'Wallis and Futuna Islands',
|
||||
'ESH' => 'Western Sahara',
|
||||
'YEM' => 'Yemen',
|
||||
'ZMB' => 'Zambia',
|
||||
'ZWE' => 'Zimbabwe',
|
||||
);
|
||||
|
||||
@@ -47,60 +47,60 @@ function blacklisted($email) {
|
||||
'mg-tuzi@yahoo.com.cn',
|
||||
'bitlifesciences',
|
||||
'bitconferences',
|
||||
'grandeurhk',
|
||||
'legaladvantagellc',
|
||||
'sanath7285',
|
||||
'omicsgroup',
|
||||
'@sina.com',
|
||||
'omicsonline',
|
||||
'bit-ibio',
|
||||
'evabrianparker',
|
||||
'bitpetrobio',
|
||||
'cogzidel',
|
||||
'vaccinecon',
|
||||
'bit-ica',
|
||||
'geki@live.cl',
|
||||
'wcd-bit',
|
||||
'bit-pepcon',
|
||||
'proformative.com',
|
||||
'bitcongress',
|
||||
'medifest@gmail.com',
|
||||
'@sina.cn',
|
||||
'wcc-congress',
|
||||
'albanezi',
|
||||
'supercoderarticle',
|
||||
'somebody@hotmail.com',
|
||||
'bit-cloudcon',
|
||||
'eclinicalcentral',
|
||||
'iddst.com',
|
||||
'achromicpoint.com',
|
||||
'wcgg-bit',
|
||||
'@163.com',
|
||||
'a-hassani2011@live.fr',
|
||||
'analytix-congress',
|
||||
'nexus-irc',
|
||||
'bramyao23',
|
||||
'dbmall27@gmail.com',
|
||||
'robinsonm750@gmail.com',
|
||||
'enu.kz',
|
||||
'isim-congress',
|
||||
'.*cmcb.*',
|
||||
'molmedcon',
|
||||
'agbtinternational',
|
||||
'biosensors',
|
||||
'conferenceseries.net',
|
||||
'wirelesscommunication',
|
||||
'clinicalpharmacy',
|
||||
'antibiotics',
|
||||
'globaleconomics',
|
||||
'sandeepsingh.torrent117232@gmail.com',
|
||||
'herbals',
|
||||
'europsychiatrysummit',
|
||||
'antibodies',
|
||||
'graduatecentral',
|
||||
'a@a.com',
|
||||
'@insightconferences.com',
|
||||
'@conferenceseries.com',
|
||||
'grandeurhk',
|
||||
'legaladvantagellc',
|
||||
'sanath7285',
|
||||
'omicsgroup',
|
||||
'@sina.com',
|
||||
'omicsonline',
|
||||
'bit-ibio',
|
||||
'evabrianparker',
|
||||
'bitpetrobio',
|
||||
'cogzidel',
|
||||
'vaccinecon',
|
||||
'bit-ica',
|
||||
'geki@live.cl',
|
||||
'wcd-bit',
|
||||
'bit-pepcon',
|
||||
'proformative.com',
|
||||
'bitcongress',
|
||||
'medifest@gmail.com',
|
||||
'@sina.cn',
|
||||
'wcc-congress',
|
||||
'albanezi',
|
||||
'supercoderarticle',
|
||||
'somebody@hotmail.com',
|
||||
'bit-cloudcon',
|
||||
'eclinicalcentral',
|
||||
'iddst.com',
|
||||
'achromicpoint.com',
|
||||
'wcgg-bit',
|
||||
'@163.com',
|
||||
'a-hassani2011@live.fr',
|
||||
'analytix-congress',
|
||||
'nexus-irc',
|
||||
'bramyao23',
|
||||
'dbmall27@gmail.com',
|
||||
'robinsonm750@gmail.com',
|
||||
'enu.kz',
|
||||
'isim-congress',
|
||||
'.*cmcb.*',
|
||||
'molmedcon',
|
||||
'agbtinternational',
|
||||
'biosensors',
|
||||
'conferenceseries.net',
|
||||
'wirelesscommunication',
|
||||
'clinicalpharmacy',
|
||||
'antibiotics',
|
||||
'globaleconomics',
|
||||
'sandeepsingh.torrent117232@gmail.com',
|
||||
'herbals',
|
||||
'europsychiatrysummit',
|
||||
'antibodies',
|
||||
'graduatecentral',
|
||||
'a@a.com',
|
||||
'@insightconferences.com',
|
||||
'@conferenceseries.com',
|
||||
);
|
||||
foreach ($mosquitoes as $m) {
|
||||
if (preg_match('/'.preg_quote($m, '/').'/i',$email)) return true;
|
||||
|
||||
@@ -77,34 +77,34 @@ function error_noservice()
|
||||
|
||||
// There is no such mirror
|
||||
function error_nomirror($mirror) {
|
||||
site_header("No such mirror", array("noindex"));
|
||||
echo "<h1>No such mirror</h1>\n<p>The mirror you tried to access (" .
|
||||
htmlspecialchars($mirror) .
|
||||
") is not registered php.net mirror. Please check back later," .
|
||||
" or if the problem persists, " .
|
||||
"<a href=\"/contact.php\">contact the webmasters</a>.</p>\n";
|
||||
site_footer();
|
||||
exit;
|
||||
site_header("No such mirror", array("noindex"));
|
||||
echo "<h1>No such mirror</h1>\n<p>The mirror you tried to access (" .
|
||||
htmlspecialchars($mirror) .
|
||||
") is not registered php.net mirror. Please check back later," .
|
||||
" or if the problem persists, " .
|
||||
"<a href=\"/contact.php\">contact the webmasters</a>.</p>\n";
|
||||
site_footer();
|
||||
exit;
|
||||
}
|
||||
|
||||
// Send out a proper status header
|
||||
function status_header(int $status): bool
|
||||
{
|
||||
$text = [
|
||||
200 => 'OK',
|
||||
301 => 'Moved Permanently',
|
||||
302 => 'Found',
|
||||
404 => 'Not Found',
|
||||
];
|
||||
if (!isset($text[$status])) {
|
||||
return false;
|
||||
}
|
||||
$text = [
|
||||
200 => 'OK',
|
||||
301 => 'Moved Permanently',
|
||||
302 => 'Found',
|
||||
404 => 'Not Found',
|
||||
];
|
||||
if (!isset($text[$status])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Only respond with HTTP/1.0 for a 1.0 request specifically.
|
||||
// Respond with 1.1 for anything else.
|
||||
$proto = strcasecmp($_SERVER['SERVER_PROTOCOL'], 'HTTP/1.0') ? '1.1' : '1.0';
|
||||
// Only respond with HTTP/1.0 for a 1.0 request specifically.
|
||||
// Respond with 1.1 for anything else.
|
||||
$proto = strcasecmp($_SERVER['SERVER_PROTOCOL'], 'HTTP/1.0') ? '1.1' : '1.0';
|
||||
|
||||
@header("HTTP/$proto $status {$text[$status]}");
|
||||
@header("HTTP/$proto $status {$text[$status]}");
|
||||
@header("Status: $status {$text[$status]}", true, $status);
|
||||
|
||||
return true;
|
||||
@@ -124,381 +124,381 @@ TODO: Determine if we want to continue 301 -OR- make these official URLs.
|
||||
******************************************************************************/
|
||||
|
||||
function is_known_ini (string $ini): ?string {
|
||||
$inis = [
|
||||
'engine' => 'apache.configuration.php#ini.engine',
|
||||
'short-open-tag' => 'ini.core.php#ini.short-open-tag',
|
||||
'asp-tags' => 'ini.core.php#ini.asp-tags',
|
||||
'precision' => 'ini.core.php#ini.precision',
|
||||
'y2k-compliance' => 'ini.core.php#ini.y2k-compliance',
|
||||
'output-buffering' => 'outcontrol.configuration.php#ini.output-buffering',
|
||||
'output-handler' => 'outcontrol.configuration.php#ini.output-handler',
|
||||
'zlib.output-compression' => 'zlib.configuration.php#ini.zlib.output-compression',
|
||||
'zlib.output-compression-level' => 'zlib.configuration.php#ini.zlib.output-compression-level',
|
||||
'zlib.output-handler' => 'zlib.configuration.php#ini.zlib.output-handler',
|
||||
'implicit-flush' => 'outcontrol.configuration.php#ini.implicit-flush',
|
||||
'allow-call-time-pass-reference'=> 'ini.core.php#ini.allow-call-time-pass-reference',
|
||||
'safe-mode' => 'ini.sect.safe-mode.php#ini.safe-mode',
|
||||
'safe-mode-gid' => 'ini.sect.safe-mode.php#ini.safe-mode-gid',
|
||||
'safe-mode-include-dir' => 'ini.sect.safe-mode.php#ini.safe-mode-include-dir',
|
||||
'safe-mode-exec-dir' => 'ini.sect.safe-mode.php#ini.safe-mode-exec-dir',
|
||||
'safe-mode-allowed-env-vars' => 'ini.sect.safe-mode.php#ini.safe-mode-allowed-env-vars',
|
||||
'safe-mode-protected-env-vars' => 'ini.sect.safe-mode.php#ini.safe-mode-protected-env-vars',
|
||||
'open-basedir' => 'ini.core.php#ini.open-basedir',
|
||||
'disable-functions' => 'ini.core.php#ini.disable-functions',
|
||||
'disable-classes' => 'ini.core.php#ini.disable-classes',
|
||||
'zend.assertions' => 'ini.core.php#ini.zend.assertions',
|
||||
'syntax-highlighting' => 'misc.configuration.php#ini.syntax-highlighting',
|
||||
'ignore-user-abort' => 'misc.configuration.php#ini.ignore-user-abort',
|
||||
'realpath-cache-size' => 'ini.core.php#ini.realpath-cache-size',
|
||||
'realpath-cache-ttl' => 'ini.core.php#ini.realpath-cache-ttl',
|
||||
'expose-php' => 'ini.core.php#ini.expose-php',
|
||||
'max-execution-time' => 'info.configuration.php#ini.max-execution-time',
|
||||
'max-input-time' => 'info.configuration.php#ini.max-input-time',
|
||||
'max-input-nesting-level' => 'info.configuration.php#ini.max-input-nesting-level',
|
||||
'memory-limit' => 'ini.core.php#ini.memory-limit',
|
||||
'error-reporting' => 'errorfunc.configuration.php#ini.error-reporting',
|
||||
'display-errors' => 'errorfunc.configuration.php#ini.display-errors',
|
||||
'display-startup-errors' => 'errorfunc.configuration.php#ini.display-startup-errors',
|
||||
'log-errors' => 'errorfunc.configuration.php#ini.log-errors',
|
||||
'log-errors-max-len' => 'errorfunc.configuration.php#ini.log-errors-max-len',
|
||||
'ignore-repeated-errors' => 'errorfunc.configuration.php#ini.ignore-repeated-errors',
|
||||
'ignore-repeated-source' => 'errorfunc.configuration.php#ini.ignore-repeated-source',
|
||||
'report-memleaks' => 'errorfunc.configuration.php#ini.report-memleaks',
|
||||
'track-errors' => 'errorfunc.configuration.php#ini.track-errors',
|
||||
'xmlrpc-errors' => 'errorfunc.configuration.php#ini.xmlrpc-errors',
|
||||
'html-errors' => 'errorfunc.configuration.php#ini.html-errors',
|
||||
'docref-root' => 'errorfunc.configuration.php#ini.docref-root',
|
||||
'docref-ext' => 'errorfunc.configuration.php#ini.docref-ext',
|
||||
'error-prepend-string' => 'errorfunc.configuration.php#ini.error-prepend-string',
|
||||
'error-append-string' => 'errorfunc.configuration.php#ini.error-append-string',
|
||||
'error-log' => 'errorfunc.configuration.php#ini.error-log',
|
||||
'syslog.facility' => 'errorfunc.configuration.php#ini.syslog.facility',
|
||||
'syslog.filter' => 'errorfunc.configuration.php#ini.syslog.filter',
|
||||
'syslog.ident' => 'errorfunc.configuration.php#ini.syslog.ident',
|
||||
'arg-separator.output' => 'ini.core.php#ini.arg-separator.output',
|
||||
'arg-separator.input' => 'ini.core.php#ini.arg-separator.input',
|
||||
'variables-order' => 'ini.core.php#ini.variables-order',
|
||||
'request-order' => 'ini.core.php#ini.request-order',
|
||||
'register-globals' => 'ini.core.php#ini.register-globals',
|
||||
'register-long-arrays' => 'ini.core.php#ini.register-long-arrays',
|
||||
'register-argc-argv' => 'ini.core.php#ini.register-argc-argv',
|
||||
'auto-globals-jit' => 'ini.core.php#ini.auto-globals-jit',
|
||||
'post-max-size' => 'ini.core.php#ini.post-max-size',
|
||||
'magic-quotes-gpc' => 'info.configuration.php#ini.magic-quotes-gpc',
|
||||
'magic-quotes-runtime' => 'info.configuration.php#ini.magic-quotes-runtime',
|
||||
'magic-quotes-sybase' => 'sybase.configuration.php#ini.magic-quotes-sybase',
|
||||
'auto-prepend-file' => 'ini.core.php#ini.auto-prepend-file',
|
||||
'auto-append-file' => 'ini.core.php#ini.auto-append-file',
|
||||
'default-mimetype' => 'ini.core.php#ini.default-mimetype',
|
||||
'default-charset' => 'ini.core.php#ini.default-charset',
|
||||
'always-populate-raw-post-data' => 'ini.core.php#ini.always-populate-raw-post-data',
|
||||
'include-path' => 'ini.core.php#ini.include-path',
|
||||
'doc-root' => 'ini.core.php#ini.doc-root',
|
||||
'user-dir' => 'ini.core.php#ini.user-dir',
|
||||
'extension-dir' => 'ini.core.php#ini.extension-dir',
|
||||
'enable-dl' => 'info.configuration.php#ini.enable-dl',
|
||||
'cgi.force-redirect' => 'ini.core.php#ini.cgi.force-redirect',
|
||||
'cgi.redirect-status-env' => 'ini.core.php#ini.cgi.redirect-status-env',
|
||||
'cgi.fix-pathinfo' => 'ini.core.php#ini.cgi.fix-pathinfo',
|
||||
'fastcgi.impersonate' => 'ini.core.php#ini.fastcgi.impersonate',
|
||||
'cgi.rfc2616-headers' => 'ini.core.php#ini.cgi.rfc2616-headers',
|
||||
'file-uploads' => 'ini.core.php#ini.file-uploads',
|
||||
'upload-tmp-dir' => 'ini.core.php#ini.upload-tmp-dir',
|
||||
'upload-max-filesize' => 'ini.core.php#ini.upload-max-filesize',
|
||||
'allow-url-fopen' => 'filesystem.configuration.php#ini.allow-url-fopen',
|
||||
'allow-url-include' => 'filesystem.configuration.php#ini.allow-url-include',
|
||||
'from' => 'filesystem.configuration.php#ini.from',
|
||||
'user-agent' => 'filesystem.configuration.php#ini.user-agent',
|
||||
'default-socket-timeout' => 'filesystem.configuration.php#ini.default-socket-timeout',
|
||||
'auto-detect-line-endings' => 'filesystem.configuration.php#ini.auto-detect-line-endings',
|
||||
'date.timezone' => 'datetime.configuration.php#ini.date.timezone',
|
||||
'date.default-latitude' => 'datetime.configuration.php#ini.date.default-latitude',
|
||||
'date.default-longitude' => 'datetime.configuration.php#ini.date.default-longitude',
|
||||
'date.sunrise-zenith' => 'datetime.configuration.php#ini.date.sunrise-zenith',
|
||||
'date.sunset-zenith' => 'datetime.configuration.php#ini.date.sunset-zenith',
|
||||
'filter.default' => 'filter.configuration.php#ini.filter.default',
|
||||
'filter.default-flags' => 'filter.configuration.php#ini.filter.default-flags',
|
||||
'sqlite.assoc-case' => 'sqlite.configuration.php#ini.sqlite.assoc-case',
|
||||
'pcre.backtrack-limit' => 'pcre.configuration.php#ini.pcre.backtrack-limit',
|
||||
'pcre.recursion-limit' => 'pcre.configuration.php#ini.pcre.recursion-limit',
|
||||
'pdo-odbc.connection-pooling' => 'ref.pdo-odbc.php#ini.pdo-odbc.connection-pooling',
|
||||
'phar.readonly' => 'phar.configuration.php#ini.phar.readonly',
|
||||
'phar.require-hash' => 'phar.configuration.php#ini.phar.require-hash',
|
||||
'define-syslog-variables' => 'network.configuration.php#ini.define-syslog-variables',
|
||||
'smtp' => 'mail.configuration.php#ini.smtp',
|
||||
'smtp-port' => 'mail.configuration.php#ini.smtp-port',
|
||||
'sendmail-from' => 'mail.configuration.php#ini.sendmail-from',
|
||||
'sendmail-path' => 'mail.configuration.php#ini.sendmail-path',
|
||||
'sql.safe-mode' => 'ini.core.php#ini.sql.safe-mode',
|
||||
'odbc.default-db' => 'odbc.configuration.php#ini.uodbc.default-db',
|
||||
'odbc.default-user' => 'odbc.configuration.php#ini.uodbc.default-user',
|
||||
'odbc.default-pw' => 'odbc.configuration.php#ini.uodbc.default-pw',
|
||||
'odbc.allow-persistent' => 'odbc.configuration.php#ini.uodbc.allow-persistent',
|
||||
'odbc.check-persistent' => 'odbc.configuration.php#ini.uodbc.check-persistent',
|
||||
'odbc.max-persistent' => 'odbc.configuration.php#ini.uodbc.max-persistent',
|
||||
'odbc.max-links' => 'odbc.configuration.php#ini.uodbc.max-links',
|
||||
'odbc.defaultlrl' => 'odbc.configuration.php#ini.uodbc.defaultlrl',
|
||||
'odbc.defaultbinmode' => 'odbc.configuration.php#ini.uodbc.defaultbinmode',
|
||||
'mysql.allow-local-infile' => 'mysql.configuration.php#ini.mysql.allow-local-infile',
|
||||
'mysql.allow-persistent' => 'mysql.configuration.php#ini.mysql.allow-persistent',
|
||||
'mysql.max-persistent' => 'mysql.configuration.php#ini.mysql.max-persistent',
|
||||
'mysql.max-links' => 'mysql.configuration.php#ini.mysql.max-links',
|
||||
'mysql.default-port' => 'mysql.configuration.php#ini.mysql.default-port',
|
||||
'mysql.default-socket' => 'mysql.configuration.php#ini.mysql.default-socket',
|
||||
'mysql.default-host' => 'mysql.configuration.php#ini.mysql.default-host',
|
||||
'mysql.default-user' => 'mysql.configuration.php#ini.mysql.default-user',
|
||||
'mysql.default-password' => 'mysql.configuration.php#ini.mysql.default-password',
|
||||
'mysql.connect-timeout' => 'mysql.configuration.php#ini.mysql.connect-timeout',
|
||||
'mysql.trace-mode' => 'mysql.configuration.php#ini.mysql.trace-mode',
|
||||
'mysqli.allow-local-infile' => 'mysqli.configuration.php#ini.mysqli.allow-local-infile',
|
||||
'mysqli.max-links' => 'mysqli.configuration.php#ini.mysqli.max-links',
|
||||
'mysqli.allow-persistent' => 'mysqli.configuration.php#ini.mysqli.allow-persistent',
|
||||
'mysqli.default-port' => 'mysqli.configuration.php#ini.mysqli.default-port',
|
||||
'mysqli.default-socket' => 'mysqli.configuration.php#ini.mysqli.default-socket',
|
||||
'mysqli.default-host' => 'mysqli.configuration.php#ini.mysqli.default-host',
|
||||
'mysqli.default-user' => 'mysqli.configuration.php#ini.mysqli.default-user',
|
||||
'mysqli.default-pw' => 'mysqli.configuration.php#ini.mysqli.default-pw',
|
||||
'oci8.privileged-connect' => 'oci8.configuration.php#ini.oci8.privileged-connect',
|
||||
'oci8.max-persistent' => 'oci8.configuration.php#ini.oci8.max-persistent',
|
||||
'oci8.persistent-timeout' => 'oci8.configuration.php#ini.oci8.persistent-timeout',
|
||||
'oci8.ping-interval' => 'oci8.configuration.php#ini.oci8.ping-interval',
|
||||
'oci8.statement-cache-size' => 'oci8.configuration.php#ini.oci8.statement-cache-size',
|
||||
'oci8.default-prefetch' => 'oci8.configuration.php#ini.oci8.default-prefetch',
|
||||
'oci8.old-oci-close-semantics' => 'oci8.configuration.php#ini.oci8.old-oci-close-semantics',
|
||||
'opcache.preload' => 'opcache.configuration.php#ini.opcache.preload',
|
||||
'pgsql.allow-persistent' => 'pgsql.configuration.php#ini.pgsql.allow-persistent',
|
||||
'pgsql.auto-reset-persistent' => 'pgsql.configuration.php#ini.pgsql.auto-reset-persistent',
|
||||
'pgsql.max-persistent' => 'pgsql.configuration.php#ini.pgsql.max-persistent',
|
||||
'pgsql.max-links' => 'pgsql.configuration.php#ini.pgsql.max-links',
|
||||
'pgsql.ignore-notice' => 'pgsql.configuration.php#ini.pgsql.ignore-notice',
|
||||
'pgsql.log-notice' => 'pgsql.configuration.php#ini.pgsql.log-notice',
|
||||
'sqlite3.extension-dir' => 'sqlite3.configuration.php#ini.sqlite3.extension-dir',
|
||||
'sybct.allow-persistent' => 'sybase.configuration.php#ini.sybct.allow-persistent',
|
||||
'sybct.max-persistent' => 'sybase.configuration.php#ini.sybct.max-persistent',
|
||||
'sybct.max-links' => 'sybase.configuration.php#ini.sybct.max-links',
|
||||
'sybct.min-server-severity' => 'sybase.configuration.php#ini.sybct.min-server-severity',
|
||||
'sybct.min-client-severity' => 'sybase.configuration.php#ini.sybct.min-client-severity',
|
||||
'sybct.timeout' => 'sybase.configuration.php#ini.sybct.timeout',
|
||||
'bcmath.scale' => 'bc.configuration.php#ini.bcmath.scale',
|
||||
'browscap' => 'misc.configuration.php#ini.browscap',
|
||||
'session.save-handler' => 'session.configuration.php#ini.session.save-handler',
|
||||
'session.save-path' => 'session.configuration.php#ini.session.save-path',
|
||||
'session.use-cookies' => 'session.configuration.php#ini.session.use-cookies',
|
||||
'session.cookie-secure' => 'session.configuration.php#ini.session.cookie-secure',
|
||||
'session.use-only-cookies' => 'session.configuration.php#ini.session.use-only-cookies',
|
||||
'session.name' => 'session.configuration.php#ini.session.name',
|
||||
'session.auto-start' => 'session.configuration.php#ini.session.auto-start',
|
||||
'session.cookie-lifetime' => 'session.configuration.php#ini.session.cookie-lifetime',
|
||||
'session.cookie-path' => 'session.configuration.php#ini.session.cookie-path',
|
||||
'session.cookie-domain' => 'session.configuration.php#ini.session.cookie-domain',
|
||||
'session.cookie-httponly' => 'session.configuration.php#ini.session.cookie-httponly',
|
||||
'session.serialize-handler' => 'session.configuration.php#ini.session.serialize-handler',
|
||||
'session.gc-probability' => 'session.configuration.php#ini.session.gc-probability',
|
||||
'session.gc-divisor' => 'session.configuration.php#ini.session.gc-divisor',
|
||||
'session.gc-maxlifetime' => 'session.configuration.php#ini.session.gc-maxlifetime',
|
||||
'session.bug-compat-42' => 'session.configuration.php#ini.session.bug-compat-42',
|
||||
'session.bug-compat-warn' => 'session.configuration.php#ini.session.bug-compat-warn',
|
||||
'session.referer-check' => 'session.configuration.php#ini.session.referer-check',
|
||||
'session.entropy-length' => 'session.configuration.php#ini.session.entropy-length',
|
||||
'session.entropy-file' => 'session.configuration.php#ini.session.entropy-file',
|
||||
'session.cache-limiter' => 'session.configuration.php#ini.session.cache-limiter',
|
||||
'session.cache-expire' => 'session.configuration.php#ini.session.cache-expire',
|
||||
'session.sid-length' => 'session.configuration.php#ini.session.sid-length',
|
||||
'session.use-trans-sid' => 'session.configuration.php#ini.session.use-trans-sid',
|
||||
'session.hash-function' => 'session.configuration.php#ini.session.hash-function',
|
||||
'session.hash-bits-per-character' => 'session.configuration.php#ini.session.hash-bits-per-character',
|
||||
'session.upload-progress.enabled' => 'session.configuration.php#ini.session.upload-progress.enabled',
|
||||
'session.upload-progress.cleanup' => 'session.configuration.php#ini.session.upload-progress.cleanup',
|
||||
'session.upload-progress.prefix' => 'session.configuration.php#ini.session.upload-progress.prefix',
|
||||
'session.upload-progress.name' => 'session.configuration.php#ini.session.upload-progress.name',
|
||||
'session.upload-progress.freq' => 'session.configuration.php#ini.session.upload-progress.freq',
|
||||
'session.upload-progress.min-freq' => 'session.configuration.php#ini.session.upload-progress.min-freq',
|
||||
'url-rewriter.tags' => 'session.configuration.php#ini.url-rewriter.tags',
|
||||
'assert.active' => 'info.configuration.php#ini.assert.active',
|
||||
'assert.exception' => 'info.configuration.php#ini.assert.exception',
|
||||
'assert.warning' => 'info.configuration.php#ini.assert.warning',
|
||||
'assert.bail' => 'info.configuration.php#ini.assert.bail',
|
||||
'assert.callback' => 'info.configuration.php#ini.assert.callback',
|
||||
'assert.quiet-eval' => 'info.configuration.php#ini.assert.quiet-eval',
|
||||
'zend.enable-gc' => 'info.configuration.php#ini.zend.enable-gc',
|
||||
'com.typelib-file' => 'com.configuration.php#ini.com.typelib-file',
|
||||
'com.allow-dcom' => 'com.configuration.php#ini.com.allow-dcom',
|
||||
'com.autoregister-typelib' => 'com.configuration.php#ini.com.autoregister-typelib',
|
||||
'com.autoregister-casesensitive'=> 'com.configuration.php#ini.com.autoregister-casesensitive',
|
||||
'com.autoregister-verbose' => 'com.configuration.php#ini.com.autoregister-verbose',
|
||||
'mbstring.language' => 'mbstring.configuration.php#ini.mbstring.language',
|
||||
'mbstring.internal-encoding' => 'mbstring.configuration.php#ini.mbstring.internal-encoding',
|
||||
'mbstring.http-input' => 'mbstring.configuration.php#ini.mbstring.http-input',
|
||||
'mbstring.http-output' => 'mbstring.configuration.php#ini.mbstring.http-output',
|
||||
'mbstring.encoding-translation' => 'mbstring.configuration.php#ini.mbstring.encoding-translation',
|
||||
'mbstring.detect-order' => 'mbstring.configuration.php#ini.mbstring.detect-order',
|
||||
'mbstring.substitute-character' => 'mbstring.configuration.php#ini.mbstring.substitute-character',
|
||||
'mbstring.func-overload' => 'mbstring.configuration.php#ini.mbstring.func-overload',
|
||||
'gd.jpeg-ignore-warning' => 'image.configuration.php#ini.image.jpeg-ignore-warning',
|
||||
'exif.encode-unicode' => 'exif.configuration.php#ini.exif.encode-unicode',
|
||||
'exif.decode-unicode-motorola' => 'exif.configuration.php#ini.exif.decode-unicode-motorola',
|
||||
'exif.decode-unicode-intel' => 'exif.configuration.php#ini.exif.decode-unicode-intel',
|
||||
'exif.encode-jis' => 'exif.configuration.php#ini.exif.encode-jis',
|
||||
'exif.decode-jis-motorola' => 'exif.configuration.php#ini.exif.decode-jis-motorola',
|
||||
'exif.decode-jis-intel' => 'exif.configuration.php#ini.exif.decode-jis-intel',
|
||||
'tidy.default-config' => 'tidy.configuration.php#ini.tidy.default-config',
|
||||
'tidy.clean-output' => 'tidy.configuration.php#ini.tidy.clean-output',
|
||||
'soap.wsdl-cache-enabled' => 'soap.configuration.php#ini.soap.wsdl-cache-enabled',
|
||||
'soap.wsdl-cache-dir' => 'soap.configuration.php#ini.soap.wsdl-cache-dir',
|
||||
'soap.wsdl-cache-ttl' => 'soap.configuration.php#ini.soap.wsdl-cache-ttl',
|
||||
];
|
||||
$inis = [
|
||||
'engine' => 'apache.configuration.php#ini.engine',
|
||||
'short-open-tag' => 'ini.core.php#ini.short-open-tag',
|
||||
'asp-tags' => 'ini.core.php#ini.asp-tags',
|
||||
'precision' => 'ini.core.php#ini.precision',
|
||||
'y2k-compliance' => 'ini.core.php#ini.y2k-compliance',
|
||||
'output-buffering' => 'outcontrol.configuration.php#ini.output-buffering',
|
||||
'output-handler' => 'outcontrol.configuration.php#ini.output-handler',
|
||||
'zlib.output-compression' => 'zlib.configuration.php#ini.zlib.output-compression',
|
||||
'zlib.output-compression-level' => 'zlib.configuration.php#ini.zlib.output-compression-level',
|
||||
'zlib.output-handler' => 'zlib.configuration.php#ini.zlib.output-handler',
|
||||
'implicit-flush' => 'outcontrol.configuration.php#ini.implicit-flush',
|
||||
'allow-call-time-pass-reference'=> 'ini.core.php#ini.allow-call-time-pass-reference',
|
||||
'safe-mode' => 'ini.sect.safe-mode.php#ini.safe-mode',
|
||||
'safe-mode-gid' => 'ini.sect.safe-mode.php#ini.safe-mode-gid',
|
||||
'safe-mode-include-dir' => 'ini.sect.safe-mode.php#ini.safe-mode-include-dir',
|
||||
'safe-mode-exec-dir' => 'ini.sect.safe-mode.php#ini.safe-mode-exec-dir',
|
||||
'safe-mode-allowed-env-vars' => 'ini.sect.safe-mode.php#ini.safe-mode-allowed-env-vars',
|
||||
'safe-mode-protected-env-vars' => 'ini.sect.safe-mode.php#ini.safe-mode-protected-env-vars',
|
||||
'open-basedir' => 'ini.core.php#ini.open-basedir',
|
||||
'disable-functions' => 'ini.core.php#ini.disable-functions',
|
||||
'disable-classes' => 'ini.core.php#ini.disable-classes',
|
||||
'zend.assertions' => 'ini.core.php#ini.zend.assertions',
|
||||
'syntax-highlighting' => 'misc.configuration.php#ini.syntax-highlighting',
|
||||
'ignore-user-abort' => 'misc.configuration.php#ini.ignore-user-abort',
|
||||
'realpath-cache-size' => 'ini.core.php#ini.realpath-cache-size',
|
||||
'realpath-cache-ttl' => 'ini.core.php#ini.realpath-cache-ttl',
|
||||
'expose-php' => 'ini.core.php#ini.expose-php',
|
||||
'max-execution-time' => 'info.configuration.php#ini.max-execution-time',
|
||||
'max-input-time' => 'info.configuration.php#ini.max-input-time',
|
||||
'max-input-nesting-level' => 'info.configuration.php#ini.max-input-nesting-level',
|
||||
'memory-limit' => 'ini.core.php#ini.memory-limit',
|
||||
'error-reporting' => 'errorfunc.configuration.php#ini.error-reporting',
|
||||
'display-errors' => 'errorfunc.configuration.php#ini.display-errors',
|
||||
'display-startup-errors' => 'errorfunc.configuration.php#ini.display-startup-errors',
|
||||
'log-errors' => 'errorfunc.configuration.php#ini.log-errors',
|
||||
'log-errors-max-len' => 'errorfunc.configuration.php#ini.log-errors-max-len',
|
||||
'ignore-repeated-errors' => 'errorfunc.configuration.php#ini.ignore-repeated-errors',
|
||||
'ignore-repeated-source' => 'errorfunc.configuration.php#ini.ignore-repeated-source',
|
||||
'report-memleaks' => 'errorfunc.configuration.php#ini.report-memleaks',
|
||||
'track-errors' => 'errorfunc.configuration.php#ini.track-errors',
|
||||
'xmlrpc-errors' => 'errorfunc.configuration.php#ini.xmlrpc-errors',
|
||||
'html-errors' => 'errorfunc.configuration.php#ini.html-errors',
|
||||
'docref-root' => 'errorfunc.configuration.php#ini.docref-root',
|
||||
'docref-ext' => 'errorfunc.configuration.php#ini.docref-ext',
|
||||
'error-prepend-string' => 'errorfunc.configuration.php#ini.error-prepend-string',
|
||||
'error-append-string' => 'errorfunc.configuration.php#ini.error-append-string',
|
||||
'error-log' => 'errorfunc.configuration.php#ini.error-log',
|
||||
'syslog.facility' => 'errorfunc.configuration.php#ini.syslog.facility',
|
||||
'syslog.filter' => 'errorfunc.configuration.php#ini.syslog.filter',
|
||||
'syslog.ident' => 'errorfunc.configuration.php#ini.syslog.ident',
|
||||
'arg-separator.output' => 'ini.core.php#ini.arg-separator.output',
|
||||
'arg-separator.input' => 'ini.core.php#ini.arg-separator.input',
|
||||
'variables-order' => 'ini.core.php#ini.variables-order',
|
||||
'request-order' => 'ini.core.php#ini.request-order',
|
||||
'register-globals' => 'ini.core.php#ini.register-globals',
|
||||
'register-long-arrays' => 'ini.core.php#ini.register-long-arrays',
|
||||
'register-argc-argv' => 'ini.core.php#ini.register-argc-argv',
|
||||
'auto-globals-jit' => 'ini.core.php#ini.auto-globals-jit',
|
||||
'post-max-size' => 'ini.core.php#ini.post-max-size',
|
||||
'magic-quotes-gpc' => 'info.configuration.php#ini.magic-quotes-gpc',
|
||||
'magic-quotes-runtime' => 'info.configuration.php#ini.magic-quotes-runtime',
|
||||
'magic-quotes-sybase' => 'sybase.configuration.php#ini.magic-quotes-sybase',
|
||||
'auto-prepend-file' => 'ini.core.php#ini.auto-prepend-file',
|
||||
'auto-append-file' => 'ini.core.php#ini.auto-append-file',
|
||||
'default-mimetype' => 'ini.core.php#ini.default-mimetype',
|
||||
'default-charset' => 'ini.core.php#ini.default-charset',
|
||||
'always-populate-raw-post-data' => 'ini.core.php#ini.always-populate-raw-post-data',
|
||||
'include-path' => 'ini.core.php#ini.include-path',
|
||||
'doc-root' => 'ini.core.php#ini.doc-root',
|
||||
'user-dir' => 'ini.core.php#ini.user-dir',
|
||||
'extension-dir' => 'ini.core.php#ini.extension-dir',
|
||||
'enable-dl' => 'info.configuration.php#ini.enable-dl',
|
||||
'cgi.force-redirect' => 'ini.core.php#ini.cgi.force-redirect',
|
||||
'cgi.redirect-status-env' => 'ini.core.php#ini.cgi.redirect-status-env',
|
||||
'cgi.fix-pathinfo' => 'ini.core.php#ini.cgi.fix-pathinfo',
|
||||
'fastcgi.impersonate' => 'ini.core.php#ini.fastcgi.impersonate',
|
||||
'cgi.rfc2616-headers' => 'ini.core.php#ini.cgi.rfc2616-headers',
|
||||
'file-uploads' => 'ini.core.php#ini.file-uploads',
|
||||
'upload-tmp-dir' => 'ini.core.php#ini.upload-tmp-dir',
|
||||
'upload-max-filesize' => 'ini.core.php#ini.upload-max-filesize',
|
||||
'allow-url-fopen' => 'filesystem.configuration.php#ini.allow-url-fopen',
|
||||
'allow-url-include' => 'filesystem.configuration.php#ini.allow-url-include',
|
||||
'from' => 'filesystem.configuration.php#ini.from',
|
||||
'user-agent' => 'filesystem.configuration.php#ini.user-agent',
|
||||
'default-socket-timeout' => 'filesystem.configuration.php#ini.default-socket-timeout',
|
||||
'auto-detect-line-endings' => 'filesystem.configuration.php#ini.auto-detect-line-endings',
|
||||
'date.timezone' => 'datetime.configuration.php#ini.date.timezone',
|
||||
'date.default-latitude' => 'datetime.configuration.php#ini.date.default-latitude',
|
||||
'date.default-longitude' => 'datetime.configuration.php#ini.date.default-longitude',
|
||||
'date.sunrise-zenith' => 'datetime.configuration.php#ini.date.sunrise-zenith',
|
||||
'date.sunset-zenith' => 'datetime.configuration.php#ini.date.sunset-zenith',
|
||||
'filter.default' => 'filter.configuration.php#ini.filter.default',
|
||||
'filter.default-flags' => 'filter.configuration.php#ini.filter.default-flags',
|
||||
'sqlite.assoc-case' => 'sqlite.configuration.php#ini.sqlite.assoc-case',
|
||||
'pcre.backtrack-limit' => 'pcre.configuration.php#ini.pcre.backtrack-limit',
|
||||
'pcre.recursion-limit' => 'pcre.configuration.php#ini.pcre.recursion-limit',
|
||||
'pdo-odbc.connection-pooling' => 'ref.pdo-odbc.php#ini.pdo-odbc.connection-pooling',
|
||||
'phar.readonly' => 'phar.configuration.php#ini.phar.readonly',
|
||||
'phar.require-hash' => 'phar.configuration.php#ini.phar.require-hash',
|
||||
'define-syslog-variables' => 'network.configuration.php#ini.define-syslog-variables',
|
||||
'smtp' => 'mail.configuration.php#ini.smtp',
|
||||
'smtp-port' => 'mail.configuration.php#ini.smtp-port',
|
||||
'sendmail-from' => 'mail.configuration.php#ini.sendmail-from',
|
||||
'sendmail-path' => 'mail.configuration.php#ini.sendmail-path',
|
||||
'sql.safe-mode' => 'ini.core.php#ini.sql.safe-mode',
|
||||
'odbc.default-db' => 'odbc.configuration.php#ini.uodbc.default-db',
|
||||
'odbc.default-user' => 'odbc.configuration.php#ini.uodbc.default-user',
|
||||
'odbc.default-pw' => 'odbc.configuration.php#ini.uodbc.default-pw',
|
||||
'odbc.allow-persistent' => 'odbc.configuration.php#ini.uodbc.allow-persistent',
|
||||
'odbc.check-persistent' => 'odbc.configuration.php#ini.uodbc.check-persistent',
|
||||
'odbc.max-persistent' => 'odbc.configuration.php#ini.uodbc.max-persistent',
|
||||
'odbc.max-links' => 'odbc.configuration.php#ini.uodbc.max-links',
|
||||
'odbc.defaultlrl' => 'odbc.configuration.php#ini.uodbc.defaultlrl',
|
||||
'odbc.defaultbinmode' => 'odbc.configuration.php#ini.uodbc.defaultbinmode',
|
||||
'mysql.allow-local-infile' => 'mysql.configuration.php#ini.mysql.allow-local-infile',
|
||||
'mysql.allow-persistent' => 'mysql.configuration.php#ini.mysql.allow-persistent',
|
||||
'mysql.max-persistent' => 'mysql.configuration.php#ini.mysql.max-persistent',
|
||||
'mysql.max-links' => 'mysql.configuration.php#ini.mysql.max-links',
|
||||
'mysql.default-port' => 'mysql.configuration.php#ini.mysql.default-port',
|
||||
'mysql.default-socket' => 'mysql.configuration.php#ini.mysql.default-socket',
|
||||
'mysql.default-host' => 'mysql.configuration.php#ini.mysql.default-host',
|
||||
'mysql.default-user' => 'mysql.configuration.php#ini.mysql.default-user',
|
||||
'mysql.default-password' => 'mysql.configuration.php#ini.mysql.default-password',
|
||||
'mysql.connect-timeout' => 'mysql.configuration.php#ini.mysql.connect-timeout',
|
||||
'mysql.trace-mode' => 'mysql.configuration.php#ini.mysql.trace-mode',
|
||||
'mysqli.allow-local-infile' => 'mysqli.configuration.php#ini.mysqli.allow-local-infile',
|
||||
'mysqli.max-links' => 'mysqli.configuration.php#ini.mysqli.max-links',
|
||||
'mysqli.allow-persistent' => 'mysqli.configuration.php#ini.mysqli.allow-persistent',
|
||||
'mysqli.default-port' => 'mysqli.configuration.php#ini.mysqli.default-port',
|
||||
'mysqli.default-socket' => 'mysqli.configuration.php#ini.mysqli.default-socket',
|
||||
'mysqli.default-host' => 'mysqli.configuration.php#ini.mysqli.default-host',
|
||||
'mysqli.default-user' => 'mysqli.configuration.php#ini.mysqli.default-user',
|
||||
'mysqli.default-pw' => 'mysqli.configuration.php#ini.mysqli.default-pw',
|
||||
'oci8.privileged-connect' => 'oci8.configuration.php#ini.oci8.privileged-connect',
|
||||
'oci8.max-persistent' => 'oci8.configuration.php#ini.oci8.max-persistent',
|
||||
'oci8.persistent-timeout' => 'oci8.configuration.php#ini.oci8.persistent-timeout',
|
||||
'oci8.ping-interval' => 'oci8.configuration.php#ini.oci8.ping-interval',
|
||||
'oci8.statement-cache-size' => 'oci8.configuration.php#ini.oci8.statement-cache-size',
|
||||
'oci8.default-prefetch' => 'oci8.configuration.php#ini.oci8.default-prefetch',
|
||||
'oci8.old-oci-close-semantics' => 'oci8.configuration.php#ini.oci8.old-oci-close-semantics',
|
||||
'opcache.preload' => 'opcache.configuration.php#ini.opcache.preload',
|
||||
'pgsql.allow-persistent' => 'pgsql.configuration.php#ini.pgsql.allow-persistent',
|
||||
'pgsql.auto-reset-persistent' => 'pgsql.configuration.php#ini.pgsql.auto-reset-persistent',
|
||||
'pgsql.max-persistent' => 'pgsql.configuration.php#ini.pgsql.max-persistent',
|
||||
'pgsql.max-links' => 'pgsql.configuration.php#ini.pgsql.max-links',
|
||||
'pgsql.ignore-notice' => 'pgsql.configuration.php#ini.pgsql.ignore-notice',
|
||||
'pgsql.log-notice' => 'pgsql.configuration.php#ini.pgsql.log-notice',
|
||||
'sqlite3.extension-dir' => 'sqlite3.configuration.php#ini.sqlite3.extension-dir',
|
||||
'sybct.allow-persistent' => 'sybase.configuration.php#ini.sybct.allow-persistent',
|
||||
'sybct.max-persistent' => 'sybase.configuration.php#ini.sybct.max-persistent',
|
||||
'sybct.max-links' => 'sybase.configuration.php#ini.sybct.max-links',
|
||||
'sybct.min-server-severity' => 'sybase.configuration.php#ini.sybct.min-server-severity',
|
||||
'sybct.min-client-severity' => 'sybase.configuration.php#ini.sybct.min-client-severity',
|
||||
'sybct.timeout' => 'sybase.configuration.php#ini.sybct.timeout',
|
||||
'bcmath.scale' => 'bc.configuration.php#ini.bcmath.scale',
|
||||
'browscap' => 'misc.configuration.php#ini.browscap',
|
||||
'session.save-handler' => 'session.configuration.php#ini.session.save-handler',
|
||||
'session.save-path' => 'session.configuration.php#ini.session.save-path',
|
||||
'session.use-cookies' => 'session.configuration.php#ini.session.use-cookies',
|
||||
'session.cookie-secure' => 'session.configuration.php#ini.session.cookie-secure',
|
||||
'session.use-only-cookies' => 'session.configuration.php#ini.session.use-only-cookies',
|
||||
'session.name' => 'session.configuration.php#ini.session.name',
|
||||
'session.auto-start' => 'session.configuration.php#ini.session.auto-start',
|
||||
'session.cookie-lifetime' => 'session.configuration.php#ini.session.cookie-lifetime',
|
||||
'session.cookie-path' => 'session.configuration.php#ini.session.cookie-path',
|
||||
'session.cookie-domain' => 'session.configuration.php#ini.session.cookie-domain',
|
||||
'session.cookie-httponly' => 'session.configuration.php#ini.session.cookie-httponly',
|
||||
'session.serialize-handler' => 'session.configuration.php#ini.session.serialize-handler',
|
||||
'session.gc-probability' => 'session.configuration.php#ini.session.gc-probability',
|
||||
'session.gc-divisor' => 'session.configuration.php#ini.session.gc-divisor',
|
||||
'session.gc-maxlifetime' => 'session.configuration.php#ini.session.gc-maxlifetime',
|
||||
'session.bug-compat-42' => 'session.configuration.php#ini.session.bug-compat-42',
|
||||
'session.bug-compat-warn' => 'session.configuration.php#ini.session.bug-compat-warn',
|
||||
'session.referer-check' => 'session.configuration.php#ini.session.referer-check',
|
||||
'session.entropy-length' => 'session.configuration.php#ini.session.entropy-length',
|
||||
'session.entropy-file' => 'session.configuration.php#ini.session.entropy-file',
|
||||
'session.cache-limiter' => 'session.configuration.php#ini.session.cache-limiter',
|
||||
'session.cache-expire' => 'session.configuration.php#ini.session.cache-expire',
|
||||
'session.sid-length' => 'session.configuration.php#ini.session.sid-length',
|
||||
'session.use-trans-sid' => 'session.configuration.php#ini.session.use-trans-sid',
|
||||
'session.hash-function' => 'session.configuration.php#ini.session.hash-function',
|
||||
'session.hash-bits-per-character' => 'session.configuration.php#ini.session.hash-bits-per-character',
|
||||
'session.upload-progress.enabled' => 'session.configuration.php#ini.session.upload-progress.enabled',
|
||||
'session.upload-progress.cleanup' => 'session.configuration.php#ini.session.upload-progress.cleanup',
|
||||
'session.upload-progress.prefix' => 'session.configuration.php#ini.session.upload-progress.prefix',
|
||||
'session.upload-progress.name' => 'session.configuration.php#ini.session.upload-progress.name',
|
||||
'session.upload-progress.freq' => 'session.configuration.php#ini.session.upload-progress.freq',
|
||||
'session.upload-progress.min-freq' => 'session.configuration.php#ini.session.upload-progress.min-freq',
|
||||
'url-rewriter.tags' => 'session.configuration.php#ini.url-rewriter.tags',
|
||||
'assert.active' => 'info.configuration.php#ini.assert.active',
|
||||
'assert.exception' => 'info.configuration.php#ini.assert.exception',
|
||||
'assert.warning' => 'info.configuration.php#ini.assert.warning',
|
||||
'assert.bail' => 'info.configuration.php#ini.assert.bail',
|
||||
'assert.callback' => 'info.configuration.php#ini.assert.callback',
|
||||
'assert.quiet-eval' => 'info.configuration.php#ini.assert.quiet-eval',
|
||||
'zend.enable-gc' => 'info.configuration.php#ini.zend.enable-gc',
|
||||
'com.typelib-file' => 'com.configuration.php#ini.com.typelib-file',
|
||||
'com.allow-dcom' => 'com.configuration.php#ini.com.allow-dcom',
|
||||
'com.autoregister-typelib' => 'com.configuration.php#ini.com.autoregister-typelib',
|
||||
'com.autoregister-casesensitive'=> 'com.configuration.php#ini.com.autoregister-casesensitive',
|
||||
'com.autoregister-verbose' => 'com.configuration.php#ini.com.autoregister-verbose',
|
||||
'mbstring.language' => 'mbstring.configuration.php#ini.mbstring.language',
|
||||
'mbstring.internal-encoding' => 'mbstring.configuration.php#ini.mbstring.internal-encoding',
|
||||
'mbstring.http-input' => 'mbstring.configuration.php#ini.mbstring.http-input',
|
||||
'mbstring.http-output' => 'mbstring.configuration.php#ini.mbstring.http-output',
|
||||
'mbstring.encoding-translation' => 'mbstring.configuration.php#ini.mbstring.encoding-translation',
|
||||
'mbstring.detect-order' => 'mbstring.configuration.php#ini.mbstring.detect-order',
|
||||
'mbstring.substitute-character' => 'mbstring.configuration.php#ini.mbstring.substitute-character',
|
||||
'mbstring.func-overload' => 'mbstring.configuration.php#ini.mbstring.func-overload',
|
||||
'gd.jpeg-ignore-warning' => 'image.configuration.php#ini.image.jpeg-ignore-warning',
|
||||
'exif.encode-unicode' => 'exif.configuration.php#ini.exif.encode-unicode',
|
||||
'exif.decode-unicode-motorola' => 'exif.configuration.php#ini.exif.decode-unicode-motorola',
|
||||
'exif.decode-unicode-intel' => 'exif.configuration.php#ini.exif.decode-unicode-intel',
|
||||
'exif.encode-jis' => 'exif.configuration.php#ini.exif.encode-jis',
|
||||
'exif.decode-jis-motorola' => 'exif.configuration.php#ini.exif.decode-jis-motorola',
|
||||
'exif.decode-jis-intel' => 'exif.configuration.php#ini.exif.decode-jis-intel',
|
||||
'tidy.default-config' => 'tidy.configuration.php#ini.tidy.default-config',
|
||||
'tidy.clean-output' => 'tidy.configuration.php#ini.tidy.clean-output',
|
||||
'soap.wsdl-cache-enabled' => 'soap.configuration.php#ini.soap.wsdl-cache-enabled',
|
||||
'soap.wsdl-cache-dir' => 'soap.configuration.php#ini.soap.wsdl-cache-dir',
|
||||
'soap.wsdl-cache-ttl' => 'soap.configuration.php#ini.soap.wsdl-cache-ttl',
|
||||
];
|
||||
|
||||
return $inis[$ini] ?? null;
|
||||
return $inis[$ini] ?? null;
|
||||
}
|
||||
|
||||
function is_known_variable(string $variable): ?string {
|
||||
$variables = [
|
||||
// Variables
|
||||
'globals' => 'reserved.variables.globals.php',
|
||||
'-server' => 'reserved.variables.server.php',
|
||||
'-get' => 'reserved.variables.get.php',
|
||||
'-post' => 'reserved.variables.post.php',
|
||||
'-files' => 'reserved.variables.files.php',
|
||||
'-request' => 'reserved.variables.request.php',
|
||||
'-session' => 'reserved.variables.session.php',
|
||||
'-cookie' => 'reserved.variables.cookies.php',
|
||||
'-env' => 'reserved.variables.environment.php',
|
||||
'this' => 'language.oop5.basic.php',
|
||||
'php-errormsg' => 'reserved.variables.phperrormsg.php',
|
||||
'argv' => 'reserved.variables.argv.php',
|
||||
'argc' => 'reserved.variables.argc.php',
|
||||
'http-raw-post-data' => 'reserved.variables.httprawpostdata.php',
|
||||
'http-response-header' => 'reserved.variables.httpresponseheader.php',
|
||||
'http-server-vars' => 'reserved.variables.server.php',
|
||||
'http-get-vars' => 'reserved.variables.get.php',
|
||||
'http-post-vars' => 'reserved.variables.post.php',
|
||||
'http-session-vars' => 'reserved.variables.session.php',
|
||||
'http-post-files' => 'reserved.variables.files.php',
|
||||
'http-cookie-vars' => 'reserved.variables.cookies.php',
|
||||
'http-env-vars' => 'reserved.variables.env.php',
|
||||
];
|
||||
$variables = [
|
||||
// Variables
|
||||
'globals' => 'reserved.variables.globals.php',
|
||||
'-server' => 'reserved.variables.server.php',
|
||||
'-get' => 'reserved.variables.get.php',
|
||||
'-post' => 'reserved.variables.post.php',
|
||||
'-files' => 'reserved.variables.files.php',
|
||||
'-request' => 'reserved.variables.request.php',
|
||||
'-session' => 'reserved.variables.session.php',
|
||||
'-cookie' => 'reserved.variables.cookies.php',
|
||||
'-env' => 'reserved.variables.environment.php',
|
||||
'this' => 'language.oop5.basic.php',
|
||||
'php-errormsg' => 'reserved.variables.phperrormsg.php',
|
||||
'argv' => 'reserved.variables.argv.php',
|
||||
'argc' => 'reserved.variables.argc.php',
|
||||
'http-raw-post-data' => 'reserved.variables.httprawpostdata.php',
|
||||
'http-response-header' => 'reserved.variables.httpresponseheader.php',
|
||||
'http-server-vars' => 'reserved.variables.server.php',
|
||||
'http-get-vars' => 'reserved.variables.get.php',
|
||||
'http-post-vars' => 'reserved.variables.post.php',
|
||||
'http-session-vars' => 'reserved.variables.session.php',
|
||||
'http-post-files' => 'reserved.variables.files.php',
|
||||
'http-cookie-vars' => 'reserved.variables.cookies.php',
|
||||
'http-env-vars' => 'reserved.variables.env.php',
|
||||
];
|
||||
|
||||
return $variables[ltrim($variable, '$')] ?? null;
|
||||
return $variables[ltrim($variable, '$')] ?? null;
|
||||
}
|
||||
|
||||
function is_known_term (string $term): ?string {
|
||||
$terms = [
|
||||
'<>' => 'language.operators.comparison.php',
|
||||
'<=>' => 'language.operators.comparison.php',
|
||||
'spaceship' => 'language.operators.comparison.php',
|
||||
'==' => 'language.operators.comparison.php',
|
||||
'===' => 'language.operators.comparison.php',
|
||||
'@' => 'language.operators.errorcontrol.php',
|
||||
'apache' => 'install.php',
|
||||
'array' => 'language.types.array.php',
|
||||
'arrays' => 'language.types.array.php',
|
||||
'case' => 'control-structures.switch.php',
|
||||
'catch' => 'language.exceptions.php',
|
||||
'checkbox' => 'faq.html.php',
|
||||
'class' => 'language.oop5.basic.php',
|
||||
'classes' => 'language.oop5.basic.php',
|
||||
'closures' => 'functions.anonymous.php',
|
||||
'cookie' => 'features.cookies.php',
|
||||
'date' => 'function.date.php',
|
||||
'exception' => 'language.exceptions.php',
|
||||
'extends' => 'language.oop5.basic.php#language.oop5.basic.extends',
|
||||
'file' => 'function.file.php',
|
||||
'finally' => 'language.exceptions.php',
|
||||
'fopen' => 'function.fopen.php',
|
||||
'for' => 'control-structures.for.php',
|
||||
'foreach' => 'control-structures.foreach.php',
|
||||
'form' => 'language.variables.external.php',
|
||||
'forms' => 'language.variables.external.php',
|
||||
'function' => 'language.functions.php',
|
||||
'gd' => 'book.image.php',
|
||||
'get' => 'reserved.variables.get.php',
|
||||
'global' => 'language.variables.scope.php',
|
||||
'globals' => 'language.variables.scope.php',
|
||||
'header' => 'function.header.php',
|
||||
'heredoc' => 'language.types.string.php#language.types.string.syntax.heredoc',
|
||||
'nowdoc' => 'language.types.string.php#language.types.string.syntax.nowdoc',
|
||||
'htaccess' => 'configuration.file.php',
|
||||
'if' => 'control-structures.if.php',
|
||||
'include' => 'function.include.php',
|
||||
'int' => 'language.types.integer.php',
|
||||
'ip' => 'reserved.variables.server.php',
|
||||
'iterable' => 'language.types.iterable.php',
|
||||
'juggling' => 'language.types.type-juggling.php',
|
||||
'location' => 'function.header.php',
|
||||
'mail' => 'function.mail.php',
|
||||
'modulo' => 'language.operators.arithmetic.php',
|
||||
'mysql' => 'mysql.php',
|
||||
'new' => 'language.oop5.basic.php#language.oop5.basic.new',
|
||||
'null' => 'language.types.null.php',
|
||||
'object' => 'language.types.object.php',
|
||||
'operator' => 'language.operators.php',
|
||||
'operators' => 'language.operators.php',
|
||||
'or' => 'language.operators.logical.php',
|
||||
'php.ini' => 'configuration.file.php',
|
||||
'php-mysql.dll' => 'book.mysql.php',
|
||||
'php-self' => 'reserved.variables.server.php',
|
||||
'query-string' => 'reserved.variables.server.php',
|
||||
'redirect' => 'function.header.php',
|
||||
'reference' => 'index.php',
|
||||
'referer' => 'reserved.variables.server.php',
|
||||
'referrer' => 'reserved.variables.server.php',
|
||||
'remote-addr' => 'reserved.variables.server.php',
|
||||
'request' => 'reserved.variables.request.php',
|
||||
'session' => 'features.sessions.php',
|
||||
'smtp' => 'book.mail.php',
|
||||
'ssl' => 'book.openssl.php',
|
||||
'static' => 'language.oop5.static.php',
|
||||
'stdin' => 'wrappers.php.php',
|
||||
'string' => 'language.types.string.php',
|
||||
'superglobal' => 'language.variables.superglobals.php',
|
||||
'superglobals' => 'language.variables.superglobals.php',
|
||||
'switch' => 'control-structures.switch.php',
|
||||
'timestamp' => 'function.time.php',
|
||||
'try' => 'language.exceptions.php',
|
||||
'upload' => 'features.file-upload.php',
|
||||
];
|
||||
$terms = [
|
||||
'<>' => 'language.operators.comparison.php',
|
||||
'<=>' => 'language.operators.comparison.php',
|
||||
'spaceship' => 'language.operators.comparison.php',
|
||||
'==' => 'language.operators.comparison.php',
|
||||
'===' => 'language.operators.comparison.php',
|
||||
'@' => 'language.operators.errorcontrol.php',
|
||||
'apache' => 'install.php',
|
||||
'array' => 'language.types.array.php',
|
||||
'arrays' => 'language.types.array.php',
|
||||
'case' => 'control-structures.switch.php',
|
||||
'catch' => 'language.exceptions.php',
|
||||
'checkbox' => 'faq.html.php',
|
||||
'class' => 'language.oop5.basic.php',
|
||||
'classes' => 'language.oop5.basic.php',
|
||||
'closures' => 'functions.anonymous.php',
|
||||
'cookie' => 'features.cookies.php',
|
||||
'date' => 'function.date.php',
|
||||
'exception' => 'language.exceptions.php',
|
||||
'extends' => 'language.oop5.basic.php#language.oop5.basic.extends',
|
||||
'file' => 'function.file.php',
|
||||
'finally' => 'language.exceptions.php',
|
||||
'fopen' => 'function.fopen.php',
|
||||
'for' => 'control-structures.for.php',
|
||||
'foreach' => 'control-structures.foreach.php',
|
||||
'form' => 'language.variables.external.php',
|
||||
'forms' => 'language.variables.external.php',
|
||||
'function' => 'language.functions.php',
|
||||
'gd' => 'book.image.php',
|
||||
'get' => 'reserved.variables.get.php',
|
||||
'global' => 'language.variables.scope.php',
|
||||
'globals' => 'language.variables.scope.php',
|
||||
'header' => 'function.header.php',
|
||||
'heredoc' => 'language.types.string.php#language.types.string.syntax.heredoc',
|
||||
'nowdoc' => 'language.types.string.php#language.types.string.syntax.nowdoc',
|
||||
'htaccess' => 'configuration.file.php',
|
||||
'if' => 'control-structures.if.php',
|
||||
'include' => 'function.include.php',
|
||||
'int' => 'language.types.integer.php',
|
||||
'ip' => 'reserved.variables.server.php',
|
||||
'iterable' => 'language.types.iterable.php',
|
||||
'juggling' => 'language.types.type-juggling.php',
|
||||
'location' => 'function.header.php',
|
||||
'mail' => 'function.mail.php',
|
||||
'modulo' => 'language.operators.arithmetic.php',
|
||||
'mysql' => 'mysql.php',
|
||||
'new' => 'language.oop5.basic.php#language.oop5.basic.new',
|
||||
'null' => 'language.types.null.php',
|
||||
'object' => 'language.types.object.php',
|
||||
'operator' => 'language.operators.php',
|
||||
'operators' => 'language.operators.php',
|
||||
'or' => 'language.operators.logical.php',
|
||||
'php.ini' => 'configuration.file.php',
|
||||
'php-mysql.dll' => 'book.mysql.php',
|
||||
'php-self' => 'reserved.variables.server.php',
|
||||
'query-string' => 'reserved.variables.server.php',
|
||||
'redirect' => 'function.header.php',
|
||||
'reference' => 'index.php',
|
||||
'referer' => 'reserved.variables.server.php',
|
||||
'referrer' => 'reserved.variables.server.php',
|
||||
'remote-addr' => 'reserved.variables.server.php',
|
||||
'request' => 'reserved.variables.request.php',
|
||||
'session' => 'features.sessions.php',
|
||||
'smtp' => 'book.mail.php',
|
||||
'ssl' => 'book.openssl.php',
|
||||
'static' => 'language.oop5.static.php',
|
||||
'stdin' => 'wrappers.php.php',
|
||||
'string' => 'language.types.string.php',
|
||||
'superglobal' => 'language.variables.superglobals.php',
|
||||
'superglobals' => 'language.variables.superglobals.php',
|
||||
'switch' => 'control-structures.switch.php',
|
||||
'timestamp' => 'function.time.php',
|
||||
'try' => 'language.exceptions.php',
|
||||
'upload' => 'features.file-upload.php',
|
||||
];
|
||||
|
||||
return $terms[$term] ?? null;
|
||||
return $terms[$term] ?? null;
|
||||
}
|
||||
|
||||
/*
|
||||
Search snippet provider: A dirty proof-of-concept:
|
||||
This will probably live in sqlite one day, and be more intelligent (tagging?)
|
||||
This is a 100% hack currently, and let's hope temporary does not become permanent (Hello year 2014!)
|
||||
And this is English only today... we should add translation support via the manual, generated by PhD
|
||||
This will probably live in sqlite one day, and be more intelligent (tagging?)
|
||||
This is a 100% hack currently, and let's hope temporary does not become permanent (Hello year 2014!)
|
||||
And this is English only today... we should add translation support via the manual, generated by PhD
|
||||
|
||||
This really is a proof-of-concept, where the choices below are the most popular searched terms at php.net
|
||||
It should also take into account vague searches, such as 'global' and 'str'. The search works well enough for,
|
||||
most terms, so something like $_SERVER isn't really needed but it's defined below anyways...
|
||||
This really is a proof-of-concept, where the choices below are the most popular searched terms at php.net
|
||||
It should also take into account vague searches, such as 'global' and 'str'. The search works well enough for,
|
||||
most terms, so something like $_SERVER isn't really needed but it's defined below anyways...
|
||||
*/
|
||||
function is_known_snippet(string $term): ?string {
|
||||
$snippets = [
|
||||
'global' => '
|
||||
$snippets = [
|
||||
'global' => '
|
||||
The <b>global</b> keyword is used to manipulate <a href="/language.variables.scope">variable scope</a>, and
|
||||
there is also the concept of <a href="/language.variables.superglobals">super globals</a> in PHP,
|
||||
which are special variables with a global scope.',
|
||||
'string' => '
|
||||
'string' => '
|
||||
There is the <a href="/language.types.string">string type</a>, which is a scalar,
|
||||
and also many <a href="/ref.strings">string functions.</a>',
|
||||
'str' => '
|
||||
'str' => '
|
||||
Many <a href="/ref.strings">string functions</a> begin with <b>str</b>,
|
||||
and there is also the <a href="/language.types.string">string type</a>.',
|
||||
'_server' => '
|
||||
'_server' => '
|
||||
<a href="/reserved.variables.server">$_SERVER</a>
|
||||
is a <a href="/language.variables.superglobals">super global</a>,
|
||||
and is home to many predefined variables that are typically provided by a web server',
|
||||
'class' => '
|
||||
'class' => '
|
||||
A <a href="/language.oop5">class</a> is an OOP (Object Oriented Programming) concept,
|
||||
and PHP is both a procedural and OOP friendly language.',
|
||||
'function' => '
|
||||
'function' => '
|
||||
PHP contains thousands of functions. You might be interested in how a
|
||||
<a href="/language.functions">function is defined</a>, or
|
||||
<a href="/about.prototypes">how to read a function prototype</a>.
|
||||
See also the list of <a href="/extensions">PHP extensions</a>',
|
||||
];
|
||||
];
|
||||
|
||||
$term = ltrim(strtolower(trim($term)), '$');
|
||||
return $snippets[$term] ?? null;
|
||||
$term = ltrim(strtolower(trim($term)), '$');
|
||||
return $snippets[$term] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -135,24 +135,24 @@ function gpg_key_get(string $rm): ?string {
|
||||
|
||||
function gpg_key_get_branches(bool $activeOnly): array {
|
||||
$branches = [
|
||||
'8.2' => [ 'pierrick', 'ramsey', 'sergey' ],
|
||||
'8.1' => [ 'krakjoe', 'ramsey', 'patrickallaert' ],
|
||||
'8.0' => [ 'pollita', 'carusogabriel' ],
|
||||
'7.4' => [ 'derick', 'petk' ],
|
||||
'7.3' => [ 'cmb', 'stas' ],
|
||||
'7.2' => [ 'pollita', 'remi', 'cmb' ],
|
||||
'7.1' => [ 'davey', 'krakjoe', 'pollita' ],
|
||||
'7.0' => [ 'ab', 'tyrael' ],
|
||||
'5.6' => [ 'tyrael', 'jpauli' ],
|
||||
'5.5' => [ 'jpauli', 'dsp', 'stas' ],
|
||||
'5.4' => [ 'stas' ],
|
||||
'5.3' => [ 'dsp', 'johannes' ],
|
||||
'8.2' => ['pierrick', 'ramsey', 'sergey'],
|
||||
'8.1' => ['krakjoe', 'ramsey', 'patrickallaert'],
|
||||
'8.0' => ['pollita', 'carusogabriel'],
|
||||
'7.4' => ['derick', 'petk'],
|
||||
'7.3' => ['cmb', 'stas'],
|
||||
'7.2' => ['pollita', 'remi', 'cmb'],
|
||||
'7.1' => ['davey', 'krakjoe', 'pollita'],
|
||||
'7.0' => ['ab', 'tyrael'],
|
||||
'5.6' => ['tyrael', 'jpauli'],
|
||||
'5.5' => ['jpauli', 'dsp', 'stas'],
|
||||
'5.4' => ['stas'],
|
||||
'5.3' => ['dsp', 'johannes'],
|
||||
];
|
||||
|
||||
if (!$activeOnly) { return $branches; }
|
||||
|
||||
$active = get_active_branches();
|
||||
return array_filter($branches, function($branch) use ($active) {
|
||||
return array_filter($branches, function ($branch) use ($active) {
|
||||
[$major] = explode('.', $branch, 2);
|
||||
return isset($active[$major][$branch]);
|
||||
}, ARRAY_FILTER_USE_KEY);
|
||||
@@ -161,8 +161,8 @@ function gpg_key_get_branches(bool $activeOnly): array {
|
||||
function gpg_key_show_keys(bool $activeOnly): void {
|
||||
foreach (gpg_key_get_branches($activeOnly) as $branch => $rms) {
|
||||
$keys = array_filter(
|
||||
array_map(function($rm) { return gpg_key_get($rm); }, $rms),
|
||||
function($key) { return $key !== null; });
|
||||
array_map(function ($rm) { return gpg_key_get($rm); }, $rms),
|
||||
function ($key) { return $key !== null; });
|
||||
if (empty($keys)) { continue; }
|
||||
|
||||
$branch = htmlentities($branch, ENT_QUOTES, 'UTF-8');
|
||||
|
||||
@@ -23,7 +23,6 @@ foreach($css_files as $filename) {
|
||||
$CSS[$filename] = @filemtime($path);
|
||||
}
|
||||
|
||||
|
||||
if (isset($shortname) && $shortname) {
|
||||
header("Link: <$shorturl>; rel=shorturl");
|
||||
}
|
||||
|
||||
@@ -1,89 +1,89 @@
|
||||
<?php
|
||||
$historical_mirrors = array(
|
||||
array("ARG", "ar2.php.net", "XMundo Hosting Solutions", "http://www.xmundo.net"),
|
||||
array("ARM", "am1.php.net", "ARMINCO Global Telecommunications", "http://www.arminco.com/"),
|
||||
array("AUS", "au1.php.net", "Melbourne IT Pty Ltd", "https://www.melbourneit.com.au/"),
|
||||
array("AUS", "au2.php.net", "Servers Australia Pty. Ltd.", "http://www.serversaustralia.com.au/"),
|
||||
array("AUT", "at1.php.net", "Goodie Domain Service", "http://www.gdsw.at/"),
|
||||
array("AUT", "at2.php.net", "Yalwa Local Directory Services Austria", "http://www.yalwa.at/"),
|
||||
array("BGD", "bd1.php.net", "IS Pros Limited", "http://www.ispros.com.bd"),
|
||||
array("BEL", "be2.php.net", "Cu.be Solutions", "http://www.cu.be/"),
|
||||
array("BIH", "ba1.php.net", "BHTelecom", "https://www.bhtelecom.ba/"),
|
||||
array("BRA", "br1.php.net", "HostNet Internet", "http://www.hostnet.com.br"),
|
||||
array("BRA", "br2.php.net", "Umbler", "http://umbler.com"),
|
||||
array("BGR", "bg2.php.net", "Data.BG", "http://www.data.bg"),
|
||||
array("CAN", "ca1.php.net", "easyDNS", "http://www.easydns.com/"),
|
||||
array("CAN", "ca2.php.net", "Parasane, LLC", "http://www.parasane.net/"),
|
||||
array("CAN", "ca3.php.net", "egateDOMAINS", "http://www.egatedomains.ca/?RP=DJFEIWHFEWQ"),
|
||||
array("CHL", "cl1.php.net", "Caos Consultores", "http://www.caos.cl"),
|
||||
array("CHN", "cn2.php.net", "Sina App Engine (SAE)", "http://sae.sina.com.cn/"),
|
||||
array("CZE", "cz1.php.net", "Czech Technical University in Prague", "http://www.cvut.cz/"),
|
||||
array("CZE", "cz2.php.net", "Softaculous Ltd.", "http://www.softaculous.com/"),
|
||||
array("DNK", "dk1.php.net", "Siminn Denmark", "http://www.siminn.dk"),
|
||||
array("DNK", "dk2.php.net", "Kobalt", "http://kobalt.dk/"),
|
||||
array("EST", "ee1.php.net", "Zone Media LLC", "https://www.zone.ee/"),
|
||||
array("FIN", "fi1.php.net", "Avenla Oy", "http://www.avenla.fi/"),
|
||||
array("FIN", "fi2.php.net", "Planeetta Internet OY", "http://www.planeetta.net/"),
|
||||
array("FRA", "fr2.php.net", "Crihan", "http://www.crihan.fr/"),
|
||||
array("DEU", "de1.php.net", "@GLOBE GmbH", "http://www.globe.de/"),
|
||||
array("DEU", "de2.php.net", "Locanto Kleinanzeigen", "http://www.locanto.de/"),
|
||||
array("HKG", "hk1.php.net", "Nethub Online Limited", "http://www.nethub.com.hk/"),
|
||||
array("HKG", "hk2.php.net", "Website Solution Web Hosting", "http://www.website-solution.net/"),
|
||||
array("ISL", "is1.php.net", "Hýsingarfélagið ehf", "http://www.hysingar.is/"),
|
||||
array("ISL", "is2.php.net", "Dotgeek", "http://dotgeek.org/"),
|
||||
array("IND", "in1.php.net", "Directi Web Hosting", "http://www.directi.com"),
|
||||
array("IND", "in3.php.net", "IndiaLinks Web Hosting Pvt Ltd", "http://www.indialinks.com"),
|
||||
array("IDN", "id1.php.net", "PT Pasifik Satelit Nusantara", "http://www.pesat.net.id"),
|
||||
array("IRN", "ir1.php.net", "Golha.IR", "http://www.golha.ir/"),
|
||||
array("IRN", "ir2.php.net", "ParsPack.com", "http://parspack.com/"),
|
||||
array("IRL", "ie1.php.net", "Yalwa - Local Directory Services Ireland", "http://www.yalwa.ie/"),
|
||||
array("IRL", "ie2.php.net", "Hosting Ireland", "http://www.hostingireland.ie/"),
|
||||
array("ISR", "il1.php.net", "SPD HOSTING LTD", "http://www.spd.co.il/"),
|
||||
array("ITA", "it1.php.net", "Register.it", "http://www.register.it/"),
|
||||
array("ITA", "it2.php.net", "Interalta", "https://www.interalta.com/"),
|
||||
array("JAM", "jm2.php.net", "Teamopolis Sports Websites Inc.", "http://www.teamopolis.com/"),
|
||||
array("JPN", "jp1.php.net", "PacketBusiness, Inc.", "http://www.packetbusiness.com/"),
|
||||
array("JPN", "jp2.php.net", "snotch", "http://bloggers.ja.bz/sunouchi/"),
|
||||
array("KOR", "kr1.php.net", "ask.sarang.net", "http://ask.sarang.net"),
|
||||
array("LIE", "li1.php.net", "Telecom Liechtenstein AG", "http://www.telecom.li/"),
|
||||
array("LTU", "lt1.php.net", "UAB \"Interneto vizija\"", "http://serveriai.lt/"),
|
||||
array("LUX", "lu1.php.net", "root eSolutions ISP", "http://www.root.lu"),
|
||||
array("LVA", "lv1.php.net", "Māris Ozoliņš", "http://netparks.lv/"),
|
||||
array("LVA", "lv1.php.net", "Kaspars Foigts", "https://laacz.lv/"),
|
||||
array("MYS", "my1.php.net", "MaxDedicated", "http://www.maxdedicated.com/"),
|
||||
array("MEX", "mx1.php.net", "uServers Mexico", "http://www.uservers.net/?in=php"),
|
||||
array("MEX", "mx2.php.net", "Universidad Autónoma Metropolitana Azcapotzalco", "http://www.azc.uam.mx"),
|
||||
array("MDA", "md1.php.net", "dev.md", "http://www.dev.md/"),
|
||||
array("NCL", "nc1.php.net", "Nautile", "http://www.nautile.nc/"),
|
||||
array("NLD", "nl1.php.net", "Stream Service", "http://www.streamservice.nl/"),
|
||||
array("NLD", "nl3.php.net", "Computel Standby BV", "http://www.computel.nl/"),
|
||||
array("NZL", "nz2.php.net", "Catalyst IT Ltd", "http://catalyst.net.nz/"),
|
||||
array("NOR", "no1.php.net", "Pål Sollie", "https://sparkz.no/"),
|
||||
array("NOR", "no2.php.net", "Verdens Gang AS", "http://www.vg.no"),
|
||||
array("PAN", "pa1.php.net", "Unidominios", "http://www.unidominios.com/"),
|
||||
array("POL", "pl1.php.net", "WEBdev", "http://webdev.pl/"),
|
||||
array("ROU", "ro1.php.net", "SpiderVPS", "http://www.spidervps.com/"),
|
||||
array("RUS", "ru2.php.net", "Cronyx Plus LLC", "http://isp.rinet.ru/"),
|
||||
array("SGP", "sg2.php.net", "Xssist Group (Singapore) Pte Ltd", "http://www.xssist.com/"),
|
||||
array("ESP", "es1.php.net", "GRN Serveis Telematics", "http://www.grn.es/classic"),
|
||||
array("SVN", "si1.php.net", "DOMENAR.net", "http://www.domenar.net/"),
|
||||
array("SVN", "si2.php.net", "Domene in gostovanje NEOSERV", "http:///www.neoserv.si"),
|
||||
array("SWE", "se1.php.net", "Portlane AB", "http://www.portlane.com/"),
|
||||
array("SWE", "se2.php.net", "SpaceDump IT AB", "http://www.spacedump.se/"),
|
||||
array("ZAF", "za1.php.net", "AfriCC", "https://www.afri.cc/"),
|
||||
array("CHE", "ch1.php.net", "ComunidadHosting", "http://www.comunidadhosting.com/"),
|
||||
array("TWN", "tw1.php.net", "twemail.com", "http://twemail.com/"),
|
||||
array("TWN", "tw2.php.net", "www.mirror.tw", "http://www.mirror.tw/"),
|
||||
array("THA", "th1.php.net", "THAIWEB.network", "http://www.thaiweb.net"),
|
||||
array("TUR", "tr1.php.net", "İstanbul Teknik Üniversitesi Bilgi İşlem Daire Başkanlığı", "http://www.itu.edu.tr/"),
|
||||
array("TUR", "tr2.php.net", "DGN Teknoloji", "http://www.dgn.net.tr/"),
|
||||
array("TZA", "tz1.php.net", "Aptus Solutions", "http://aptus.co.tz"),
|
||||
array("UKR", "ua1.php.net", "ELRO Corporation", "http://elro.com"),
|
||||
array("UKR", "ua2.php.net", "Max Khaikin", "http://www.masterlogic.net/"),
|
||||
array("GBR", "uk1.php.net", "Camel Network", "http://camelnetwork.com/"),
|
||||
array("GBR", "uk3.php.net", "CatN PHP Hosting", "http://www.catn.com/"),
|
||||
array("USA", "us1.php.net", "NEXCESS.NET", "http://www.nexcess.net/"),
|
||||
array("USA", "us2.php.net", "Hurricane Electric", "http://he.net/"),
|
||||
array("USA", "us3.php.net", "C7 Data Centers", "https://www.c7.com/"),
|
||||
array("VNM", "vn1.php.net", "DigiStar Co., Ltd", "http://www.digistar.vn/"),
|
||||
array("ARG", "ar2.php.net", "XMundo Hosting Solutions", "http://www.xmundo.net"),
|
||||
array("ARM", "am1.php.net", "ARMINCO Global Telecommunications", "http://www.arminco.com/"),
|
||||
array("AUS", "au1.php.net", "Melbourne IT Pty Ltd", "https://www.melbourneit.com.au/"),
|
||||
array("AUS", "au2.php.net", "Servers Australia Pty. Ltd.", "http://www.serversaustralia.com.au/"),
|
||||
array("AUT", "at1.php.net", "Goodie Domain Service", "http://www.gdsw.at/"),
|
||||
array("AUT", "at2.php.net", "Yalwa Local Directory Services Austria", "http://www.yalwa.at/"),
|
||||
array("BGD", "bd1.php.net", "IS Pros Limited", "http://www.ispros.com.bd"),
|
||||
array("BEL", "be2.php.net", "Cu.be Solutions", "http://www.cu.be/"),
|
||||
array("BIH", "ba1.php.net", "BHTelecom", "https://www.bhtelecom.ba/"),
|
||||
array("BRA", "br1.php.net", "HostNet Internet", "http://www.hostnet.com.br"),
|
||||
array("BRA", "br2.php.net", "Umbler", "http://umbler.com"),
|
||||
array("BGR", "bg2.php.net", "Data.BG", "http://www.data.bg"),
|
||||
array("CAN", "ca1.php.net", "easyDNS", "http://www.easydns.com/"),
|
||||
array("CAN", "ca2.php.net", "Parasane, LLC", "http://www.parasane.net/"),
|
||||
array("CAN", "ca3.php.net", "egateDOMAINS", "http://www.egatedomains.ca/?RP=DJFEIWHFEWQ"),
|
||||
array("CHL", "cl1.php.net", "Caos Consultores", "http://www.caos.cl"),
|
||||
array("CHN", "cn2.php.net", "Sina App Engine (SAE)", "http://sae.sina.com.cn/"),
|
||||
array("CZE", "cz1.php.net", "Czech Technical University in Prague", "http://www.cvut.cz/"),
|
||||
array("CZE", "cz2.php.net", "Softaculous Ltd.", "http://www.softaculous.com/"),
|
||||
array("DNK", "dk1.php.net", "Siminn Denmark", "http://www.siminn.dk"),
|
||||
array("DNK", "dk2.php.net", "Kobalt", "http://kobalt.dk/"),
|
||||
array("EST", "ee1.php.net", "Zone Media LLC", "https://www.zone.ee/"),
|
||||
array("FIN", "fi1.php.net", "Avenla Oy", "http://www.avenla.fi/"),
|
||||
array("FIN", "fi2.php.net", "Planeetta Internet OY", "http://www.planeetta.net/"),
|
||||
array("FRA", "fr2.php.net", "Crihan", "http://www.crihan.fr/"),
|
||||
array("DEU", "de1.php.net", "@GLOBE GmbH", "http://www.globe.de/"),
|
||||
array("DEU", "de2.php.net", "Locanto Kleinanzeigen", "http://www.locanto.de/"),
|
||||
array("HKG", "hk1.php.net", "Nethub Online Limited", "http://www.nethub.com.hk/"),
|
||||
array("HKG", "hk2.php.net", "Website Solution Web Hosting", "http://www.website-solution.net/"),
|
||||
array("ISL", "is1.php.net", "Hýsingarfélagið ehf", "http://www.hysingar.is/"),
|
||||
array("ISL", "is2.php.net", "Dotgeek", "http://dotgeek.org/"),
|
||||
array("IND", "in1.php.net", "Directi Web Hosting", "http://www.directi.com"),
|
||||
array("IND", "in3.php.net", "IndiaLinks Web Hosting Pvt Ltd", "http://www.indialinks.com"),
|
||||
array("IDN", "id1.php.net", "PT Pasifik Satelit Nusantara", "http://www.pesat.net.id"),
|
||||
array("IRN", "ir1.php.net", "Golha.IR", "http://www.golha.ir/"),
|
||||
array("IRN", "ir2.php.net", "ParsPack.com", "http://parspack.com/"),
|
||||
array("IRL", "ie1.php.net", "Yalwa - Local Directory Services Ireland", "http://www.yalwa.ie/"),
|
||||
array("IRL", "ie2.php.net", "Hosting Ireland", "http://www.hostingireland.ie/"),
|
||||
array("ISR", "il1.php.net", "SPD HOSTING LTD", "http://www.spd.co.il/"),
|
||||
array("ITA", "it1.php.net", "Register.it", "http://www.register.it/"),
|
||||
array("ITA", "it2.php.net", "Interalta", "https://www.interalta.com/"),
|
||||
array("JAM", "jm2.php.net", "Teamopolis Sports Websites Inc.", "http://www.teamopolis.com/"),
|
||||
array("JPN", "jp1.php.net", "PacketBusiness, Inc.", "http://www.packetbusiness.com/"),
|
||||
array("JPN", "jp2.php.net", "snotch", "http://bloggers.ja.bz/sunouchi/"),
|
||||
array("KOR", "kr1.php.net", "ask.sarang.net", "http://ask.sarang.net"),
|
||||
array("LIE", "li1.php.net", "Telecom Liechtenstein AG", "http://www.telecom.li/"),
|
||||
array("LTU", "lt1.php.net", "UAB \"Interneto vizija\"", "http://serveriai.lt/"),
|
||||
array("LUX", "lu1.php.net", "root eSolutions ISP", "http://www.root.lu"),
|
||||
array("LVA", "lv1.php.net", "Māris Ozoliņš", "http://netparks.lv/"),
|
||||
array("LVA", "lv1.php.net", "Kaspars Foigts", "https://laacz.lv/"),
|
||||
array("MYS", "my1.php.net", "MaxDedicated", "http://www.maxdedicated.com/"),
|
||||
array("MEX", "mx1.php.net", "uServers Mexico", "http://www.uservers.net/?in=php"),
|
||||
array("MEX", "mx2.php.net", "Universidad Autónoma Metropolitana Azcapotzalco", "http://www.azc.uam.mx"),
|
||||
array("MDA", "md1.php.net", "dev.md", "http://www.dev.md/"),
|
||||
array("NCL", "nc1.php.net", "Nautile", "http://www.nautile.nc/"),
|
||||
array("NLD", "nl1.php.net", "Stream Service", "http://www.streamservice.nl/"),
|
||||
array("NLD", "nl3.php.net", "Computel Standby BV", "http://www.computel.nl/"),
|
||||
array("NZL", "nz2.php.net", "Catalyst IT Ltd", "http://catalyst.net.nz/"),
|
||||
array("NOR", "no1.php.net", "Pål Sollie", "https://sparkz.no/"),
|
||||
array("NOR", "no2.php.net", "Verdens Gang AS", "http://www.vg.no"),
|
||||
array("PAN", "pa1.php.net", "Unidominios", "http://www.unidominios.com/"),
|
||||
array("POL", "pl1.php.net", "WEBdev", "http://webdev.pl/"),
|
||||
array("ROU", "ro1.php.net", "SpiderVPS", "http://www.spidervps.com/"),
|
||||
array("RUS", "ru2.php.net", "Cronyx Plus LLC", "http://isp.rinet.ru/"),
|
||||
array("SGP", "sg2.php.net", "Xssist Group (Singapore) Pte Ltd", "http://www.xssist.com/"),
|
||||
array("ESP", "es1.php.net", "GRN Serveis Telematics", "http://www.grn.es/classic"),
|
||||
array("SVN", "si1.php.net", "DOMENAR.net", "http://www.domenar.net/"),
|
||||
array("SVN", "si2.php.net", "Domene in gostovanje NEOSERV", "http:///www.neoserv.si"),
|
||||
array("SWE", "se1.php.net", "Portlane AB", "http://www.portlane.com/"),
|
||||
array("SWE", "se2.php.net", "SpaceDump IT AB", "http://www.spacedump.se/"),
|
||||
array("ZAF", "za1.php.net", "AfriCC", "https://www.afri.cc/"),
|
||||
array("CHE", "ch1.php.net", "ComunidadHosting", "http://www.comunidadhosting.com/"),
|
||||
array("TWN", "tw1.php.net", "twemail.com", "http://twemail.com/"),
|
||||
array("TWN", "tw2.php.net", "www.mirror.tw", "http://www.mirror.tw/"),
|
||||
array("THA", "th1.php.net", "THAIWEB.network", "http://www.thaiweb.net"),
|
||||
array("TUR", "tr1.php.net", "İstanbul Teknik Üniversitesi Bilgi İşlem Daire Başkanlığı", "http://www.itu.edu.tr/"),
|
||||
array("TUR", "tr2.php.net", "DGN Teknoloji", "http://www.dgn.net.tr/"),
|
||||
array("TZA", "tz1.php.net", "Aptus Solutions", "http://aptus.co.tz"),
|
||||
array("UKR", "ua1.php.net", "ELRO Corporation", "http://elro.com"),
|
||||
array("UKR", "ua2.php.net", "Max Khaikin", "http://www.masterlogic.net/"),
|
||||
array("GBR", "uk1.php.net", "Camel Network", "http://camelnetwork.com/"),
|
||||
array("GBR", "uk3.php.net", "CatN PHP Hosting", "http://www.catn.com/"),
|
||||
array("USA", "us1.php.net", "NEXCESS.NET", "http://www.nexcess.net/"),
|
||||
array("USA", "us2.php.net", "Hurricane Electric", "http://he.net/"),
|
||||
array("USA", "us3.php.net", "C7 Data Centers", "https://www.c7.com/"),
|
||||
array("VNM", "vn1.php.net", "DigiStar Co., Ltd", "http://www.digistar.vn/"),
|
||||
);
|
||||
|
||||
@@ -210,8 +210,8 @@ function i2c_realip()
|
||||
// 192.168.0.0/16
|
||||
// Also skip RFC 6598 IP's
|
||||
if (!preg_match('/^(?:10|100\.(?:6[4-9]|[7-9]\d|1[01]\d|12[0-7])|172\.(?:1[6-9]|2\d|3[01])|192\.168)\./', $ips[$i]) && ip2long($ips[$i])) {
|
||||
$ip = $ips[$i];
|
||||
break;
|
||||
$ip = $ips[$i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ function language_choose_code()
|
||||
foreach ($browser_langs as $langdata) {
|
||||
|
||||
// Translation table for accept-language codes and phpdoc codes
|
||||
switch($langdata[0]) {
|
||||
switch ($langdata[0]) {
|
||||
case "pt-br" : $langdata[0] = 'pt_br'; break;
|
||||
case "zh-cn" : $langdata[0] = 'zh'; break;
|
||||
case "zh-hk" : $langdata[0] = 'hk'; break;
|
||||
@@ -163,7 +163,6 @@ function language_choose_code()
|
||||
return array($selected, $explicitly_specified, $parsed_langs);
|
||||
}
|
||||
|
||||
|
||||
// Add a language to the possible languages' list
|
||||
function language_add($langcode, &$langs)
|
||||
{
|
||||
|
||||
@@ -83,7 +83,7 @@ $INACTIVE_ONLINE_LANGUAGES = array(
|
||||
'sl' => 'Slovenian',
|
||||
'sv' => 'Swedish',
|
||||
'uk' => 'Ukrainian',
|
||||
);
|
||||
);
|
||||
|
||||
$ACTIVE_ONLINE_LANGUAGES = array_diff($LANGUAGES, $INACTIVE_ONLINE_LANGUAGES);
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@ function highlight_php($code, $return = FALSE)
|
||||
$highlighted = highlight_string($code, TRUE);
|
||||
|
||||
// Use this ugly hack for now to avoid code snippets with bad syntax screwing up the highlighter
|
||||
if(strstr($highlighted, "include/layout.inc</b>")) {
|
||||
$highlighted = '<span class="html">'. nl2br(htmlentities($code, ENT_HTML5), FALSE) ."</span>";
|
||||
}
|
||||
if (strstr($highlighted, "include/layout.inc</b>")) {
|
||||
$highlighted = '<span class="html">'. nl2br(htmlentities($code, ENT_HTML5), FALSE) ."</span>";
|
||||
}
|
||||
|
||||
// Fix output to use CSS classes and wrap well
|
||||
$highlighted = '<div class="phpcode">' . str_replace(
|
||||
@@ -62,7 +62,6 @@ function highlight_php_trimmed($code, $return = false)
|
||||
// Stats pages still need this
|
||||
function commonHeader($title) { site_header($title); }
|
||||
|
||||
|
||||
// Stats pages still need this
|
||||
function commonFooter() { site_footer(); }
|
||||
|
||||
@@ -206,7 +205,7 @@ function download_link($file, $title)
|
||||
$local_file = "distributions/$file";
|
||||
}
|
||||
|
||||
if(@file_exists($local_file.".asc")) {
|
||||
if (@file_exists($local_file.".asc")) {
|
||||
echo " ";
|
||||
$sig_link = "/distributions/$file.asc";
|
||||
print_link($sig_link, "(sig)");
|
||||
@@ -235,10 +234,10 @@ function sect_to_file($string) {
|
||||
$chap = "ref.$string.php";
|
||||
$feat = "features.$string.php";
|
||||
$struct = "control-structures.$string.php";
|
||||
if(@is_file($func)) return $func;
|
||||
else if(@is_file($chap)) return $chap;
|
||||
else if(@is_file($feat)) return $feat;
|
||||
else if(@is_file($struct)) return $struct;
|
||||
if (@is_file($func)) return $func;
|
||||
else if (@is_file($chap)) return $chap;
|
||||
else if (@is_file($feat)) return $feat;
|
||||
else if (@is_file($struct)) return $struct;
|
||||
else return "$string.php";
|
||||
}
|
||||
|
||||
@@ -293,10 +292,10 @@ function display_event($event, $include_date = 1)
|
||||
|
||||
// Recurring possibilities
|
||||
$re = array(
|
||||
1 => 'First',
|
||||
2 => 'Second',
|
||||
3 => 'Third',
|
||||
4 => 'Fourth',
|
||||
1 => 'First',
|
||||
2 => 'Second',
|
||||
3 => 'Third',
|
||||
4 => 'Fourth',
|
||||
-1 => 'Last',
|
||||
-2 => '2nd Last',
|
||||
-3 => '3rd Last'
|
||||
@@ -351,7 +350,7 @@ function display_event($event, $include_date = 1)
|
||||
}
|
||||
|
||||
// Event category
|
||||
if(isset($event['category']) && $event['category']) {
|
||||
if (isset($event['category']) && $event['category']) {
|
||||
$cat = array("unknown", "User Group Event", "Conference", "Training");
|
||||
echo ' [' . $cat[$event['category']] . '] ';
|
||||
}
|
||||
@@ -397,12 +396,12 @@ function print_news($news, $dog, $max = 5, $onlyyear = null, $return = false) {
|
||||
$retval = array();
|
||||
$count = 0;
|
||||
$news = $news ?: array(); // default to empty array (if no news)
|
||||
foreach($news as $item) {
|
||||
foreach ($news as $item) {
|
||||
$ok = false;
|
||||
|
||||
// Only print entries in the provided s/dog/cat/ egory
|
||||
// If $dog is null, everything matches
|
||||
foreach($item["category"] as $category) {
|
||||
foreach ($item["category"] as $category) {
|
||||
if (is_null($dog) || in_array($category["term"], (array)$dog)) {
|
||||
$ok = true;
|
||||
++$count;
|
||||
@@ -417,7 +416,7 @@ function print_news($news, $dog, $max = 5, $onlyyear = null, $return = false) {
|
||||
}
|
||||
|
||||
$image = "";
|
||||
if(isset($item["newsImage"])) {
|
||||
if (isset($item["newsImage"])) {
|
||||
$image = news_image($item["newsImage"]["link"], $item["newsImage"]["content"], $item["newsImage"]["title"], false);
|
||||
}
|
||||
|
||||
@@ -425,7 +424,7 @@ function print_news($news, $dog, $max = 5, $onlyyear = null, $return = false) {
|
||||
$id = $id["fragment"];
|
||||
|
||||
// Find the permlink
|
||||
foreach($item["link"] as $link) {
|
||||
foreach ($item["link"] as $link) {
|
||||
if ($link["rel"] === "via") {
|
||||
$permlink = $link["href"];
|
||||
break;
|
||||
@@ -471,9 +470,6 @@ EOT;
|
||||
return $retval;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
function site_header($title = '', $config = array())
|
||||
{
|
||||
global $MYSITE;
|
||||
@@ -488,10 +484,8 @@ function site_header($title = '', $config = array())
|
||||
"headsup" => "",
|
||||
);
|
||||
|
||||
|
||||
$config = array_merge($defaults, $config);
|
||||
|
||||
|
||||
$config["headsup"] = get_news_changes();
|
||||
|
||||
$lang = language_convert($config["lang"]);
|
||||
@@ -564,7 +558,7 @@ function news_toc($sections = null) {
|
||||
),
|
||||
);
|
||||
|
||||
foreach($items as $section => $menu) {
|
||||
foreach ($items as $section => $menu) {
|
||||
|
||||
// only print requested sections.
|
||||
if (is_array($sections) && !in_array($section, $sections)) {
|
||||
@@ -572,7 +566,7 @@ function news_toc($sections = null) {
|
||||
}
|
||||
|
||||
echo "<dt><a href='{$menu["link"]}'>{$menu["title"]}</a></dt>\n";
|
||||
foreach($menu["children"] as $child) {
|
||||
foreach ($menu["children"] as $child) {
|
||||
echo "<dd><a href='{$child["permlink"]}'>{$child["title"]}</a></dd>\n";
|
||||
}
|
||||
}
|
||||
@@ -628,12 +622,12 @@ function doc_toc_list($lang, $index, $file) {
|
||||
include __DIR__ . "/../manual/$lang/toc/$file.inc";
|
||||
|
||||
doc_toc_title($lang, $index, $file);
|
||||
foreach($TOC as $entry) {
|
||||
foreach ($TOC as $entry) {
|
||||
echo "\t<dd><a href='/manual/$lang/{$entry[0]}'>{$entry[1]}</a></dd>\n";
|
||||
}
|
||||
}
|
||||
function doc_toc_title($lang, $index, $file, $elm = "dt") {
|
||||
foreach($index as $entry) {
|
||||
foreach ($index as $entry) {
|
||||
if ($entry[0] == "$file.php") {
|
||||
$link = $entry[0];
|
||||
$title = $entry[1];
|
||||
|
||||
@@ -110,7 +110,7 @@ function find_manual_page($lang, $keyword)
|
||||
if (in_array('sqlite', PDO::getAvailableDrivers())) {
|
||||
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/backend/manual-lookup.sqlite')) {
|
||||
try {
|
||||
$dbh = new PDO( 'sqlite:' . $_SERVER['DOCUMENT_ROOT'] . '/backend/manual-lookup.sqlite', '', '', array( PDO::ATTR_PERSISTENT => TRUE, PDO::ATTR_EMULATE_PREPARES => TRUE) );
|
||||
$dbh = new PDO( 'sqlite:' . $_SERVER['DOCUMENT_ROOT'] . '/backend/manual-lookup.sqlite', '', '', array(PDO::ATTR_PERSISTENT => TRUE, PDO::ATTR_EMULATE_PREPARES => TRUE) );
|
||||
} catch (PDOException $e) {
|
||||
return find_manual_page_slow($lang, $keyword);
|
||||
}
|
||||
@@ -196,13 +196,12 @@ function find_manual_page($lang, $keyword)
|
||||
$r = $stm->fetch(PDO::FETCH_NUM);
|
||||
|
||||
if (isset($r[0])) {
|
||||
if(isset($r[1]) && $r[1] > 10 && strlen($keyword) < 4) {
|
||||
if (isset($r[1]) && $r[1] > 10 && strlen($keyword) < 4) {
|
||||
// "Match" found, but the keyword is so short
|
||||
// its probably bogus. Skip it
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// Match found
|
||||
// But does the file really exist?
|
||||
// @todo consider redirecting here, instead of including content within the 404
|
||||
|
||||
@@ -15,7 +15,7 @@ header("Content-type: text/html; charset=utf-8");
|
||||
header("Permissions-Policy: interest-cohort=()");
|
||||
|
||||
/* Fix Silly Same Origin Policies */
|
||||
(function() {
|
||||
(function () {
|
||||
if (!isset($_SERVER["HTTP_ORIGIN"])) {
|
||||
return;
|
||||
}
|
||||
@@ -49,7 +49,6 @@ if (ini_get("date.timezone") === "" && function_exists("date_default_timezone_se
|
||||
date_default_timezone_set("UTC");
|
||||
}
|
||||
|
||||
|
||||
/* Compatibility with the PHP webserver.. */
|
||||
if (!isset($_SERVER["SERVER_ADDR"])) {
|
||||
$_SERVER["SERVER_ADDR"] = "127.0.0.1";
|
||||
|
||||
28768
include/releases.inc
28768
include/releases.inc
File diff suppressed because it is too large
Load Diff
@@ -1,94 +1,94 @@
|
||||
<?php
|
||||
function search_results($res, $q, $profile='all', $per_page=10, $s=0, $l='en', $show_title=true, $show_foot=true, $show_attrib=true) {
|
||||
$start_result = $s;
|
||||
$end_result = $s + $res['ResultSet']['totalResultsReturned'] -1;
|
||||
$start_result = $s;
|
||||
$end_result = $s + $res['ResultSet']['totalResultsReturned'] -1;
|
||||
|
||||
$results_count = ($res['ResultSet']['totalResultsAvailable'] < 100 ? $res['ResultSet']['totalResultsAvailable'] : 'more than 100');
|
||||
$results_count = ($res['ResultSet']['totalResultsAvailable'] < 100 ? $res['ResultSet']['totalResultsAvailable'] : 'more than 100');
|
||||
|
||||
$disp_start_result = $start_result + 1;
|
||||
$disp_end_result = $end_result + 1;
|
||||
if($show_title) echo "<h2>Showing results $disp_start_result to $disp_end_result of $results_count</h2>\n";
|
||||
echo '<ul id="search-results">'."\n";
|
||||
$pos = $res['ResultSet']['firstResultPosition'];
|
||||
$disp_start_result = $start_result + 1;
|
||||
$disp_end_result = $end_result + 1;
|
||||
if($show_title) echo "<h2>Showing results $disp_start_result to $disp_end_result of $results_count</h2>\n";
|
||||
echo '<ul id="search-results">'."\n";
|
||||
$pos = $res['ResultSet']['firstResultPosition'];
|
||||
|
||||
$php_img_dir = 'http://www.php.net/images';
|
||||
$types = array(
|
||||
'pear' => '<img src="'. $php_img_dir .'/pear_item.gif" height="19" width="17" style="float:left; margin-left:-30px;"/>',
|
||||
'pecl' => '<img src="'. $php_img_dir .'/pecl_item.gif" height="19" width="17" style="float:left; margin-left:-30px;"/>',
|
||||
'pecl4win' => '<img src="'. $php_img_dir .'/pecl_item_win.gif" height="22" width="21" style="float:left; margin-left:-31px;"/>',
|
||||
'peclbugs' => '<img src="'. $php_img_dir .'/pecl_item_bug.gif" height="19" width="17" style="float:left; margin-left:-30px;"/>',
|
||||
'pearbugs' => '<img src="'. $php_img_dir .'/pear_item_bug.gif" height="19" width="17" style="float:left; margin-left:-30px;"/>',
|
||||
'talks' => '<img src="'. $php_img_dir .'/ele-icon.gif" height="20" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'snaps' => '<img src="'. $php_img_dir .'/logos/php_xpstyle_ico.png" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'cvsweb' => '<img src="'. $php_img_dir .'/logos/php_script_ico.png" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'viewcvs' => '<img src="'. $php_img_dir .'/logos/php_script_ico.png" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'news' => '<img src="'. $php_img_dir .'/logos/php-icon-white.gif" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'php' => '<img src="'. $php_img_dir .'/logos/php-icon-white.gif" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'doc' => '<img src="'. $php_img_dir .'/logos/php-icon-white.gif" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'bugs' => '<img src="'. $php_img_dir .'/php_bug.gif" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'gtk' => '<img src="'. $php_img_dir .'/logos/php-gtk-white.gif" height="26" width="32" style="float:left; margin-left:-40px;"/>'
|
||||
);
|
||||
$php_img_dir = 'http://www.php.net/images';
|
||||
$types = array(
|
||||
'pear' => '<img src="'. $php_img_dir .'/pear_item.gif" height="19" width="17" style="float:left; margin-left:-30px;"/>',
|
||||
'pecl' => '<img src="'. $php_img_dir .'/pecl_item.gif" height="19" width="17" style="float:left; margin-left:-30px;"/>',
|
||||
'pecl4win' => '<img src="'. $php_img_dir .'/pecl_item_win.gif" height="22" width="21" style="float:left; margin-left:-31px;"/>',
|
||||
'peclbugs' => '<img src="'. $php_img_dir .'/pecl_item_bug.gif" height="19" width="17" style="float:left; margin-left:-30px;"/>',
|
||||
'pearbugs' => '<img src="'. $php_img_dir .'/pear_item_bug.gif" height="19" width="17" style="float:left; margin-left:-30px;"/>',
|
||||
'talks' => '<img src="'. $php_img_dir .'/ele-icon.gif" height="20" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'snaps' => '<img src="'. $php_img_dir .'/logos/php_xpstyle_ico.png" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'cvsweb' => '<img src="'. $php_img_dir .'/logos/php_script_ico.png" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'viewcvs' => '<img src="'. $php_img_dir .'/logos/php_script_ico.png" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'news' => '<img src="'. $php_img_dir .'/logos/php-icon-white.gif" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'php' => '<img src="'. $php_img_dir .'/logos/php-icon-white.gif" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'doc' => '<img src="'. $php_img_dir .'/logos/php-icon-white.gif" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'bugs' => '<img src="'. $php_img_dir .'/php_bug.gif" height="32" width="32" style="float:left; margin-left:-40px;"/>',
|
||||
'gtk' => '<img src="'. $php_img_dir .'/logos/php-gtk-white.gif" height="26" width="32" style="float:left; margin-left:-40px;"/>'
|
||||
);
|
||||
|
||||
foreach($res['ResultSet']['Result'] as $i => $hit) {
|
||||
$cnt = $pos + $i;
|
||||
foreach($res['ResultSet']['Result'] as $i => $hit) {
|
||||
$cnt = $pos + $i;
|
||||
|
||||
$d = date('j M Y', $hit['ModificationDate']);
|
||||
$cachelink = '';
|
||||
if (isset($hit['Cache'])) {
|
||||
$cachelink = " - <a href=\"{$hit['Cache']}\">Cached</a>";
|
||||
}
|
||||
$d = date('j M Y', $hit['ModificationDate']);
|
||||
$cachelink = '';
|
||||
if (isset($hit['Cache'])) {
|
||||
$cachelink = " - <a href=\"{$hit['Cache']}\">Cached</a>";
|
||||
}
|
||||
|
||||
// rewrite mirrors urls (\w\w\d? or www, but not qa, doc, gtk and ~/user)
|
||||
$real_url = preg_replace('@^http://(?!doc|qa|gtk)\w{2,3}\.php\.net(?!/~)(.*)$@', '$1', $hit['Url']);
|
||||
$displayurl = preg_replace('@^http://(?:(?!doc|qa|php|gtk)\w{2,3}\.)?(.+[^/])/?$@', '$1', $hit['Url']);
|
||||
$type = substr($displayurl,0,strpos($displayurl,'.'));
|
||||
if($type=='pecl' && strstr($displayurl,"/bugs/")) $type = "peclbugs";
|
||||
if($type=='pear' && strstr($displayurl,"/bugs/")) $type = "pearbugs";
|
||||
if($type=='smarty') continue;
|
||||
$display_title = str_replace(array('PHP:', '&'), array('', '&'), $hit['Title']);
|
||||
// rewrite mirrors urls (\w\w\d? or www, but not qa, doc, gtk and ~/user)
|
||||
$real_url = preg_replace('@^http://(?!doc|qa|gtk)\w{2,3}\.php\.net(?!/~)(.*)$@', '$1', $hit['Url']);
|
||||
$displayurl = preg_replace('@^http://(?:(?!doc|qa|php|gtk)\w{2,3}\.)?(.+[^/])/?$@', '$1', $hit['Url']);
|
||||
$type = substr($displayurl,0,strpos($displayurl,'.'));
|
||||
if($type=='pecl' && strstr($displayurl,"/bugs/")) $type = "peclbugs";
|
||||
if($type=='pear' && strstr($displayurl,"/bugs/")) $type = "pearbugs";
|
||||
if($type=='smarty') continue;
|
||||
$display_title = str_replace(array('PHP:', '&'), array('', '&'), $hit['Title']);
|
||||
|
||||
// Fall back to the PHP logo for unknown hits
|
||||
if (!isset($types[$type])) {
|
||||
$type = "php";
|
||||
}
|
||||
// Fall back to the PHP logo for unknown hits
|
||||
if (!isset($types[$type])) {
|
||||
$type = "php";
|
||||
}
|
||||
|
||||
// Fix &gt; double escaping
|
||||
$summary = str_replace('&', '&', $hit['Summary']);
|
||||
$summary = htmlspecialchars($summary, ENT_QUOTES, 'UTF-8');
|
||||
echo <<<EOB
|
||||
// Fix &gt; double escaping
|
||||
$summary = str_replace('&', '&', $hit['Summary']);
|
||||
$summary = htmlspecialchars($summary, ENT_QUOTES, 'UTF-8');
|
||||
echo <<<EOB
|
||||
<li>
|
||||
<p class="result">{$types[$type]}<a href="{$real_url}">{$display_title}</a></p>
|
||||
<p class="summary">{$summary}</p>
|
||||
<p class="meta">{$displayurl} - {$d} {$cachelink}</p>
|
||||
</li>
|
||||
EOB;
|
||||
}
|
||||
echo "</ul>\n";
|
||||
if($show_attrib):
|
||||
echo <<<EOB
|
||||
}
|
||||
echo "</ul>\n";
|
||||
if($show_attrib):
|
||||
echo <<<EOB
|
||||
<span style="margin-left: 3em; margin-top: 1em; float: right; font-family: Verdana, Tahoma, Helvetica, Arial;
|
||||
font-size: 11px; color:#555;">results by <img style="margin-bottom:4px;" src="/images/bing.png" align="center"/></span>
|
||||
EOB;
|
||||
endif;
|
||||
if($show_foot):
|
||||
echo <<<EOB
|
||||
endif;
|
||||
if($show_foot):
|
||||
echo <<<EOB
|
||||
<div id="results_nav"><h4>Results Page:</h4>
|
||||
<ul id="results_nav_list">
|
||||
EOB;
|
||||
$start = 0;
|
||||
for($z=1; $z < 11; $z++) {
|
||||
if($start > $res['ResultSet']['totalResultsAvailable']) {
|
||||
break;
|
||||
}
|
||||
$start = 0;
|
||||
for($z=1; $z < 11; $z++) {
|
||||
if($start > $res['ResultSet']['totalResultsAvailable']) {
|
||||
break;
|
||||
}
|
||||
|
||||
$class = '';
|
||||
if ($start == $start_result) {
|
||||
$class = 'current';
|
||||
}
|
||||
|
||||
printf('<li class="%s"><a href="/results.php?q=%s&start=%d&p=%s&l=%s">%d</a></li>', $class, urlencode($q), $start, $profile, urlencode($l), $z);
|
||||
$start += $per_page;
|
||||
}
|
||||
echo '</ul></div>';
|
||||
endif;
|
||||
printf('<li class="%s"><a href="/results.php?q=%s&start=%d&p=%s&l=%s">%d</a></li>', $class, urlencode($q), $start, $profile, urlencode($l), $z);
|
||||
$start += $per_page;
|
||||
}
|
||||
echo '</ul></div>';
|
||||
endif;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ include_once __DIR__ . '/prepend.inc';
|
||||
// Set variable defaults
|
||||
$PGI = array(); $SIDEBAR_DATA = '';
|
||||
|
||||
|
||||
// =============================================================================
|
||||
// User note display functions
|
||||
// =============================================================================
|
||||
@@ -68,7 +67,7 @@ END_USERNOTE_HEADER;
|
||||
} else {
|
||||
// If we have notes, print them out
|
||||
echo '<div id="allnotes">';
|
||||
foreach($notes as $note) {
|
||||
foreach ($notes as $note) {
|
||||
manual_note_display(
|
||||
$note['xwhen'], $note['user'], $note['note'], $note['id'], $note['votes']
|
||||
);
|
||||
@@ -113,7 +112,7 @@ function manual_notes_load($id)
|
||||
}
|
||||
|
||||
// Print out one user note entry
|
||||
function manual_note_display($date, $name, $text, $id, $votes = array('up'=>0,'down'=>0), $voteOption = true)
|
||||
function manual_note_display($date, $name, $text, $id, $votes = array('up'=>0, 'down'=>0), $voteOption = true)
|
||||
{
|
||||
if ($name) {
|
||||
$name = "\n <strong class=\"user\"><em>" . htmlspecialchars($name) . "</em></strong>";
|
||||
@@ -197,10 +196,9 @@ USER_NOTE_TEXT;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function manual_navigation_breadcrumbs(array $setup) {
|
||||
$menu = array();
|
||||
foreach(array_reverse($setup["parents"]) as $parent) {
|
||||
foreach (array_reverse($setup["parents"]) as $parent) {
|
||||
$menu[] = array(
|
||||
"title" => $parent[1],
|
||||
"link" => $parent[0],
|
||||
@@ -220,7 +218,7 @@ function manual_navigation_breadcrumbs(array $setup) {
|
||||
|
||||
function manual_navigation_related(array $setup) {
|
||||
$siblings = array();
|
||||
foreach($setup['toc'] as $entry) {
|
||||
foreach ($setup['toc'] as $entry) {
|
||||
$siblings[] = array(
|
||||
"title" => manual_navigation_methodname($entry[1]),
|
||||
"link" => $entry[0],
|
||||
@@ -241,7 +239,7 @@ function manual_navigation_related(array $setup) {
|
||||
|
||||
function manual_navigation_deprecated(array $setup) {
|
||||
$methods = array();
|
||||
foreach((array)$setup['toc_deprecated'] as $entry) {
|
||||
foreach ((array)$setup['toc_deprecated'] as $entry) {
|
||||
$methods[] = array(
|
||||
"title" => manual_navigation_methodname($entry[1]),
|
||||
"link" => $entry[0],
|
||||
@@ -260,7 +258,7 @@ function manual_navigation_methodname($methodname) {
|
||||
}
|
||||
|
||||
// Add zero-width spaces to allow line-breaks at various characters
|
||||
return str_replace(array('-','_'), array('-​','_​'), $methodname);
|
||||
return str_replace(array('-', '_'), array('-​', '_​'), $methodname);
|
||||
}
|
||||
|
||||
// Set up variables important for this page
|
||||
@@ -407,12 +405,12 @@ function relTime(DateTime $date) {
|
||||
$current = new DateTime;
|
||||
$diff = $current->diff($date);
|
||||
$units = array("year" => $diff->format("%y"),
|
||||
"month" => $diff->format("%m"),
|
||||
"day" => $diff->format("%d"),
|
||||
"hour" => $diff->format("%h"),
|
||||
"minute" => $diff->format("%i"),
|
||||
"second" => $diff->format("%s"),
|
||||
);
|
||||
"month" => $diff->format("%m"),
|
||||
"day" => $diff->format("%d"),
|
||||
"hour" => $diff->format("%h"),
|
||||
"minute" => $diff->format("%i"),
|
||||
"second" => $diff->format("%s"),
|
||||
);
|
||||
$out = "just now...";
|
||||
foreach ($units as $unit => $amount) {
|
||||
if (empty($amount)) {
|
||||
|
||||
@@ -15,9 +15,9 @@ const MIRROR_DOESNOTWORK = 3;
|
||||
|
||||
$MIRRORS = array(
|
||||
"https://www.php.net/" => array(
|
||||
"DEU", "MyraCloud", FALSE,
|
||||
"https://myracloud.com/en/", MIRROR_SPECIAL, TRUE,
|
||||
"en", MIRROR_OK),
|
||||
"DEU", "MyraCloud", FALSE,
|
||||
"https://myracloud.com/en/", MIRROR_SPECIAL, TRUE,
|
||||
"en", MIRROR_OK),
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -166,28 +166,28 @@ function header_nocache()
|
||||
|
||||
function get_available_sqlites() {
|
||||
|
||||
$allsqlites = array(1 => 'sqlite', 2 => 'sqlite3', 4 => 'pdo_sqlite', 8 => 'pdo_sqlite2');
|
||||
$avail = 0;
|
||||
$allsqlites = array(1 => 'sqlite', 2 => 'sqlite3', 4 => 'pdo_sqlite', 8 => 'pdo_sqlite2');
|
||||
$avail = 0;
|
||||
|
||||
if (function_exists('sqlite_open')) {
|
||||
$avail += 1;
|
||||
}
|
||||
if (class_exists('sqlite3')) {
|
||||
$avail += 2;
|
||||
}
|
||||
if (method_exists('PDO', 'getavailabledrivers')) {
|
||||
foreach (PDO::getavailabledrivers() as $driver) {
|
||||
switch ($driver) {
|
||||
case 'sqlite':
|
||||
$avail += 4;
|
||||
break;
|
||||
case 'sqlite2':
|
||||
$avail += 8;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $avail;
|
||||
if (function_exists('sqlite_open')) {
|
||||
$avail += 1;
|
||||
}
|
||||
if (class_exists('sqlite3')) {
|
||||
$avail += 2;
|
||||
}
|
||||
if (method_exists('PDO', 'getavailabledrivers')) {
|
||||
foreach (PDO::getavailabledrivers() as $driver) {
|
||||
switch ($driver) {
|
||||
case 'sqlite':
|
||||
$avail += 4;
|
||||
break;
|
||||
case 'sqlite2':
|
||||
$avail += 8;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $avail;
|
||||
}
|
||||
|
||||
// Get all manual prefix search sections
|
||||
@@ -217,7 +217,7 @@ function get_shortname($page) {
|
||||
// We can atleast remove manual/xx/
|
||||
$shorturl = substr($page, strrpos($page, "/")+1);
|
||||
|
||||
foreach($sections as $section) {
|
||||
foreach ($sections as $section) {
|
||||
// If we know this section
|
||||
if (strpos($shorturl, $section) === 0) {
|
||||
// We can make it even shorter
|
||||
@@ -248,7 +248,7 @@ if (!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != "on") {
|
||||
$proto = "https";
|
||||
}
|
||||
|
||||
if($_SERVER["SERVER_PORT"] != '80' && $_SERVER["SERVER_PORT"] != 443) {
|
||||
if ($_SERVER["SERVER_PORT"] != '80' && $_SERVER["SERVER_PORT"] != 443) {
|
||||
$MYSITE = $proto . '://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/';
|
||||
$msite = 'http://' . $_SERVER["SERVER_NAME"] . ':' . (int)$_SERVER["SERVER_PORT"] . '/';
|
||||
} else {
|
||||
@@ -256,7 +256,6 @@ if($_SERVER["SERVER_PORT"] != '80' && $_SERVER["SERVER_PORT"] != 443) {
|
||||
$msite = 'https://' . $_SERVER["SERVER_NAME"] . '/';
|
||||
}
|
||||
|
||||
|
||||
// If the mirror is not registered with this name, provide defaults
|
||||
// (no country code, no search, no stats, English default language ...)
|
||||
if (!isset($MIRRORS[$MYSITE])) {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
* ),
|
||||
* );
|
||||
*/
|
||||
$RELEASES = (function() {
|
||||
$RELEASES = (function () {
|
||||
$data = [];
|
||||
|
||||
/* PHP 8.1 Release */
|
||||
@@ -93,5 +93,5 @@ function release_get_latest() {
|
||||
}
|
||||
}
|
||||
|
||||
return [ $version, $current ];
|
||||
return [$version, $current];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user