【PHP】下らねぇ質問はここに書き込みやがれ 49
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/06/26(火) 03:03:40ID:ox2uyHLdPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45 (※実質48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0402nobodyさん
2007/07/02(月) 14:36:54ID:Oa7ZLlfRよく見ると打ちミスしていました。
すみません、気づきませんでした。
0403nobodyさん
2007/07/02(月) 14:48:38ID:???function get_ary( $idx ){
$array = array('hoge1'=>"ホゲ1",'hoge2'=>"ホゲ2",'hoge3'=>"ホゲ3");
if( $idx != null ){
return $array[$idx];
}else{
return $array;
}
}
// 配列くれ
$array = get_ary( null );
// 値くれ
$test = get_ary( 'hoge2' );
0404nobodyさん
2007/07/02(月) 14:49:56ID:Oa7ZLlfRありがとうございます。
関数の方を変えてしまえば良いのですね。
解決できましたー。
0405nobodyさん
2007/07/02(月) 14:53:15ID:???うちみすかよorz
なら
function get_ary($key=""){
if($key==""){
return false;
}
$array = array('hoge1'=>"ホゲ1",'hoge2'=>"ホゲ2",'hoge3'=>"ホゲ3");
return array($key=>$array[$key]);
}
でどうだ
0406nobodyさん
2007/07/02(月) 14:54:49ID:???0407nobodyさん
2007/07/02(月) 15:41:37ID:???どっちに書こうか迷ったんですけどね。
JavaScriptはただダイアログだしてるだけだからこっちのがいいかなっておもったんだけど
やはりダイアログでの処理は向こうで聞くべきでしたか。失礼しました。
乗りかかった船でsubmitを記述を教えてください><
0408nobodyさん
2007/07/02(月) 15:45:01ID:???submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
submitを記述を
はいはい
0409nobodyさん
2007/07/02(月) 15:47:56ID:???0410nobodyさん
2007/07/02(月) 15:58:58ID:mwwSeVGNPDOとmysqliってどっちがいいですか?
0412nobodyさん
2007/07/02(月) 16:13:52ID:???ところがある一つのファイルだけ置き換えができない現象が発生。。
そのファイルはHTMLのヘッダとフッタを書き出すインクルード用のファイルなんですけど
PHPとHTMLが混ざり合っているとUTFに変換はできないのでしょうか??
ちなみにEUCには問題なくできました。
以下そのファイルのソース。
頭のPHPの部分を消すと下の方にPHPスクリプトがあっても正常に置換できます。
<?php
function HEADER_HTML( )
{
echo '<?xml version="1.0" encoding="Shift_JIS"?>' . "\n";
?>
<!DOCTYPE 〜〜 以下HTML文
0413nobodyさん
2007/07/02(月) 16:15:22ID:???そこが一番大事だろうが
0414nobodyさん
2007/07/02(月) 16:20:07ID:???0415nobodyさん
2007/07/02(月) 16:28:58ID:???0416nobodyさん
2007/07/02(月) 16:31:37ID:???0418nobodyさん
2007/07/02(月) 16:35:36ID:???0419nobodyさん
2007/07/02(月) 16:42:20ID:???Windows標準装備のメモ帳ではなくPHPエディタというテキストエディタです。
>>416
数が少ないので一括置換ではなく仰せの通り手作業です。
>>418
原因をご存知なのでしょうか?
0420nobodyさん
2007/07/02(月) 16:43:24ID:???0421nobodyさん
2007/07/02(月) 16:44:44ID:???0423412
2007/07/02(月) 16:47:41ID:???やっぱり2ちゃんねるで聞くんじゃなかった・・・バカの集まりしかいない
0424nobodyさん
2007/07/02(月) 16:49:59ID:Oa7ZLlfRfunction test(){
}
test("aa","bb","cc");
これで、"aa","bb","cc"の部分を配列として受け取れたと思うのですが、
それってclassだけでしょうか?
たしかfunctionでもいけたような気がするのですが。。。
良かったら方法教えてください
(ちなみにtest(array("aa","bb","cc"))を使わない方法でお願いします)
0425nobodyさん
2007/07/02(月) 16:52:23ID:???TeraPadというエディタで変換を試みたところ、
「Null文字を含むファイルです。Null文字は半角スペースへ変換しました」
と出てきました。
他のファイルではでなかったのでこれが原因のようです。
0427nobodyさん
2007/07/02(月) 16:58:50ID:???return array( $a, $b, $c );
}
0428nobodyさん
2007/07/02(月) 16:58:58ID:???先程のエディタでutf-8で新規にファイルを作成し、鯖にアップして確認をしたところ、文字化けもなおって無事ちゃんと表示されました。
普段当たり前のように使ってるツールでもバグがあるかもしれないと疑う事も重要ですね。。
0429nobodyさん
2007/07/02(月) 17:00:48ID:???こういうとき、どうすればマシな検索結果になるんだ。
0431nobodyさん
2007/07/02(月) 17:03:54ID:???0432nobodyさん
2007/07/02(月) 17:15:27ID:???http://jp.php.net/manual/ja/function.func-get-args.php
これかな
0433nobodyさん
2007/07/02(月) 17:25:24ID:???だれかこれと等価になるやつ教えてください
$mode = ($mode) ? 'a' : 'w';
こんなの初めて見たんだが、、、
0434nobodyさん
2007/07/02(月) 17:26:40ID:Oa7ZLlfRそれですそれです!
まじありがと><
0435nobodyさん
2007/07/02(月) 17:28:14ID:???それは覚えるとめっちゃ便利
$mode = ($mode) ? 'a' : 'w';
$modeがTRUEなら$modeにaを、FALSEなら$modeにwを代入
$変数 = (条件式) ? TRUEの場合$変数に格納するもの : FALSEの場合$変数に格納するもの;
0436nobodyさん
2007/07/02(月) 17:29:19ID:???http://jp.php.net/language.operators.comparison#language.operators.comparison.ternary
0438nobodyさん
2007/07/02(月) 17:39:27ID:???0439nobodyさん
2007/07/02(月) 17:41:42ID:???0440nobodyさん
2007/07/02(月) 17:47:43ID:???0441438
2007/07/02(月) 17:49:57ID:???0442nobodyさん
2007/07/02(月) 17:52:01ID:???ぶっちゃけPHPできるのが俺しかいないから自由にやってる
フレームワークも使っていない
(ライブラリとしてよく使うものは保存しているが・・・)
0443nobodyさん
2007/07/02(月) 17:55:12ID:???0444nobodyさん
2007/07/02(月) 17:58:47ID:???0445433
2007/07/02(月) 18:03:05ID:???おぼえとく。
>>443
ごめん織れなんでもない末端ブロガーなんだ。
好奇心で習得しようとしてるけど、まだまだレベル低い。
つかもっとマニュアル嫁織れ。
0446nobodyさん
2007/07/02(月) 18:08:20ID:???$head = "<チラ裏>\n";
$foot = "</チラ裏>\n";
header("Content-Type: text/html; charset=utf8");
?>
<?=$head?>
PHPでExcel形式でxmlを書き出そうとしてるけどパラメータ多すぎ・・・orz
<?=$foot?>
0447nobodyさん
2007/07/02(月) 18:11:23ID:4JCJ4+4N確かに読むとき一瞬止まるな。
0448nobodyさん
2007/07/02(月) 18:25:07ID:???必死に相手を叩くゆとり。
0449nobodyさん
2007/07/02(月) 18:31:59ID:???0450nobodyさん
2007/07/02(月) 19:30:01ID:iLtmkhi3ID出してやったぞ
0454nobodyさん
2007/07/02(月) 22:42:00ID:k2nqp5hr各項目をcsvで出力するにはどのようにすればよいのでしょう?
fputcsvを使ってなんやかんやするとは思うのですが。
0456nobodyさん
2007/07/02(月) 23:29:51ID:???$a =& hoge();
みたいなのがよくあるんですが、これリファレンスってことでおk?
0457nobodyさん
2007/07/03(火) 00:50:43ID:???0458nobodyさん
2007/07/03(火) 01:35:12ID:???サンクス
日頃PHP使わないんでちょと?ってなってたよ。
ついでにPHPでいわゆるベストプラクティスの参考になるサイトない?
PEARとか以外で、щ(゚Д゚щ)カモーン!
0460nobodyさん
2007/07/03(火) 02:33:45ID:???tableなら、table で対象範囲を切り取り、 <tr>で改行(explode) した後<td>でexplodeして配列形式にする
あとはゴミを取っ払って、foreachループでCSV形式に書き出し
0462nobodyさん
2007/07/03(火) 02:46:50ID:???ん?意味わかんね
マニュアル嫁って事?参考にならないんだけど...
それともレス番入れろって事?
レス番が必要になるような質問してないから入れてないだけだけど。
だとしたら、答えてくれなくていいよ。
まあPHPのユーザレベルってその程度なんだって思うだけだから。
違ったらゴメン。
0463nobodyさん
2007/07/03(火) 02:46:59ID:???指定ディレクトリ内のファイル一覧を日付順で取得するにはどうしたら良いんでしょうか?
ご存知の方いらっしゃったらおしえてください。
0464nobodyさん
2007/07/03(火) 02:58:21ID:???459じゃないけど、phpのマニュアルは、他の言語と比べても、とても良くできてると思うよ。
サンプルも豊富だし。
断片的なのはマニュアルだからしょうがないけどね。
体系的になんかつくる例とかを見たいなら、なんか本買うか、ググって上から見ていけばよいと思う。
0465nobodyさん
2007/07/03(火) 03:00:55ID:???リンク先の検索結果が0件だからアレだけども
普通はデータベースからHTML出力とCSV出力に分ける。
外部から人様のデータをCSV出力したいのなら,460の言うようにHTMLから抽出する。
それともデータ構造は取得できているが、ファイル関数の使い方が分からないということなのか。
>>463
glob関数はパターンにマッチするパス名を探すだけなので
ざっとファイルシステム関数のページを見るべし。
見た感じでは更新時刻でソートして取得するのはないようなので
statやfstat,filemtimeなどを利用してあとからソートすればいいんじゃないか。
0466nobodyさん
2007/07/03(火) 03:03:18ID:???0467nobodyさん
2007/07/03(火) 09:33:47ID:???0468nobodyさん
2007/07/03(火) 11:23:30ID:???0469nobodyさん
2007/07/03(火) 13:18:53ID:OguL7YE2$a[0][0] = '0-0';
$a[0][1] = '0-1';
$a[1] = '1';
$a[2][0][1] = '2-0-1';
↑のような次元のバラバラな配列があります。で、感覚として例えば
echo hoge(array(0 => 1)); //結果は 0-1
echo hoge(1); //結果は 1
echo hoge(array(2 => array(1 => 0))); //結果は 2-1-0
function hoge($key) {
global $a;
return $a[$key];
}
のように、添字に対して任意の次元の値を渡したいのですが、
どうも上手くいきません。渡された次元数で条件分岐すれば
できるのはわかっているのですが、もっとスマートな方法は
ないでしょうか?
よろしくお願いします。
0470462
2007/07/03(火) 13:28:56ID:???サンクス
知りたかったのはコーディング規約もそうなんだけど、
ユーザ間で指針としているスタイルとかあるだろうって思って。
自分のメイン言語じゃないから、せめて可読性ぐらい保たないとメンテナに悪いだろw
いくつかソース読んだけどいまいち整然としてない気がして、って事で
聞いてみたんだけどね。まあもう少し色々見てみるよ。
0471nobodyさん
2007/07/03(火) 13:51:52ID:???君のfunctionを見る限りそれは質問じゃなくて丸投げだろ…
スクリプト改造依頼スレ (丸投げ) に行け
ttp://pc11.2ch.net/test/read.cgi/php/1157787046/l50
0472nobodyさん
2007/07/03(火) 13:53:09ID:???普通に$a[2][0][1]で参照するのは無理なんだよな?
function getValue(array $var,array $keys) {
foreach($keys as $i)
$var = $var[$i];
return $var;
}
echo getValue($a,array(2,0,1)); // 2-1-0
こんなことやってしまうとか…?
XML関係とかかな?
こういう変則的な事やりたい場合は理由も書いた方がいいかも。
0473469
2007/07/03(火) 14:16:42ID:OguL7YE2具体的にどこで使うってのは決めてないです
提案していただいた関数の他にも、例えば渡す側が添字を'[1][2]'等の文字列で
渡して受け取り側でevalで処理するなど色々な方法があると思うのですが、
もっと原始的な操作でできないかなと思いまして。
$a[$key]や$a[$key1][$key2]ができるんだから、
$a[array($key1 => $key2)]的なことができてもいいんじゃないかなと。
0476nobodyさん
2007/07/03(火) 15:15:07ID:gJhXmCplフォーム⇔確認画面(入力に戻るあり)→送信処理
修正で戻ったり、確認画面まで引っ張ったまま
アップロードデータを残すのは無理なんでしょうか?
良い書き方が思いつきません…
0477nobodyさん
2007/07/03(火) 15:21:14ID:???一度サーバーに仮であげてキャンセル対策は
一定時間以上そのままのやつをクローンかユーザーアクセスかを
トリガーに削除するしか思いつかん
0478nobodyさん
2007/07/03(火) 15:37:43ID:???関数を再帰させれば出来るでしょ。
getArrayVal ($array) {
foreach ($array as $key=>$val)
{
if(is_array($val)) {
getArrayVal($val);
} else {
}
}
}
このパターンでマッチするものを取ればいい。
つまりは>>106に対する>>109,>>110の答えと一緒なんだよ
あなたのやりたいことって。
0479469
2007/07/03(火) 16:01:21ID:???>>469での質問の仕方が悪かったですね。すいません。
質問したかったのは実現のための関数の作り方ではなく、あくまで
配列の添字に対して任意の次元の値(添字)を渡せるかどうか、なのです。
PHPは「$$a」みたいな知らなければ永遠に気づかないような表現があるので、
もしかしてあるかな、と思って質問してみました。
0480469
2007/07/03(火) 16:04:12ID:???やっぱり教えてgooで質問してきます。
たぶん下らないスレなのでわからない人ばっかりですよね・・・
ありがとうございました。
0484469
2007/07/03(火) 16:11:18ID:???下らない質問スレということで
知識のない人でも答えられるからそういう人が集まっているスレと見ています。
教えてgooでは専門家の方やプロの方がいると思うのでそっちで聞いてみます。
0485nobodyさん
2007/07/03(火) 16:27:12ID:???0486nobodyさん
2007/07/03(火) 16:33:03ID:???0488469
2007/07/03(火) 17:01:05ID:???0489nobodyさん
2007/07/03(火) 17:10:16ID:hv6LsRuc「あなたのチェックした商品」
という感じで、クリックした商品が羅列されてるんですが、あればどういった仕組み
になっているのでしょうか?
0492489
2007/07/03(火) 17:39:56ID:hv6LsRuc具体的にクリックした商品をデータベース!?に収めるにはどうしたらいいのでしょうか?
以下のようなことができますか?
セッションID<>クリックした商品ID1
セッションID<>クリックした商品ID2
セッションID<>クリックした商品ID3
セッションID<>クリックした商品ID4
ウェブ上では・・
あんたがチェックした商品
■商品1
■商品2
■商品3
■商品4
0494nobodyさん
2007/07/03(火) 17:44:04ID:???>具体的にクリックした商品をデータベース!?に収めるにはどうしたらいいのでしょうか?
何が言いたいのかわからん
>以下のようなことができますか?
できる
0496489
2007/07/03(火) 17:46:09ID:hv6LsRuc$_SESSION['shohin_id'] = 1 ;セッション変数に値を代入
$_SESSION['konyu'] = array(1,3,6); 配列もOK
?>
これのarray(1,3,6); 配列もOK の意味がわかりません。
この数字 1、3、6 ってどこからでてきたものですか?
0498nobodyさん
2007/07/03(火) 17:48:15ID:???0499nobodyさん
2007/07/03(火) 17:53:22ID:???あんたが見てるコードと解説を書いた人に聞けばいいよ。
「配列も渡せるようですが、例として 1 3 6 を選んだ理由は何ですか」とか。
0500nobodyさん
2007/07/03(火) 17:54:56ID:???はい次の人どうぞ
0501nobodyさん
2007/07/03(火) 17:58:12ID:???■ このスレッドは過去ログ倉庫に格納されています