【PHP】質問スレッドpart23【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/10/05 17:36:38ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
0002nobodyさん
04/10/05 17:36:51ID:???【PHP】質問スレッドpart22【php】
http://pc5.2ch.net/test/read.cgi/php/1095326257/
関連スレ
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/
0003nobodyさん
04/10/05 17:46:25ID:d6yyUuwZこのとおり、やってもALERT!ってでできます。php4.3.9、an httpd
cgiってほうとモジュール版両方やりました。どっちもできませ
forceなんとか=0って何回もやったけど無理でした。
windows xpですが、だれかわかる人いたら助けてください
Security Alert! The PHP CGI cannot be accessed directly.
This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.
For more information as to why this behaviour exists, see the manual page for CGI security.
For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page.
とでてきます
0004nobodyさん
04/10/05 18:02:32ID:d6yyUuwZの表示がでるようになりました・・
0006nobodyさん
04/10/05 18:21:52ID:xTnP4bvwPHPCGIバイナリは、force-cgi-redirectと一緒にコンパイルすることが可能になった。
この方法は(ry
0007nobodyさん
04/10/05 18:28:48ID:???http://www.google.co.jp/search?hl=ja&ie=Shift_JIS&q=Security+Alert%21+The+PHP+CGI+cannot+be+accessed+directly&lr=lang_ja
anhttpdのページでphpで検索
http://hpcgi1.nifty.com/yito/namazu.cgi?query=php&whence=0&max=30&result=normal&sort=field%3Atime%3Adescending
お好きな方をどうぞ。
0009nobodyさん
04/10/06 00:02:45ID:???自分でMVC作るのとどちらが簡単?
0010nobodyさん
04/10/06 00:18:38ID:???0011nobodyさん
04/10/06 00:46:18ID:???PEARって使ってないね
0013カポコン
04/10/06 01:12:01ID:???filetype:php
を付け加えるとよい。
0015nobodyさん
04/10/06 01:44:20ID:???Windows 標準エディタ『メモ帳』でも
UNIX 標準エディタ『vi』でも
MacOS 9 までの標準エディタ『Simple Text』でも扱える。
MacOS X は UNIX ベースだから vi が使えるので扱える。
というか扱えないエディタなんて使い物にならない
0016nobodyさん
04/10/06 01:54:54ID:???非常にアフォっぽいんだがw
0017nobodyさん
04/10/06 02:04:27ID:???0020nobodyさん
04/10/06 06:42:54ID:9EyLJckGhttp://www.entropy.ch/software/macosx/php/
ここのパッケージを使いました。
動いてはいるのですが、何故かエラーの表示が出ません。
エラーになったと思われる時は、空白のページが表示されます。
どうすればエラーを表示するようにできるでしょうか?
002120
04/10/06 06:55:25ID:???で解決しました。スミマセン。
どうもphp.iniを見るとセキュリティーのために
エラー表示をしないことが推奨されているような感じですね。
このパッケージの独自ポリシーなのか、PHP5がすべてそうなのかは
わかりませんが…
0022nobodyさん
04/10/06 10:29:19ID:???まあ、pear install DB すればいいだけなんですが、この辺の話はどっかに書いてあるんでしょうか。
0024nobodyさん
04/10/06 11:03:39ID:???しらね。PEARはPHP4の機能をフルに使ってるから、
PHP5になって動かなくなったライブラリは結構あるんだよね。
こういうことしてるやつとか $this =& $hoge 。
そのうち5番対応のもでるんじゃないの?と無責任な期待。
0025nobodyさん
04/10/06 11:15:47ID:???新しいのが出る予感がしないでもない。しかしPECLの方はあんまり気合入ってこんね。
0026nobodyさん
04/10/06 11:59:01ID:hWw/MMQHオートインデントがあるし、TABをスペース等に展開する機能もある。
インデントする時はTABで打ってても、保存時にはスペースに展開。
スペース連打してる人はさすがにいないと思うよ。
>>14
TABが使えるかどうかではなくて、
TABの幅が環境や設定によっては4だったり8だったりするのが問題なので、
スペースに展開してインデント幅を固定するのが目的。
PEARだと、/* vim: set expandtab tabstop=4 shiftwidth=4: */
というコメントが多くのファイルに記述されてるけど、
vi系のエディタだとTABをスペースに展開、TAB幅4 という設定を
ファイルを読み込んだ時に自動で設定してくれるはずだよ。
00273
04/10/06 12:28:34ID:GombbQA8cgi.force_redirect = 0にしますとページが見つかりませんってでてきます(汗
ここでエラーがでてくれないと本当にありがたいです。
00283
04/10/06 12:46:47ID:GombbQA8an httpdんほうで、実行プログラムの追加のとこでPATH_TRANSLATEDを使うにチェック
入れたら動作しました。10時間くらいインストールにかかってしまいました(;;)
情けないw&&申し訳ない
00293
04/10/06 12:51:45ID:GombbQA8そこにチェック入ってなかったんですよ〜(汗。そこのインストールガイド読んでしまったこと
が不運だった
0030nobodyさん
04/10/06 12:54:11ID:???0031nobodyさん
04/10/06 12:59:55ID:???http://www.dream-seed.com/image/anhttpd/anhttpd2.png
0032nobodyさん
04/10/06 13:04:35ID:???> 「実行プログラム」にc:\php\php.exe を指定します。あとは上といっしょ
0033nobodyさん
04/10/06 13:07:31ID:???そういうソースは配布されていないのでしょうか?
具体的には簡単なメッセージを更新して、新しい物が上にくる形です。
00353
04/10/06 13:15:15ID:GombbQA8それゎいえてますwけど、正直どこにエラーがあるか全くゎからなくて
php側にばっかり原因があるとおもってましたしw、ver4.3.9ゎ新しくなって
an httpdには対応してないのかなぁとか、自分のPCにウィルス入ったことあるから
そのせいかなぁとか、サーバー新しく入れても
必ずしもうまくいく保証がなかったので、とにかく暗中模索の状態だったんですよぅw
あのエラーの英語の意味もはっきりとゎわからなくて・・;;
何度もcgi.force_redirect = 0,1きりかえて考えてたんですw
0036nobodyさん
04/10/06 13:18:01ID:???なんだよ、結局手引きに書いてあるのをまともに読んでないだけの池沼か。
マニュアル読めない奴は何やってもダメ。害になるだけだから二度と来るなよ。
0038nobodyさん
04/10/06 13:27:33ID:???0039nobodyさん
04/10/06 13:27:56ID:???0040nobodyさん
04/10/06 13:30:05ID:???あんま単純なものは誰でもかけるから公開してないかもね。
ふつうの更新情報表示用のなら腐るほどころがってるけど。
>>36
のみならずエラーメッセージを読む気も、ゎからないことを検索して調べる気もないようです。
0041nobodyさん
04/10/06 13:54:10ID:???単純だからわざわざ公開する人がいないっていうより
手書きでやってもたいして労力変わらないからじゃない。
>>33だけだとどんなものを必要としているのかさっぱり分からんけど。
0042nobodyさん
04/10/06 14:17:12ID:???0043nobodyさん
04/10/06 14:34:26ID:L3DRi3rhhttp://www.jvcmusic.co.jp/m-serve/tsukuyomi/
004433
04/10/06 17:09:09ID:???ブログの一方方向のようなものを頭に描いています。
相手からのコメント等は必要ないので、こちらからの日記的な物を書いていくことで
古い記事は下になりカレンダーのように前の記事を閲覧することが出来るという感じです。
今までhtmlで1つ1つ加えていったのですが古い記事を
DB的な扱いで見る事が出来ず、しかも手動でずらしていくので大変でした。
0045nobodyさん
04/10/06 17:15:54ID:???そういうのを探しているのか、作りたいのかをはっきりしようよ。
作りたいなら、作ってみて分からないところをココで質問すればいいし
探してるならスレ違い
004633
04/10/06 17:21:24ID:???作ってみたいです。でも何からやればいいか分からないし、
45さんの態度が酷く気に入らないのでこのスレから出て行ってもらえませんか?
004733
04/10/06 17:23:43ID:???スミマセンでした。>>41でどんなものかと書かれていたので
レスしただけです。実際探しているのでスレ違いのようですね。
向こうで質問しなおします。どうも、ありがとうございました。
0050nobodyさん
04/10/06 17:59:54ID:???まあ作ってもらうより探した方が早いんじゃない?
昔ながらの日記・掲示板兼用スクリプトとか。
0052nobodyさん
04/10/06 18:05:15ID:???この流れ見たら>>46があなたじゃないのはわかるから、安心汁。
Web制作板のCGI探しスレに、いまは依頼者叩き・回答者叩きの両方が
棲みついてて荒んでるから気をつけてね。
0054nobodyさん
04/10/06 22:27:31ID:???0055nobodyさん
04/10/06 22:33:23ID:???0057nobodyさん
04/10/06 22:45:24ID:???0059nobodyさん
04/10/06 22:53:32ID:???PHP4とPHP5がよく似た別の言語みたいに言うのは止めてくれw
しかもなんでいまさらその質問
下位互換確保されまくり。いっそ全部整理しなおせよといいたいくらい
>PHP4とPHP5ってそんなに互換性ないの?
けど最近5で書くのになれつつあるのか、4ではどうだっけとなることがある
エラーと例外をスタティックにしようと思ってパブリックなプロパティを作ってたら、lintした時すげー怒られたりとか
こればかりは自分がやらにゃどうにもならんのですけどね
>>58
AはBに互換性があるけど、BはAに互換性がないってことが言いたいんでそ。phpで言うと、
4のソースは結構5で動くけど、5のソースは4じゃ動かないよってことだと思われ
おい、ちょっと待て。それは当たり前だ!!
0060nobodyさん
04/10/06 23:01:44ID:???PHP4とPHP5は互換性がないの?
⇒ YesかつNo
PHP4はPHP5と互換性がないの?
⇒ No
PHP5はPHP4と互換性がないの?
⇒ Yes
これでいい?
程度問題だけど、4のソースは大抵そのまま動いちゃう。
>>59
> いっそ全部整理しなおせよといいたいくらい
正直OOP周り、Zendエンジンのレストアと中の人のことだから、派手な印象はなかったねえ。
中途半端感ただよう4系に比べれば設計は楽できるようになったと思う。
0061nobodyさん
04/10/06 23:06:34ID:???0062nobodyさん
04/10/06 23:08:24ID:???手続き型で書いてる分には4も5も気にする必要はないな。どっちでも大抵動く。
PHPは突然変異的には変わらんのだが、いつもちょっとずつ変更来るんだよなあ。
メジャーバージョンうんぬんよりも枯れてないことのほうが遥かに手がかかる点だと思うのだが。
006563
04/10/06 23:14:18ID:???0067nobodyさん
04/10/06 23:34:13ID:???$result =& $db->query($sql);
$result = $db->query($sql);
上の二つはどう違うんですか?
=& ってよく見るんですが、どういった働きなんでしょうか?
だれか教えてー
0068nobodyさん
04/10/06 23:35:58ID:???http://jp.php.net/manual/ja/language.references.php
値をコピーしない時に使う
0069カポコン
04/10/07 03:06:16ID:???まーUMLで継承を汎化っていうのと同じようなもんか
0070カポコン
04/10/07 03:24:05ID:???変数にはポインタ型というものがあります。例えば $a = 255;
と宣言した場合、変数はメモリ上では アドレス:値 の順で保持される。
これに$a =& $b とした場合、$bは$aのアドレスを直接値に持つ変数に
なりますこれをポインタという。図と式で示すとこんな感じ。
変数 = 値 //変数名 アドレス:値
$a = 255; //$a 23400:0xff
$a =& $b //$b 23401:23400
$c =& $b //$c 23402:23401
$bはポインタ型で、$aの'アドレス'を保持しています。
$cもポインタ型で、$bの'アドレス'を保持しています。
ちなみに$cの事をポインタのポインタという言い方をします。
メモリにおける変数の構造が、アドレス:値である以上、
アドレスからその変数を探すのが手っ取り早いのです。
故にポインタ型や参照型を設置して、代入の頻度が高い変数のポインタ変数
を予め用意しておくとCPUが探しやすいんだけど
今はコンパイラやPHPの高バージョンでは、参照渡しって排除の方向だから
余り意識しなくても問題無いだろ、C覚える輩はともかく。
ただ、その分オブジェクト指向は強くなりすぎて参照型までついたらもうPHPは・・・w
0071nobodyさん
04/10/07 03:40:36ID:???自分のtxtに書き込むのはできるか、質問したものです。
勉強しまくって、ようやく取り込んでtxtに書き込みまで出来た。
後は文字列関数使ってなんとかなる見込みたった。
つうかさ、PHPマニュアル見難くて分かりにくすぎ。
色々探したら、もっと分かりやすい所あって
そこ参照してたら、すぐ出来た。
アホな質問をしたなと思ったけど、同時にマニュアルの糞さに腹が立った
0072nobodyさん
04/10/07 03:43:15ID:tqokV3dzなぜかHotmailに送ると迷惑メールフォルダ行き。
factoryはsmtpを指定
同じサーバからsendmailコマンドで送信するとふつーに送れる
ヘッダが悪いのかな〜と思い見てるけどよく分らず。
Message-Idとかがないのが問題なのかな・・・
誰か分る人います?
0073nobodyさん
04/10/07 03:44:28ID:???自分の脳の糞さに腹を立てた方がいい。
0074nobodyさん
04/10/07 03:46:47ID:???0075nobodyさん
04/10/07 03:53:32ID:???例えば、名前の知らない料理を出されて
これをそっくりそのまま作ってくださいと言われて
料理本100冊渡された感じ
何冊目にその料理があるのか、分からずに闇雲にページめくってる感覚に似てる
だんだん流れ読めてきたから、なんとなくあのマニュアルのよさが分かりつつあるけど
それでも無駄が多く感じる。
例えば各関数で使用頻度ベスト10くらいのをあげて
○○ ・・・××するタメのもの
とかにすれば見やすいのに、、、と思った。
0076nobodyさん
04/10/07 04:20:04ID:???> Message-Idとか
シラネ。RFCではつけることになってるからつけて見たら? ついでに他のも色々と。解決したらレポ希望。
>>75
そういうのはチュートリアルね。PHPオフィシャルのは個別の関数リファレンスと言語リファレンスですよ。
最初は、たとえば配列なんかは何にでも使えるのでコンテクストがないと何に使うのかわからねーよって
なりがちなんだよね。71のようにチュートリアル形式で目的別に集められた情報を探すってやりかたはアタリ。
ついでに言うと、関数リファレンスには「イントロダクション」のとこにXXするためのもってズバリ書いてあるよ。
関数の梗概文も基本的に動詞形式になってて、何が出来るのか把握しやすいようになってる。#phpに限らず
使用頻度で分けるのは面白そうだね。人や仕事内容次第だからどうやってレーティングするのか漏れには思
いつかんが、便利そうなので作ってみれ。
0077nobodyさん
04/10/07 04:28:36ID:???0078nobodyさん
04/10/07 04:55:09ID:???みればいいってだけ。チュートリアルが欲しくなったら、主要な関数のとこに一つの関数についてじゃなくて、
その項の関数を色々使った一連の流れを示すサンプルがあることがあるのでそれを探して見るといいよ。
fopenをみてファイルの開き方が分かったら、次は下の方にある関連項目を見てみる。すると、fread()とか
fwrite()なんていうのが見つかるというわけ。例えばだけど>>71のようなことがやりたいなら、http://www.php.net/fread
をみればネットワークに繋いでデータを取り出すまでが書いてあるし、fosockopen()へのリンクも一応ある。
ユーザーの投稿記事も参考になる。
ネットワークに繋ぎたい、ファイルを読みたい、更新状況を知りたい、データを保存したい、みたいにやりたいことを
明確にしておくとマニュアルはかなり引きすくなる。ほんで>>76が言うように、慣れてくると引けるようになってくると
いうのは、どんな手続きをやるのかってのがもうイメージできてるので、それにあった項目を引くだけになってるっ
てことなんだろうね。
手続きがどういう処理単位で書かかれるか分からないころは、まず何を探せばいいのかはっきりしない。だから、
やりたいことにあわせてマニュアルを引くんじゃなくて、まずマニュアルを引いてみてどんな手続きで実現するのか
ってことからやらなきゃいけない。不要な情報も大量に入ってくる。最初はファイルあつかうのにファイルポインタを
ラップしたものを使用するんだなんて想像もつかないしね。
こういうのって誰もがとおる道だと思う。
0079nobodyさん
04/10/07 05:03:07ID:???その通りだと思う
ただ、勉強で初めから分厚い本を選ぶ人はいないのと同じで
基本・中級レベルのをさらっと書いてあるのが好み
1行に効果
2〜5行で用例を載せたのが、頻度順で出てあるのがベスト
それだと、1項目につき5行で済むし。
0080nobodyさん
04/10/07 05:03:21ID:???PEAR MDB_Common::limitQuery()
が動きません。
mixed &limitQuery (string $query, array [$types], integer $from, integer $count)
第2引数の arrayは何を入れるんでつか?
0081nobodyさん
04/10/07 05:06:36ID:???入れてみたらphpMyAdminが問題なく動いてるし
おいらももう全面的に5に旅立ちます
0082nobodyさん
04/10/07 05:11:26ID:???世界のゴミ溜めことhotmailのフィルターは日進月歩だからねえ
ちゃんとした仕様把握してるのはM$とスパム屋だけだったりして
>>78
一応どこの言語のmanも工学的に考えられてて構成は同じだろ
phpが違うのは平易さだろうな。冗長に感じる部分もあるがコトバで説明されてるとことか
ソートやろうと思ったときphpはマニュアルから検索すればすぐにわかるが、
例えば初心者がCでやろうと思ったらどうだろう?
http://www.google.co.jp/search?&q=sort+search.c
0083nobodyさん
04/10/07 05:38:52ID:???動かんって言われてもしらんがな。
$typesとあるようにカラムの型。textとかtimestampとか。
エラー処理に使うだけだろうからSelectなんかとは関係ない。
NULLでいいよ。
0086nobodyさん
04/10/07 05:55:41ID:???読むべきもの・個所を誤るととんでもない時間の無駄になる
0088nobodyさん
04/10/07 07:15:08ID:???0089nobodyさん
04/10/07 07:56:52ID:???上手く使えない俺はプチリファレンスPHP4買って勉強した。
>>85みたいな謗りは免れないけど4.3以降対応なんで重宝したよ。
0090nobodyさん
04/10/07 09:26:47ID:???それぞれ分けて考えたほうがいいよ
皆が言ってる「よくできたマニュアル」はリファレンス。
初学者がよく欲しがるのはチュートリアル。
上で文句言ってる人が欲しがってるのはクックブック。
0091nobodyさん
04/10/07 09:32:39ID:???phpって文字列を数値に変換した場合0になるんじゃなかったっけ?
家の環境(4.3.4)で 'aaa' > 0 は folse になるけど、
レンタルサーバー(4.2.2)では true が返ってくる。
バージョンによって違うの?
0092nobodyさん
04/10/07 10:08:35ID:???0093nobodyさん
04/10/07 11:04:26ID:???$title='メールタイトル';
$content='メール本文';
以上2つの文字コードはEUC-JPです。
これをメール送信したいのです。
はじめそのままmail($e-mail, $title, $content);で送信したのですが、完全に文字化けしていました。
そこで、
$title = mb_convert_encoding($title, "SJIS", "EUC-JP");
$content = mb_convert_encoding($content, "SJIS", "EUC-JP");
として再度行いました。
すると、$contentの方はうまく表示されるのですが、$titleは相変わらず文字化けしたままです。
2つとも文字化けせずにメール送信できる方法がお分かりの方、どうかご教授いただけないでしょうか。
よろしくお願いします。
0097nobodyさん
04/10/07 12:54:04ID:???文字化けするから素直にmb_send_mail使うといいよ。
0098nobodyさん
04/10/07 14:25:31ID:???ereg()で使う正規表現で躓いています
検索したい文字列は\OW\で
$aaa = file ("./xxx.txt");
foreach($aaa as $bbb){
if(ereg("\\OW\\", $bbb)){
echo $bbb ;
echo "<br>";
}
}
上記の様に書いて実行したら
Warning: バックスラッシュの後 in /home/site〜
のようなワーニングが出ていました。
\は文字列として扱うのに\\と書くまではgoogleに教えてもらえたんですが
解決法を教えて下さい
0099nobodyさん
04/10/07 14:48:36ID:???0100nobodyさん
04/10/07 15:08:21ID:???ヒアドキュメントの中で式を評価させる
ことってできますか?
関数を呼び出したいんですが
■ このスレッドは過去ログ倉庫に格納されています