La fonction fgets() lit une ligne à partir du pointeur de fichier.
Syntaxe
fgets(file,length)
参数 | 描述 |
---|---|
file | 必需。规定要读取的文件。 |
length | 可选。规定要读取的字节数。默认是 1024 字节。 |
Description
Lit une ligne du fichier pointé par fichier et renvoie une longueur d'au plus longueur - 1 octet de Chaîne de caractères . S'arrête lorsqu'un caractère de nouvelle ligne (inclus dans la valeur de retour), EOF ou une longueur de 1 octet a été lu (selon la première éventualité). Si la longueur n'est pas spécifiée, la valeur par défaut est 1 Ko, soit 1 024 octets.
En cas d'échec, renvoie false.
Conseils et notes
Remarque : Le paramètre de longueur est facultatif à partir de PHP 4.2.0, s'il est omis, la longueur de la ligne est supposée être de 1024 octets. À partir de PHP 4.3, l'omission de la longueur continuera la lecture du flux jusqu'à la fin de la ligne. Si la plupart des lignes du fichier font plus de 8 Ko, il est plus efficace de spécifier la longueur maximale des lignes dans le script pour utiliser les ressources.
Remarque : à partir de PHP 4.3, cette fonction peut être utilisée en toute sécurité sur les fichiers binaires. Les versions antérieures ne le font pas.
Remarque : Si vous constatez que PHP ne peut pas reconnaître les caractères de fin de ligne des fichiers Macintosh lors de la lecture de fichiers, vous pouvez activer l'option de configuration d'exécution auto_detect_line_endings.
L'exemple suivant utilise la fonction PHP fgets() pour lire un fichier texte ligne par ligne. Le code est le suivant
$handle = @fopen("D:/public/test.txt", "r"); if ($handle) { while (!feof($handle)) { $str = fgets($handle, 4096); //$str = '#主单词1#'; if(preg_match('/#(.+)#/',$str,$matches)){ $di_word = $matches[1]; $di_word = mysql_escape_string($di_word); $sql = " SELECT di_id FROM `du_index` WHERE di_word = '{$di_word}'"; $result = mysql_query($sql); $row = mysql_fetch_row($result); $di_id = $row[0]; if (count($dy_word)>0){ $sql = " INSERT INTO `du_yun` (`di_id`,`di_word`,`dy_word`,`dy_description`,`dy_status`,`dy_time`) VALUES"; for ($i=0;$i<count($dy_word);$i++){ $sql .= " ('{$di_id_1}','{$di_word_1}','{$dy_word[$i]}','{$dy_description[$i]}','1',now()),"; } $result = mysql_query(substr($sql,0,-1).';'); if ($result){}else{ echo $sql . '<br />'; } } $di_id_1 = $di_id; $di_word_1 = $di_word; $dy_word = $dy_description = array(); $sql = ''; continue; }; //$str = '[志願者]參[與]人員'; if (preg_match('/^\[(.+)\](.+)$/',$str,$matches)){ $dy_word[] = trim($matches[1]); $dy_description[] = trim($matches[2]); continue; } } if (count(dy_word)>0){ $sql = " INSERT INTO `du_yun` (`di_id`,`di_word`,`dy_word`,`dy_description`,`dy_status`,`dy_time`) VALUES"; for ($i=0;$i<count($dy_word);$i++){ $sql .= " ('{$di_id_1}','{$di_word_1}','{$dy_word[$i]}','{$dy_description[$i]}','1',now()),"; } $result = mysql_query(substr($sql,0,-1).';') or die(mysql_error()); if ($result){}else{ echo $sql . '<br />'; } } fclose($handle); }
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!