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

【PHP】くだらねぇ質問はここに書き込みやがれpart2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/01/09 06:01:24ID:tJkdKk+e

お前の下らない質問に回答があるかも知れないスレッドです。
0413nobodyさん05/01/20 15:29:09ID:n01d2Bgc
数字を昇順に並び替えようと「sort」(以下プログラム)を実行したところ、�Aのようになってしまいました。
�Aを
array(5) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [3]=> int(3) [4]=> int(4) }
のような結果にするにはどのように書き換えればよいですか?


$array = array(3,4,2,0,1);
var_dump($array); // ←�@
$array = sort($array);
var_dump($array); // ←�A


�@の結果
array(5) { [0]=> int(3) [1]=> int(4) [2]=> int(2) [3]=> int(0) [4]=> int(1) }

�Aの結果
bool(true)
0414nobodyさん05/01/20 15:40:59ID:???
sort($array);
0415nobodyさん05/01/20 15:47:10ID:???
>>413
マニュアルをジーーーーーっと10分間。
0416nobodyさん05/01/20 16:50:43ID:???
void sort ( array array [, int sort_flags])
↑
0417nobodyさん05/01/20 20:48:12ID:???
ぶっちゃけこの仕様の方がどうかと思う木曜日の夜
0418nobodyさん05/01/20 20:59:14ID:???
配列をコピーしまくるのはイカガ谷^hなものかと。
0419nobodyさん05/01/20 21:46:00ID:???
>>398の件ですが、FreeBSDのRWINが小さすぎるのが原因と判明しました。
増やしたら直りました。
0420nobodyさん05/01/20 23:10:09ID:???
>>417
何のためのハッシュか
0421nobodyさん05/01/21 00:20:31ID:???
配列関数ってまだ開発途中まきがする。
引数の順番とかあきらかにまちまち
0422nobodyさん05/01/21 09:50:11ID:???
PHPの配列関数は、
each(), reset(), current(), next()などの内部ポインタを使った
古い関数群からはじまって、あとからあとから考えなしに
そのとき便利だろうと思いついた関数が追加されまくっているのだよ。

統一性も思想もなにもあったもんじゃないぞ。
0423nobodyさん05/01/21 10:13:18ID:???
だがそれがいい
0424nobodyさん05/01/21 11:48:09ID:???
システム入れ替えでPHPのバージョンがズガーンと上がってしまい
仕様変更による書き換えに苦しんでいまつ・・・・・・

すまん、裏が白いチラシがなかったもんで。
0425nobodyさん 05/01/21 11:53:33ID:3XYRh2Rh
ページにアクセスしたときに今月のログファイルが無かったら
自動でログファイルを生成する方法はないでしょうか?

今は空ファイルをコピーすることで対応しています。

$getmon = gmdate("Ym", time()+9*3600);
$monlog = "./log/$getmon.log";
$empdata = "./log/empty.log";

if(!file_exists("$monlog")){
copy($empdata, $monlog);
chmod($monlog, 0666);
}

しかし、この方法だとエラーが起きてしまいます。
何かいい方法があれば教えてください。
0426nobodyさん05/01/21 11:58:15ID:???
>>425
aでいけたんじゃなかったっけ?
0427nobodyさん05/01/21 12:17:21ID:???
エラー内容は?
042842505/01/21 12:19:23ID:3XYRh2Rh
>>426
aとは?なんでしょう?
PHP5だとOKなんですがPHP4だとだめみたいで、
ちなみnレンタルサーバーがPHP4なんで…orz イミナイ
042942505/01/21 12:22:16ID:3XYRh2Rh
>>427
パーミッションなんたら…
./log/200501.logファイルが見つかりません

ちなみにempty.logのパーミッションは666です。
0430nobodyさん05/01/21 12:52:06ID:???
質問です。

あるサイト(全部php4とmysql)で、
IDとパスワード(Basic認証でなくformの)で入れるページがあり、
入ったあと、特定のURLのページのソースをまるごとゲットしたいのですが、
どう新しくスクリプトをかけばいいのでしょうか?


なお、「あるサイト」と「新しいスクリプト」は同じサーバ上にあり、
fopenやソケット通信は許可の設定になってます
0431nobodyさん05/01/21 13:05:57ID:???
>>428
http://jp2.php.net/manual/ja/function.fopen.php
のオプションかと。
でもそれ以前に
"./log"ディレクトリが見えてないとおもわれ

>>430
http://pear.php.net/package/HTTP_Request
これでも使ってブラウザをエミュレートしれ。
 ログイン→受け取ったCookieをセットして欲しいページへリクエスト
