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

【PHP】下らねぇ質問はここに書き込みやがれ 25

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/07/23(日) 20:00:03ID:???
PHPに関するくだらねぇ質問用スレです。
ここならお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
0422nobodyさん2006/07/30(日) 00:53:49ID:???
>>419
セキュリティ上の理由からallow_url_fopenをOnにすることが推奨されていない。
開発段階でもこれに依存したコードを書かないようにすべき。
0423nobodyさん2006/07/30(日) 00:55:14ID:???
500 Internal Server Errorの意味をぐぐれば?
0424nobodyさん2006/07/30(日) 00:57:06ID:???
>>421
PHPのパス。
改行コード。
ヘッダ未送信。
0425nobodyさん2006/07/30(日) 00:57:29ID:???
>>423
どういう意図での話かわかりませんが、ファイルをアップロードしなければ当然動きますよ。
PHPが500を返すのは、phpが自らにかけているアップロードの制限を超えたり、
メモリが不足した場合におこるようですが、1.5Mのアップロードで起こるとは到底思えないのです。
0426nobodyさん2006/07/30(日) 00:59:08ID:???
>>424
PHPは動いています。ファイルのアップロード、それも1Mを超えるサイズの場合だけの問題です。
アップロードさえしなければスクリプト自体は動いているので、改行コードは今回は問題になっていないようです
ヘッダ未送信については調べてみますが(レスポンスのHTTPヘッダですよね?)、小さいファイルではアップロード成功するので、
多分関係ない気はしています
0427nobodyさん2006/07/30(日) 01:14:52ID:???
PHPをはじめて1年ほどになるんだけど、
windowsやmacのソフトを作りたくなりました。
他の言語は一切経験無しです。

お勧めの言語を教えて栗、
色々調べて Visual C#あたりをやってみようかと思うんですが、
これってWindows Only?
0428nobodyさん2006/07/30(日) 01:45:20ID:???
>>420
Aに無かった時だけBコンストラクタを呼ぶ、無ければC@4.4.2

>>427
427のためにもム板への移動がお勧め
マルチプラットフォームを考えてるなら尚更
0429nobodyさん2006/07/30(日) 01:58:30ID:???
>>427
C#だと比較的楽だけど、環境依存
C/C++だと高速だけどWindowsAPIの知識が必要かつ煩雑
Delphiとか最近多いけど文法が独特
VBはC#に同じ。PHPと似たような感じでは書けない
Javaは実行に仮想Javaマシンが必要

ム板行ったほうがいいな。
0430nobodyさん2006/07/30(日) 02:38:30ID:???
>>427
まぁ、デスクトップアプリを作りたいが、winでもmacでも動作するものが作りたい
ってなったらJavaでSwingを使う、ってのが一番手っ取り早い気がするな

ム板行ったほうがいいな
0431nobodyさん2006/07/30(日) 03:43:00ID:???
>>428
> >>420
> Aに無かった時だけBコンストラクタを呼ぶ、無ければC@4.4.2

ありがとうございます。
最後の@4.4.2は、どういう意味でしょうか?
0432nobodyさん2006/07/30(日) 04:26:41ID:???
>>431
少なくともPHP4.4.2の場合はそういう仕様、って意味かと。
コンストラクタ周りはPHP3と4と5とでそれぞれ仕様が違うので。
0433nobodyさん2006/07/30(日) 04:45:35ID:???
PHP5の場合は
注意: 子クラスがコンストラクタを有している場合、親クラスのコンストラクタが 暗黙の内にコールされることはありません。
親クラスのコンストラクタを実行するには、子クラスのコンストラクタの 中で parent::__construct() をコールすることが 必要です。

