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}
回答1件
あなたの回答
tips
プレビュー