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

【PHP】下らねぇ質問はID出して書き込みやがれ 96

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/05/28(金) 16:33:44ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 95
http://pc11.2ch.net/test/read.cgi/php/1271636105/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0521nobodyさん2010/06/18(金) 00:27:56ID:???
>>520
なんでそんなことしてんの?
0522nobodyさん2010/06/18(金) 00:41:58ID:df2633Ti
http://www.scollabo.com/banban/php/apd_02.html
このサイトによると必要らしいので
0523nobodyさん2010/06/18(金) 00:49:38ID:???
windowsへのインストールなら、xamppでいいじゃん。
少なくともそこのサイトの通りやっても5系の入れられないし、
あなたがダウンロードしちゃったのはソースなので使えないです。
0524nobodyさん2010/06/18(金) 01:29:12ID:df2633Ti
ええっーマジですか…
回答ありがとうございます
0525nobodyさん2010/06/18(金) 01:57:21ID:???
>>523
残婦なんか勧めるなよ
あれは「分かってるヤツ」がほんの若干の手間を省くためのもの

>>524
どこにソースをダウンロードなんて書いてあんだよ
http://windows.php.net/download/
から
x86 Thread Safe
の Installer を落とせ
0526nobodyさん2010/06/18(金) 03:13:36ID:df2633Ti
>>525さん
インストーラーを落としましたサンクスです
インストールする時にother cgiを選んだんですがこれでもいいですよね?
あとインストールすればすぐにPHP使えますか?
0527nobodyさん2010/06/18(金) 03:33:58ID:feYzfmHO
すいません、質問です。

最近、PHPの勉強を始めたばかりなのですが。
XAMPPをインストール、テスト用の簡単なPHPも使用できていて、
動作には問題ないように思います。
mysqlは、utf8の文字コードを追加しています。
また、.htmlで、phpが動作するように、.htaccessを使用しています。

ウェブサイトを基本xhtmlでコーディングしていって、ヘッダーなどの部分を
PHPで共通化できればと思い、勉強を始めたのですが、いきなり文字化けに陥りました。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
これがソース内にあると、文字化けします。
逆に、なければ文字化けはしません。

これは、なぜなんでしょうか・・・

どなたか、おわかりになる方、ご教授してください><
0528nobodyさん2010/06/18(金) 03:56:02ID:???
>>526
ごめん オレには other cgi が何か分からん。
だいたい apache module みたいなんだと思う
君が cgi/fcgi を望んでるとは思えん

>>527
それぞれの文字コードを見直す
0529nobodyさん2010/06/18(金) 03:59:31ID:???
>>526
言い忘れたけど >>522 の内容は php4 を php5 に置き換えれば
そのまま使えるはず。
05305272010/06/18(金) 04:33:07ID:feYzfmHO
>>528
ありがとうございます。
php.iniを、もう1度みなおしていたら、UTF-8じゃない部分がありました。
単純なミスで質問してしまって、すいませんでした。

回答ありがとうございました!
0531nobodyさん2010/06/18(金) 07:32:29ID:???
>>520
phpに限らず、メジャーバージョンが異なるものの情報を鵜呑みにするのはやめたほうがいいよ
0532nobodyさん2010/06/18(金) 08:52:21ID:KlmzoK3k
echo $_SERVER["REMOTE_ADDR"];
は表示されるのですが、

echo $_SERVER["REMOTE_HOST"];
は表示されません。
これは何処の設定をいじくれば表示されるようになるんでしょうか?
0533nobodyさん2010/06/18(金) 09:18:11ID:???
>>525
またお前か。最後まで面倒みてやれよ。
0534nobodyさん2010/06/18(金) 14:04:34ID:J92h6I5e
>>532
http://nyx.pu1.net/practice/server_var/server_var2.php#sample6
0535nobodyさん2010/06/18(金) 14:43:06ID:PtT48P2n
もの凄いくだ質なんですが、、気になったので質問します。

MySQLのテーブル「user」の各フィールド名を
user_id|user_name|user_mail
のように、テーブル名を接頭辞にして付けています。

$sql = "SELECT * FROM user";
$res = mysql_query($sql);

みたいにしてSQL文を実行してmysql_fetch_arrayで登録値を取得出来るわけですが、
登録値を取得する時、どういう配列名にすればいいか悩みます。
これまでは
$user = mysql_fetch_array($res);

のように、テーブル名を配列にして代入していたのですが、
これを出力する時、 $user["user_name"]となるので、ややこしく感じます。

どうするのが一般的なかと疑問に感じ、質問させていただきました。
0536nobodyさん2010/06/18(金) 14:45:47ID:???
フィールド名のuser取ればいいじゃない。自分でもそう思ってるんでしょ?
05375352010/06/18(金) 14:53:14ID:PtT48P2n
いえ。それは思っていません。結合する時ややこしくなりますから。
0538nobodyさん2010/06/18(金) 14:59:35ID:J92h6I5e
僕は>>536の意見に賛成
0539nobodyさん2010/06/18(金) 15:11:06ID:???
RDBMSがなんのためにスキーマ、テーブル、カラムで空間を分けてるか考えたら
結合のときにカラムのエイリアスを付けなくていい
0540nobodyさん2010/06/18(金) 15:14:44ID:???
すまそ途中送信
RDBMSがなんのためにスキーマ、テーブル、カラムで空間を分けてるか考えたら
結合のときにカラムのエイリアスを付けなくていいという理由だけで
接頭辞を乱用すべきじゃないね
05415352010/06/18(金) 15:21:55ID:PtT48P2n
確かに接頭辞を付けると無駄にフィールド名が長くなるので
乱用すべきでないというのは分かります。

ただ、テーブル数が多くなってくると、やはり接頭辞を付けた方が
ソースが分かりやすいんです。WordPressやMTなんかも接頭辞を付けてますし。

で、>>536-540さんの意見を総合すると、
$user = mysql_fetch_array($res);
というようにテーブル名の配列に代入する方法が一般的なんですかね。
0542nobodyさん2010/06/18(金) 16:42:15ID:???
これ見てよ↓
http://livedoor.2.blogimg.jp/agomesu/imgs/4/f/4faec292.png
ばらまこうぜ!
0543nobodyさん2010/06/18(金) 18:19:48ID:df2633Ti
>>525さんのURLからPHP 5.3のインストーラーをDLして
インストールしたんですが
これって設定の変更とかせずにそのまますぐに使えますか?
0544nobodyさん2010/06/18(金) 18:20:53ID:???
>>525
呼んでるぞー
0545nobodyさん2010/06/18(金) 18:22:19ID:9ev+TnD6
これすぐ使えるぜ


http://itpro.nikkeibp.co.jp/article/COLUMN/20070507/270089/
bamcompileでスタンドアロンEXEアプリを作ろう - PHP TIPS:ITpro
0546nobodyさん2010/06/18(金) 18:25:10ID:UII6mL4g
APCを使おうと思ってさくらのレンタルサーバーに組み込んだんですが、
どうも上手く動作してないような気がします。

wwwフォルダ以下にある色んなphpやjpgなどを開いたら、
↓のapc.phpキャプチャ画像の2〜4番目あたりが変化しそうな気がするのですが、全く変わりません。
この状態だとキャッシュされているのが、その時開いたapc.phpだけという意味ですよね?

どこが悪いのかさっぱりです。
分かる方いましたらどうかよろしくお願いします。


【組込手順】
 ・本家からAPC.tgzダウンロード→解凍→サーバーにAPCフォルダとしてアップ
 ・cd APC
 ・phpize
 ・./configure --enable-apc
 ・make
 ・modulesにapc.soができたのを確認

【主なフォルダ/ファイル構成】
home
|
└myid
    |
   ├APC
    |  └modules
    |       └apc.so
    |
   └www
        └html/phpなど
0547nobodyさん2010/06/18(金) 18:25:32ID:9ev+TnD6
サーバー環境付きで動くフルセットはこれ使えよ。

XAMPP Windows版 1.7.3 51 MB 自己解凍型RAR アーカイブ

http://www.apachefriends.org/jp/xampp-windows.html#2671
05485462010/06/18(金) 18:26:25ID:UII6mL4g
【apc.php】
ttp://up.mugitya.com/img/Lv.1_up120571.jpg
ttp://up.mugitya.com/img/Lv.1_up120572.jpg
ttp://up.mugitya.com/img/Lv.1_up120573.jpg
ttp://up.mugitya.com/img/Lv.1_up120574.jpg

【phpinfo】
ttp://up.mugitya.com/img/Lv.1_up120575.jpg
ttp://up.mugitya.com/img/Lv.1_up120576.jpg
0549nobodyさん2010/06/18(金) 18:30:17ID:???
Linuxなら
apt-get install lamp-server とコマンドを打つだけで
Apache MySQL PHPが自動でインストールされるのに

Windowsは非常に面倒だな
0550nobodyさん2010/06/19(土) 05:25:01ID:9jWjEAKJ
PHPで4バイト整数のファイル入出力はどうやればいいですか。
0551nobodyさん2010/06/19(土) 05:41:28ID:???
fgets fputs
0552nobodyさん2010/06/19(土) 09:08:29ID:???
fread, fwrite
0553nobodyさん2010/06/19(土) 19:33:03ID:PoSyZtDI
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>
<form method="POST" action="">
<textarea name="replace" cols=20 rows=4></textarea>
<input type="submit" value="replace!!">
</form>
<?
if(isset($_POST["replace"])){
$before = $_POST["replace"];
echo $before;
echo mb_detect_encoding($before);

$after = str_replace("です", "でした", $before);

echo $after;
echo mb_detect_encoding($str)."<br>";
}

フォームで文字列置換をやりたいんだけど、うまくいきません。
置換前の文字列とその文字コード、置換後の文字列とその文字コードを表示させてますが、
「あいうえおです」みたいな日本語を入力しても、該当箇所が置換されないどころか文字列自体が表示されません。
しかも文字コードはどちらもSJISになっちゃいます。
どうしたらうまく置換できるのでしょうか。
0554nobodyさん2010/06/19(土) 19:39:59ID:???
>>553
問題を細かく切り分けてみそ
0555nobodyさん2010/06/19(土) 19:57:20ID:???
>>553
mb_internal_encoding("UTF-8");
0556nobodyさん2010/06/19(土) 19:58:59ID:9jWjEAKJ
パスの内部コードを取得する方法ありますか。
05575532010/06/19(土) 20:31:04ID:PoSyZtDI
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_http_output("UTF-8");
mb_internal_encoding("UTF-8");
ob_start("mb_output_handler");
?>
<META httpequiv="Content-Type" content="text/html;charset=UTF-8">
<form method="POST" action="">
<textarea name="replace" cols=20 rows=4></textarea>
<input type="submit" value="replace!!">
</form>
<?
if(isset($_POST["replace"])){
$before = $_POST["replace"];
echo $before;
echo mb_detect_encoding($before);
}

とりあえずPOSTされたデータを表示させることから解決してみようと
>>555のmb_internal_encoding("UTF-8");を追加し、metaタグも入れてみましたが、
FirefoxではPOSTされたデータはちゃんと表示され、文字コードもUTF-8と出るのですが、
IEでは日本語を入力した場合、POSTされたデータは表示されない上、文字コードもSJISと出てしまいます。

ヘッダーもUTF-8にしてるはずなのでPOSTされたデータはUTF-8だと思ったのですが・・・
ヘッダーの設定方法がおかしいのでしょうか?
0558nobodyさん2010/06/19(土) 21:36:37ID:???
var_dump($_POST);
してIEとFirefoxで比べてみたらいい
0559nobodyさん2010/06/19(土) 22:46:46ID:9jWjEAKJ
$n = 123456; を32bitのバイナリとしてファイルへ書き出すには、
int2bin($n) のように変換するしかないですか? 既存関数のみで可能ですか。
fread, fwriteだとテキストで123456が出力されると思うのですが。


