De plus en plus, de nouvelle technologie pour les cellulaires font leurs apparitions. Il ne sont pas difficile à lire en soit, puisqu'ils sont souvent sauvegarder en texte, comme le format .VNT pour le vNote de cellulaire (Galaxy Tab, AndroidOS,...), toutefois, ceux-ci sont malheureusement encodées. Prenons pour acquis que le fichier «message.vnt» est le contenu :
BEGIN:VNOTE VERSION:1.1 BODY;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=0D=0A=43=69=6E=65=0D=0A=50=72=65=6D=69=65=72=65=20=66=6F=69=73=20=65= =6E=20=67=6C=61=64=69=72=2E=63=6F=6D=20 DCREATED:20110316T125358 LAST-MODIFIED:20110316T125358 END:VNOTE |
Pour lire le fichier «message.vnt» et afficher en claire le message y étant renfermé, il suffit d'écrire les instructions suivante :
- <?php
- if($fh = fopen("message.vnt", 'r')) {
- $I = 1;
- $CharSet = "";
- $Section = "";
- $Body = false;
- $ExtractChar = false;
- while($CurrLine = fgets($fh)) {
- $J = 0;
- $Word = ExtractWord($CurrLine,$J);
- if("BODY" == $Word) {
- if(";" == substr($CurrLine,$J,1)) {
- $J++;
- $Body = true;
- $ReChecked = true;
- while($ReChecked) {
- $Word = ExtractWord($CurrLine,$J);
- switch($Word) {
- case "CHARSET":
- if("=" == substr($CurrLine,$J,1)) {
- $J++;
- $CharSet = "";
- while(";" != substr($CurrLine,$J,1)) {
- $CharSet .= substr($CurrLine,$J,1);
- $J++;
- if($J > strlen($CurrLine)) break;
- }
- if(";" == substr($CurrLine,$J,1)) $J++;
- }
- break;
- case "ENCODING":
- if("=" == substr($CurrLine,$J,1)) {
- $J++;
- $Word = ExtractWord($CurrLine,$J);
- if("QUOTED-PRINTABLE" == $Word) {
- if(":" == substr($CurrLine,$J,1)) {
- $ReChecked = false;
- $ExtractChar = true;
- $J++;
- }
- }
- }
- break;
- default:
- $ReChecked = false;
- break;
- }
- }
- }
- }
- if($ExtractChar) {
- while("=" == substr($CurrLine,$J,1)) {
- $J++;
- $String = ExtractHex($CurrLine,$J);
- if($String != "") {
- $Value = hexdec($String);
- switch($Value) {
- case 10:break;
- case 13:echo "<br />";break;
- default:
- echo chr($Value);
- break;
- }
- }
- if($J > strlen($CurrLine)) break;
- }
- }
- $I++;
- }
- fclose($fh);
- }
-
- function ExtractHex($CurrLine,& $J) {
- $Word = "";
- while(((strtoupper(substr($CurrLine,$J,1)) >= "A") && (strtoupper(substr($CurrLine,$J,1)) <= "F"))||((substr($CurrLine,$J,1) >= "0") && (substr($CurrLine,$J,1) <= "9"))) {
- $Word .= substr($CurrLine,$J,1);
- $J++;
- if($J > strlen($CurrLine)) break;
- }
- return $Word;
- }
-
- function ExtractWord($CurrLine,& $J) {
- $Word = "";
- while(((strtoupper(substr($CurrLine,$J,1)) >= "A") && (strtoupper(substr($CurrLine,$J,1)) <= "Z"))||(substr($CurrLine,$J,1) == "-")) {
- $Word .= substr($CurrLine,$J,1);
- $J++;
- if($J > strlen($CurrLine)) break;
- }
- return $Word;
- }
- ?>
on obtiendra le résultat suivant :
Cine
Premiere fois en gladir.com
Voir également
Articles - Vérificateur de compatibilité de navigateur
Dernière mise à jour : Samedi, le 4 mai 2013