でできるかと
0432nobodyさん05/01/21 13:37:16ID:???
>>429
logディレクトリのパーミッションを707とかにすればいいと思う
0433nobodyさん05/01/21 13:53:35ID:???
>>425
なんでログ生成時に書き込みしないの?
空ログだけを作りたいの?
043443005/01/21 14:01:27ID:???
すみません、pearいれてない(キマリでいれられない)んです。。。
で、lynxコマンドはいってません(いれなれない)
で、wgetははいってます。
systemコマンドは使えます。

なお、4.9-RELEASE FreeBSD です
043543005/01/21 14:14:16ID:???
ちなみに、perlでhttpクライアントを自作したことはあります
0436nobodyさん05/01/21 14:29:35ID:???
>>430
ならperlでやれ。
それかPEARを入れられない理由を述べよ。
入れられなくてもコードを参考にすることはできるんだから見てみれば。

#我ながら支離滅裂w
0437nobodyさん05/01/21 14:29:57ID:???
>>435
それができるならperlのをphpに書き直せばいいだでは。。。
ttp://jp2.php.net/manual/ja/function.fsockopen.php
でソケット開いてHTTPをしゃべればいいだけかと
0438nobodyさん05/01/21 14:36:13ID:???
>>430
fopen()ぢゃ駄目なの?
0439nobodyさん05/01/21 14:57:51ID:???
$a = array('12', '40', '9', '01');
var_dump($a); //←natsort前

$a[] = natsort($a);
var_dump($a); //←natsort後

natsort前
array(4) { [0]=> string(2) "12" [1]=> string(2) "40" [2]=> string(1) "9" [3]=> string(2) "01" }

natsort後
array(5) { [3]=> string(2) "01" [2]=> string(1) "9" [0]=> string(2) "12" [1]=> string(2) "40" [4]=> bool(true) }

以上のように、配列を並び変えを行ったところ、
並び替えは正常に行われるのですが、配列の一番最後に「[4]=> bool(true)」のようなものが加わってしまいます。
natsort後の結果を
array(5) { [3]=> string(2) "01" [2]=> string(1) "9" [0]=> string(2) "12" [1]=> string(2) "40" }
のようにするには、どのようにすればよいのでしょうか?
0440nobodyさん05/01/21 15:02:50ID:???
>>439
413と同じやつか?それともネタか?
$a[] = natsort($a);
↓
natsort($a);
0441nobodyさん05/01/21 15:03:53ID:???
ネタだろ…
044242505/01/21 15:04:50ID:???
>>431-432
その通りですね。
家帰ったら試してみます
0443nobodyさん05/01/21 15:08:05ID:???
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

コード以前の質問はここ。

具体的なPHPのコードに関する質問は↓

【PHP】質問スレッドpart26【php】
http://pc5.2ch.net/test/read.cgi/php/1103636095/

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
★                                               ★
☆ 新規質問は名前欄・メール欄を空にして行え                  ☆
★                                               ★
☆ 質問者が返信する際は、名前欄に「最初に質問したレス番号」を入れろ  ☆
★                                               ★
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
0444nobodyさん05/01/21 16:48:01ID:???
オブジェクトをセッション変数にして持ち回りって 

$hone = new Hogehoge;
$_SESSION['hoge'] = &$hoge;

ではできないんでしょうか?
0445nobodyさん05/01/21 16:48:51ID:???
間違えた 一行目は

$hoge = new Hogehoge;

