Archive

Posts Tagged ‘utf-8’

Awstats και ελληνικά

January 8th, 2009

Ένα απο τα πιό γνωστά open source λογισμικά για την στατιστική παρακολούθηση ιστοσελίδων είναι το awstats. Στην Netwerk το παρέχουμε σε όλους τους web hosting λογαριασμούς και είμαστε αρκετά ευχαριστημένοι. Το μόνο μειονέκτημα που ανακαλύψαμε είναι οτι δέν υποστηρίζονται τα ελληνικά απευθείας. Εκεί έπρεπε να βάλουμε το χεράκι μας :)

Γενικά για το Awstats

Για όσους τυχαίνει να μήν γνωρίζουν το awstats, να πούμε μερικά βασικά πραγματάκια. Το awstats είναι ένα πρόγραμμα στατιστικών το οποίο παίρνει δεδομένα απο τα log files του web server (μπορεί να πάρει και με javascript αλλά αυτό είναι άλλη ιστορία). Σε αντίθεση με το google analytics που λειτουργεί εξ’ολοκλήρου με javascript το awstats μπορεί να μας πληροφορίσει για όλο το traffic του site μας, περιλλαμβάνοντας τις επισκέψεις bots είτε πρόκειται για search engine crawlers είτε για κακόβουλους χρήστες, οπότε σε γενικές γραμμές είναι ένα απαραίτητο εργαλείο άσχετα με το αν το analytics μπορεί να μας δώσει καλύτερη πληροφορία σχετικά με τους επισκέπτες ενός site.

Awstats και ελληνικά

Η βασική ρύθμιση που πρέπει να κάνουμε για να λειτουργήσει το awstats με ελληνικά είναι η ενεργοποίηση του plugin decodeutfkeys. Μιλώντας για plugins να κάνω μιά παρένθεση και να σας συστήσω να χρησιμοποιήσετε κάποιο απο τα geoIP plugins ωστε να βλέπετε τις χώρες απο τις οποίες έρχονται οι επισκέπτες σας.

Εφόσον ενεργοποιηθεί το decodeutfkeys θα βλέπετε τα ελληνικά keywords στις μηχανές αναζήτησης, ωστόσο δέν θα εμφανίζονται τα ελληνικά urls. Για αυτό μπορείτε να χρησιμοποιήσετε το παρακάτω hack που δημιουργήσαμε.

Awstats και ελληνικά urls

Για να χρησιμοποιήσετε το hack απλώς βρείτε στο awstats.pl αυτά που έχω κάνει σχόλια (# removed by thek) και αντικαταστήστε με τον παρακάτω κώδικα:


# my $nompage = CleanXSS($url); # removed by thek

# { patched by thek

my $nompage = "";

if ( $PluginsLoaded{'DecodeKey'}{'decodeutfkeys'} ) {

$nompage = CleanXSS(

DecodeKey_decodeutfkeys(

$url, $PageCode || 'iso-8859-1'

)

);

}

else { $nompage = CleanXSS( $url ); }

# } patched by thek

# { removed by thek

#if ( length($nompage) > $MaxLengthOfShownURL ) {

#$nompage = substr( $nompage, 0, $MaxLengthOfShownURL ) . "...";

#}

# } removed by thek

Perl ,

String UTF-8

May 27th, 2008

Ένας γρήγορος τρόπος ελέγχου αν ένα string είναι utf-8. Πρώτα μετατρέπουμε το string σε utf-8 (utf encode). Στην συνέχεια το ξαναμετατρέπουμε στο αρχικό format (utf decode). Αν το crc του αρχικού είναι ίδιο με το crc του τελικού τότε είναι utf-8.

function is_utf8($str) {
	$str_u8=iconv('Windows-1253','UTF-8',$str);
	return (crc32($str)==crc32(iconv('UTF-8','Windows-1253',$str_u8))) ? true : false;
}

php