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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2007/10/22(月) 23:10:36ID:mIlonsko
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 56
http://pc11.2ch.net/test/read.cgi/php/1192092941/

◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0830nobodyさん2007/11/01(木) 14:44:24ID:WVV5m+Xj
>>828
有難うございます!
さっそく組み込んでみます!
0831nobodyさん2007/11/01(木) 15:14:17ID:???
('A`)
0832nobodyさん2007/11/01(木) 16:25:32ID:???
('A`)
0833nobodyさん2007/11/01(木) 18:30:13ID:1mW3wcqf
い ろ は
のようにタブで区切られた文字列を配列に格納するにはどうすればいいのでしょうか?

↓じゃ無理なようで・・・
print_r (array("'".mb_ereg_replace(' ',"', '",'い ろ は')."'"));
0834nobodyさん2007/11/01(木) 18:43:26ID:???
>>833
\tがタブ
0835nobodyさん2007/11/01(木) 18:47:26ID:???
explodeやpreg_splitを知らんということはあるまいな?
0836nobodyさん2007/11/01(木) 18:57:12ID:???
むりくりやるなら
eval('print_r (array("\'".mb_ereg_replace(\' \',"\', \'",\'い ろ は\')."\'"));');
0837nobodyさん2007/11/01(木) 19:11:06ID:???
>>833

$hensu = explode("\t", $str);
08388332007/11/01(木) 19:27:06ID:1mW3wcqf
みんなトンクス。
とりあえず>>837さんのやり方でやります。
0839nobodyさん2007/11/01(木) 19:31:11ID:???
>>836
無茶すんな
0840nobodyさん2007/11/01(木) 21:02:26ID:MsBqEUd7
ユーザーが1〜5個のタグを入力して
人気のタグをランキングにしたいのですが

DBに登録するときユーザーがいくつタグを入力するかが
確定されていないので、どうしてもうまくかけません。

ずばっときれいにかける方法ってありますか?
アイデアお願いします。


0841nobodyさん2007/11/01(木) 21:06:17ID:???
まさかタグの数だけカラムを作ってるんじゃないだろうな
0842nobodyさん2007/11/01(木) 21:09:14ID:MsBqEUd7
え、5個だから
0843nobodyさん2007/11/01(木) 21:14:31ID:???
>>840
つforeach
どの段階で何がどうで困っているのか全然伝わらん。だって書いてねぇし。
質問としては15点。
0844nobodyさん2007/11/01(木) 21:16:50ID:???
テーブル設計と、関連のリレーションを明示しないと答えようがない
集計しやすいよう再設計するなり、SQLこねくり回してなんとかなるならDB板で聞けばいい
PHPとはあんま関係なさそうだが
0845nobodyさん2007/11/01(木) 21:43:54ID:MsBqEUd7
複数のカラムにタグを入れると
やはり集計作業時に言われた通りSQLが複雑そうなので
DB板でききます。

ありがとうございます。

0846nobodyさん2007/11/01(木) 21:45:30ID:???
>>845
あそこはドラゴンボールに例えて質問するのが通例だからな
がんばれよ
0847nobodyさん2007/11/01(木) 22:09:55ID:???
セルはそのままセルでいいのか?
0848nobodyさん2007/11/01(木) 22:17:42ID:???
おっさん自重
0849nobodyさん2007/11/02(金) 00:24:56ID:???
PHPがWindowsアプリ開発に適した言語になる日はくるのであろうか・・・。
PHP触ったあとにC++とかJavaとかやってられねー
0850nobodyさん2007/11/02(金) 00:29:11ID:???
>>849
http://phpspot.org/blog/archives/2007/10/phpwapache.html
0851nobodyさん2007/11/02(金) 00:40:20ID:???
>>850
ちょっと感動した
今後に期待汁
0852nobodyさん2007/11/02(金) 00:41:19ID:fEbvkhE+
apacheにphpのエラーが記録されているんですけど、日時が出力されていないんです。
php.iniの設定とかで表示できたりしますか?
0853nobodyさん2007/11/02(金) 00:42:15ID:???
>>850
Bamcompileのがアプリっぽくない?
0854nobodyさん2007/11/02(金) 00:43:20ID:???
>>850
>タスクトレイに入れると復帰できなかったり

いやあぁぁぁぁぁぁぁ
0855nobodyさん2007/11/02(金) 00:44:14ID:???
>PHPがWindowsアプリ開発に適した言語になる日はくるのであろうか・・・。
Web特化というコンセプトで作ってるんだから一生そんな日はこない。
というかそんな機能いらないし、もしWindowsアプリを開発できるようになっても、
>PHP触ったあとにC++とかJavaとかやってられねー
こんなこといってるようじゃ無理。

PHPが簡単なのはWeb特化だからであって、PHPでGUIアプリ作るとなると、
別の使い方も覚えないといけなくなる。(ウインドウの作成や配置など)

JavaだってWeb用途に限るなら簡単。
0856nobodyさん2007/11/02(金) 00:50:10ID:???
PHPの型宣言しなくていいのとか
クラスの組みやすさとか、そういうのがいいのよ
やっぱりそこは慣れの問題になるのかな・・・
変数に$のついてないのなんてプログラムじゃないやい つД`)
0857nobodyさん2007/11/02(金) 00:58:41ID:???
さすがに型宣言無しでカーネルとかGUI触るのは嫌だw
0858nobodyさん2007/11/02(金) 01:00:16ID:???
PHPって型の変更が楽にできるのがいい
関数実行してあらかじめ返す型を決めなくていいのも・・・
0859nobodyさん2007/11/02(金) 01:04:10ID:???
型の変更なんてキャストでおk
0860nobodyさん2007/11/02(金) 01:17:34ID:???
型無しだな
0861nobodyさん2007/11/02(金) 01:23:23ID:???
>>860
ハハハ、一応笑とくよ

ところで PHP で Windowsアプリとかおっしゃるそこの貴方
PHP-GTKには興味ないの?
0862nobodyさん2007/11/02(金) 01:25:31ID:???
>>861
おおー!こんなものもあるんだー
PHPでGUIといえばWinBinderしか知らなかったけど
これもこれで良さそう

PHPでWindowsゲームとか作れるようになるのも近いかも試練!
0863nobodyさん2007/11/02(金) 01:26:32ID:???
名前しか聞かないよね
0864nobodyさん2007/11/02(金) 01:44:37ID:N3+siSMB
<div><? echo $aaa; ?></div>
<div><? echo $bbb; ?></div>
<div><? echo $ccc; ?></div>

とするのと

$html = <<<_EOD_
<div>$aaa</div>
<div>$bbb</div>
<div>$ccc</div>
_EOD_;

とではどちらが処理は早いのでしょ。2〜3行の話ではなくもっと行数が多いとしてですが。
それとヒアドキュメント内で/*====*/とするとそのまま表示されてしまいますが、
ヒアドキュメント内でのコメントはどう書けばいいのでしょうか。
0865nobodyさん2007/11/02(金) 01:46:00ID:???
処理速度:変わらない
コメント:使えない
0866nobodyさん2007/11/02(金) 01:51:04ID:???
BAMCOMPILEでアプリ開発してる俺は変態ですか
0867nobodyさん2007/11/02(金) 01:53:48ID:???
>>866
Bamcompileは楽しいと思うよ
PHP+WinBinder+Bamcompileの開発ツールみたいなのができたらいいな

PHP-GTKの参考サイトが全くナスorz
スクリプトの実行させかたわかんね\(^o^)/
0868nobodyさん2007/11/02(金) 01:58:29ID:N3+siSMB
>>865
やっぱりコメントは無理ですか。
処理速度が変わらないようなのでヒアドキュメントで整理してきます。
レスありがとうございました。
08698672007/11/02(金) 01:59:04ID:???
ごめんできた
*.phpwにすればいいのか
0870nobodyさん2007/11/02(金) 02:39:13ID:???
>>852
うちのは日付表示されてるんだけどな
debの標準パッケで
0871nobodyさん2007/11/02(金) 02:52:37ID:vzvDJiqR
$array = array("a"=>"aaa","b"=>"bbb","c"=>"ccc")
という配列があったとして、unset("b");とすると、
$array[0]と$array[2]が残りますが、
これを$array[0]、$array[1]と、
インデックスを詰めることは出来ないのでしょうか?
0872nobodyさん2007/11/02(金) 03:02:09ID:???
>>871
そういう関数あるかわからんが
関数作ってみればどうかな?

function 関数名は適当に($array, $del_key){

foreach($array as $key=>$value){

$array_tmp = array();
if($key != $del_key){

$array_tmp[$key] = $value;

}

return $array_tmp;

}

みたいな
0873nobodyさん2007/11/02(金) 03:03:16ID:???
連想配列のキーを維持しつつインデクスを振りなおすのは無理でしょう
新しい配列を作るしかない

ちなみに、何故インデクスの振りなおしが必要なの?
0874nobodyさん2007/11/02(金) 03:06:05ID:???
>>872
これはひどい
0875nobodyさん2007/11/02(金) 03:12:01ID:???
872もひどいが
871もひどい
>$array = array("a"=>"aaa","b"=>"bbb","c"=>"ccc")
>という配列があったとして、unset("b");とすると、
>$array[0]と$array[2]が残りますが、
残りません。
0876nobodyさん2007/11/02(金) 03:28:06ID:???
       ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこい>>871 >>872!!
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |
0877nobodyさん2007/11/02(金) 04:38:56ID:???
$array_tmp = array_values($array);
0878nobodyさん2007/11/02(金) 06:53:05ID:???
数字のindexならaray_mergeで振りなおし出来るけど
$array['a']を$array[0]にするのは無理
0879nobodyさん2007/11/02(金) 10:40:08ID:lfmgScK/
フレームワークなどのソースを見てるんですけど、
includeやrequireした形跡がないのに、
同じファイル内には無いクラスをextendsしたり、
インスタンス化してつかったりしてるのですが、
これってどうやるんですか?
0880nobodyさん2007/11/02(金) 10:48:17ID:???
そのファイルをincludeするファイルで別のファイルをincludeしてたりするんじゃないでしょうかね。
08818792007/11/02(金) 10:52:39ID:lfmgScK/
>>880
なるほど。そういうカラクリですか。
ちょっとファイル数が多いので探すの大変ですが、
もう少し眺めてみたいと思います。
0882nobodyさん2007/11/02(金) 12:00:31ID:???
ドキュメンテーションソフトを使って一覧を作るといいかも
0883nobodyさん2007/11/02(金) 12:01:30ID:I1nYMQiM
チェックして登録するみたいな感じの処理をしたいのですが、

function check($str) {
if ($strに問題がなかったら) {
return true;
}
return false;
}

function touroku() {
if (check($str)) {
登録処理;
exit("登録しました");
} else {
exit("$strも問題があるので登録できませんでした");
}
}

見たいな感じにしようと思ってるのですが、
touroku内でcheckするのはやっぱりおかしいですか?

function touroku() {
登録処理;
}
にして、
if (check()) {
touroku();
}
とかにしたほうがいいでしょうか?
説明下手なのでわかりにくかったらすみません・・・
0884nobodyさん2007/11/02(金) 12:13:14ID:???
check()は登録作業ではないし、手続きの流れが隠蔽されてしまうので
たいていの場合では後者のほうがいいと思う
とんがった人はcheck()はアノテーションとしてtohroku()に後付したりするのかな
0885nobodyさん2007/11/02(金) 13:43:09ID:58QPbX5W
誰か>>714plz
0886nobodyさん2007/11/02(金) 13:49:56ID:???
>>885
「.tpl」を消せばOK
0887nobodyさん2007/11/02(金) 14:00:29ID:58QPbX5W
>>886
>>714以外の方法は無しってことでいいですかね?
改修中のソースにこういう処理してる部分があるのですが、セキュリティ的にどうなの?って思ったので。
0888nobodyさん2007/11/02(金) 14:01:38ID:???
できない。ということを証明するのは難しい。
0889nobodyさん2007/11/02(金) 14:05:34ID:???
>>887
すでに指摘されてることに近いけどURLを開かれないようにね
0890nobodyさん2007/11/02(金) 15:29:12ID:ehHCPDNI
教えてください。
0891nobodyさん2007/11/02(金) 15:39:36ID:???
>>887
俺なら悩まずに修正する
0892nobodyさん2007/11/02(金) 15:40:12ID:ehHCPDNI
phpの特殊文字処理について教えてください。
入力フォームから値を受け取り確認画面へわたすという処理です。
ソースは
入力フォーム
<INPUT class="cell_width01" type="text" onkeydown="if(event.keyCode==13){event.returnValue = false;}" name="mdtt" value="<?php echo htmlentities(stripslashes($info['mdtt'])); ?>">
入力の空チェック
function _notInputed($str)
{
$str = str_replace(" ", " ", $str);
$str = trim($str);

if(0 == strlen($str)) return true;
return false;
}
<test>を入力すると空でfalseが返ってきてしまいます。
htmlentitiesやstr_replaceを使って試してみるのですが、
うまくいきません。

0893nobodyさん2007/11/02(金) 15:44:17ID:???
> if(0 == strlen($str)) return true;

そりゃそうだろ
0894nobodyさん2007/11/02(金) 15:47:20ID:ehHCPDNI
すみません。かえってくるのはtrueでした。
質問の趣旨は、<>を入力すると全部空になってしまうので、
この空チェックでfalseを返すようにしたいんです。
0895nobodyさん2007/11/02(金) 15:49:38ID:???
trueが返るわけないじゃん
0896nobodyさん2007/11/02(金) 15:52:45ID:ehHCPDNI
if(MCMediaInput::_notInputed($mdtt)) $myerr->addErr("タイトル(必須項目)を入力してください。", debug_backtrace());
ここで、呼び出して空の場合はこのエラーメッセージを排出するようにしていますが、
エラーとなるのです。
0897nobodyさん2007/11/02(金) 16:00:00ID:???
コード上は問題ないようだ。
入力がPHPや当該の関数にちゃんと渡ってるかどうかデバックしてみたら。
0898nobodyさん2007/11/02(金) 16:03:20ID:ehHCPDNI
そうですか、ありがとうございました。
デバッグも何度もしているのですが、空なんです。
0899nobodyさん2007/11/02(金) 16:05:21ID:???
いつ空になるのか追跡するんだ。
0900nobodyさん2007/11/02(金) 16:06:43ID:???
>>898
そうですか、それは良かったですね
0901nobodyさん2007/11/02(金) 16:26:49ID:ehHCPDNI
文字チェックする前から空になっているようなので、受取のhtml画面で
処理が必要なのでしょうか?
0902nobodyさん2007/11/02(金) 16:27:49ID:ehHCPDNI
受取・・・入力フォームのことです。
0903nobodyさん2007/11/02(金) 16:55:37ID:VB7V02Tk
ぼくのおかしくなった人生を消してくれるコードをどなたか書いていただけませんか?
0904nobodyさん2007/11/02(金) 17:03:53ID:???
>>901
入力したのにPHPに値が渡らないということ?
$_POSTには入ってるのかな?
0905nobodyさん2007/11/02(金) 17:07:53ID:???
>>903
お前にデストラクタはサポートされてないようだ
0906nobodyさん2007/11/02(金) 17:32:33ID:ehHCPDNI
$_POSTにも値が入ってないようです。
$_POSTで受け取る処理の中でサニタイズする関数を呼び出して
いるのですが空でした。
入力フォームのINPUTの中でonkeydown="if(event.keyCode==13){event.returnValue = false;}"
という部分があるのですが、ここで処理をしているかもしれませんので
調べてみます。
0907nobodyさん2007/11/02(金) 17:40:43ID:???
>>906
とりあえずあやしい場所1箇所ずつに
print_r($_POST);
しとけ
0908nobodyさん2007/11/02(金) 17:41:36ID:???
おまえがphp4の上で生きてるなら
$this = new DNA();
0909nobodyさん2007/11/02(金) 17:57:16ID:ehHCPDNI
$this->obj($input);
ちゃんとtrueを返せるようにがんばります。
ありがとうございます。
0910nobodyさん2007/11/02(金) 20:21:16ID:???
神様おしえてください
3,000のような数字のカンマを抜いて3000にするにはどうすればいいですか?
0911nobodyさん2007/11/02(金) 20:22:59ID:???
$hoge = '3,000';
echo str_replace(',', '', $hoge);
0912nobodyさん2007/11/02(金) 20:23:43ID:???
>>911
はぇえええええええええええええええええええええええ
神様ありがとう!!!!!!!!!
0913nobodyさん2007/11/02(金) 21:02:40ID:???
スレタイどおり
0914nobodyさん2007/11/03(土) 01:12:45ID:Mo1PpAH9
すいません、ローカルにアパッチとPHPをインストールするときに
これはいれとけってものがありましたら教えてください。

pearとmysqlは入れました。zendoptiomizerは検討中です。
0915nobodyさん2007/11/03(土) 01:16:27ID:???
使わない/使えない/使う気ないのに入れる必要は100%ねぇよ。
0916nobodyさん2007/11/03(土) 01:16:43ID:???
必要になったら入れなさいw
0917nobodyさん2007/11/03(土) 01:21:07ID:???
まずdebianを最小構成でインストールするんだ。話はそれからだ
0918nobodyさん2007/11/03(土) 01:31:31ID:???
>>917
う、うそだろ?うそだと言ってくれ!
0919nobodyさん2007/11/03(土) 01:32:58ID:???
ぶっちゃけマジ
0920nobodyさん2007/11/03(土) 01:33:45ID:???
Orz..
0921nobodyさん2007/11/03(土) 01:33:57ID:???
馬鹿野郎!
いまどきOpenBSDだろ常識的に考えて・・・
0922nobodyさん2007/11/03(土) 01:36:25ID:???
スレチ
0923nobodyさん2007/11/03(土) 01:42:42ID:???
>>922
空気嫁
0924nobodyさん2007/11/03(土) 02:09:11ID:Mo1PpAH9
os上にサーバーソフトだけ入れたいんですが、
そういうプログラムで自作OS作ってるひといますか?
0925nobodyさん2007/11/03(土) 02:12:46ID:???
What?
0926nobodyさん2007/11/03(土) 02:13:17ID:???
>>924
まて、何故OSから作る話になる
0927nobodyさん2007/11/03(土) 02:16:22ID:???
OSなんざAjaxで作ってください
0928nobodyさん2007/11/03(土) 02:17:14ID:???
この振り幅はすばらしい
脳がリフレッシュされる
0929nobodyさん2007/11/03(土) 03:54:37ID:WzuvDxLI
バッチで次のようなプログラムfoo.phpを作り、

#!/usr/local/bin/php
<?php

$p = '/root/log';
$i = 0;

while (true) {
 file_put_contents($p, "OK");
 print $i++.":".file_get_contents($p)."\n";
}

# ./foo.phpを2つのコンソールから実行すると、片方が「Bus error」として落ちます。必ずです。
fopen、fwrite、fcloseを使った場合は起きないんですが、これって何なんでしょう?
マニュアル見た限りでは、fopen〜fcloseと変わらないとあるんですが。
LOCK_EXオプションを付けても変わりませんでした。
0930nobodyさん2007/11/03(土) 03:56:04ID:/D2HS3QM
profile.php?user=yamada
というようなファイル名+パラメータのurlを、
profile/yamada/ とする(変換する?)方法ってあるんでしょうか?
ブラウザのURLバー部分に擬似的にディレクトリ構造のように見せてるのか、
それともwebサーバ上に実際に物理的にディレクトリを作ってるのか
わからないですが…
訳のわからない質問かもしれませんが、お願いします
centOS + apache2 + php5 です
レス数が900を超えています。1000を超えると表示できなくなるよ。