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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/04/27(金) 10:02:42ID:H9gF1SfB
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0202nobodyさん2007/05/01(火) 14:55:53ID:???
>>199
というか、>>197(=>>180)の返事は、>>182の回答を正しく理解してないんじゃないの?
0203nobodyさん2007/05/01(火) 15:44:06ID:???
>>197
1. 文字列aの長さを測る
2. aが1000文字以内ならループブレイク
3. aを添え字0-998までとそれ以降に分ける
4. 前者の末尾に改行をくっつけて配列にぶちこむ
5. aに後者を代入 1に戻る

いや、冗談だけどさ
改行なんてどこに入っててもいいじゃん
0204nobodyさん2007/05/01(火) 15:50:18ID:???
>>201
そんなのがあったのか
マイナス値がヤバそうだが
0205nobodyさん2007/05/01(火) 16:40:02ID:???
プログラミングで出合った問題と、自分が「こうしたい」という問題を
をごっちゃにして、勝手に混乱するよね、この文字切り・改行厨ってのは。
この手の質問、何度見たか。
0206nobodyさん2007/05/01(火) 17:27:07ID:???
>>205
あー、それ俺が感じていた疑問というかモヤモヤを見事に指摘しているわ。

自分が「こうしたい」という問題を、プログラミング的にに落とし込んでから(または落とし込む方法を)質問するスレです。

とかに変えたほうがいいかも。
PHPに絡むならビジネスロジックだろうとスクリプトの設置・改造方法までOKだと勘違いしてる奴多いからな。
02072062007/05/01(火) 17:29:07ID:???
>>206
あー話の筋からすると、飛躍しすぎたかな。
とにかくそう思った
0208nobodyさん2007/05/01(火) 17:52:41ID:smYMDtq3
PHPとMYSQLでサイトを作ってるのですが、SQLで下記のようにしても
「つ」以降の先頭文字検索でつ以外の文字も抽出されるのですが
どうすればよいでしょうか?
あ〜ちまでの文字は普通に抽出されます。

$str="つ";
$SQL="SELECT * FROM tbl WHERE field1 LIKE '$str';";
0209nobodyさん2007/05/01(火) 18:01:12ID:???
%いらないの?
あと文字コードは何でつか?
0210nobodyさん2007/05/01(火) 18:10:07ID:smYMDtq3
間違いました、こうです。
$SQL="SELECT * FROM tbl WHERE field1 LIKE '$str%';";

文字コードはJISです。
0211nobodyさん2007/05/01(火) 19:15:14ID:EEwZpxpS
PHPは冗談抜きにVBScriptと同様。片や、いっぱしのプログラマとして
雇われ給料もしっかりと払われ、片や、事務職の給料の安い派遣のお姉ちゃんが
一生懸命マクロ・VBAを組んでいる。

これは非常に矛盾です。
0212nobodyさん2007/05/01(火) 19:21:54ID:???
>>211
えーと、それで質問は何?
0213nobodyさん2007/05/01(火) 19:44:59ID:EEwZpxpS
>>212
おねえちゃんがほしいんです!
0214nobodyさん2007/05/01(火) 19:54:56ID:???
>>208についておながいします
0215nobodyさん2007/05/01(火) 19:59:17ID:???
>>214
>>1
02162142007/05/01(火) 20:10:02ID:???
サーバーはwin2003です
0217nobodyさん2007/05/01(火) 20:12:05ID:???
>>216
>>1
0218nobodyさん2007/05/01(火) 20:12:24ID:???
>>216
>>1
0219nobodyさん2007/05/01(火) 20:12:48ID:???
>>216
>>1
02202142007/05/01(火) 20:17:58ID:???
mysqlのバックアップとったら空が20MBになった
エロコレクションを削除したら空が5GBになった

削除する時はverupなみの勇気がいる
0221nobodyさん2007/05/01(火) 20:39:13ID:???
>>208
DBの設定もDBの中身も
phpの設定も動かしてるスクリプトも
全部JISなの?

