トップページ⇒php
1001コメント314KB

【PHP】くだらねぇ質問はここに書き込みやがれ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/11/02 00:15:41ID:???
PHPに関するくだらない質問用すれです。
0159nobodyさん04/11/22 17:22:42ID:???
>>158
日を超えないって条件をつけてもいいなら
(12*60+15)-(12*60+0)のように自力で計算してもいいんでないの?
日付を考慮するなら(そのlogfileの書式では無さそうだけど)
mktimeとかを使ってUnixタイムスタンプに変更してから引き算するとか。
016015804/11/22 17:35:50ID:???
>>159
1日のタイムテーブルなので(12*60+15)-(12*60+0)でできました!
どうもありがとうございました。

0161nobodyさん04/11/22 20:51:14ID:fKkOMcrQ
$messageにある$AAAを含むURLを$BBBへ変換したいのですが

$AAA = "aaa.com"; // 変更したいURLの一部
$BBB = "http://xxx.yyy.zzz/"; // 自前のトップページへのURL

$SEIKI1 = "(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)"; // 正規表現1
$SEIKI2 = "([[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)"; // 正規表現2

$message = eregi_replace("$SEIKI1"."$AAA","$BBB",$message); // 後部/がない場合 http://www.aaa.com
$message = eregi_replace("$SEIKI1"."$AAA"."$SEIKI2","$BBB",$message); // 後部/が続く場合 http://www.aaa.com/〜
$message = eregi_replace("$SEIKI1","<a href=\"\\1\\2\" target=\"_blank\">LINK</a>",$message); //自動リンク

一つのURLでは対応出来たのですが
$AAA 入れたいURLが複数ある場合(aaa.comや、bbb.net ccc.org等です)
全てに適応させるにはどうすればよいか助言下さい。
0162nobodyさん04/11/22 22:06:56ID:???
>>161
バーチカルラインで繋げばいいじゃない
$sites = '(?:aaa\.com|bbb\.net|ccc\.org)';
0163nobodyさん04/11/22 22:17:20ID:???
逆に聞くけどposixのregexライブラリってキャラクタクラスのなかでもエスケープせにゃならんのか?
0164nobodyさん04/11/22 23:01:52ID:i4ElPupu
$AAA = "aaa.com|bbb.net|ccc.org";

これでいけました が、次は正規表現の部分もおかしかったみたい
スマートに入れ替えるのはないかな、、


0165nobodyさん04/11/22 23:55:51ID:???
>>163
分かってるんだと思うが、んなこたーない。
0166nobodyさん04/11/23 00:55:51ID:kHwx1zAl
やはり出来ないようだ、、、
0167nobodyさん04/11/24 13:50:59ID:B8VC6+a2
質問させてください。
PHPの練習でクッキーを作成してみようと思い
以下のようなコードを書いたのですが、クッキーが出来ません。。。
ブラウザはIEで、保存場所の
C:\Documents and Settings\ID\Local Settings\Temporary Internet Files
を何度も確認したんですが、まったく作成されません。
もちろんブラウザのクッキーもONにしているのですが。

ソース
<?php setcookie("name", "data"); ?>
0168nobodyさん04/11/24 14:27:55ID:???
>>167
有効期限入れないとIEじゃ確認できないよ
値そのものは入ってると思うよ
それと有効期限設定しないで確認したかったらネスケにしてみ
016916704/11/24 14:40:07ID:B8VC6+a2
>>168
レスありがとうございます!

時間指定の事を指摘されましたので
今度は以下の様なコードを実行してみたのですが
やはりクッキーは作成されません。。。
<?php setcookie("name", "data", 60 * 60); ?>

もちろんこれも確認できません。。。
<?php print $_COOKIE['name']; ?>
0170nobodyさん04/11/24 14:55:37ID:???
cookieのテストの一般的な方法としては、
1.適当なcookieを喰わせてみる
2.cookieの値を取得する
の2段階が必要。
以下適当なサンプル

