0

データをエクスポートしてデータベースに保存するファイルをユーザーが選択できるようにしたいと考えています。データをインポートする次のコードを見つけました。

$fp = fopen("people.csv", "r");

while ($line = fgets($fp)) {
$char =  split("\t",$line,4); 
 list($name, $age,$height,$date) = $char;
//Split the line by the tab delimiter and store it in our list
$sql = "insert into people(name,age,height,date) values('$name','$age','$height','$date')"; // Generate our sql string
mysql_query($sql) or die(mysql_error()); // Execute the sql
//fclose($line);

それが機能するかどうかはわかりませんが、まだそこまで到達していません。私の質問は、ファイル名をハードコーディングするのではなく、次のコマンドに入力できるように、選択したファイルのフル パス名を取得する方法です。

$fp = fopen("people.csv", "r");

私はこれを研究するのに多くの時間を費やしましたが、役に立ちませんでした。

4

2 に答える 2

0

ユーザーがこのファイルをアップロードできるようにする場合は、ファイルのアップロードを実装する必要があります。手順については、 W3Schools チュートリアルを参照してください。

主なアイデアは、からファイルパスを取得することです$_FILES["file"]["tmp_name"]

$fp = fopen($_FILES["file"]["tmp_name"], "r");

ファイルを Web プロジェクト フォルダーに静的に保存する場合は、以下を含むパスを使用できますDOCUMENT_ROOT

$path = $_SERVER["DOCUMENT_ROOT"] + 'relative/path/to/your/file/' + 'people.csv'; 
于 2013-03-27T22:17:02.210 に答える
0

__DIR__マジック定数を介して現在のファイルのパスを取得できます。

魔法定数

あなたの場合;

echo __DIR__ . 'people.csv';

また、PHP が提供する組み込み CSV 関数の使用を検討することもできます。 http://php.net/manual/en/function.fgetcsv.php

PHP によるファイルの処理を完全にスキップしたい場合、MySQL は CSV ファイルからデータを直接インポートする方法を提供します。

https://dev.mysql.com/doc/refman/5.5/en/load-data.html

于 2013-03-27T22:31:11.627 に答える