【php】part29【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/07/06(水) 09:57:54ID:0DucnAyH・新規質問の方は上げてください。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-10辺り
前スレでは、尾張の方でお世話になりました。
原因は唯のファイル名間違いでした。ダッセー俺OTZ
0166nobodyさん
2005/07/28(木) 11:25:58ID:???if($hoge)とif(isset($hoge))はどちらとも同じ動きをしますが、
どちらを使った方がよいのでしょうか?
0167nobodyさん
2005/07/28(木) 11:28:54ID:???0168nobodyさん
2005/07/28(木) 11:31:54ID:???if(isset($a)) echo 'isset';
if($a) echo 'boolean';
ナイス・ジョーク!!HAHAHA
0170nobodyさん
2005/07/28(木) 12:29:35ID:???$a = $b
}
if($a) $a = $b
上記のように{}で囲まないのと囲むのでは何か違いが有るんですか?
0171nobodyさん
2005/07/28(木) 13:06:53ID:3SB2huz60174nobodyさん
2005/07/28(木) 13:52:11ID:???別に単文に付けていても問題はないんで、わざわざ外すことはないんだけど。
この辺りは宗教論争になっちゃうので、どちらがいいとは言えないんだが、
ifの中にデバッグ目的でecho等を挿入するときに便利なので、単文でも
付けるようにしている。
0175nobodyさん
2005/07/28(木) 13:55:05ID:???if(〜)
if(〜)
method()
てな感じだと分かり辛いから、オイラは単文でも{ }を付けちゃうな。
0176nobodyさん
2005/07/28(木) 14:32:02ID:???そこらへんは宗教戦争にもなりかねんし。
俺はバグテストでecho()追加したりしたときに{}付け忘れると嫌なので前もって{}つけるな。
0178nobodyさん
2005/07/28(木) 16:25:36ID:3SB2huz6俺は威嚇テストでミサイル追加したりしたときにテポドン付け忘れると嫌なので前もってスカッドミサイルつけるな。
0179nobodyさん
2005/07/29(金) 10:38:18ID:XelBBjlr自分の環境でphpinfo()項目のdbaのSupported handlersで、使用できるDBAハンドラを確認した所、
cdb
cdb
make
db3
inifile
flatfile
が使用できるようでした。
例えばレンタルのサーバーで動かすことを考えた時、どのハンドラを使用するのが
汎用性の高いものとなるのでしょうか?そのあたりの事情に詳しい方いましたらご教授ください。
■PHP マニュアル DBA
http://php.s3.to/man/ref.dba.html
0180nobodyさん
2005/07/29(金) 17:29:32ID:???それともPHPスクリプトの使い回しの話かな?
dbmなんて、アプリ埋め込みにしか使わない代物だから、
ぶっちゃけ汎用性なんて必要ない気がするけど。
0181nobodyさん
2005/07/29(金) 19:04:09ID:XelBBjlrありがとうございます。
ハンドラによってはレンタルサーバーに入ってない物もあると思いまして、
なるべく多くのサーバーでサポートされているハンドラを使いたかった訳です。
しかしながら、dbm試してみたのですが、挙動がよく分からない部分が多々あり、
結局はdbmライクなファイルクラスを自作してしまいました。お騒がせしました。
0182nobodyさん
2005/07/30(土) 20:51:28ID:knyULaEMrequire_once("../temp.php");
ようにやって、上の階層のファイルを呼び出したいのですが
うまくいきませんでした。
phpではどのように記述すれば良いのでしょうか?
0183nobodyさん
2005/07/30(土) 22:23:58ID:???指定はそれで合ってる。
・include pathの設定でカレントディレクトリが含まれていない。
・該当ディレクトリへのアクセスがPHPの設定で禁止。
・喪前の勘違い。
0185↑
2005/07/30(土) 23:05:19ID:???もうできたからいいけど
0186nobodyさん
2005/07/30(土) 23:09:21ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0187nobodyさん
2005/07/30(土) 23:50:36ID:???0188nobodyさん
2005/07/31(日) 00:45:16ID:4+E/wjls[s2] fedora core3/utf-8/apache2/php5.0.4
ログファイル・html出力・スクリプトのファイル、共にeuc-jp
ログファイルの中身--------------------------
1,あ,111
2,か,222
3,sa,333
php.ini--------------------------------------
mbstring.detect_order:no value
mbstring.encoding_translation:Off
mbstring.func_overload:0
mbstring.http_input:auto
mbstring.http_output:EUC-JP
mbstring.internal_encoding:EUC-JP
mbstring.language:Japanese
mbstring.substitute_character:no value
[s1]では問題ないけど[s2]ではfgetcsv で ログファイルを開くと、分割は正常にできてるけど、日本語が表示されない。
|-----------
| 1 | | 111
|-----------
| 2 | | 222
|-----------
| 3 | sa | 333
|-----------
explodeで回避はできたんですが、これってバグですか?それとも設定とか("つけるとか)の問題ですか?
0189nobodyさん
2005/07/31(日) 01:10:36ID:ktRqZs9f「僕は馬鹿で貧乏です」ってアピールしてるようなもんじゃんW
0190nobodyさん
2005/07/31(日) 08:50:04ID:QgIzX2jSそもそもさ、なんでPHPなんて使ってんの?って、わざわざ書き込みしてんの?
「僕は馬鹿で低能です」ってアピールしてるようなもんじゃんW
0191nobodyさん
2005/07/31(日) 09:02:41ID:???同感なのだが、
”そもそもさ、「なんでPHPなんて使ってんの?って、わざわざ書き込みしてんの?」
って、わざわざ書き込みしてんの?”
とやりたくなった僕は馬鹿で低能かもしれません。
0192nobodyさん
2005/07/31(日) 09:26:49ID:???0194nobodyさん
2005/07/31(日) 12:01:01ID:???0195nobodyさん
2005/07/31(日) 12:20:40ID:???0196nobodyさん
2005/07/31(日) 13:13:52ID:kiEZ3GHA0198nobodyさん
2005/08/01(月) 08:38:24ID:???やっぱ本か?
0199nobodyさん
2005/08/01(月) 09:20:07ID:???0200nobodyさん
2005/08/01(月) 09:21:54ID:???0202nobodyさん
2005/08/01(月) 09:28:14ID:???0203nobodyさん
2005/08/01(月) 09:28:55ID:W+K0FGe80204nobodyさん
2005/08/01(月) 09:35:26ID:???本を買うより新しい情報を得られるネットの方が良い感じ。
php入門系のサイトは沢山あるしね。
0205nobodyさん
2005/08/01(月) 09:39:10ID:???0206nobodyさん
2005/08/01(月) 10:05:46ID:mZBBp/SZネットの情報っていい加減なことが多いから、
マニュアル以外、使い物になりません。
PHP は特にイタイサイトが多すぎ。
0208nobodyさん
2005/08/01(月) 10:13:48ID:???0209nobodyさん
2005/08/01(月) 10:15:16ID:???0210nobodyさん
2005/08/01(月) 10:28:43ID:???そうか?
俺の本購入暦
php4+mysql本>php5登場>php5+mysqlサンプル集購入>PEAR?SMARTY?>SMARTY本購入
みたいな。特にSMARTYは理解してないと最悪ソース読めないもん。
0211nobodyさん
2005/08/01(月) 10:33:07ID:???画面をずっと見てると目がしょぼしょぼする。
0212nobodyさん
2005/08/01(月) 11:13:25ID:???0213nobodyさん
2005/08/01(月) 11:26:06ID:???俺も初めはとっかかりとして初心者向けの本なりサイトなりを参考にしたよ。
0214nobodyさん
2005/08/01(月) 12:17:40ID:39k1+tgV管理人14歳
0215nobodyさん
2005/08/01(月) 12:34:28ID:Zfu0t8jaわざわざ宣伝しに来るな。
0216質問します
2005/08/01(月) 13:43:08ID:avDbJoF4画像アップ掲示板に来て書籍付属のソースコードで試しても文字化けして
つまづいてます。
アップ先のサーバ環境はApache/2.0.54 (FreeBSD) PHP/5.0.3です。
分かる方いましたら教えて頂けないでしょうか お願いします
これがソースコードのファイルです
http://ranobe.sakuratan.com/up/updata/up48980.zip
0217nobodyさん
2005/08/01(月) 14:13:54ID:ez5cOkguflock処理に関して
LOCK_EX,LOCK_SH,LOCK_UN はサポートされていれば TRUE しか返さない。
要求が通るまで処理は中断する。
LOCK_SH は LOCK_EX が要求された段階で新たな要求は通らなくなる。
LOCK_NBと第三引数(WouldBlock)
要求が通らなくても FALSE で制御を戻す。
この際、WouldBlock は FALSE だが、要求が通った段階で TRUE に変わる。
バッファリング
lock権解放前にファイル書込を終了せねばならない。
バッファサイズ0にする方法は1度のシステムコールで書込が終わる状況ならばパフォーマンスの低下を招かない。
一般的にはバッファリング有で fflush する方が楽。
fopen
flock が必要な状況で 'w','w+' は鬼門。lock権確立前にファイルサイズが0にされる。
'r','r+'は存在が確実なファイルで使う。file_existsで確認後に使うのはNG。その一瞬で過去の情報になる恐れあり。
rewind と fseek
SEEK_CUR,SEEK_END はlock権確立後に使わないと過去の情報になる恐れあり。
SEEK_SET,rewind は過去の情報でも問題ないのでlock権確立前で構わない。
flock と pid
lock権の管理にはpidが使われる。
同一pidの他スレッドが要求したlock権との区別はされない。
0218nobodyさん
2005/08/01(月) 14:19:28ID:W+K0FGe8「10日でおぼえるPHP入門教室」こんなのにします。
以上。
0219nobodyさん
2005/08/01(月) 14:37:34ID:???斜め読みだけど、03-03.phpの16行目と17行目はおかしいと思われ。
> $BBSRecord = array( date( "Y/m/d H:i:s" ), $name, $body, $FilePath );
> AppendCsvToFile( BBS_DATA, array( $BBSRecord ) );
arrayし杉。17行目の2つ目の引数は$BBSRecordだけでいいんじゃないかと。
漏れは動かしてないが、動かしたらちゃんとエラーメッセージでるんじゃないの?
0220216
2005/08/01(月) 14:48:07ID:???エラーメッセージなしでちゃんと動くんですが文字化けします
ブラウザの文字コードをeuc-jpとs-jisにしても両方とも
文字化けしてしまう現象です
0222nobodyさん
2005/08/01(月) 23:54:38ID:v8DZZv2UIE6でクッキー有効になってます。試しに他のPCからテストしても同じでした。
a.php
<?php
session_start();
echo ''.$_SESSION['test'].'<br><a href="b.php?a=aaa">test</a>';
b.php
<?php
session_start();
$_session['test'] .= $_GET['a'];
header("Location:a.php");
exit();
試したスクリプトです。?PHPSESSID=としてセッションIDをつけると期待どおりの動作をします。
どこかおかしいとこありましたらよろしくおねがいします
0223222
2005/08/02(火) 00:19:41ID:???php.iniのどのへんの設定をいじるといいんでしょう?
デフォルトの設定ではできないものでしょうか?
0224nobodyさん
2005/08/02(火) 00:20:19ID:???0225nobodyさん
2005/08/02(火) 00:23:58ID:???デフォルトでいけたと思うけど。。。
php.iniでsession.use_cookies=1となっていないのかな。
もしくはスクリプトで以下のように書いてみては。
ini_set('session.use_cookies', true);
session_start();
・・・
0226222
2005/08/02(火) 00:38:23ID:tr08P2cl>>225 試してみたのですがやはり同じでした。
その他cookieができない原因になりうることはあるでしょうか?
0227222
2005/08/02(火) 02:00:01ID:???レンタルサーバーで試したところ問題なくできてました。
サーバーの問題だと思うのですが、どこが悪いんでしょう?
自分でも調べますが、もし何か気づいた方いましたらよそ行くお願いします。
redhat7.3+apache1.3.23+php4.3です
0228nobodyさん
2005/08/02(火) 02:14:04ID:???ちゃんと保存されなくてめっさ悩んだ覚えが
0229222
2005/08/02(火) 02:20:20ID:???http://user.domain.com/a.php NG
http://192.168.0.10/~user/a.php ローカルIPでのアクセスok
http://sv1/~user/a.php ローカルのホスト名でのアクセスok
バーチャルドメインでのアクセスだけ不具合が出てます。
バーチャルドメインだとcookie発行するのに特別な設定が必要なのでしょうか?
0230222
2005/08/02(火) 02:31:43ID:???http://domain.com/~user/a.php はokです。
バーチャルドメインではなくバーチャルホストでした。
バーチャルホストのアクセス時に限って起こるっているみたいです。
PHPの話じゃなくなってきましたね。。
0231nobodyさん
2005/08/02(火) 02:36:18ID:???>fopen
> flock が必要な状況で 'w','w+' は鬼門。lock権確立前にファイルサイズが0にされる。
そうなの?そうすると、厳密には、w,w+はflockで使えないってこと?
0232nobodyさん
2005/08/02(火) 02:38:28ID:???そういや俺も、IEだと保存するけど、Firefoxだと保存しないってのがある。
Firefoxだけ有効期限が効かない。ブラウザを開いている間は大丈夫なんだが、
閉じると忘れる。調べりゃ出てきそうなんだが、調べもせずに放置中。
>>229
ノートンとかのセキュリティソフト関係で弾いちゃっているとか。
ネットワーク構成がわからないのだけど、ドメインを正引きしたときのIPアドレスと
LAN内でIPアドレスが食い違っているとかなんとか...
0233220
2005/08/02(火) 02:57:06ID:???javascriptでも試したのですが同じです。
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /home/user/public_html
ServerName user.domain.com
ErrorLog logs/user.domain.com-error_log
TransferLog logs/user.domain.com-access_log
</VirtualHost>
バーチャルホストの設定がいけないのですかね?
スレ違いの質問すみません。
0234nobodyさん
2005/08/02(火) 03:03:02ID:???0235nobodyさん
2005/08/02(火) 08:33:46ID:???DNSで許されないホスト名の場合、クッキーが保存されなかったような希ガス。
うろ覚えで申し訳ないが、ホスト名に-(ハイフン)があった時ダメだったような。。。
バーチャルホスト名を変更する権限があるのであれば、一度変えてテストしてみては?
0236nobodyさん
2005/08/02(火) 08:40:54ID:???0237235
2005/08/02(火) 08:57:58ID:???フォローサンクス。だからうろ覚えだって。。。(^^;
ちょっと調べてみたら、以下の資料にアンダーバーはダメって書いてあるね。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;275033
この辺りはブラウザが行う処理なんで、使用するブラウザを変えると挙動が変わるかもしれませぬ >>233
0238nobodyさん
2005/08/02(火) 10:13:07ID:???(かなりupdateされていて最新のものはどれか分からんけど、たぶん国際化ドメイン絡みのupdateだと思うのでパス)
>>233
テキストファイルにクッキー情報を保存するタイプのブラウザを使っているなら、その中を覗いてみたら?
0239nobodyさん
2005/08/02(火) 11:31:25ID:???0240nobodyさん
2005/08/02(火) 11:41:27ID:pJubjwcvセッション必須って別に構わないのかなぁ?
0241nobodyさん
2005/08/02(火) 11:43:06ID:???<domain> ::= <subdomain> | " "
<subdomain> ::= <label> | <subdomain> "." <label>
<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]
<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
<let-dig-hyp> ::= <let-dig> | "-"
<let-dig> ::= <letter> | <digit>
<letter> ::= any one of the 52 alphabetic characters A through Z in
upper case and a through z in lower case
<digit> ::= any one of the ten digits 0 through 9
0243217
2005/08/02(火) 12:37:37ID:???うーん、ttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/flock.2.html見ると
flock失敗の理由を示すみたいな。
ということは↓でflockできる環境か判断できるのか?
if (!flock($fp, LOCK_EX+LOCK_NB, &$wb) && !$wb)
(マルチスレッドISAPIとかはダメだけど)
>>231
厳密にはfopenの仕様。マニュアルに書いてあるし。
0245nobodyさん
2005/08/04(木) 17:02:51ID:ttes8CpAsendmailは別のサーバにあるものを使いたいのです。
その場合の php.ini の設定の書き方が分かりません。
どなたか教えてください。
0246nobodyさん
2005/08/04(木) 17:11:04ID:???fsockopen等を使ってSMTPをお喋りしましょう。
pearあたりに楽をできるライブラリがあるかもしれません。
0247nobodyさん
2005/08/04(木) 17:26:11ID:???別サーバーにリレーするようにした方が手っ取り早いのでは。
ところで別質問だけど、Windows版だけphp.iniのSMTPディレクティブが
使用できるのはなぜなんだろう。
Windows版だけSMTPを話す処理が組み込まれているから?
だとしても、UNIX版に組み込まれていないのはなぜだろう。
0248nobodyさん
2005/08/04(木) 17:41:54ID:???#ifdef PHP_WIN32
#include "win32/sendmail.h"
#endif
win32/sendmail.c
unix版に無い理由はシラネ
0250nobodyさん
2005/08/04(木) 18:42:30ID:r5xxfLUD(実質はフォームからの入力されたデータ。)
$buf = '3*3+3';
これで、$bufを12としたいのですが、方法はありますか?
0253247
2005/08/04(木) 19:34:54ID:???そのサーバーでsendmailを動かすならそのファイルでいいけど(ディレクトリ名までは知らない)
普通、CFやm4ツールでsendmail.cfを生成させるのでは?
もう何年もsendmail触っていないんで、具体的な設定までは覚えていないけど
「sendmail スマートホスト」辺りでググってみればサンプルはあるんぢゃないかな。
sendmailに拘らなければPostfixやqmailの方が楽でいいと思う。
0254247
2005/08/04(木) 20:09:17ID:???ありがとう。PHP5.0.4のソースを見てみたけど確かにそうなってるね。
あと php.iniでは sendmail_path ディレクティブは UNIX のみ、ってなってるけど
Windows 版でも有効みたいだね。
sendmail_path → SMTP ディレクティブの順に評価している模様。
実際に動くかどうかは知らないけど。
どちらにしても UNIX 版で SMTP の処理をしない理由は良く判らんな。
0255nobodyさん
2005/08/04(木) 20:39:55ID:???なんか適当すぎる処理で恥ずかしいから、、ちゃんとしたMTAが
一杯あるUNIXでは使わないみたいなことをその部分のコード記述者が
ソースにコメント書いてなかったっけ?そんな記憶がある。
あと誰かまともなコード寄稿して〜とかなんとか。
0256nobodyさん
2005/08/08(月) 14:15:03ID:Vwrrt9G3してるんですけど、こういうサイトってページにアクセスするたびに
各情報ごとにDBにアクセスして、毎回動的にページ作成
してるんでしょうか?
なんか激しく重くなってそうな気がするんですけど、そういうもの?
0257nobodyさん
2005/08/08(月) 14:35:19ID:???と適当に答えてみるテスト
0260nobodyさん
2005/08/08(月) 14:47:25ID:pO4uXVC7変更が頻繁じゃないやつはコンテンツキャッシュみたいなのだと思うけど。
例えば、ユーザーが更新しないと内容が変わらないブロックについては、
静的ファイルでも用意しとけばいいだろうし。
更新がある程度あるけど、色んなユーザーから参照されるやつも、
コンテンツキャッシュかもしんないね。
あと、クエリーキャッシュとかも使ってるかも。
全部推測だけど。
0261nobodyさん
2005/08/08(月) 14:59:30ID:???レスどうもです。
それぞれの情報単位で静的ファイルにして表示するときにくっつけるのが
いいのかなぁ。
で、更新頻度の高いものだけ毎回DBからデータをとってくると。
ユーザごとにページ内容がかわるのでキャッシュの方法がイマイチ
イメージできないっす('A`)
0262nobodyさん
2005/08/08(月) 15:09:39ID:???■ このスレッドは過去ログ倉庫に格納されています