【PHP】質問スレッド Part5
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/09/11 14:15ID:FWA0CpdU■本家
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あたりにきっと誰かが……。
0730nobodyさん
02/11/12 22:19ID:???$fp=fopen("php://stdin", "r");
while(!feof($fp)){$buffer.=fread($fp, 4096);}
fclose($fp);
とかで直接吸い出そうとしたがphp://stdinが空っぽに見えるのだが。
もしかして$_POSTからじゃないと受け取れないの?鬱だ。
フォーム以外からもpostはあるだろうにのお。
0732nobodyさん
02/11/13 08:48ID:???STDINはすでにPHPが読み込んでるので空っぽです
$HTTP_RAW_POST_DATA
は使えませんか。
使えないときは、php.iniがいじれたら
always_populate_raw_post_data = Onに
0733問質
02/11/13 21:09ID:ldABWSGYif(!$foo) の「!」とかですでに躓いているのですが、
逝ってきたほうがよろしいですか?
0736質問です
02/11/13 23:12ID:???パーミッションが777のディレクトリの移動したいのですが
移動されたファイルのパーミッションが600になってしまいます
PHPでどうやって変更したらよいでしょうか?
systemコマンド以外で方法ありませんか?
0737nobodyさん
02/11/14 00:17ID:l0/zicwoforeach(@array){
($a,$b,$c)=split(/<>/);
}
といった
コードは
phpでは
foreach(@array as $value){
list($a,$b,$c)=preg_split("/<>/",$value);
}
でいいのでしょうか?
なんか違うような気がするんですが・・。
0739nobodyさん
02/11/14 08:26ID:wyuVakNT正規表現使わないんだったらexplodeの方が早い
0740nobodyさん
02/11/14 09:18ID:vniA+Llkfopen("file","a")
ってデータ飛ばないって本当なんですかね?
0741nobodyさん
02/11/14 09:44ID:/H/milPrASPのapplicationみたいなやつ。なんかサポートされていない
みたいなんだけどいい知恵ない?
やっぱファイルに書き込むしかない(w
0742nobodyさん
02/11/14 16:57ID:???レンタサーバのsafe mode on な関係で、CGI版PHPをUPしようとしていますが、
CGI版は、内蔵型PHPに比べ遅いとかありますか?
何か他に注意する問題とかありますか?
0743nobodyさん
02/11/14 17:33ID:l0/zicwoかなり遅いと思われ、
それするならperlと変わらん。
abでモジュール版PHPと普通のperlを比べたが
5倍ぐらい違う。
また、PHP アクセラレーターいれると
通常時とくらべて3倍速度が違う。
またCGI版PHPはCGI版perlより遅い、という話もあり
0744nobodyさん
02/11/14 17:37ID:l0/zicwoモジュール入れるべきじゃないかなー
アクセスが多いとCGI版では
プロセスがあがりすぎで
やってられないっていうのもある
0745nobodyさん
02/11/14 17:42ID:l0/zicwoperlで
@array = @array[sort {$array1[$b] <=> $array2[$a] or $array1[$b] <=> $array2[$a]}
0 .. $#array1];
っていうのは
PHPでどうかいたらいいんですか??
0746nobodyさん
02/11/14 18:02ID:???お返事thanx
バーチャル鯖だから、モジュール版をインストは無理と思われ。
というか、モジュール版が入っているのですが、safe mode onなのです。
しゃーないので、CGI版を入れるのです。
遅くてもしょうがないです (T.T)
0747nobodyさん
02/11/14 18:17ID:???0748nobodyさん
02/11/14 19:09ID:???動かしたいスクリプトがsafe mode onでは、動かないのです。
外部プログラム(多分C)を動かすため?
サブディレクトリも作ります。
0749nobodyさん
02/11/14 20:29ID:???ありがと。
調べた所.htaccessにphp_flag always_populate_raw_post_data Onとか書くと
使えるようになる最寄。やっぱ低レベルの処理も出来たほうが便利ね。
0750nobodyさん
02/11/14 21:08ID:???ローカルのマシーンRedhat Linux 7.2 で make した php を レンタルサーバ
(多分turbo)へFTPして動かそうと思ったら、
./php.cgi: /lib/libresolv.so.2: version `GLIBC_2.2' not found (required by ./php.cgi) ./php.cgi: /lib/libc.so.6: version `GLIBC_2.2' not found (required by ./php.cgi)
と怒られた。ローカルが glib 2.2 でサーバがglib 2.1.3 みたいです。
この場合、自分のところのglib を 2.1.3 に下げて make しなおしするしかないんですかねぇ?
それとも configure のオプションで対応できますか?( configure 見てみたけどなさそうな感じではあった。)
または、どこかにphpの各種バイナリがあるところはないでしょうか?
0751nobadyさん
02/11/14 21:27ID:itLwLG8ULinux用はRPMでの配布サイトでいっかしょしか知らない。ゴメソ。
0752nobodyさん
02/11/14 21:31ID:Kk7RsGj1される とどこの解説にもかかれているのですがうちの環境 Win2K&PHP4.2.2
だと$HTTP_POST_VARS[hoge]と配列からしか取り出せません
php.iniあたりを弄ればなんとかなるのでしょうか?
0753nobadyさん
02/11/14 21:50ID:itLwLG8U0754752
02/11/14 22:29ID:Kk7RsGj1ためらわずにやったらできますた、ありがとうございます
副作用がでるかもしれないのでしばらくは試用しますが・・・
0755nobodyさん
02/11/14 22:31ID:cSFACNwV$foo[$i] = $hoge.$i;
}
うぅん、こんな感じで作ったんだけど、
何故か$fooの配列になにも格納されない…
なんででしょう?
0756nobodyさん
02/11/14 22:47ID:???例をあげるとレスがつくかも知れん
0757nobodyさん
02/11/14 22:52ID:l0/zicwo$hoge.$iが妙に評価されてないか?
0758nobodyさん
02/11/14 22:54ID:l0/zicwo0759755
02/11/15 00:01ID:ZlqtGDCCようするに、$foo[0]に$hogeに代入されている文字列と、
0を結合したものを代入したいのです。
それをfor文を使って$foo[1]〜[12]も同じように
繰り返したいわけです…
0760nobodyさん
02/11/15 00:18ID:???12;34;56 a123456 123456z と言う文字列を作ろうと思うのですが
ログに 12;34;56<>a123456<>123456zと書き込んで読み出すのと
123456だけを書き込んで 3つに加工するのとでは
どちらがよい処理方法なのでしょうか?
0762nobodyさん
02/11/15 00:23ID:???誰かmailparse関数( http://jp.php.net/manual/ja/ref.mailparse.php )使ってる人いる?
いまいちよくわからないから参考になるページでもあると助かるんだけど。
0763755
02/11/15 07:02ID:fSn6fMud$year = sprintf("%4d",$today[year]);
$mon = $today[mon];
$nextyear = sprintf("%4d",$today[year]);
$nextyear++;
for($i=1;$i<=12;$i++){
if($mon>$i){
$link[$i] = $nextyear.sprintf("%02d",$i);
}else{
$link[$i] = $year.sprintf("%02d",$i);
}
}
といった感じで、リンクを作成するスクリプトなんです。
現在の日付を取得して、過ぎた月は「?次の西暦年+月」
現在の月と年内のそれ以降の月は「?今年の西暦年+月」
という風にしたいと思っているのですが…
0764755
02/11/15 07:26ID:fSn6fMud0765755
02/11/15 07:27ID:fSn6fMud0766nobodyさん
02/11/15 10:27ID:???$foo = array();
for($i=0;$i<=12;$i++){
$foo[$i] = $hoge;
$foo[$i] .= $i;
}
/* $foo[$i] = $hoge . $i;(半角スペースを間に入れる)でもOKかな? */
0768nobodyさん
02/11/15 17:14ID:mDnEDDpK0769nobodyさん
02/11/15 17:18ID:???0770nobodyさん
02/11/15 17:18ID:C04Zmy+e具体的に書くと、量の多いテキストデータだけを圧縮した別のムービークリップに別けて
おいて、後からその部分を随時差し替えたいのだけど。
テキストデータは掲示板みたいなもんなんで、書き込みがあるたびに内容を随時変更し
たんです。
mingじゃまだ圧縮形式はサポートしてないみたいだし・・・。
0772770
02/11/15 18:16ID:C04Zmy+eご返事ありがとう。
>gzwrite -- バイナリ対応の gz ファイル書き込み
うーん、無理じゃないかと思うんだけどできるの?
圧縮形式の仕様から調べにゃならんかな。
気が重いな、これは。
0773age
02/11/15 19:51ID:???3 5 11
のようにタブ区切りで入っているテキストファイルを読み出し
最初の数字を$one
次の数字を$two
その次の数字を$three
というように数字を変数に入れる方法を教えて頂きたいのですが、、。
0774nobodyさん
02/11/15 20:10ID:???公式マニュアルのsplitみれ。
0775PHP初心者
02/11/15 20:24ID:W2O2vLxrサンプルばかりでチンプンカンプンですヽ(`Д´)ノ ウワァァァン
一から覚えるには、どんな書籍がオススメでしょうか?
雑誌名教えていただけると嬉しいです。
ちなみに当方のスキルは「ショボイホムペ(HTML)」を作れるくらいのレベルです。
0776nobodyさん
02/11/15 21:04ID:???0779770
02/11/15 22:41ID:C04Zmy+eごめん、gzwriteが有効のようですね。
せっかくヒントもらったのに早とちりでした。
何とかその後、圧縮形式はzlibで次のフォーマットというところまで調べました。
・圧縮形式のswfのformat
3 bytes CWS
1 byte version number(06?)
4 byte The size of uncompressed SWF file.(Not just uncompressed block).
remain zlib stream
・通常のswfのformat
3 bytes FWS
1 byte version number(05?)
4 byte The size of SWF file.
remain data
圧縮形式のswfは9バイト目以降が通常のswfをzlibで圧縮して入れてあるというこ
とでいいのでしょうか。
あとは目的のデータがどんな形で収められてるかですね・・・。
しかし、この手のことを手っ取り早く調べるにはどうすりゃいいんだろ。
今は何でもgoogleで必死に調べてますけど・・・。
0780nobodyさん
02/11/15 23:45ID:tDKzSlcQPHP徹底攻略(通称マンモス本)あたりはどうでしょう?
わからなくてもとりあえず何か作ってみるのが近道かと。
で、質問。
複数のURLからデータを取得して成形、という処理をしたいのですが
foreach($url as $value){
$data = file($value);
〜いろいろ〜
}
みたいな処理方法だとひとつのURLからデータを取得し終わったあとで
ないと次のURLのデータが取得できず、非常に時間がかかってしまいます。
(データの取得元がかなり重いサイトなので)
同時に複数のURLからデータを取得するというような動作をさせる方法、
もしくは少しでもデータの取得が高速化できる方法はないでしょうか。
0781もん
02/11/16 01:35ID:PWRTZyjL戻ってきますが、
FROM:を設定しているのに、
戻ってきません。
なぜでしょう。
0782nobodyさん
02/11/16 06:46ID:???0783nobodyさん
02/11/16 06:55ID:???サーバの管理者に聞いてみれ。
メールログも見れるし、エラーメールも届いているはずだ(w
0784775
02/11/16 07:08ID:1/sWq2Gmサンクスです(≧∇≦)ノ
今日は本屋へ行く日なので探してみますね。
0785age
02/11/16 08:56ID:???$log = 'log.txt';
$data = fopen($log,"r+");
list($view,$click) = split( ",", $data, 2);
print $view;
fclose ($data);
で実行した時 Resource id #1
とポツンと表示されてしまいます。
どうやったら良いのでしょうか?
0786nobodyさん
02/11/16 09:18ID:6U1hYCr1二行目おかしくないか?fopenの返り値は
int
配列に一括代入するのは
fopen($log,"r");
$data=file($log);
したらできる
ちなみに
perlでは
@data=<log>;
って感じかな。
0788770
02/11/16 10:57ID:i0v/7za0ヒント下さった 771様、ありがとうございました。
0789786
02/11/16 12:12ID:6U1hYCr1では
$data = array();
と配列を定義してからやるとどうなるだろうか?
0790785
02/11/16 12:19ID:???ためしに
$data = fopen ($log,"r");
$data = file($log);
print $data;
exit;
print文でテキストファイルの中身を表示しようとしてるんですが
この時点ですでに「Array」としか表示されないんです。
$datas = array(A,B);
$view = $datas[0];
$click = $datas[1];
print ="最初の値は".$datas[0]."です";
とarrayをテキストファイルから読み込まずに、そのまま打つと
うまく表示されたんですが、テキストファイルから読むと「Array」しか
表示されないんです。
0791nobodyさん
02/11/16 12:38ID:???小一時間問い(ry
http://www.php.net/manual/ja/function.file.php
0793nobodyさん
02/11/16 13:16ID:???for($i = 0; $i < count($data); $i++) {
$tmp = split(',', $data[$i]);
echo "$tmp[0]\r\n";
}
0794nobodyさん
02/11/16 15:46ID:???ここを読めば分かるはず。
0795nobodyさん
02/11/16 15:54ID:???http://www.zdnet.co.jp/news/0211/01/nebt_06.html
0796PHPさん
02/11/16 19:10ID:???環境は、Win2k Apache1.3.26 PHP4 です。
$con = mysql_connect("localhost","root","******");
if ($con) {
mysql_select_db("dbdb",$MyLink);
$MyQuery = "SELECT ACCESS_CNT FROM dbdb";
$MyResult = mysql_query($MyQuery,$MyLink);
$MyRow = mysql_fetch_array($MyResult,MYSQL_ASSOC);
echo $MyRow[0];
mysql_free_result($MyResult);
$con = mysql_close($con);
}
テーブルには1レコード存在し、2522 が入っています。
本来なら 2522 が表示されるはずなのですが。。。
何か設定が足りないのでしょうか。
ちなみに、ApacheとPHPは正常に動作しています。
0797nobodyさん
02/11/16 19:17ID:???どこからそう判断したのか?
エラーメッセージがあるなら書けよ。
Warning: Access denied for user: 'root@localhost' (Using password: NO) in i:\internet\web\vip\mai-k\a.php on line 8
Warning: MySQL Connection Failed: Access denied for user: 'root@localhost' (Using password: NO) in i:\internet\web\vip\mai-k\a.php on line 8
Warning: Supplied argument is not a valid MySQL-Link resource in i:\internet\web\vip\mai-k\a.php on line 10
Warning: Supplied argument is not a valid MySQL-Link resource in i:\internet\web\vip\mai-k\a.php on line 12
Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 14
First Name:
Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 16
Last Name:
Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 18
Address:
Warning: Unable to jump to row 0 on MySQL result index 2 in i:\internet\web\vip\mai-k\a.php on line 20
Position:
0800nobodyさん
02/11/16 19:45ID:???0802nobodyさん
02/11/16 20:07ID:???Warning: Access denied for user: 'root@localhost' (Using password: NO)
の意味は調べたかい?
0804名無しさん@お腹いっぱい。
02/11/17 00:22ID:???そんなコードじゃmysqlに
どのデータベースの"dbdb"を使うのか
教えてあげられない
0805nobodyさん
02/11/17 05:10ID:???0806nobodyさん
02/11/17 12:42ID:YRaU2xF9つーか
@RANKING = $RANKING[
sort {$tmp1[$b] <=> $tmp1[$a] or $tmp2[$b] <=> $tmp2[$a]
}
0 .. $#tmp1];
ってなperlの部分をphpになおしたいんだが
だれか教えてくれないでしょうか?
ここで3日も困ってるっす。
0808nobodyさん
02/11/17 15:21ID:ZXiBJBMVソートする {
始めの条件(同じだったら偽になるので、次の条件へ)
次の条件 }
}
0からtmp1の最後まで];
要するに、優先順位がある2つの条件でソートして、配列にいれてるだけ。
0809nobodyさん
02/11/17 15:31ID:???htmlspecialchars()を使えばいいと思いましたが、スクリプト中に数十個以上あるため
全部をいちいちやってられないのですが・・・
各変数に勝手に代入されちゃう前に文字列をまとめて処理する方法はないですかね?
0810nobodyさん
02/11/17 15:34ID:???(・A・)イクナイ!! と思う。
0811nobodyさん
02/11/17 16:04ID:YRaU2xF9正直に申しますと
FFアドベンチャーがあまりに負荷が高いと書いてあるので
PHPにしようとがんばっているところです。
>>808
それをPHPで書く良い方法ないですか?
0812809
02/11/17 16:13ID:???おいおい、俺も作ってるんだけど・・・
$_POST = array_map("htmlspecialchars", $_POST);
これで良いのかな。さすが俺。
0813808
02/11/17 16:27ID:YRaU2xF9どのあたりよ?
こっちは250行目のあたりで
悩んでる。
それ以外は ほぼ完成してる
ここの部分ができれば、後はバクだしして おわりっす。
0814809
02/11/17 16:38ID:???俺はma-tiさんの0.47使ってるからな。
クッキー関連とかロック関連とかまだまだだが。
まあ、まだPHP歴3日だし。
配布するつもりはあるのかな?それなら俺作るのやめようかな・・・
0815808
02/11/17 17:30ID:YRaU2xF9公開できるような綺麗なものじゃない
スパゲティーだから
0.45と0.47って どう違うよ?
0816808
02/11/17 17:42ID:YRaU2xF9EBS お願い
0817809
02/11/17 17:48ID:???>ver.0.47: 2002年4月28日配布開始
>・ソースを最適化して75.2KB→63.1KBに成功!
>・若干早くなったと思います。本当に若干。。。気持ち程度。。。
つまりはあまり変わらないと思う。
俺は公開&配布予定だから、使うんだったら最新版のほうが良いし。
まあ、予定は未定だが。
EBSはプレイしたことないからよく知らん。
0818808
02/11/17 17:52ID:YRaU2xF9ソース公開しますわー
まだ 作りかけのでよいかい?
というか 手伝って
それか ほかに有名どころのゲームをPHPお願いしたい
yomiサーチでもOK
できれば ebs
0819809
02/11/17 18:01ID:???元々俺がPHP化しようとしてる理由は
『自分の改造しまくってるFFAが負荷やばいためPHP化しよう』と思ったが、
既にすごく汚くてとてもやる気がおきなかったため、
とりあえず軽量の原作版から作って
公開してそれから自分の改造したいように変えていこうって考えなわけ。
だからFFA以外は今のところする気はないな。設置してないし。
0820809
02/11/17 18:03ID:???0821nobodyさん
02/11/17 18:06ID:FpRG38IL++++FF ADVENTURE++++
http://pc.2ch.net/test/read.cgi/php/991910275/l50
0822808
02/11/17 18:06ID:YRaU2xF9無料HPを運営していて あまりにFFAとEBSの設置が多いので
負荷がすごくなり、他のユーザー様にご迷惑がかかるので
必要に迫られて作っています。
言わば逆の立場ですね。お互い。
で どうするよ?
0823809
02/11/17 18:13ID:???作りかけでもいいから送ってくれれば俺が作ってる奴も
送り返すよ。俺もランキングの部分はまだ出来てないけど(汗
0824nobodyさん
02/11/17 18:34ID:n7xO86Z7完成の暁には漏れに適価で売ってはくれまいか?
0825PHP初心者
02/11/17 19:18ID:yD7j6+V5皆さん、がんがって下さい(≧∇≦)ノ
0826808(さるる)
02/11/17 19:47ID:YRaU2xF9完成したら
http://cgi.aaacafe.ne.jp
ここで、簡単に設置できるようにする予定なので
がんばります
0827809
02/11/17 19:54ID:???FFAは改造して何ぼですからね。
FFA推奨委員会も寂れているようなので
どんどん推奨していきたいです。
0828nobodyさん
02/11/17 21:11ID:???それは知ってるよ……。
とりあえずPECLのmailparse拾ってきて入れてはある。
で、公式サイトmailparse関数下部のスクリプトを走らせたら
signal 11吐いてapacheの小プロセスが死ぬ。
コマンドラインから実行するとphpがcore吐いて死亡。
諦めるかな……。
0830nobodyさん
02/11/18 17:18ID:???関数名、クラス名、メソッド名の大文字小文字の区別をしないようなのですが、
これを区別させるようにする事は出来ないのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています