【PHP】下らねぇ質問はここに書き込みやがれpart16
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/05(日) 22:35:34ID:sf8bx52Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
過去スレは>>2
0672nobodyさん
2006/02/19(日) 12:25:58ID:???0673nobodyさん
2006/02/19(日) 12:29:59ID:iKD+hWT/確かにそうですね。体感速度に影響ないくらいの向上なら、可読性優先の
ほうがいいかも。
0674nobodyさん
2006/02/19(日) 12:41:24ID:???・コメントなんて邪道なものはすべて取っ払う
・空白文字なんて以ての外、改行も入れずにスクリプトは1行で構成
・実行制御に余分な時間を取られるのでループは全て展開
0675nobodyさん
2006/02/19(日) 12:42:27ID:???0676nobodyさん
2006/02/19(日) 12:50:26ID:???改行だけは省略できね。
0677nobodyさん
2006/02/19(日) 13:33:06ID:???昔BASICでゲームプログラミングする時はそんな風に仕上げてたな。
普通に記述してから変換ツール通したり。
0678nobodyさん
2006/02/19(日) 13:55:11ID:iKD+hWT/大幅ダウンしそう...
0679nobodyさん
2006/02/19(日) 14:12:11ID:???0680nobodyさん
2006/02/19(日) 14:13:00ID:j5wr3rm8属性を606から変えたら、プログラムから読み書きできないし・・・
0681nobodyさん
2006/02/19(日) 14:13:43ID:???0682nobodyさん
2006/02/19(日) 14:14:47ID:???> 属性を606から変えたら、プログラムから読み書きできない
?(´△`) デキルダロ
拡張子をcgiとかにしれ
0683nobodyさん
2006/02/19(日) 14:55:13ID:???0684nobodyさん
2006/02/19(日) 15:02:27ID:???0685nobodyさん
2006/02/19(日) 15:00:20ID:???いや、作る段階でそんなこと言ってるようでは
役に立つ判定プログラムは作れないと思うよ?
というか、診断くんそのものをダウンロードすれば
参考どころの騒ぎじゃないだろ?
0686nobodyさん
2006/02/19(日) 15:09:48ID:???隙間を開けたいんだけど、どうしたらいいかな?
BarPlotでSetWidth設定してもダメだった。
0688nobodyさん
2006/02/19(日) 16:38:45ID:8orHyj9/自動的にEUC-JPに変換して読み込みたいのですが、
どうすればよいでしょうか?
0689nobodyさん
2006/02/19(日) 17:11:43ID:iKD+hWT/$line = file_get_contents('file');
$line = mb_convert_encoding($line, 'EUC-JP', 'SJIS');
でいかがでしょう?
0690nobodyさん
2006/02/19(日) 17:51:33ID:???非常識なコーディングだろ。
普通のファイルは >>689 のように読んでくれよ頼むから。
0692sage
2006/02/19(日) 19:06:37ID:iKD+hWT/20行目
3行目
っていう内容のtest.txtというファイルの内容を、
1行目
2行目
3行目
というように一行だけ書き換えたいんですが、どうやればできますか。
file_get_contents->preg_replace->file_put_contentsという方法も
考えたのですが、これだとメモリを浪費しそうなので、一行ずつ操作
する方法を教えていただけるとありがたいです。
0694692
2006/02/19(日) 19:17:53ID:???fopenを違う引数で2回呼び出すわけですね。使ったことがない関数がでて
きたので、これから早速試してみます。
0695nobodyさん
2006/02/19(日) 22:49:33ID:QKFjYBJ6拡張子が
index.htmlのファイルでもphp利用可能なの?
htaccessで何かやってるのかな。。
0697nobodyさん
2006/02/19(日) 23:16:29ID:???$i++;
}while($i == 5);←ここで真ならば、特定の動作を行ってからdoに戻る
というようなことは可能でしょうか。
また、代替案もあればぜひご教授お願いいたします。
0698661
2006/02/19(日) 23:26:20ID:8QITr0F/>>667のようにするのって何て言うんでしょうか?
調べようにもよくわからないのですが・・・・
0699nobodyさん
2006/02/19(日) 23:40:10ID:cMtmYVLo単なるリンク
0700nobodyさん
2006/02/19(日) 23:42:06ID:???今いちやりたいことがよくわかりませんが、
無限ループさせたいのでしょうか?
while (1) {
$i++;
if ($i == 5) {
// 処理を記述
}
}
ではだめでしょうか?
0701661
2006/02/19(日) 23:59:21ID:8QITr0F/phpにリンクでURLを渡す(?)
見たいなことなんでしょうか>?
0702nobodyさん
2006/02/20(月) 00:08:50ID:???こういうことじゃないの?
0703697
2006/02/20(月) 00:16:12ID:???ご返答ありがとうございます。
説明が分かり難く申し訳ありません。
無限ループではなく、$i==5が偽になった時点でループを抜けたいのです。
1)doの内容を実行
2a)whileが真ならば"特定の処理"を実行した後doを実行
2b)whileが偽ならば"特定の処理"を行わずにループ終了
御指南いただいたコードですと、ifのところが偽ならばwhileループを抜ける、ということです。
付け加えさせていただきますと、ちょうど下記の動作です。
$hoge = 1;
while ($hoge) {
$i++;
if ($i == 5) {
// 処理を記述
}else{
$hoge = 0; // breakで二重ループを抜けられると良いのですが・・・
}
}
この動作をdo...whileでできないものかと試行錯誤していたのですが、
ふと気づけば希望の動作が完成してしまいましたね・・・
ただ、もう少し綺麗な書き方はないでしょうか。
頼んでばかりで大変申し訳ないのですが、私の力量ですと案が浮かびません。
今一度、よろしくお願いいたします。
0704661
2006/02/20(月) 00:49:07ID:wo/bPpPB~~~~~~~~~~~~~~
この部分はcomment.php側にはどのように送られて、
どう処理して受け取ればいいのでしょうか?
0705nobodyさん
2006/02/20(月) 00:53:25ID:???0706nobodyさん
2006/02/20(月) 01:30:38ID:???0707nobodyさん
2006/02/20(月) 01:30:55ID:???0710nobodyさん
2006/02/20(月) 02:12:52ID:???お前はWebプログラムの基礎の基礎の基礎から1度やり直せ。
つーか、そんなのも知らずにプログラムしようとするな!!
まず1冊でいいからWebプログラム入門の本の頭から読んでみろよ。
そんなんでコメントはともかくトラックバックなんて仕込まれた日には社会の迷惑。
0711697
2006/02/20(月) 07:20:41ID:???示唆していただきありがとうございます。
こうすればいいのですね。これならば最後のループだけ違う動作も行えますね。
do{
$i++;
if($i<=5){
//特定の動作
continue;
}
//最後のループのみで実行される動作
}while($i <= 5);
>>697,>>703の$i==5はすべて$i<=5の間違いでした。
度々申し訳ありません。
0712nobodyさん
2006/02/20(月) 08:17:51ID:???for($i=1;$i<=5;$i++){
if($i<=5){
//特定の動作
continue; //←なしでもいい
}else{
break;
}
}
じゃだめなの?
0713712
2006/02/20(月) 08:23:25ID:???for($i=1;$i<=5;$i++){
//特定の動作
if($i==5){ //最後の処理 }
}
0714nobodyさん
2006/02/20(月) 10:06:25ID:???0715nobodyさん
2006/02/20(月) 10:40:46ID:???while (TRUE) {
if (++$i<=5)
echo '途中';
else {
echo '最後';
break;
}
}
で良さそうな
0716nobodyさん
2006/02/20(月) 10:47:48ID:???0717nobodyさん
2006/02/20(月) 12:03:55ID:???0718nobodyさん
2006/02/20(月) 12:12:10ID:???0719nobodyさん
2006/02/20(月) 13:45:09ID:???0720nobodyさん
2006/02/20(月) 13:52:42ID:???ちょと教えてほしいのですがinputのテキストフィールドなどの値を表示させるとき
<input value='<?=$hoge?>'> だと$hogeに'が入っているとおかしくなるし
<input value="<?=$hoge?>"> だと$hogeに"が入っているとおかしくなるし
<input value=<?=$hoge?> style=〜> だと$hogeが空白だとvalue後のタグが値と認識されて
おかしくなってしまうのですがどうしたらよいのでしょうか?
0721nobodyさん
2006/02/20(月) 13:59:22ID:???変数の宣言を強制する方法はありますか?
0723nobodyさん
2006/02/20(月) 14:08:52ID:???----test.php----
変数aに10を入力し、それを変数bに移し変数bを出力する
====source====
error_reporting(E_ALL);
$a = 10;
$b = $c; // 未宣言としてここは防げる。
$c = 10; // ここは防げない。
echo $d; // 未宣言としてここは防げる
----<test.php>----
0726nobodyさん
2006/02/20(月) 15:27:30ID:???0727697
2006/02/20(月) 15:30:36ID:???>>713
「特定の動作」は、ループの最後の"$i<=5"が真ならば実行し、偽ならば実行せずにループ終了
というようにさせたいのです。
それですと必ず最初に「特定の動作」を行ってしまうので、申し訳ありませんが趣旨とは少し異なります。
>>715
ちょうどその動作です。
綺麗なコードをどうもありがとうございます。
>>716
$i=0と考えていただいて結構です。申し訳ありませんでした。
>>717
最初にdo...whileを使おうと方針を立てただけで、同じ動作が行われるならば特に問題はないです。
do{
//ループ
}while(条件式) ここに条件が真の場合に行われる動作 ;
このような仕様になれば楽なのですけどね。
0728nobodyさん
2006/02/20(月) 15:44:16ID:???$i=0から開始なら
for($i = 0; $i <= 5; $i ++, 特定の動作) {
}
でいいじゃん
0729nobodyさん
2006/02/20(月) 16:05:20ID:???ちょこっとヒント頂けませんかoz
$conn=ocilogon("xxx","yyy","zzz");
$sql = "select id,pass from users";
$stmt = OCIParse($conn, $sql);
OCIDefineByName($stmt, "ID", &$dbid);
OCIDefineByName($stmt, "PASS", &$dbpass);
OCIExecute($stmt);
while(OCIFetch($stmt)){
$idpw[$dbid] = $dbpass;
}
OCIFreeStatement($stmt);
OCILogoff($conn);
0730nobodyさん
2006/02/20(月) 16:19:35ID:???簡単なsql文でデータは持って来れてるのは確認したので
配列に格納するところがおかしいとは思うんですが・・・
0732729
2006/02/20(月) 16:44:05ID:???聞く前にまだ自分にできることあったのに気づかなかったのがセンスなさ過ぎますね(TT
ありがとうございました またしばらく悩んでみます
0735nobodyさん
2006/02/20(月) 18:19:28ID:???0736nobodyさん
2006/02/20(月) 18:41:07ID:???0737nobodyさん
2006/02/20(月) 18:54:32ID:E2kZov7hPHPの最初で header('Content-type: text/plain;'); としてもうまくいきません。
0738nobodyさん
2006/02/20(月) 18:56:12ID:???header前でechoとかprintとか使ってない?
0739nobodyさん
2006/02/20(月) 18:56:36ID:???なことはできますか?
例)
preg_match_all('([0-9]+?)', '1,2,3,4,5,6,7,8,9', $matches);
この例では5までマッチしたら正規表現による検索を中止したい。
0740737
2006/02/20(月) 19:02:18ID:???> headerの前で何か出力をすると意味ないよ。
> header前でechoとかprintとか使ってない?
使ってないです。
ちなみにheader()の前でheaders_sent()してみるとFalseでした。
php.iniの設定の問題ですかね…
0743nobodyさん
2006/02/20(月) 19:06:55ID:???カンマ刻みの「要素,キー」が複数行あるデータをtxtファイルから読み込みasortしたいのですが。
読み込んだファイルから一気に連想配列を作成のしかたを教えてください。
自分では、
$lines = file("test.txt");
で読み込んだあとに、
$i = 0;
foreach ($lines as $value) {
list($a => $b) = explode(",",$lines[$i]);
echo "$a => $b";
$i++;
}
でできるかな…とかおもったんですが無理でした。
勉強中なんですさまじく頭悪い質問だとおもいますがよろしくお願いします。
0744nobodyさん
2006/02/20(月) 19:58:21ID:???allでは無理。つーかallって言わないだろそれ。
preg_matchはそれを実現するために4.3.3以降でoffset指定ができるようになってるから
ループで回せ。
0745nobodyさん
2006/02/20(月) 20:00:30ID:???条件にあるループにして途中で
break
die
return
continue
あたりで出来るんじゃね
preg_match_all使ったこと無いけどさ
0746739
2006/02/20(月) 20:04:30ID:???>allでは無理。つーかallって言わないだろそれ。
うーm、確かに
それでは、ループで回してみます。
0748nobodyさん
2006/02/20(月) 20:58:35ID:???> list($a => $b) = explode(",",$lines[$i]);
ここで無理せずに
list($a, $b) = explode(〜);
$array[$a] = $b;
にしときなよ。
0749nobodyさん
2006/02/20(月) 21:08:16ID:???レスありがとうございます。
やっぱ、それしかないんですかねぇ。
問題ないしやっぱりそれでいこうかとおもいます。
回答ありがとうございました。
0750nobodyさん
2006/02/20(月) 22:01:47ID:???一発でインストールできるコマンドは無いんですか?
落としたパッケージを一つ一つ入れる方法しか見つかりません。
Fedora core4です。
0751nobodyさん
2006/02/20(月) 22:04:06ID:???見やすいコードを書くんだ。
0752nobodyさん
2006/02/20(月) 22:08:30ID:???それを言うなら「かっこいいコードなんて書かなくていい。分かりやすいコードを書くんだ」だと思う。
バグを生まない鉄則だよね。
0754nobodyさん
2006/02/20(月) 22:58:13ID:???例
hoge.csv の2行目,6列目の文字列を表示
<?echo
0755nobodyさん
2006/02/20(月) 22:59:20ID:???r' ,v^v^v^v^v^il / ヽ
l / jニニコ iニニ!. / ジ き ぼ l
i~^' fエ:エi fエエ)Fi ! ャ れ く l
ヽr > V ! イ い は l
l !ー―‐r l <. ア な l
__,.r-‐人 `ー―' ノ_ ヽ ン /
ノ ! ! ゙ー‐-- ̄--‐'"ハ ~^i \_ _ノ
ヽ ! ヽ、_ _.ノ i \  ̄ ̄ ̄ ̄
ヾV / ! /.入
0757nobodyさん
2006/02/20(月) 23:05:58ID:???$fl = file ("hoge.csv");
$sp = split ("\t", $fl[1]);
$target = $sp[6];
かな。
0759nobodyさん
2006/02/21(火) 00:26:57ID:???0761nobodyさん
2006/02/21(火) 01:46:35ID:???0763nobodyさん
2006/02/21(火) 01:55:32ID:???fgetcsvなんて運頼みの関数使っちゃああああああああ
0764nobodyさん
2006/02/21(火) 01:56:44ID:???これ試してみ
"ソ","あああ"
0765nobodyさん
2006/02/21(火) 02:49:36ID:???タブ区切りだけのものとかにこう使うと問題無く使えて便利だよ。
$line = fgetcsv($fp, 1024, "\t", '');
0766nobodyさん
2006/02/21(火) 05:12:01ID:???ZIP解凍関数ならあるのですが…
0770nobodyさん
2006/02/21(火) 10:26:49ID:9X8UKVFdショッピングカートの原型を作っているのですが、
$nameにtestが入っていて送信すると、$_SESSION['test']=$testになるようにし、
header('Location')で次のページで表示します。
再び前のページに戻って今度は$nameにtest2が入っているデータを選択して
送信します。しかし、次のページではtestしか表示されません。
次のページではforを使って、$_SESSION['test']に入っているデータをすべて
出すようにしたのですが、1つしか入らないみたいです。
説明が下手で済みませんが、セッション変数に次々とデータを入れて
すべて表示させるような事はできるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています