为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 文件解析——行中最后一项的问题

PHP 文件解析——行中最后一项的问题

PHP
慕无忌1623718 2023-03-04 10:54:43
我在服务器上有一个从数据库导出生成的文本文件。我无法控制那个文件。我试图在 PHP 中解析它以获取一些数据以显示在网页上。当我尝试搜索一行中的最后一项时,它找不到。这是文本文件的一部分:ERMHDR  8.2 2017-02-02  Project admin   Primavera Admin dbxDatabaseNoName   Project Management  USD%T  CURRTYPE%F  curr_id decimal_digit_cnt   curr_symbol decimal_symbol  digit_group_symbol  pos_curr_fmt_type   neg_curr_fmt_type   curr_type   curr_short_name group_digit_cnt base_exch_rate%R  1   2   $   .   ,   #1.1    (#1.1)  Dollar  USD 3   1%R  10  2   $   .   ,   #1.1    (#1.1)  Argentine Peso  ARS 3   3.077%R  11  2   A$  .   ,   #1.1    (#1.1)  Australian Dollar   AUST    3   1.208%R  13  2   R$  .   ,   #1.1    (#1.1)  Brazilian Real  BRL 3   2.014%R  14  2   £   .   ,   #1.1    (#1.1)  British Pound   U.K.    3   0.501762%R  15  2   CA$ .   ,   #1.1    (#1.1)  Canadian Dollar CAD 3   1.10573%R  16  2   Y   .   ,   #1.1    (#1.1)  Chinese Yuan    CNY 3   7.694%R  17  2   €   .   ,   #1.1    (#1.1)  EURO    EUR 3   0.739088%R  20  2   HK$ .   ,   #1.1    (#1.1)  Hong Kong Dollar    HKD 3   7.81967%R  21  2   Rs  .   ,   #1.1    (#1.1)  Indian Rupee    INR 3   40.67%R  23  2   ¥   .   ,   #1.1    (#1.1)  Japanese Yen    JPY 3   120.167%R  24  2   K   .   ,   #1.1    (#1.1)  Korean Won  KRW 3   924.743%R  25  2   N$  .   ,   #1.1    (#1.1)  Mexican Peso    MXN 3   10.7938%R  26  2   R   .   ,   #1.1    (#1.1)  Russian Rouble  RUB 3   25.8085%R  28  2   Sk  .   ,   #1.1    (#1.1)  Swedish Krona   SEK 3   6.80579%R  29  2   kr  .   ,   #1.1    (#1.1)  Swiss Franc CHF 3   1.21864%R  30  2   NIS .   ,   #1.1    (#1.1)  Israel Shekel   ILS 3   3.96384这非常有效。它找到第二个值为“10”的行并返回行号。但是,如果我将指示的行更改为此,它不起作用。if($row_data[1] == "CURRTYPE"){我认为问题是当我分解文件时,我以某种方式在每一行的末尾放置了一个特殊字符,我需要在我的 if 语句中包含该字符,但我无法弄清楚那个特殊字符是什么。我试过添加一个空格,\n,\t。谁能帮忙???
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

用于trim删除字符串开头或结尾的任何其他字符(例如空格)。

if (strcasecmp(trim($row_data[1]), 'currtype') === 0)


查看完整回答
反对 回复 2023-03-04
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

尝试用文件读取它。这会将每一行变成一个数组。我在你的文本部分试过了,得到了所有的行。并使用 explode(' ', THE LINE YOU WANT); 会给你那一行中的每个单词


$test_file = file('sample3.xer');

$line_4 = $test_file[4];

$string_line = explode(' ', $line_4);

foreach ($string_line as $k => $v) {

if (!empty($v)) echo $v.'<br>';

}


查看完整回答
反对 回复 2023-03-04
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信