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

【PHP】質問スレッドpart16【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/04/07 01:06ID:HTcWOpWf
PHP全般の質問スレです。
上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。

■本家
 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-5
0331nobodyさん04/04/20 19:30ID:nLs300iI
gethostbyaddrでいけたよ。
0332nobodyさん04/04/20 20:21ID:nLs300iI
>>330
very very veryありが�d☆
0333nobodyさん04/04/20 21:00ID:???
ApacheのHostnameLookupは関係ないって
0334zzz04/04/21 13:40ID:1XKUsAKf
http://www.koalanet.ne.jp/~kurui/cgi/
ここのサイトの
くるくるちゃっと2
のIP表示をさせたくないのですが
どうすれば良いですか?
詳しい方居ましたら教えて頂けますか?m(_ _)m
0335nobodyさん04/04/21 13:48ID:???
>>334
ここはPHPスレですよ

中身見ずに言うけど
REMOTE_HOST拾ってる辺りを潰しとけ
0336nobodyさん04/04/21 17:14ID:keTgdueJ
>>334
すでに配布されているスクリプトの改造依頼は
よほどのことがない限り、そっけないレスしかつきません。

もう少し、自分でがんばりましょう
0337nobodyさん04/04/21 19:45ID:???
つーか、perlじゃん
0338nobodyさん04/04/21 23:00ID:???
ハッシュの一部を、キーを指定して抽出したいのですが、
array_intersect() や array_intersect_assoc()、array_slice() や array_filter() も
使えないようですし、何か一発でできる関数ってないでしょうか。

$a から、例えばキーが k1, k2 のハッシュを取り出したいのです。

$a = array(
  "k1" => "v1",
  "k2" => "v2",
  "k3" => "v3"
);

↓

Array
(
  [k1] => v1
  [k2] => v2
)
0339nobodyさん04/04/22 00:43ID:???
>>338
これでは駄目?

$result =array('k1' => $a['k1'], 'k2' => $a['k2']);
print_r($result);
034033804/04/22 02:02ID:???
>339
ありがとうございます。
やはりそういう操作になってしまいますかね。
私はこう書くことにいたしました。

$a_new = array();
foreach(array('k1', 'k2') as $key){
  $a_new[$key] = $a[$key];
}

array_intersect_assoc() が、ハッシュの「キーと値」に対してでなく
「キー」だけに対して intersect をしてくれればいいんですがねぇ…。
まぁ、関数を使ってスマートに書きたいと思っただけなんで
できなければできないで、別に支障はないのですけどね。
どもでした。
0341nobodyさん04/04/22 15:16ID:4jX4Pnw0
激しく既出だと思うんですが...探しきれなかったので
PEARのMail_mimeDecodeを使ってメールの中身を切り出しています。
ドコモのishotから送ったメールだけがうまくデコードできません。

Content-Type: multipart/mixed; boundary="----=NextPart__20040422134952Bound"
となっているために、切り分けられてないと思うのですが、どすればよいでしょう?
Mail_mimeDecode相当のものあるいは、別のクラスなんてのはないでしょうか?

よろしくおながいします。
0342nobodyさん04/04/22 15:27ID:4jX4Pnw0
341でつ。
私が馬鹿ですた。すんまそん。
0343nobodyさん04/04/22 15:38ID:vEkBjwRu
やっと本家のchm版日本語マニュアルが直ったね。
よかったよかった
0344nobodyさん04/04/22 16:14ID:LC8g3h8J
>>343
キーワードが文字化けのやつかい
0345nobodyさん04/04/22 16:50ID:zopVeUQP
>>341

/etc/php.ini

