Článek vyšel v rámci PHP okénka na serveru Root.cz.
Zajímalo mě, jaké je zastoupení PHP v ČR. Díky firmě Nexen jsou k dispozici celosvětové statistiky, detailní rozdělení po jednotlivých státech však chybí.
Sběr dat byl realizován robotem, který se identifikoval jako Server version checker (https://php.vrana.cz/verze-php-v-cr.php?heslo=m7ezw846)
ve dnech 5. – 6. 1. 2006. Protokolem HTTP byly navštíveny všechny domény s koncovkou .cz
doplněné o začátek www.
. Robot pokládal dotazy HEAD na titulní stránku, přesměrování nebylo sledováno:
<?php $result = mysql_query("SELECT * FROM domeny ORDER BY id"); while ($row = mysql_fetch_assoc($result)) { $server = "NULL"; $fp = @fsockopen("www.$row[domena]", 80, $errno, $errstr, 5); if ($fp) { $server = "''"; fwrite($fp, "HEAD / HTTP/1.1\r\n"); fwrite($fp, "Host: www.$row[domena]\r\n"); fwrite($fp, "User-Agent: Server version checker (https://php.vrana.cz/verze-php-v-cr.php?heslo=m7ezw846)\r\n"); fwrite($fp, "Connection: close\r\n"); fwrite($fp, "\r\n"); while (($s = fgets($fp))) { if (eregi("^Server:(.*)", $s, $matches)) { $server = "'" . mysql_real_escape_string(trim($matches[1])) . "'"; break; } } fclose($fp); } mysql_query("UPDATE domeny SET server = $server WHERE id = $row[id]"); } mysql_free_result($result); ?>
Hodnota hlavičky přesahující jeden řádek bohužel nebyla zohledněna, výsledky by to však myslím příliš neovlivnilo.
celkem | 206244 | 100 % |
---|---|---|
nedostupné | 15124 | 7 % |
neuvedeno | 7591 | 4 % |
Apache | 139340 | 68 % |
Apache 1 | 48098 | 23 % |
Apache 2 | 27992 | 14 % |
IIS | 41035 | 20 % |
celkem PHP | 50702 | 25 % |
Serverům v české doméně jasně dominuje Apache, stále převládá verze 1, i když téměř u poloviny Apache serverů není verze uvedena. Pevné postavení má i MS Internet Information Server, všechny ostatní servery nemají dohromady ani 2 %. Jako nedostupné jsou uvedeny servery, ke kterým se nepodařilo připojit, neuvedeno zahrnuje servery, které hlavičku Server neposlaly.
<?php $celkem = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny"), 0); echo "<tr><th>celkem</th><td>$celkem</td><td>100 %</td></tr>\n"; foreach (array( "nedostupné" => "IS NULL", "neuvedeno" => "= ''", "Apache" => "LIKE '%Apache%'", "Apache 1" => "LIKE '%Apache/1%'", "Apache 2" => "LIKE '%Apache/2%'", "IIS" => "LIKE '%IIS%'", "celkem PHP" => "LIKE '%PHP%'", ) as $key => $val) { $pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server $val"), 0); echo "<tr><th>$key</th><td>$pocet</td><td>" . round(100 * $pocet / $celkem) . " %</td></tr>\n"; } ?>
PHP je k dispozici na čtvrtině serverů, ale vzhledem k nepoměru k výsledkům Apache usuzuji, že na spoustě dalších serverů bude přítomnost PHP skryta např. pomocí direktivy expose_php. Možná by stálo za to pokusit se odhadnout přítomnost PHP ještě nějak jinak, např. existencí odkazů na soubory s koncovkou .php
. Firmě Nexen vyšlo pro doménu .cz
pokrytí 39,79 % přesto, že používají obdobnou metodiku. Jediné vysvětlení, které mě napadá, je jiný výběr domén.
PHP | 50702 | 100 % |
---|---|---|
PHP 3 | 690 | 1 % |
PHP 4.0 | 301 | 1 % |
PHP 4.1 | 5116 | 10 % |
PHP 4.2 | 851 | 2 % |
PHP 4.3 | 27851 | 55 % |
PHP 4.4 | 12145 | 24 % |
PHP 5.0 | 3553 | 7 % |
PHP 5.1 | 521 | 1 % |
PHP 4 má pořád jasnou většinu, i když je možné spekulovat s tím, že svědomití správci instalující aktuální verze mají zároveň přítomnost PHP ukrytou, na obhájení mizivého zastoupení verze 5.1 to ale stačí jen stěží (i když např. server PHP triky je přesně příklad tohoto stavu).
<?php $celkem = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server LIKE '%PHP%'"), 0); echo "<tr><th>PHP</th><td>$celkem</td><td>100 %</td></tr>\n"; foreach (array("3", "4.0", "4.1", "4.2", "4.3", "4.4", "5.0", "5.1") as $val) { $pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM domeny WHERE server LIKE '%PHP/$val%'"), 0); echo "<tr><th>PHP $val</th><td>$pocet</td><td>" . round(100 * $pocet / $celkem) . " %</td></tr>\n"; } ?>
Součet jednotlivých verzí je větší než celkové zastoupení PHP kvůli serverům, které používají a uvádějí více verzí PHP zároveň.
Zastoupení PHP 5 je i rok a půl po uvedení této verze mizivé, jasnou většinu má v doméně .cz
stále verze PHP 4 a nic nenasvědčuje tomu, že by se do budoucna měla situace rychle změnit.
Zdrojová data mám ještě uschovaná, takže pokud by vás zajímaly další informace, neváhejte se zeptat v diskuzi.
Diskuse je zrušena z důvodu spamu.