とマニュアルに書いてた。
つまりCの親クラスであるBクラスのコンスタラクタを呼び出すにははparent::__construnct()をCクラスで指定しなければならない。
0434nobodyさん2006/07/30(日) 09:18:36ID:TrvGlatV
fgetsとは反対にそのポインタから一行分書き込むなんて事は出来るのでしょうか?
0435nobodyさん2006/07/30(日) 09:47:55ID:???
>>434
fwriteがそうじゃないの?
0436nobodyさん2006/07/30(日) 09:55:49ID:???
>>435
例えば「2222」の部分だけを「11」に変更したい場合にfwriteで書き込むとゴミが残りますよね?。
ファイルを全部読み込まずに奇麗に一行だけ変更する事はできないものかと思いまして。

*data
1111
2222
3333
.
.
.
.
0437nobodyさん2006/07/30(日) 10:14:07ID:???
>>436
根本的な問題なんだけど、ファイルってのはディスク上の「決まった場所」に
1バイトずつデータを置いてるわけ。
で「1行」ってのは改行コード〜改行コードの間を指してるわけで、
別にディスク上で行単位に保存されてるわけじゃないの。

1行の長さを変更しようと思ったら、それより後ろ全体の配置を変えないとムリ。
0438nobodyさん2006/07/30(日) 10:19:21ID:???
>>436
ファイル内容を
1111
2222
3333
なんてイメージしてるからそんな世迷言を吐ける。
ファイルってのは
"1111\n2222\n3333\n"
という1個の文字列でしかない。
それで2222を11に変更するにはどうすればいいのか、よく考えてみることだ。
0439nobodyさん2006/07/30(日) 10:32:27ID:???
>>437-438
変更するデータが小さければ空白で穴埋めして読み込み時に手を加えるようにすれば
いいのでしょうけど大きい場合はやはりどうにもなりませんよね。

ありがとうございました。
0440nobodyさん2006/07/30(日) 10:49:47ID:???
せっかくSQLite組み込まれているんだから使ってみればいいのに・・・
0441nobodyさん2006/07/30(日) 10:57:23ID:PjLh0F//
田代砲って違法なんですか?
0442nobodyさん2006/07/30(日) 10:58:35ID:???
>441
下げ忘れ
すいません
0443nobodyさん2006/07/30(日) 12:32:43ID:???
>>441
その質問自体が違法。とりあえず通報した。どんまい
まあ殺人予告と違って事情聴取くらいで帰れると思うが
0444nobodyさん2006/07/30(日) 12:39:11ID:???
>>441
使い方による

>>443.
夏ですね^^
04454202006/07/30(日) 12:42:35ID:???
>>432
なるほど。簡単なのに気づきませんでした。

>>433
マニュアルを何回か検索しているんですが、そのページが全然でてこないのですけど、
なんという単語で検索すればいいのでしょうか?
検索した用語「コンストラクタ」「親クラス」「子クラス」「_construct」

目的は、PHP4で「Aを呼ぶ時にBとCのコンストラクタを呼んで欲しい」です。


0446nobodyさん2006/07/30(日) 14:21:19ID:???
>>441, 444
「違法」というわけではないが、この行為自体は「厨房」と同じw
これやってる奴は自覚していないというから恐い。
0447nobodyさん2006/07/30(日) 14:31:18ID:???
>>446
この行為自体は「厨房」と同じ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:???
Windows XP SP2
Apache 2.0
PHP 5.1.4

自宅でApacheをインストールして、ローカルホストとして起動しながらPHPの勉強を始めました。
教本を見ながら勉強しているのですが
$HTTP_HOSTや$HTTP_USER_AGENTというのが無効な様子です。

自分なりに考えた結果Apacheのhttpd.confの設定なのかなと思っているのですが
どうしたら、有効にできるのかご教授頂けないでしょうか。
0451nobodyさん2006/07/30(日) 14:49:12ID:???
>>450
考えるのもいいけど、マニュアルも読んだほうがいい
環境変数の仕様が変わってる
0452nobodyさん2006/07/30(日) 14:51:57ID:???
>>442
むしろ質問は下げちゃダメ 参>>6
0453nobodyさん2006/07/30(日) 14:56:04ID:???
>>445
マニュアル→III言語リファレンス→18章クラスとオブジェクト(PHP4)→コンストラクタ
ttp://www.php.net/manual/ja/language.oop.constructor.php

