我在服务器上有一个从数据库导出生成的文本文件。我无法控制那个文件。我试图在 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)
慕哥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>';
}
- 2 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消