如何一次插入所有下拉记录?

时间:2015-06-17 07:50:00

标签: php html mysql insert html-select

我在下拉框中有大量记录(大约27000或更多)。

HTML -

<select name="manufacturer" id="manufacturer">
    <option value="">Select a Builder</option>
    <option value="1-hull">#1 Hull</option>
    <option value="49er">49er</option>
    <option value="a-m-f">A M F</option>
    <option value="a-m-manufacturing">A&amp;M Manufacturing</option>
    <option value="a1-custom-trailers">A1 Custom Trailers</option>
     - -    -    -  -      -
     -     -   -    -   -  -
    <option value="zuma">Zuma</option>
</select>

上面的下拉列表我从不同的网站收集这些数据。我想用动态内容放入我自己的网站。我试图逐个插入,不可能单手插入所有记录。所以我想要在我的MySQL数据库表中插入所有这些文本的任何快捷方法。我需要选项内部HTML文本将插入到我的数据库表中。

如果我在Array中获得所有选项文本,那么我可以轻松管理它。但我很困惑如何使用Array代码获取PHP中的所有文字。

2 个答案:

答案 0 :(得分:2)

这是一个preg_match_all

的解决方案
<?php

$string = '<option value="">Select a Builder</option>
    <option value="1-hull">#1 Hull</option>
    <option value="49er">49er</option>
    <option value="a-m-f">A M F</option>
    <option value="a-m-manufacturing">A&amp;M Manufacturing</option>
    <option value="a1-custom-trailers">A1 Custom Trailers</option>
    <option value="zuma">Zuma</option>
';

preg_match_all('/>(.*?)<\//',$string,$matches);

var_dump($matches[1]);
?>

答案 1 :(得分:1)

DOM Document是你的好友,

$str = '<select name="manufacturer" id="manufacturer">
        <option value="">Select a Builder</option>
        <option value="1-hull">#1 Hull</option>
        <option value="49er">49er</option>
        <option value="a-m-f">A M F</option>
        <option value="a-m-manufacturing">A&amp;M Manufacturing</option>
        <option value="a1-custom-trailers">A1 Custom Trailers</option>
        <option value="zuma">Zuma</option>
        </select>';    

$doc = new DOMDocument();
$doc->loadHTML($str);

$options = $doc->getElementsByTagName('option');

foreach ($options as $option) {
    $value[] = $option->nodeValue;
}

$value; // will contain array with all option values

Why you should not parse HTML with regex?