検索で出てこない、ってのは検索モードをin the function listにしちゃってるからじゃ?
これは関数じゃないから出てこないでしょ。
in the online documentationなら出てくるよ。
0454nobodyさん2006/07/30(日) 14:57:29ID:???
>>450
参考にしてるその本が古すぎ。
PHPは仕様変更が早いから書籍は参考にならないことが多いよ。
0455nobodyさん2006/07/30(日) 15:06:08ID:???
>>447
お前馬鹿だろ?
04564202006/07/30(日) 15:18:48ID:???
>>453
ありがとうございます。

以下の文を探していました。

PHP 4 では派生クラスのコンストラクタから基底クラスの コンストラクタを自動的にコール
することはできません。 上流のコンストラクタを適切にコールするように伝播させることは
あなたの責任でやるべきことです。

つまり、BとCのコンストラクタを明示的にAで呼んであげないといけない
という理解で良いですよね。

#んー、なんかマニュアルって検索にうまくひっかからないのですよね…
04574502006/07/30(日) 16:39:33ID:???
$name = array(">>451",">>454");

for($i=0; $i < 2; $i++) {
echo $name[$i]."さんありがとうございます。<BR>\n";
}
echo "\$_SERVER[\"HTTP_HOST\"]に書き直したらいけました。";
0458nobodyさん2006/07/30(日) 17:31:42ID:c850+3OT
斬新なレスだな。
0459nobodyさん2006/07/30(日) 17:36:12ID:???
>>457

foreach($name as $value){ echo $value."さん〜"; }
echo "〜";

の方がスマートになると蛇足。
0460nobodyさん2006/07/30(日) 17:51:10ID:???
浮動小数点数(3.14)などを16進数表示するにはどうしたらいいの?
0461nobodyさん2006/07/30(日) 17:58:25ID:NzzdC7Vd
5.14ってもう、デフォルトでSQlite、ONになっていませんよね?

今、入門書を読み終わって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:???
>>461
PDO SQLiteならデフォルトでOffになってる。
SQLite関数なら普通に使えたと思ったけどな・・・
--with-pdo-sqlite付けてコンパイルし直すと良いと思う。
0463nobodyさん2006/07/30(日) 18:33:01ID:TgrmMjVZ
perlのスクリプトをPHPに起こしなおそうと思い、苦戦中
テキストファイルを読み込んで、
行ごとに、条件分岐で保存するかしないかを決める処理をしたいんだけど
例えば、以下の様なテキストファイルのDを含む行を削除するような
ABC
BCD
CDE
DEF

fopenのw+モードだと、テキストファイルの内容が読み込み方が分らず
r+モードだと、行の削除をどうやるかがわからず
唯一file関数で読み込んでからfopenでif文書いて処理すればいけるが、
fileロック的に微妙。

perlだと普通にopen関数でいけるのだけど
どうしたらよいの?
0464nobodyさん2006/07/30(日) 19:12:21ID:???
>>402
サーバーの設定で例えば広告とかが混じってるんじゃないの?
0465nobodyさん2006/07/30(日) 19:16:14ID:SlTGL4ej
>>464
キタ━━━━━━━━(゚∀゚)━━━━━━━━━━ッ!!
ありがとうございます!
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:cXM04WS8
質問です。

GDで加工した画像データをmysql等のDBに入れたいのですが、
ファイルを作成するのはimagejpeg()等で出来ますが、変数に格納する方法が
わかりません。一時ファイルを作ってそれを読みこむ以外に方法は無いのでしょうか?
0469nobodyさん2006/07/30(日) 22:05:56ID:???
>468
serializeとかじゃダメなん?
04704682006/07/30(日) 22:11:39ID:cXM04WS8
>>469
serialize(イメージID)としてみましたが駄目でした
0471nobodyさん2006/07/30(日) 22:39:19ID:???
>>470
これ試してみな
ob_start();
imagejpeg($im, NULL, 75 );
$x = ob_get_clean();
0472nobodyさん2006/07/30(日) 22:43:40ID:???
コンポーネントのscrollpaneの中に何を何個入れるか、をxmlで定義しようとしてます。

