正则表达式:在字符出现 16 次后进行解析?

发布于 2024-11-05 16:30:32 字数 335 浏览 4 评论 0原文

/* 编辑得有意义! */

我 900 行这样:

;745;ref;name;Adress;zipcode;;mobphone;;;;;;;;;

我想要 900 行这样:

array(
  '',
  745,
  'ref',
  'name',
  'adress',
  'zipcode',
  '',
  'mobphone'
  etc..
)

有些行似乎连接到一行,所以它是一长而不是两短。我需要使用 PHP 的 split() 函数在每 16 个分号字符之后分割行,这就是我需要你的帮助。

/* Edited to make sense! */

I 900 lines of this:

;745;ref;name;Adress;zipcode;;mobphone;;;;;;;;;

i want 900 lines of this:

array(
  '',
  745,
  'ref',
  'name',
  'adress',
  'zipcode',
  '',
  'mobphone'
  etc..
)

Some of the lines appear to be concated to one, so it's one long instead of two short. I need to use PHP's split() function to split the lines after every 16th semicolon character, that's what i need your help with.

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

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

发布评论

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

评论(2

妥活 2024-11-12 16:30:32

我不知道这是否对您有帮助,但 PHP 已经包含允许您解析 CSV 文件的功能。 fgetcsv() 函数将逐行读取 CSV 文件。它返回一个包含当前行中每个字段的值的数组。

在您的情况下,您需要告诉它使用分号而不是逗号作为字段分隔符。

$fp = fopen('file.csv', 'r');
while ($line = fgetcsv($fp, 0, ';')){
  $firstField = $line[0];
  $secondField = $line[1];
  //...
}

I don't know if this will help you, but PHP already contains functionality which allows you to parse a CSV file. The fgetcsv() function will read a CSV file line by line. It returns an array containing the values of each field in the current row.

In your case, you would need to tell it to use a semi-colon instead of a comma as the field delimiter.

$fp = fopen('file.csv', 'r');
while ($line = fgetcsv($fp, 0, ';')){
  $firstField = $line[0];
  $secondField = $line[1];
  //...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文