です。 >>444
0446nobodyさん05/01/21 17:25:19ID:???
できなかったの?
0447nobodyさん05/01/21 18:00:33ID:???
横やりで申し訳ありませんが、出来るものなの?
なんか前にやって失敗した気がするんだけど
効率面ではどうなんだろう
044842505/01/21 18:11:38ID:???
空ログだけ作りたいんです。
ひと月に一度だけ生成するので。
書き込みもしたほうがよいです?
0449軟式PHP05/01/21 18:12:36ID:???
普通に出来るよ。
0450軟式PHP05/01/21 18:17:14ID:???
>>447
ショッピングカートを作る際に実装したけど便利だったよ。
0451nobodyさん05/01/21 18:19:27ID:???
遷移先でHogeHogeクラスの定義が見つからないとか
0452nobodyさん05/01/21 18:46:00ID:???
セッション変数にする場合、そのセッション使うページでクラス定義読み込まないとデータが壊れる罠。
0453nobodyさん05/01/21 18:49:02ID:???
>>448
空ファイルを作るならtouchでいいじゃん
045442505/01/21 20:36:15ID:???
>>453
そんな関数があったんですね。
今回の場合、どんな記述をするのがスマートですかね?
045542505/01/21 20:53:04ID:???
あ、touch(空ログ);でいいのね。
ごめんなさいm(_ _)m
0456nobodyさん05/01/21 22:20:06ID:???
とてつもないバカ質問かもしれませんが、
PHPのバージョンアップをする際、
バックアップしておくべきファイル・フォルダはどれですか?
0457nobodyさん05/01/21 22:24:55ID:???
php.ini
0458nobodyさん05/01/21 22:33:11ID:???
>>456
バージョンアップで上書きされるファイル全部。
該当ファイルの調べ方は、インストールの仕方によるし
場合によっては調べる方法が無い(or泥臭い方法しか無い)場合もある。
0459nobodyさん05/01/21 23:56:35ID:???
PHPとpostgresでアップロード掲示板みたいな物を作っています
アップしたファイルをpostgresにラージオブジェクトとして登録したり
取り出すといった一連の動きは分かったのですが、
私の作った物だとダウンロード後、すべて同じ名前になってしまいます
ダウンロードする時に名前を変える方法がどうしても思い浮かびません
どなたか救いの手をお願いします
(以下作成した物)

<a href="./Get_Object.php?loid=".$file_loid."&type=".$file_type.">ダウンロード</a>


<以下、Get_Object.php内部>
/* PostgreSQL接続 */
$database = 接続用の自作関数が入ります;

/* HTTPヘッダの送信 */
header("Content-Type: ".$_GET['type']);

/* ラージオブジェクトの取得 */
pg_query($database, "BEGIN");

$handle = pg_lo_open($database, $_GET['loid'], "r");
pg_lo_read_all($handle);
pg_lo_close($handle);

pg_query($database, "COMMIT");

/* PostgreSQL切断 */
DB_Close($database);
0460nobodyさん05/01/22 00:10:34ID:???
>>459
move_uploaded_file
0461nobodyさん05/01/22 00:15:27ID:???
>>459
headerでfilename指定したらどうかね
0462nobodyさん05/01/22 00:18:26ID:???
>>460
早速の返事ありがとうございます
move_uploaded_file は確かアップロード時に
TEMPに入っているファイルを指定ディレクトリに
移動させる物ですよね?
今回はラージオブジェクトとしてファイルを管理したいのですが
ダウンロード時にも使用する事は出来るんでしょうか?
0463nobodyさん05/01/22 00:23:03ID:???
>>462
>>461が言ってるようにheaderを使ってファイル名をブラウザに渡す。
こんな感じ。
header ("Content-Disposition: attachment; filename=$filename");
ブラウザの種類やバージョンによって効果が無い場合があるので、
更に幾つかヘッダーを付け足す必要があったかと。
0464nobodyさん05/01/22 00:26:08ID:???
>>462
ファイル名はどんな形で保存しているの?
0465nobodyさん05/01/22 00:32:52ID:???
返信遅くなって済みません

>>461
なるほど!
調べたら出てきました
ありがとうございます

>>463
そうですね
header("Content-Disposition: attachment; filename=ファイル名");
で行けそうですありがとうございます

>>464
ファイル名はアップロード時に$_FILES['file']['name']
で取ってきて同じくDBに保存してます
0466nobodyさん05/01/22 04:20:49ID:j0dmlBBw
459で質問した物です。もう1つ分からない部分が出てきたので
お分かりになる方よろしくお願いします

先ほどまではDBに$_FILES['file']['name'] でとった名前をそのまま
上げていたのですが、バグ取り中に日本語名のファイルをアップロード
しようとしたらInvalid EUC_JP character sequence found (0x8e51)
と言われて怒られてしまいました
とりあえず怒られている内容はEUC_JPなファイル名じゃないからダメって
事だと思ったので、エンコード関数使ってエンコードして見たり
色々して見たのですがさっぱりダメでした
仕方ないので
ereg('[0-9A-Za-z._]',$flie_name)
として英字だけに限定しようかとも思ったのですが、今度は半角英数
だけを入れても上記の判定の部分で止まって上手く行きませんでした。
ファイル名はテキスト文字と何が違うのでしょうか?
回避策を知ってる方教えていただけ無いでしょうか
0467nobodyさん05/01/22 05:01:04ID:???
>>466
Invalid 〜 は、PHPではなくPostgreSQLが出してるエラーで、
「EUC-JPのキャラクタセットでは無いものを見つけた」という意味。