で、読み込ませるためにリンケージを貼ったMCの中でXMLをonLoadして、
そのXMLの定義にしたがって画像などをloadMovieしてるんですが、
何故かスクロールペインにスクロールバーが出ません

XMLのonLoadや画像のloadMovieが時間差を生んで、読み込み以前の状態が反映されてるのかと思い、
スクロールペインのonEnterFrame( )に
redraw( )をつけたりしてるんですが、
特に効果はありませんでした。

こういう時はどういう処理でスクリプトの流れを作ればいいんでしょうか
よろしくおねがいします。
04734722006/07/30(日) 23:01:14ID:???
すいません、スレッドを間違えました
0474nobodyさん2006/07/31(月) 00:53:18ID:???
>>422
その理屈はわかるけど、だからってfopenがダメでsocketはOKってのはおかしくないか?
0475nobodyさん2006/07/31(月) 00:57:11ID:???
>その理屈はわかるけど

わかってねーよww
0476nobodyさん2006/07/31(月) 01:24:12ID:???
>>475
「推奨されていないから使わないようにすべき」って方の理屈は普通にわかるって意味ね。
allow_url_fopenをオフにするならソケットによるアクセスは全て禁止すると思うけど、そうじゃないシチュエーションってどんなときに起こるの?
0477nobodyさん2006/07/31(月) 01:45:06ID:???
ID表示したら教えてやらんでもない
0478nobodyさん2006/07/31(月) 01:48:53ID:AiuTU73H
>>477
教えてください
0479nobodyさん2006/07/31(月) 03:02:42ID:???
>>463
そもそもPerlならopenでできる、ってのはどうやってるのさ。
このスレでPerlの知識があることを前提に質問するのは間違ってるぞ。

話を聞く限りでは、r+で開いて中身読み込んでtruncateで中身リセットして
あとは必要な行だけfwriteしていけば終わりの気がするけどね。
Perlでもやってることは一緒だと思うんだけどなぁ。
0480nobodyさん2006/07/31(月) 10:11:51ID:???
>>479
中途行を削除するのでも、
その削除行から残り全部は一旦削除して書かなきゃならないってのわかってないとおもうよやつは。
ファイルの、その行だけ削除すればOKだと思ってる。
0481nobodyさん2006/07/31(月) 10:36:29ID:vOs6pv4F
あまり null を気にした事がなくて何時も $a = '' としていたのですが、
$a = null と書くのが常識なのでしょうか?' 
0482nobodyさん2006/07/31(月) 10:39:28ID:???
>>481
いや、それは全然常識じゃないと思う。
0483nobodyさん2006/07/31(月) 10:50:27ID:???
>>482
マニュアルを見てきたのですが
・値がない
・unsetした場合
とかなっていましたが・・・

unset($a)したら変数はなくなりますよね?
だから if ($a)だとエラーが出ると思っていたのですが、あれ・・・
0484nobodyさん2006/07/31(月) 10:54:00ID:???
NOTICEなら出るよ
0485nobodyさん2006/07/31(月) 10:54:06ID:???
>>483
いやだから、$a = ''; も $a = NULL; も、それぞれ「意図があって」やってることであって、
どっちかが常識ってわけじゃないんだよ。
何をやりたいかによって使い分けなきゃいけないものってこと。
0486nobodyさん2006/07/31(月) 11:08:17ID:???
>>484-485
ローカルで色々と試してきました。
結果、noticeすら出なかった・・・。

error_reporting(E_ALL);
ini_set('display_errors',1);

としてあるのですが謎です。

