くだすれPHP(超初心者用)5
at PHP
[前50を表示]
300:nobodyさん
08/12/22 18:02:13
教えてくれそうな男に体でも売ればいいんじゃね
301:nobodyさん
08/12/22 18:06:33
もうウンコして寝込むしかねぇ・・・
302:nobodyさん
08/12/22 18:21:33
マニュアル嫁
303:nobodyさん
08/12/22 18:26:34
どっかから小さめなスクリプト落してきて、
「なんで?なんで?なんでこうなるの?」と思いながら丁寧に読んだり、
チョっとした機能を追加してみたりして、
いろいろもがくといいんじゃないだろうか。
304:nobodyさん
08/12/22 20:08:10
初心者が読めるようなちょっとしたスクリプトは大抵がPHP4時代の糞CGIで変な癖がついたりする罠。
グローバル空間にexplodeしてたりするスクリプトが多すぎる。
305:nobodyさん
08/12/22 20:09:08
explode→extract
306:nobodyさん
08/12/22 20:09:52
>>304
それがどうしたの。
307:nobodyさん
08/12/22 20:18:07
んなの読まなきゃいいだろ
308:nobodyさん
08/12/22 22:15:31
>>299
初めてのプログラミングがPHPで、配列/連想配列でこけたけど、しばらくしてからやってみたらすぐ理解できた。
あんまり根詰めないで気楽にまったりやるといいよ。
読むだけじゃなくて手も動かすといい。
サンプル丸写しして、いろいろ自分で弄ってみるんだ。
エラー出ればメッセージ出て何が原因かすぐわかるしね。
309:299
08/12/22 22:16:58 W3OrxKsT
>>303
どっかから?
どっかから?そのどっかから?はどっかから?
つまり僕が言いたいのはどっかから?なんです。お願いします。
310:299
08/12/22 22:39:19 W3OrxKsT
>>308
( ´_ゝ`)フーン
「どうもありがとう」って言っといてだってお兄ちゃんが
妹より
311:nobodyさん
08/12/22 22:51:01
で、どう書いたら>>304さんに変な癖がついてると言われない書き方なのよん
正しい書き方教えてくりっ
312:nobodyさん
08/12/22 22:59:57
PHPの公式マニュアルで「非推奨です」「危険です」と書かれている書き方を全て避ける。
313:nobodyさん
08/12/22 23:00:21
変な癖が付いてると言われなければいいのか
314:nobodyさん
08/12/22 23:04:23
>>304 みたいな奴には何を見せても重箱の隅つつかれるよね。
スルーでいいとおもう。
315:nobodyさん
08/12/22 23:15:14 zcPu3Ss9
PHP4用の開発ノウハウってのがあって、これは今となってはバッドノウハウ。
PHP5のみサポートの有名なFWで開発してみて、動いたらソースを読むのが吉
316:nobodyさん
08/12/23 00:46:09
ノウハウ以前のレベルだろうに
317:nobodyさん
08/12/23 02:41:59
いまだに共用鯖じゃPHP4主流だもんなあ。
318:nobodyさん
08/12/23 03:56:34 207JnJAg
JavaScriptの"for〜in"構文をPHPで書くとどうなるのでしょうか
PHPはあまり分らないもので
319:nobodyさん
08/12/23 04:00:08
>>299
漏れは先にperlを2ヶ月やってから
PHPに移動した。
320:nobodyさん
08/12/23 04:13:36
>>318
マニュアル
321:nobodyさん
08/12/23 13:04:10
>>318
$array=array('name'=>'aki','age'=>23,'karesi'=>'futsu');
foreach($array in $key=>$item) {
echo "$key $item\n";
}
322:nobodyさん
08/12/23 13:54:23
単にforeach文て言えば済むじゃねぇかw
323:299
08/12/23 17:39:32
>>319
何でですの?教えてごらんなさい
324:nobodyさん
08/12/23 17:43:37
ご先祖様だから
325:nobodyさん
08/12/23 18:14:25
ご先祖様はCだろw
326:nobodyさん
08/12/23 18:37:45
そこまで戻る必要は無い
ってか、Cは却って難しい
327:nobodyさん
08/12/23 20:41:02
SQLite3ってPDOってやつを使ってアクセスするんですよね
マニュアルにあるSQLite3ってやつとは何が違うんでしょうか
328:nobodyさん
08/12/23 20:45:19
別にPDOじゃなくてもアクセスできるけど
329:nobodyさん
08/12/23 21:06:01
なるほど
ググってもPDOのことしか見当たらずそこからマニュアルに流れ着いて
SQLite3文?って物があるのを知ったのでどういった違いがあるのかなと思ったのですが
どっちを使っても構わないってことでしょうか
330:nobodyさん
08/12/23 21:06:50
うん
331:nobodyさん
08/12/23 21:19:15
わかりました
どちらがいいのかはわかりませんが、せっかくなのでSQLite3も使ってみます
332:nobodyさん
08/12/23 21:44:59
DBっていうのは、MySQLとかSQLiteとかPostgreSQLとかOracleとか、似たようなのがたくさんある。
元々はそのそれぞれに対して、よく似てるけどちょっとずつ形の違う関数がいっぱいあった。
で、それが不便だからって事で、「同じ書き方でどれにでもアクセスできるような仕組みを作ろう!」となった。
それがPDO。
PDOを使って書かれたプログラムは、DBがSQLiteからMySQLに変わっても、PDOクラスをnewしてるところだけ書き換えれば普通に動く。
また、PDOひとう覚えれば、どのDBでも使えるようになる、というメリットもある。
333:nobodyさん
08/12/23 21:50:29
普通DSNを書き換えるんだろ
334:nobodyさん
08/12/23 21:50:51
じゃあ自由度は下がるってことでFA?
335:nobodyさん
08/12/23 21:57:29
ひとう → ひとつ
これだけだとバランス取れないので、一応デメリットも。
全DBでなるべく共通の操作を提供する、という仕組みのため、一部のDBに固有の機能が使えなかったりする事がある。
よくある話だと、MySQLの持続的接続が使えなかったりな。あと、パフォーマンスでもPDOは若干劣る。
個人で使う最大のメリットは、プリペアドステートメントのサポートだと個人的に思う。
SQLインジェクションの危険性をほぼゼロにできる上に、プログラムの可読性も上がる。
336:nobodyさん
08/12/23 21:58:54
> よくある話だと、MySQLの持続的接続が使えなかったりな。
それってパフォーマンスに影響するんだっけ?ベンチとった?
337:nobodyさん
08/12/23 22:14:41
PDOは文字コード変更用の関数がないからなー……。
SET NAMES 危ないって聞くし。
338:335
08/12/23 22:49:27
>334
んな事いったら、sqlite関数やmysql関数を使ってしまえば、将来のDB変更の自由度が失われるわけだが。
俺は自由度や性能云々以前に、DB依存のコードがそこら中にあるのを気持ち悪いと感じる。そんなものはどっかで隠蔽されるべきだ。
(実際問題、DBを置き換えるなんて事態は普通ないだろうけどな)
339:nobodyさん
08/12/23 22:58:50
>>338
あたまでっかちおっさんどっかいけよ
340:nobodyさん
08/12/25 05:23:16
>>339
335, 338の発言を理解できないなら発言するな。
339的な発言は、このスレの害虫。
341:nobodyさん
08/12/25 05:57:49
>>PDOを使って書かれたプログラムは、DBがSQLiteからMySQLに変わっても、
>>PDOクラスをnewしてるところだけ書き換えれば普通に動く
SQL文自体がDB固有になるだろうから、現実的にそれはあり得ないんじゃないか?
(標準SQLだけで書かないでしょふつう)
俺的なPDOのメリットは、DB関連関数をどのDBにも共通で使えるため開発の学習量を
減らせること。これはソースコードの可読性の向上、メンテ性の向上にもなる。
342:nobodyさん
08/12/25 18:01:58
標準SQLだけで書かないのが普通という前提なら、共通で使える部分の学習量なんてほとんど0じゃないか?
343:nobodyさん
08/12/25 20:20:04
DBを変更する予定があるとき、
単純にPDOだけで実現できるわけじゃぁないが、
PDOで標準SQLだけを使うか、
PDOよりも抽象化したFWを使うわけで、
素の関数を使うよりは汎用性が高い。
どっちの言うことも大きく間違っちゃいないわな
344:nobodyさん
08/12/29 23:28:23 hqhRjo69
オブジェクトのメソッド名とプロパティ名の一覧ってどうやって取得したらいいんでしょうか?
345:nobodyさん
08/12/29 23:37:49
リフレクション
346:344
08/12/30 12:21:58
>>345
有り難うございます
おかげで3週間越しの問題が解決しました
本当に有り難うございます
347:nobodyさん
08/12/31 11:35:34
phpの質問かJavaScriptの質問か迷ったのですが、ボタン(button)がクリックされた時に
確認用のダイアログを出すにはどうすれば良いでしょうか?
実行しますか?
【OK】 【キャンセル】
※ダイアログを表示し【OK】が押された場合のみ
submit処理を行ういたいです。
348:nobodyさん
08/12/31 11:47:59
>>347
超JavaScript
ググれば死ぬ程出てくる
一番最初に引っかかったページ URLリンク(promptbox.jp)
お年玉くれw
349:nobodyさん
08/12/31 12:38:49
>>348
ありがとうございます。
でもお金ないです。。。
350:nobodyさん
08/12/31 12:39:59
つI
351:nobodyさん
08/12/31 13:25:47
つD 御縁がありますように。
352:nobodyさん
08/12/31 13:30:12
っH
353:nobodyさん
08/12/31 16:42:47
htmlかphpかわからないのでこちらで質問です。
formのプルダウンメニューの値を送信ボタンで渡すのはわかるのですが
プルダウンで選択しておいてリンクをクリックしたときにその値を一緒に
送るような使い方はできるのでしょうか。
ようはメニューでレイアウトの種類を選択して、リンク先をそのレイアウトで
表示させるといったことをしたいのですが。
354:nobodyさん
08/12/31 17:24:24
php関係無し
355:nobodyさん
08/12/31 18:25:42
そうですか、phpで操作できたらよかったんですが。
その後ググってるとJavaScriptでメニューの値が取得できるようですので
これとonClickだかでどうにかできるのかなってことでJSはわからないんですが
少し勉強してみようとおもいます
スレ違い失礼しました。
356:nobodyさん
08/12/31 18:29:31
JavaScriptのほうが最適ではあるだろうけど
工数増えるけどPHPでできないこともない
まぁガンガレ
357:nobodyさん
08/12/31 18:57:38
素直にやるならJavaScriptだろうな。
プルダウンを変更した時点でリンク先を書き換えるか、クリック時にフォームのsubmitイベントを呼び出すか。
358:nobodyさん
08/12/31 18:59:09
>>353
リンクにonclickといれてsubmitさせてやればいい
359:nobodyさん
08/12/31 19:01:23
俺ならselectが変更された時点でJavaScript経由でcookieに表示設定を放り込む。
一度選択したら2回目以降は覚えていて欲しいだろうからな。
360:nobodyさん
08/12/31 19:49:56
URLに数字等を入れる事により1つのphpページ画面をそのパラメータによりページの内容を
変えたいと思います。
どうすれば同一phpページをパラメータURLを指定する事により表示内容を変更する事が出来ますか?
URLリンク(www.test.php=1234)<)
361:nobodyさん
08/12/31 19:52:15
httpのクエリストリングから調べろ
362:nobodyさん
08/12/31 20:01:42
>>360
URLリンク(www.example.com)
こういう形なら$_GET['page']で1234が取得できるから
これを使って切り替えれば良い
ただしpage=1234の1234は誰でも値を入れる事ができるから
チェック等は必ずするように
363:360
08/12/31 20:14:49
>>361
ヒントをありがとうございます。
>>362
詳しくご解説頂きありがとうございました。
早速「ガキ使い」を見ながらプログラミングしてみようと思います。
364:nobodyさん
09/01/03 12:58:05
phpでシステム開発をする場合には通常次の階層の直下に*.phpファイルを置いて
動作確認を行いますよね?
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs
しかし、1つのPCで複数サイトの開発を行う場合には、次の用にフォルダを切った上で
開発を行っているのですが、この方法は正しいですか?
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\site1
C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\site2
※要するに動作確認をする場合には次の用にしなくてはならないので。(まっ、これしか方法は無いかな?)
URLリンク(localhost)
URLリンク(localhost)
365:nobodyさん
09/01/03 13:04:40
hosts にサイト名追加して、VirtualHost つかうとかもあるな。
366:nobodyさん
09/01/03 13:12:49
俺はZF使ってるからmod_rewrite
367:nobodyさん
09/01/03 13:20:37
使ってれば偉くなった気になるんですね。わかります。
368:nobodyさん
09/01/03 13:31:35
お前は何を言ってるんだ
369:nobodyさん
09/01/03 13:31:42
俺も毎日ちんこ使ってるので偉くなった気になっています。
370:nobodyさん
09/01/03 13:45:12
>>365
LinuxじゃないとVirtualHostは使えないのではないですか?
それともWindows環境でも出来るのですか?
>>366
取り敢えず、
URLリンク(tech.bayashi.net)
のサイトで勉強してみようと思います。
実務でphpを使ったWEBサイトの開発とかした事が無いのですが、
実務でphpで開発を行う場合にテキストエディタだけを使っているプロジェクトは少ないですか?
あと、複数サイトの開発を1台のPCで行う場合に、>>364みたいな感じで行うのは
能率が悪いでしょうか?
371:nobodyさん
09/01/03 13:53:14
>>370
べつにWindows環境だってIPベースでも名前ベースでもできるさ
372:nobodyさん
09/01/03 13:54:52
Apacheの話題はスレ違い
373:nobodyさん
09/01/03 13:57:42
>>370
人の話を疑うぐらいなら聞くな >>364の形で運用するわけじゃないんならダメだろ。 >>365がFA
374:nobodyさん
09/01/03 14:00:48
おれは常にテキストエディタ(Vim)と過去の開発資源(ライブラリ)だけで事足りてる
375:nobodyさん
09/01/03 14:19:04
んんんだこのgdgdはw
複数サイトをプロジェクト(複数人数)でやるんだから、ファイルのアップロード方式の方が重要。複数の人間がftpでアップするのなら、それを管理しやすい方法で
あと、htdocs/aaa/bbb/ とかでやった場合、mod_rewrite の RewriteBase が後でアレな時あり
プロジェクトを管理できれば良いので、エディタは何でもいい
376:nobodyさん
09/01/03 14:38:30
複数の人間が更新するならCVSとか使うかなあ
サイト側もcheckoutするのだ
377:nobodyさん
09/01/03 14:55:16
checkoutじゃなくて、exportな
378:nobodyさん
09/01/03 14:59:27
>>371 〜 >>375 あざーす。
ぐぐって勉強してみます。
379:nobodyさん
09/01/03 15:57:48
Subversionを使っているのに何故かデプロイがftp経由ファイル単位なうちのプロジェクトは滅ぼしていいと思う。
>370
同時にいじるなら、何も考えずにやってるとアクセスログが同じファイルになってしまうので、やりづらいと思う。
そのままでもできるけど、バーチャルホストの方がエラーログの切り分けが簡単。
あとは両プロジェクトで同名のクッキーを使った場合衝突が発生する点かな。セッション周りが特に危険。
あと、本番環境に持っていく際に、相対リンク/絶対リンクとか周りで絶対いくつかリンク切れが発生すると思う。
以上のような点を気にしなくて良いのならば、そのままでもいいんじゃない?
380:379
09/01/03 16:44:44
ああ、そもそもセッション変数が共有されてしまう点の方が問題か。
クッキーは発行パスを適切に指定すれば混ざらないが、本番環境への移行の際に適切な修正をする必要がある。
381:nobodyさん
09/01/12 12:35:49
パール互換の正規表現についてなのですが、
preg_matchなど公式マニュアルに出ている内容については理解したのですが、
Perlとは微妙に違うリテラルやトークンの使い方について詳しく説明してある
ドキュメント等はないでしょうか?
382:nobodyさん
09/01/12 13:43:52
PHPって確か鬼車使っているんだっけ
だとしたら
URLリンク(www.geocities.jp)
補記 3. Perl 5.8.0と比較して存在しない機能
+ \N{name}
+ \l,\u,\L,\U, \X, \C
+ (?{code})
+ (??{code})
+ (?(condition)yes-pat|no-pat)
* \Q...\E
但しONIG_SYNTAX_PERLとONIG_SYNTAX_JAVAでは有効
383:nobodyさん
09/01/12 15:24:30
ありがとうございます!
参考にメモさせていただきました
384:nobodyさん
09/01/13 02:11:38
くだらない事なんですが、一つ気になっている事があります。
PEAR::Logでログでログ管理をしようと思っているのですが、
手元の参考書やWebで調べると、解説のサンプルプログラムが
<?php
require_once 'Log.php';
$file = &Log::factory('file', 'out.log', 'TEST');
$file->log('ログ内容');
?>
みたいな場合が多いのですが、この場合Log::factoryで作成した
インスタンス(?)の$fileは明示的にcloseか何かしなくて言いのでしょうか?
例えば、普通のファイル操作ならfopenしたら最後はfcloseをするので、
Log::factoryもそれに該当する操作が必要ないのか?と気になりましたので・・・・
385:nobodyさん
09/01/13 03:08:48
マニュアル嫁
386:nobodyさん
09/01/15 22:20:46
テキストファイルを読み込んで一行ごとに配列に入れ
配列を検索して特定の文字が含まれていた場合そのインデックスを返す
っていうのをやりたいのですが、わかりません。よろしくお願いします。
インデックス1を返して欲しいんですが、何も返ってきません。
***テキストファイルの中身*******
群馬県
栃木県
茨城県
埼玉県
東京都
****************************
<?php
//ファイルを開く
$filename="test.txt";
//配列に代入する
$f1=file($filename);
//特定の文字が含まれる要素を探す
$word="栃木県";
$key=array_search($word,$f1);
print($key);
?>
387:nobodyさん
09/01/15 22:27:13
返り値
ファイルを配列に入れて返します。 配列の各要素はファイルの各行に対応します。改行記号はついたままとなります。 失敗すると file() は FALSE を返します
388:nobodyさん
09/01/15 22:28:50
$word="栃木県\n";
389:nobodyさん
09/01/15 23:00:30
>>387
>>388
レスありがとうございます。
この検索の場合は完全に一致するものしか検索できないんですね。
例えば
$word="玉";
とした場合に
埼玉県のインデックスの3を返すというのは無理なんでしょうか?
390:nobodyさん
09/01/16 00:17:00
>>389
データーベースに入れて
「like」検索をすればできる。
391:nobodyさん
09/01/16 07:02:26
>>389
DBなんて使わなくてもstrposでできる
392:nobodyさん
09/01/16 15:17:30
>>391
strposって、最初に出てきた位置を返す関数じゃない?
「あるかどうか」を調べる関数のほうがいいんだけど。
393:nobodyさん
09/01/16 15:19:44
最初に出てくる=ある
394:nobodyさん
09/01/16 16:25:58
strposで位置取得
そこまでに\nがいくつあるか
ウマー
395:nobodyさん
09/01/16 23:23:04
俺なら何も考えず配列に格納→foreachでループ→中でstrpos
>392
strposは文字列検索としては最速の部類。
他の選択肢はpreg_match位しかないが、preg関数とstr関数じゃお話にならんほど速度が違う。
396:nobodyさん
09/01/16 23:24:33
説得力を持たせるためにベンチマークを載せてはどうかね?
397:nobodyさん
09/01/16 23:28:16
自分でやれ
398:nobodyさん
09/01/17 11:25:45
>>396
395ではないが暇なので作ってみた
$imakara_ikude = microtime(TRUE);
$dokowo_sawatte_hosiinya = '検索対象にしたい任意の文字列';
$kokoga_eenka = '検索したい任意の文字列';
$kokoga_eenka_pattern = '/' . preg_quote($kokoga_eenka, '/') . '/';
$itte_itte_ikimakuru = 100000;
for ($i = 1; $i <= $itte_itte_ikimakuru; $i++) {
if (strpos($dokowo_sawatte_hosiinya, $kokoga_eenka) !== FALSE) {}
// if (strstr($dokowo_sawatte_hosiinya, $kokoga_eenka)) {}
// if (preg_match($kokoga_eenka_pattern, $dokowo_sawatte_hosiinya)) {}
}
$doya_yokattaka = microtime(TRUE) - $imakara_ikude;
echo $doya_yokattaka;
■結果 - Windows XP(ペン4 3.2GHz)+XAMPP(PHP5.2.2)
strpos():0.060ぐらい
strstr():0.052ぐらい
preg_match():0.28ぐらい
strstr()の方が微妙に早いが、公式マニュアルでstrstr()の説明見ると
strpos()使えカスと書いてるので俺は素直にstrpos()使う。
399:nobodyさん
09/01/17 11:38:45
>>392
というわけで、
if (strpos($str, 'search') !== FALSE)
を使え。必ず「!== FALSE」にするように。理由は説明ダルいからマニュアル見れ。
>>389
$index = FALSE;
$word = '玉';
if ($ary = file('test.txt')) {
foreach ($ary as $key => $val) {
if (mb_stripos($val, $word) !== FALSE) {
$index = $key;
break;
}
}
}
var_dump($index);
strpos()はマルチバイト対応してないので、mb_系使うように。
400:nobodyさん
09/01/17 11:43:51
>>399で書き忘れたが、大規模検索なら素直にDB使う。
>>384
気持ち悪いなら明示すりゃいい。というか、色んな意味で明示したほうが良いと俺は思う。
phpは、リソースのオープンは明示しなくても自動的に閉じてくれる。(ファイルであれDBであれ)
>>382
PHP5から鬼車。mb_ereg()系で。
preg_match()では使われてないのでは?
401:nobodyさん
09/01/17 11:53:04
お前らJavaとPHPのスキルを比率で示してくれ。
俺の場合
Java : PHP = 5 : 5
ただ、レンタルサーバ代がJavaだと高いから力配分を
1:9程度に持って行こうかと思ってる。
402:nobodyさん
09/01/17 12:00:27
>>399
最初にifしてるのはなんで?
403:nobodyさん
09/01/17 12:05:09
>>402
$a = array('a', 'b', 'c');
foreach ($b as $k => $) {}
実行すれば分かる
404:nobodyさん
09/01/17 12:06:47
>>398
変数ワロタwww
405:400
09/01/17 12:11:35
>>384
あ、ひょっとしたらデストラクタで閉じてるのかもね。と一応>>400に付けたし。
連レスウザいだろうからこの辺で。
406:nobodyさん
09/01/17 12:23:28
>>403
だったら普通初期化するかキャストするもんだよ
407:nobodyさん
09/01/17 12:25:11
>>406
開こうとしているファイルが必ず開けるとは限らないわな。
408:nobodyさん
09/01/17 12:26:13
>>407
foreach((array)file('〜') as ...)
409:nobodyさん
09/01/17 12:29:37
phpごときで何細かいことウダウダやってんだかww
410:nobodyさん
09/01/17 12:30:34
>>406
エラー処理がしやすいとかじゃね?
411:nobodyさん
09/01/17 12:34:40
あと
$ary = file('test.txt') or array();
$ary = file('test.txt') or exit;
とか。もしくは例外使う。
何か関数からの出力を得る度にifで1ブロック使うなんてナンセンスすぎ。
412:nobodyさん
09/01/17 12:38:43
399は最近学び始めてphpが分かってきたから答えたくてたまらないお子ちゃまか
413:399
09/01/17 12:39:51
>>411が糞ウザくなってきたから一言。
あのな。
言っておくが、>>399みたいな処理は普通はクラスのメソッド通すなりするわ。
めんどくさいからはしょってるだけだろーが。分かるか?あ??
なんか>>411見てると、俺の会社の全然使えないカスPGにそっくりで殴り倒したくなるわw
414:nobodyさん
09/01/17 12:40:56
いやお前のコードが使えないんじゃん
415:nobodyさん
09/01/17 12:41:35
お前ら、質問があっても誰も答えないくせに
誰かが答えるとそれには文句つけないと気がすまないんだな。
どうしようも無いカスだなw
416:nobodyさん
09/01/17 12:42:27
たかがPHPでしょ
動けばいいじゃん
ばか?
417:nobodyさん
09/01/17 12:43:17
能力ないのに見栄を張るとは恥ずかしい奴だなw
418:nobodyさん
09/01/17 12:46:56
さすがPHPスレ。お前ら目糞鼻糞。
419:nobodyさん
09/01/17 12:50:26
____ ) 『 実行すれば分かる 』っと、
/⌒ ⌒\ ) 『 開こうとしているファイルが必ず開けるとは限らないわな』っと。
/( ●) (●) \ )/⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y丶
/ ::::::⌒(__人__)⌒::::: \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ カ
| l l||l 从人 l||l l||l 从人 l||l カ タ
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. タ
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
┌┬┬┐┌┬┬┬┐┌┬┬┬┐┌┬┬┬┐
,. - ''"| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ρ ̄`l
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ ̄ ̄
____
/::::::─三三─\ foreach((array)file('〜') as ...)
/:::::::: ( ○)三(○)\
|::::::::::::::::::::(__人__):::: | _____
\::::::::: |r┬-| ,/ .| |
ノ:::::::: `ー'´ \ |
420:nobodyさん
09/01/17 12:52:06
やぱりphpしか使えない奴ってバカっ事でOK?
Java使いが一番
421:nobodyさん
09/01/17 12:52:28
>>419
ウケルwwwww
422:nobodyさん
09/01/17 12:53:47
アホな奴もいるもんだなw
423:nobodyさん
09/01/17 13:03:06
自演煽りのクオリティが低すぎて吹いた
424:nobodyさん
09/01/17 13:46:03
書き込み時間と日頃のレスの伸びからして2名が暴れていただけらしいな
PHPやってると頭だけではなく性格まで悪くなるらしいから気をつけようww
融通利かないやつやコミュニケーション能力無いやつは
PGだろうが何だろうが使えん
うちにも1名いて給料の査定も下がったはずだが、はやくその理由に気付いて辞めてくれ
425:nobodyさん
09/01/17 17:45:47
一週間を表示する関数を作ってみたんですが、
どういうわけか土曜日だけ文字化けしてしまいます。
解決策はないでしょうか?
<?php
write_day();
//一週間を表示する関数
function write_day(){
while($i<7){
print($f1[$i]);
$ts=getDay($i);
print(date("m/d".getYoubi(date("w",$ts)),$ts));
$i++;
}
}
//曜日を漢字に変換
function getYoubi($wday) {
$arr = array("(日)","(月)","(火)","(水)","(木)","(金)","土");
return $arr[$wday];
}
//日にちを取得する関数
function getDay($day){
$now = time();
return mktime(date("H",$now),date("i",$now),date("s",$now),date("m",$now),date("d",$now)+$day,date("Y",$now));
}
?>
426:nobodyさん
09/01/17 18:23:30
>425
コードをShift_JISで書かないでUTF-8にするだけで解決。
427:nobodyさん
09/01/17 18:52:25
>>426
一発で解決しました。ありがとうございます。
本当文字コードって難しい。
スクレイピングでサイト作る人とか超尊敬。
428:nobodyさん
09/01/17 23:41:37
>>425
まったく関係ないんだけど
土曜日だけ()が付かないのはなんでなんだろうと思った。
429:nobodyさん
09/01/18 07:29:09
>>428
土曜日だけどうしても文字化けで表示できず
いろいろと試行錯誤した結果わからなかったので
質問しました。
()除いたりといった試行錯誤の名残をそのまま
書いてしまいました。ごめんなさい。
430:nobodyさん
09/01/18 11:24:28
>>424
自己紹介乙
431:nobodyさん
09/01/18 20:28:36
プログラム経験無しで、今からPHPを勉強しようと思っています。
そんな俺に、一冊買うならコレ!っていうPHPの参考書を教えてください。
432:nobodyさん
09/01/18 20:32:39
>>431
URLリンク(www.php.net)
433:nobodyさん
09/01/18 21:03:22
>>432
本をonegaisimasu
434:nobodyさん
09/01/18 22:30:36
まずマニュアル嫁
435:nobodyさん
09/01/18 23:59:27 542zz2rd
アンケートプログラムなんかでよくある、全部の項目が入力されているかを
submitボタンが押されたときに調べて、それが通ればsessionに入力項目を追加して次のページへ
ってことをやりたいんですが、
全部の項目が入力されているかを調べるのはonclickにJavascriptでチェック出来ますが、
そのあと動的に選んだ値をphpのsession変数に追加するのってどうしたら良いのでしょうか?
436:nobodyさん
09/01/19 00:03:08
$_SESSION['hoge'] = $hoge;
437:nobodyさん
09/01/19 00:11:48 jnDZLn2z
>>436
すいません、えっとどう言ったら良いのか;
質問のニュアンスを伝えるためにわざと無茶苦茶に書くと、
<input type="submit" onclicke="check()" />
<script type="text/javascript">
function check(){
//checkコード
if(allchecked){
$SESSION['age']=document.getElementsById("age");
}
}
</script>
こんな風な意味合いのことをする方法を聞きたかったのです。
438:nobodyさん
09/01/19 00:16:55
PHPとJavascriptの違い分かってないの?
439:nobodyさん
09/01/19 00:21:05 jnDZLn2z
>>438
あくまでニュアンスを伝えるために上記のような書き方をしているだけで、
サーバサイドphpとユーザサイドJavascriptの違いは分かってます。
ただphpではこういうチェックが出来ないのでどうしたものかと迷ったので。
440:nobodyさん
09/01/19 00:21:42
よく分からんがGETで取れば?
441:nobodyさん
09/01/19 00:22:12
いやPOSTでもいいけど
442:nobodyさん
09/01/19 04:21:49
>>437
よく意味がわからんが・・・
<form name="form1" method="post" action="hoge.php">
<input type="submit" onclick="return check();" />
名前:<input type="text" name="name" />
</form>
<script type="text/javascript">
function check(){
//checkコード
if (document.form1.name=='') {
alert('名前が入力されていません');
return(false);
}
return(true);
}
</script>
あとはhoge.phpでnameを受けとってセッション変数に放り込むなり好きにするヨロシ。
443:nobodyさん
09/01/19 04:44:39
ただのjavascriptの話になってるw
444:nobodyさん
09/01/19 17:58:38
うわわわわ。。。
issetでもisSetでも書けるくさいなぁ(´・ω・`)
445:nobodyさん
09/01/19 20:15:28
str_replaceよりpreg_replaceが速いのか
446:nobodyさん
09/01/20 00:26:44
>>445
それはありえない
preg_replaceは正規表現の処理が入る分遅くなる
ついでにいうと、単純な置換ならstrstrよりstr_replaceの方が速い
447:445
09/01/20 00:28:42
>>446
じゃあここのはウソってことか。。。
URLリンク(phpspot.org)
448:nobodyさん
09/01/20 00:37:17
うん
449:nobodyさん
09/01/20 00:58:56
>>447
そのサイトは検証もせずコピペしてるだけだからあまり鵜呑みにしない方がいい
450:nobodyさん
09/01/20 01:55:00
原文はこう書いてある。
str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4
PHPの勉強の前に、まず英語勉強しようぜ
451:nobodyさん
09/01/20 06:28:50
>>450
その原文の出典ってどこ?
452:nobodyさん
09/01/20 07:38:55
>>447のリンク先
453:nobodyさん
09/01/20 12:58:32
>>447
記事がうそじゃないとしても、2年も前だとあまり当てにならないな。
5.1.x時代だっけ
454:nobodyさん
09/01/20 14:17:46 auDP4Xko
sql文の中に多数の変数を入れるにはどうしたらよいのでしょうか?
455:nobodyさん
09/01/20 14:24:08
普通に文字列連結じゃだめなの?
意図がいまいちわからない。
あ、エスケープはしっかりしろよな。
456:454
09/01/20 20:16:30
>>455
はい普通に . でした
6時間前の自分にゲンコツしときました
457:nobodyさん
09/01/20 23:14:20 FkFXLWeK
URLリンク(php5.seesaa.net)
ここを見ながら勉強中で、ひとつ前の
Step9・入力された値をPHPでチェックする
まではうまくいったんですが、
Step10・入力された値をJavaScriptでチェックする
が、うまくいきません。イントラネットとかいうのが関係してるんでしょうか。。
何度も確認したんですけど、警告ウインドウが出てきません
458:nobodyさん
09/01/20 23:21:44
問題の切り分けすべし
459:nobodyさん
09/01/21 03:11:36
まずなにも入れないで計算してみて。
あとjavascript有効になっている?
460:nobodyさん
09/01/21 09:46:52 VkT7uFdT
>>459さん
javascriptは、セキュリティのところでいじればいいんですよね。
それでしたら有効になってます。
なにも入れないで計算すると
-------------------
+=0
前の画面へ戻る
-------------------
って出ます。IEから見るソースは
-------------------
<html>
<head>
<title>calc.php</title>
</head>
<body>
+=0
<br/>
<br/>
<a href="#"onclick="history.back();return false;">前の画面へ戻る</a>
</body>
</html>
------------------------------
です。
書いてるソースのほうは
URLリンク(php5.seesaa.net)
にあるとおりだと思います。
461:nobodyさん
09/01/21 10:44:16
calc.htmlはどうなっているの?
最初に実行するプログラムはなに?
calc.htmlだよね?
そこからcalc.phpで処理してってことだけど、
form action とか大丈夫これどうり記述しているよね?
jsも読み込んでいるよね。
パスもあっているよね?
462:nobodyさん
09/01/21 13:51:32 ruw5pBd2
<input type="text" name="名前" size="20" />
<?
$line = "==名前==";
$line = ereg_replace("==(.*)==", $_REQUEST["\\1"], $line);
?>
上記スクリプトで $line を name="名前" のフォーム値に置換したい
のですができません。どうすれば置換できるでしょうか?
463:nobodyさん
09/01/21 14:09:33
マニュアル見れ
あとeregよりpreg
464:nobodyさん
09/01/21 14:58:58 VkT7uFdT
>>461さん
calc.htmlのソースは
---------------------------
<html>
<head>
<script type="text/javascript"src="calc.js"></script>
<title>calc.html</title>
</head>
<body>
<form name="form1"action="calc.php"method="post">
<input type="text"name="txtA"id="txtA">
<select name="selOpe"size=1>
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text"name="txtB"id="txtB">=?
<br>
<input type="submit"value="計算">
<input type="reset"value="クリア">
</form>
</body>
</html>
-------------------------------------
です。パスがあっているかどうかは、どこを見るとわかりますか?
465:nobodyさん
09/01/21 15:12:50
>>464のソースの中を見ればわかりますよ!( ^∀^)b
466:nobodyさん
09/01/21 15:27:54
sample012
の中にはなにが入っている?
sample011までPHPは動いていたんだよね?
わからん。
ほんと。URLリンク(php5.seesaa.net)
と同じことしているんでしょう?
calc.jsもsample012のフォルダの中にはいっているんでしょう?
ソースはコピペしてやっているんでしょう?
467:nobodyさん
09/01/21 16:23:54 VkT7uFdT
>>465さん
>>466さん
コピペしなおしたらできるようになりました。
でもどこが悪かったのかわからに・・
468:nobodyさん
09/01/21 19:35:45
考えられるのは、どっかに空白がはいってしまったこと。
なんか変な文字がどこかにはいってしまったか。
おれもコピペでそういうことになったことは
よくある。
見たとこミスはないので、あのソースをきちんと理解
して次進んでいいと思うよ
469:nobodyさん
09/01/21 21:43:57 VkT7uFdT
空白もいけないんですか
先生ありがとう
470:nobodyさん
09/01/21 22:33:22
いやあくまでも想像だけど、でも間違っているところがないから。
以後もし動かったら再度コピペすることを望みます。
471:462
09/01/22 10:25:52 PnoeEoeZ
>>463
すみません、マニュアル見直しました。
ところで、
$line = "==名前==";
//$line = preg_replace("/==(.*)==/e", "$_REQUEST['$1']", $line);
$line = preg_replace("/==(.*)==/e", "rep('$1')", $line);
function rep ($text) { return $_REQUEST["$text"]; }
コメント行の置換が動作せずに下記エラーが発生するのですが、
いちいちrepのようなfunctionを用意しなきゃいけないのでしょうか?
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
in /************/index.php on line 340
472:nobodyさん
09/01/22 10:36:31
preg_replace_callback じゃないのか
473:nobodyさん
09/01/22 12:54:40
$line = "==名前==";
$line= preg_replace("/==(\S*)==/e", 'sprintf("<input type=\"text\" name=\"$1\" value=\"%s\" />", isset($_REQUEST["$1"]) ? $_REQUEST["$1"] : "")', $line);
こうやりたいのか?
キー文字は==全角==じゃなくて==半角==がいいと思うが
474:473
09/01/22 13:16:38
htmlspecialcharsも使わないとやヴぁいか。。。
475:462
09/01/22 13:23:02 PnoeEoeZ
>>473
すいません、解決しました。バカみたい・・・
$line = preg_replace("/==(.*)==/e", 'sprintf("%s", $_REQUEST["$1"])', $line);
476:nobodyさん
09/01/23 05:27:52 L5uKYwrL
今初めてのPHP+mysqlを勉強しているのだが、
17章のサンプルアプリケーションが動かない。
これって仕様かな?
おれはcent os5でやったんだが、画面真白で。
linuxで誰かやってくれませんか?すいませんが
お願いします。ソースは一応レンタルサーバーと
ホームページ上に貼り付けているんで、
ソースダウンロードできないんだ。
URLリンク(gichioka.web.fc2.com)←ソースをダウンロード
URLリンク(www.krautgrrl.com)←データベース
とかもろもろ貼ってあります。
お手数ですが、よろしくお願いします
477:nobodyさん
09/01/23 05:29:33 L5uKYwrL
日本語へたで申し訳ないですが、まあ両方見てやってみてください。
ほんとはphpの本のスレに行きたかったんだけどなくなってしまった
みたいで。
すいませんが、よろしくお願いします
478:nobodyさん
09/01/23 05:34:48 L5uKYwrL
すいません。
サンプルコードありました。
昔はなかったのに
URLリンク(www.oreilly.co.jp)
ここです。
479:nobodyさん
09/01/23 07:37:08
オライリー本、
読んで理解できたためしがない
480:nobodyさん
09/01/23 08:08:21
>>478
エラーメッセージは?
481:nobodyさん
09/01/23 16:01:37
<?php
session_start();
$anc = array('anc1' => 'one', 'anc2' => 'two', 'anc3' => 'three'); $html = '<html><body><form action="">';
switch ($_REQUEST['m']) {
case '1':
$html .= 'confirm<br />';
foreach ($anc as $k => $v) { $_SESSION[$k] = $_REQUEST[$k]; if ($_REQUEST[$k]) { $html .= $v . '=checked! '; } }
$html .= '<br /><input type="hidden" name="m" value="2"><input type="submit" value="go!">';
break;
case '2':
482:nobodyさん
09/01/23 16:04:18
$html .= 'finish<br />'; $param = ''; foreach ($anc as $k => $v) { $_SESSION[$k] = $_REQUEST[$k]; if ($_REQUEST[$k]) { $param .= $v . '=checked! '; } }
if ($fp =@ fopen('anc.dat', 'a')) { fputs($fp, date("Y/m/d H:i:s ") . ' ' . $param . ' ' . $_SERVER["REMOTE_ADDR"] . "\n"); fclose($fp); } $html .= 'thank you!';
break;
default:
$html .= 'question<br />'; foreach ($anc as $k => $v) { $html .= '<input type="checkbox" name="' . $k . '" value="1">' . $v . ' '; }
483:nobodyさん
09/01/23 16:08:55
$html .= '<br /><input type="hidden" name="m" value="1"><input type="submit" value="next">';
}
$html .= '</form></body></html>'; echo $html; exit;
?>
パソコンが今使えないので携帯で消化してしまってごめんなさい
このプログラムのoneやtwoを別のファイルに記録したいんですが
どうすればよいでしょうか?
すごい初心者なので、良ければ具体的に教えていただければ嬉しいです
スレチや失礼あればごめんなさい
484:nobodyさん
09/01/23 16:11:58 Jr51+scJ
あと、これを一時間くらいでやらなきゃなので
テンパってます…
お待ちしてます
485:nobodyさん
09/01/23 16:34:47
初心者とかじゃなくて、
「oneやtwoを別のファイルに記録したいんですが 」
日本語か?それ。
486:nobodyさん
09/01/23 16:40:52 Jr51+scJ
すいません
やはり分かりにくかったですか
questionの解答がoneやtwoになっていて
その解答を記録したいんです
解答した日付時刻などはanc.datに記録されますが
なにを答えたかが記録出来てないと思うのですが
487:nobodyさん
09/01/23 16:58:18
>>486
なんかエラー出てると思うけどねぇ。
エラーを確認するのが解決への近道だよ。
たぶん、原因は↓かと。
$param .= $v . '=checked! ';
$param .= "{$v}=checked! ";
に変えてみたらどうかな?
488:nobodyさん
09/01/23 17:08:51 Jr51+scJ
>>487
あれ
paramじゃなくてそこはhtmlにではないですかね
僕の方では一応エラーは出てません
489:nobodyさん
09/01/23 17:21:03
>>486
セッションが引き回せていないだけ、ってオチじゃないの?
case '2'のところで、print_r($_SESSION)ってやってみれば?
490:nobodyさん
09/01/23 17:27:13 Jr51+scJ
>>489
すいません
どの辺りに入れたらいいかよろしければおねがいします
セッション引き回す?の意味がよく分からないのですが
…念のためお聞きしますが、このプログラムでは解答をファイルに書き込めないですよね?
491:nobodyさん
09/01/23 17:37:42
>>486
もう少し頭を整理したら?
回答はどのファイルに書き込むの?
> oneやtwoを別のファイルに記録したいんですが
回答毎に別のファイルを作るってことかい?
492:nobodyさん
09/01/23 17:39:39
//$_SESSION[$k] = $_REQUEST[$k];
//if ($_REQUEST[$k]) {
if ($_SESSION[$k]) {
493:nobodyさん
09/01/23 17:52:40
>>490
デバッグなんだから、どこでもいいよ。
とりあえず、聞く前に試したら?
セッションに代入した(はずの)後、
代入された(はずの)セッションを使う前
494:nobodyさん
09/01/23 17:58:15 Jr51+scJ
>>491
これをwebアンケートのようにしたときに
これを解答した人が何を選んだのか記録するファイルを作りたいんです
今はanc.datをつくればそこに日付等が記録されますが
できれば加えてone,two,threeのどれにチェックをつけたかも記録したいということです
記録するのがanc.datファイルでなくてもよいです
>>492
ありがとうございます!
それで上記みたいな事ができるでしょうか?
今は分かりませんが、夜に試してみます
495:nobodyさん
09/01/23 18:00:35 Jr51+scJ
>>493
自分でさっきいろいろ挿入してみました
どうしてもエラーが出てしまったので
あとで>>492を試してみます
ありがとうございます!
496:476です。
09/01/23 19:42:52 L5uKYwrL
エラーメッセージは
Warning: Unknown: Failed opening '/var/www/html/login.php' for inclusion (include_path='.:/usr/local/include/php/libs') in Unknown on line 0
でした。
わかる人いますか?
ぜんぜんわかりません。
ちなみにsmartyはURLリンク(hangar5.blog48.fc2.com)
でインストールしました。
497:nobodyさん
09/01/23 20:01:20
すんまそん、どなたか教えて下さい
あるphpで書かれたスケジューラを使っているのですが、ユーザ認証の際に
POSTで パスワードを受け取り($pwd)、これの一部をsaltとして使い、crypt()でパスワードを暗号化しています。
おおまかな処理は以下の様な感じで行っています(htmlspacialchars等は省きました)。
/* $userid, $pwd => POSTから受け取ったユーザ名・パスワード */
$ pwd_cr = crypt( $pwd, substr( $pwd, 3, 2 ) );
/* SQL文作成 */
$sql = "SELECT id, passwd FROM users ";
$sql .= "WHERE id='".$userid."' AND password='".$pwd_cr."'";
/* SQLの結果セット取得 */
$res = pg_query($conn, $sql);
$cnt = pg_num_rows($res);
教えてもらいたい事ですが、この crypt( string $str [, string $salt ] ) について、
$str と $salt が完全に同じものである場合、どのような環境でも、生成される文字列は常に同一のものになるのでしょうか?
なんでまたこんな事を聞くかと言うと
Windows ServerにApacheとPHPをぶちこんで動かしていたら、Apache再起動のタイミングで
何故か 同一の $str ・ $salt から生成される文字列が変わってしまった経験が今日を含めて2回起きたからです。
そりゃ確かに php.netのマニュアルには
> そのシステム上で使用できるその他のアルゴリズムを使用します
と書いてあるんですが…ンなcryptの動作がコロコロ変わるものなんでしょうか?
498:nobodyさん
09/01/23 20:04:21
連投すみません、追記。
crypt の挙動が変わる辺りで Windows Update を挟んでいたかどうかは、情けない事にわかりません。
むしろ、 Windows Update で crypt の挙動が変わる可能性があるなら、どのHotfixが怪しいか教えてもらえるとありがたいです。
499:nobodyさん
09/01/23 20:10:33
>>496 (>>476)
「 /var/www/html/login.php 」について、下の2つの確認まじおすすめ
・確実に存在しているのか
・Apacheを実行しているユーザが読めるのか(パーミッションを確認)
500:476です。
09/01/23 20:41:49 L5uKYwrL
>>499さんへ
/var/www/html/login.php
確実にあります。
パーミッションもユーザーが読めるようにしています。
smartyもできてます。
if (class_exists('Smarty')) {
$smary =& new Smarty;
printf("you can use Smarty(version %s).\n", $smary->_version);
} else {
echo "you can't use Smarty.\nplease install Smarty library.";
}
で確認をとりましたし、テストデータもいれました。
ってことはlinuxだからだめってことですよね?
ほかに考えられないんですよ。
基礎からのphpのサンプルアプリケーションもlinuxでだめでした。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5368日前に更新/180 KB
担当:undef