在 php 中解析文本文件并检索信息

发布于 2024-10-01 09:14:04 字数 285 浏览 5 评论 0原文

我正在尝试用 PHP 解析一个基本文本文件,但不知道从哪里开始。

该文件包含以下信息:

http://pastebin.com/ahqtJzH6

您会注意到我需要的信息捕获被新行分割。现在,我只是将每个新行放入 $applicant[] 数组中,但我需要删除每行中前面的文本。

我想我可能需要使用正则表达式或其他东西来挑选出我需要的数据。有想法吗?

谢谢你!

I'm trying to parse a basic text file in PHP, but not sure where to begin.

The file contains info such as:

http://pastebin.com/ahqtJzH6

You'll notice that the information I need to capture is split up by new lines. Right now I'm just throwing every new line into a $applicant[] array, but I need to get rid of the preceding text in each line.

I was thinking I probably need to use regex or something to single out just the data I need. Ideas?

Thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黑色毁心梦 2024-10-08 09:14:04

不使用正则表达式,您可以执行以下操作:

$fp = fopen('textfile.txt', 'r');

$return = array();
while ($line = fgets($fp)) {
   $parts = explode(':', $line);
   $key = trim($parts[0]);
   unset($parts[0]);
   $value = str_replace("\n", '', implode(':', $parts));
   $return[$key] = trim($value);
}

print_r($return);

会输出类似以下内容:

Array (
  [Applicant SSN]  => 123456789
  [Applicant Name] => BOB, BOB
  ...
)

Without using regex, you can do this:

$fp = fopen('textfile.txt', 'r');

$return = array();
while ($line = fgets($fp)) {
   $parts = explode(':', $line);
   $key = trim($parts[0]);
   unset($parts[0]);
   $value = str_replace("\n", '', implode(':', $parts));
   $return[$key] = trim($value);
}

print_r($return);

Would output something like:

Array (
  [Applicant SSN]  => 123456789
  [Applicant Name] => BOB, BOB
  ...
)
羁〃客ぐ 2024-10-08 09:14:04

您可以使用 strpos 查找 : 字符,然后获取之后的所有内容。您可以使用 trim 去除多余的空格。

$lines = file('textfile.txt');

foreach ($lines as $line) {
   $p = strpos($line, ':');
   if ($p!==false) {
      $key = trim(substr($line, 0, $p));
      $value = trim(substr($line, $p+1));

      // do whatever with your key & value

   }
}

You could use strpos to find the : character and then grab everything after that. You can use trim to get rid of extra whitespace.

$lines = file('textfile.txt');

foreach ($lines as $line) {
   $p = strpos($line, ':');
   if ($p!==false) {
      $key = trim(substr($line, 0, $p));
      $value = trim(substr($line, $p+1));

      // do whatever with your key & value

   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文