PHP如何在循环中读取存储在字符串内的多行数字内容
实现方案
你的核心需求是将多行数字字符串转换为和file()函数返回结构一致的行数组,原代码直接把字符串当数组操作自然无法正常运行。
问题原因
file()函数会自动将文本文件按行拆分,返回每一行作为元素的数组;你直接将字符串赋值给$lines后,它仍然是字符串类型,count()计算字符串只会返回1,无法得到正确的总行数- 字符串用
[$i]下标访问只能拿到第i位的单个字符,无法读取完整的一行内容
修正方法
用explode()按换行符拆分字符串得到行数组即可,如果你需要和file('xxx.txt', FILE_IGNORE_NEW_LINES)一样去掉每行末尾的换行符,可以额外加array_map处理,修正后完整代码如下:
<?php $numbers = "1 2 4 5 ..."; // 按系统默认换行符拆分字符串为行数组 $lines = explode(PHP_EOL, $numbers); // 可选:去除每行首尾的空白字符(包含换行符、多余空格等) $lines = array_map('trim', $lines); // 可选:过滤掉空行 $lines = array_filter($lines); for($i = 119; $i >= 0; $i--) { if($i==119) { $no_of_lines = round(count($lines)/14); } // 判断下标是否存在,避免数组越界报错 $line = isset($lines[$i]) ? $lines[$i] : ''; echo "$line<br>"; if( $i % 14 === 0 ) { echo "$no_of_lines<br>"; $no_of_lines--; } } ?>
内容的提问来源于stack exchange,提问作者sendy3991
相关产品推荐
相关产品推荐