<?php
if(empty($_GET['check'])) {
/* cookieを発行しこのページにリダイレクト */
setcookie("test", date("YmdHis"));
header("Location: " . getenv("PHP_SELF") . "?check=1");
exit();
} else {
/* cookieの確認 */
if (empty($_COOKIE['test'])) {
echo "cookieがセットされてないよ。";
} else {
echo "cookieの値は=" .$_COOKIE['test'];
}
exit();
}
?>
017116704/11/24 15:36:50ID:???
>>170
サンプルコードどうも!

そのコードを実行させて頂いた所、問題なく値が取得できてましたので
自分のコードをよく見直してみたら。。。

setcookie("name", "data", 60 * 60);
             ~~~~~~~
うぉおおおおおおおおおおおおお!!!
思いっきり time() が抜けてました!!

time()をいれて実行すると見事にクッキーが作成されました。
まったくお騒がせしました。
サンプルコードまで書いて頂き、本当にありがとうございました!!
0172nobodyさん04/11/25 11:18:41ID:50OS9jax
http://www.komonet.ne.jp/~php/program/chap3.htm

ここの掲示板なんですけど
if($pline == "")
 $p_line = 0;
else
 $p_line = $pline;
$end_data = $msg_count - 1;
$page_end = $p_line + ($page_view - 1);
if($page_end >= $end_data)
 $page_end = $end_data;
