【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ぐらい
0142の
03/07/20 23:32ID:hbcbfQ42JavaScript でダウンロードストリームを別に起こすとかに
なるんじゃないかな。やったことないけど。
0143の
03/07/20 23:41ID:hbcbfQ42マニュアル見てみ。
http://jp.php.net/manual/ja/function.addslashes.php
0144あぼーん
NGNG0145の
03/07/20 23:49ID:hbcbfQ42元々、GD の TrueType 文字描画は、EUC-JP, UTF-8 を自動判別していた。
自動判定だから、条件によっては間違えるからでは。
--
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
出来たー!
マジで助かりました。
ありがとう〜。
//chmマニュアルとGoogle検索だけだと見落としますね・・・。
//反省反省。
0147nobodyさん
03/07/21 00:12ID:???取り込むときに
たとえば、ファイルの50バイト目から、300バイト目を
指定して読み込むとしますよね。
そうしたときに、実際にダウンロードされるのは、
300バイトなのでしょうか?
それとも251バイトなのでしょうか?
0148nobodyさん
03/07/21 00:15ID:???私もお礼。
JavaScriptは、メッセージ表示に使うことばかり考えていて、
どうせファイル出力後はいかなる出力もアウトだよな…などとあきらめてた。
そうだよね、ダウンロードの方をやらせれば良いんだよね。
頭固くてガクッって感じです。
の さん。
2日にわたりありがとうございました。
でも遠回りして勉強になったよ!
0149nobodyさん
03/07/21 01:04ID:???<META HTTP-EQUIV="refresh" content="1; URL="ダウンロードしたいファイル">
を使っている。
流れとしては、1. 画面表示 2. refreshでダウンロード開始 って感じ。
0150nobodyさん
03/07/21 01:10ID:???ダウンロードストリーム作っても
「ダウンロード完了後に結果を表示」なんてことは無理じゃないかな?
ダウンロード完了後になにかブラウザがアクション返してくれればいいけど
そんなことしてるわけないし
無理っぽい。
0152nobodyさん
03/07/21 01:37ID:???最初の方の発言で書きましたが表示するメッセージの内容は
LHAで圧縮して1ファイルにまとめた
多量の画像やらテキストやらのファイル名の一覧で
「これだけのファイルを送信しましたよ」という確認の意味で表示します。
「送信完了メッセージ」というのはちょっとニュアンスが違いましたね。
すまそ。
にしてもPHPのheaderで送るにしても、JavaScriptで送るにしても
確かに「ダウンロード完了後に結果を表示」なんてことは出来るのだろうか??
ちょっと興味あり。っうか、やっぱ、まず無理???
0153nobodyさん
03/07/21 01:48ID:???その仕様なら >>149 でいけるね
やり方は sourcefourge.net いってダウンロードしてみるといいです
ブラウザ限定しそうだけど
「ダウンロード完了後に結果を表示」は無理だね。絶対に
0154nobodyさん
03/07/21 04:22ID:???Windows + IE 限定でがちがちに固めると大抵の事は何でも出来る。
TrendMicro のウイルスチェッカーもそうだし、MSDN で WindowsXP のダウンロードさせる際にはかなり出来のいい ActiveX ダウンローダーが動いていた。
ダウンロードの中断、再開まで出来た気がする。当然完了通知も有り。
まぁ違う話だけど言ってみた。
0157あぼーん
NGNG0158nobodyさん
03/07/21 21:41ID:???先頭から50バイト目から読みこむといった
処理をしたいのですが
fseekがつかえないみたいで困ってます。
この場合どうしたらいいのでしょうか・・?
0159nobodyさん
03/07/21 21:47ID:???一行読んで変数に格納
while (大きさが50バイト以上) {
層でなかったらもう一行読んで変数にapend
}
変数の頭50バイトを残して後ろを削除
0160nobodyさん
03/07/21 21:53ID:???たとえば300Kのファイルの
150Kバイト目から200Kバイト目までを読むには
200Kバイトダウンロードしなきゃだめという
ことですか・・・
ありがとうございました。
0161nobodyさん
03/07/22 06:44ID:???ちゃんとソケットかhttpのラッパー使えばHTTPの機能で途中からダウンロードも可能。
簡単−>パラメータが少ない−>出来ることが少ない。
0162nobodyさん
03/07/22 09:16ID:???調べてみます。
0163nobodyさん
03/07/22 13:08ID:655YiDdZphp-5.0.0b1
apc-cvs
apcキャッシュの環境設定でエラーが出た。
/usr/local/src/apc/apc_cache.c: In function `prevent_garbage_collection':
/usr/local/src/apc/apc_cache.c:175: subscripted value is neither array nor pointer
make: *** [apc_cache.lo] エラー 1
どして?
0164163
03/07/22 13:16ID:655YiDdZ付加したオプションは-enable-apcだけ。
php-5.0.0には対応できてないのか。。
0168160
03/07/22 15:06ID:???わからない・・
fsockopenつかうらしい・・
でも、
GETしたら全部ダウンロードされるんじゃ・・
0170160
03/07/22 15:14ID:???なんか、すげー難しそうだ・・
0171160
03/07/22 15:14ID:???やっぱそうですか。
とにかくがんばります。
0172160
03/07/22 15:17ID:???どうもありがとうございました。
0173160
03/07/22 16:23ID:HzWI6izpただ、GET を送るときに
GET URL HTTP/1.0
だとうまくいくんですが
GET URL HTTP/1.1
だと動かないんですよね・・
なぜなんだろう・・
0175163
03/07/22 16:38ID:655YiDdZそうそう、./configure --enable-apc は無事終了したみたい。
#make も #make install でも
/usr/local/src/apc/apc_cache.c:175: subscripted value is neither array nor pointer
make: *** [apc_cache.lo] エラー 1
こういうのが出ます。
0176163
03/07/22 16:39ID:655YiDdZ155:/* {{{ prevent_garbage_collection */
156:static void prevent_garbage_collection(apc_cache_entry_t* entry)
157:{
158: /* set reference counts on zend objects to an arbitrarily high value to
159: * prevent garbage collection after execution */
160:
161: enum { BIG_VALUE = 1000 };
162:
163: entry->op_array->refcount[0] = BIG_VALUE;
164: if (entry->functions) {
165: int i;
166: apc_function_t* fns = entry->functions;
167: for (i=0; fns[i].function != NULL; i++) {
168: fns[i].function->op_array.refcount[0] = BIG_VALUE;
169: }
170: }
171: if (entry->classes) {
172: int i;
173: apc_class_t* classes = entry->classes;
174: for (i=0; classes[i].class_entry != NULL; i++) {
175: classes[i].class_entry->refcount[0] = BIG_VALUE;
176: }
177: }
178:}
「;」が付いてないだけかと思ってソースは確認したんだけどね^^;
0177あぼーん
NGNG0178nobodyさん
03/07/22 16:48ID:EYE9sStdエラーメッセージからみて、classes[i].class_entry->refcount[0]のrefcountが配列でもポインタでもないということだと思うんだよね。
apc_class_tやapc_cache_tの定義を見てみないことにははっきりとは言えないけど。
0179178
03/07/22 16:49ID:EYE9sStd0180178
03/07/22 16:58ID:EYE9sStd0181160
03/07/22 17:08ID:HzWI6izpHOSTつけました。
うまくいかないというのは、
ページ自体なにも表示されないんです。
0182163
03/07/22 17:09ID:655YiDdZphp-4.* では普通に動いたからphp-5.oo の弊害じゃないかと思ってるんですが。。
0183160
03/07/22 17:10ID:???取得しようとしているのですが、
たまに、rangeが効かないサーバーがありますね・・・(ton.2ch.netとか)
拡張子がhtmlでもじつはcgiでうごいてるんですかね・・・
0184s
03/07/22 17:10ID:3VhQ/RK30185iwa
03/07/22 17:28ID:6je4sq13php5/Zend/zend.hでは
struct _zend_class_entry {
:
int refcount;
:
}
php4/Zend/zend.hでは
struct _zend_class_entry {
:
int *refcount;
:
}
ほかにも構造体の中身が変わってるので
動かなくてあたりまえ。
INSTALLを見ても4.2.2 - 4.3.2までしか動作確認はとってないとある
4.3.3RC2では動きましたけどね。
0186178
03/07/22 17:33ID:EYE9sStdああやっぱりそういうことなんだ。
バージョンによって結果が変わるというからなんとなくそういうことだと思ったけど。
0187163
03/07/22 20:15ID:655YiDdZ調べてくれてありがとう。
改造するモチベーションが少し起こりましたが
ちょこちょこっと変えてみて次から次へとエラー増殖し始めたので
萎えました^^
0188あぼーん
NGNG0189nobodyさん
03/07/22 21:41ID:5BdtVqsf文字列 "機能" を含むソースを実行すると、
‘能’の2バイト目が'\'に該当するようで、
‘能’の後ろのダブルクォートが文字列終端とみなされずコンパイルエラー
になるのですが、
PHPってマルチバイト文字列扱う時に設定とか必要なんでしょうか?
0192nobodyさん
03/07/23 11:32ID:j6os713+以下のソースでカウントが上がらないのですが
どうしてなんでしょうか?
<?
session_start();
if (!isset($count)) $count=0;
session_register("count");
$count++;
?>
<html>
<body>
あなたは <?= $count ?> 回目の訪問です。
<a href=test1.php>カウントを増やす</a>
</body>
</html>
0194192
03/07/23 13:05ID:j6os713+0195あぼーん
NGNG0196あぼーん
NGNG0197192
03/07/23 13:22ID:j6os713+0199nobodyさん
03/07/23 14:14ID:???先ほどクラスについてを一通りのことを勉強したのですが、
クラスを使う利点がよくわかりません。
関数だけで十分な気がするのです。
処理が速くなるとか、何か良いことあるのでしょうか?
0200nobodyさん
03/07/23 15:25ID:???PHPは構造体がないからその代わりにつかうだけでも便利。
ネームスペースが破綻しにくいし>特にセッション変数
とか。
一般的なクラスの利点はPHPに限ることじゃないので
他で調べるほうがいいとおもう。
0201nobodyさん
03/07/23 15:47ID:???複数人でソースを書くときなんか
クラスを使うとわかりやすいという
ことだけです。
「わかりやすい」
この一言に尽きます。
0202192
03/07/23 16:20ID:j6os713+それと別件なんですが$_SESSION['test']みたいな感じでセッションを
使うことができたんですが
セッション情報をURL(SID)につけてSQLでデータの削除や閲覧ページなど
動作させると削除はきちんとできているんですが画面には削除したはずの情報が
そのまま残っているんです。ちょっとわかりづらいでしょうがなにが原因なんでしょうか?
0203あぼーん
NGNG0204192
03/07/23 16:31ID:j6os713+0205nobodyさん
03/07/23 16:55ID:???register_globals=offだからだけど、
onにするのは望ましくないので$_SESSION使うのがいいとおもう。
http://www.php.net/manual/ja/ref.session.php
>>202
Cookieは使えないんですよね?
動的ページでもURLが同じだとキャッシュされやすいので
a. ページの移動にGETでなくPOSTを使う
b. URLの末尾にダミーのユニークなパラメータを付加する
のどっちかで回避できるかな。
0206192
03/07/23 20:09ID:j6os713+なるほど、そういう手があるんですね。
どうもありがとうございました^^
0207nobodyさん
03/07/23 20:22ID:???分かったのですが、これらはどのように違うのでしょうか?
$_SERVER[REMOTE_ADDR]
getenv( 'REMOTE_ADDR' )
0210nobodyさん
03/07/24 00:46ID:???PHP使ったことないから「$_SERVER」って変数がよくわからないけど
Perlの$ENVと同じなのであれば、中身は一緒だね
好きなほうを選ぶがよい
0211nobodyさん
03/07/24 19:28ID:3Ff6tsfHRedHatLinux8.0でメールボックスにメールを受信した時に
PHPスクリプトを呼び出して処理を行った後返信をしたいのですが、
メールが届く度に、PHPスクリプトを呼び出すメールサーバ側の設定がわかりません。
どのようにすればいいでしょうか?
PHPはphp 4.3.2をimap関数付きでconfigureしてます。
sendmail 8.12.5
popt 1.7.1
板違いかもしれませんがよろしくお願いします。
0212あぼーん
NGNG0213あぼーん
NGNG0214あぼーん
NGNG0216nobodyさん
03/07/25 02:34ID:???http://www.pat.hi-ho.ne.jp/dimension/sample/sample_xml_dom.4.3.0.basic.shtml
でxml文章を作成しているのですが、日本語を使うと実体参照で
表現されてしまいます。mbstring等の設定で直せるのでしょうか?
0217nobodyさん
03/07/25 02:36ID:???HTMLの最上段と最下段に追加されるのですが、
これは一体何なのでしょうか?
また、includeでHTMLファイルを取り込んだ際にも、
アンカータグに勝手にtarget="_top"を追加されてしまいます。
どなたか原因がわかる方はいらっしゃいませんでしょうか?
0219nobodyさん
03/07/25 04:41ID:???0221nobodyさん
03/07/25 14:49ID:n0rGriHyありがとうございます。procmailで調べてみます!!
0222あぼーん
NGNG0223あぼーん
NGNG0224あぼーん
NGNG0225nobodyさん
03/07/25 18:39ID:???違うものがあったらエラーにしたいのですが
if($a1 == $a2)と1つずつチェックするしかないでしょうか?
一度に比較するのは無理ですか?
0226nobodyさん
03/07/25 19:13ID:5Frmg0qV最初から配列にしときゃ楽なのに
for ($i = 1; $i < 8; ++$i) {
$val = "a$i";
$a[$i] = $$val;
}
if (count(array_unique($a)) == 1) {
echo "Equal.\n";
} else {
echo "Different.\n";
}
0229nobodyさん
03/07/26 00:11ID:???0230nobodyさん
03/07/26 01:51ID:???これは、gzfopenを使ってファイルを開いたときに、
そのファイル全部が解凍されてしまうのでしょうか?
それともgzfgets等を使って読み込むときに逐一
解凍されるのでしょうか?
インターネット上にあるファイルを扱うため
ダウンロード時間を節約したいと思っています。
よろしくおねがいします。
0231nobodyさん
03/07/26 01:52ID:???○ gzgets
0232nobodyさん
03/07/26 03:07ID:???別の端末(というか本稼動用マシン)で試したら無事上手くいきました。
ずーっとPHPのデバッグモードか何かが変更してるのかと思ってました。
ありがとうございました。
0233nobodyさん
03/07/27 00:47ID:npgEG66c深いネストからの脱出とかめんどくせぇな〜。
0234nobodyさん
03/07/27 00:49ID:???0237あぼーん
NGNG0239nobodyさん
03/07/27 02:06ID:???0241241
03/07/27 13:14ID:dJWoBMBZ$a内の『7月27日』を『7/27』に換えたいんですが、
$data =~ s/7月27日/7/27/g;
と、すると区切りのスラッシュがダブってしまいますよね。
こんなときの対処方法がご存知でしたら、
御教授お願い致します。
■ このスレッドは過去ログ倉庫に格納されています