猿问

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

我在服务器上有一个从数据库导出生成的文本文件。我无法控制那个文件。我试图在 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。


谁能帮忙???


慕无忌1623718
浏览 136回答 2
2回答

慕妹3242003

用于trim删除字符串开头或结尾的任何其他字符(例如空格)。if (strcasecmp(trim($row_data[1]), 'currtype') === 0)

慕哥9229398

尝试用文件读取它。这会将每一行变成一个数组。我在你的文本部分试过了,得到了所有的行。并使用 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>';}
随时随地看视频慕课网APP
我要回答