for($i = $p_line; $i <= $page_end; $i++){
 list($code2,$name2,$email2,$subject2,$comment2,$now2) = split( ",", $message[$i]);
の部分がいまいち理解できないんです。
次のページに跳ぶ為のフォームのところって言うのはわかるんですけど
これを参考に作ってるんですけどなかなかうまくいかなくて・・・
適当でも構わないので説明してもらえませんか??
0173nobodyさん04/11/25 11:29:25ID:???
>>172
そこで使ってる変数ひとつひとつ、何を示してるかリスト化してみな。
処理はforの中のlist()=split()以外はページングの処理だけど、
変数の意味が判れば難しくない。
017417204/11/25 11:41:25ID:???
自己解決しました。板汚しすまん
0175nobodyさん04/11/25 13:33:41ID:yWKV+q9s
PHPのオブジェクト指向を解説してるサイトありませんか?

ググッてみたんですけど見つかったのは
現実世界の変な例えを用いてるサイトばかりで混乱してしまいました

抽象的な説明ではなくコーディングベースでどう書いたら良いか説明しているサイトとか書籍って無いですか?
0176nobodyさん04/11/25 14:55:12ID:???
>>175
日本語だと「Do You PHP?」ってサイトとか。
英語だとZendのところを筆頭に、色々と。
書籍は知らない。
0177nobodyさん04/11/25 15:15:58ID:???
>>175
遠回りだけども、まずはオブジェクト指向をちゃんと勉強した方がいいと思う。

じゃないと、俺みたいに
「クラス使ってるけどただの構造化プログラミング」
という状態になる。
0178nobodyさん04/11/25 19:12:23ID:???
>>177

>「クラス使ってるけどただの構造化プログラミング」

俺のことだ orz
でも、これもこれで便利だったりするんだけどね。
0179nobodyさん04/11/25 19:41:40ID:???
オブジェクト指向なんて構造化の延長なんだから
0180nobodyさん04/11/25 23:11:46ID:???
乗算とか除算とか、楽な範囲ならシフト演算使ったほうが負荷軽減に繋がりますか?
0181nobodyさん04/11/26 02:36:17ID:???
有意かどうか、試せばすぐに分かる。
0182nobodyさん04/11/26 02:38:22ID:???
>>175
「PHPの」っていうからには「他の言語の」OOと違うことを求めてるんだろうけど、一体何だろう。
いままでプロトタイプベースのOOPばかりやってきたとか?
0183nobodyさん04/11/26 02:55:35ID:???
言語仕様としてクラスがないと分かりにくいよね
phpには、「phpのオブジェクト指向」っていうほど奇抜な部分はないんじゃない
特徴と言えばオブジェクトの粒度が巨大ってことかな

コーディングに関してはzendの説明が全てで、これ以上はなんもありません
以下はずいぶん昔よく参考にされてたサイト
http://www.phppatterns.com/
0184nobodyさん04/11/26 03:11:17ID:???
昔と違って最近は解説サイトも流行らんからな
0185nobodyさん04/11/26 04:37:39ID:hasryHcK
インターネットに接続しているかどうかを判別する
シンプルかつ確実な方法を教えてください
0186nobodyさん04/11/26 04:51:58ID:yOcL1Cw3
池沼現る
0187nobodyさん04/11/26 04:55:04ID:???
>186
透明人間現るっていうのは、透明なのに現るっていうとこがミソなのに
0188nobodyさん04/11/26 05:13:43ID:???
そこへなぜかOreilly現る
0189nobodyさん04/11/27 11:25:49ID:???
PHPの初歩を勉強しているものです。
本を読みながら勉強しているのですが、
以下のような、if文はどういう意味となるのでしょうか?

if ($fp){
   処理文・・・
   処理文・・・
}

$fp は、ファイルポインタなのですが、ファイルポインタを開いてる
時だけ、処理を行うって事で良いんでしょうか?
0190nobodyさん04/11/27 11:52:37ID:???
その通り。
if ($hoge) { }
は、Trueの時。
if (!$hoge) { }
は、Falseの時。
マニュアル読んだほうがいいかと思われ。
0191nobodyさん04/11/27 11:57:04ID:???
>>189
その$fpを作成している行で使用されている関数をマニュアルでひいてみ。
そして戻り値の型が何かを見れば分かると思うよ。
0192nobodyさん04/11/27 14:35:41ID:???
>>190-191
ありがとう!
0193nobodyさん04/11/27 17:35:24ID:???
resource fopen ( string filename, string mode [, int use_include_path [, resource zcontext]])
                                              ↑

リソース型ってようするにIntじゃないの?
0194nobodyさん04/11/27 22:43:37ID:???
>>193
リソース型はリソース型だと思う。
0195nobodyさん04/11/27 22:58:20ID:???
>>193
http://www.php.net/manual/ja/language.types.resource.php
http://www.php.net/manual/ja/function.is-resource.php
0196nobodyさん04/11/28 00:14:49ID:EgpgTC8f
質問なのですが、自分が契約しているレンサバの
Unixコマンドのパスが分かれば、PHPスクリプトから
Unixコマンドの実行も可能でしょうか?
nslookupを呼び出したプログラムを作りたいです。
0197nobodyさん04/11/28 00:23:26ID:???
>>196
やってみればすぐ分かるのに。
実行制限される要因はいくつもあるので試してみないと分かりませんよ。
checkdnsrr関数なんてのもあるけど、これも使えないようになってる場合もありますし。
0198nobodyさん04/11/28 00:38:30ID:???
>>197
制限されていなければ、使える可能性があるって事ですね。
気軽に試すスキルがあれば良いんですが・・・・。
レスサンクスです。
0199nobodyさん04/11/28 03:28:20ID:C3uMPLGO
test.cgiに
#! /usr/bin/perl
print "test";
exit;

hoge.shtmlに
<!--#exec cmd="./test.cgi" -->
と書くと期待通りにtestと表示されます。

<!--#exec cmd="./test.cgi" -->
と書くと何も表示されません。

<!--#exec cmd="./test.cgi">
や
<!--#exec cgi="./test.cgi">
と書くと[an error occurred while processing this directive]と表示されます。

この違いはどうして起こるのでしょうか?
#exec cgiを使いたいのですが、何が原因か解らず困っています。
何かアドバイスをお願いします。
0200nobodyさん04/11/28 05:14:04ID:???
>>199
スレタイ嫁
0201nobodyさん04/11/28 05:25:35ID:???
>>193
そうだよ
0202nobodyさん04/11/28 16:23:45ID:???
>>199
それSSI
0203nobodyさん04/11/28 19:13:54ID:???
>>202
最初にSSIでPHPのコードを読ませて、それをPHPで処理して
処理したらSSIのコードが内包されたたので、もう一度SSIとして処理して…
なんて話かと汲んでみたり。

できないことでもないが、そんな設定してる(Apache2)サーバもまずないだろうし、
書き足りない質問の意味を勝ってに汲むのもアレだと思い放置するつもりが
チラシの裏に書くつもりで2chに書いてみたり。


0204nobodyさん04/11/29 03:24:35ID:UN5rJ/7z
チラシと違ってログが残るがな。
0205nobodyさん04/11/29 04:09:37ID:???
>>203
そんな処理内容は>>199から一切読めんだろ
0206nobodyさん04/12/04 01:27:51ID:0gTcgitu
本当にくだらないのですが教えてください。
PerlやCで作ったCGIと言いますが、
PHPで作ったCGIとは言わないのでしょうか?
PHPで作ったPHPなんでしょうか?
0207nobodyさん04/12/04 01:46:29ID:???
PHPでつくったCGIという場合もあるしいわない場合もあるかと
自分の場合は
apacheモジュールで動作するPHP = PHPのスクリプト
apacheがプロセスを立ち上げて処理をするPHP = CGI
だと思ってますが。。。

#但し、正しいかどうかは知らない
0208nobodyさん04/12/04 02:00:22ID:???
>>206
CGI
ttp://www.atmarkit.co.jp/icd/root/41/5787041.html
PHP
ttp://www.atmarkit.co.jp/aig/03linux/php.html

>PHPはCGIインタプリタとしても使えるし、Webサーバのモジュールとして組み込むこともできる。
>CGIインタプリタとしてPHPを使用した場合は、他スクリプトを使ったCGIと同じく、
>スクリプト処理時にPHPのインスタンスを生成するためパフォーマンスは低下する。
>Webサーバのモジュールとして組み込むと、スクリプトはWebサーバソフトウェアのプロセスと同じアドレス空間で実行されるため、
>高速でWebサーバへの負荷も小さい。

端的に言うと>>207でいいと思う
0209nobodyさん04/12/04 03:24:23ID:uQGoi0dJ
Flash Communication Server を使っていろいろ作りたいんだけど
いい解説ページ知らない?
0210nobodyさん04/12/04 07:39:04ID:???
> PerlやCで作ったCGIと

慣用としてCGIをスクリプトの代名詞のように使うのはOKだけど、
CGIはインターフェイス規格だから、ちゃんとした場面では「PerlでCGIを作る」みたいな
破綻したコトバは使っちゃ駄目だよ

そしてブルジョアはセミナー逝けよ
0211nobodyさん04/12/04 21:32:03ID:???
>>210
じゃぁ何ていうのがいいのか言ってみろよ
0212nobodyさん04/12/04 21:33:44ID:2TD2cEy7
PHPのみのファイルをauさんとこの携帯電話でアクセスしたら、
表示されないんだけどそういう仕様ってことで桶?
0213nobodyさん04/12/04 21:37:34ID:???
全然ダメだね
0214nobodyさん04/12/04 21:49:06ID:???
>>212
( ・∀・)ノミ∩ くだらねぇーくだらねぇーくだらねぇーくだらねぇーくだらねぇー
0215nobodyさん04/12/04 22:14:12ID:???
>>212
auはプレーンテキストをtext/htmlで送るとエラーかえすよ。
021621204/12/04 22:24:34ID:2TD2cEy7
>215
リアルにありがとうございました。
0217nobodyさん04/12/04 22:48:17ID:???
>>211
ん?一つ賢くなっちゃったか?
0218nobodyさん04/12/04 22:55:54ID:???
>>217
ほらな、他に言いようねぇだろ?わざわざつまんねーことで揚げ足とってんじゃねーよガキ
0219nobodyさん04/12/04 22:56:55ID:???
まだCGIをスクリプトのことだと思ってる化石が生き残っていたとはw
さすがにちゃねらーでは淘汰されたと思ってた。
0220nobodyさん04/12/04 23:01:48ID:???
昔はそんなんでもフレームになってたよな。CGIスレでコーディングはどうだとか
CGIはインターフェイス仕様で〜みたいな定型レスも、えらい久しぶりに見た希ガス
0221nobodyさん04/12/04 23:06:01ID:???
「PerlでCGIを作る」と言っただけでなんで
「CGIをスクリプトのことだと思ってる」に繋がんの?

お前が言う普通の人は「PerlでCGIを作る」のことをなんて言うのかな?
0222nobodyさん04/12/04 23:09:28ID:???
> 他に言いようねぇ

・・・すごい、語彙力です・・・

>>220
突っ込む方も飽きたんじゃネーノ。Perl作るとか言われても好きにして下さいって感じだわ
0223nobodyさん04/12/04 23:12:31ID:???
>>222
Perl作るとかCGI作るはどう読んでも完全アウトだろ。
インタプリタ作ったりRFC書いてるならともかく。
0224nobodyさん04/12/04 23:18:41ID:???
スレ違いだけど、PerlやスクリプトやWebアプリのことをCGIって呼ぶ奴そんなに居るか?
上に慣用で使うって言ってる奴いるけど、超ローカルな話じゃないだろうな。
0225nobodyさん04/12/04 23:29:03ID:???
PerlもスクリプトもWebアプリもCGIと同義ではありません
0226nobodyさん04/12/04 23:35:02ID:???
>>224
確かにマにはおらんかも。しかし営業に出たら、ソースコードだろうがASPだろうが
UIだろうがApp鯖だろうが、ありとあらゆるシステムをまとめてC・G・I!C・G・I !と
呼んでくれる素敵なIT担当の方はいらっしゃいましたよ。

>>209
PHPとのつながりも含めてわかんねーです。
MacromediaパッケージってColdFusionスレくらいしかないんですよね。。
0227nobodyさん04/12/04 23:41:30ID:???
>>226
肩書きだけだろw
CGIを探していますとかCGIを設置するとかCGIが動きませんとか
マが言ってたら死ぬほど引くわ。ザリガニの後ずさりくらい引くわ
0228nobodyさん04/12/04 23:42:40ID:???
ああC・G・I!はクライアントの話か
よく読んでなかったスマソ
0229nobodyさん04/12/04 23:45:58ID:???

                 ↑ここまでJR
━―━―━ ━―━―━  ↓PHPの話題来い ━―━―━ ━―━―━
0230nobodyさん04/12/04 23:55:27ID:???
↑路線内に入るなデブ

>>224
うるせーな。昔はザラにいたんだよ。fjとかで外人に低脳ジャップの言語は非合理ですね(プとか言われたんだよ

>>226
変態ColdFuzonスレが一本あれば十分すぎる
0231nobodyさん04/12/04 23:59:14ID:???
fj.*に2コン乱入してくるガイジンは低脳な法則
0232nobodyさん04/12/05 00:13:01ID:???
みんなPrefork?
スレッドセーフオプション付きでコンパイルしてもApacheさんがいけずを言うので弱っています、、、。
0233nobodyさん04/12/05 00:21:24ID:???
>>232
apxs使わないと駄目なんじゃなかったけ。漏れは安全運転preforkなんでよく分からね。
0234nobodyさん04/12/05 00:24:24ID:???
何をまともな質問してんだよ。
そういうネタじゃないものは本家のMLを漁れ。
0235nobodyさん04/12/05 00:29:22ID:???
prefork・・・先・・・・・・割れ・・・
0236nobodyさん04/12/05 00:31:11ID:???
ラインクラフト一本かぶりすぎ
0237nobodyさん04/12/05 14:25:41ID:???
変数に文字列代入するときにperlのqq//に変わるような表現ってphpにあります?
ダブルクォートをいちいち\でメタ指定するの面倒で
0238nobodyさん04/12/05 14:31:49ID:???
$hoge='""""""""""""';
どうぞ
0239nobodyさん04/12/05 14:41:50ID:???
>>238
それだと

$hoge = '"$hogege"';
print $hoge

で

"$hogege"

になりますよねぇ? 「.」でちまちま繋げろということなのか・・・
0240nobodyさん04/12/05 14:52:10ID:???
> ダブルクォートをいちいち\でメタ指定するの面倒で
これが理由じゃねーの?
> perlの○○に変わるような○○ってphpにあります?
これいい加減飽きた。Perl使ってろって。

$hoge = <<<EOF
"$hogege"
EOF;

どうぞ
0241nobodyさん04/12/05 14:54:26ID:???
>>240
あーすんません言葉足らずで
やっぱperl使いますハイ
0242nobodyさん04/12/05 15:11:23ID:???
>>241
成長しねえな、お前。
0243nobodyさん04/12/05 15:38:25ID:???
>>242
貴様に言われる筋合いはない
失せろ
0244nobodyさん04/12/05 15:40:42ID:???
>>237
うはwwwwwww死ぬほどがいしゅつwwwwwwww
0245nobodyさん04/12/05 18:10:00ID:???
失せろってリアリで言ったら プ で終わりだよね
0246nobodyさん04/12/05 18:43:55ID:???
ていうか言わないだろ。恥ずかしい。
0247nobodyさん04/12/05 19:43:03ID:uod8F4//
どんとこい
0248nobodyさん04/12/05 19:47:55ID:HJws9fwU
「〜」って文字がIEでみると文字化けしちゃいます。
モジラだとちゃんと表示されるんだけど・・・。
なんでですかね?

文字コードはEUCに設定して、
winで開発してサーバはLinuxでやっとります。
PHPは4でやっとります。

どうか知恵をおかしください。
0249nobodyさん04/12/05 20:01:59ID:???
で、該当文字化け部分が「EUC」において「〜」を表すバイト列(s)と一致することを
確認済みなわけだよね?
025024804/12/05 20:08:41ID:HJws9fwU
>>249
ん?といいますと?
もうしわけないです。
知恵足らずでおっしゃる意味が
理解できませんでした。
0251nobodyさん04/12/06 18:12:09ID:lq9+7sVw
PHPのアクセスカウンターなんですが、自作を含めて配布されているどこのカウンターを使ってもファイルが壊れてしまいます。
なので今はCGIを使ってるんですが…

使いたいのは今日昨日総合のカウントが表示できるカウンターで、今現在排他制御は

$new = implode("|", array($now_time,$yesterday,$today,$allcount));
$fp = @fopen($log, "w") or die("異常終了");
@flock($fp, LOCK_EX) or die("異常終了");
fputs($fp, $new);
flock($fp,LOCK_UN);
fclose($fp);

こんな感じにしています。
モバイルサイト運営、アクセス数は10万/日程度です。

どうして、排他制御できていないのかわかりません。
PHPスクリプトを配布しているとこのスクリプトも参考にしてみたんですが、やっぱり駄目です。

誰か教えて下さい。
0252nobodyさん04/12/06 18:28:23ID:???
排他制御に失敗してるわけじゃないと思われ。
コード的にはstream_set_write_bufferやignore_user_abortを加えたり、
Tempファイルに書いてリネームするよう変更するとか手はあるけど、多分解決しない。
サポートに聞くのが早そう。
0253nobodyさん04/12/06 18:30:49ID:???
>>248
ブラウザで確認せず、フックしたHTTPレスポンスそのものを見て原因を考えれ。
0254nobodyさん04/12/06 21:46:10ID:u8RjuTKE
セッションの保存先をMySQLにしたライブラリが
どこかにあれば教えて下さい。
0255nobodyさん04/12/06 22:04:52ID:???
>254
公開ライブラリにするほどの物なのかと小一時間。。。
0256nobodyさん04/12/06 23:31:34ID:???
>>254
echo "hello world!!";
をライブラリにしないのと同じですよ・・
0257nobodyさん04/12/07 00:21:52ID:???
>>256
helloってほとんどの言語にライブラリがあるよ。
0258nobodyさん04/12/07 05:55:25ID:???
自分でリンク集作って、プチアンテナ(更新チェック)入れたい
そこで、リンクの自動更新チェックはどういう考え方?

ヘッダーのLast-Modifiedチェック?Content-Lengthチェック?
それともページ読みこんでファイルの大きさチェック?
■ このスレッドは過去ログ倉庫に格納されています