Cet article présente principalement la méthode d'interception de n caractères à partir d'une certaine position dans le document GBK en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
cut.php :
#!/usr/bin/php <?php define('INPUT_FILE', 't.txt'); define('OUTPUT_FILE', 'a.txt'); $pos = max(intval($argv[1]), 0); $len = max(intval($argv[2]), 0); $file_size = filesize(INPUT_FILE); if($pos >= $file_size) exit; $fp = fopen(INPUT_FILE, 'rb'); $point = 0; //current byte position $string = ''; while(ftell($fp) < $file_size) { if($point >= $pos + $len) break;$byte = fread($fp, 1); //php version >= 5.4 $char = unpack('C', $byte)[1]; if($char <= 0x7f) { //single byte if($point >= $pos) $string .= $byte; $point += 1; continue; } else { //double bytes if($point >= $pos) { $string .= $byte.fread($fp, 1); } else { fseek($fp, 1, SEEK_CUR); } $point += 1; continue; } } fclose($fp); file_put_contents(OUTPUT_FILE, $string); ?>
Contenu t.txt du fichier source :
dkei20王nnso
Commande de test :
./cut.php 6 1
Afficher les résultats :
hexdump -C t.txt && hexdump -C a.txt
Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Traitement de l'ouverture du texte sublimeGBKFormat chinois tronqué
php utilise iconv pour convertir la chaîne de GBKMéthode de conversion en jeu de caractères UTF8
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!