一応訊いておくけどShift_JISじゃないんだよね?
0222nobodyさん2007/05/01(火) 20:39:41ID:ghVsgOyN
Warning: htmlspecialchars() expects parameter 2 to be long, string given in C:\Program Files\xampp\htdocs\test\form.php on line 77
このエラーはどこを改善すればいいのでしょうか。
htmlspecialchars関数が期待する文字列より長い?という意味だと思うのですが。
何か制限があるのでしょうか。
マニュアルとGoogle先生にはお尋ねしたのですが、分かりませんでした。
0223nobodyさん2007/05/01(火) 20:44:21ID:???
>>222
訳せ
マニュアル読め
0224nobodyさん2007/05/01(火) 20:47:09ID:???
>>211
じゃー、どっちも出来るんならPHPやればいいじゃんw
アホか
02251802007/05/01(火) 20:59:51ID:???
>>205=206

日本語でお願いしますね^^
あと求めているのは答えですからオナニー論理はメモ帳にでもかいててくださいな

軟式さんが仰っているように簡単な問題ではないと思いますが
0226Lisa2007/05/01(火) 21:14:20ID:vsWpEyDK
Perlに関する試験を受けてみたいんですけど、何か良い資格試験
あったら教えて下さい☆ あと、CIWのウェブ言語 PERL基礎って
試験は、受験制約はあるのかなぁ
0227nobodyさん2007/05/01(火) 21:38:47ID:???
>>226
ス レ 違 い
0228nobodyさん2007/05/01(火) 21:50:11ID:???
>>225
別に>>206>>180向けに書いてませんよw
0229nobodyさん2007/05/01(火) 22:16:27ID:???
>>228
いつものレス番偽造君に釣られる奴も奴だな
0230nobodyさん2007/05/01(火) 22:16:57ID:???
俺俺
0231nobodyさん2007/05/01(火) 22:25:19ID:???
まあある意味スレタイに合致してるよな。このスレの書き込み。
「書き込みやがれ」だから、答えるとは言ってないし。
0232nobodyさん2007/05/01(火) 23:00:06ID:???
>>226
Perlは新規案件減ってるし
どっかの誰かが書いた理解不能なコードの修正とかあるからオススメできない
つか、普通Perl案件で資格なんて考慮されない

今プログラマ案件で一番要望多いのはJava技術者
と、人事の人から聞いたが
デスマーチ案件も多いから気をつけろ
0233Lisa2007/05/01(火) 23:02:50ID:???
     ∧_∧
    ( ?д?)  受けたいんですが、なにか?   
    ハ∨/^ヽ
   ノ::[三ノ :.'、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
0234nobodyさん2007/05/01(火) 23:24:19ID:???
PHPのスレッドにPerlの話を書く人はプログラミング自体やめた方がいいと思うよ
0235nobodyさん2007/05/01(火) 23:48:13ID:OxYFPqZQ
classについて質問です。

$obj = new hogeHoge("");

とするクラスの実行箇所が、1ファイル上にいくつもある場合、
それだけで負荷がかかかりますよね?class内部の関数を実行していなくても。

ポイントの仕組みなどを作っている時、
ポイント設定テーブルの読込→会員テーブルの読込→
会員ポイント状況の読込→ポイントの付与→ポイントの更新

など、それぞれに応じて異なるテーブル・classを実行する必要があるので、
newする回数がどうしても増えてしまいます。作り方にもよるでしょうが、
なんどもclassを実行する場合、処理の遅れなどは仕方ないのでしょうか?
0236nobodyさん2007/05/01(火) 23:51:06ID:???
>>235
全部functionでいいんじゃね?
0237nobodyさん2007/05/01(火) 23:51:39ID:???
>>235
「気にしない」が正解。

もうちょっと詳しく書くと、そういうことを気にして性能に影響あるかどうかわからないところで
わかりづらいコードを書くよりもまずは綺麗にわかりやすいコードを書くべし。

性能に問題が出てからはじめて性能測定をして最適化を行うなり、
機材の増強を図るなりすればいいのだ。
0238nobodyさん2007/05/01(火) 23:53:58ID:???
$obj = new hogehoge();
すると、$objん中に何はいるのよ
0239nobodyさん2007/05/02(水) 01:30:41ID:???
設計がおかしいんじゃねー?
ポイント云々ならポイント操作関連を一まとめにしてっていうか、
それを一つのデータ型っぽいものにするっていうのがclassの真骨頂なような
それでなければ普通の自作関数かstaticなclassの関数呼び出しにするとか
0240nobodyさん2007/05/02(水) 01:40:51ID:???
してっていうか
っぽいもの
0241nobodyさん2007/05/02(水) 02:08:52ID:???
>>235
それで負荷がかかってどうしようもないなら
オブジェクト設計に問題があるんじゃないか?
アクションメソッドやDAOで抽象化するのは普通。
どう考えてもインスタンス化じゃなくて中身の処理が悪くて実行時間がかかってると予測するが。
0242nobodyさん2007/05/02(水) 02:42:07ID:???
今、DWでPHP書いてるけど
何かおぬぬめのエディタない?
0243nobodyさん2007/05/02(水) 02:45:14ID:???
>>235
その例の場合インスタンスの生成なんかより
DBとの会話のほうがロスが大きそうなので
ストアドプロシージャ使ったほうがいんじゃね

あとなんとなくだが
リファクタリングの本を一通り読んでみることをオススメする
0244nobodyさん2007/05/02(水) 02:46:04ID:???
>>242
Em or Eclipce
0245nobodyさん2007/05/02(水) 02:55:47ID:???
<TAG>
TEST
</TAG>

タグの間の文字列(上の場合TEST)を抜き出したいのですが、
どういった関数を利用するのがベターでしょうか?
0246nobodyさん2007/05/02(水) 02:57:06ID:???
preg_match
0247nobodyさん2007/05/02(水) 03:03:38ID:???
>>242
DWのほうが使いやすいよ。htmlとも連携してるから補完機能も色分けもDWじゃないとだめな俺様
02482452007/05/02(水) 03:44:54ID:???
>>246
具体的に教えて栗
正規表現苦手ニダ
0249nobodyさん2007/05/02(水) 03:54:38ID:???
preg_match("!<TAG>(.+?)</TAG>!");
0250nobodyさん2007/05/02(水) 03:54:43ID:???
preg_match("/<TAG>((?:(?!<\/TAG>).)*?)<\/TAG>/", $html, $return);
0251nobodyさん2007/05/02(水) 03:56:48ID:???
>>248
preg_matchが正規表現って分かってるなら
大丈夫じゃないか
後は頑張って覚えるだけぽ
0252nobodyさん2007/05/02(水) 04:00:30ID:???
>>249-250
で、どっちが正しいの?
0253nobodyさん2007/05/02(水) 04:01:44ID:???
「!」って何だっけ
0254nobodyさん2007/05/02(水) 04:04:41ID:???
えくすくらめーしょんまーく
02552452007/05/02(水) 04:14:02ID:???
(.+?)
これで改行も認識されますか?
0256nobodyさん2007/05/02(水) 04:16:28ID:???
>>255
ヒント:s
02572452007/05/02(水) 04:18:39ID:???
どなたか250の内容を具体的に解説してくれないでしょうかニダ?
意味的には、
((?:(?!<\/TAG>).)*?)
が</TAG>以外、
という感じなのはなんとなくわかりますが、
(が2個続いていたり:や?の役目がよくわからんです。

>>251
正規表現の本5冊ほど持ってますが、
さっぱりです。初めて英語を勉強したとき以上のカルチャーショックです、
呪文です、あれは。
0258nobodyさん2007/05/02(水) 04:19:39ID:???
>>250
最短マッチしてるなら?!はいらないんじゃね?
0259nobodyさん2007/05/02(水) 04:20:34ID:???
マニュアル嫁
?:は後方参照しない
?!は否定
()はグループ化して後方参照
02602452007/05/02(水) 04:20:42ID:???
>>256
なるほど〜
s修飾子というやつですね、
そのヒントからかなり得るものができた気がします、
ありがとうございます。
0261nobodyさん2007/05/02(水) 04:27:00ID:???
>>257
オライリーの「詳説正規表現」以外は要らない。
1,2,3章の入門編を軽く流したら、4,5章を徹底的に理解すべし。
02622452007/05/02(水) 04:31:02ID:???
レスありがとうございます、
(?!<\/TAG>) はわかりました
((?:(?!<\/TAG>).)*?) の *?は最短マッチですよね。
?:と(?!<\/TAG>)の後ろのドットの役割が説明聞いてもいまいちわからんですね。。。。

preg_match("/<TAG>(.*)*?<\/TAG>/", $html, $return);
↑これではダメでしょうか?

0263nobodyさん2007/05/02(水) 04:35:15ID:???
質問者はID消すなよ、常識的に考えて
0264nobodyさん2007/05/02(水) 04:36:18ID:???
ドットが分からないとか正規表現のリファレンス1行も読んでないだろ、常識的に考えて
0265nobodyさん2007/05/02(水) 05:54:44ID:???
>>259
(?!hoge)は前方参照否定じゃなかたけ、否定とはちょい違う

>>262
(?!<\/TAG>)(.*?)
て書きたかったんじゃね

>>264
どうしてそこにドットが出るのかがわからない、と聞いているんだろ
常識的に考えて
0266nobodyさん2007/05/02(水) 06:23:43ID:???
文字通りの意味と役割だろ
そんなことも分からないってことは修飾子と構文を正しく理解してないってこと。
その2つは最低限理解してから実例に入るべき。
人に教えてもらってコピーするとか改良するとかはその後。
02672082007/05/02(水) 06:50:57ID:???
>>221
Webの方はJISですが、DBはEUC-JPです。
どのようにすればよいでしょうか?
お願いします。
02682082007/05/02(水) 07:44:06ID:e82GvhiD
すみません、DB側はUTF-8でした。
0269nobodyさん2007/05/02(水) 08:08:14ID:???
方法はあるけど分かるように説明するの面倒だから全部UTF-8にすれ
0270nobodyさん2007/05/02(水) 08:46:10ID:UK9OmFrQ
質問です
GETmethodで情報をphpに受け渡した時、受け側のphpでは以下の通りになりました
storeCart.php?num1=45&code1=1&num2=0&code2=2&num3=0&code3=3&num4=0&code4=4

で、このstoreCart.phpに
if($_get['code1']=""){
echo "karadayo";
}else{
echo "「".$_get['code1']."」";
}
と書いたんですが、何も表示されません なぜでしょう?
0271nobodyさん2007/05/02(水) 08:47:05ID:???
$_GET['code1']
0272nobodyさん2007/05/02(水) 08:51:03ID:UK9OmFrQ
>>271
すみません、書き間違いがありました
「」 と表示されました(270の時点で)
271さんの言うとおりにしても、「」のまま変わりません
なぜ??
0273nobodyさん2007/05/02(水) 08:55:03ID:jXkSXyAx
$_GET['code1']=""
だからじゃね
0274nobodyさん2007/05/02(水) 08:56:00ID:???
$hoge = "「"."
0275nobodyさん2007/05/02(水) 09:02:39ID:UK9OmFrQ
>>273
それでした! ハズカシイ。。
$_GET['code1']=="" にしたら解決しました

しかし $_GET['code1']=""  が変なのと echo "「".$_get['code1']."」"; が
まともに動作しないのって別問題と思うんですけどね。。
ともかくありがとうございました
0276nobodyさん2007/05/02(水) 09:19:39ID:jXkSXyAx
>275
空っぽの文字列を代入してるからif式はfalse
だから「」が表示される
ちゃんと動作してるんじゃね?
0277nobodyさん2007/05/02(水) 09:49:23ID:???
確かにそうですね
勉強します…
0278nobodyさん2007/05/02(水) 13:45:41ID:s9SsVluQ
$hoge[0]['name'] = "AAA";
$hoge[0]['value'] = 100;
$hoge[1]['name'] = "BBB";
$hoge[1]['value'] = 10;
$hoge[2]['name'] = "CCC";
$hoge[2]['value'] = 50;

上記のような配列を ['value']値の順に並び替えたい、
つまり
$hoge[0]['name'] = "AAA";
$hoge[0]['value'] = 100;
$hoge[1]['name'] = "CCC";
$hoge[1]['value'] = 50;
$hoge[2]['name'] = "BBB";
$hoge[2]['value'] = 10;
に変更したいのですが、どのようにすればいいでしょうか。
ご教授お願いします
0279nobodyさん2007/05/02(水) 14:15:26ID:???
>>278
$hoge = array(
 array('name' => 'AAA', 'value' => 100),
 array('name' => 'BBB', 'value' => 10),
 array('name' => 'CCC', 'value' => 50)
);

$values = array();
foreach ($hoge as $i => $val) {
 $values[$i] = $val['value'];
}
array_multisort($values, SORT_DESC, SORT_NUMERIC, $hoge);

var_dump($hoge);
0280nobodyさん2007/05/02(水) 17:45:01ID:QSxF3+cO
PHPでrequireとかファイル読み込んだ後でもフレームセットタグ無効になるんでしょうか?
ソースには頭にframesetタグが書かれてて大丈夫だと思うんだけどうまくいかなかったんで
require無くしたらいけたりしたんですけどいまいちよくわからないので詳しくわかる人があれば教えていただきたい
0281nobodyさん2007/05/02(水) 17:49:41ID:???
よくわからんけど、requireをやる前と後のHTMLソースを見比べてみたら何かわかるんじゃないの。
0282nobodyさん2007/05/02(水) 17:58:46ID:???
requireした時のファイルに空白とかが混じっててヘッダが
おかしくなってるんだろ
0283山本山2007/05/02(水) 18:08:43ID:???
たしろん
0284nobodyさん2007/05/02(水) 18:37:16ID:QbFzO5vt
DWでPHP使ってるんだけどオヌヌメの開発環境ってある?
フレームワークやらSmartyやらよく聞くがどんなものかわかんなす
0285nobodyさん2007/05/02(水) 18:44:51ID:???
>>284
フレームワークはフレームワーク。
Smartyはテンプレートエンジン。
まず公式サイトでドキュメントを読め。そしてぐぐれ。
0286nobodyさん2007/05/02(水) 19:58:22ID:???
>>284
DW使いが開発環境なんてたいそれたこといってんな。
0287nobodyさん2007/05/02(水) 20:00:38ID:???
DW使いって所詮はデザイナー上がりだろ?
デザイナー上がりって使えない奴多いよね
0288nobodyさん2007/05/02(水) 20:21:22ID:???
ちょっとログいじるために簡単なログイン機能つけたいんだけど
簡単なログイン機能つけるのって初心者には簡単じゃないなw
同じファイルの中でやろうとしたら混乱してきた
0289nobodyさん2007/05/02(水) 20:29:14ID:???
>>288
pearのパッケージでも漁ってみればいんじゃね
0290nobodyさん2007/05/02(水) 20:30:59ID:ZxrVMRS9
./data/log.txt
id<>pass

aaa.php
$fp = fopen('./data/log.txt','r');
while(!feof($fp)) {
$user = explode('<>',fgets($fp));
}
fclose($fp);
0291nobodyさん2007/05/02(水) 21:18:47ID:???
>>288
初心者が簡単にできたらそれ初心者っていうのか?
つか個人的には簡単なログインくらいなら初心者にも作れて当然だと思うけどさ。
思うに今の君に必要なのは初心者がどうのとか難しいとか愚痴ることることではなく
「マニュアルとちゃんと読む」ことと「参考になる書籍/解説Webサイト」を見て学ぶことだと思うぞ。
0292nobodyさん2007/05/02(水) 23:29:28ID:???
>>291
とりあえず深呼吸してからスレタイをよく読むんだ
0293nobodyさん2007/05/02(水) 23:30:25ID:???
それがどうした
0294nobodyさん2007/05/02(水) 23:56:44ID:???
>289 >291-293
cookieにセッションにcryptに認証状態の維持に有効期限に
初めてのことばっかで情報量多くて…すまん
0295nobodyさん2007/05/03(木) 00:15:12ID:4b9rb2Ka
PHPの問題集みたいなのない?
ZendPHPの問題集買ったが洋書でわけわかんねwwwwww
0296nobodyさん2007/05/03(木) 00:22:50ID:B994S/bS
>>284
PHP5以降を使って
Zend Framework http://framework.zend.com/manual/ja/index.html

Smarty http://sunset.freespace.jp/smarty/SmartyManual_2-6-7J_html/
をおすすめする。

てかその質問内容からしてフレームワークとか無理じゃない?
まずはPHPの基礎とSmartyでデザイン部分を分離するところから勉強してみたら?
0297nobodyさん2007/05/03(木) 00:26:11ID:???
つ【最新版】 
http://smarty.m-takagi.org/ ;
翻訳者のみなさんマジGJ! 
0298nobodyさん2007/05/03(木) 00:31:23ID:x91D8BN0
PHPでランダムバナーをやりたいけどわからん。
誰か作ってください。
javaはいりません。
0299nobodyさん2007/05/03(木) 00:32:06ID:???
>>298
作るのは構わんが、いくらでだ?
0300nobodyさん2007/05/03(木) 00:33:34ID:B+f7twkm
>>298
簡単過ぎる

で、いくら?
0301nobodyさん2007/05/03(木) 00:34:28ID:???
>>297
おお、サンクス。
ぶくまくった!
■ このスレッドは過去ログ倉庫に格納されています