【PHP】下らねぇ質問はここに書き込みやがれ 24
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/07(金) 14:54:53ID:KnVubDvEここならお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0334nobodyさん
2006/07/12(水) 13:53:19ID:xb5eEiQB0336nobodyさん
2006/07/12(水) 13:56:15ID:???Foo クラス内の、 func() という static関数を呼び出すときは、
Foo::static だが、
$foo = new Foo(); としたクラスからメソッドを呼び出すときは、
$foo->myFunc();
となる。これは、 $foo は作成されたオブジェクトの参照値(リファレンス)であり、
-> という記号は、デリファレンスすることをあらわす。
0337nobodyさん
2006/07/12(水) 13:56:51ID:???0339nobodyさん
2006/07/12(水) 14:49:48ID:???2chの情報を鵜呑みにすんなよ・・・
金貰ってるわけじゃないから嘘言っても詐欺とかにならないんだぞ
名誉毀損とかなら別だが・・・
0340nobodyさん
2006/07/12(水) 16:12:26ID:hqxdU0Dg他のサーバにあるquicktimeファイル(.movとか)のサイズ(縦・横)を取得することは可能でしょうか?
もし可能なら、教えてください。
0341nobodyさん
2006/07/12(水) 16:17:56ID:???0342nobodyさん
2006/07/12(水) 16:38:42ID:hqxdU0Dg他のサーバにあるquicktimeファイル(.movとか)のサイズ(縦・横)を取得することは可能でしょうか?
もし可能なら、その方法を教えてください。
0344nobodyさん
2006/07/12(水) 17:26:05ID:???他のサーバにあるquicktimeファイル(.movとか)のサイズ(縦・横)を取得することは可能でしょうか?
もし可能なら、その方法を教えてください。
0345nobodyさん
2006/07/12(水) 17:27:17ID:???0347nobodyさん
2006/07/12(水) 18:29:01ID:BdFa9tBW指定したurlからhtmlソースを取得するAPIなどはありますでしょうか?
ありましたら、そのAPI名を教えてください。
0349nobodyさん
2006/07/12(水) 18:36:07ID:BdFa9tBW0350nobodyさん
2006/07/12(水) 18:36:10ID:???それならPHP APIなんていいんじゃね?
0351nobodyさん
2006/07/12(水) 18:41:03ID:BdFa9tBWすみません。質問の仕方が悪かったです。
APIではなく、関数教えて頂けませんでしょうか?
0352nobodyさん
2006/07/12(水) 18:41:51ID:???次のページで保存されてないのは仕様ですか?
0353nobodyさん
2006/07/12(水) 18:42:24ID:???0354nobodyさん
2006/07/12(水) 18:43:58ID:???0355nobodyさん
2006/07/12(水) 20:44:26ID:BdFa9tBW教えて頂けませんでしょうか?
0356nobodyさん
2006/07/12(水) 20:52:20ID:???自分で考えろ
0357nobodyさん
2006/07/12(水) 21:11:44ID:bxIkUHnKhttp://jp.php.net/manual/ja/index.php
ここに載ってるよ。
てか、ほとんどの質問、ここの関数調べてきゃ普通に一発で行きつくものばっかじゃねーかYO!
くだらない質問というよりも丸投げだろ!
0358nobodyさん
2006/07/12(水) 21:12:02ID:???substr ("abcdefghijk", 2, 4);
0359nobodyさん
2006/07/13(木) 00:01:37ID:???その質問は明らかに悪い
何がしたいのかがわからない
元データがはっきりとわかっていて、取得する文字列もはっきりとわかっているのなら
$foo = "cdef";
とか書かれても仕方ないぞ
0360nobodyさん
2006/07/13(木) 00:22:14ID:???「n桁目〜m桁目までを取り出したいんです」
なのか
「bからgまでの内容を取り出したいんです」
なのか
「cdefって文字があったら取り出したいんです」
なのか、まったくさっぱり。
きみたちゃ小学生レベルかと・・・
0361nobodyさん
2006/07/13(木) 00:38:26ID:4CgVM/D80365nobodyさん
2006/07/13(木) 04:51:44ID:???0367nobodyさん
2006/07/13(木) 18:03:28ID:4QScch9z0368148
2006/07/13(木) 18:58:37ID:???スレ違いだとは思いますが、開発言語がPHPなのでここで質問させてもらいました。
問題を解決するためにどのような情報(header関係だとは思うんですが・・・)を調べればいいのかわかりません。
ヒントだけでもいいのでどなたかわかる方いましたら宜しくお願いします。
0369nobodyさん
2006/07/13(木) 19:02:00ID:???http://example.com/b/login.php
上記のように「a」と「b」二つのフォルダにそれぞれセッションによる
ログイン認証が必要なスクリプトを置いたとき、「a」でログインした状態で
「b」にアクセスすると、既にログイン済みの状態となってしまいます。
上記の現象は、違うディレクトリ間でセッション・ファイルを共有してしまっている…と
いうことなのだと思うのですが、これってPHPの仕様ですか?
ちなみにサーバはXREA+です。
0370nobodyさん
2006/07/13(木) 19:07:50ID:???0371nobodyさん
2006/07/13(木) 19:20:47ID:???http://jp2.php.net/manual/ja/ref.session.php
> 複数回のアクセスを通じて特定のデータを保持する手段を実現するものです。
逆に聞くが、ディレクトリやファイルが変わった時に
保持されないようなセッション情報に何の価値があると?
まずはログインしているかどうかの判定を見直せ。
0372nobodyさん
2006/07/13(木) 19:38:22ID:???そうかねぇ?
http://example.com/admin/login.php
http://example.com/users/login.php
でセッション情報を分離したいとかよくある要求だと思うけど。
>>369
http://jp.php.net/manual/ja/function.session-set-cookie-params.php
で
http://jp.php.net/manual/ja/ref.session.php#ini.session.cookie-path
を限定してあげれば良いと思うよ。
0373nobodyさん
2006/07/13(木) 19:44:17ID:???http://jp.php.net/manual/ja/function.session-name.php
で session ID を別々に分けておかないとごっちゃになるよ。
0374nobodyさん
2006/07/13(木) 19:49:21ID:???状況を想定しているのだろうな
0375nobodyさん
2006/07/13(木) 19:57:48ID:???それだとCookie無効時に不具合が生じるんじゃ?
セッションデータにユーザレベルなり何なりを組み込んで
そっちで判断した方が良いんじゃないかと思うが。
0376nobodyさん
2006/07/13(木) 20:01:30ID:???> それだとCookie無効時に不具合が生じるんじゃ?
あ"? そんなの /a/ と /b/ で分離するとかしないとかに関係ない話じゃん。
そもそも Cookie が無効でもセッション情報が扱えるように
URL に ID 付与とかあるわけで、今回の話題と何の関係が?
0378nobodyさん
2006/07/13(木) 21:32:54ID:???0379nobodyさん
2006/07/13(木) 21:45:50ID:???http://example.com/a/login.php
でログインした状態で
http://example.com/b/login.php
に行くと既にログイン済みになるという問題が起こっている。
>>371は基本的にセッションデータはサーバ上でひとつなので、
ログイン中かどうかを判断するルーチン
(恐らく『セッションデータがある=ログインしている』とかそんな感じと思われ)
を見直せと言った。
>>372-373は
http://jp.php.net/manual/ja/function.session-set-cookie-params.php
でセッションキーを補完するクッキーの有効ディレクトリを制限してやれば
ディレクトリを移った時にはそのクッキーは食わないのでログイン済みにはならないと言った。
>>374は>>372の方法だとクッキーを無効にしてある場合、つまり
http://example.com/a/login.php?SID=hagehagehogehoge
のようにURLパラメータとして受け渡す場合に
http://example.com/b/login.php?SID=hagehagehogehoge
のようにされるとやっぱりログイン済みになるので>>372の方法は不完全で、
セッションデータの中に今どちらにログインしているのかを示すデータを埋め込むべきだと言った。
要するに>>371と同じくログイン中かどうかを判断するルーチンを変えろと。
すると何故か>>377=372はキレ出した。
それを見た>>377は呆れていた。
一方ロシアは鉛筆を使った。
0380nobodyさん
2006/07/13(木) 21:49:19ID:???× 補完
○ 保管
0381nobodyさん
2006/07/13(木) 21:51:39ID:???× http://example.com/a/login.php?SID=hagehagehogehoge
○ http://example.com/a/login.php?PHPSESSID=hagehagehogehoge
0382nobodyさん
2006/07/13(木) 21:54:18ID:???> http://example.com/a/login.php?SID=hagehagehogehoge
> のようにURLパラメータとして受け渡す場合に
> http://example.com/b/login.php?SID=hagehagehogehoge
> のようにされるとやっぱりログイン済みになるので>>372の方法は不完全で、
ログイン済みにはならない。>>373 があるから。
0383nobodyさん
2006/07/13(木) 22:14:17ID:???0384369
2006/07/13(木) 22:16:38ID:???皆さんのご意見を参考に、セッションデータに格納するログイン判定用のデータを、
ディレクトリ毎に変えてみたら上手くいきました。
以下のような感じです。
$_SESSION['loginOK'] = "a-logined"; //「a」でログイン成功時に格納するログイン済みフラグ
$_SESSION['loginOK'] = "b-logined"; //「b」でログイン成功時に格納するログイン済みフラグ
今回のような事例に関しては、意外と気付かないでいる人も多いのではないでしょうか?
同じドメインでディレクトリやサブディレクトリ毎に別のWebアプリを置いていて、
ログイン判定データが同じだったら全部のログイン認証が筒抜け・・・というのは盲点でした。
一種のセキュリティ・ホール(?)になりうるので、このスレのテンプレにも入れたらいかがでしょうか?
0385nobodyさん
2006/07/13(木) 22:25:36ID:dYQP4E5n<label>
<input type="file" name="upfile" size="35" />
</label>
<label>
<input type="submit" name="Submit" value="送信" />
</label>
</form>
<?
if($_POST['Submit'] == "送信"){
echo $_POST['upfile']:
}
?>
アップローダーを作ろうと思っているのですが、
上記のようにしても、upfileには何も格納されないのです。
どうすれば格納されるようになるのでしょうか?
0386369
2006/07/13(木) 23:03:37ID:???さらに実験してみたところ、
仮にログイン判定用のセッション・データ(>>384で書いたログイン判定フラグ)が全く同じ場合でも、
session_name('a');
session_name('b');
などのようにsession_nameをディレクトリ毎に分けて設定する(毎回session_startの前にコールする)という方法でも
大丈夫だということが分かりました。
0387nobodyさん
2006/07/13(木) 23:28:13ID:???$_SESSION["siteA"]["色んな情報"] = ...
$_SESSION["siteB"]["色んな情報"] = ...
ってやってたけどこれじゃ何か問題あるの?
0389nobodyさん
2006/07/14(金) 01:29:17ID:???一度、全ての行を、変数にいれて、
最後の行だけを除いて、保存するというやり方しかないんでしょうか?
テキストファイルがでかくなるとメモリの消費が辛いんですが、変数を節約するいい方法を教えて下さい
0391nobodyさん
2006/07/14(金) 03:23:20ID:???やりようはあるよ
ftellで場所を記憶しながらfgetsで取得していって
最後にftruncateでいける。
行の長さがある程度予想つくならば、最初にfseekしてパフォーマンスを上げられる。
0392nobodyさん
2006/07/14(金) 03:27:25ID:???最終行の先頭位置さえ分かればftruncate()で以降を削除できる。
最終行の位置を探すには
1.頭から1行ずつ読み込んでいって行末のftell()を保持しながら最後まで探していく
2.fseek()でファイル末尾に移動して1文字ずつ後ろから読み込んでいって1つ前の行末を探す
3.fseek()でファイル末尾から1行以上の分量だけ戻った位置に移動してそこから行単位に読み込む
などのアルゴリズムが考えられる。
3番は1行の最大長が分かってる場合は比較的有効。これが全然不明だと
100バイト戻って探索→ダメだったらさらにもう100バイト戻って…みたいになって大変。
この辺は対象ファイルのでかさなどからどこまで手間をかけるべきかを自身で判断しる。
処理時間は問題にならず単に消費メモリ量だけの問題なら1番で十分対応できる。
この種の末尾削除処理が頻繁に発生するなら、そもそもファイル書き込みの段階で
各行の先頭位置をインデックスファイルとして別途保存するか
そもそもファイルなんてやめてDB使った方がいい。
0393nobodyさん
2006/07/14(金) 03:29:28ID:???あと、全部丸ごと変数に入れなくても、
1行読み込み→その行を別のファイルに出力
というのを行単位に繰り返していって、
最後に元ファイル削除&別のファイルをリネーム、
って手順でも単純ながらメモリはほとんど食わずに処理できる。
でも、分量が多いならftruncate()の方が処理が軽いけどね。
0394nobodyさん
NGNGどうやればいいでしょうか?
"あ" を "202 240"
"犬" を "214 242"
というふうにです。
ご存じの方がいればよろしくお願いします。
0395nobodyさん
2006/07/14(金) 04:19:14ID:???$c = "あ";
$o = decoct((ord($c{0])) . " " . decoct(ord($c{1}));
echo $o;
0396nobodyさん
2006/07/14(金) 05:37:32ID:???言われてみて自分の管理してるサイト調べてみたら、
別々のシステムなのにログイン情報(セッションファイル)が共通になってた…orz
0397nobodyさん
2006/07/14(金) 07:08:44ID:???マニュアル嫁
http://jp.php.net/manual/ja/features.file-upload.php
0398nobodyさん
2006/07/14(金) 11:50:58ID:uuZ6ZGypfwrite($fp,'こんにちわ');
fclose($fp);
上記のようにファイルを作成する際に、
文字コードをUTF8に指定するには
どう記述すればいいんでしょう???
0400nobodyさん
2006/07/14(金) 12:12:07ID:???0401394
2006/07/14(金) 12:26:35ID:???ありがとうございました。後で試してみます。
それで、逆を聞くのを忘れていました。
"202 240" を "あ"
"214 242" を "犬"
というパターンです。よろしくお願いします。
0402nobodyさん
2006/07/14(金) 12:34:40ID:???「decoct」って関数を示されているわけだから、マニュアル読めば関連項目とかで
見つけられそうだ、とは思わないのでしょうか?
http://jp.php.net/manual/ja/function.decoct.php
0403nobodyさん
2006/07/14(金) 12:36:45ID:???0404nobodyさん
2006/07/14(金) 12:45:47ID:???http://pc8.2ch.net/test/read.cgi/php/1150088761/
0405nobodyさん
2006/07/14(金) 12:56:23ID:Gr8Njl8B内部エンコーディングって何が適当ですか?
0406nobodyさん
2006/07/14(金) 13:14:14ID:???0407nobodyさん
2006/07/14(金) 13:52:59ID:mRNg6YQD0408nobodyさん
2006/07/14(金) 14:00:17ID:???例外が少ない
0409nobodyさん
2006/07/14(金) 14:05:42ID:???そのサーバで使えるならUTF-8が安定してていいと思う
使えなきゃEUC-JP
Shift-JISはカタカナのソとかで面倒だから使わない方がいい
ちなみにコレはPHP書くときの文字コードの話ね
正規表現使うときはデータに合わせて正規表現の文字コードを指定するよろし
0410nobodyさん
2006/07/14(金) 16:39:54ID:???DB2へ接続するといった処理を行わせようとしているのですが、
HogePDOのコンストラクタでPDOのコンストラクタを2回呼び出し
ても問題ないでしょうか?
class HogePDO extends PDO
{
//DB1接続挑戦
parent::__construct(DB1の設定);
if( DB1接続失敗? )
{
//DB2接続挑戦
parent::__construct(DB2の設定);
}
}
0412nobodyさん
2006/07/14(金) 16:55:10ID:EKwqojz9こんな感じで 'PHP' を辞書から(国語、英和、和英)検索
ttp://dictionary.goo.ne.jp/q=PHP
0413nobodyさん
2006/07/14(金) 17:08:35ID:???0414nobodyさん
2006/07/14(金) 17:17:08ID:???てことで三省堂しか選択肢ないんじゃないかな
0415nobodyさん
2006/07/14(金) 17:35:29ID:LYbOhGxKこういうのを参考にインストールしてみました。
http://www.bnote.net/windows/windows/win_php.shtml
Apacheのhttpd.confの
LoadModule php5_module c:/php/php5apache2.dll
があると、Apacheが起動しません。
これをコメントアウトするとApacheが起動できて、htmlは見れます。
PHPはコマンドライン版は動くのですが、
起動しない理由のヒントをください。
0416nobodyさん
2006/07/14(金) 17:39:26ID:???俺はここみてやったらできたぞ。
ttp://oss.kk-ntc.co.jp/jpug/pukiwiki/pukiwiki.php?PHP%A4%CB%A4%E8%A4%EBWeb%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%B3%AB%C8%AF
0417415
2006/07/14(金) 18:02:38ID:???おおありがとう!
> 注2)apache_2.x.x系は、今回は使用しません。
> PHP4とApache2の組み合わせは現時点ではお奨めできません。
PHP5を使いたいのにっ _| ̄|○
Apache2.2か!?Apache2.2がだめなのか!?
0418nobodyさん
2006/07/14(金) 19:41:12ID:vYtz7wstをした後で、$linesにhogeという文字が入っている行のみを見つけ出すには
どうすれば良いですか?正規表現を使うのかなぁという気がするのですが
正規表現を使った経験がなく、どうしたらよいのか方法を教えてください。
0419nobodyさん
2006/07/14(金) 19:45:43ID:???if (preg_match('/hoge/', $line)) {
print("Hit!!\n");
}
}
0421ぬこえもん(=・ω・) ◆S715eQBvs6
2006/07/14(金) 20:25:24ID:Rg3ieVQg辞書順に配列するために何かよいアルゴリズムは無いでしょうか??
0423nobodyさん
2006/07/14(金) 20:49:28ID:???iframeを使うとリンク元がそのページになってしまいます。
何か良い方法はないのでしょうか?
(スレ違いならすみません。)
0424nobodyさん
2006/07/14(金) 20:51:23ID:???.......
<img src="http://hoge.com/hogehoge.php" />
0425ぬこえもん(=・ω・) ◆S715eQBvs6
2006/07/14(金) 20:53:09ID:Rg3ieVQgごめんなさい、言い忘れてました
テキストファイルだとかに生ファイルとして書き込みしようかと考えています。
それだとソフトウェアで再生することもできますし。
DBではこんなこと考えなくてもいいのかもしれませんね
0427nobodyさん
2006/07/14(金) 21:05:37ID:???textだとまず該当する語句がそのファイル内にあるかどうかの
真偽を判定しなきゃならんが、語句の数が多くなってくるとPHP標準の
関数で配列とかに読み込むとメモリ食うし、ソート処理も時間かかる。
DBにまかせた方がベター
どうしてもtextでやるんなら力任せ検索で真偽判定して偽であれば追加、
っていうのが面倒くさくなさそう。Boyer検索とかもあるけど。
0428nobodyさん
2006/07/14(金) 21:18:26ID:???リファラが欲しいなら、JavaScriptを使って
画像なりを出力するサーバースクリプトに引数として渡して呼び出すか
HTMLをPHPとして実行できるように設定するかの
どちらかかな。
0429426
2006/07/14(金) 21:18:30ID:???<img src="./count/count.php" width="0" height="0" />です。
0430ぬこえもん(=・ω・) ◆S715eQBvs6
2006/07/14(金) 21:50:14ID:Rg3ieVQgそうですか・・・・
やっぱりそれしかないのですね・・・・
構築できたらそれだけでDBソフトとして利用できそう
0431nobodyさん
2006/07/14(金) 21:53:15ID:3oB/DzeI0432nobodyさん
2006/07/14(金) 22:38:02ID:???・単語単位にファイルを作る
とか
・記録は登録順にしておいて各単語の順番を保持するindexを作る
とか
・1行の長さを固定にするか行の位置をindexに記録しておいて自由に挿入削除可能にする
とか。
ちなみにテキストファイルじゃないけど固定長レコードで高速キー検索できるようにした
ファイルを使ったDBもどきとしてはdbmというのが既にある。Perl辺りじゃ標準装備。
■ このスレッドは過去ログ倉庫に格納されています