AIGC标识 简单的 PHP 扩展检测

<?php
/**
 * 简单的 PHP 扩展检测
 * 上传到网站目录,浏览器访问即可,用完请删除。
 */

header('Content-Type: text/html; charset=utf-8');

// ============ 1. 已加载的全部扩展 ============
$loaded = get_loaded_extensions();
sort($loaded, SORT_STRING);

// ============ 2. 常用扩展检查表 ============
$common = [
    'curl', 'openssl', 'mbstring', 'iconv', 'gd', 'imagick',
    'fileinfo', 'exif', 'zip', 'zlib', 'json',
    'pdo', 'pdo_mysql', 'mysqli', 'pdo_sqlite', 'sqlite3', 'pdo_pgsql',
    'redis', 'memcached', 'mongodb', 'apcu', 'opcache',
    'bcmath', 'gmp', 'intl', 'sodium',
    'dom', 'simplexml', 'xml', 'xmlreader', 'xsl', 'soap',
    'ldap', 'imap', 'ssh2', 'sockets', 'pcntl', 'posix',
    'xdebug', 'swoole', 'gettext',
];

$loadedLower = array_map('strtolower', $loaded);

// ============ 3. 基本信息 ============
$info = [
    'PHP 版本'   => PHP_VERSION,
    '运行方式'   => PHP_SAPI,
    '操作系统'   => PHP_OS,
    '扩展总数'   => count($loaded),
];
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>PHP 扩展检测</title>
<style>
    body{font:14px/1.6 -apple-system,"Microsoft YaHei",sans-serif;max-width:900px;margin:24px auto;padding:0 16px;color:#222}
    h1{font-size:20px}
    h2{font-size:16px;margin-top:28px;border-left:4px solid #2563eb;padding-left:8px}
    table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
    th,td{border:1px solid #ddd;padding:6px 10px;text-align:left}
    th{background:#f5f7fa}
    .ok{color:#15803d;font-weight:600}
    .no{color:#b91c1c;font-weight:600}
    .mono{font-family:Consolas,monospace}
    .info td:first-child{width:140px;background:#fafafa;font-weight:600}
</style>
</head>
<body>

<h1>PHP 扩展检测</h1>

<table class="info">
    <?php foreach ($info as $k => $v): ?>
        <tr><td><?= htmlspecialchars($k) ?></td><td class="mono"><?= htmlspecialchars((string)$v) ?></td></tr>
    <?php endforeach; ?>
</table>

<h2>常用扩展检查</h2>
<table>
    <tr><th style="width:160px">扩展</th><th>状态</th><th>版本</th></tr>
    <?php foreach ($common as $name):
        $has = in_array(strtolower($name), $loadedLower, true);
        // opcache 特殊:可能是 zend opcache
        if (!$has && $name === 'opcache' && in_array('zend opcache', $loadedLower, true)) {
            $has = true;
        }
        $ver = $has ? (phpversion($name) ?: '') : '';
        ?>
        <tr>
            <td class="mono"><?= htmlspecialchars($name) ?></td>
            <td class="<?= $has ? 'ok' : 'no' ?>"><?= $has ? '✓ 已安装' : '✗ 未安装' ?></td>
            <td class="mono"><?= htmlspecialchars((string)$ver) ?></td>
        </tr>
    <?php endforeach; ?>
</table>

<h2>已加载的全部扩展(<?= count($loaded) ?> 个)</h2>
<p class="mono" style="word-break:break-all;line-height:2">
    <?php foreach ($loaded as $ext): ?>
        <span style="background:#f1f4f9;border:1px solid #e2e6ec;border-radius:4px;padding:2px 8px;margin:2px;display:inline-block">
            <?= htmlspecialchars($ext) ?>
            <?php $v = phpversion($ext); if ($v): ?>
                <em style="color:#888;font-style:normal;font-size:11px"><?= htmlspecialchars((string)$v) ?></em>
            <?php endif; ?>
        </span>
    <?php endforeach; ?>
</p>

</body>
</html>

 

posted on 2026-09-30 08:55  小沙盒工作室  阅读(3)  评论(0)    收藏  举报