0

誰かが私を助けてくれることを願っています。MySQL DBから特定の詳細(「氏名と名前」、「メール」、「連絡先番号」)を抽出する必要がありますが、これを行う方法がわかりません。問題のアプリケーションであるWordpressの「GrunionContactForm」は保存します。次のように、配列内のDB内のデータ:

Array
(
    [Full Name and Surname:] => Sharon Somerset
    [Email] => sharon@x.x.x
    [Contact Number:] => 08xxxxxx
    [Alternative Number] => 011xxxxxx
    [Please list convenient time to be contacted] => 
    [Medical Aid Quote] => Yes
    [Insurance Quote] => 
    [Policy Update] => 
    [Friend's Name and Surname:] => 
    [Friend's Contact Number:] => 
    [How did you find us?] => Google
)

各エントリは、「longtext」フィールド内の独自のデータベース行にあります。

このような数千行から「氏名と名前」、「メール」、「連絡先番号」のデータを簡単に抽出し、単純なテーブルまたはCSVファイルに再保存して、phplistなどにインポートするにはどうすればよいですか。

4

1 に答える 1

0

これで始められるはずです-テキストフィールドでの単純な正規表現のマッチング。これを実行するにはしばらく時間がかかりますが、必要なことは実行されます。

<?php
$ string="配列
((
    [フルネームと名前:]=>シャロンサマセット
    [メール]=>sharon @ xxx
    [連絡先番号:] => 08xxxxxx
    [代替番号]=>011xxxxxx
    [連絡するのに都合の良い時間をリストしてください]=>
    [医療援助見積もり]=>はい
    [保険見積もり]=>
    [ポリシーの更新]=>
    [友達の名前と名前:] =>
    [友達の連絡先番号:] =>
    [どうやって私たちを見つけましたか?] => Google
)";


$ string = preg_replace( "/ Array \ n \(\ n /"、 ""、$ string);
//最初の行を削除します

$ string = preg_replace( "/ \)$ /"、 ""、$ string);
//最後の行を削除します

$ lines = explode( "\ n"、$ string);
//新しい行に分割
print_r($ lines);

foreach($ lines as $ l)
{{
        preg_match( "/ \ [(。+)\] =>(。*)$ /"、$ l、$ matches);
        // $matches[1]にはラベルが含まれます
        // $matches[2]には値が含まれます
        print_r($ matches);

}
?>
于 2012-10-23T20:25:47.107 に答える