【PHP】下らねぇ質問はここに書き込みやがれ 25
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/23(日) 20:00:03ID:???ここならお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0413nobodyさん
2006/07/30(日) 00:27:28ID:h/4ugybZheader("Content-Type: image/jpeg");
mb_http_output("pass");
readfile("test.jpg");
?>
0414nobodyさん
2006/07/30(日) 00:29:21ID:???0415nobodyさん
2006/07/30(日) 00:29:23ID:???俺の.htaccess
php_flag output_buffering On
php_value output_handler mb_output_handler
php_flag session.use_only_cookies On
php_flag short_open_tag Off
php_value error_reporting 2047
php_value default_charset EUC-JP
php_value error_log C:\home\error.dat
php_flag log_errors On
php_value mbstring.language Japanese
php_value mbstring.internal_encoding EUC-JP
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output pass
で問題なく表示できた(4.4.2, 5.1.4共に)
0416nobodyさん
2006/07/30(日) 00:30:29ID:SlTGL4ej0418nobodyさん
2006/07/30(日) 00:39:25ID:???freadでも使ってみれば?
0419nobodyさん
2006/07/30(日) 00:40:23ID:???理由が解らん&書いてない
0420nobodyさん
2006/07/30(日) 00:49:10ID:???0421nobodyさん
2006/07/30(日) 00:53:34ID:7xmFqdDD容量の大きいファイルをアップロードすると"Internal Server Error"が発生します。大きいとはいっても1.5M程度で発生してしまうので、とても困っています。
そのサーバでcgi-wrapでphp5を動かしているのですが、何せすぐに500 Internal Server Errorが発生するために、原因が皆目つかめません。
エラーログを見ればもう少しわかるのでしょうが、そのサーバはエラーログを公開していないため、
試行錯誤で色々設定を変えて頑張っていましたが、どうしても現象がなおりません。
1Mのファイルでは確実に発生しますが、15kbyteくらいのファイルでもたまに500を返し、
その場合はそのままF5更新したら上手くアップロードできてしまいます。
またスクリプトの先頭すら実行されていないことも確認したので、スクリプトではなく設定の問題のようです。
とりあえず、socket_timeoutやmax_input_timeは変更し、phpinfoで反映を確認しました。一体何が原因で500が出るのでしょうか。
そのものずばりではなくても、解決の参考になるようなアイデアで結構ですので、
どうかよろしくお願いします。
関係ありそうな設定は以下の通りです
(php.ini)
default_socket_timeout = 1000
max_input_time = 1000
max_execution_time = 1000
upload_max_filesize = 4194304
memory_limit = 268435456 ;256M
post_max_size = 31457280
(.htaccess)
LimitRequestBody 20480000
0422nobodyさん
2006/07/30(日) 00:53:49ID:???セキュリティ上の理由からallow_url_fopenをOnにすることが推奨されていない。
開発段階でもこれに依存したコードを書かないようにすべき。
0423nobodyさん
2006/07/30(日) 00:55:14ID:???0425nobodyさん
2006/07/30(日) 00:57:29ID:???どういう意図での話かわかりませんが、ファイルをアップロードしなければ当然動きますよ。
PHPが500を返すのは、phpが自らにかけているアップロードの制限を超えたり、
メモリが不足した場合におこるようですが、1.5Mのアップロードで起こるとは到底思えないのです。
0426nobodyさん
2006/07/30(日) 00:59:08ID:???PHPは動いています。ファイルのアップロード、それも1Mを超えるサイズの場合だけの問題です。
アップロードさえしなければスクリプト自体は動いているので、改行コードは今回は問題になっていないようです
ヘッダ未送信については調べてみますが(レスポンスのHTTPヘッダですよね?)、小さいファイルではアップロード成功するので、
多分関係ない気はしています
0427nobodyさん
2006/07/30(日) 01:14:52ID:???windowsやmacのソフトを作りたくなりました。
他の言語は一切経験無しです。
お勧めの言語を教えて栗、
色々調べて Visual C#あたりをやってみようかと思うんですが、
これってWindows Only?
0428nobodyさん
2006/07/30(日) 01:45:20ID:???Aに無かった時だけBコンストラクタを呼ぶ、無ければC@4.4.2
>>427
427のためにもム板への移動がお勧め
マルチプラットフォームを考えてるなら尚更
0429nobodyさん
2006/07/30(日) 01:58:30ID:???C#だと比較的楽だけど、環境依存
C/C++だと高速だけどWindowsAPIの知識が必要かつ煩雑
Delphiとか最近多いけど文法が独特
VBはC#に同じ。PHPと似たような感じでは書けない
Javaは実行に仮想Javaマシンが必要
ム板行ったほうがいいな。
0430nobodyさん
2006/07/30(日) 02:38:30ID:???まぁ、デスクトップアプリを作りたいが、winでもmacでも動作するものが作りたい
ってなったらJavaでSwingを使う、ってのが一番手っ取り早い気がするな
ム板行ったほうがいいな
0431nobodyさん
2006/07/30(日) 03:43:00ID:???> >>420
> Aに無かった時だけBコンストラクタを呼ぶ、無ければC@4.4.2
ありがとうございます。
最後の@4.4.2は、どういう意味でしょうか?
0432nobodyさん
2006/07/30(日) 04:26:41ID:???少なくともPHP4.4.2の場合はそういう仕様、って意味かと。
コンストラクタ周りはPHP3と4と5とでそれぞれ仕様が違うので。
0433nobodyさん
2006/07/30(日) 04:45:35ID:???注意: 子クラスがコンストラクタを有している場合、親クラスのコンストラクタが 暗黙の内にコールされることはありません。
親クラスのコンストラクタを実行するには、子クラスのコンストラクタの 中で parent::__construct() をコールすることが 必要です。
とマニュアルに書いてた。
つまりCの親クラスであるBクラスのコンスタラクタを呼び出すにははparent::__construnct()をCクラスで指定しなければならない。
0434nobodyさん
2006/07/30(日) 09:18:36ID:TrvGlatV0436nobodyさん
2006/07/30(日) 09:55:49ID:???例えば「2222」の部分だけを「11」に変更したい場合にfwriteで書き込むとゴミが残りますよね?。
ファイルを全部読み込まずに奇麗に一行だけ変更する事はできないものかと思いまして。
*data
1111
2222
3333
.
.
.
.
0437nobodyさん
2006/07/30(日) 10:14:07ID:???根本的な問題なんだけど、ファイルってのはディスク上の「決まった場所」に
1バイトずつデータを置いてるわけ。
で「1行」ってのは改行コード〜改行コードの間を指してるわけで、
別にディスク上で行単位に保存されてるわけじゃないの。
1行の長さを変更しようと思ったら、それより後ろ全体の配置を変えないとムリ。
0438nobodyさん
2006/07/30(日) 10:19:21ID:???ファイル内容を
1111
2222
3333
なんてイメージしてるからそんな世迷言を吐ける。
ファイルってのは
"1111\n2222\n3333\n"
という1個の文字列でしかない。
それで2222を11に変更するにはどうすればいいのか、よく考えてみることだ。
0439nobodyさん
2006/07/30(日) 10:32:27ID:???変更するデータが小さければ空白で穴埋めして読み込み時に手を加えるようにすれば
いいのでしょうけど大きい場合はやはりどうにもなりませんよね。
ありがとうございました。
0440nobodyさん
2006/07/30(日) 10:49:47ID:???0441nobodyさん
2006/07/30(日) 10:57:23ID:PjLh0F//0442nobodyさん
2006/07/30(日) 10:58:35ID:???下げ忘れ
すいません
0445420
2006/07/30(日) 12:42:35ID:???なるほど。簡単なのに気づきませんでした。
>>433
マニュアルを何回か検索しているんですが、そのページが全然でてこないのですけど、
なんという単語で検索すればいいのでしょうか?
検索した用語「コンストラクタ」「親クラス」「子クラス」「_construct」
目的は、PHP4で「Aを呼ぶ時にBとCのコンストラクタを呼んで欲しい」です。
0446nobodyさん
2006/07/30(日) 14:21:19ID:???「違法」というわけではないが、この行為自体は「厨房」と同じw
これやってる奴は自覚していないというから恐い。
0447nobodyさん
2006/07/30(日) 14:31:18ID:???この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
0448nobodyさん
2006/07/30(日) 14:42:22ID:???0449nobodyさん
2006/07/30(日) 14:44:32ID:???謹んでお詫び申し上げます
糸冬
--------------
制作・著作 NHK
0450nobodyさん
2006/07/30(日) 14:45:15ID:???Apache 2.0
PHP 5.1.4
自宅でApacheをインストールして、ローカルホストとして起動しながらPHPの勉強を始めました。
教本を見ながら勉強しているのですが
$HTTP_HOSTや$HTTP_USER_AGENTというのが無効な様子です。
自分なりに考えた結果Apacheのhttpd.confの設定なのかなと思っているのですが
どうしたら、有効にできるのかご教授頂けないでしょうか。
0453nobodyさん
2006/07/30(日) 14:56:04ID:???マニュアル→III言語リファレンス→18章クラスとオブジェクト(PHP4)→コンストラクタ
ttp://www.php.net/manual/ja/language.oop.constructor.php
検索で出てこない、ってのは検索モードをin the function listにしちゃってるからじゃ?
これは関数じゃないから出てこないでしょ。
in the online documentationなら出てくるよ。
0456420
2006/07/30(日) 15:18:48ID:???ありがとうございます。
以下の文を探していました。
PHP 4 では派生クラスのコンストラクタから基底クラスの コンストラクタを自動的にコール
することはできません。 上流のコンストラクタを適切にコールするように伝播させることは
あなたの責任でやるべきことです。
つまり、BとCのコンストラクタを明示的にAで呼んであげないといけない
という理解で良いですよね。
#んー、なんかマニュアルって検索にうまくひっかからないのですよね…
0457450
2006/07/30(日) 16:39:33ID:???for($i=0; $i < 2; $i++) {
echo $name[$i]."さんありがとうございます。<BR>\n";
}
echo "\$_SERVER[\"HTTP_HOST\"]に書き直したらいけました。";
0458nobodyさん
2006/07/30(日) 17:31:42ID:c850+3OT0459nobodyさん
2006/07/30(日) 17:36:12ID:???foreach($name as $value){ echo $value."さん〜"; }
echo "〜";
の方がスマートになると蛇足。
0460nobodyさん
2006/07/30(日) 17:51:10ID:???0461nobodyさん
2006/07/30(日) 17:58:25ID:NzzdC7Vd今、入門書を読み終わってSmartyの本読みを読み始めたところなのですが
SQliteが動きません。phpinfo();にもSQliteの項目がありません。
php.iniを見ると5.03の時にはなかった
extension=php_sqlite.dll
という項目があったので、ONにしてみたのですが駄目でした。
extのパスも間違っていない(はず^^;)です。
他に何かしなければオンにならないのでしょうか?
MySQLを使うか、5.03でテストしつつ読み進めれば問題ないのですが
私がなんか設定でオオポカをやらかしてるのか…
それとも、SQliteが見捨てられたのか…
0462nobodyさん
2006/07/30(日) 18:17:08ID:???PDO SQLiteならデフォルトでOffになってる。
SQLite関数なら普通に使えたと思ったけどな・・・
--with-pdo-sqlite付けてコンパイルし直すと良いと思う。
0463nobodyさん
2006/07/30(日) 18:33:01ID:TgrmMjVZテキストファイルを読み込んで、
行ごとに、条件分岐で保存するかしないかを決める処理をしたいんだけど
例えば、以下の様なテキストファイルのDを含む行を削除するような
ABC
BCD
CDE
DEF
fopenのw+モードだと、テキストファイルの内容が読み込み方が分らず
r+モードだと、行の削除をどうやるかがわからず
唯一file関数で読み込んでからfopenでif文書いて処理すればいけるが、
fileロック的に微妙。
perlだと普通にopen関数でいけるのだけど
どうしたらよいの?
0465nobodyさん
2006/07/30(日) 19:16:14ID:SlTGL4ejキタ━━━━━━━━(゚∀゚)━━━━━━━━━━ッ!!
ありがとうございます!
0466nobodyさん
2006/07/30(日) 19:23:29ID:???0467nobodyさん
2006/07/30(日) 21:13:16ID:EgQavLOH恐らく PHP の文字コードの問題と思っているので、こちらにお邪魔しました。
PHP-4.4.2
MySQL-5.0.22
上記の環境で scuttle-0.7.2 を導入しようとしています。
動作までは行えたのですが、ブックマークの登録に日本語が通りません。
php.ini を書き換えて EUC-JP や UTF-8 で統一してみましたが、文字化けしたままでした。
phpMyAdmin も併用して、検証を行った結果、
scuttle から入力>phpMyAdmin で表示>文字コード判別不能。
phpMyAdmin から入力>scuttle で表示>scuttle 上はUTF-8で該当データはEUCでした。
MySQL 上ではutf8_general_ciでデータベースを作成しています。
どなたか、導入実績のある方などはいらっしゃいますか?
もしくは、ここが悪い?というご指摘をいただけると助かります。
0468nobodyさん
2006/07/30(日) 21:56:48ID:cXM04WS8GDで加工した画像データをmysql等のDBに入れたいのですが、
ファイルを作成するのはimagejpeg()等で出来ますが、変数に格納する方法が
わかりません。一時ファイルを作ってそれを読みこむ以外に方法は無いのでしょうか?
0469nobodyさん
2006/07/30(日) 22:05:56ID:???serializeとかじゃダメなん?
0470468
2006/07/30(日) 22:11:39ID:cXM04WS8serialize(イメージID)としてみましたが駄目でした
0471nobodyさん
2006/07/30(日) 22:39:19ID:???これ試してみな
ob_start();
imagejpeg($im, NULL, 75 );
$x = ob_get_clean();
0472nobodyさん
2006/07/30(日) 22:43:40ID:???で、読み込ませるためにリンケージを貼ったMCの中でXMLをonLoadして、
そのXMLの定義にしたがって画像などをloadMovieしてるんですが、
何故かスクロールペインにスクロールバーが出ません
XMLのonLoadや画像のloadMovieが時間差を生んで、読み込み以前の状態が反映されてるのかと思い、
スクロールペインのonEnterFrame( )に
redraw( )をつけたりしてるんですが、
特に効果はありませんでした。
こういう時はどういう処理でスクリプトの流れを作ればいいんでしょうか
よろしくおねがいします。
0473472
2006/07/30(日) 23:01:14ID:???0475nobodyさん
2006/07/31(月) 00:57:11ID:???わかってねーよww
0476nobodyさん
2006/07/31(月) 01:24:12ID:???「推奨されていないから使わないようにすべき」って方の理屈は普通にわかるって意味ね。
allow_url_fopenをオフにするならソケットによるアクセスは全て禁止すると思うけど、そうじゃないシチュエーションってどんなときに起こるの?
0477nobodyさん
2006/07/31(月) 01:45:06ID:???0478nobodyさん
2006/07/31(月) 01:48:53ID:AiuTU73H教えてください
0479nobodyさん
2006/07/31(月) 03:02:42ID:???そもそもPerlならopenでできる、ってのはどうやってるのさ。
このスレでPerlの知識があることを前提に質問するのは間違ってるぞ。
話を聞く限りでは、r+で開いて中身読み込んでtruncateで中身リセットして
あとは必要な行だけfwriteしていけば終わりの気がするけどね。
Perlでもやってることは一緒だと思うんだけどなぁ。
0480nobodyさん
2006/07/31(月) 10:11:51ID:???中途行を削除するのでも、
その削除行から残り全部は一旦削除して書かなきゃならないってのわかってないとおもうよやつは。
ファイルの、その行だけ削除すればOKだと思ってる。
0481nobodyさん
2006/07/31(月) 10:36:29ID:vOs6pv4F$a = null と書くのが常識なのでしょうか?'
0483nobodyさん
2006/07/31(月) 10:50:27ID:???マニュアルを見てきたのですが
・値がない
・unsetした場合
とかなっていましたが・・・
unset($a)したら変数はなくなりますよね?
だから if ($a)だとエラーが出ると思っていたのですが、あれ・・・
0484nobodyさん
2006/07/31(月) 10:54:00ID:???0485nobodyさん
2006/07/31(月) 10:54:06ID:???いやだから、$a = ''; も $a = NULL; も、それぞれ「意図があって」やってることであって、
どっちかが常識ってわけじゃないんだよ。
何をやりたいかによって使い分けなきゃいけないものってこと。
0486nobodyさん
2006/07/31(月) 11:08:17ID:???ローカルで色々と試してきました。
結果、noticeすら出なかった・・・。
error_reporting(E_ALL);
ini_set('display_errors',1);
としてあるのですが謎です。
文字が空である事と値がない事は違うという事ですね。
0487(^ω^)
2006/07/31(月) 11:35:32ID:???0488nobodyさん
2006/07/31(月) 11:41:45ID:???0489nobodyさん
2006/07/31(月) 11:42:04ID:CE9HBJM2$hoge = " 1 "; //" " . "1" . " " の3つに分割されるつもり
$array = explode(" ",$hoge);
とした場合、最初のスペースが分割文字として判定されずに、
array([0]=>" 1",[1]=>"")
となってしまい困っています。
これが"#"などなら意図したとおり動作するのは確認しているのですが、すでにデータを" "で作成しています。
どうすれば先頭の" "も分割文字として認識されるのでしょうか。
助言をよろしくお願いします。
0490nobodyさん
2006/07/31(月) 11:44:52ID:???それは上手なデザインと言えないような…
0491nobodyさん
2006/07/31(月) 11:47:29ID:???力技だけど $hoge の先頭に "#" なりを付加して explode にかけて
出来上がった $array[0] の 1 文字目を削除する、とか。
0492nobodyさん
2006/07/31(月) 11:53:11ID:CE9HBJM2ありがとうございます。
その手を試してみます。
0495nobodyさん
2006/07/31(月) 14:02:13ID:???「セキュリティ上、好ましくない」
とか、とても便利な逃げ常套句ですね。
それとも、なんですか…
具体的な例を提示できないから、
まさかこんな事言ってるんじゃありませんよね?
0497nobodyさん
2006/07/31(月) 14:11:06ID:???extract したような動作になってるのは回避できますか・・・
?p=abc
がそのまま$p=abcになってしまっている・・・。
0499nobodyさん
2006/07/31(月) 14:25:39ID:???User Agentにシングルクオートを入れてアクセスすると…
0500nobodyさん
2006/07/31(月) 14:37:43ID:???SELECT * FROM user_mst WHERE user_id = '' or user_id <> '' AND pass = '' or pass <> '' AND user_state <> 'del'
こういうSQL文になるように フォームの maxlenght を削ってローカルに保存し送信したら
ログインできたお
0501nobodyさん
2006/07/31(月) 14:42:04ID:???Fatal error: ERR_DBCls_ExecQuery :
SELECT * FROM count_tmp WHERE user_agent = 'test'test' AND remote_addr = '' AND remote_host = ''
in /virtual/propan/public_html/common/dbcls.php on line 238
DBでアクセス解析してるんだろう
誰かDELETEのSQLでも投げてやれよ、ちゃんと権限設定してあって大丈夫かもしれんが
0502nobodyさん
2006/07/31(月) 14:59:02ID:???0503nobodyさん
2006/07/31(月) 15:16:32ID:HekLsGeBint main(void)
{
double pai = 3.141592;
double r;
double taiseki;
int h;
r = 10;
h = 12;
taiseki = 1 / 3 * pai * r * r * h;
printf("三角錐の体積 = %d\n",taiseki);
return 0;
}
ってどこがおかしい?
0505nonicebody
2006/07/31(月) 15:22:45ID:???>>504
久しぶりにわろたw
0506nobodyさん
2006/07/31(月) 15:26:48ID:HekLsGeB0507nobodyさん
2006/07/31(月) 15:52:44ID:???#include<stdio.h>
が、なつかしー
0508nobodyさん
2006/07/31(月) 15:53:15ID:HekLsGeBテスト中なんだ!
0509nobodyさん
2006/07/31(月) 16:00:24ID:???0510nobodyさん
2006/07/31(月) 16:02:22ID:???三角錐の体積 = 0
0511nobodyさん
2006/07/31(月) 16:04:11ID:HekLsGeB持ち込み可だからパソコン使っても良いはず!
0512nobodyさん
2006/07/31(月) 16:05:52ID:???0513nobodyさん
2006/07/31(月) 16:07:07ID:???■ このスレッドは過去ログ倉庫に格納されています