ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルを使用して Foxmail にデータをインポートするための実装コード

PHP_PHP チュートリアルを使用して Foxmail にデータをインポートするための実装コード

WBOY
WBOYオリジナル
2016-07-21 15:34:22875ブラウズ

最近、Xiaoyang は PHP クラスメート ディレクトリを作成しました。生徒はここで名前、電子メール、OICQ、その他の情報を追加または変更し、mySQL データベースに保存できます。ある日、Xiaoyang は、PHP を使用して、学生がダウンロードして Foxmail アドレス帳に情報をインポートできるファイルを生成できたらいいのに、と突然思いつきました。

とにかくやってください、Xiaoyangはすぐにこの機能を開始しました。それはどのように達成されるのでしょうか?ここでは、名前、メールアドレス、OICQ のエクスポートについてのみ説明します。

情報が必要な場合は、Foxmail アドレス帳にインポートできます。もちろん、Foxmail アドレス帳にインポートされるファイルの内容と形式を最初に理解する必要があります。 Foxmail4.2 でアカウントのアドレス帳を開くと、メニュー バーの「ツール」-「インポート」で、Foxmail が「CSV ファイル」と「Wab ファイル」の 2 つの外部ファイルのインポートをサポートしていることがわかります。 CSV ファイルを生成することを選択します。では、Foxmail にインポートできる CSV ファイルの内容と形式は何でしょうか?まずは Foxmail から CSV ファイルをエクスポートして見てみましょう。 Foxmail のアドレス帳で空でないレコードのあるフォルダーを選択し、「ツール」-「エクスポート」-「テキスト ファイル」を実行し、ファイル名を「TEMP.CSV」として保存し、「次へ」で出力フィールドを選択します。 「名前」、「メールアドレス」、「OICQ」を選択し、「完了」をクリックすると、指定したパスに「TEMP.CSV」ファイルが生成されます。 Microsoft office シリーズをインストールしている場合、これはデフォルトで EXCEL で開かれるファイルであることがわかります。実際には、これをダブルクリックして開くと、インターフェイスが表示されます。図のようになります。

PHP_PHP チュートリアルを使用して Foxmail にデータをインポートするための実装コード

この場合、その記述形式を知る方法はまだありません。メモ帳で「TEMP.CSV」ファイルを開くと、その形式が非常に単純であることがわかります。図に示すように、ファイルの最初の行は Foxmail アドレス帳のフィールドで、他の行は値です。各フィールドと値は英語のカンマで区切られます。したがって、PHP でこの形式の CSV ファイルを生成すると、他の人はそれをダウンロードして Foxmail にインポートできます。

PHP_PHP チュートリアルを使用して Foxmail にデータをインポートするための実装コード
しかし、解決する必要がある問題はまだあります。つまり、ファイルは区切り値としてカンマを使用しているため、データベースレコードに英語のカンマが含まれている場合はどうなるでしょうか(注:以下の記号は、特に断りのない限り英語の記号を指します)指定された)?もちろん、最初にデータ内のカンマを中国語のカンマに置き換えることもできますが、実際には別の方法があります。つまり、CSV ファイル内の対応するフィールドの両端に二重引用符 (「ie " "」) を追加すると、値を区切ります。間にある英語のカンマは区切られた値としては使用されません。また、フィールド内の 2 つの連続した英語の二重引用符 (つまり、「"」) は、区切られた値としてではなく 1 つとしてのみ表示されます。
これらを理解すると、CSV ファイルをエクスポートするための PHP ファイルを作成できます:

コードをコピーします コードは次のとおりです:

$dfname="tofoxmail.csv"; //生成されたファイル名
//mySQL データベースに接続します:
mysql_connect("localhost","yourname","yourpassword") または die("データベースに接続できません!") ;
mysql_select_db("卒業生") または die("データベースエラー!");
if($action=="downit"){
$getdata=mysql_query("SELECT name,email,oicq FROM classdata");データ テーブル内の指定されたレコードを選択します
//データがない場合は、次のようになります。
if(@mysql_num_rows($getdata)==0){
echo "申し訳ありませんが、まだデータがありません!"
exit; }
//ダウンロード用のファイルが生成されます:
header("Content-disposition: filename=$dfname");
echo "名前、メールアドレス、 OICQ, foxaddrID"; // 最初の行、Foxmail アドレス帳のフィールドを出力します
$i=1;
while($row=mysql_fetch_array($getdata)){ // データ型の値を取得します
//データ内の各二重引用符を 2 つの二重引用符に置き換えます :
$row[name]=str_replace(""","""",$row[name]);
$row[email]=str_replace(""","") "",$row[email]) ;
$row[oicq]=str_replace(""","""",$row[oicq]);
//対応するフィールドに対応する値の行を出力します、各値は二重引用符とカンマで区切られます:
echobase64_decode("DQo=").""$row[name]","$row[email]","$row[oicq]",$i";
/*上記の式で、「base64_decode("DQo "=")」は改行文字です。「n」が使用されていないのは、両者が完全に同じではないためです。
後者を使用すると、Foxmail インポートが発生する可能性があります失敗します。
*/
$i++;
}
}
? > - ダウンロード リンクをクリックしないと、次の HTML コンテンツが表示されます。


Foxmail アドレス帳にデータをエクスポート ;
ここをクリック/a> ファイルをダウンロードし、保存して Foxmail アドレス帳にインポートします。
tofoxmail.csv」ファイルを図のようにメモ帳で開きます。

Foxmailアドレス帳の「ツール」→「インポート」→「CSVファイル」をクリックすると…データベース内の大量のデータが一度にインポートされます。




(上記のプログラムはApache+PHP4+mySQLとIIS+PHP4+mySQLでテストされています。)


http://www.bkjia.com/PHPjc/322417.html

www.bkjia.com

tru​​ePHP_PHP チュートリアルを使用して Foxmail にデータをインポートするための実装コード
http://www.bkjia.com/PHPjc/322417.html
技術記事

最近、Xiaoyang は PHP クラスメート ディレクトリを作成しました。生徒はここで名前、電子メール、OICQ、その他の情報を追加または変更し、mySQL データベースに保存できます。ある日シャオヤンは、もしそれが使えたら…と突然思いつきました