我正在尝试将大量内容粘贴到粘贴文本的数据库中。
基本上,数据如下:
*******
First Name: First
Last Name: Last
Age:23
Browser:IE
*******
======
First Name- First
Last Name- Last
Age-23
Browser Type- IE
========
如您所见,分隔符(条目和标题“-”和“:” +“ ====”和“ ****”)将与标题不同(我们在第1个浏览器中和浏览器类型输入第二)。
可以有数百行这样的随机格式。 我要实现的目标几乎就是获取分隔符(-或::)之后的数据,并指定第一行等于名字,第二行等于姓氏,等等。这些行和顺序将我一直在解释,总是一样。
本来我是想用explode("\n", $importData);
来做到这一点的,但是我相信多维数组更适合这样做,以便将数据插入数据库。
关于我该如何处理的任何想法?
谢谢!
答案 0 :(得分:1)
我正在解析每行的数据,并检查您是否使用-
或:
作为分隔符
<?php
$data ="*******
First Name: First1
Last Name: Last1
Age:22
Browser:IE1
*******
======
First Name- First2
Last Name- Last2
Age-23
Browser Type- IE2
========";
$new_arr1 = array();
$new_arr2 = array();
foreach(preg_split("/((\r?\n)|(\r\n?))/", $data) as $line){
if (strpos($line, ':') !== false) {
$new_data = explode(":", $line);
if(isset($new_data[1])){
$new_arr1[] = $new_data[1];
}
}
if (strpos($line, '-') !== false) {
$new_data = explode("-", $line);
if(isset($new_data[1])){
$new_arr2[] = $new_data[1];
}
}
}
if(isset($new_arr1)){
var_dump($new_arr1);
}
if(isset($new_arr2)){
var_dump($new_arr2);
}
演示:http://sandbox.onlinephpfunctions.com/code/c93c3e26c739f0574e92a4159530781786182d04