文字が空である事と値がない事は違うという事ですね。
0487(^ω^)2006/07/31(月) 11:35:32ID:???
NULLを代入する方が速いはず。特にPHP 5.1.4以降なら。
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:???
>>489
力技だけど $hoge の先頭に "#" なりを付加して explode にかけて
出来上がった $array[0] の 1 文字目を削除する、とか。
0492nobodyさん2006/07/31(月) 11:53:11ID:CE9HBJM2
>>491
ありがとうございます。
その手を試してみます。
0493nobodyさん2006/07/31(月) 12:10:29ID:???
>>486
さらに言うなら、文字が空、と、値が無い、と、変数自体が無い、はそれぞれ意味が違う。
0494nobodyさん2006/07/31(月) 12:20:44ID:???
>>493
0 と false も追加しといて
最初の頃それで苦労したorz
0495nobodyさん2006/07/31(月) 14:02:13ID:???
「推奨されていないから使わないようにすべき」
「セキュリティ上、好ましくない」
とか、とても便利な逃げ常套句ですね。
それとも、なんですか…
具体的な例を提示できないから、
まさかこんな事言ってるんじゃありませんよね?
0496nobodyさん2006/07/31(月) 14:05:45ID:???
>>495
何に対して言ってるのかを明確に。
0497nobodyさん2006/07/31(月) 14:11:06ID:???
xreaを使っているのですが、extract(〜)と書かなくても勝手に
extract したような動作になってるのは回避できますか・・・

?p=abc

がそのまま$p=abcになってしまっている・・・。
0498(^ω^)2006/07/31(月) 14:24:08ID:????2BP(223)
ヒント:register_globals
0499nobodyさん2006/07/31(月) 14:25:39ID:???
ttp://propanmode.net/
User Agentにシングルクオートを入れてアクセスすると…
0500nobodyさん2006/07/31(月) 14:37:43ID:???
>>499
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:???
>>499
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:???
SQLインジェクションですな。
0503nobodyさん2006/07/31(月) 15:16:32ID:HekLsGeB
#include<stdio.h>

int 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;
}

ってどこがおかしい?
0504nobodyさん2006/07/31(月) 15:18:16ID:???
>>503
お前のレスしてる板
0505nonicebody2006/07/31(月) 15:22:45ID:???
>>503
>>504
久しぶりにわろたw
0506nobodyさん2006/07/31(月) 15:26:48ID:HekLsGeB
mgk
0507nobodyさん2006/07/31(月) 15:52:44ID:???
よくみたらCだな

#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:???
1/3=0
0513nobodyさん2006/07/31(月) 16:07:07ID:???
%f か
0514nobodyさん2006/07/31(月) 16:07:45ID:???
<?php
$pai = 3.141592;
$r = 10;
$h = 12;
$taiseki = 1 / 3 * $pai * $r * $h;
printf('三角錐の体積 = %d', $taiseki);
?>
0515nobodyさん2006/07/31(月) 16:07:46ID:???
頭痛が痛い
クーラー病にかかった
PHPで治すにはどうしたらよいですか?
0516nobodyさん2006/07/31(月) 16:12:18ID:???
頭痛が痛い
0517nobodyさん2006/07/31(月) 16:12:32ID:???
>>515
そと言って走って来い
0518nobodyさん2006/07/31(月) 16:13:35ID:???
>>515
無限ループさせて、ハードディスクの熱でぬくぬく!
0519nobodyさん2006/07/31(月) 16:15:00ID:???
>>517,518
解決しました
ありがとうございます
0520nobodyさん2006/07/31(月) 16:20:30ID:HekLsGeB
ひとつはfみたい。�dクス。他にないですか?
0521nobodyさん2006/07/31(月) 16:24:42ID:???
>>518
CPUだろ
0522nobodyさん2006/07/31(月) 16:28:21ID:HekLsGeB
オワタ。
楽しかった。ありがとう。
■ このスレッドは過去ログ倉庫に格納されています