【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
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:???ヒアドキュメントの中で式を評価させる
ことってできますか?
関数を呼び出したいんですが
0103nobodyさん
04/10/07 15:13:15ID:hyBgkm6Mできません
0104nobodyさん
04/10/07 15:20:36ID:???phpのparserが\をエスケープに使うから
>>100
> ヒアドキュメントは、2重引用符を使用しませんが、
> 2重引用符で括られた 文字列と全く同様に動作します。
0105nobodyさん
04/10/07 19:12:49ID:Q6Hyz1yaSQL Server(データベース)自体は自家サーバー上に設置してあり、このデータベースに
レンタルサーバー上にあるPHPページから接続してデータを処理したいのですが、
そもそもこれは可能でしょうか?
PHPマニュアルのサンプルコードを参考に
$conn=odbc_connect("DRIVER=SQL Server;SERVER=".$ser.";UID=".$user.";PWD=".$pass.";
DATABASE=".$db.";Address=".$ser.",1433","","");
という感じで接続を試みているのですが、
「S1090 文字列またはバッファの長さが無効です」というODBCエラーが出ます。
このエラーの意味するところがまた良くわからず閉口してます。
ちなみに自家サーバー上に実際に接続を行うPHPページを置いた場合は接続がうまくいきました。
今までACCESSのmdbファイルにodbc_connect()で直接接続していたのですが、
今回MS SQL Server経由で接続することになったため、そのままなんとかodbc_connect()で
接続しようとしてるんですが、mssql_connect()に切り替えれば済む話なのでしょうか?
どなたかお助け下さい!
0106nobodyさん
04/10/07 19:24:41ID:???そのまんまじゃ先ず無理。
レンタルサーバ屋に設定してもらう必要があるが、
そこまで顧客の要望を受け入れるクラスのサービスを借りてるの?
0107nobodyさん
04/10/07 19:34:54ID:Q6Hyz1ya書き込みありがとうございます。
レンタルサーバー会社にその辺の問い合わせをしてみます。
ちなみに通常、サーバー会社にはどういうことを設定してもらう必要があるんでしょうか??
SQL Serverをインストールしてもらう、とかでしょうか???
0108nobodyさん
04/10/07 20:03:39ID:????Windowsのサーバなの、借りてるのは。
サーバ屋にも、借りてるサービスの内容にもよる。
細かく設定について依頼をしないと駄目な場合と、
借りてるサーバで動いてるPHPから自宅のMS SQL-Serverに
ODBCで繋げたいから、そっち側の基本的な設定やってくれで済む場合もある。
インターネットを経由したリモートのDBMSから情報を引き出すって、
結構高度というかそれなりに必要があってやることだけど
PHPの動いてるWebサーバとDBMS間の通信のセキュリティとか考慮してる?
ただ今借りてるところでMS SQL-Serverが使えないって理由だけなら
使えるようにセットになったWindowsサーバのサービスを借り直した方が良いよ。
0109108
04/10/07 20:10:19ID:???簡単なのは自宅の方にWebサーバを立ててしまうことだ。
外のコンテンツから必要に応じて取り込んでもいいし、
全部自宅から出力してもよい。
0110nobodyさん
04/10/07 20:34:52ID:Q6Hyz1ya>>108
レスありがとうございました!
セキュリティに関しても気にはなっていたのですが、
108さんのおっしゃるように自家サーバーにデータベースに接続するページだけを
置いてレンタルサーバー上の他のページからリンクするようにすれば、
WEBサーバーとDBMS間の通信のセキュリティはとりあえず大丈夫!
ということでしょうか?
いろいろ聞いてすみません。はっきり言ってド素人なもので。。。
0111nobodyさん
04/10/07 20:36:04ID:Q6Hyz1ya108、109さん宛の間違いでした。
0112nobodyさん
04/10/07 20:49:09ID:???0113nobodyさん
04/10/07 20:59:45ID:kpmAjhNuhttp://tatsume.net/123456/
0114nobodyさん
04/10/07 21:07:21ID:???問題は自宅側だろ?
自宅のMS SQL-ServerはちゃんとODBCの外部接続はできるように
してあるんだろうな?
0115nobodyさん
04/10/07 21:25:53ID:???単純に繋ぐとそれもダダもれなんで、自己認証でもいいからHTTPSで喋る
ようにするとか工夫しないと充分とは言えないと思う。
最もセキュリティは扱う情報のレベルの応じて考えるものなんで、
そんなことは不要かもしれないし、そもそもWebサーバから
読めるようにしてはいけないのかも知れない。
ド素人だったら全部込みでセキュリティ関係の設定も
考慮されてるサービス選ぶのが最適解だと思うよ。
共有サーバなんて危なくて使えネェぐらいと言えるぐらいの
知識を付けた賢い客になるべきで、賢い技術者になる必要はない。
0116nobodyさん
04/10/07 21:45:38ID:eGrZpUzkやっぱC言語風に「"」ですか?
0118nobodyさん
04/10/07 21:52:17ID:???>そんなことは不要かもしれないし、そもそもWebサーバから
>読めるようにしてはいけないのかも知れない。
そんなんじゃ、Webアプリの価値なんてなくなるよ。
必要なら、Webサーバ-DBサーバ間を暗号化すればいいじゃない。
まあ、セキュリティのみに関して言えば、共用サーバという時点で
論外だけどな。
0120nobodyさん
04/10/07 22:13:38ID:???いや、Webアプリの価値は開発から運用まで巷のツールなどが利用できること。
そこで言いたいのは、VPNとかの採用を考慮すべきで情報の内容ではないのかってこと。
0122nobodyさん
04/10/07 23:09:19ID:YIBUt39D>必要なら、Webサーバ-DBサーバ間を暗号化すればいいじゃない。
話が高次元になったところですみませんが、この暗号化は実際にはどうすればできますか?
PHPの関数でcryptみたいなものを使うのでしょうか?
サーバーを適切なところに変えるのが一番安全なのかもしれませんが、
理由あって変えないで済むならなんとか方法を探したいと思っており。。。
012398
04/10/07 23:40:46ID:???レスありがとうございました
【php パーサ バックスラッシュ エスケープ】でぐぐったら
http://php.s3.to/man/ref.info.html
がかかりました。
DB側でなくphp側でエスケープ処理がかかってたんですね。
で、
phpinfoのmagic_quotes_gpc,magic_quotes_runtime,magic_quotes_sybase
はLocal、Masterとも全部Offになっていましたが
それでもエスケープしてしまうものでしょうか?
マニュアルはOnの時にエスケープ処理が入るとありましたが
他にも関係する設定箇所があるのでしょうか?
0127nobodyさん
04/10/07 23:57:13ID:???http://pc5.2ch.net/test/read.cgi/php/1095633323/l50
0128118
04/10/08 00:03:08ID:???>105がどういう内容のアプリを作ってるのか知らんから適当に言うが、
VPNは外部公開せずに拠点間をネットワークで繋ぐエクストラネットだろ?
今回はそういう話じゃないと思うんだがな。
VPNの導入だってめんどくさいし。freeのでなけりゃコストもかかるし。
>>122
phpの関数レベルじゃできないと思うよ。
OpenSSL、OpenSSHのSSHポートフォワーディングでいけるが、
共用サーバなので、root権限を使った設定は無理だろうな・・・。
ということで、どこまでのセキュリティを確保したいかで、
変わってくるけど、その共有サーバでは無理かもよ?
0129nobodyさん
04/10/08 00:17:17ID:???本当に理解してないから、すぐ言えないんだよね
感覚でしか覚えてないから。
0130nobodyさん
04/10/08 00:30:25ID:???>>126が正解だけど、使い分けに関しては慣れだね。
俺の場合は連想配列のキーや文字列リテラルは「'」で
シーケルは「"」で括るのが個人的に見やすいと思ってそうしている。
もちろん、改行・インデント・コメントの三大マナーをきっちりやった上でね。
0132nobodyさん
04/10/08 00:57:34ID:???マニュアルも読めないほど日本語不自由な人は別としても。
0133nobodyさん
04/10/08 01:04:06ID:???パパ「百科事典嫁」
↑ドラえもんでのネタ
0134nobodyさん
04/10/08 01:12:58ID:???痛いところを突かれたからって、いちいちレスするな。見苦しい。
熟練者ならどんな些細な質問にも初心者が一番理解しやすい方法で回答できる。
0135nobodyさん
04/10/08 01:13:57ID:???0136nobodyさん
04/10/08 01:15:57ID:???それは君が実装方法を丸暗記しているだけで概念も含めた総論として
その解決方法を理解できていないからではないかね?
0137nobodyさん
04/10/08 01:18:56ID:???この世界には>>136で挙げたような「なんちゃって習得者」がいかに多いことか。
いいかげんPGはコーディングできる技能を"特別な技能"だとする思い上がりを捨てるべきだ。
0138nobodyさん
04/10/08 01:20:10ID:h9hTVebP0139nobodyさん
04/10/08 01:20:57ID:???少なくとも俺は自分のことを"エンジニア"とは称さない。
0140nobodyさん
04/10/08 01:23:57ID:???SEだからね。
0141nobodyさん
04/10/08 02:20:58ID:???それは同意だが、マニュアル嫁はとても良い回答だと思うよ。
俺は家電のマニュアルもちゃんと読む。、
0142nobodyさん
04/10/08 03:12:11ID:Gf9YwG4zいざ出力されたhtmlを見るとげんなりする。
みなさんどうしてますか?
0143nobodyさん
04/10/08 03:14:19ID:???HTMLのインデント?
0144nobodyさん
04/10/08 03:22:19ID:???0145142
04/10/08 03:22:43ID:???0146nobodyさん
04/10/08 03:23:16ID:???0147142
04/10/08 03:26:59ID:???0149nobodyさん
04/10/08 03:35:38ID:???出力されるhtml(と解釈されるテキスト)には、
インデントはおろか改行すら入れないようにしている。
どうせデバッグの時しか見ない、転送量の削減等の理由で
よく動的に生成されるページでコメントとか入っているのがあるが
あれはデザイナ向けか?
0150nobodyさん
04/10/08 03:36:20ID:???0151142
04/10/08 03:38:21ID:???デバッグ終わったら整形してうpすりゃいいってことか。
何もそのまま使うことはないのか…おれの馬鹿
0152nobodyさん
04/10/08 03:51:51ID:???調べてみたらmb_を使えばいいと出てるが、
設定しなきゃいけないらしい
指示通り設定したら、こんどは何か足りないと注意された。
分かりにくすぎだろ〜これ・・・・
0153nobodyさん
04/10/08 03:53:40ID:???ちゃんと設定できてるよ
0154nobodyさん
04/10/08 03:58:39ID:???質問スレが隔離効果を狙って立てられているのは知っているつもりだが、
ごく普通のPHPの疑問を解決するスレが欲しいユーザはきっと漏れだけじゃないはず。
そこで問題になるのがスレタイなのだが。
聞いてばっかりになりがちな「質問スレ」というのは止めにして、
お互い問題を提出して有益な情報を出し合えるようなものにしたいところ。
言葉にするとしゃらくさいものに思えるかもしれないが、そういうものが必要だ。
しかしCommonGatewayInterfaceスレのように廃墟になるのはごめんだし、
PHPト学会スレじゃなんのことかさっぱりだ。何かハッとするようなブレイクスルーを
持っている人はいないかい。
0155nobodyさん
04/10/08 04:03:27ID:???回答者がスレのレベルを決めてどうするんだ
最終的には難しい質問しか書けなくなって、誰も答えられない
自慢大会みたいなスレにならない?
---------------
まぁ初心者スレがないから、ココに書いてるのもあるけど。
0156nobodyさん
04/10/08 04:17:30ID:???> 自慢大会みたいなスレにならない
初心者スレと別れていたころがあるが、そうはならなかった。
なぜ今後そうなると考えているのか理由もかいてくれないと何とも判断のしようがない。
このスレッドはあっていいんだ。"と'の違いや=&、&$が何か、「設定ができない」とだけ
書いてあって救いようの無いレスを打ち合うスレがあるのは否定しない。
けれども最低限マニュアルを読み、テストをする姿勢を要求するスレッドがあっても
いいんじゃないだろうか。その上で自己解決困難な問題について議論してみたら、
有意義な結果が得られることにならないだろうか。別にソースハックを当然のように
要求するスレッドを作りたいわけではない。
読んでくれなかったようだが、「ごく普通のPHPの疑問を解決するスレ」が一本あって
いいんじゃなかろうか、という程度の話だ。大げさに考えることは無い。
0157nobodyさん
04/10/08 04:26:15ID:???調べずに聞いてもいい・簡単なことを聞くのは恥じゃない
となったあたりから、うんざりする質問が増えてきて
スキルのある人は出て行ってしまった感がある。
汎用的なスレや板ほど、何でも書けるせいかダメになりやすい。
あまり伸びず情報もさして出てこないような個別スレのほうが
まともなまま生き残る。どっかで分けなきゃいけない気もするね。
0158nobodyさん
04/10/08 04:30:58ID:???質問者どころか回答者も使い分けれないって事で
また合体したじゃん。
放置とかスルーとかできるほど民度が高くないから
分けても無駄無駄。
0159nobodyさん
04/10/08 04:31:38ID:???変数以外にも、エスケープシーケンスも展開されない。
>>124
使い分けに関しては、変数などの展開が必要ならば「"」不要なら「'」
文字列リテラルに「$"\」などの記号を多く含む場合は「'」程度かな。
必然的に>>130に近い使い分けになると思う。
>>142
テンプレートを使ってるよ。
0160nobodyさん
04/10/08 04:32:28ID:???初心者スレもあったけど、初心者スレとPHP質問スレを
分けて使ってくれないんで無駄つーことで合体したんじゃなかったっけ
マニュアル読まない>>1読まないエラー読まないってな人は初心者スレを作ってあげても
住み分けてくれない罠
0163nobodyさん
04/10/08 04:36:48ID:???またバカなこと書いたと反省した(・∀・)
0164157
04/10/08 04:39:41ID:???んでそ。そういうことじゃなくてさ。「質問」のためのス
レッドじゃ上手くいかないから別用途でってことね。
レベル分け無理ってのは同意。
016698
04/10/08 09:28:37ID:???何回かこの板で質問させてもらった98ですが、
スクリプト改造スレみたいに【希望するレスの形】別なんてどうでしょう?
自分がつまずきレベルを考えたら3種類あって
【1、マニュアルの該当しそうな所が予想つく→マニュアル読む】
【2、マニュアルのどこに該当するのか見当つかない→キーワードでぐぐる】
【3、なにでぐぐっていいのかすらわからない】
くらいに大別できるかなと思うので3番目は論外にせよ
ヒントをくれるスレ、マニュアルのどこそこに該当するからそこ嫁、なんて
2番目の状態でぐぐっても何もなかった時に質問できるスレがあったらいいなぁ
なんて思います
長文スマソ
0167nobodyさん
04/10/08 09:31:09ID:wO90jo1Vset_file_buffer($log, 0);
flock($log, LOCK_EX);
$kiroku = file(log.dat);
処理
rewind($log);
ftruncate($log, 0);
fputs($log, 処理の結果);
flock($log, LOCK_UN);
fclose($log);
排他ロックはこれでOK?
0170167
04/10/08 10:27:11ID:???0171nobodyさん
04/10/08 13:21:18ID:???自動巡回&切り出しソフトとかで切り出すのに重宝するよね。
>>167,170
if (!flock($log, LOCK_EX)){ echo"ロックに失敗しました"; }
else {処理;}
とかいう突っ込みをしてみる。
0172nobodyさん
04/10/08 13:45:17ID:???phpアプリを実行することはできますか?
0173nobodyさん
04/10/08 13:52:52ID:???0174nobodyさん
04/10/08 13:55:25ID:???環境とコードによるけど、セーフモードつったって只のIDチェックでしょ?
http://jp.php.net/manual/ja/features.safe-mode.php#ini.sect.safe-mode
0175nobodyさん
04/10/08 17:43:50ID:???0176159
04/10/08 18:11:51ID:???'/''のエスケープは有効だったね。
>>152 は、(マニュアル通り) *特殊文字の*エスケープシーケンスに訂正します。
>>165 フォローthx u
0177nobodyさん
04/10/08 19:08:16ID:EsMqKh23以下のようにやってもうまくいきません。
例えば10月の分は全部syori2に行き11月の分はsyori1になります。
どっか間違っていますでしょうか?
if(date("Y/m/j")<date("Y/m/j",mktime(0,0,0,$month,$day,$year))){
syori1
}else{
syori2
}
0179nobodyさん
04/10/08 21:13:17ID:???http://jp2.php.net/manual/ja/function.strtotime.php
0180nobodyさん
04/10/08 21:17:26ID:???0181nobodyさん
04/10/08 21:21:51ID:???mb関数はバグがあるからちゃんと返却値を確認しつつ使う必要があるよ。
例えば、mb_convert_kana()などは、全角スペース→半角スペースの変換ができないから
preg_replace()なんかで受ける必要があったりとか。
>>177
なぜ数値として比較したいのに「/」を入れて文字列にしてるのかと小一時間(w
0182179
04/10/08 21:24:55ID:???よく読んだら
【10月の分は全部syori2に行き11月の分はsyori1になります。】
これが望んでいる動作なのか望まないのに
そのように動作しているのかすらわからなかったorz
0183nobodyさん
04/10/08 22:42:04ID:???その場合の質問もこちらでいいのでしょうか?
ギャラリー系のPHPスクリプトでPHP4.0.6/DB無し/ImageMagik・NetPBT(?)無しのサーバーで
ブラウザからUpload出来、自動リサイズ可能で各画像/アルバムのDiscriptionの編集が効くようなスクリプトはご存じないでしょうか?
注文が多くてスミマセン。
■ このスレッドは過去ログ倉庫に格納されています