将数据从一列移动到表

时间:2014-02-22 19:32:54

标签: php mysql

我有数据库,在一列中有人有这样的代码。这只是列

的一个条目
<span style="vertical-align: middle; font-size: 40px; line-height: 2px;">&#8220;</span> Some text<span style="vertical-align: middle; font-size: 40px;line-height:30px">&#8221;</span><br/>
<strong>Name, </strong><br/><br/> <strong style="font-style: italic;"> Location</strong><br/><br/><br/>
<span style="vertical-align: middle; font-size: 40px; line-height: 2px;">&#8220;</span> Sometext<span style="vertical-align: middle; font-size: 40px;line-height:30px">&#8221;</span><br/>
<strong>Name, </strong><br/><br/> <strong style="font-style: italic;"> Sydney</strong><br/><br/><br/>

在php中,他所做的只是

echo $row['table_name'];

现在我已经为字段

创建了一个单独的表
id, tName, tLocation, Text

我想将上面列中的所有数据输入到此表中但由于数据太多而无法进行数据输入

例如,上面代码的输入将类似于

tName = Name
tLocation = Sydney
Text = Some text

我们可以通过某些查询甚至PHP代码存档吗?如果是,那么

由于

1 个答案:

答案 0 :(得分:2)

使用SQL无法轻松完成此操作,但您可以使用正则表达式创建脚本并匹配内容。

$data = <<<EOD
<span style="vertical-align: middle; font-size: 40px; line-height: 2px;">&#8220;</span> Some text<span style="vertical-align: middle; font-size: 40px;line-height:30px">&#8221;</span><br/>
<strong>Name, </strong><br/><br/> <strong style="font-style: italic;"> Location</strong><br/><br/><br/>
<span style="vertical-align: middle; font-size: 40px; line-height: 2px;">&#8220;</span> Sometext<span style="vertical-align: middle; font-size: 40px;line-height:30px">&#8221;</span><br/>
<strong>Name, </strong><br/><br/> <strong style="font-style: italic;"> Sydney</strong><br/><br/><br/>

EOD;

echo $data;
echo "<pre>";

//Name part
preg_match_all('@<strong>(.+), </strong><br/><br/> <strong style="font-style: italic;">@', $data, $matches);
var_dump($matches[1]);

//sometext part
preg_match_all('@<span style="vertical-align: middle; font-size: 40px; line-height: 2px;">&#8220;</span>(.+)<span style="vertical-align: middle; font-size: 40px;line-height:30px">&#8221;</span><br/>@', $data,$matches);
var_dump($matches[1]);

//Location part
preg_match_all('@<strong style="font-style: italic;">(.+)</strong>@', $data,$matches);
var_dump($matches[1]);