php把一个格式化的文件转换为一个二维数组

本文介绍了一个简单的PHP程序,该程序通过命令行参数获取文件名和每行变量的数量,然后读取指定文件,将内容按指定格式存入二维数组并打印。此程序展示了PHP在字符处理和文件读取方面的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段时间 有机会使用php做一些字符处理方面的工作,顺便学习了一下php强大的字符处理功能。下面就这一方面做个总结。
  1. <?php
  2. /× 如果让一个php程序,从输入获得运行时参数?
  3. × php使用的方法和c语言类似,也是argc是参数个数,argv是参数表
  4. × 具体使用如下
  5. ×/
  6. $argc = $_SERVER['argc'];
  7. if( $argc != 3 )
  8. {
  9. printf(" input <filename> <varibaleNumPerLine>\n " );
  10. return;
  11. }

  12. $filename = $_SERVER["argv"][1];
  13. $counts = $_SERVER["argv"][2];

  14. $store = array();
  15. $index = 0;
  16. /× php如何读文件?
  17. × 下面这段代码是手册上给出的标准格式,建议大家参考使用
  18. ×/
  19. $readh = fopen($filename, "r");
  20. if( $readh )
  21. {
  22. while( ($buffer = fgets($readh)) !== false )
  23. {
  24. $buffer = trim($buffer);
  25. /* 这行是正则表达式,去掉多余空格,非常有用*/
  26. $buffer = preg_replace('/\s(?=\s)/', '', $buffer);
  27. printf("%s\n", $buffer);
  28. $tmparray = explode(' ', $buffer);
  29. if( count( $tmparray ) != $counts )
  30. {
  31. printf(" the file format does not correspond the expect \n");
  32. printf(" wrong line is %s\n ", $buffer );
  33. continue;
  34. }

  35. /* 构建二维数组 */
  36. $store[$index] = array();
  37. for( $i = 0 ; $i < $counts; $i++ )
  38. {
  39. $store[$index][$i] = $tmparray[$i];
  40. }
  41. $index++;


  42. }
  43. if( !feof($readh) )
  44. {
  45. printf("Error: unexpected fgets() faile\n");
  46. }
  47. }
  48. fclose($readh);

  49. foreach( $store as $fkey => $fvalue )
  50. {
  51. printf(" the %dth line \n", $fkey );
  52. foreach( $fvalue as $skey => $svalue )
  53. {
  54. printf("value is %s\n", $svalue );
  55. }
  56. }
  57. ?>

这个简单的小程序,可以把一个文件里用空格隔开的一些字符和数字,最后完全存入到一个二维数组中,并最后打印展示。
希望对大家有用!

----------------------------------------分割线-----------------------------------------

接下来准备去做LCD、IGBT、HMI方面的电商



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值