Maison > développement back-end > tutoriel php > PHP implémente une méthode d'interception de n caractères commençant à une certaine position dans un document GBK

PHP implémente une méthode d'interception de n caractères commençant à une certaine position dans un document GBK

墨辰丷
Libérer: 2023-03-27 21:00:02
original
1246 Les gens l'ont consulté

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(&#39;INPUT_FILE&#39;, &#39;t.txt&#39;);
define(&#39;OUTPUT_FILE&#39;, &#39;a.txt&#39;);
$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, &#39;rb&#39;);
$point = 0; //current byte position
$string = &#39;&#39;; 
while(ftell($fp) < $file_size) {
  if($point >= $pos + $len) break;$byte = fread($fp, 1); 
  //php version >= 5.4
  $char = unpack(&#39;C&#39;, $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);
?>
Copier après la connexion

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é

Détails comment résoudre les caractères chinois tronqués dans Sublime Text lors de l'ouverture du format GBK

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal