- 1 名前:nobodyさん mailto:sage [2008/11/22(土) 06:36:02 ID:???]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 PHP使いが優しくコメントを返しますが、 お礼はPHPの布教と初心者の救済をお願いします。 PHP Home Page www.php.net/ jp.php.net/ くだすれPHP(超初心者用)4 pc11.2ch.net/test/read.cgi/php/1213356756/ 適当に関連スレ(マルチはだめぽ) 【PHP】下らねぇ質問はここに書き込みやがれ 69 pc11.2ch.net/test/read.cgi/php/1211879073/
- 561 名前:nobodyさん mailto:sage [2009/01/25(日) 21:47:18 ID:???]
- しっかし、よく釣れるなぁw
- 562 名前:476です。 [2009/01/25(日) 22:23:02 ID:esMzMmSN]
- >>557さんへ
マスまずパスが違っていました。 僕のパスはinclude_path = ".:/usr/local/include/php/libs" なので、ここにpearとconfig.phpを入れてやりました。 そしたら動きました。 >>560さんへ パスワードはちゃんとハッシュしていますよ。
- 563 名前:nobodyさん mailto:sage [2009/01/25(日) 22:34:43 ID:???]
- >>562
PEAR入れて無かったってこと?
- 564 名前:476です。 [2009/01/25(日) 22:43:40 ID:esMzMmSN]
- いや、pearのパスが間違っていました。
- 565 名前:nobodyさん mailto:sage [2009/01/25(日) 23:06:00 ID:???]
- 元はどこにあったの?
- 566 名前:522 [2009/01/26(月) 01:07:02 ID:Ihgtqp1K]
- >>525
それだと、a・bという項目もカウントしてしまい、7を返すようです。5を返す方法はないですか?
- 567 名前:nobodyさん mailto:sage [2009/01/26(月) 01:16:16 ID:???]
- >>566
>>524
- 568 名前:522 [2009/01/26(月) 05:09:38 ID:Ihgtqp1K]
- >>567
すみません、バージョンが4なのでarray_walk_recursiveは使えないみたいです。 他にありませんか?
- 569 名前:nobodyさん mailto:sage [2009/01/26(月) 05:10:14 ID:???]
- 引き算すりゃいいでしょ。countとcountで
- 570 名前:nobodyさん mailto:sage [2009/01/26(月) 05:48:20 ID:???]
- >>522
$count = 0; foreach ($test as $value) { $count += count($value); } echo $count;
- 571 名前:570 mailto:sage [2009/01/26(月) 05:58:46 ID:???]
- ちなみに>>570の方法は2次元配列の場合で
それ以上になると再帰(リカーシブ)でやったほうがいい (foreachのネストでも可能だが読みやすさに限界がある) ただし再帰は頭の回転が速くないと何やってるかわからなくなるので 苦手なら無理して使う必要はない
- 572 名前:nobodyさん mailto:sage [2009/01/26(月) 06:13:09 ID:???]
- >>570-571
発想はいまいちだが、初心者にしちゃぁ、よくできたな。
- 573 名前:nobodyさん mailto:sage [2009/01/26(月) 06:26:30 ID:???]
- 巣にお帰り
pc11.2ch.net/test/read.cgi/php/1231850905/
- 574 名前:nobodyさん mailto:sage [2009/01/26(月) 06:30:54 ID:???]
- 自己紹介乙
- 575 名前:nobodyさん mailto:sage [2009/01/26(月) 10:12:51 ID:???]
- >>570
わざわざそんなことしなくてもこれでいけるっぽ echo count($test, 1) - count($test);
- 576 名前:nobodyさん mailto:sage [2009/01/26(月) 10:29:32 ID:???]
- html拡張子でPHP5が動くように設定しつつ、
404エラーの際に自作エラーページを表示させるには どうすれば良いかご存知の方いませんでしょうか。 .htaccessで「AddType PHP5-script html」を指示してしまうと 「ErrorDocment 404 error.html」で指定したページが表示されません。 PHP4の時は両立できたんですが…
- 577 名前:nobodyさん [2009/01/26(月) 10:41:26 ID:2xglnPYy]
- >>576
AddType php5-script .html
- 578 名前:nobodyさん mailto:sage [2009/01/26(月) 10:44:39 ID:???]
- >>575
3次元以上の場合は?
- 579 名前:nobodyさん mailto:sage [2009/01/26(月) 11:03:14 ID:???]
- >>577
あー大文字で書いてしまったのはここに書き込む際の記載ミスです。 実際の.htaccessではご指摘のように記載してます。html拡張子でPHP5は動いてます。 でもそうすると404エラーで自作ページが表示できなくて困ってます。 AddTypeでやってもAddHandlerでやっても結果は同じで、 「AddType application/x-httpd-php .html」でPHP4の環境では両立できるんです。
- 580 名前:nobodyさん mailto:sage [2009/01/26(月) 11:05:47 ID:???]
- エラーページが表示されないのならどんなページが表示されてる?
まっちろ?
- 581 名前:nobodyさん mailto:sage [2009/01/26(月) 11:14:50 ID:???]
- >>580
IEならIE、FireFOXならFireFOXのフツーの404NotFoundページが出ます
- 582 名前:nobodyさん mailto:sage [2009/01/26(月) 11:19:56 ID:???]
- そのエラーのソースの中でheader("HTTP/1.0 404 Not Found");してみるとどうなる?
- 583 名前:nobodyさん mailto:sage [2009/01/26(月) 11:22:02 ID:???]
- だったら例のあれじゃない?
自作エラーページのサイズが小さ過ぎるとか。。。
- 584 名前:nobodyさん mailto:sage [2009/01/26(月) 11:27:03 ID:???]
- >>582
変化ありませんでした。 IEのHTTP 404 未検出の画面が出ます。 >>583 ファイルサイズは1Kbありました。
- 585 名前:nobodyさん mailto:sage [2009/01/26(月) 11:29:13 ID:???]
- >>584
404header返せばいけるはずなんだがな。 どんなソースになってるよ。
- 586 名前:nobodyさん mailto:sage [2009/01/26(月) 11:46:12 ID:???]
- >>585
単純なHTMLページの1行目に↓をぶち込んだんですが… <?php header("HTTP/1.0 404 Not Found"); php?> .htaccessで拡張子指定しているのは今は.htmlだけなのですが 存在しない.htmファイルを探させると自作エラーページへ行くことがわかりました。 が、.htmlファイルだとIE規定のページになっています。 .htmlでPHPが動くように指定してしまうとErrorDocmentが 狙った動きをしてくれない、という事でしょうか。 ちなみに今、直接自作エラーページを指定したらIE規定のページが出ましたので 404headerはちゃんと返ってきているようです。
- 587 名前:nobodyさん mailto:sage [2009/01/26(月) 11:54:43 ID:???]
- Apacheスレかhtaccessスレあたりで聞いたほうがいいぞ
- 588 名前:nobodyさん mailto:sage [2009/01/26(月) 12:06:45 ID:???]
- htaccessスレが見つけられなかったのと
PHPで何とか似たような事をやる技があったりしないかなーと 思ったりしたんですが、やっぱ無理すよね。スイマセンでした。 Apacheスレの方で聞いてみます。ありがとうございました。
- 589 名前:nobodyさん [2009/01/26(月) 14:26:16 ID:7H1IWdV1]
- >>586
> php?> 何これ。
- 590 名前:589 mailto:sage [2009/01/26(月) 14:27:55 ID:???]
- と思ったら関係ないな、すまん。
- 591 名前:nobodyさん mailto:sage [2009/01/26(月) 21:42:45 ID:???]
- 右から読んでもphp
- 592 名前:nobodyさん mailto:sage [2009/01/26(月) 23:07:21 ID:???]
- 左から読んでもphp
なんて言うと思ったか
- 593 名前:nobodyさん mailto:sage [2009/01/27(火) 06:21:30 ID:???]
- 前から読んでも(ry
- 594 名前:nobodyさん mailto:sage [2009/01/27(火) 10:00:43 ID:???]
- <?山本山
タケヤブヤケタ 山本山?>
- 595 名前:nobodyさん mailto:sage [2009/01/29(木) 04:21:55 ID:???]
- ttp://free-p.ddo.jp/tools/enc4php_e.php
こことおなじものを自分のローカルサーバに設置したいのですがどこかに置いてないでしょうか?
- 596 名前:nobodyさん mailto:sage [2009/01/29(木) 04:32:25 ID:???]
- なぁにこれ?
- 597 名前:nobodyさん mailto:sage [2009/01/29(木) 07:06:35 ID:???]
- >>595
サイトの中身良く見りゃわかんだろ・・・ evalは、文字列の中身をphpのコードとして解釈して実行するもの。 base64_decodeしてからgzinflateしてるんだから base64_encodeしてからgzdeflateすれば、期待の物が出来るんじゃね? これでわからないんだったら、プログラミングやめた方が良いかもな
- 598 名前:nobodyさん mailto:sage [2009/01/29(木) 10:51:02 ID:???]
- 性格悪いな
- 599 名前:nobodyさん mailto:sage [2009/01/29(木) 12:03:24 ID:???]
- >>597
最初と最後の1行ずつは要らんだろ常識的に考えて。
- 600 名前:nobodyさん mailto:sage [2009/01/29(木) 12:10:04 ID:???]
- >>597
pc11.2ch.net/test/read.cgi/php/1221471692/l50 ここの995=997だろ
- 601 名前:nobodyさん mailto:sage [2009/01/29(木) 13:24:49 ID:???]
- >>600
フイタww 淡々と技術情報の交換を2chでしたいってそりゃ無理だろw 2chってそういうとこだとおもうべきだな
- 602 名前:nobodyさん mailto:sage [2009/01/29(木) 17:55:36 ID:???]
- 質問です!
サーバーがPHP5になってしまい 今まで使っていたフリーのメールフォームが使えなくなりました。 PHP5のフリーのメールフォームを探したのですが全然わからず ここにたどり着きました。 フリーのメールフォームのサイトを教えて頂けないでしょうか?
- 603 名前:nobodyさん mailto:sage [2009/01/29(木) 18:20:03 ID:???]
- スレ違いで内科?
- 604 名前:nobodyさん mailto:sage [2009/01/29(木) 18:24:41 ID:???]
- まともな人がいないのでこちらでも質問を
//$_SESSION['abc']; は前ページで123を代入 //ここから $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() - 42000, '/'); } session_destroy(); echo $_SESSION['abc'];//123 と表示したいのですが何か方法はないのでしょうか?クッキーとか使わずに。
- 605 名前:nobodyさん mailto:sage [2009/01/29(木) 18:29:17 ID:???]
- 頭痛くなってきた。
要点をまとめてくれないか
- 606 名前:nobodyさん mailto:sage [2009/01/29(木) 18:40:48 ID:???]
- $_SESSION['abc'] にはすでに123が入ってるが
$_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() - 42000, '/'); } session_destroy(); とすると123も消えるけど、それを消さずに echo $_SESSION['abc'];//123 と後でも表示させたい。 理想としては $abc = $_SESSION['abc']; $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() - 42000, '/'); } session_destroy() $_SESSION['abc'] = $abc; echo $_SESSION['abc']; と表示できればいい。
- 607 名前:nobodyさん mailto:sage [2009/01/29(木) 19:53:27 ID:???]
- >>604 == >>606 だよな?
「どうしても$_SESSION['abc']を使いたい理由」ってのがわからんと、普通のPGは他の手段を考えると思うぞ。 >>606 の中で $abc に入れてるんだったら、そのまま echo $abc; すりゃ良いじゃん、的な。 つーかsession_start()しなくて良いんかな。 長ったらしくない程度に、もう少し質問の背景を含めて、かつ要領良くまとめて質問すれば回答が返って来ると思う。
- 608 名前:nobodyさん mailto:sage [2009/01/29(木) 20:07:16 ID:???]
- 釣りだよ。
ttp://oshiete1.goo.ne.jp/qa3224862.html
- 609 名前:nobodyさん mailto:sage [2009/01/29(木) 20:25:30 ID:???]
- pc11.2ch.net/test/read.cgi/php/1158647441/672
pc11.2ch.net/test/read.cgi/php/1231850905/880 理由はどうあれこういうマルチするアホは相手にしないほうがいい
- 610 名前:nobodyさん mailto:sage [2009/01/29(木) 23:28:49 ID:???]
- 何回読んでも>>604のやりたいことがわからない
- 611 名前:nobodyさん mailto:sage [2009/01/29(木) 23:37:26 ID:???]
- 前よく出没してた基地外だろ
- 612 名前:nobodyさん mailto:sage [2009/01/29(木) 23:41:37 ID:???]
- やりたいことは見えてる。
「ログイン・ログアウトとは別にセッションデータを引きまわしたい」ってことだろ。 で、普通は>>604みたいなソースにはならないのに、わざわざ教えてgooだか、 phpのマニュアルでセッション破壊用のソースをそれだと勘違いして質問してるだけ。 すでに回答ついてるのに、人の意見を聞けない困ったチャンか、単なる荒し
- 613 名前:nobodyさん mailto:sage [2009/01/30(金) 10:09:33 ID:???]
- >>607
ログインログアウトとは別に、スタイルシートをセッションで持ち歩いていて、 ログアウト>>606で書いたようにログアウトとしたときセッションに保存してあるスタイルシート変数も消えてしまいます。 なので、セッション(ログアウト)を消す前に$abc = $_SESSION['abc']; として消した後再び、$_SESSION['abc'] = $abc; などにして再度セッションにいれればなと考えていますが、 うまくいきません。 そこで何かいいほうほうは無いものかと。
- 614 名前:nobodyさん mailto:sage [2009/01/30(金) 12:27:38 ID:???]
- 悔しいっ・・・でも・・・触っちゃう・・・っ(ビクビク
>>613 cookie使えよ。sessionなんかにそんなん入れんな。 sessionに入れるならログアウト=専用スタイルシート破棄として使え。 $_SESSION と session_*()を勉強し直して来い
- 615 名前:nobodyさん [2009/01/30(金) 23:37:15 ID:gxYTwHzL]
- epg.2ch.net/tv2chwiki/subject.txt
から、別サーバー(自分のブログとか)に スレの勢いと局、番組名だけを取得して表示させることってできますか?
- 616 名前:nobodyさん mailto:sage [2009/01/30(金) 23:39:57 ID:???]
- うん
- 617 名前:nobodyさん [2009/01/31(土) 00:20:10 ID:Zjr5MV5E]
- <form action="<?= $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="text" name="textbox" value=""> <input type="submit" value="送信"> </form> <?php $text = htmlspecialchars( $_POST["textbox"] ); if ( get_magic_quotes_gpc() ) { $text = stripslashes( $text ); } print $text; ?> これ、ゲストの人がコメント書き込むくらいならいいんだけど、自分が投稿しようと思った時に $_SERVER['PHP_SELF'];が入っているからエディットページ(管理人専用の編集ページ)かなんかでindex.phpに書き込めないと思うんだ。 エディットページでindex.phpに反映させる方法ってない?
- 618 名前:nobodyさん mailto:sage [2009/01/31(土) 00:28:12 ID:???]
- エディットページで$_SERVER['PHP_SELF']にしなければいいのでは?
- 619 名前:nobodyさん [2009/01/31(土) 00:41:31 ID:Zjr5MV5E]
- お!というとどういう風に記述すればいいですか?
- 620 名前:nobodyさん mailto:sage [2009/01/31(土) 00:42:37 ID:???]
- ファイル名
- 621 名前:nobodyさん mailto:sage [2009/01/31(土) 00:42:41 ID:???]
- >>615 $rtn = file_get_contents( 'epg.2ch.net/tv2chwiki/subject.txt ' );
>>617 漏れは神様でもエスパーでもないんだから、 おまいのやりたいことを補完して理解なんかできない。 質問は相手に理解できるように書こう。 でも <input type=hidden name=action value=edit> とか場合わけしる
- 622 名前:nobodyさん mailto:sage [2009/01/31(土) 00:43:50 ID:???]
- なぜにhidden使う必要が?
- 623 名前:nobodyさん [2009/01/31(土) 01:07:34 ID:Zjr5MV5E]
- >>621 説明足らずで すまん ありがとう。要は管理人専用ページでこのスクリプトを使用した時に$_SERVER['PHP_SELF']だと現在いじってる(管理人専用ページ)でスクリプトが実行されてしまうんではないかと。
あくまで表示したいのはindex.phpなので、そこんとこどうなんかなーと思いまして。 >>620 と、いうことは$_SERVER['PHP_SELF']を$_SERVER['index.php']にしたらいいってことですか?
- 624 名前:nobodyさん mailto:sage [2009/01/31(土) 01:09:00 ID:???]
- お前は何を言ってるんだ?
- 625 名前:615 [2009/01/31(土) 01:27:06 ID:myPf0iH/]
- >>621
<?php $temp = "epg.2ch.net/tv2chwiki/subject.txt"; $html_f=file_get_contents($temp); $replace = "(2)"; $scriptphp = "<br />"; $word = str_replace($replace, $scriptphp, $html_f); $hogeru = ".dat<>"; $gogeta = "<br />"; $yabai = str_replace($hogeru, $gogeta, $word); print $yabai; print($word1_a); ?> から、偶数行だけ表示するにはどうしたらいいんでしょうか?
- 626 名前:nobodyさん [2009/01/31(土) 01:27:12 ID:Zjr5MV5E]
- すみません。ようやく分かってきました。
$_SERVER['PHP_SELF'] これ書かなきゃいいんですね。 じゃあそのかわりformのactionにはなんて書けばいいんですかね?
- 627 名前:nobodyさん mailto:sage [2009/01/31(土) 01:28:37 ID:???]
- actionの意味知らんの?
- 628 名前:nobodyさん [2009/01/31(土) 01:30:22 ID:Zjr5MV5E]
- 正直なところform処理いじったことがありませんもので…。非常に申し訳ないんですが教えてくれると助かります…
- 629 名前:621 mailto:sage [2009/01/31(土) 01:35:09 ID:???]
- >>625 最初からそれをいいたまへ
$rtn = file( 'epg.2ch.net/tv2chwiki/subject.txt ' ); for ( $n = 0; $n < count( $rtn ); $n = $n + 2 ) echo $rtn[$n];
- 630 名前:621 mailto:sage [2009/01/31(土) 01:38:56 ID:???]
- >>623 やっと意味がわかった。管理人は管理人ようのページを作り給え
- 631 名前:nobodyさん [2009/01/31(土) 01:46:56 ID:Zjr5MV5E]
- >>630ありがとうございます。じゃあ$_SERVER['PHP_SELF']はいらないってことですかね?
- 632 名前:nobodyさん mailto:sage [2009/01/31(土) 01:55:22 ID:???]
- >>631
<? // index.php if ( $_POST['textbox' != '' ) { なんか処理 } ?> <html><body> <form action="index.php" method="post> <input type="text" name="textbox" value=""><input type="submit" </form> </body></html> と <? // kanri_index.php if ( $_POST['textbox' != '' ) { なんか処理 } ?> <html><body> <form action="kanri_index.php" method="post> <input type="text" name="textbox" value=""><input type="submit" </form> </body></html> を作れ
- 633 名前:nobodyさん mailto:sage [2009/01/31(土) 01:59:14 ID:???]
- いやindex.phpでいいだろ
- 634 名前:nobodyさん mailto:sage [2009/01/31(土) 02:06:10 ID:???]
- 色んなやり方あるけど初心者だそうだからいちばん新ぷりに
- 635 名前:nobodyさん [2009/01/31(土) 13:18:26 ID:Zjr5MV5E]
- ありがとうございます!ようやくわかった気がします。actionって動作させたいファイル名を指定したらいいんですね。
これでなんとかなりそうです。ありがとうございました!
- 636 名前:nobodyさん mailto:sage [2009/01/31(土) 19:25:28 ID:???]
- prepareの使い方で質問があります。
下記のコードを実行すると Call to a member function prepare() on a non-object とエラーが返ってきます。 $sql = "insert into table (column2,column1) values(?,?)"; $sth = $this->db->prepare($sql); $result = $this->db->execute($sth, array($column2_value,$column1_value)); プレースホルダを使わずqueryを発行すると問題なくdbが更新されるのですが、 どこかおかしいのでしょうか
- 637 名前:nobodyさん mailto:sage [2009/01/31(土) 19:26:42 ID:???]
- すみません、環境書き忘れました。
php5,postgresです
- 638 名前:nobodyさん mailto:sage [2009/01/31(土) 19:28:26 ID:???]
- >636
どのクラスのprepareだよこの馬鹿馬鹿まんこ! $this->dbが接続失敗か何かで初期化されていないように思われる。
- 639 名前:nobodyさん mailto:sage [2009/01/31(土) 20:01:51 ID:???]
- レスどうもありがとうございます。
そのあたりを探ってみます。
- 640 名前:nobodyさん mailto:sage [2009/01/31(土) 20:02:31 ID:???]
- いや$dbのnewしてるとこ見れば一発だろw
- 641 名前:nobodyさん mailto:sage [2009/01/31(土) 20:16:52 ID:???]
- 出来ました。どうもありがとうございます。
さっきのエラーは昔書いたクラスコピペして直したら出なくなったのですが、 dbが更新されなくて悩んでいたら文字コードの違いが原因でした。 mb_convert_encodingで挿入する値をdbの文字コードに直して解決しました。 お世話様でした。
- 642 名前:nobodyさん [2009/01/31(土) 20:23:42 ID:QDNvJIlq]
- sqlite php5 利用です。
登録メールアドレスの重複チェックをしたいのですが、うまく動きません。 if(!$db=sqlite_open("database/database.sqlite",0666,$err)){ die("データベース接続エラー".$err."<br>"); } ////////////////////////////データベース二重登録防止//////////////// $check_sql="SELECT * FROM add_table WHERE add = '$mailadd'"; if($abc = sqlite_query($db,$check_sql)){ header("Location: mail.php?miss=miss&miss_naiyou=sumi"); //登録済みの場合は飛ばす } sqlite_close($db); //データベースクローズ
- 643 名前:nobodyさん mailto:sage [2009/01/31(土) 20:26:51 ID:???]
- >>642
jp2.php.net/sqlite_query
- 644 名前:nobodyさん [2009/01/31(土) 20:31:10 ID:lgngjuqH]
- <?php
$temp = "epg.2ch.net/tv2chwiki/subject.txt"; $html_f=file_get_contents($temp); $br = "<br />"; $replace = "(2)"; $word = str_replace($replace, $br, $html_f); $replace = ".dat<>"; $word = str_replace($replace, $br, $word); $replace = "res/min"; $word = str_replace($replace, $br, $word); $replace = "] "; $word = str_replace($replace, $br, $word); $a = explode( "<br />", $word ); $b[0]= "g"; print $a[2]; print $br; //…(1) print $b[0]; print $br; $strs[0] = "srename :"+ $a[2] +",";//…(2) $strs[1] = $b[0]; print $strs[0]; print $br;//…(3) print $strs[1]; ?> 出力 [NHK総合]探検ロマン世界遺産 g 0 g (3)の$strs[0] が0になってしまうのはなんでですか? おねがいします。
- 645 名前:nobodyさん [2009/01/31(土) 20:33:43 ID:QDNvJIlq]
- >>643
マニュアル見てもさっぱりわかりません
- 646 名前:nobodyさん mailto:sage [2009/01/31(土) 20:39:00 ID:???]
- >>644
+を.にかえてみ
- 647 名前:nobodyさん mailto:sage [2009/01/31(土) 20:40:47 ID:???]
- >>645
じゃ諦めれ
- 648 名前:nobodyさん mailto:sage [2009/01/31(土) 20:42:10 ID:???]
- >>646
おーできました ありがとうございます!!
- 649 名前:nobodyさん [2009/01/31(土) 20:59:19 ID:QDNvJIlq]
- >>642
解決しました。 if(sqlite_fetch_array(sqlite_query($db,$check_sql))){ header("Location: mailmagazine.php?miss=miss&miss_naiyou=sumi"); } >>643 ありがとうございます
- 650 名前:nobodyさん mailto:sage [2009/02/01(日) 21:04:08 ID:???]
- 質問です
elseif (preg_match("/^\d{8}$/", $_GET["id"])){ $id = $_GET["id"]; } GETで8桁の数字のみ受け取るように↑のようにしましたが if文でマッチしてても変数に代入する際はpreg_matchなりで GET変数内を数字のみとなるように変換した方がいいものなんでしょうか
- 651 名前:nobodyさん mailto:sage [2009/02/01(日) 21:10:26 ID:???]
- お前は何を言ってるんだ
- 652 名前:nobodyさん mailto:sage [2009/02/01(日) 21:11:12 ID:???]
- >650
俺ならctype_digit($str) && strlen($str) === 8 まあそれはそれとして、別にいいんじゃね。その正規表現にマッチしてるなら間違いなく数字だけだし。
- 653 名前:nobodyさん mailto:sage [2009/02/01(日) 21:16:32 ID:???]
- 末尾の$は改行にもマッチするから数字だけとは限らないんじゃ?
- 654 名前:nobodyさん mailto:sage [2009/02/01(日) 22:42:37 ID:???]
- ググってたら遅くなりました
>>652 matchに漏れがなければ問題ないように思たんですが あげてもらった関数の方が確実 でしょうか >>653 正規表現はまだよくはわかってないのですがググったところ \r\nのことでしょうか。 scripting.cocolog-nifty.com/blog/2008/12/post-c9b4.html ここを参考に一応"/^\d{8}\r?$/"としてみましたが >hoge$に掛かりません の理屈が今一わかりません。
- 655 名前:650 mailto:sage [2009/02/01(日) 22:56:05 ID:???]
- よく考えたら\rが混じる時点で正常なデータではないので
もとの"/^\d{8}$/"で問題なしな気がしますがどうなんでしょう
- 656 名前:652 mailto:sage [2009/02/01(日) 23:22:37 ID:???]
- 重視したのは分かりやすさ。正規表現だと、何を意味しているのか分かりづらい。
パターンがよほど複雑な時以外は正規表現は避けたほうがいい。 >653-654 改行とか忘れてたわ。 if(preg_match("/^\d{8}$/", "12345678\n")){ echo 'match'; }
- 657 名前:nobodyさん mailto:sage [2009/02/03(火) 00:43:02 ID:???]
- 半年ロムってろと言われてずっと見てきたが
もうPHP諦めることにした。さっぱり分からん。 このスレのどこが超初心者用なんだ。
- 658 名前:nobodyさん mailto:sage [2009/02/03(火) 01:51:58 ID:???]
- 3年ROMってろ
- 659 名前:nobodyさん mailto:sage [2009/02/03(火) 02:00:14 ID:???]
- もう、諦めたんだ放って置いてくれw
プログラムなんて嫌いだ。
- 660 名前:nobodyさん mailto:sage [2009/02/03(火) 09:47:26 ID:???]
- 何が分かんないんだよ
- 661 名前:nobodyさん mailto:sage [2009/02/03(火) 10:34:27 ID:???]
- 放っておいてやれよ
- 662 名前:nobodyさん mailto:sage [2009/02/03(火) 14:10:58 ID:???]
- なんか残念だな...。
このスレだけ読み続けても、超初心者が分かるようにはならないと思う。 このスレは、超初心者も質問していいというだけで、来る質問が全部、 超初心者向けというわけではないから。 もう見てないかもしれないけれど、入門書を図書館とかで借りてきたほうが いいと思うよ。
- 663 名前:nobodyさん mailto:sage [2009/02/03(火) 14:18:03 ID:???]
- PHPなんってググって触ってみりゃ、どうにでもなるものを、
半年もROMってわからないなんて、ネタに決まってるだろ もしネタじゃないなら、10年はROMるべき。 そうして人生が終わるさ
- 664 名前:nobodyさん mailto:sage [2009/02/03(火) 20:28:48 ID:???]
- 人生も諦めたらスッキリするのに
- 665 名前:nobodyさん mailto:sage [2009/02/04(水) 06:33:54 ID:???]
- >>664
全く原因が分からないのでお聞きしたいのですが… $im=createimagefromjpeg(image.jpg); imagejpeg($im); destroy 上記の様な単純な記述で画像を開きたいのですが、 ローカルならできるのになぜかインターネット経由だと できないのです… 実行すると半角で「リ」と表示されるだけで print hoge;などを付け足しても何もかわりません phpinfoでGDが使えることは確認したのですが、 他に原因が思いつきません 初心者丸出しすいませんが教えていただければ尻丸出しにしますのでどうかお願いします
- 666 名前:nobodyさん mailto:sage [2009/02/04(水) 06:34:18 ID:???]
- >>664
全く原因が分からないのでお聞きしたいのですが… $im=createimagefromjpeg(image.jpg); imagejpeg($im); destroy 上記の様な単純な記述で画像を開きたいのですが、 ローカルならできるのになぜかインターネット経由だと できないのです… 実行すると半角で「リ」と表示されるだけで print hoge;などを付け足しても何もかわりません phpinfoでGDが使えることは確認したのですが、 他に原因が思いつきません 初心者丸出しすいませんが教えていただければ尻丸出しにしますのでどうかお願いします
- 667 名前:nobodyさん mailto:sage [2009/02/04(水) 06:50:26 ID:???]
- image.jpgがないんでね?
- 668 名前:nobodyさん mailto:sage [2009/02/04(水) 08:17:43 ID:???]
- >>666
MIMEヘッダー出してる?
- 669 名前:nobodyさん mailto:sage [2009/02/04(水) 10:03:22 ID:???]
- ああそれだな
- 670 名前:nobodyさん mailto:sage [2009/02/04(水) 17:18:03 ID:???]
- >>667
確かにファイルは存在しています・・・ >>668 MIMEヘッダーは header("content-type: image/jpeg"); で出力できてますでしょうか? ご指摘の後にこれを追加してやってみてのですがだめでした。 ただ、文字化けのような表示から画像を表示できていないマーク? のような表示にはかわりました・・・
- 671 名前:nobodyさん mailto:sage [2009/02/04(水) 17:25:29 ID:???]
- >>670
imagecreatefromjpeg にしてみたら? それで、$imがfalseになってないかチェック それから、imageやheaderを出力する前に余計な出力をしないように、ソースの冒頭でob_startして、直前で破棄
- 672 名前:nobodyさん mailto:sage [2009/02/04(水) 17:39:12 ID:???]
- ところで皆さんPHPとMYSQLは勉強し始めて
どれくらいの期間で使えるレベルになりましたか?
- 673 名前:nobodyさん mailto:sage [2009/02/04(水) 17:41:17 ID:???]
- 使うだけなら書籍読みつつ1日でカバーできる範囲
使いこなすまでは相当かかったが
- 674 名前:nobodyさん mailto:sage [2009/02/04(水) 17:50:34 ID:???]
- >>670
「image.jpg」→「"image.jpg"」
- 675 名前:nobodyさん mailto:sage [2009/02/04(水) 18:10:51 ID:???]
- "imagejpg"になってたりするのか
- 676 名前:nobodyさん mailto:sage [2009/02/04(水) 18:32:32 ID:???]
- そもそもcreateimagefromjpegなんて標準関数はないわけだが
imagecreatefromjpeg(string $filename)ならあるけど
- 677 名前:nobodyさん mailto:sage [2009/02/04(水) 18:33:11 ID:???]
- 単純にサーバにGDライブラリがはいってないだけなんじゃね?
phpinfoみてみれ
- 678 名前:nobodyさん mailto:sage [2009/02/04(水) 18:37:31 ID:???]
- >>677
>>666
- 679 名前:nobodyさん mailto:sage [2009/02/04(水) 18:37:52 ID:???]
- >>676
>>671
- 680 名前:nobodyさん mailto:sage [2009/02/04(水) 18:38:31 ID:???]
- 書いたとおりに載せないで情報小出しにしてる時点でもう答えようがない
- 681 名前:nobodyさん mailto:sage [2009/02/04(水) 18:38:39 ID:???]
- 要するに釣り
- 682 名前:666 mailto:sage [2009/02/04(水) 20:04:43 ID:???]
- お騒がせ致しました
釣りではないのです 広告自動表示のレンタルサーバーを使用していたためにうまくいかなかったようです 広告無しのサーバーでは問題なく表示できました。 ありがとうございました
- 683 名前:nobodyさん mailto:sage [2009/02/04(水) 22:08:23 ID:???]
- 広告自動挿入のサーバーだと
ヘッダー情報ってだめなの?
- 684 名前:nobodyさん mailto:sage [2009/02/04(水) 22:09:01 ID:???]
- PHPの講師やりたいんだけど、
どこの学校がおすすめ?
- 685 名前:nobodyさん mailto:sage [2009/02/04(水) 22:31:36 ID:???]
- 学校行ってまでPHP学びたいと思うか?
- 686 名前:nobodyさん mailto:sage [2009/02/04(水) 22:37:41 ID:???]
- >>685
だって一日で20万もらえるってよ バカらしくてコーダーなんかやってられないよ
- 687 名前:nobodyさん mailto:sage [2009/02/04(水) 22:41:25 ID:???]
- SQL(SQLite)なんですが単対多のデータを取得したら
|A|a|1| |A|a|2| |A|b|1| |A|b|2| |B|c|1| |B|d|1| みたいになるじゃないですか。 重複した項目をまとめて(A,(a,b),(1,2)),(B,(c,d),1)な感じにする関数てあるんでしょうか。
- 688 名前:nobodyさん mailto:sage [2009/02/04(水) 22:46:57 ID:???]
- >>685
pdoj.wordpress.com/2009/02/04/fetch-modes/ とりあえず翻訳やってみたけど、どう?
- 689 名前:nobodyさん mailto:sage [2009/02/04(水) 22:50:36 ID:???]
- >>687
pdoとかMDBとかにあるよ sqliteは知らんけど
- 690 名前:nobodyさん mailto:sage [2009/02/04(水) 22:52:37 ID:???]
- >>688
ドキュメントの翻訳で「〜と思う」なんて普通使わない
- 691 名前:nobodyさん mailto:sage [2009/02/05(木) 00:20:18 ID:???]
- >>689
ありがとうございます。 探したらfetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP)がそれらしいです。 ただマニュアルの例で例えると array(3) { ["apple"]=> array(2) { [0]=> string(5) "apple" [1]=> string(5) "apple" } みたいな感じにカラム0の値しか取得できてないようです。 自分がどこか間違ってるのかSQLiteが対応してないのか... もう少し試してみます。
- 692 名前:nobodyさん mailto:sage [2009/02/05(木) 00:47:17 ID:???]
- >>691
ほい jp2.php.net/manual/ja/pdostatement.fetchall.php
- 693 名前:nobodyさん mailto:sage [2009/02/05(木) 00:49:12 ID:???]
- $str = '4,980 円';
↑みたいなフォーマットの価格データを整数値にしたいんだけど ↓よりシンプルにやる方法ってある? $str = str_replace(array(' ', ',', '円'),array('', '', ''),$str);
- 694 名前:nobodyさん mailto:sage [2009/02/05(木) 00:51:20 ID:???]
- $str = (int)str_replace(',','',$str)
- 695 名前:nobodyさん mailto:sage [2009/02/05(木) 00:54:43 ID:???]
- ありがとうg
- 696 名前:nobodyさん mailto:sage [2009/02/06(金) 21:22:00 ID:???]
- >>692
MySQLでも試してみたのですが結果は同じでサンプルのような結果にならないのですが どこか捉え違いしているのでしょうか。 PHP 5.2.6/MySQL 5.0.4 |apple|red| |banana|yellow| |apple|green| という内容として、 $dbh = new PDO('mysql:〜','root','root');//もしくは'sqlite:〜' $sql = "SELECT name,color FROM table1"; $sth = $dbh->prepare($sql); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP,0); var_dump($result); $stmt = null; 結果 array(2) { ["apple"]=> array(2) { [0]=> string(5) "apple" [1]=> string(5) "apple" } ["banana"]=> array(1) { [0]=> string(6) "banana" } } となります。
- 697 名前:nobodyさん mailto:sage [2009/02/06(金) 21:29:26 ID:???]
- サンプルのような結果と言われても、サンプルのような結果がどんなもんだかわからんからね。
とりあえず、FETCH_GROUPなんだし、結果が正しいように思うが?
- 698 名前:nobodyさん mailto:sage [2009/02/06(金) 21:34:36 ID:???]
- まぁ、試しに
PDO::FETCH_COLUMN|PDO::FETCH_GROUP じゃなく PDO::FETCH_ASSOC|PDO::FETCH_GROUP にしてみたら?
- 699 名前:nobodyさん mailto:sage [2009/02/06(金) 21:39:06 ID:???]
- >>697
失礼、サンプルは>>692にもあるPDOStatement->fetchAllの例3です。 期待した結果は ["apple"]=> array(2) { [0]=> string(5) "red"... なんですが、>>696が正しいということはやっぱりなにか勘違いしてるのかなぁ
- 700 名前:nobodyさん mailto:sage [2009/02/06(金) 21:43:25 ID:???]
- あぁそれか、fetchAllの第2引数に0が入ってるじゃん、だから、カラムが制約されてる
それ、外したらどうなる?
- 701 名前:nobodyさん mailto:sage [2009/02/06(金) 21:48:42 ID:???]
- array(2) {
["apple"]=> array(2) { [0]=> string(3) "red" [1]=> string(5) "green" } ["banana"]=> array(1) { [0]=> string(6) "yellow" } } になったけど
- 702 名前:nobodyさん mailto:sage [2009/02/06(金) 21:49:22 ID:???]
- ああすまん本人じゃなくて俺の環境でやったらってことね
- 703 名前:nobodyさん mailto:sage [2009/02/06(金) 22:07:01 ID:???]
- >>700
あれ?どうも。0がなくてもうまく取得できなかった気がしたんですが 今0を外したらPDO::FETCH_ASSOC|PDO::FETCH_GROUP同様うまくいきました。 |PDO::FETCH_GROUPがついたときは第2引数で指定したPDO::FETCH_COLUMNを基準に グループ化するのかと勘違いを… 実際は複数のカラムが必要なのでPDO::FETCH_NUM|PDO::FETCH_GROUPで 思った通りの結果が得られるようになりました。ありがとうございました。 >>701も確認ありがとうございます。
- 704 名前:nobodyさん mailto:sage [2009/02/06(金) 22:11:15 ID:???]
- fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP,0); で普通に取得できたが?
後進のために原因を明らかにしといてくれ
- 705 名前:nobodyさん mailto:sage [2009/02/06(金) 22:21:43 ID:???]
- >>704
もし、第2引数に0が入ってても第2カラムを取得できたんならバグだと思うよ
- 706 名前:nobodyさん mailto:sage [2009/02/06(金) 22:26:54 ID:???]
- お前は何をいっちょるんだ?
第2引数に0を入れるということは1番目のCOLUMNを用いて残りのカラムをGROUP化するってことだぞ
- 707 名前:nobodyさん mailto:sage [2009/02/06(金) 22:29:53 ID:???]
- >>778
何も問題ないが
- 708 名前:nobodyさん mailto:sage [2009/02/06(金) 22:30:55 ID:???]
- すまん誤爆した
- 709 名前:nobodyさん mailto:sage [2009/02/06(金) 22:57:48 ID:???]
- >>706
デマ書いてすまん、よくわかってなかった。 そのはずだよねぇ。
- 710 名前:nobodyさん mailto:sage [2009/02/08(日) 19:09:17 ID:???]
- <?php
try { function exception_error_handler($errno, $errstr, $errfile, $errline ) { throw new ErrorException($errstr, 0, $errno, $errfile, $errline); } set_error_handler("exception_error_handler"); fntest(); function fntest() {echo "call function";} } catch (ErrorException $exception){ echo "何かエラーだよ<br />"; echo $exception->getMessage()."<br />"; echo "line:".$exception->getline(); exit(); } ?> これを実行するとFatal error: Call to undefined function fntest() in〜と出ます 定義を先にするかtry〜catchをなくすとエラーは出ません 何がいけないんでしょうか
- 711 名前:nobodyさん mailto:sage [2009/02/08(日) 19:26:17 ID:???]
- 定義が後でtry〜catchの中だからでは?
- 712 名前:nobodyさん mailto:sage [2009/02/08(日) 20:00:14 ID:???]
- >>711
まんまやん というかだめなんですか? >次の二つの例のように、ある条件下でのみ関数が定義される場合には、その関数定義は関数がコールされる前に行われていなければなりません。 に当てはまるということでしょうか とりあえずそういうものだということで前方で定義するようにします
- 713 名前:nobodyさん mailto:sage [2009/02/08(日) 20:00:15 ID:???]
- >>710
いったいどうしたらそういう書き方ができるのか知りたいわ
- 714 名前:nobodyさん mailto:sage [2009/02/08(日) 20:35:03 ID:???]
- Perlから入った奴なんかはそういう書き方をする事があるな。
Perlは書き方によっては、関数の宣言や定義より先に呼び出しが来てもちゃんと動く。
- 715 名前:nobodyさん mailto:sage [2009/02/08(日) 21:05:08 ID:???]
- PHPだって、パース対象がグローバルなら、普通にfunctionの後置定義は有効だよ。
ifやwhileやtryやfunctionの中などの節の中は後置できないだけ。 >>710なんてそんなの百も承知で釣り質問してるに決まってるだろ。 釣られてへぼい回答してんじゃねぇぞ
- 716 名前:nobodyさん mailto:sage [2009/02/08(日) 21:07:39 ID:???]
- ツン?
- 717 名前:nobodyさん mailto:sage [2009/02/09(月) 00:04:48 ID:???]
- PHPとMySQLで学習用のWEBシステムを作っているのですが
' % 等のDBにとっては迷惑な文字列が入力された場合に、それとHTML上の特殊文字に変換する にはどうすれば良いですか? 簡単な掲示板を作ったのですが' %が入力された場合にエラーが発生し困っています。
- 718 名前:nobodyさん mailto:sage [2009/02/09(月) 00:12:47 ID:???]
- 基礎中の基礎すぐる
- 719 名前:nobodyさん mailto:sage [2009/02/09(月) 08:41:31 ID:???]
- >>717
mysql_real_escape_string addslash
- 720 名前:nobodyさん mailto:sage [2009/02/09(月) 08:53:51 ID:???]
- addslash ? syntax error
- 721 名前:nobodyさん mailto:sage [2009/02/09(月) 09:16:28 ID:???]
- データーベースにデーターをつっこむ直前に
データーベース専用のエスケープ処理をするのが普通
- 722 名前:nobodyさん mailto:sage [2009/02/09(月) 09:20:54 ID:???]
- データー(笑)
- 723 名前:nobodyさん mailto:sage [2009/02/09(月) 21:42:26 ID:???]
- >717
使える箇所ならプリペアドステートメント。これが一番安全。 ttp://jp2.php.net/manual/ja/mysqli.prepare.php ttp://jp2.php.net/manual/ja/pdo.prepare.php 使えない箇所ならmysql_real_escape_stringなど。 どの文字が危険かはDBによって違うので、MySQLにはMySQLの、OracleにはOracleの、SQLiteにはSQLiteの専用の関数がある。
- 724 名前:nobodyさん mailto:sage [2009/02/11(水) 12:21:22 ID:???]
- htmlの<base>のようにユーザのトップディレクトリを指定したいんですが、
ユーザのトップディレクトリを調べる方法はありますか?
- 725 名前:nobodyさん mailto:sage [2009/02/11(水) 13:56:50 ID:???]
- 環境は?OSとか
- 726 名前:nobodyさん mailto:sage [2009/02/11(水) 14:12:44 ID:???]
- >>725
ああすみません。 開発環境はPHP5.2.6でOSXなんですがWebサーバはまだ借りてないのでどうなるかはわかりません。 PHP5でApachサーバのところを借りようとは思ってます。 なので開発環境との違いや引っ越し時のことを考えて汎用的な関数がないかと質問しました。 一応マニュアルのファイルシステム関数は目を通したんですが…
- 727 名前:nobodyさん mailto:sage [2009/02/11(水) 14:24:23 ID:???]
- exit()ってスクリプト終了のために多用してもいいのでしょうか?
たとえばエラーチェック時にdieの代わりに自作関数呼び出して終了みたいな場合など function return_json($flag, $data){ if($flag == true) $result = $data; else $result = "ERR:".$data; $res = array( "status" => $flag, "result" => $result ); print(json_encode($res)); exit(); } if(エラーチェック1) return_json(false,"エラー1です"); //エラーなら終了 if(エラーチェック2) return_json(false,"エラー2です"); //エラーなら終了 //最後に return_json(true,"成功です。");
- 728 名前:nobodyさん mailto:sage [2009/02/11(水) 14:33:34 ID:???]
- 別にいいんでは?
- 729 名前:nobodyさん mailto:sage [2009/02/11(水) 15:13:35 ID:???]
- 関数はあくまで何かを返すだけにして、制御を握っているのは「メインのルーチン」ひとつにした方がいい。
あちこちの関数で好き勝手に処理を中断したり画面出力してたりすると、そのうち管理しきれなくなる。 同じ理由で、printするよりは文字列を返す(printは「メインのルーチン」で行なう)方がいいと思う。 俺ならreturn_json()はjsonを返すだけ(exitもprintもしない)にして function generare_json(){ if(isError1()){ return return_json(false,"エラー1です"); } if(isError2()){ return return_json(false,"エラー2です"); } return return_json(true,"成功です。"); } とし、echo generate_json()を最後に呼び出す。 exit()はスクリプトの末尾のみ、出力はこの文のみになる。
- 730 名前:nobodyさん mailto:sage [2009/02/11(水) 15:20:37 ID:???]
- つうか、正しいjson出力とエラー出力を別の関数にするかな。
boolを渡すより、return_error_json()の方が分かりやすい。
- 731 名前:nobodyさん mailto:sage [2009/02/11(水) 15:23:03 ID:???]
- >>719
ヒントをサンクス。 >>723 詳しいありがとうございます。 参考にさせて頂きます。
- 732 名前:nobodyさん mailto:sage [2009/02/11(水) 17:07:46 ID:???]
- >>726
ああもしかして、http://〜/~user/ の部分の実ディレクトリが知りたいってこと?
- 733 名前:nobodyさん mailto:sage [2009/02/11(水) 17:30:07 ID:???]
- 実ディレクトリでいいのかな?ローカルでいえば
/Applications/MAMP/htdocs/ となります。 実行ファイルがトップにあるわけではないので相対パスでのファイル指定より 基点からの絶対パスのほうがわかりやすいかなと。
- 734 名前:724,733 mailto:sage [2009/02/11(水) 17:31:27 ID:???]
- >>732
アンカーわすれてたので念のため
- 735 名前:nobodyさん mailto:sage [2009/02/11(水) 17:45:24 ID:???]
- >>733
dirname(__FILE__) とか getcwd() とか そういうこと?
- 736 名前:nobodyさん mailto:sage [2009/02/11(水) 17:47:36 ID:???]
- >>733
$_SERVER['DOCUMENT_ROOT']
- 737 名前:nobodyさん mailto:sage [2009/02/11(水) 18:00:00 ID:???]
- ユーザー関係ないじゃんw
- 738 名前:724,733 mailto:sage [2009/02/11(水) 19:15:46 ID:???]
- >>735,736
$_SERVER['DOCUMENT_ROOT']で希望のパスを得ることができました。 ありがとうございました。
|

|