質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

2回答

2337閲覧

csvアップロード後

no110213

総合スコア10

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/06/01 13:19

編集2016/06/07 02:56

###ヘディングのテキスト###前提・実現したいこと
csvfileをアップロードは完了したのですが
次のステップの段階で
「水野さん、田中さん、鈴木さん」の名前だけを表示できますか?
###発生している問題・エラーメッセージ

エラーメッセージ 0 PtID,店舗,受付日,来館予定日,来館日,来館有無,お客様名,お客様名(フリガナ),接客WP,担当WP,受付,会計,,状況,本成約,予約金入金状況,仮予約 1 1704,RVM,2015/9/12,,,,水野裕介 様・清水謙子 様,,玉井 裕佳理,,玉井 裕佳理,,二次会,,有,未,有 2 1703,RVM,2015/12/17,2015/12/17,,有,伴海拓哉 様・桂彩浦 様,,玉井 裕佳理,,玉井 裕佳理,,二次会,,有,未,有 3 1702,RVM,2016/1/21,,,,,,,,,,,,,, 4 1694,RVM,2015/9/20,,2015/9/20,有,五百?頭祐介 様・嶋田紗季 様,,川口 程,川口 程,竹村 寿美加,,二次会,個人,有,済,有 5 1692,RVM,,2016/1/20,2016/1/20,有,西條昂史様・松尾光紗様,,岩城 梨沙,,岩城 梨沙,,挙式のみ,,有,済,有 ###該当のソースコード ```ここに言語を入力 function h($str) { return htmlspecialchars($str, ENT_QUOTES, 'utf-8'); } if ($_FILES['userfile']['error'] == 0) { $tmp_name = $_FILES['userfile']['tmp_name']; $file = new SplFileObject($tmp_name); $arrName = array(); while (!$file->eof()) { // var_dump($file->fgetcsv()); // <- 確認用 $arrName() = $file->fgetcsv()[6]; } } ?><!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <h1>csvアップロード</h1> <form method="post" action="" enctype="multipart/form-data"> <input type="file" name="userfile" /> <button type="submit">upload</button> </form> <?php foreach ($arrName as $name): ?> <?php echo h($name); ?> <?php endforeach; ?> </body> </html> ###試したこと 上記の通りに書き直ししたのですが ###補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2016/06/02 01:42

どんな画面が表示される事を期待していて、現状では何が表示されているのでしょうか?
no110213

2016/06/02 14:53

現状ではアップロードできましたの表示なのですが ここで一つ指令を入れたくて 「album/」の中身の名前欄だけ表示させたいを期待してるのですが  おわかりいただけますか?
coco_bauer

2016/06/03 01:31

そうすると、アップロードも出来ているし、コードどおりに表示もされている訳ですね。(質問の題名から想像すら出来ません) 「中身の名前欄」というのが不明です。 何処にどのようなデータがどんな形式で存在しているのかを、ちゃんっと具体的に説明してください。 自分の質問を読み直して、事情を知らない人が読んでも内容が判るものかどうか、考えなおして下さい。
退会済みユーザー

退会済みユーザー

2016/06/03 13:21

html と csv の中身がわかれば、コードが書けるんですけどね。
kei344

2016/06/06 16:41

コードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「</>」ボタンを押すとコードブロックになります。
kei344

2016/06/07 02:56

回答が付いた質問の編集は慎重に行ってください。タイプミス程度なら修正する事もありますが、元の質問まで置き換えるのはやめましょう。そういう場合は「追記」するものです。また、タイトルも適切に戻してください。画面右上の「2016/06/07 11:52 編集」というボタンを押すと編集履歴を見れます。そこから過去の投稿を確認できるので、それを使って記事を復元してください。
guest

回答2

0

サンプルコード
そのままコピーして実行すれば動きます。

php

1<?php 2ini_set('display_errors', 1); 3error_reporting(E_ALL); 4 5function h($str) 6{ 7 return htmlspecialchars($str, ENT_QUOTES, 'utf-8'); 8} 9 10if (isset($_FILES['userfile']) && $_FILES['userfile']['error'] == 0) { 11 $tmp_name = $_FILES['userfile']['tmp_name']; 12 $file = new SplFileObject($tmp_name); 13 //$arrName = []; 14 $arrName = array(); 15 while (!$file->eof()) { 16 // var_dump($file->fgetcsv()); // <- 確認用 17 //$arrName[] = $file->fgetcsv()[6]; 18 $arrtmp = $file->fgetcsv(); 19 $arrName[] = $arrtmp[6]; 20 } 21} 22?><!DOCTYPE HTML> 23<html lang="ja"> 24 <head> 25 <meta charset="UTF-8"> 26 <title></title> 27 </head> 28 <body> 29 <h1>csvアップロード</h1> 30 31 <form method="post" action="" enctype="multipart/form-data"> 32 <input type="file" name="userfile" /> 33 <button type="submit">upload</button> 34 </form> 35 36 <?php if (isset($arrName)) : ?> 37 <?php foreach ($arrName as $name): ?> 38 <?php echo h($name); ?> 39 <?php endforeach; ?> 40 <?php endif; ?> 41 </body> 42</html>

投稿2016/06/06 03:47

編集2016/06/07 04:37
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

no110213

2016/06/06 11:33

$arrName = []; 上記のとこでエラーが起きるのですがなにか値を入れるのですか?
退会済みユーザー

退会済みユーザー

2016/06/06 16:34 編集

どんなエラーが出たのか示していただかないと答えようがありません。 $arrName = array(); に変更かな?というかそれが正解ならPHPのバージョンが古すぎます。
no110213

2016/06/06 23:31

Fatal error: Can't use function return value in write context in /home/mit-webaction/www/sgr/free2.php on line 14 ソースを書き直したら上記のエラーコードが出てきました。
退会済みユーザー

退会済みユーザー

2016/06/07 02:04

本当にこのまま使ってます?
退会済みユーザー

退会済みユーザー

2016/06/07 02:14 編集

質問文のソースが書き換わってるんですね。いきなり最初の f が抜けてますよ。オリジナルの質問文を書き換えちゃうのはいただけないですね。追記すべきです。同じ問題を抱えてきた人にとってわかりやすいログにしておきましょう。話のつじつまが合わなくなってしまいます。
no110213

2016/06/07 02:50

すみません。 次回から、そのようにいたします。 ソースはこのままコピーしてるのですが どうしてもエラーになります。 Parse error: syntax error, unexpected '[' in /home/mit-webaction/www/sgr/free2.php on line 6 上記の文はそのままコピーして使ったものです。
退会済みユーザー

退会済みユーザー

2016/06/07 03:24 編集

そこは $arrName = array(); のようにしてください。6行目がどこだかわからんけど。
no110213

2016/06/07 03:27

Parse error: syntax error, unexpected '[' in /home/mit-webaction/www/sgr/free2.php on line 14 そうしますと今度はこれが出てきてしまいます。 $arrName[] = $file->fgetcsv()[6]; この行です。
退会済みユーザー

退会済みユーザー

2016/06/07 03:42

本文のソース修正してきました。お使いのPHPのバージョン古すぎです。
no110213

2016/06/07 04:06

なんどもすみません。 そうしますと、 Fatal error: Uncaught exception 'RuntimeException' with message 'SplFileObject::__construct() [<a href='splfileobject.--construct'>splfileobject.--construct</a>]: Filename cannot be empty' in /home/mit-webaction/www/sgr/free2.php:10 Stack trace: #0 /home/mit-webaction/www/sgr/free2.php(10): SplFileObject->__construct('') #1 {main} thrown in /home/mit-webaction/www/sgr/free2.php on line 10 $file = new SplFileObject($tmp_name); 上記がline10の位置です。
退会済みユーザー

退会済みユーザー

2016/06/07 04:12 編集

PHPのバージョンをあげるか、デバッグはご自身でやってください。いったいPHPのバージョンいくつなんです?
退会済みユーザー

退会済みユーザー

2016/06/07 04:34 編集

ソース更新しました。とりあえずこれで何とかなるんじゃないですかね。
no110213

2016/06/07 04:52

ありがとうございます。 助かりました!!
退会済みユーザー

退会済みユーザー

2016/06/07 04:53

とりあえず動いたからOKではなく、1行1行リファレンスを調べながら何をしているのかを十分理解してください。
guest

0

よく分かりませんが、 "./album/".$_FILES['userfile']['name']にcsvファイルがあるんですかね。
これをfgetcsvで読めばいいんじゃないでしょうか。
fileで読むのはLoadFromFileと同じだそうですので、そのままファイル全体が読み込まれます。
1行読んで6つ目の名前比較、1行読んで...というのでいいんじゃないでしょうかね。

投稿2016/06/06 03:15

pochi0701

総合スコア210

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問