【PHP】下らねぇ質問はここに書き込みやがれ 28
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/09/03(日) 21:01:08ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0176nobodyさん
2006/09/05(火) 23:19:54ID:08m/EI5z0177nobodyさん
2006/09/05(火) 23:22:02ID:???0178nobodyさん
2006/09/05(火) 23:24:25ID:???とりあえず、
$sql="UPDATE member_table SET `update`='テスト' WHERE id=1";
としたらどうなる?
0179nobodyさん
2006/09/05(火) 23:29:05ID:08m/EI5z皆さんありがとうごじました。以前int型でupdateと言うフィールドを使ってたときは
問題なかったのですが・・・。あっちも変更しておいたほうが良いですね。
>>178
さんのやり方も大丈夫かも知れません。が命令と被るフィールドは使わないほうが無難ですね。
もう一度みなさんありがとうございました。この下らないことで4時間悩んでました。
0180nobodyさん
2006/09/05(火) 23:30:31ID:08m/EI5z0183nobodyさん
2006/09/05(火) 23:34:17ID:08m/EI5z厳しいながらも温かい指導ありがとうございました。
0185nobodyさん
2006/09/05(火) 23:49:46ID:08m/EI5z逝ってきますw
0186nobodyさん
2006/09/06(水) 00:33:08ID:???普通にしてくれるが、phpmyadmin等のツールを使ってると
>>178のようにクォートしてくれるので気が付かない香具師も多い。
0187nobodyさん
2006/09/06(水) 01:54:41ID:???ttp://dev.mysql.com/doc/refman/4.1/ja/data-manipulation.html
1度は一通り目を通しておくことを勧める。
そして迷ったらまずここで確認してみよう。
その上で意味が分からない、難しいと感じたら質問してみよう。
0188nobodyさん
2006/09/06(水) 02:06:49ID:???エディタや開発環境は何がお勧めでしょうか?
さんざん既出の話題だとは思うので、
どこかまとまっているところとかあれば
教えていただけるとありがたいです。
0190nobodyさん
2006/09/06(水) 02:08:55ID:???この辺かな
>>5
【ZendStudio】PHP統合開発環境 Part2【Eclipse】
http://pc8.2ch.net/test/read.cgi/php/1154082822/
最強のPHPエディタはなに?
http://pc8.2ch.net/test/read.cgi/php/1133785416/
0191188
2006/09/06(水) 02:29:15ID:???すいません、そうですね。
開発環境はWindowsXPです。
実行環境はまだ準備してないのですが、
XAMPPというのを入れてみようかと思っています。
>>190
ありがとうございます。
さっそく見てみます。
0192nobodyさん
2006/09/06(水) 02:50:48ID:???ttp://www.spacetag.jp/modules/download/
これを入れたら、設定がおかしなことになって色々面倒だったな。
やっぱパッケージより、自分で必要なもの集めてやったほうが、
わかりやすいと思うよ。
0193nobodyさん
2006/09/06(水) 03:35:29ID:???分かりやすいと思うし、php4と5の切り替えが一発とか・・
勉強になるという視点なら自分で集めたほうがいいが
入門用やちょっとした環境作りたいだけならXAMPPは超楽
しかし楽ちんなのに慣れるとさっきのupdateカラムみたいな事をさらっとやったりするけどね
0194nobodyさん
2006/09/06(水) 05:25:17ID:I5F2jJv/もちろん高アクセスじゃなきゃ差なんて感じないんだろうけど、
1秒に100アクセスぐらいあるとどうなんでしょう?
0195nobodyさん
2006/09/06(水) 06:17:00ID:???ベンチ取ったわけじゃないので推測交じりで概略だけ。
requireで分けようとファイル1つにまとめようと、
全体の行数自体はほとんど変わんないよね?
ってことはあとはファイル名指定によるファイルオープンの回数が1個増えるだけ。
そのくらいなら秒間100アクセスでも無視できる程度しか違わないと思う。
よっぽど「すでに読み込み済みのファイルかどうか」をチェックする
CPU負荷の方が大きいんじゃないだろうか。
それでもたかが知れてる程度だと思う。
このレベルなら通常はパフォーマンスより保守性の方が重要。
別ファイルへの分割を、10とか100とか文字通り桁が違うくらいの数に
分けない限りは些細なレベルだと思うけど、そのくらいまで増えてくれば
さすがに数字に表れてくるくらいの差も出てくるんじゃないでしょうか。
数行程度の小ファイルに細切れに分割するのはさすがに問題ありかと。
そういうわけでなく、普通に分けてこれだけの数になるほど大きいプログラムなら、
コードキャッシュとか組み込んだ方がいいかもね。
あと、requireするファイルをカレントディレクトリに置かずに、かつパス指定もせず、
サーチパスを舐めさせえるような作りにしてると影響はもう少し増えると思う。
0196nobodyさん
2006/09/06(水) 07:31:37ID:62uVHzx1それとも重複した値になる可能性もあるのでしょうか?
大垣リファレンス本を読むと、
「メールのMessage-ID等として使うには十分な一意性です」
と書いてあり、一意性が確実に担保されているのかどうか微妙な表現なので悩んでいます。
0198nobodyさん
2006/09/06(水) 08:00:38ID:???339 名前: nobodyさん 投稿日: 2006/07/29(土) 18:49:53 ID:uHG3koPT
今phpをやってる諸君、いまさらJAVAを覚えるくらいなら
悪いことはイワン、rubyとpythonをやっておきなさい。
なんてことが書かれてましたが、Python / Ruby なんてほんとにこれからクルんでしょうか?
なんとなく印象から既に廃れた過去の技術かと思ってましたが。
0199nobodyさん
2006/09/06(水) 08:01:20ID:I5F2jJv/なるほど、どうもです。
サーバスペックがしょぼいので、保守性を損ないすぎない程度に
requireを減らしてみようと思います。
0201nobodyさん
2006/09/06(水) 08:17:42ID:???オプション指定なしのデフォルトであれば、ミリ秒単位でユニーク、ってレベル。
ミリ秒単位で全く同一の時刻に複数のプロセスがuniqid()を実行したら被るよ。
0202nobodyさん
2006/09/06(水) 08:23:05ID:???んー。去年辺りからRoRが注目を浴びてきてるからでしょ。
AjaxでJavaScriptがまた脚光を浴びたのと一緒よ。
ま、Javaも近々Javaベースのスクリプト言語を公開して
大半の開発ユーザをそっちに移行させちゃう予定だから、
今このタイミングでPHPユーザがJavaを勉強するってのは
確かに微妙かもしれんな。
0203nobodyさん
2006/09/06(水) 08:47:21ID:???0204nobodyさん
2006/09/06(水) 08:59:33ID:???ミリ秒ではなく、実はマイクロ秒。
マニュアルは誤記みたいだよ。
>>196
重複する可能性はほぼゼロと考えていいと思う。
第2引数にtrueを指定すれば、もっと重複する確率は減るらしい。
暇ができたら、Cで大量にプロセス生成して同時にマイクロ秒を取得するとどれくらい重複し得るか実験してみたいかも。
0205nobodyさん
2006/09/06(水) 10:43:07ID:???一回発行させてリダイレクトさせるだけでいいじゃん。
勿論無限ループにならないように注意してね。
JavaScriptで判別するのは論外。
大抵のブラウザではCookieとJavaScriptは両方デフォルトで有効になっている。
そこでセキュリティ上の問題でCookieを無効にしている人は、JSも無効にしている可能性が高い。
0206nobodyさん
2006/09/06(水) 10:53:37ID:???FTP経由でファイルの内容を拾ってくる方法は無いでしょうか?
現在は、FTPで一旦ダウンロードしてから、
file_get_contents()で内容を拾っています。
できれば、tmpファイルを作成せず、直接メモリに入れたいのですが・・。
0208206
2006/09/06(水) 11:21:26ID:???読みました、
> 現在は、FTPで一旦ダウンロードしてから、
ここでFTP関数は使用してます。
FTP_関数で、file_get_contents のような使用方法ができる
関数は無いような気がします
0209nobodyさん
2006/09/06(水) 11:23:52ID:???グローバル変数に影響を与えないことは分かったんですが、
グローバル変数は、クラス内の変数(メンバ変数?)
に影響は与えないのでしょうか?
その場合、クラスに変数を渡すのはどんな方法を使うのが一般的でしょうか
0211nobodyさん
2006/09/06(水) 11:34:00ID:???変数を渡したければ、引数で渡せ
記述が全然違うから、グローバル変数はメンバ変数に影響は与えない
メソッドや関数内のローカル変数には影響はある
$foo = 10;
myfunc();
function myfunc()
{
$foo = 20;
global $foo;
print($foo);
}
上記の出力はグローバルで定義された 10 になる
というか、聞く前に簡単なスクリプトを書いて試す癖を付けたほうがいいぞ
0212nobodyさん
2006/09/06(水) 12:20:26ID:???> メソッドや関数内のローカル変数には影響はある
メソッド内の変数!=メンバ変数、でしょうか?
メンバ変数、グローバル変数の細かな定義も曖昧なのですが、
何か参考になるサイトはないでしょうか?
また、他の言語でのメンバ変数、グローバル変数の解説でも
PHPも同じと考えてよいでしょうか?
ぐぐってみたのですが、よいサイトを見つけられませんでした。
> というか、聞く前に簡単なスクリプトを書いて試す癖を付けたほうがいいぞ
肝に銘じます
> 変数を渡したければ、引数で渡せ
これのことを指しているのでしょうか?
素人質問ばかりですいません > global $foo
0213nobodyさん
2006/09/06(水) 12:34:42ID:???とりあえず言語リファレンスから読み直せ
http://www.php.net/manual/ja/
0214nobodyさん
2006/09/06(水) 12:35:47ID:???<?php
$global = "Hello";
class Test {
var $member;
function Test() {
$this->member = "World";
}
function hogeHoge() {
echo $global.$this->member;
}
}
$object = new Test;
$object->hogeHoge();
?>
0215nobodyさん
2006/09/06(水) 12:49:28ID:???>何か参考になるサイトはないでしょうか
>>213 のレスの通り
公式サイトを読めるだけの基本的な知識がないと辛いよ
>また、他の言語でのメンバ変数、グローバル変数の解説でも
>PHPも同じと考えてよいでしょうか?
大きな部分では同じではあるが、細かいところではその言語ごとの
特色が出ている。
まったく同じと考えると、思わぬミスをすることになる。
0216nobodyさん
2006/09/06(水) 12:51:15ID:???>> 変数を渡したければ、引数で渡せ
>
>これのことを指しているのでしょうか?
>素人質問ばかりですいません > global $foo
・引数
function myfunc($foo)
{
print($foo);
}
上記のような、($foo) で記述すれば、引数として値を渡すことができる
$foo = 10;
myfunc($foo);
という風につかう
0217nobodyさん
2006/09/06(水) 12:54:47ID:???・メンバ変数
class myclass
{
var $bar;
function mymethod($foo)
{
$this->bar = $foo;
}
}
上記のような $this->bar をメンバ変数と呼べる
$bar ではなく、$this->bar であることに注意
function mymethod($foo)
{
$bar = $foo;
}
このような場合は、メンバ変数ではなく、メソッド内のローカル変数
まったくプログラムを知らない人には、なじみにくいものだとは思うが
まあ、ゆっくりとやればいい
0218nobodyさん
2006/09/06(水) 15:40:13ID:???前に見つけたんですが、忘れてしまいました。
一応管理機能等がある物だったんですが・・
0219nobodyさん
2006/09/06(水) 16:49:47ID:UXXHtXDVはどうしてますか?
0220nobodyさん
2006/09/06(水) 16:58:30ID:???使ってもアクセス制限程度だし。
顧客情報を管理するような重要なシステムなら、SSL導入。
0221nobodyさん
2006/09/06(水) 16:58:40ID:???単に通信路の暗号化という意味ならSSL使うのが正解だろ
SSL使わないときは、生で流してる。
SSL使わないけど、より安全にしたいってことなら、
クライアントでJavascript使って、パスワード+種にmd5とかして
それをサーバに流すとかすればいいんでないの?
0222nobodyさん
2006/09/06(水) 17:00:56ID:???GETならセキュリティ対策しても無意味なんで、何も対策しない。
作るアプリケーションもミッションクリティカルなものじゃない
はずだし。
POSTならSSLを導入する。
そのあとXSS対策とか色々考えるけど書くのめんどうだから後は
ぐぐれ。
とりえずSSL導入しないなら何しても無駄くらいに思っとけばよろし。
0224nobodyさん
2006/09/06(水) 17:11:00ID:???アドバイスきいてるの?
そんなことしたってあんまり早くならないだろうって意見がおおいじゃん
それなのにrequireとか見直すつもりなのかよ
もっとちゃんと負荷かかってるところ見極めた方がいいってことだよ
視点かえて、サーバ上でいらんプロセス動いてたら殺すとか
そういうことしたほうが効果あるんでないの?
究極的には、新しいサーバにした方が手っ取り早いって事もあるしさ
ま、他にもいろいろ考えてるんだったら、おせっかいでスマン
0225nobodyさん
2006/09/06(水) 17:14:04ID:UXXHtXDV0226nobodyさん
2006/09/06(水) 17:23:13ID:???そりゃPHP以前の問題だな
遠回りにおもうかもしらんが、
PHP入門というレベルですらなく、初めてのプログラミング
とかそういう本読んで、基本的なプログラミングの考え方
に触れといたほうがいいんでないかい?
じゃないと、ここでいくら聞いても混乱するだけだ
あと既出だが、マニュアルとかネットで読むだけでは
身につかん。解った気分になれるだけだな。
解ってるって思ってもいざコード書いて見ると???って思うこと
はたくさんあるぞ。
ま、自分でコード読んで何やってるか読み取れない時点で
理解してないってことは分かると思うんだが、ネットで探す、
でもって、コピペで動いた万歳というレベルのやしが多いんだ
なこれが。
0227nobodyさん
2006/09/06(水) 17:27:30ID:???それは個人でやってることなのか?
であれば、おれおれ証明書+OpenSSLとかで金かけずにSSLできるぞ?
仕事であるとしてなら、個人情報うんぬん考えて、SSL使いたい。
でも金かかるからヤメタってのはそりゃあんたダメだよ
ホントに個人情報漏れたときに、責任取らされないように気をつけることだ
0228218
2006/09/06(水) 17:38:32ID:B1MlJIFJそうですね、検索ワード思いつく限りは試してるんですが思い出せません。
どなたかそのようなチュートリアルがありましたらお願いします。
0229212
2006/09/06(水) 17:48:52ID:???0230nobodyさん
2006/09/06(水) 18:24:47ID:Z+QAwMX/0232nobodyさん
2006/09/06(水) 18:35:05ID:???グローバル変数の$_SESSION['hoge']を
クラス内、関数内で使用するにはどうすればいい?
ほとんど決まって使用する形なので毎度関数の引数にするのはいやづら
class Test{
var $hoge = global $_SESSION['hoge'];
function Test()
{
echo $hoge;
}
では上手くいかないづら
0234nobodyさん
2006/09/06(水) 18:40:46ID:???そもそも$_SESSIONはスーパーグローバルだからどこでも使える
http://jp2.php.net/manual/ja/language.variables.predefined.php
0235nobodyさん
2006/09/06(水) 18:43:11ID:???コンストラクタで初期化。
class Test{
var $hoge;
function Test()
{
$this->hoge = $_SESSION['hoge'];
echo $this->hoge;
}
0236nobodyさん
2006/09/06(水) 18:44:55ID:???var $hogeの参照の仕方は間違ってるし
= global $_SESSION['hoge'] ってなんだよだし
お前はまずPHPの文法から勉強すべきなんでは?
0237nobodyさん
2006/09/06(水) 18:50:59ID:???指定しなかったら変更せず、って可能でしょうか?
0238nobodyさん
2006/09/06(水) 18:52:57ID:???function hoge($a = "default") {
if($a == "default") {
echo "引数が指定されなかったよ";
}
}
0239nobodyさん
2006/09/06(水) 18:54:05ID:???デフォルト引数値
ttp://www.php.net/manual/ja/functions.arguments.php#functions.arguments.default
0240nobodyさん
2006/09/06(水) 18:54:53ID:???わざわざコンストラクタ意識しなくても
class Test{
var $hoge = $_SESSION['hoge'];
function Test()
{
echo $this->hoge;
}
でいけね?
0242nobodyさん
2006/09/06(水) 19:06:00ID:???コンストラクタじゃないならクラス名と関数名は別にしたほうがいいのでは?
0243nobodyさん
2006/09/06(水) 19:18:04ID:???0244nobodyさん
2006/09/06(水) 19:33:45ID:???0245nobodyさん
2006/09/06(水) 19:36:15ID:???なら数字キーは0じゃね?
0246nobodyさん
2006/09/06(水) 19:36:58ID:???0250nobodyさん
2006/09/06(水) 19:41:50ID:Ko4SqDiX0251nobodyさん
2006/09/06(水) 19:42:37ID:???配列の途中に抜けがないことを前提にできるなら
$key = count($a) - 1;
でいいと思うんだけどね。
0253nobodyさん
2006/09/06(水) 19:45:18ID:???それが数字キーとは別に文字キーも含まれていてcountは使えないのです。
切り分けるか他の方法を考えて見ます。
0255nobodyさん
2006/09/06(水) 20:02:28ID:???使えませんよね?
0258nobodyさん
2006/09/06(水) 20:13:26ID:Ko4SqDiXクラスの中でvar $aaa;を宣言するとどうなるのでしょうか?
0259nobodyさん
2006/09/06(水) 20:14:25ID:???0262nobodyさん
2006/09/06(水) 21:07:44ID:???md5('生パスワード')とやるのと、
md5('生パスワード'+'秘密の種')とやるのと、
どっちがいいですかね??
自分はずっと前者でやってましたが、やっぱり後者にすべきでしょうか?
0263nobodyさん
2006/09/06(水) 21:08:00ID:zhNqu6Fm1
<--shitei_start-->
2
3
4
<--shitei_end-->
5
-------------------------------
上記file.txtの<--shitei_start-->から<--shitei_end-->まで抜き出す方法について質問です。
自分なりに考えて、下記方法にて正常に処理することは出来たのですが、長いような気がしてなりません。
スマートな処理方法があれば教えて頂きたいです。よろしくお願いします。
WindowsXP SP2 + PHP4.4.4 + Apache2.0Handler
$shitei = file_get_contents("file.txt");
$shitei = str_replace("\r\n","",$shitei);
$shitei = str_replace("\r","",$shitei);
$shitei = str_replace("\n","",$shitei);
$shitei = preg_replace('/<--shitei_start-->(.+?)<--shitei_end-->/',"\\1",$shitei);
echo $shitei;
0264nobodyさん
2006/09/06(水) 21:12:15ID:???それで十分な気がするけど、まー短くしたいって言うなら。
$shitei = file_get_contents("file.txt");
$shitei = preg_replace("/[\r\n]/", '', preg_replace('/<--shitei_start-->(.+?)<--shitei_end-->/',"\\1",$shitei));
echo $shitei;
0265nobodyさん
2006/09/06(水) 21:17:19ID:???とりあえず
$shitei = str_replace("\r\n","",$shitei);
は要らないだろ。
0267nobodyさん
2006/09/06(水) 21:31:10ID:???PHP5は↑を推奨
互換性があるからvarでもおk(var=public)
0268nobodyさん
2006/09/06(水) 21:31:48ID:???preg_replaceでmオプションでいいんでないかい
$shitei = preg_replace('/<--shitei_start-->(.+?)<--shitei_end-->/m',"\\1",$shitei);
0269nobodyさん
2006/09/06(水) 21:38:24ID:???function hoge()
{
$a = "1";
}
function fuga()
{
echo $a;
}
}
上のようにfuga()でhoge()のローカル変数$aを使いたい場合、
どうすればよいですか?
0270nobodyさん
2006/09/06(水) 21:44:52ID:???さっきのvarと言い。
本を読んで自習して欲しい。
0271nobodyさん
2006/09/06(水) 21:45:53ID:???0272nobodyさん
2006/09/06(水) 21:47:29ID:???1
<--shitei_start-->
2
3
4
<--shitei_end-->
5
<--shitei_start-->
6
7
8
<--shitei_end-->
9
-------------------------------
263じゃないけど、似たようなこと聞きたかったので質問です。
上の場合(1〜4、5〜8を取得したい場合)は、どんな記述方法がありますか?
■ このスレッドは過去ログ倉庫に格納されています