【PHP】下らねぇ質問はここに書き込みやがれpart15
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/01/14(土) 20:06:11ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは流れを見て970/980/990の誰かが建てれ
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
過去スレは>>2
FAQは>>3
0577nobodyさん
2006/01/28(土) 14:47:59ID:???思い通りに表示されれば問題なし。
エラーが出たら問題あり。
一応囲むのが普通とだけ言ってみる。
0578nobodyさん
2006/01/28(土) 14:49:34ID:mOSvPqom0579nobodyさん
2006/01/28(土) 14:55:06ID:???手元では問題なかったのですが、
特別なケースがあるのかなと思って・・・
今までは必要最低限でしか{ }を使わなかったですが
これからは基本的に囲むようにします
0580nobodyさん
2006/01/28(土) 14:55:48ID:???問題は無いつーか、問題が無くなるわな。
マニュアルによると、PHPの中の人が変数名を見つけ出す方法はこのようになっている。
> ドル記号($)を見付けるとパーサは、有効な変数名を形成することが可能な最長のトークンを取得します。
> 変数名の終りを明示的に指定したい場合は、変数名を波括弧で括って下さい。
0583nobodyさん
2006/01/28(土) 15:06:18ID:???if ($aaa) echo $string;
}
という条件付echoを作成しました
どんな関数名にしたらいいでしょうか
みなさんの知恵をください
沢山使うので一般的な名前にしたいのですが
0585nobodyさん
2006/01/28(土) 15:28:04ID:???0586nobodyさん
2006/01/28(土) 15:39:50ID:???どうすればいいんでしたっけ?
$_ENV か $ENV だったような気がしたのですが・・・。
具体的には、REQUEST_METHOD の値を知りたいのですが。
0588nobodyさん
2006/01/28(土) 17:05:51ID:EkhKiUPm0590nobodyさん
2006/01/28(土) 17:29:39ID:???$foo[$bar][$hoge['$fuga']]}
こんなのでも}の起点を正確に探知しなきゃいけないパーサカワイソス
0591nobodyさん
2006/01/28(土) 17:38:09ID:???./?a%5B%5D=1では受け取れなかったのです。
0593591
2006/01/28(土) 17:53:49ID:???失礼しました
0594nobodyさん
2006/01/28(土) 18:10:29ID:???http://pear.php.net/package/PhpDocumentor
0595nobodyさん
2006/01/28(土) 18:10:40ID:???例えばC++でDBを扱うクラスclass_dbを db.h と db.cpp に記述したとします。
db.hにクラス宣言、db.cppに定義を行いますよね。
さらに aaa.h、bbb.h、ccc.hでclass_dbのstatic関数を用いたいときは
これらの先頭にinclude<db.h>と書きますよね。
main.cpp
↓ ↓ ↓
aaa.h bbb.h ccc.h
↓ ↓ ↓
db.h
の感じでインクルードします。
このような事をPHPでやるとき、このまま書くと多重定義になるので
main.php
↓ ↓ ↓ ↓
aaa.php bbb.php ccc.php db.php
と書いたらうまくいきました。
ところがaaa.php、bbb.php、ccc.phpはdb.phpをインクルードしてないのに
db.phpで定義した関数が出てきてしまい、何か気持ち悪いです。
PHPはこういうもんなんだと納得すべきでしょうか。
それともいい方法があれば教えてください。
0597nobodyさん
2006/01/28(土) 21:07:05ID:xY1GiFbjcgiだったら
if ($user =~/UP\.Browser/) {
$user = $ENV{'HTTP_X_UP_SUBNO'};
}
でいけるみたいなんだが、PHPだとどう記述するのでしょうか?
0598nobodyさん
2006/01/28(土) 21:13:33ID:???ezwebの事は知らんが、そのコードを見た感じだと、
・$userは環境変数UserAgentから取得。
・$userがUP.Browserという文字から始まっていれば、ezwebだと解釈し、
・さらに環境変数HTTP_X_UP_SUBNOを取得すると、サブスクライバとやらが取得できる。
ってことじゃないの?
$_SERVER $_ENV配列あたりを覗けば希望するものが得られるかと。
0599nobodyさん
2006/01/28(土) 22:42:35ID:???CGIでなくPerlだったら、なんだろうが(PHPでもCGIは書けるぞ)
PHPで同じ内容は
if (preg_match('/UP\.Browser/', $user)) {
$user = $_SERVER['HTTP_X_UP_SUBNO'];
}
と書く。
0600nobodyさん
2006/01/28(土) 23:11:00ID:OGAeWMPnphpで、windowsで言う所の「ファイルの作成時刻」を得たいのですが、
statについて調べてみると
8 atime 最終アクセス時間 (Unix タイムスタンプ)
9 mtime 最終修正時間 (Unix タイムスタンプ)
10 ctime 最終変更時間 (Unix タイムスタンプ)
とのことで作成時刻は得られないのでしょうか。
それと、最終修正時間と最終変更時間って何の違いでしょう?
0601nobodyさん
2006/01/28(土) 23:14:56ID:xb4UVvPr携帯メールを指定アドレスに送る→ブログに更新
なんてのがありますが、具体的にどうやって実装すればいいでしょうか。
0602nobodyさん
2006/01/28(土) 23:20:06ID:???ctime - unix系で言うところのinodeの情報(所有者やグループ、パーミッション等)が変更された時。
0603nobodyさん
2006/01/28(土) 23:26:43ID:???マニュアルにも書かれているが、
filectime
>注意: 多くのUNIXファイルシステムでは、i-ノードが変更された際、つまり、パーミッション、所有者、グループ、
>または他のメタデータが書き込まれた際に、ファイルが変更されたとみなされます。
filemtime
>注意:この関数は、ファイルのブロックデータが書き込まれた時間を返します。これは、ファイルの内容が変更された際の時間です。
つまり、ファイルの内容が最後に更新された時間がfilemtime、
内容以外でもパーミッションなども含めて最後に更新された時間がfilectime
ということになる
ちなみに、fileatimeの所に
>いくつかのUNIXでは、ファイルのctimeはファイルの作成時間として参照されます。これは間違っています。
>多くのUNIXファイルシステムでは UNIXファイルの作成時間は存在しません。
とマニュアルには書かれている
0605nobodyさん
2006/01/28(土) 23:36:44ID:???0606600
2006/01/28(土) 23:37:28ID:???thxですた。∧||∧
0607600
2006/01/28(土) 23:38:21ID:???0608nobodyさん
2006/01/29(日) 02:12:39ID:???今、WindowsXPのコマンドプロンプト上で動かすスクリプトを書いています。
内容はディレクトリの中身を表示すると言う単純なものなのですが、下のソースのように
if(!is_dir($file))としているにもかかわらずフォルダ名まで表示されてしまいます。
この指定ならフォルダ名は表示されないと思うのですが間違っているのでしょうか?
PHPのバージョンは5.1.2です。
<?php
$dir = opendir("./foruda") or die("Directory is can not open !!");
while ($file = readdir($dir)) {
if(!is_dir($file)) {
echo "$file\n";
}
}
closedir($dir);
?>
0609608
2006/01/29(日) 02:15:11ID:???×echo "$file\n";
○echo "$file\r\n";
0610nobodyさん
2006/01/29(日) 02:20:23ID:???is_dir() は不完全。is_dir() のマニュアルのユーザノートにも書かれていたと思うが。
本当にディレクトリかどうか調べるなら
filetype() の結果を使うべき。
0612608
2006/01/29(日) 02:48:36ID:???clearstatcache()でOKですよね?
しかもfiletype()つかったらWarning: filetype(): Lstat failedって出てきた・・・
これはLstatが使えてないってことでしょうか?
0614nobodyさん
2006/01/29(日) 02:53:55ID:???http://www.phpmyfaq.de/
0615608
2006/01/29(日) 03:00:44ID:???0616nobodyさん
2006/01/29(日) 03:22:48ID:Kr5RpJOz<input type="submit" value="再生">
</form>
こういうタグがあった場合、再生と書かれたボタンを押したときに
どんな変数が送信されるんでしょうか?name="..."という名前がない場合は
どうなるのか疑問です
0617nobodyさん
2006/01/29(日) 03:48:31ID:???DBコネクションのオブジェクトでclassメンバの$dbconをclassの関数から呼ぶ場合
$this->dbcon ですが、dbconのメンバ関数を呼ぼうとして
$this->dbcon->getRow($sql); これがエラーになります。
どうしてですか?スマートな解決策はありますか?
今は毎回以下のようにしててマヌケな感じがします。
$db = $this->dbcon;
$db->getRow($sql)'
0618nobodyさん
2006/01/29(日) 03:53:53ID:???それはHTMLの仕様であってPHPの仕様ではないが。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13
0619608
2006/01/29(日) 04:38:15ID:???エラーが消せない('A`)
0620608
2006/01/29(日) 06:21:48ID:???filetype関数には絶対パスが必要なんですね!!
0621nobodyさん
2006/01/29(日) 09:17:52ID:a2S36AV1$file = fopen("./ua.dat","a");
flock($file,LOCK_EX);
$line = $_SERVER[?HTTP_USER_AGENT?]."\n";
flock($file,LOCK_UN);
fclose($file);
?>
UA(User Agent)をファイルに記録しようと思って、このようなスクリプトを作ったのですが…
次の条件を実現させるにはどうすれば良いでしょうか?
1.同一IPが二回目のアクセスした場合重複カウントしない
2.同じ名前のUAがある場合は次のように(ヒット数+UA)記録する:
12hit Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1; .NET CLR 1.1.4322; .NET CLR 2.0.40607)
5hit Mozilla/4.0 (UA偽装)
0623nobodyさん
2006/01/29(日) 10:12:02ID:a2S36AV1>2.同じUAを足していく
詳しく。
0624nobodyさん
2006/01/29(日) 10:20:59ID:???その前にファイルを読み出して UA とアクセス数のデータ取り出さなきゃ
重複チェックもアクセス数の計算もできないわけだけど
一気にハードルが上がっちまった気がするぞ
つかこれ記録できてる? できてないよね?
どうしてもリアルタイムで処理したいっつーんなら勉強するしかないが、
そうでないならそのまま append していってあとで集計すれば?
同一 IP のチェックなら cookie は要らないから
0625nobodyさん
2006/01/29(日) 12:57:03ID:???うちではこうやってる。
要件:
qmail1.03
PEAR
手順:
.qmailファイルを作成してphpスクリプトにリダイレクトする
例:
~blogpost/.qmail
------------------------------------------------
| /usr/local/bin/php ~blogpost/recieve.php
------------------------------------------------
するとrecieve.phpが起動し、メールの内容が(ヘッダも込みで)標準入力で受け取れるので、
Mail::mimeDecodeで解析する。このへんはPEARマニュアル見ればだいたいわかるかと。
あとは解析したデータを元に処理するだけ。
0626nobodyさん
2006/01/29(日) 13:01:15ID:???0627nobodyさん
2006/01/29(日) 13:34:35ID:???日本語版ってのは善意で訳してくれる人が居なければ存在すらしないものだからねぇ。
気付いた人や必要になった人がやればいいと思うよ。がんがれ>>626
0628nobodyさん
2006/01/29(日) 16:40:45ID:???買ってきた本のサンプルを動かしてみたのですが
ログイン画面にIDとPASSを入力してボタンを押しても
画面が変わらないままです。
サンプルの中は基本的にそのままです。
(MySQLの接続に関する設定は変更しましたが・・・)
以前、他の本のサンプルでも同じようなことがありました。
スレ違いかもしれませんが
もし原因がわかる方がいらっしゃったらおしえていただけないでしょうか
0629nobodyさん
2006/01/29(日) 16:45:54ID:???その本のサポートページがあるのならそこで聞くなり、
このスレで続けるなら肝になる部分を適切に掲示するなり。
0633nobodyさん
2006/01/30(月) 01:45:11ID:???0634nobodyさん
NGNG自分で「短い文字でもちゃんとSJIS→JISに変換できるように!!」
と入れた処理なんですが、後から見て何をやっているか
わからなくなってしまいました。
/* 文字数が少ないとエンコードに失敗するんだとさ。*/
$message = "あいうえお眉幅ABC".$message;
$body = mb_convert_encoding( $message , "JIS", "EUC-JP,UTF-8,SJIS,ASCII,JIS");
$body = substr ( $body , 3 + 14 + 3 + 3 );
�@なぜ「"あいうえお眉幅"」ではなくて「"あいうえお眉幅ABC"」なのか
�A最後の「3 + 14 + 3 + 3」の詳細
解読できる人がいたら助けてください。。。。
(http://pc8.2ch.net/test/read.cgi/php/1136276300/から誘導していただきました。
マルチではありません。。。。)
0636634
NGNGメールを送信するためにJISに変換、といった処理です。
(他にこうしたら効率的、では無くて、何でこういうことをしちゃったかを思いだしたいんです。。。)
0637nobodyさん
2006/01/30(月) 02:08:13ID:???ここのカウンターを使ってるのですが、
include()を使ってカウンターを挿入しているので
phpのページにしか利用できません。
で、ttp://www.kent-web.com/count/dream.html
みたいに <img src="スクリプト名">
で表示させたいと思ったのですが、上手くいきません。
少々改造しなきゃいけないと思うのですが、
どのように改造すればいいでしょうか?
0638634
NGNGhttp://72.14.203.104/search?q=cache:gRnlLcv7kCcJ:homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k12.htm+img+src+php+cgi&hl=ja&gl=jp&ct=clnk&cd=2&lr=lang_ja
0639637
2006/01/30(月) 02:24:24ID:???ありがとうございます、
そのページでは
fopenでrbを引数として利用していますが、
手元のリファレンスではbはwindowsのみと書いてあります。
これはlinuxでも使用可能でしょうか?
0640634
NGNGhttp://72.14.203.104/search?q=cache:tXKhe0RNfHsJ:manual.xwd.jp/function.fopen.html+php+fopen+%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA&hl=ja&gl=jp&ct=clnk&cd=4&lr=lang_ja
>Windows上では、\nを\r\nに透過的に変換する text-mode変換フラグ('t')が提供されます。
>それに対し、'b'を使って強制的にバイナリモードにすることもできます。 その場合データの変換はされません。
→windowsでは、場なりで開こうとすると勝手にデータの中身を書き換える機能があります。
>それに対し、'b'を使って強制的にバイナリモードにすることもできます。
→'b'を使うと、そのファイルそのままの状態で扱います。
0642nobodyさん
2006/01/30(月) 02:44:30ID:???0643634
NGNGさらに間違えた。
意訳
windowsではファイルを開こうとすると
ファイルの中身を勝手に書き換える機能があります。
そうされたくなかったから、'b'オプションをつけましょう。
なお、UNIXでは勝手に書き換える機能は無いので
指定しなくでもそのまま扱ってくれますが、
必要ないですが、念のため'b'をつけると確実です。
0644nobodyさん
2006/01/30(月) 08:02:12ID:???なんでお前さんが忘れるぐらいに思いつきでやってる処理を他人が判るんだよ。
>1. なぜ「"あいうえお眉幅"」ではなくて「"あいうえお眉幅ABC"」なのか
ISO-2022-JPにエンコードしても変化の無い文字で適当なのを入れたかったんじゃないの。
>2. 最後の「3 + 14 + 3 + 3」の詳細
3 = ESC $ B (エスケープシーケンス)
14 = あいうえお眉幅
3 = ESC ( B (エスケープシーケンス)
3 = ABC
でしょ。多分
0645nobodyさん
2006/01/30(月) 08:33:29ID:???ソースがSJISなら
// $message = "あいうえお眉幅ABC".$message;
$body = mb_convert_encoding( $message , "JIS", "SJIS");
// $body = substr ( $body , 3 + 14 + 3 + 3 );
でいい
0647nobodyさん
2006/01/30(月) 10:49:41ID:???自分のところで試してみたけど
$this->conn->getRow($sql);
みたいな記述は、ちゃんと動いたよ
答えがないのは、そういう問題がおきている人がいないせいじゃないかな
PHPのバージョンは 4.3.9
0648nobodyさん
2006/01/30(月) 11:49:21ID:PZnOPnCsすみません、質問です。
他のサーバのcsvファイルを参照したい場合は
どのようにすればいいのでしょうか?
0649nobodyさん
2006/01/30(月) 12:02:05ID:???PHPの設定次第だけどfile("http://相手サーバー/xxxx.csv");で参照できるかも。
駄目ならFTPで接続するとか、Web経由でCSVファイルをダウンロードするための
プログラムを相手サーバー上に用意するとか。
0650nobodyさん
2006/01/30(月) 13:03:45ID:???file("http://相手サーバー/xxxx.csv");
だと駄目でした。
FTP接続とか、別の方法を調べて試してみます。
0651nobodyさん
2006/01/30(月) 13:22:32ID:???駄目な理由が明らかじゃないからなんとも言えんが、
httpストリームのファイルオープンが使用制限されてるだけで
相手側ではHTTPで取れるようなところにちゃんと置いてあるなら
PEARのHTTP_Requestクラス使って取り込んだら?
0653nobodyさん
2006/01/30(月) 14:49:21ID:???環境
FC3
php5.1.2
Apache2
httpd.confに施した設定
AddType application/x-httpd-php .php の追加
他に何をすればこの問題は解決されるでしょうか。
ググってみたんですが解決出来ませんですた。
0654nobodyさん
2006/01/30(月) 14:53:17ID:???ありがとう御座います。
無知なもので、ヒントをいただけるだけで非常にありがたいです。
PEAR HTTP_Requestクラスについても調べてみます。
0655nobodyさん
2006/01/30(月) 15:00:22ID:???これは環境変数から取得するってことであってますか?
ぐぐったのですが、リモートのホスト名などの取得についてしか
見つかりませんでした
0658nobodyさん
2006/01/30(月) 15:14:42ID:???あんま覚えてないけどLoadModule行とかいらなかったっけ??
後axpsとか組み込み方で設定が違ったような気がしますが・・
0659nobodyさん
2006/01/30(月) 15:18:12ID:???おれは $_SERVER['HTTP_HOST'] が取れるならそれ、だめなら
$_SERVER['SERVER_NAME'] の二段構えにしてる
0660nobodyさん
2006/01/30(月) 15:19:55ID:???ググったググったじゃなくて、>>1 にも書いてあるが
ま ず マ ニ ュ ア ル 読 め
http://www.php.net/manual/ja/
0661nobodyさん
2006/01/30(月) 15:25:21ID:???0662nobodyさん
2006/01/30(月) 16:13:54ID:???0663nobodyさん
2006/01/30(月) 16:20:34ID:???参考にしたサイト
http://kamakura.cool.ne.jp/oppama/oswa/phpstart.html
0664nobodyさん
2006/01/30(月) 16:26:33ID:???マニュアルから自分の必要としている情報を見つけ出す能力も重要
なんだけどな
0666663
2006/01/30(月) 16:42:37ID:???fedora3です
http://www.php.net/manual/ja/install.unix.php
ここ読んだけどlibphp5.soが作られません。
0667nobodyさん
2006/01/30(月) 16:57:39ID:???0670nobodyさん
2006/01/30(月) 17:12:56ID:???基本的にUnix系はどれでも一緒じゃね?
ttp://pc8.2ch.net/test/read.cgi/linux/1137686775/l50
ttp://www.php.net/manual/ja/install.unix.php
0671nobodyさん
2006/01/30(月) 17:16:47ID:???findなんて使ったことねーなぁ。
俺はもっぱらlocate使ってるけど・・。
updatedbだったかDB更新してからもっかいやってみ
0672nobodyさん
2006/01/30(月) 17:29:07ID:???apacheがDSOに対応してるのかそこらへんだろ、ガンガレ
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1260172
0673nobodyさん
2006/01/30(月) 17:40:25ID:???・--with-apxs2=/usr/local/apache2/bin/apxsとか抜けてねぇか
・ビルド時に該当するエラー出てないか
・作られてるけど、探し切れてないだけではないか
0674nobodyさん
2006/01/30(月) 18:07:52ID:???あるんじゃないの?
野良ビルドなんてよほどの理由がない限りやんないけど。
0675nobodyさん
2006/01/30(月) 21:09:44ID:???FC3でパッケージ版ApacheにPHP5を入れようとしたら失敗した事がある
仕方ないからApacheのビルドから始めたらうまくいった
0676nobodyさん
2006/01/30(月) 21:13:14ID:iPn7Dq8bheaderで作成出来たのですが
読み込まれた際に2つのサイトを同時に開く方法は
ありませんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています