Maison  >  Article  >  développement back-end  >  À quoi devez-vous faire attention lors de la lecture de fichiers avec php fread ?

À quoi devez-vous faire attention lors de la lecture de fichiers avec php fread ?

怪我咯
怪我咯original
2017-07-14 09:49:042158parcourir

php fread() Fonction utilisée pour lire les fichiers (peut être sûre utilisée pour les fichiers binaires). Cet article vous présente des exemples de fread lecture de fichiers et plusieurs choses auxquelles vous devez faire attention lorsque vous utilisez cette fonction pour lire des fichiers. Les amis dans le besoin peuvent s'y référer.

Introduction à la fonction php fread

Syntaxe

fread(file,length)

Paramètre

fichier Obligatoire. Spécifie que le fichier doit être ouvert en lecture.

longueur obligatoire. Spécifie le nombre maximum d'octets à lire.

Explication

fread() lit jusqu'à la longueur des octets du fichier de pointeur de fichier. Cette fonction est appelée lorsqu'elle a lu jusqu'à la longueur d'octets, ou lorsque EOF est atteint, ou (pour les flux réseau) lorsqu'un paquet est disponible, ou (après l'ouverture d'un flux d'espace utilisateur) 8 192 octets ont été lus. , selon la condition rencontrée en premier.

Renvoie la chaîne lue, ou renvoie false si une erreur se produit.

Exemple fread() :

Lire 10 octets du fichier :

<?php
$file = fopen("test.txt","r");
fread($file,"10");
fclose($file);
?>

Quelques points à noter lors de l'utilisation de fread en PHP

1. Solution à l'erreur lorsque fread lit et écrit des fichiers volumineux

Lors de l'utilisation de fread pour lire des fichiers, si la valeur maximale d'utilisation de la mémoire définie dans php.ini est dépassée. Une erreur sera demandé. La méthode suivante résout le problème de lecture des fichiers volumineux :

<? 
  set_time_limit(0);//设置脚本执行时间无限长 
  $flie="flexbuilder_linux_install_a5_112409.bin";//大文件超过php.ini中的内存配置 
  $fp=fopen($flie,"r"); 
  $content=""; 
  $filename="123.bin";//存为新文件 
  $handle=fopen($filename,"a");//写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之 
  while(!feof($fp)){//测试文件指针是否到了文件结束的位置 
    $content=fread($fp,1024); 
    fwrite($handle,$content); 
  } 
  fclose($fp); 
  fclose($handle); 
  echo "数据成功写入文件"; 
?>

2. Comment php fread() identifie-t-il l'encodage du fichier ? 🎜 >fread renvoie sous la forme de string

, alors comment identifie-t-il la méthode d'encodage utilisée dans un.txt pour s'assurer qu'il n'est pas tronqué ?
<?php
$handler=fopen(&#39;a.txt&#39;,&#39;rb&#39;)//二进制方式打开
$content=fread($handler,1024);
echo $content;
?>

L'encodage des caractères n'est pas reconnu dans les opérations sur les fichiers des versions inférieures à PHP 7.0. Génie uniquement les données en octets. Si elles sont cohérentes avec le codage des caractères du fichier de code source PHP et le code HTML de sortie, elles peuvent être affichées correctement.

3. Lorsque fread lit un fichier, il y aura toujours un caractère nul supplémentaire

Lorsque nous utilisons le code ci-dessus pour lire le fichier, parfois il y a sera un caractère nul supplémentaire. En effet, vous êtes sur une plate-forme WINDOWS. Le fichier est un fichier texte stocké sous forme de texte. Il y aura un octet spécial à la fin pour marquer la fin du fichier. Si vous l'ouvrez avec rb, vous pourrez naturellement le lire. le dernier octet spécial. Ouvrez-le avec r et lisez-le avec fgets.

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!

Déclaration:
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