Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert eine Methode zum Abfangen von n Zeichen ab einer bestimmten Position in einem GBK-Dokument

PHP implementiert eine Methode zum Abfangen von n Zeichen ab einer bestimmten Position in einem GBK-Dokument

墨辰丷
墨辰丷Original
2018-05-25 09:42:321172Durchsuche

Dieser Artikel stellt hauptsächlich die Methode zum Abfangen von n Zeichen ab einer bestimmten Position im GBK-Dokument in PHP vor. Ich hoffe, dass er für alle hilfreich ist.

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);
?>

T.txt-Inhalt der Quelldatei:

dkei20王nnso

Testbefehl:


./cut.php 6 1

Ergebnisse anzeigen:

hexdump -C t.txt && hexdump - C a.txt

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.


Verwandte Empfehlungen:

Processing Sublime Text OpeningGBKChinesisches verstümmeltes Format

Details zum Lösen der verstümmelten chinesischen Zeichen in Sublime Text beim Öffnen des GBK-Formats

php verwendet iconv, um die Zeichenfolge aus zu konvertieren GBKMethode zur Konvertierung in den UTF8-Zeichensatz

Das obige ist der detaillierte Inhalt vonPHP implementiert eine Methode zum Abfangen von n Zeichen ab einer bestimmten Position in einem GBK-Dokument. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn