Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Verze PHP v ČR

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í.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Metodika

Sběr dat byl realizován robotem, který se identifikoval jako Server version checker (http://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 (http://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 = "'" . addslashes(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.

Webové servery

Webové servery v ČR
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.

Verze PHP

PHP verze
Verze PHP v ČR
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ň.

TIB2012

       

Závěr

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.

Jakub Vrána

Jakub Vrána

Autor se živí programováním v PHP, podílí se na jeho oficiální dokumentaci, vyučuje ho na MFF UK a vede odborná školení. Poznámky si zapisuje na weblog PHP triky.

Školení: TCP/IP síť na Linuxu II

V tomto školení prohloubíte svoji znalost síťování na Linuxu a vyzkoušíte si pokročilejší techniky. Školení je určené mimojiné i pro správce poskytovatelských sítí.

  • Průřez technologiemi TCP/IP 
  • Stavba testovací sítě
  • Dynamický routing: OSPFv2 a OSPFv3
  • Bridging, proxy ARP, proxy NDP
  • Různé metody překladu adres
  • NAT traversal v praxi
  • Přepis paketů
  • Tunelování a VPN
  • Troubleshooting, situace z praxe

Podrobnější informace a přihláška 

Ohodnoťte jako ve škole:
Průměrná známka 3,04

Přehled názorů

souvislost
benn 16. 1. 2006 00:14
Nový
├ 
Re: souvislost
lukas 16. 1. 2006 00:51
Nový
│
└ 
Pravdivé výsledky?
Duch 16. 1. 2006 02:23
Nový
│
 
└ 
Re: Pravdivé výsledky?
dgx 16. 1. 2006 03:02
Nový
│
 
 
├ 
Re: Pravdivé výsledky?
lobo 16. 1. 2006 04:17
Nový
│
 
 
└ 
Re: Pravdivé výsledky?
O Simaban Lidan 16. 1. 2006 11:16
Nový
│
 
 
 
├ 
Re: Pravdivé výsledky?
anonymní uživatel 16. 1. 2006 11:39
Nový
│
 
 
 
└ 
Re: Pravdivé výsledky?
dgx 16. 1. 2006 11:39
Nový
└ 
Re: souvislost
František Brakon 16. 1. 2006 08:37
Nový
 
├ 
zastoupeni jinych jazyku
joejoe 16. 1. 2006 08:59
Nový
 
│
└ 
Re: zastoupeni jinych jazyku
Jakub Vrána 16. 1. 2006 09:46
Nový
 
│
 
├ 
Re: zastoupeni jinych jazyku
joejoe 16. 1. 2006 10:15
Nový
 
│
 
│
└ 
Re: zastoupeni jinych jazyku
Jakub Vrána 16. 1. 2006 10:38
Nový
 
│
 
│
 
├ 
Re: zastoupeni jinych jazyku
joejoe 16. 1. 2006 11:17
Nový
 
│
 
│
 
│
└ 
Re: zastoupeni jinych jazyku
Jakub Vrána 16. 1. 2006 12:17
Nový
 
│
 
│
 
└ 
Re: zastoupeni jinych jazyku
vbar 16. 1. 2006 15:47
Nový
 
│
 
├ 
Re: zastoupeni jinych jazyku
anonymní uživatel 16. 1. 2006 10:27
Nový
 
│
 
│
└ 
Re: zastoupeni jinych jazyku
anonymní uživatel 16. 1. 2006 10:28
Nový
 
│
 
└ 
Re: zastoupeni jinych jazyku
Boris Porosin 16. 1. 2006 15:41
Nový
 
├ 
Re: souvislost
Bjarne 16. 1. 2006 09:11
Nový
 
├ 
Re: souvislost
bonedstoned 16. 1. 2006 09:12
Nový
 
├ 
Re: souvislost
anonymní uživatel 16. 1. 2006 09:59
Nový
 
│
├ 
Re: souvislost
glx 16. 1. 2006 11:07
Nový
 
│
│
└ 
WTF
llook 16. 1. 2006 14:48
Nový
 
│
│
 
└ 
Re: WTF
Michal Ludvig 17. 1. 2006 00:45
Nový
 
│
│
 
 
├ 
Re: WTF
llook 17. 1. 2006 07:04
Nový
 
│
│
 
 
│
└ 
Re: WTF
HKMaly 17. 1. 2006 23:43
Nový
 
│
│
 
 
├ 
Re: WTF
anonymní uživatel 17. 1. 2006 09:53
Nový
 
│
│
 
 
│
└ 
Re: WTF
IA 17. 1. 2006 21:12
Nový
 
│
│
 
 
├ 
Re: WTF
anonymní uživatel 17. 1. 2006 20:08
Nový
 
│
│
 
 
└ 
Re: WTF
rezna 18. 1. 2006 08:17
Nový
 
│
└ 
Re: souvislost
Martin Povolny 16. 1. 2006 12:55
Nový
 
│
 
├ 
Re: souvislost
mod_perl/2.0.2 16. 1. 2006 14:37
Nový
 
│
 
│
└ 
Re: souvislost
llook 16. 1. 2006 14:50
Nový
 
│
 
├ 
Re: souvislost
yossarian 16. 1. 2006 15:21
Nový
 
│
 
│
└ 
Re: souvislost
anonymní uživatel 16. 1. 2006 20:30
Nový
 
│
 
│
 
└ 
Re: souvislost
anonymní uživatel 17. 1. 2006 20:24
Nový
 
│
 
│
 
 
└ 
Re: souvislost
Jean 17. 1. 2006 21:09
Nový
 
│
 
│
 
 
 
└ 
Re: souvislost
mrzout 18. 1. 2006 22:25
Nový
 
│
 
└ 
Re: souvislost
anonymní uživatel 17. 1. 2006 20:16
Nový
 
│
 
 
└ 
Re: souvislost
Martin Povolny 19. 1. 2006 07:44
Nový
 
└ 
Re: souvislost
HKMaly 17. 1. 2006 23:37
Nový
 
 
└ 
Re: souvislost
Michal Kubeček 19. 1. 2006 19:41
Nový
webhosting vs php5
Standa Pacan 16. 1. 2006 02:30
Nový
└ 
Re: webhosting vs php5
JT 17. 1. 2006 08:00
Nový
 
├ 
Re: webhosting vs php5
llook 18. 1. 2006 08:08
Nový
 
└ 
PHP versus ja
anonymní uživatel 19. 1. 2006 08:36
Nový
 
 
└ 
Re: PHP versus ja
Jakub Vrána 19. 1. 2006 10:56
Nový
 
 
 
└ 
Re: PHP versus ja
anonymní uživatel 19. 1. 2006 20:40
Nový
Divné výsledky
Milan Kvasnica 16. 1. 2006 07:09
Nový
├ 
Re: Divné výsledky
byF 16. 1. 2006 07:35
Nový
│
└ 
Re: Divné výsledky
Milan Kvasnica 16. 1. 2006 07:39
Nový
│
 
└ 
Re: Divné výsledky
spud 16. 1. 2006 08:03
Nový
│
 
 
└ 
Re: Divné výsledky
kukulich 16. 1. 2006 12:22
Nový
└ 
Re: Divné výsledky
Jakub Vrána 16. 1. 2006 09:46
Nový
 
└ 
Re: Divné výsledky
anonymní uživatel 16. 1. 2006 10:10
Nový
X-Powered-By
pechula 16. 1. 2006 10:23
Nový
└ 
Re: X-Powered-By
Jakub Vrána 16. 1. 2006 10:48
Nový
vyberovy efekt?
anonymní uživatel 16. 1. 2006 10:32
Nový
└ 
Re: vyberovy efekt?
Jakub Vrána 16. 1. 2006 10:57
Nový
neni metodika spatna?
Bilbo 16. 1. 2006 10:50
Nový
├ 
Re: neni metodika spatna?
Jakub Vrána 16. 1. 2006 11:06
Nový
└ 
Re: neni metodika spatna? Proč by měla být, mě pripadá naprosto ok, kde je…
Pavel Muka - amatér 17. 1. 2006 11:10
Nový
Opravdu vsechny domeny?
glx 16. 1. 2006 10:57
Nový
└ 
Re: Opravdu vsechny domeny?
Jakub Vrána 16. 1. 2006 11:08
Nový
 
├ 
Re: Opravdu vsechny domeny?
glx 16. 1. 2006 11:14
Nový
 
└ 
Re: Opravdu vsechny domeny?
rsaf 16. 1. 2006 23:23
Nový
 
 
└ 
Re: Opravdu vsechny domeny?
Jakub Vrána 17. 1. 2006 09:32
Nový
 
 
 
└ 
Re: Opravdu vsechny domeny?
rsaf 17. 1. 2006 09:45
Nový
Ruby a další
Majkls 17. 1. 2006 21:31
Nový
└ 
Re: Ruby a další
Almad 20. 1. 2006 15:48
Nový
Proč ne PHP 5.1?
Martin Malec 17. 1. 2006 22:35
Nový
Kde sehnat seznam CZ domén?
Michal 6. 5. 2006 00:01
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem