トップページphp
732コメント231KB

【PHP】質問スレッド Part9

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/07/12 03:18ID:???
■本家
 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-3ぐらい
0023nobodyさん03/07/14 06:24ID:???
>>22
これって著作権違反じゃね?
0024nobodyさん03/07/14 08:39ID:TRctJwf0
なんとかPHPマヌアルが読める人はこのスレで、
読み方も知らない人はこの↓スレで質問汁っていう住み分け?
http://pc2.2ch.net/test/read.cgi/php/1055280252/
0025nobodyさん03/07/14 14:53ID:???
>>23
答えられないからゴタクを言うのかね
0026nobodyさん03/07/14 17:12ID:???
>>22
phpのバージョンや関数のせいでは無い。
アルゴリズムというか処理内容が間違ってる。
でもやっぱり>>23だよね。
0027nobodyさん03/07/14 20:23ID:???
>>26
スマン、22じゃないけどどこが悪いのか判らないよ
今後のためにちょっと解説してよ
0028nobodyさん03/07/14 21:15ID:???
ニュースにリンクを貼ったら著作権違反だと ? プッ
0029nobodyさん03/07/14 21:37ID:???
>>28
リンクと無断転載の区別がつかないのか?

>>22の下の方に4.3.2用スクリプトがあるが・・・
こんなスクリプト書くやついるのか(プ
00302603/07/15 00:14ID:???
今すっげーブルーだ...

>>22を見てすぐに、yahooのHTMLが変わったんじゃないの?と思って、
htmlの中をトピックスで検索したのだが、そのときに topic で検索してた。
phpスクリプトの方を見ても問題無さそうだったので >>26のように書いたが、
今あらためて見てみたら topix だたーよ。
すまんこ >>22,27
0031nobodyさん03/07/15 00:36ID:???
>>29
お前ならもっとすばらしいソースで仕上げるのか
と煽ったら乗ってくるか ?
0032nobodyさん03/07/15 01:53ID:???
http://www.aogaku.org/
「青学WEB」。自称ベンチャー。これ以外にもリンク先見るとお遊びベンチャーで頑張ってる。

管理人(こいつのプロフにも注目)が自演の限りを尽くしてあちこちの青学系掲示板にリンク、
そして自画自賛。「あなたに青学WEB以上の非公認青学ポータルを制作して運営していく
実力があるとでも言うのでしょうか。もしくはそれ以上に多くの人を動かすカリスマ性でもあるのですか?」
など。
0033山崎 渉03/07/15 11:05ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0034nobodyさん03/07/15 14:02ID:PUDPLW9q
アゲ
0035nobodyさん03/07/15 17:09ID:???
高機能なフォームメールってないですか?
perlならいっぱいあるんでつが・・・。
0036nobodyさん03/07/15 17:25ID:???
phpでmsnメッセやYahooメッセンジャークライアントって
出来ないですかね…
0037nobodyさん03/07/15 17:37ID:???
もう夏になったってことか
0038nobodyさん03/07/15 19:04ID:/HlfTkea
>>35
あるよ

>>36
できるよ
0039nobodyさん03/07/16 23:29ID:ar3vJSY5
所有者がapacheの(PHPで自動作成)のフォルダに
copy()でファイルをコピーしようとしましたができません。
どうすればできるようになるでしょうか?
0040nobodyさん03/07/17 07:03ID:???
も少し、具体的に。
0041nobodyさん03/07/17 07:52ID:???
>>40
横レスだが、mkdirで作ったディレクトリdirに、
copy("file", "./dir/file");
ってことじゃないかな?

「できません」って… エラー内容を書けっって>>39
0042nobodyさん03/07/17 07:54ID:???
>>39
多分permission denied
0043nobodyさん03/07/17 08:14ID:???
parse errorだったらコロヌ!
0044nobodyさん03/07/17 16:08ID:???
SJIS の機種依存文字、例えば○の中に 1 だったら (1) みたいに、
(株) や XI に変換するライブラリを知りませんか?Perl でも可です。
0045nobodyさん03/07/17 19:44ID:???
>>44
つくりゃいいじゃん。
00464403/07/17 22:21ID:???
最悪作るさ。でも使うほうが楽だからね。やっぱないのかな?
0047nobodyさん03/07/17 22:43ID:???
>>44
スクリプトへのリンク込みで、昔php user-ML
に流れたような気がする。
簡単な辞書データなら、折れも持ってるけど
辞書だけで良いなら最近のi-mode絵文字も
textの置き換える辞書を誰か公開してると思う
0048nobodyさん03/07/17 23:00ID:???
i-mode 絵文字に関しては C で実装するしかねーのかー 単純作業めんどいいー という悲鳴が IRC で流れたので現状無さそう。
PECL で PEAR に入れてくれると神です。

# 私は C も文字コードも突っ込んだ知識無いので別方面で貢献頑張るって事で (_ _)
0049nobodyさん03/07/18 04:01ID:EPpruuFu
>>44
その程度なら探すより作るほうが楽じゃないか?
0050あぼーんNGNG
あぼーん
0051あぼーんNGNG
あぼーん
0052あぼーんNGNG
あぼーん
0053nobodyさん03/07/18 09:31ID:???
フェッチのためのサイト
http://www.php.net/manual/ja/function.pg-fetch-all.php
0054nobodyさん03/07/18 13:01ID:Y7RkANYh
>>53
はいはい、面白いね。ハハハ
0055nobodyさん03/07/18 13:33ID:/3BrjQgF
初歩的な質問ですみません。
例えば変数$test[1]があるときに
別の変数$A=1;を使って上記の変数を表したいのですが
どうしたらいいのでしょうか?

$test[$A]みたいなかんじで・・
0056nobodyさん03/07/18 13:46ID:???
>>55
>$test[$A]みたいなかんじで・・

それで良いじゃん。
0057nobodyさん03/07/18 14:07ID:???
>>55
$A = \$test[1];
0058nobodyさん03/07/18 14:10ID:???
E_ALL 環境での質問です。

for ($month = 1; $month <= 12; $month++) {
$log[$month] = myfunc($month);
}

を実行すると $log[1] 〜 $log[12] は定義されていません、と言われます。

for 文の次に

if (!isset($log[$month]) $log[$month] = 0;

と書けばいいのですがまどろっこしいです。
もっとスマートな方法はありませんか?
0059nobodyさん03/07/18 14:15ID:???
>>58
for( $month = 1; $month <= 12; $month++ ){
$log[$month] = ( !isset( $log[$month] ) ? 0 : myfunc( $month ) );
}
関数が使えるかは調べてないです。すまそ。
00605803/07/18 14:39ID:???
>>59
ふんが。関数も使えました。ありがとうございます。
# やぱり isset() しないといけないんですね。
# $log[*] = ''; とかしたら全配列初期化できれると嬉しいなぁ。
00615903/07/18 15:33ID:???
>>60
いまだと変数の特定値を用いた初期化は array_fill
を使わないと駄目ですよね。
$log = array_fill( 0, 12, 0 );
って感じで。
00625803/07/18 15:41ID:???
>>61
ぎゃーす。重ね重ねありがとうございます。
array_fill() なんてあるのか。
ttp://www.php.net/manual/ja/function.array-change-key-case.php
横の配列関係一覧の関数を調べました。いろいろあるんですね。
end() っていいですね。今まで count($array) - 1 が end() だけでできる。

何度も申し訳ないですが $log['total'] のように
ハッシュの場合はやはり isset() によるチェックしかないですよね?
00635803/07/18 15:43ID:???
質問ばかりで申し訳ないです。E_ALL で書かれた PHP ってないですか。
それを見て勉強しますので。
0064nobodyさん03/07/18 15:48ID:bptTHfv5
PHP+MySQLで検索するシステムを作っているいるのですが、
途中すごく重いSQL処理を投げて、時間がかかって、結果が返ってこずに、
ユーザ側がページを閉じてしまうことがあります。その間は、MySQLが使えなくなって
しまうのですが、ユーザがページを閉じてしまった段階で、SQLの実行を中止する方法は
ないでしょうか
0065nobodyさん03/07/18 16:01ID:???
>>64
よーわからんが、セッションの監視をしておいて、切れたら終了とか。
0066nobodyさん03/07/18 18:29ID:???
>>59
なんかよーわからんのですが

foreach ($array as $key => $value)
{
if (empty($log[$key]))
{
// 処理
}
}

じゃダメなのかな〜と。array_keys で引っ張るとか。 php way の選択肢はいっぱいありますぜ〜
0067nobodyさん03/07/18 18:32ID:???
>>64
なんかよーわからんのですが

1. 別スクリプトに渡す
2. SQL や DB を見直す
0068nobodyさん03/07/18 18:53ID:???
>>62
何が言いたいのかよくわからんでつ。これ?
http://www.blueshoes.org/en/developer/php_cheat_sheet/?bcRun=1&js=0

PHP マニュアル読みまくれ&見方を覚えろと言いたい。
PHP でも何でも人にヒントや助言を求めるなら発展はあるが答聞いて目の前の問題やっつけているウチは…
自分でかけた時間の分しか上達しないよ (´・ω・`)
0069nobodyさん03/07/18 19:41ID:/3BrjQgF
onclick="location='test.php'" を使って
別ページにセッションを渡したいんですが
できますでしょうか?
0070あぼーんNGNG
あぼーん
0071nobodyさん03/07/18 20:01ID:???
>>69
セッションに Javascript によるページ遷移は関係ない。

何故自分で試してからどういう結果を期待し実際はどうなって何が問題と考えるのか、を書かないのかと小一時間問い詰、、、

 も う ダ メ ぽ 

答えるのに疲れた。さよなら。
0072nobodyさん03/07/18 20:39ID:???
PHPでの質問では無いかも知れませんが
たまに「AAAA.html?i=384724」というURLを見かけますが
これはどういうことでしょうか?
htmlに渡せるなんて聞いたことありませんが・・・
0073nobodyさん03/07/18 21:05ID:???
>>072 アクセスログに残すためだよ。
例えば 4 つのメルマガに広告出すときは
i=1, i=2,... とかして識別するの。
0074nobodyさん03/07/18 21:06ID:???
>>72
ついこないだも出たけれどそれはタダのGET Method。
HTTPを勉強してから出直せ。
ついでに言うとhtml文書に渡しているわけじゃない。
これ以上はスレ違いだから終了
0075sage03/07/18 23:42ID:K8fq0PL5
>>64
PHPのMySQL関数では、SQLクエリの
中断はそもそもできないし
0076あぼーんNGNG
あぼーん
0077nobodyさん03/07/19 02:37ID:F49ywpeQ
Cの__LINE__みたいなマクロって存在しますか?(現在のスクリプト内の行No)
自作のエラー用の関数で、何処で起きたか表示させたいのです

初心者スレで聞いたんですけど、レスが貰えなかったので、こちらに書きます。(更にスレ違いだった。
0078nobodyさん03/07/19 03:24ID:???
>>77
print __FILE__ . __LINE__ ;
0079 ◆AngelH/kMI 03/07/19 12:21ID:???
ぐあ・・・。
またphp4.5.0devがfreebsdでmake出来なくなってる・・・。

/home/usr/local/src/php4-200307190130/ext/standard/filestat.c(.text+0xdd9):
undefined reference to `php_check_open_basedir_ex'
*** Error code 1

Stop in /home/usr/local/src/php4-200307190130.
00806903/07/19 13:31ID:XiYA7SH2
>>71
すいません。
自分では試したんですが
スクリプトで飛ぶとセッションが消えてしまってるんです。
普通はいけると思うんですがどうしてなんでしょうか?
0081nobodyさん03/07/19 13:51ID:???
header("Content-Disposition: attachment; filename=\"".basename($path_file)."\"");
header ("Content-Transfer-Encoding: binary");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream");
if (!readfile($path_file))
{
die("Cannot read the file(".$path_file.")");
}

という感じで、フォームで飛んだ先のhoge.phpでファイルをダウンロードさせているのですが、このヘッダーを出力させた後で

「○○○○を送信しました」

という結果表示を行いたいのですが
header出力の後にHTMLを出力しようとしてもダメですよね?

なにかうまい方法があったら教えてください。
0082nobodyさん03/07/19 13:52ID:???
…続き

何かうまいほうほうがったら教えてください。
0083nobodyさん03/07/19 13:58ID:???
>>81
まずは2ちゃんブラウザを導入しましょう
0084あぼーんNGNG
あぼーん
0085nobodyさん03/07/19 16:21ID:???
>>80
おまいさんの普通が世間一般で言う普通でないから逝けない訳で。
セッションについて勉強し直すべきだな。
008603/07/19 21:30ID:RWfJimTN
>>81
header("Location: URL");
「送信しました」と出力するページ (URL) へリダイレクトを指定して
おけばよろし。
--
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
0087あぼーんNGNG
あぼーん
0088あぼーんNGNG
あぼーん
0089nobodyさん03/07/19 21:46ID:???
↑こういう輩こそ親ともども打ち首にすべきだよなぁ。
0090nobodyさん03/07/19 21:47ID:???
↑児童わいせつはうらや・・・許せん
0091nobodyさん03/07/19 21:47ID:???
スレ違い。スルーしる!!
0092nobodyさん03/07/19 21:57ID:???
88みたいな書き込みをする奴こそ死刑にして欲しい。
0093nobodyさん03/07/19 22:04ID:???

 ス ル ー し る !!

価値観様々なんだからそういう話始めたらスレ埋まる。
0094nobodyさん03/07/19 22:11ID:???
ほう、サーバーサイドプログラミングですか
0095nobodyさん03/07/19 22:20ID:???
>>86

>header("Location: URL");
>「送信しました」と出力するページ (URL) へリダイレクトを指定して
>おけばよろし。

ありがとっ!

しかし、これを入れたら今度はファイルが送信されなくなった。
確かheader出力の前にはいかなる出力もNGだったような気が…。

あと、ファイル出力に使ったSQLの結果をそのまま
「送信しました」…の結果リストに出力したいので
(DBから複数ファイル名を抽出して、実ファイルをtmpにコピー
それをLHaで圧縮して送信してまつ)
できれば同一ファイル内で処理したいのだが
やっぱ、無理かなぁ。
0096nobodyさん03/07/19 22:30ID:???
getで値を渡せばいいじゃん
0097nobodyさん03/07/19 22:38ID:???
>>96
そのgetはどうやって渡せばいいのでしょう?(泣
それができればheaderでファイル送信後のHTML表示もできるような…
0098nobodyさん03/07/19 22:49ID:???
locationで指定したurlに ?unko=kusai で渡せたような
0099nobodyさん03/07/19 22:59ID:???
日立のIC35L060AVV207を
http://www.century.co.jp/products/asc35u2.html
に入れるか
http://www.century.co.jp/products/cac35u2kit.html
迷っています。価格は安いに越した事は有りません。持ち運びも楽な方がいいです。
どっちがいいと思われますか
0100nobodyさん03/07/19 23:12ID:???
>>98

う〜ん、すばやいレスありがとうございます。

>locationで指定したurlに ?unko=kusai で渡せたような

そうですね。これはわかります。
ただ、ちょっと元に戻って、
header("Location: URL"); は、
      :
      :
header("Content-Type: application/octet-stream");
readfile($path_file)
とは同居できなさそうなのですが、どうなのでしょう?
確かに、ファイル送信ているhoge.phpから、
結果表示する別スクリプトに飛ばせれば、それで十分目的を果たすのですが
headerでのファイル送信後に、もう一度別の出力をする…ということが出来なさそうなので、悩んでしまってます。
0101nobodyさん03/07/19 23:23ID:HZ7krHsg
PHPでソケット通信したいんですが、linux同士だとうまくいきますが、
Windowsとやるとうまくいきません。PHPはlinuxで動かしたいです
0102nobodyさん03/07/19 23:29ID:P7FRYU3z
【スレ紹介】なんちゃって思想が爆発するとき
http://etc.2ch.net/test/read.cgi/intro/1058619903/
010303/07/20 00:52ID:hbcbfQ42
>>100
Header("Location: URL"); を書いた後でファイルを送ればいいんだよ。
Location の動作は、ファイルを送った後で行なわれる。
0104nobodyさん03/07/20 02:24ID:???
PerlやってたんですけどPHP4のOOはどんな感じなんでしょうか。
どっかでOverloadができないって聞いたんですが。
0105nobodyさん03/07/20 04:20ID:???
>>104
PEAR のコード読めば解る。
OO の理解なら本より何より PEAR のコードが一番良い教本。
デザパタもおっけーな某御仁が「良くできている」と言ってた PEAR::MDB をお勧めしておく。

ってゆーか OO でぶいぶい言いたいなら PHP5 のβが出てるから試してみるとか。実戦投入はまだまだ先の話だけど。
0106nobodyさん03/07/20 04:46ID:UT2grNhf
>>105
ぱー
0107nobodyさん03/07/20 07:28ID:???
>>104
5はまだ手をつけていないけど、
4では正直「申し分程度にできる」位に考えておいた方が良いと思う。
多重継承ができんので結構辛いかも。
0108nobodyさん03/07/20 08:21ID:???
>>105
PerlでOOの時点でばかげています。
0109nobodyさん03/07/20 08:23ID:???
PHP4 の OO は手続き型からオブジェクト指向へのはしごかけみたいなものなので足りない物は多々ある。
それに波動^H^H ZendEngine が OO に最適化されていないのでパフォーマンスの問題もある。
でも PEAR 見てりゃ例え不完全であろうと PHP への寄与が大きいのは読み取れる。
んで漏れも多重継承出来なくて最初は悩んだけどそこもやり方があって PEAR では上手に書いてるよ。

PHP way を勉強しる
0110nobodyさん03/07/20 08:24ID:???
まぁソレ言うと PHP4 で OO もバカげているワケだが、、(スコア:-1 フレームのもと)
0111nobodyさん03/07/20 08:57ID:???
>>110
はやくPHP5流行らんもんかねぇ。あの仕様ならJava使ってもいい気がするが。
0112nobodyさん03/07/20 14:17ID:???
>>103
レスありがとうございます。

しかし、どうもうまくいかないので、
以下のような感じで極力シンプルなコードにして
直接このスクリプトをブラウザから呼んでみたのですが、
hoge2.phpには飛ぶのですが、ファイルが出力されません。
(header("Location: index.php");をコメントアウトすると、正常に処理されます)
私、何か根本的な勘違いをしているような気がするのですが
いかがでしょう?

↓↓↓↓↓↓↓↓
<?php
$content_length = filesize("○○○○○");
header("Location: hoge2.php");
header("Content-Disposition: attachment; filename=○○○○○");
header ("Content-Transfer-Encoding: binary");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream");
readfile("○○○○○");
?>
0113nobodyさん03/07/20 14:20ID:???
>>112
根本的に間違えすぎ_| ̄|○

header("Location: hoge2.php");

が、何をやってるのか考えて見ようよ。
一行づつ処理を日本語で書いてアルゴリズムで見て見たら?
ちょうど良い訓練になると思うよ?
0114nobodyさん03/07/20 15:16ID:???
>>113

う〜ん、おっしゃりたいのは
header("Location: hoge2.php");以下は無視される…ということでしょうか?ちがうのかな??
私も、最初はそう考えたためこの方法は無いな…考えたのですが
>>103のアドバイスがあったもので…

もう少しヒント(笑
0115nobodyさん03/07/20 15:20ID:???
マニュアル嫁 or スクリプト書くな


最近「初心者」の正体が分かった気がする。
自己解決能力の有無だ。
歴も経験も知識も関係ねーよ。
011610403/07/20 15:28ID:???
う、PHPに取り掛かる気力がダウンしてきた。
Perlもいろいろイビツなところあると思いますが、PerlのOOより残念な感じなんですか?
仕事で使えるほどPHP5が主流になるのはいつごろなんでしょか・・。
0117nobodyさん03/07/20 15:29ID:???
むしろ「プログラムに関与するな」を強く推奨したい。

自分がやってる事を理解できないなら触らないほうがいい。

で、これ以上は答えになるから答えられない。

<?php

?>
の間を一行ずつ日本語にして見ろって。

$content_length = filesize("○○○○○");
だったら
ファイルサイズを取得して変数content_lengthに代入する。
とかな。

あれ?そういやここも初心者スレなかったっけ?
0118nobodyさん03/07/20 15:31ID:???
>>116
1年半から2年くらい先と踏んで見るテスト。
期待しなきゃ裏切られない。

逆に、自分の中で主流にしてガンガンBugを発見してレポート送ってあげれば
より早く回りも主流になるんじゃないの?
0119nobodyさん03/07/20 16:09ID:???
>>116
んじゃ Perl でやっておけばいいんじゃぁ、、必要性無いなら無理矢理不満や疑問かかえて PHP やる事ぁ無い。

俺の意見も >>116 の見積もりと同じ。
PHP4 解りません、PHP5 メインです、で大手振れるのはまだまだ先っぽい。
それに PHP はマイナーバージョンでも差違が大きいから何かある度に学習積むのは慣れちゃった、とかな。

何度も言うが PHP4 の OO も捨てたものではない。
それで作られた資産が PEAR には大量に転がっているのだからソレ見てから言え、と。
PHP4 もある意味今が旬って気もするし。資産増えてきたからね。
012003/07/20 16:39ID:hbcbfQ42
>>112
Location の動作はブラウザ依存だから、大半の場合無視されるみたいだ。
嘘ついてすまん。
0121nobodyさん03/07/20 16:44ID:???
>>120
マジ?(汗
確かにブラウザの実装次第かも知れないけど header('Location'… の指定は HTTP の基本的な部分で各ブラウザ間の実装による差違は気にしなくていいと思っていたんだけど。

教えて、エロい人 (´・ω・`)
0122nobodyさん03/07/20 16:47ID:???
逆に無視されるUAを上げてもらいたいくらい。
ってーか無視するUAまだ見たことねぇ。
■ このスレッドは過去ログ倉庫に格納されています