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

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

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

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

Q&A

解決済

1回答

1304閲覧

$test = getTest($_GET);でfilter_inputを使いたい

MeB

総合スコア104

PHP

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

0グッド

0クリップ

投稿2017/11/27 05:11

編集2017/11/27 05:55

php

1$test = getTest($_GET);

こんな感じをコードの$_GET部分をfilter_input
を使った形にしたいのですが、可能でしょうか?

ご教示のほどよろしくお願いいたします。

投げやりの質問で申し訳ございません。
調べてもよくわかりませんでした…

php

1function getTest($params_r = []) 2{ 3 $file_r = dirname(__FILE__) . '/data/test.csv'; 4 5 $result_r = []; 6 7 $source_r = file_get_contents($file_r); 8 $source_r= mb_convert_encoding($source_r, 'UTF-8', 'sjis-win'); 9 $temp_r = tmpfile(); 10 fwrite($temp_r, $source_r); 11 rewind($temp_r); 12 13 $safe_sort_column_r = []; 14 $is_header_r = true; 15 $_header_r = []; 16 $csv_data_r = []; 17 while(($data_r = fgetcsv($temp_r, 0, ",")) !== FALSE) { 18 if($is_header_r) { 19 $_header_r = $data_r; 20 $is_header_r = false; 21 } else { 22 $_data_r = []; 23 foreach($data_r as $num_r => $value_r) { 24 $column_r = $_header_r[$num_r]; 25 if(preg_match("/^sort\:(.+)$/", $column_r, $matches_r)) { 26 $safe_sort_column_r[] = $matches_r[1]; 27 } 28 if(is_numeric($value_r)) { 29 $value_r = (int)$value_r; 30 } 31 $_data_r[$column_r] = $value_r; 32 } 33 $csv_data_r[] = $_data_r; 34 } 35 } 36 37 $safe_sort_column_r = array_unique($safe_sort_column_r); 38 39 $order_r = []; 40 $sorter = []; 41 $multisort_text_r = ''; 42 foreach($params_r as $column_r => $value_r) { 43 if(! in_array($column_r, $safe_sort_column_r)) { 44 unset($params_r[$column_r]); 45 continue; 46 } 47 48 $multisort_text_r .= '$sorter_r[\'sort:'.$column_r.'\'], '; 49 $multisort_text_r .= ($value_r != 1 ? 'SORT_DESC' : 'SORT_ASC') . ', '; 50 51 foreach($csv_data_r as $key_r => $row_r) { 52 $sorter_r['sort:'.$column_r][$key_r] = $row_r['sort:'.$column_r]; 53 } 54 } 55 56 if($multisort_text_r) { 57 eval('array_multisort(' . $multisort_text_r. '$csv_data_r);'); 58 } 59 60 fclose($temp_r); 61 unset($_header_r); 62 63 $result_r = $csv_data_r; 64 65 return $result_r; 66}

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

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

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

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

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

MeB

2017/11/27 05:29

他に何を記述したらよろしいのでしょうか…
maisumakun

2017/11/27 05:41

getTestというのは標準ライブラリにある関数ではありませんので、そちらの定義、もしくはどのライブラリで定義された関数かが情報として必要です。
MeB

2017/11/27 05:54

すみません。そうですよね。追記いたしました
guest

回答1

0

ベストアンサー

$test = getTest($_GET);

getTest()定義が提示されていないのでなんともいえません
もし$_GET["test"]の値をチェックしつつ抜き出したいなら

PHP

1$test=filter_input(INPUT_GET,"test");

となります

投稿2017/11/27 05:30

yambejp

総合スコア114843

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

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

MeB

2017/11/27 05:54

たったいま追記致しました。 この場合でも同じ使い方なのでしょうか?
yambejp

2017/11/27 06:32

予想と全然ちがったので、filter_inputの処理ではないですね そもそもが$_GETはスーパーグローバルな変数ですから引数に入れる必要はないでしょう $test = getTest(); としておいて、 ユーザー関数getTest内で$params_rで参照している箇所を$_GETで処理すれば 良いと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問