PHP を使用して Foxmail にデータをインポートするための実装コード
Jun 13, 2016 pm 12:13 PM
最近、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 で開かれるファイルであることがわかります。実際には、これをダブルクリックして開くと、インターフェイスが表示されます。図のようになります。
この場合の書き方はまだ分かりません。メモ帳で「TEMP.CSV」ファイルを開くと、その形式が非常に単純であることがわかります。図に示すように、ファイルの最初の行は Foxmail アドレス帳のフィールドで、他の行は値です。各フィールドと値は英語のカンマで区切られます。したがって、私たちは PHP でこの形式の CSV ファイルを生成し、他の人はそれをダウンロードして Foxmail にインポートできます。
しかし、まだ解決すべき問題が残っています。それは、ファイルが区切り値としてカンマを使用しているため、データベースのレコードに英語のカンマがあった場合はどうなるのかということです (注: 以下の記号特に指定のない限り、英語の記号を参照してください) 管理?もちろん、最初にデータ内のカンマを中国語のカンマに置き換えることもできますが、実際には別の方法があります。つまり、CSV ファイル内の対応するフィールドの両端に二重引用符 (「ie " "」) を追加すると、値を区切ります。間にある英語のカンマは区切られた値としては使用されません。また、フィールド内の 2 つの連続した英語の二重引用符 (つまり、「"」) は、区切られた値としてではなく 1 つとしてのみ表示されます。
これらを理解すると、CSV ファイルをエクスポートする PHP ファイルを作成できます:
コードをコピーします コードは次のとおりです:
<? //この行はスペースや改行を入れずにプログラムの先頭に配置する必要があります。以下の header() 関数では、使用前にユーザーに何も出力できないためです。
$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") ;
header ("Content-type:unknown/unknown");
echo "name, email address, OICQ, foxaddrID"; // Foxmail アドレス帳のフィールドを出力します。 i=1;
while($row=mysql_fetch_array($getdata)){ //データ型の値を取得します
//データ内の各二重引用符を 2 つに置き換えます:
$row[name] ]=str_replace("" ","""",$row[名前]);
$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」が使用されないのは、この 2 つがまったく同じではないためです。
後者を使用すると、Foxmail のインポートが失敗する可能性があります。 >*/
$i;
}
exit;
}
?>
<! -- ダウンロード リンクがクリックされない場合、次の HTML コンテンツが表示されます。表示-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>Foxmail アドレス帳にデータをエクスポート</title></head>
<body> をクリック<a href='javascript:this.location=this.location "?action=downit"'>ここ</a> ファイルをダウンロードし、保存して Foxmail アドレス帳にインポートします。
操作方法
サーバー上で上記のPHPファイルを実行し、図に示すように、ダウンロードした「tofoxmail.csv」ファイルをメモ帳で開きます。
Foxmail アドレス帳の [ツール] - [インポート] - [CSV ファイル] をクリックすると、データベース内の大量のデータが一度にインポートされます。
(上記のプログラムは、Apache PHP4 mySQL と IIS PHP4 mySQL でテストされています。)

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