の設定をEUC-JPからSJISにしたら直るかもよ。
0346nobodyさん04/04/23 01:55ID:???
>>344
ヘルプが中国語になってるやつだ
0347nobodyさん04/04/23 10:40ID:0gEdZW4b
アップロードしてから24時間以上経過している画像を削除したいんですが、
filemtime($file)
じゃ画像の時刻取得できないんでしょうか?
filemtime(): Stat failed for 〜のエラがでます。
普通のtxtファイルなんかは取得できました・・。
0348nobodyさん04/04/23 11:06ID:???
>>347
なんでエラーの内容を最後まで書かないの?
エラーの理由を書いてあることがあるのに(Permission deniedとか)。
0349nobodyさん04/04/23 11:21ID:???
まずは質問の仕方を覚えてから書き込めってこった
0350nobodyさん04/04/23 11:23ID:???
8割以上の確率で>>348で解決する。
0351nobodyさん04/04/23 11:41ID:???
横から失礼しますが「Permission denied」ってなんですか?
自分の環境も同じ様な現象が出て困ってました.
業者にpHPを入れ直してもらわないといけないのは困りますんで
なんとか回避する方法を教えて下さい
0352nobodyさん04/04/23 11:43ID:???
>>351
悪いけどPHPやる前にサーバとかそういうとこから勉強しなおしたほうがいい
0353nobodyさん04/04/23 11:50ID:???
>>352
と言う事は原因がサーバにあるという事ですね.
業者に確認してみます!

ありがとうございました!!助かりました
0354nobodyさん04/04/23 11:53ID:???
うわー
0355nobodyさん04/04/23 11:58ID:???
>>353
"サーバとかそういうとこから勉強しなおしたほうがいい" != "原因がサーバにある"
0356nobodyさん04/04/23 12:11ID:???
業者さんかわいそ・・・
0357nobodyさん04/04/23 12:28ID:???
いくらなんでもネタでしょ?
0358nobodyさん04/04/23 13:21ID:???

http://****/test.php?htm=/*****

で動いているスクリプトを

http://****/test.php_htm=/***** 「_」で動作させるにはどこを改造したらいいでしょうか。

0359nobodyさん04/04/23 14:01ID:???
351です.

あの後、業者に症状を伝えて環境の修正を依頼したら対応して頂けました!
やはり、サーバ側の設定が問題だったようです.
それに伴い、スクリプトの修正が必要だったらしく、併せて修正してもらいました.
修正内容を今から確認したいと思います!

取り急ぎ、教えて頂いた方にお礼を申し上げます
ありがとうございました!本当に助かりました
0360nobodyさん04/04/23 14:06ID:???
ここで聞くのが間違いだ・・
0361nobodyさん04/04/23 14:46ID:???
>359
>スクリプトの修正が必要だったらしく、併せて修正してもらいました

良い業者だな
普通はスクリプトの手直しなんかやってくれんぞ
どこの鯖屋か知りたい
0362nobodyさん04/04/23 14:48ID:???
>>358
Apacheを改造したらいいよ。
0363nobodyさん04/04/23 15:36ID:???
>>362
> >>358
> Apacheを改造したらいいよ。

すいません意味がわからないです。
0364nobodyさん04/04/23 15:44ID:???
>>358
その前になんでtestが全角なんだ?
0365nobodyさん04/04/23 15:58ID:???
>>364
> >>358
> その前になんでtestが全角なんだ?

あ、すいません半角のつもりが全角になってました。

メインは「?(クエスチョン)」を「_(アンダーバー)」にしてもスクリプトが実行されるようにするにはどうしたらいいのかと言うことでして。

0366nobodyさん04/04/23 16:13ID:???
>365
そんなことはしないでください
どうしてもするなら、世間一般のインターネットとは
激しく隔離されたネットワークでひっそりやってくだちい
0367nobodyさん04/04/23 16:22ID:???
351です.

>>361
業者が作ったスクリプトだったんで直してもらえました.
納品後は当方で修正する事になってたんですけど
症状を話したら「すぐに直します」と言ってくれました!
0368nobodyさん04/04/23 17:05ID:???
>>367
そんならはなっからここで質問するなと
0369nobodyさん04/04/23 17:06ID:???
>>365
なぜ「?」をセパレータに使っているのか
考えたことも無いのかな?

>>367
いい業者だ
0370nobodyさん04/04/23 17:29ID:???
いい業者かどうかはわからんな

1.クライアントの尻拭いもしてくれる本当に親切な業者
2.クライアントが351のような質問を投げるレベルなのをいいことに
 吹っかけているので、それがばれないように親切を装っている

他には?
0371nobodyさん04/04/23 18:47ID:???
普通1は考えられんだろ
0372nobodyさん04/04/23 20:09ID:???
>>370
> 他には?

3.単に自分がルールになったつもりで業者の善し悪しを語る>>370が馬鹿だというだけ。
0373nobodyさん04/04/23 20:15ID:???
スキルもないのに、わからないと回答になってないレスを付ける奴が多いな。

>>371,>>370,>>368,>>366,>>360,>>352 あたり

余裕がないね。
0374nobodyさん04/04/23 21:08ID:???
あんたもその一人のようだな。
0375nobodyさん04/04/23 22:38ID:???
>>374
子供はおねんねの時間だぞ
0376nobodyさん04/04/23 23:25ID:DLBJE4jS
$_GETを使わず行くとなればアンダースコア以降をsplitさせるわけだが、
そんなあほな事するのか。実際。
0377nobodyさん04/04/23 23:30ID:???
>>376
それ以前の問題だと思うのだが。
0378nobodyさん04/04/24 00:50ID:???
(´-`).。oO(そう思うなら代わりに回答すればいいのに・・・)
0379nobodyさん04/04/24 00:57ID:???
既に答えているレスがあるのに、
さらに見当違いなレスに返しただけなんだけどな。
0380nobodyさん04/04/24 09:50ID:???
そろそろ新題の季節です(・∀・)
0381nobodyさん04/04/24 10:39ID:???
何となくオブジェクト指向がわかってきましたが、
永続化がいまいちわからないです。
MVCスタイルで開発をするとすれば、
DBラッパークラスを作って
モデルクラスからそいつに関連を張るってことでいいんでしょうか?
その場合DBラッパークラスは
モデルクラスごとに、DBラッパークラスを継承したクラスを別々に
使うべきなんですか?
0382nobodyさん04/04/24 13:43ID:???
質問です。

月の単位を"05"とか"07"とか、ゼロを付けて二桁に成形してるんですが、
その数字に引き算、加算した時に、
同じく二桁になるようにしたいんですが、どうしたらできますか?

つまり、"05" - 1 = "04"(四月)みたいな。

初心者の自分が考えたのは、単純に計算結果後に

if ( $result < 10 ) "0" . $result;

みたいなのですが、普通はどうやって処理するんでしょうか?
0383nobodyさん04/04/24 13:47ID:???
sprintf('%02d',$result);
0384nobodyさん04/04/24 13:52ID:???
>>382
普段は整数型(int型)で計算しておいて、
出力時にprintf("%02d",int);必要によってsprintfでいいんじゃね。
0385nobodyさん04/04/24 13:56ID:???
>>381
そういう質問はPHP MLにしたほうがいいと思われ。
ここ初心者用だから。
0386nobodyさん04/04/24 14:09ID:???
>>383
>>384

ありがとうございます、できました…
0387nobodyさん04/04/24 14:22ID:???
>>385
別に構わないだろ。
0388nobodyさん04/04/24 14:46ID:???
>>387
ここできいても誰も答えられたいって言いたいんだろ
0389nobodyさん04/04/24 17:45ID:???
phpのページで、ページ内アンカーに移動するにはどうしたらいいんでしょうか?

いや、普通に呼び元からhoge.php#hogeとさえやってれば移動できますが、
ジャンプ時点ではアンカー貼れてないんですよね。
呼び元の方では、

http://www.hogehoge.net/hoge.php?a=b&b=c&c=d&d=e&e=f&anchor=hoge

という風に、変数の中の一番最後にアンカー用のパラメータをくっつけてフォーム送信してます。
で、方法としては、このanchor=hogeのパラメータを利用して

header("Location: ?a=b&b=c&c=d&d=e&e=f#hoge");

みたいな形でリダイレクトさせるしかないんでしょうが、
これだとGETでしか投げれないじゃないですか?
GETではなくPOSTで投げたいのでこれでは困ります。

他にjavascriptでPOSTする方法もあるようですが、
ブラウザ環境に依存するため使いたくないんです。

何かページ内アンカーに移動する良い方法ってないでしょうか?
0390nobodyさん04/04/24 18:47ID:???
>>389
>いや、普通に呼び元からhoge.php#hogeとさえやってれば移動できますが、
>ジャンプ時点ではアンカー貼れてないんですよね。

意味が判らん。アンカー位置にポジションを「移動」
しているのはブラウザのお仕事。ブラウザで解釈される
動的に生成したhtmlにアンカーが設定されていない?
クライアントサイドで弄ってなければ、生成したhtmlは
静的なものでそ。おかしな話
039139004/04/24 18:59ID:???
ああ、なんとなくやりたい事は判った。

俺ならhtmlのmetaでHTTP-EQUIV="Reflesh"使ったツーアクション。
これもブラウザに依存はするが、寧ろHTTPのLocation使うより
依存度が少ない(問題が起こりにくい)

遷移元でjavascript使って切り替えたりするのは
問題が起こりやすいので止めた方がいい。
0392nobodyさん04/04/24 20:01ID:7aagULwH
Perlでの「use strict;」に該当するようなものはphpにはないのでしょうか?

変数をキチンと定義して利用したいと思っているのですが。。。
0393nobodyさん04/04/24 21:24ID:???
>381
アクセス制限で書けなかったので遅レスです。
私は DB ラッパークラスと DB アイテムクラスを書いて
DB アイテムクラスがラッパーを使うという形にしてます。
特に問題なく使えてます。

(ていうかこれはデザパタ系の話になるので
 あまり MVC とは関係ないとは思いますが)

DB ラッパークラスはクエリ関係インターフェースを持ち、
DB アイテムクラスは、データと
自身のデータベース更新のためのロジックを保持しています。
0394nobodyさん04/04/24 21:30ID:???
>>393
ども〜

永続化させたいクラスごとに
DBアイテムクラスを作るってことでしょうか?

DBアイテムとDBラッパーの間は関連をはるんですか?
なんとなく継承かなって気がするんですけど
どうなんでしょう。
0395nobodyさん04/04/24 22:03ID:???
>394
関連ってなによ?
委譲のことをいっとるのかね?

あと、どんなスタイルでも別に構わんが、
オブジェクト指向であるならば、むやみやたらと継承を使うべからず。
DBラッパーがDB自体をラップしたものであり、
DBアイテムとやらがDBに保存されるデータの単位を扱うものならば、
そこにどういう継承関係が存在するのか考えてみれ。

結論をいえば通常、>393が書いたような実装でいい。
その他、必要な処理があれば、DBのラッパーとDBデータをラップするクラスの間に
もう一枚噛ませるなどすればいい。

それと、最初からスマートな実装を無理して目指さず、
自分なりの知識で工夫して書いてみれ。
人の聞いて猿真似しても技術は身につかんぞ。
特にPHPの場合、クラス周りの仕様はルーズだから
実際に実装して動作を確かめて理解することが重要。
0396nobodyさん04/04/24 23:29ID:???
空回り〜
0397nobodyさん04/04/25 11:27ID:???
perlプログラムを複数起動できるタブブラウザみたいなソフトってないですか?
039839304/04/25 11:29ID:???
>394
> DBアイテムとDBラッパーの間は関連をはるんですか?
> なんとなく継承かなって気がするんですけど

「DB アイテムクラスがラッパーを使う」って書いたやん…。
>395さんとかどういう実装にしてるかちょっと興味ありますけど
DB ラッパーなんて単純ですから、個々で使いやすいように
好きなようにデザインしていいと思いますよ。

私は環境の関係で使わなかったけれど、
PEAR のラッパークラスとか使ってもいいと思います。
0399nobodyさん04/04/25 11:30ID:???
>397
コンソール窓を複数開くか、
タブブラウザで複数起動すればいいのでは。
複数起動の意味が曖昧でよくわかりません。
040039704/04/25 11:56ID:???
>399
レスthxです。

.plプログラムを複数同時に実行したいと思ってます
コンソール窓をたくさん開くと重いので
タブブラウザみたくメモリ消費を減らせるようなソフトはないかと思いお聞きしました。
0401nobodyさん04/04/25 12:03ID:???
>>400
使ってるOSはなによ
そのバージョンはなによ
そしてこのスレのタイトルはなによ
0402nobodyさん04/04/25 12:33ID:???
>>395,398
ありがとうございます
よく理解できました。
もし僕があなたの部下でこんな質問したら
「こいつ馬鹿だな。プッ」
ってかんじですか?
ぼく来年からSEになるんです・・
0403nobodyさん04/04/25 12:43ID:???
>>402
お前がSE?
大人をからかっちゃいかんよ
まだPGの底辺あたりだろうが
0404nobodyさん04/04/25 12:51ID:???

 お ま い ら 釣 ら れ 杉 
040539804/04/25 12:55ID:???
>402
実は私も就職活動中です。お互いがんばりましょう。
新入社員のプログラマも、文系・理系の人が半々くらい
占める企業もあるそうです。
つまりプログラミング経験のほとんどない人も PG になれます。
研修など一通りあるでしょうし、あなたのように向上心があれば
すぐ追いつき追い越せますよ。
# 決して馬鹿だなんて思いません。
0406nobodyさん04/04/25 12:58ID:???
就職活動に必死になれ、こんなところに来る暇があるなら


と釣られてみる
0407nobodyさん04/04/25 12:59ID:???
>>405
そりゃなれる。PGなんてのは誰でもなれる
SEがPGができて”当たり前”なんだから
0408nobodyさん04/04/25 13:03ID:???
プログラマ・SEの話は プログラマ板でどうぞ。
ここはPHPスレです。
040940204/04/25 13:08ID:???
>>405
ありがとうございました。
がんばります。

>>406
終わりました

>>408
ごめんなさい。
0410nobodyさん04/04/25 13:37ID:???
>>409
チョソだったのか・・・
活動中ですと言っておきながら終わりましたって・・
日本語勉強しろよ
0411nobodyさん04/04/25 15:06ID:0YVuipoQ
>>410

>>402は就職活動中とは書いていないよ。
「来年からSEになる」って言ってる。

就職活動中なのは>>398=>>405
0412nobodyさん04/04/25 15:57ID:???
>>411
ああそうだった

しかしこいつ、なんで俺にレスしたんだ
就職活動って上でレスしてる奴が答えるのが筋だろうに
041338904/04/25 16:40ID:???
>>391
おくれましたけど、ありがとうございます。
できました。
0414nobodyさん04/04/25 17:00ID:???
・PHP板でPerlネタ
・質問内容は低レベル、ググらない
・春の就職ネタ
・SE/PGネタ

リア中ならともかく社会人になろうって年齢がこんな事で悩むかよ。フル装備で釣りだろ。
もうスルーしる。
0415nobodyさん04/04/25 20:57ID:???
質問です。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
<?
//php
?>
//ここにhtmlのフッタがあるけど略
</body></html>

と、このようなファイルでphpを動かしているんですが(拡張子は.php)、
php内 (<? ?>内) でreturnを入れると、フッタ以降の部分がすっとばされてしまいます。

<?
//php
?>

の部分のみの残処理をすっ飛ばすのが目的なのですが…。
returnやexit、breakなど色々試してみても結果は同じでした。
どなかか間違ってる部分を指摘していただけないでしょうか。
0416nobodyさん04/04/25 21:38ID:???
if文を使う
関数にする
別ファイルにする
0417nobodyさん04/04/25 22:09ID:???
$pos = array_search ( $fruits , $f_list );

print $fruits . "<br>";
print_r ( $f_list );
print "<br>" . $pos;

と、こんなコードを書いたら

バナナ   //$fruitsの中身
Array ( [0] => りんご [1] => みかん [2] => バナナ [3] => メロン )   //$f_listの中身

と、こういう答えが返ってきたんだけど、なぜかarray_searchの結果 $pos だけが返ってきません。
ちゃんと配列の中にバナナ入ってるのに。

なんで?どこがおかしいんでしょうか?
0418nobodyさん04/04/25 22:16ID:???
>415
returnはそのファイルの処理をそこで中断して呼び出し元に戻る

hoge.php
<?php
echo "ho";
return;
echo "ge";
?>

fuga.php
<?php
include("hoge.php");
?>
0419nobodyさん04/04/25 22:23ID:???
>>416
ありがとうございます。
フッタ以下を関数にすることにして、returnとセットで呼び出すことにしました。
0420nobodyさん04/04/25 22:25ID:???
>>418
あ、別ファイルってそういうことですか。
確かにそういった方法もありますね。
ありがとうございました。
042141704/04/26 00:21ID:???
自己解決。
配列の各項目に改行が入ってただけでした。
あしからず。
0422nobodyさん04/04/26 13:36ID:???
http://f13.aaacafe.ne.jp/perlvsphp/
0423nobodyさん04/04/26 20:30ID:v21IQMwx
viを使って慣れてきたときの事を思い出しつつ…

viでカーソルを動かすとき、HJKLでは動けるが、カーソルキーでは動けない。
そんな束縛感にひたり、ニヤリとしてしまう。
長井秀和です。

viの話。
viに慣れてきた奴は、Windowsのメモ帳でも間違えたときEsc連打しちゃう。間違いない。

viに慣れてきた奴は、秀丸のあのボタンの絵のセンスはどうにかならないものかと思っている。
間違いない。

Excelで入力をミスったときにEscを押すんじゃない、入力した内容が消えてしまうぞ、気をつけろー!!

viに慣れてきた奴は、アレを使うときCtrl-c、Ctrl-sしか知らなかったりする。間違いない。

viに慣れてきた奴は、矩形選択にちょっとあこがれている。間違いない。
0424nobodyさん04/04/26 21:00ID:???
秀丸でも矩形選択はで切るんだよな。
で、vi(vim)の折りたたみ機能がほすい。
スレ違いスマソ
0425nobodyさん04/04/26 21:43ID:???
>>424
いいよいいよ過疎地ですから盛り上がればそれでよし。
それにしても矩形選択なんて使ったこと無いよ(´・ω・`)ショボーン
0426nobodyさん04/04/27 00:16ID:???
>>423
長井秀和が、一回のコントで「間違いない」と言うのは、
精々3〜5回程度である。間違いない。
0427nobodyさん04/04/27 11:47ID:???
PHPで、文字列の中にある < を <に変えるには、どうすればいいですか?
0428nobodyさん04/04/27 11:48ID:???
間違えた・・・もう一度入力します、すいません
PHPで、文字列の中にある < を &lt;に変えるには、どうすればいいですか?
教えてください、お願いします
0429nobodyさん04/04/27 11:53ID:???
>>428
htmlspecialcharsみたいな事をしたいの?
043042804/04/27 11:54ID:840uECrU
>>429

まぁ、< を&lt;に変えればかまいません
■ このスレッドは過去ログ倉庫に格納されています