Žertovná novinová zpráva a subdomény v PHP

23. března 2002

Uvést někoho do rozpaků žertovnou zprávou z tisku lze různě – náš skript do předem zadaného textu jen vloží jméno, které budete zadávat do URL, takže tvorba zpráv bude velmi snadná. Ačkoli příklad vypadá jako zbytečná hříčka, ukazuje možnosti práce s doménami přímo ve skriptu a pro zvídavé jistě najde seriózní uplatnění.

Podobných skriptů v akci najdete na internetu stovky – zde si však ukážeme, jak jsou takové skripty vytvořeny. Příklad si můžete prohlédnout na php.czechia.com.

Následující skript joke.php je nejlépe "navěsit" na skript pro vlastní chybovou stránku obdobně jako Vlastní přesměrovací službu. Pokud byste chtěli používat obě služby najednou, vnořte do stránky 404.phtml z uvedeného článku takovouto "rozbočku":

<?PHP
if (eregi("joke.",$HTTP_HOST))
  require("joke.php"); // pokud je v URL při chybě doména "vtipného" skriptu, použít jej namísto přesměrovací služby
else
  require("redir.php");
?>

Jakmile bude někdo požadovat neexistující dokument, nejprve se ověří, zda součástí požadavku není název domény "vtipného" skriptu (v našem příkladu joke). Pokud ano, zpracuje se skript joke.php, který nakonec sám ukončí zpracování celého skriptu. Stejně jako u zmiňované přesměrovací služby předpokládáme aktivní službu multidomain na serveru. Případně je nutné požádat správce serveru o takové nastavení, aby náš server akceptoval adresu zadanou třeba jako http://jakykoli.nesmysl.server.cz.

Ve skriptu nejprve z URL vypreparujete zadané části jména. Potom otestujete, zda je vůbec nějaké zadáno – pokud ne, nastavíte výchozí, aby i v tomto případě měla zobrazená zpráva smysl. V cyklu potom u jednotlivých částí (slov) vždy první písmeno převedete na velké písmeno (aby jméno a příjmení bylo gramaticky správně). Nakonec ještě zpětně změníte velká počáteční písmena na malá u vyjmenovaných spojek nebo předložek, protože ty lze do URL skriptu vkládat také. Následuje už jen kompletní HTML kód zprávy (ta by mohla být i v jiném souboru a vkládaná pomocí include, případně by tak šlo generovat zprávu i náhodně). V místech, kde má být ve zprávě zobrazeno jméno, je povelem PHP vygenerováno jméno zjištěné skriptem – v našem případě je v proměnné $jokename. Na konci skriptu je ještě přidáno ukončení skriptu, aby se tak ukončilo provádění původně začatého skriptu 404.phtml. Jinak by se na konci stránky ještě objevilo chybové hlášení, že je soubor nenalezen.

<?PHP
$jokename = ereg_replace(".\joke\.server\.cz", "", $HTTP_HOST); // vyhodit z textu URL cestu ke skriptu, název serveru a www
$jokename = ereg_replace("joke.\server\.cz", "", $jokename);
$jokename = ereg_replace("www", "", $jokename);
$jokename = ereg_replace("\.", " ", $jokename);
$jokename = strtolower($jokename); // převést na malá písmena
if (empty($jokename))
  $jokename = "Jméno Příjmení";  // výchozí postava zprávy, pokud není v URL zadána
else {
  $newjkname = "";
  $lst = false;
  for ($i=0; $i<=strlen($jokename);$i++) { // tento cyklus převede počáteční písmena na velká
    $ltr = substr($jokename,$i,1);
    $newjkname .= ($lst ? $ltr : strtoupper($ltr));
    $lst = ereg("[[:alpha:]]", $ltr);
  }
  $jokename = $newjkname;
  $jokename = str_replace(" A ", " a ", $jokename); // v předložkách a spojkách změníte velké písmeno na začátku zpět na malé
  $jokename = str_replace(" Nebo ", " nebo ", $jokename);
  $jokename = str_replace(" S ", " s ", $jokename);
  $jokename = str_replace(" Na ", " na ", $jokename);
  $jokename = str_replace(" Pod ", " pod ", $jokename);
  $jokename = str_replace(" Bez ", " bez ", $jokename);
}
?>
<head>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-2">
<title>Opilec <?PHP echo $jokename ?> prováděl hrozné věci!</title>
</head>
<body bgcolor=#FFFFFF>
<p>
<h1><font color="#FF0000"><?PHP echo $jokename ?> prováděl hrozné věci!</font></h1>
<blockquote>
<p><strong>Téměř neuvěřitelný zážitek  a škodu mají po návštěvě individua jménem <?PHP echo $jokename ?>  v Praze.</strong></p>
</blockquote>
<p></p>
<p><?PHP echo $jokename ?> si před návštěvou dětského koutku někde pořádně přihnul. Zaměstnanci byli v šoku. Něco podobného ještě nezažili.</p>
</body>
</html>
<?PHP exit ?>

Drobnou nevýhodou je pouze "mužská" varianta textu, úpravu už ponechávám na vás. Vyzkoušejte si různé varianty zadání URL včetně předložek nebo různých přívlastků. Skript si můžete stáhnout. Pro lov žertovných textů se vypravte na weby bulvárního tisku a hledejte podle šťavnatých klíčových slov.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Předchozí článek Otáznik menom ASP.NET

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *