BUFFEROVÁNÍ VÝSTUPU ANEB VALIDACE KÓDU · by Kašpy
Tento script je určen především těm, co používájí funkci k obarvení php kódu, tedy show_source, highlight_string, highlight_file.
Pokus Vám vadí, že při použití těchto funkcí je zabráněno vytvoření validního kódu (tag font), udělal sem si udělal script, který opravuje výstup. Využívá se v něm funkcí k bufferování (uložení výstupu do promměné / mezipaměti) a poté klasický str_replace.
Funce jsou na php.net
<?php
$text = "<?php echo "XXX"; ?>";
ob_start();
highlight_string($text);
$vystup = ob_get_contents();
ob_end_clean();
echo str_replace(array("font color=\"", "/span", " "), array("span style=\"color:", "/span", " "), $vystup);
?>
A jak to pracuje?
Proměnná $text obsahuje Vámi vložený script, který chcete tudíž obarvit. Začneme bufferovat ob_start, nyní využijeme fci highlight_string($text), která podle parametrů obarví kód v $text. Pomocí ob_get_contents uložíme obsah do proměnné $vystup a ukončíme bufferování ob_end_clean. Str_replace nahradí font za span.
Komentář [13]

IP2COUNTRY · by Kašpy
Potřebujete zjistit odkud návštěvník přichází? Resp. z které země? Můžete to udělat buď přes stránku např. IP2Country, RIPE, WHOIS atd. Já si k příkladu vybral IP2Country – nezjistíte tolik informací jako třeba z RIPE, ale jde především o zemi.
Function ip_to_country($ipadresa) {
$ip2country = file_get_contents("http://ip2country.esymbian.info/?host=$ipadresa");
$expression = preg_match("'<td class=\"rqhost\" bgcolor=\"#AAAAFF\"><b>(\D+)\s</b></td>'", $ip2country, $result);
return $result[ 1 ];
}
echo ip_to_country("196.18.66.4");

JAK SI VYTVOŘIT PARSER? · by Kašpy
Chcete na svých stránkách zobrazovat novinky z jiných serverů? Zde je script, který vám k tomu pomůže.
<?php //Syntaxe Read_XML('adresa','pocet_prispevku', 'vs_kodovani', 'vyst_kodovani')Read_XML('http://kaspy.cz/rss.php',5,'','');
Function Read_XML($rss_doc, $t_count, $in_char, $out_char) { @$Read_Data = file_get_contents($rss_doc) or die('File not found'); $Item_Search = preg_match_all("'<item>(.<strong>?)</item>'si", $Read_Data, $Iteam); $in_char = ($in_char != '') ? $in_char : 'CP1250'; $out_char = ($out_char != '') ? $out_char : 'CP1250'; ForEach($Iteam[ 0 ] as $Structure) { if($t_count > 0) { $is_Title = preg_match("'<title>(.</strong>?)</title>'si", $Structure, $Title); $is_Desc = preg_match("'<description>(.<strong>?)</description>'si", $Structure, $Desc); $is_Link = preg_match("'<link>(.</strong>?)</link>'si", $Structure, $Link); if($is_Title != 0 && $is_Desc != 0 && $is_Link != 0) { echo iconv($in_char, $out_char, "<p><a href=\"" . $Link<sup><a href="#fn896291884c5c3891414fa">1</a></sup> . "\">" . $Title[ 1 ] . "</a> - " . $Desc[ 1 ] . "</p>\n"); $t_count--; } } }
}
?>
Komentář [27]

Jak jednoduše ověřit funkčnost stránky? · by Kašpy
Potřebujete jednoduše a rychle zjistit, zda požadovaná stránka existuje resp. zda není přesměrována? Pokud ano, poslouží Vám k tomu následující, velmi jednoduchý script. Jedná se o využití fce fopen a stream_get_meta_data.
<?php
$fp = fopen('http://kaspy.cz','r');
$data = stream_get_meta_data($fp);
Fclose($fp);
echo $data['wrapper_data'][0];
//vrací HTTP/1.1 200 OK
?>
Script může vrátit několik hodnot jako např. Found, tzn. že stránka byla nalezena, ale proběhlo mezi “nalezením” přesměrování atd.
Náhled všech polí:
<?php
$fp = fopen('http://kaspy.cz','r');
$data = stream_get_meta_data($fp);
Fclose($fp);
var_dump($data);
?>
Výsledek:
array(7) { ["wrapper_data"]=> array(6) { [0]=> string(15) "HTTP/1.1 200 OK" [1]=> string(35) "Date: Tue, 21 Nov 2006 11:06:29 GMT" [2]=> string(71) "Server: Apache/2.0.59 (FreeBSD) PHP/4.4.4 mod_ssl/2.0.59 OpenSSL/0.9.8d" [3]=> string(23) "X-Powered-By: PHP/4.4.4" [4]=> string(17) "Connection: close" [5]=> string(38) "Content-Type: text/html; charset=utf-8" } ["wrapper_type"]=> string(4) "HTTP" ["stream_type"]=> string(6) "socket" ["unread_bytes"]=> int(2683) ["timed_out"]=> bool(false) ["blocked"]=> bool(true) ["eof"]=> bool(false) }
Jak vidíte, pole obsahuje několik dalších informací, které se Vám mohou určitě někdy hodit.
Komentář [11]