function int2bin($x){ return sprintf("%c%c%c%c", $x&255, ($x>>8)&255, ($x>>16)&255, ($x>>24)&255 ); }
function bin2int($s){ return ord ($s)+(ord ($s[1])<<8)+(ord ($s[2])<<16)+(ord ($s[3])<<24); }
0560nobodyさん2010/06/19(土) 23:01:00ID:???
intval
0561nobodyさん2010/06/20(日) 01:20:59ID:twag0hRe
forでaaa aab aac ...aaz aba abb abc ...zzy zzzというように3文字の文字列を表示するにはどうしたらいいでしょうか?
0562nobodyさん2010/06/20(日) 01:43:30ID:???
for ($a='aaa'; $a!='aaaa'; $a++) echo $a.' ';
0563nobodyさん2010/06/20(日) 01:55:32ID:???
>>562
すごい。そんな技できるんですね。
ありがとうございました。
0564nobodyさん2010/06/20(日) 01:59:37ID:qnX6bksX
ベーシック認証のページにログインしてHTMLを取得するには
どうすればいいでしょうか?
例えば、URL: http://example.com/basic.htmlと言うベーシック認証の
ページがありID:foo / Passwd:barの場合
$ary = file0("http://example.com/basic.html");じゃ取得できません。
どうすればいいのでしょうか?
0565nobodyさん2010/06/20(日) 02:06:30ID:???
>>557
ob_start("mb_output_handler");
消したら動いたけど。 ie8/fx3.6
0566nobodyさん2010/06/20(日) 02:09:23ID:???
>>559
pack
unpack
0567nobodyさん2010/06/20(日) 02:10:51ID:???
>>564
Basic認証がかかったページにアクセスする方法 - PHPプロ!Q&A掲示板
http://www.phppro.jp/qa/212
0568nobodyさん2010/06/20(日) 02:23:15ID:???
>>546
apc.stat を off にしてphpソースを変更
実行して変更が反映されてなければ間違いなくキャッシュされてる

jpgのくだりはよく分からないけど
キャッシュされるのはphpのバイトコードだよ
パースの手間が無くなる分軽くなる
0569nobodyさん2010/06/20(日) 02:48:26ID:???
>>567
ありがとうございます。
0570nobodyさん2010/06/20(日) 09:28:26ID:???
>>557
http://hain.jp/index.php/tech-j/2007/02/13/p125
0571nobodyさん2010/06/20(日) 11:15:41ID:OE54gla8
Rubyスレで質問したところ、PHPスレで聞けとのことでしたので、ここで質問します

1.PHPのsystem()で.rbを実行するする
2.そのrbの中では色々な処理をする
3.処理が終わったらPHPにその処理結果を戻す
4.PHPでその結果を条件分岐か何かで判断をする
というようなWebページを作ろうとしています

これって可能ですか?
上2行は確認出来たのですが、結果をPHPに戻すのは無理なような気がします
どうですか?
0572nobodyさん2010/06/20(日) 11:37:34ID:???
できます。やり方は教えません。
0573nobodyさん2010/06/20(日) 12:10:32ID:???
Rubyで出力した内容がsystem()の2番目の引数に返るんじゃね?

と、Ruby知らなくてPHP中級な俺が言ってみる。
0574nobodyさん2010/06/20(日) 13:45:50ID:???
2番目に入るのは終了ステータス
標準出力をキャプチャしたかったら popen(), proc_open() などを使う
0575nobodyさん2010/06/20(日) 14:25:20ID:???
>>574
PHPならもっと便利な関数があるはずだろ。
0576nobodyさん2010/06/20(日) 14:56:32ID:Zg4Yd11e
みなさんが「このソースは読みやすい」と思うコーディングをしている
オープンソースのPHPシステムを教えて下さい
0577nobodyさん2010/06/20(日) 15:13:03ID:???
formから放り込んだ日本語をImageTTFTextで縦書きにしたいのですが、句読点やーがおかしな事になります。
正しく表示する方法はないのでしょうか?
0578nobodyさん2010/06/20(日) 17:03:38ID:???
>>562
これキモイw
0579nobodyさん2010/06/20(日) 17:31:57ID:???
>>576
有名どころなら何でも
>>577
>>1
0580nobodyさん2010/06/20(日) 17:43:38ID:7fNS8+df
$FileNameTMP = realpath($FileName);
$FileType = mime_content_type($FileNameTMP);
header("Content-Type:" .$FileType);
readfile($FileName);

こんな感じのソースを書いたのですが、IEだとブラウザでの表示ではなくて保存ダイアログが表示されるようになってしまいます。
Firefoxの場合は問題なく表示できます。
Firefoxも空のテキストファイルだと保存ダイアログが表示されるようになります。
画像ファイルやPDFファイルなどをブラウザで開ける様になる決方法は無いでしょうか?
0581nobodyさん2010/06/20(日) 17:59:44ID:???
header('Content-Disposition: inline; filename="example.pdf"');
header('Content-Type: application/pdf');
0582nobodyさん2010/06/20(日) 18:02:31ID:7fNS8+df
>>581
それやるとFirefoxでも問答無用で保存ダイアログが表示される。
やりたいのは>>580でも書いていますが保存ダイアログを出したいのではなくて
ブラウザ上で表示したい。
0583nobodyさん2010/06/20(日) 18:04:12ID:???
>>582
保存するなら >Content-Disposition: attachment
表示するなら >Content-Disposition: inline
0584nobodyさん2010/06/20(日) 18:04:41ID:???
>>579
失礼しました。
【OS名】CentOS5
【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
formから放り込んだ日本語をImageTTFTextで縦書きにしたいのですが、句読点やーがおかしな事になります。
正しく表示する方法はないのでしょうか?
過去ログでは縦書き専用フォントで・・・とかが見つかったのですが肝心の縦書き専用フォントがぐぐっても見つけられません。
0585nobodyさん2010/06/20(日) 18:22:53ID:7fNS8+df
>>581
すみませんでした。
inlineの部分を見落としていました。
IEだとbmpファイルはこの方法でも保存ダイアログが出てしまいます。
また空テキストファイルだとFirefoxだと保存ダイアログがでます。
IEでは空テキストファイルでは保存ダイアログはでません。
これらを解決する方法は無いでしょうか?
0586nobodyさん2010/06/20(日) 18:27:15ID:7fNS8+df
追加
空テキストファイルのMIMEを見ると
application/x-empty
となっています。
application/x-emptyを調べてみてもいまいちどういうときにできるMIMEなのかわかりません。
application/x-emptyをtext/plain変換してやらないと駄目って事ですかね?
0587nobodyさん2010/06/20(日) 19:43:42ID:???
たとえばapplication/zipをinlineで送られてもブラウザはどうしようもないだろ
mime-typeを適切に設定しろ
それだけだ
0588nobodyさん2010/06/20(日) 19:49:09ID:7fNS8+df
>>587
??????
0589nobodyさん2010/06/20(日) 20:02:32ID:???
>>584
ID出すことを忘れているようだけど、ともあれ、本題についてだけど、それは難しい。
フォントをいじってみてはどうか。
0590nobodyさん2010/06/20(日) 23:22:44ID:V/OxbjwX
filesize()は使わない方が良い。
他でオープンされていると0になるし、
値がキャッシュされるから実サイズと異なる値を返すことあり。頻繁な更新されている物だと。
0591nobodyさん2010/06/21(月) 00:35:22ID:???
>>584
ImageTTFTextって使ったことないけど
表示する文字が句読点かどうか調べて
句読点ならは座標をずらせばいいんじゃない?

ハイフンだったら縦棒(|など)に変換するとか。
0592nobodyさん2010/06/21(月) 00:59:52ID:oQjyj8CX
複数階層のmkdir_rなんですが。これだと日本語パスで失敗します。
\を含むため。どう直せばいいですか。

function mkdir_r( $path ) {
if(is_dir($path)) return;
$path = str_replace( '\\', '/', $path);
$parts = array_filter ( explode('/', $path), 'strlen' );
$s=""; foreach ($parts as $part) { $s.="$part/"; @mkdir($s); } }
05935922010/06/21(月) 01:12:43ID:oQjyj8CX
自己解決しました
05945922010/06/21(月) 01:34:09ID:oQjyj8CX
これね。

function mkdir_r( $t ) {
$s=array();
while( !is_dir($t) ) { $s[] = $t; $t=dirname($t); }
for( $n=count($s)-1; $n>=0; $n-- ) mkdir($s[$n]); }
0595nobodyさん2010/06/21(月) 01:43:11ID:???
>>594
そんな関数作らんでもmkdirにrecursiveオプションがあるんだからそれ使えばいいのに
0596nobodyさん2010/06/21(月) 12:33:30ID:oQjyj8CX
PHP4 PHP5に依存しないことが大事。
0597nobodyさん2010/06/21(月) 12:51:52ID:???
PHP4でのサンプル、mkdirのマニュアルページに載ってるけど、
pathinfoとかdirnameの日本語の不具合って直ってないよね?
http://bugs.php.net/bug.php?id=37738
0598nobodyさん2010/06/21(月) 18:06:11ID:oQjyj8CX
デストラクタの時に値が保存されないんですが。どうすれば値が保存されますか。

<?php
$a = new A();
$a->add();
$a->add();

class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( $this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; }
}
?>
0599nobodyさん2010/06/21(月) 18:16:36ID:???
>>591
「〜」の処理とか
> 座標をずらせばいいんじゃない?
これとか、多分素直にさせてくれないよ。

動くとわりと面白い系だから一度は試して遊ぶといいかも。
0600nobodyさん2010/06/21(月) 18:32:23ID:???
>>598
保存って具体的にどうしたいの?
0601nobodyさん2010/06/21(月) 18:35:41ID:oQjyj8CX
num=2 が出力したいんですが。
0602nobodyさん2010/06/21(月) 18:41:50ID:???
そのままコピペしてhoge.phpというファイルに
セーブして実行してみた。

% php hoge.php
num=2

出るじゃん。
0603nobodyさん2010/06/21(月) 18:42:55ID:oQjyj8CX
PHP4.2程度できる方法ありますか。
0604nobodyさん2010/06/21(月) 18:46:36ID:???
4系だと出来んな。
グローバルに渡すしか。
0605nobodyさん2010/06/21(月) 18:47:44ID:oQjyj8CX
外部変数にしたら出来るんですが。
これだとクラス変数と別に変数用意する手間が掛かって良くないです。
クラスの値が破壊、初期化されてからregister_shutdown_functionが起動すると思います。
回避する方法ないですか。PHP4です。



$Anum=0;
$a = new A();
$a->add();
$a->add();

class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; }
}
0606nobodyさん2010/06/21(月) 19:00:35ID:oQjyj8CX
グローバル変数とクラスAをまとめたクラス作ったら成功しました。これで生き残る。

<?php

$b = new B();
$b->add();
$b->add();


class B {
var $Anum=0;
var $a;
function B() { $this->a = new A(); }
function add() { $this->a->add(); } }


class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; } }

?>

0607nobodyさん2010/06/21(月) 19:09:33ID:???
PHP4系はオブジェクト指向まわりとかいろいろ
調子悪いので茨の道だぞ。
0608nobodyさん2010/06/21(月) 19:14:46ID:???
classBの $Anumと
classAの $Anum 別物じゃん。
結局BがAのインスタンスもってるだけで >>605と同じ・・・
0609nobodyさん2010/06/21(月) 19:16:50ID:???
PHP4環境ないから知らんけど
$a =& new A();
とかでしょどうせ。
0610nobodyさん2010/06/21(月) 19:27:13ID:oQjyj8CX
&付きでうまくいきました。有り無しの違いが分からない



<?php
$a = & new A(); $a->add();
$b = & new A(); $b->add(); $b->add();

class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( &$this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; } }

?>
0611nobodyさん2010/06/21(月) 19:29:54ID:???
&入れないとnew直後に別インスタンスにコピーされてしまう変態仕様だから。
PHP4 new演算子
とかでググれば出てくる。
0612nobodyさん2010/06/21(月) 19:30:42ID:oQjyj8CX
サンクス
0613nobodyさん2010/06/21(月) 19:34:20ID:???
PHP4はオブジェクトも値渡しだからな、よくはまる罠だった

>>598
>>609 + register_shutdown_function(array(&$this, '_A' ))
0614nobodyさん2010/06/21(月) 22:56:57ID:???
習い始めたときは既にPHP5の時代だった俺は運が良かったのか
0615nobodyさん2010/06/21(月) 23:23:53ID:oQjyj8CX
CURLのFTPアップロードで、
複数ファイルを持続接続でアップする方法ありますか。
毎回ログインする方法しか分かりません。
0616nobodyさん2010/06/21(月) 23:39:00ID:???
>>615
http://jp.php.net/manual/ja/function.curl-multi-exec.php
これが参考になるかな
0617nobodyさん2010/06/21(月) 23:46:41ID:oQjyj8CX
複数スレッドで動かせば、帯域を無駄なく使えて良いんですが。
PHP4だと>>616が使えないです。
FTPのログイン動作に3から10秒ほどかかるのでこの時間の転送量は0です。
ログイン省く方法無いですか。
0618nobodyさん2010/06/21(月) 23:58:15ID:???
なんでPHP5にする選択はしないの?鯖代なんて月数百円だろ。
0619nobodyさん2010/06/22(火) 02:55:15ID:???
よく分かんないけどFTPってそのまましゃべれないの?
0620nobodyさん2010/06/22(火) 03:50:07ID:???
二人としゃべらないといけないからちょっと面倒
■ このスレッドは過去ログ倉庫に格納されています