Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des Beispielcodes für PHP zum Abfangen von n Zeichen beginnend an einer bestimmten Position in einem GBK-Dokument

Detaillierte Erläuterung des Beispielcodes für PHP zum Abfangen von n Zeichen beginnend an einer bestimmten Position in einem GBK-Dokument

黄舟
黄舟Original
2017-03-13 09:51:561137Durchsuche

Der folgende Editor bietet Ihnen eine PHP-Methode zum Abfangen von n Zeichen ab einer bestimmten Position in einem GBK-Dokument. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor, um einen Blick darauf zu werfen

dkei20王nnso

Testbefehl:

#!/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);
?>
Ergebnisse anzeigen:

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Beispielcodes für PHP zum Abfangen von n Zeichen beginnend an 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