enctype=multipart/form-data の時の入力文字に関しては
PHPのバージョンによって違いがあって、
ttp://www.php.net/manual/ja/ref.mbstring.php#mbstring.http あたりを参照。
0468nobodyさん05/01/22 07:34:39ID:???
>色々して見たのですがさっぱりダメでした
>色々して見たのですがさっぱりダメでした
>色々して見たのですがさっぱりダメでした
0469nobodyさん05/01/22 12:46:47ID:???
ログファイルの3行目だけを空っぽにしたいんだが、どうすればいいんだ?
こんな感じ。

name<>title<>comment<>date<>ip
name<>title<>comment<>date<>ip

name<>title<>comment<>date<>ip
0470nobodyさん05/01/22 12:51:15ID:???
>>469
悩む要素が見当たりません
0471nobodyさん05/01/22 13:18:00ID:???
>>467
ありがとうございます
さっそく参照して解決したいと思います
0472nobodyさんNGNG
SQLをSELECT * FROM UserにしてRecordsetをOpenするとFrom句の構文が間違ってると言われます。
データベースへのパスその他フィールド名などは間違ってないんですが、何で?
0473nobodyさん05/01/22 13:33:43ID:???
           _,,. -‐‐‐‐‐- 、
           lヽ ヽ ヽヽヽ ヽ
           ノ::::゙、 ヽヽヽヽ ゙、
           ヘ:::::::::;;: -‐''''""( )1
            ゙、::::::::-‐''""" ̄"'i
            :V;;||:::: '~ニ=ッ, r='| >>472
             i!f !:::::      ゙、i ピィエィチピィ
             i!ゝ!::::     ‐/リ  PHP 曰く、
             i::/:、 :::、  /''ii'V   オレと関係ねーじゃん
             ハ::::‐-、_"''il|バ''
0474nobodyさん05/01/22 15:28:44ID:T4jXVQZN

スマン、書くとこ間違えたな。しかも自己解決したし。
スレ汚しスマソ
0475nobodyさん05/01/22 17:43:32ID:???
>>458
レスありがとうございます。
諦めてHDDまるごとバックアップします。
0476nobodyさん05/01/22 18:38:07ID:vE/RUN9v
20050122っていう数字を
$year = 2005;
$month = 01;
$day = 22;
って分けるにはどうしたらいいんですか?
0477nobodyさん05/01/22 18:49:03ID:qBMTLwGZ
PHPのリダイレクトで質問。
下記のようなサンプルプログラムを実行してみましたが、リダイレクトされません。
何か別に設定が必要なのでしょうか?

<?php
header("Location : http://XXXXXX/XXXX/XXX.php");
?>
0478nobodyさん05/01/22 18:51:13ID:???
>>476
文字列に変換して、mid系の関数使えばいい。
047947605/01/22 18:57:00ID:???
なるほど!やってみます。ありがとうございます
0480nobodyさん05/01/22 19:00:33ID:???
>>479
おまえ、プログラムの才能(というほどでもないレベルだが)無いと思う
0481nobodyさん05/01/22 19:01:37ID:???

$full = '20050122';
var_dump(strftime('%d',strtotime($full)));
0482nobodyさん05/01/22 19:02:18ID:???
質問させてください。
.htaccessで自作のエラー画面を表示させています。
どのファイルへのアクセスなのかを調べたいため、
エラーページをPHPで作成して解析を埋め込んだのですが、
肝心のファイル名を取得することができません。
$_SERVER['PHP_SELF']を使用すると
エラーファイルの絶対パスが返り、
せめてリファラからファイルが推測できないかと
$_SERVER['HTTP_REFERER']を使ってみましたが、
こちらは値が取れないようです。
0483nobodyさん05/01/22 19:03:04ID:???
>>480
おまえ、プログラムの才能(というほどでもないレベルだが)無いと思う

訳:おまえは、馬鹿だ
0484nobodyさん05/01/22 19:06:53ID:???
>>482
質問させてください。
Apacheのドキュメントも読んでからの質問ですか?
0485nobodyさん05/01/22 19:12:13ID:???
>>477
>リダイレクトされません
じゃあどうなってるのかぐらい書け
0486nobodyさん05/01/22 19:19:04ID:???
ttp://ponk.jp/flash_php/index.php?page=1
このサイトを見て、FlashとPHPの連携を作ってみました。
ランキングに送信した時のURLが名前がnullpo、記録が100の場合
jump.php?name=nullpo&meter=100
となるのですが、このURLの名前と数値を変えるだけで自由にスコアが登録できてしまいます。
これを防ぐにはどのようにすれば宜しいのでしょうか?
0487nobodyさん05/01/22 19:20:03ID:???
書かなくても分かる。
その記述ではLocationヘッダは送信されない。
まあ視力検査だな。
0488nobodyさん05/01/22 19:26:55ID:???
>>479
・・・sscanfのサンプルをミロ
048948005/01/22 19:31:20ID:???
自己解決、失礼しました。

>484
Apacheのことは微塵も思いつきませんでした。
0490nobodyさん05/01/22 19:32:45ID:???
>489
>482の間違いでした
>480さん、騙ってスマソ
0491nobodyさん05/01/22 19:33:31ID:???
>>486
スコアを登録できないようにすればよい。
049248605/01/22 19:36:04ID:???
>491氏
素早い御返答有難う御座います。
申し訳御座いませんが、もう少々詳しく教えて頂け無いでしょうか。
0493nobodyさん05/01/22 19:37:02ID:???
>>486
そんなのは設計上の問題だろ。
暗号化して送って復号するとか好きに考えれ。
0494nobodyさん05/01/22 19:50:15ID:???
誰も>>67に答えないのか?
0495nobodyさん05/01/22 20:07:05ID:???
うん
0496nobodyさん05/01/22 20:28:10ID:???
>>285こいつ好きだ
0497nobodyさん05/01/22 20:33:31ID:???
おれは嫌いだな
0498nobodyさん05/01/22 20:54:19ID:???
うを、>>444 の「オブジェクトをセッション変数で持ち回り」は自己解決しますた。
ふつうにできました。 ありがとうございました。
0499nobodyさん05/01/22 22:10:58ID:???
気が合わないな>>497
やっとこのスレ全部読み終えた(仕事ty
0500nobodyさん05/01/22 22:30:07ID:???
>>477
Locationのあとにスペース入れちゃだめ
0501nobodyさん05/01/22 23:50:03ID:???
>>487
>>500
ありがとうございます。
できました。
神様です。
のべ数週間も悩んでました。
本当にありがとうございました。
0502nobodyさん05/01/22 23:57:58ID:/UkhSKsY
新しくphpの参考書っつーか、そういうものを買ったんだが、
それを読んでいて衝撃を受けた。

PEARやらSmartyやらよくわからんが、色々と使いまわせる便利な機能がたくさんあるらしい。

今までhtml埋め込みとしてしか使ってきていなかった俺はなんだったんだ。
必死になってlogファイルで管理してきたのに。。。

かなりのカルチャーショックだったよ。やっぱりそういう便利な機能って使っていったほうが良いのかな?
0503nobodyさん05/01/22 23:59:58ID:???
>>502
よくわかんないなら使わない方が良い。
ただし、使わないとわかるようにはならない。
0504nobodyさん05/01/23 00:02:14ID:???
>>503
結局使って覚えるor使えるようにならないとだめだな。。。
でも、環境によってソフトの有無もあるしなぁ…(´・ω・`)
0505だいすけ ◆P0//Gikoow 05/01/23 00:38:01ID:myKN9oc6
phpのコーディングをもっとうまくできるようになりたいので、
他人がつくったソースを参考として拝見して、勉強したいのですが、
「このソースを参考にしたらいい」っていうおすすめあります?

なお、速さ重視より保守性重視なほうがいいです。

ふとおもったんですが、pearとかどうなのかな???
0506nobodyさん05/01/23 00:44:58ID:???
ふとおもったんですが、pearってなんだかわかってます???
0507nobodyさん05/01/23 02:29:17ID:???
洋梨。西洋の拷問器具のこと。
0508nobodyさん05/01/23 04:42:16ID:/gwBl8Vq
くだらない質問で話題を変えるけど
PHP-Editorって使いやすい?
http://phpspot.net/php/pg%82o%82g%82o%83G%83f%83B%83%5E%28forWin%29.html
0509nobodyさん05/01/23 06:56:11ID:???
>>508
いまはじめてつかってみたけど、エクリプスとくらべて利点がわからない。

それに、中途はんぱにhtmlも挿入できるゆおうだけど、xhtmlになってないからきらい。
nl2beだってきょうび、<br />に変換するのに
051050905/01/23 06:56:38ID:???
誤字しまくりすまそ。ねむい。ねるわ
0511nobodyさん05/01/23 10:51:10ID:???
>>508
使いにくい、Standaloneと通常版を統合しろっツーの。
機能も中途半端。Eclipse使ってるほうが100倍マシ。まぁ一番いいのはDreamWaeverMXを使うのが最強だけどな。
0512nobodyさん05/01/23 11:15:50ID:???
秀丸最強
■ このスレッドは過去ログ倉庫に格納されています