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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2007/05/12(土) 16:42:48ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0002nobodyさん2007/05/12(土) 20:11:37ID:???
2げおt
0003nobodyさん2007/05/12(土) 21:44:14ID:???
とりあえずこっちはsage進行で、できればdat落ちさせて。
0004nobodyさん2007/05/13(日) 00:27:07ID:aU5J+vQg
みなさん実務でPHP開発ってどうやってやってるんですか?勉強とかで使うには
windows環境だからPHPエディタで編集 → 実行でやり易いけど、実務だと
編集するファイルはLinux上にありますよね。わざわざファイルまで移動して
Viエディタで編集してるんですか?eclipseだとリモートデバッグがあるらしいけど
重いし色々めんどくさそうだからもっといい方法ないですかね。私としては
PHPエディタを使いたいんですが;
0005nobodyさん2007/05/13(日) 00:55:42ID:???
>>4
手元のFreeBSDで開発。リモートにはSubversion via sshで同期を取る。
エディタはEmacs。リモートにも一応Emacsをインストールしてある。
0006nobodyさん2007/05/13(日) 00:56:03ID:???
DWかeclipseかマクロが使えるエディタなど。
zendは会社が経費で落としてくれるようなあたたかいところか、自腹で使ってる奴がいる程度
0007nobodyさん2007/05/13(日) 00:57:08ID:???
よくわかんねえけど、向こうのスレと同時進行しちゃえばいいんじゃないの?
0008nobodyさん2007/05/13(日) 09:02:19ID:???
【PHP】下らねぇ質問はここに書き込みやがれ 46
http://pc11.2ch.net/test/read.cgi/php/1178955837/
0009nobodyさん2007/05/15(火) 09:40:09ID:???
vim+マクロ
0010nobodyさん2007/05/15(火) 16:43:27ID:6TG+QTaB
いまeregiを使ってフォームから送られてきたデータに
半角記号があればはじくスクリプトを書いているのですが
$と\だけが正しくはじかれません。

if(eregi("$",$_POST["deta"])){
//もしくはif(eregi("\\",$_POST["deta"])){
return false;
}else{
return true;
}

いちを\$も試してみたのですが上手くいきません。
正規表現でググって見ても明確な答えも出ず
$でググる事もできないので困ってます。

OSはfreeBSD、php4.4.6(レンタルサーバ)になります。
0011nobodyさん2007/05/15(火) 16:53:00ID:???
>>10
正規表現を"で括るのではなくて'で括ってみてはどうか。
0012102007/05/15(火) 17:02:38ID:6TG+QTaB
>>11
すばやい回答ありがとうございます。
今試して見ました。

if(eregi('$',$_POST['data'])){
return false;
}else{
return true;
}

と言う事ですよね、やっぱりダメでした。
詳しく言うと、$が入っていようが無かろうがここで必ず
引っかかってfalseを返すようなのです。

\の方は\が入ってなかろうが必ずtrueを返すみたいです。
しかも$_POST['data']のなかに\しか入れてないのに、print('$_POST['deta']');
したときに、おかしなことに\\と置き換わって表示されている事です。

そのほかの記号#$%等はうまくはじけるので、このレンタルサーバだけの
しようかもしれないと思っております。
0013102007/05/15(火) 17:09:43ID:6TG+QTaB
訂正です
print("$_POST['deta']");
シングルとダブルクオートの使い分けをレスに書いておらず
訂正させていただきます。
0014nobodyさん2007/05/15(火) 17:11:47ID:???
>>13
むこうでやれよ。お前。向こうの質問と、こっちの質問、重複して、しかも違うところあるだろが。
そもそもここはオチスレだ。
0015102007/05/15(火) 17:17:54ID:6TG+QTaB
失礼しました。
こちらに書いた質問は取り消します。
0016nobodyさん2007/05/15(火) 17:21:06ID:???
ある数字の値があり小数点以下値があれば小数点2桁まで表示、なければ少数点を表示しないようにするにはどうすればよいでしょうか?
0017nobodyさん2007/05/15(火) 17:24:35ID:???
>>16
>>8のスレでどうぞ。スレのはじめにおやくそく書いてあるから読んでね。
0018nobodyさん2007/05/15(火) 18:40:28ID:???
そんなにこのスレ使いたくないのなら申請してこいよ
http://qb5.2ch.net/test/read.cgi/saku/1030275652/
0019nobodyさん2007/05/26(土) 20:39:03ID:zAGWqET9
age
0020nobodyさん2007/05/27(日) 10:22:46ID:24TJO5qa
>>13
strpos使えば?
0021nobodyさん2007/05/28(月) 10:05:36ID:efvDy8q4
買い物メモを作っています。
1列目は通しナンバー、2列目しなもの、3列目金額です。
↓画面はこんな感じです。

1,バナナ,100
2,おかし,150
3,牛乳,200

4
品物:[ ]
金額:[ ]
[登録]

カンマ区切りのデータです。
1列目は自動でナンバーを振りたいです。


$data01 = file("data01.txt");
print"$data01[1]<br>";
print"$data01[2]<br>";
print"$data01[3]<br>";
こうすると1行ずつ表示されました。

foreach($data01 as $strdat_data01)
$strbuf_data01 = split(",", $strdat_data01);
print"$strbuf_data01[0]<br>";
print"$strbuf_data01[1]<br>";
print"$strbuf_data01[3]<br>";
これは1行目だけ1つずつ表示されました。

うまくいきません!
どうしたらいいでしょうか?
0022nobodyさん2007/05/28(月) 11:07:00ID:???
>こうすると1行ずつ表示されました。
>これは1行目だけ1つずつ表示されました。
>うまくいきません!
>どうしたらいいでしょうか?

ハァ?
0023nobodyさん2007/05/28(月) 11:30:57ID:IWdKxl1z
質問します。

DBにあるひらがなのデータを引き出して、PHPであいうえお順に並べたいのですが、何かいい方法はありませんでしょうか?
宜しくお願いします。
0024nobodyさん2007/05/28(月) 11:33:57ID:???
ヒィ?
0025nobodyさん2007/05/28(月) 11:42:48ID:???
>>23
DBから取り出すときに、あいうえお順に取り出せばいいじゃん。
0026nobodyさん2007/05/28(月) 11:45:52ID:???
>>25
いやww そのやり方がわからないんじゃないの?wwww
SQLの問題だね
0027nobodyさん2007/05/28(月) 11:53:00ID:IWdKxl1z
>>23,25

回答ありがとうございます!
なるほど!DBで引きださないといけないんですね。

今調べているんですが、ネットじゃ見つかりませんorz
探し方が悪いな。。。
0028212007/05/28(月) 11:53:02ID:efvDy8q4
全行ひとつずつ取り出すにはどうしたらいいのですか?
0029nobodyさん2007/05/28(月) 12:08:51ID:???
>>28
制御構造についてマニュアル見てくるべし
0030nobodyさん2007/05/28(月) 12:11:01ID:pAImQaIB
おい。おしえれ!

$_POST配列についてだけんども、フォームからの情報が空のまま送信されてきたときは、
$_POSTは空の配列という認識でええんかな?ようするに$array=array()で作成された空の配列と
同じと考えていいのかな?

教えてくさい。おながいします。
0031nobodyさん2007/05/28(月) 12:14:16ID:???
>>30
フォームからの情報を空にして送信して中身見てみれば分かるだろカス
0032nobodyさん2007/05/28(月) 12:17:54ID:???
>>27
ORDER BY
ttp://sql.1keydata.com/jp/sql-order-by.php
0033nobodyさん2007/05/28(月) 12:19:12ID:???
>>31
30ではないが、echoすると空っぽだが、emptyはtrueで返ってきたりするから困ったもんだ
0034nobodyさん2007/05/28(月) 12:20:24ID:???
何書いてんだ俺・・・

×emptyはtrueで返ってきたりする
○emptyはfalseで返ってきたりする
0035302007/05/28(月) 12:26:45ID:pAImQaIB
>>31 わかんないんです(><;)

>>33 ですよね?わけわかんないです(><#)
0036nobodyさん2007/05/28(月) 12:46:48ID:???
>>35
「おしえれ」「教えてくさい」「おながいします」「ふざけた顔文字」
この時点でまじめに質問しようとしてないことが見て取れるので却下
0037nobodyさん2007/05/28(月) 13:40:41ID:ywe2HeV4
$_POST配列についての質問です。フォームからの情報が空のまま送信されてきたときは、
$_POSTは空の配列という認識で良いのですか
0038nobodyさん2007/05/28(月) 14:00:20ID:???
>>37
変数の中身は見ましたか?
0039nobodyさん2007/05/28(月) 14:05:34ID:???
>>37
具体的なソースだしてくれ
0040nobodyさん2007/05/28(月) 14:17:34ID:???
>>37
ちょっと実験してくれ
0041nobodyさん2007/05/28(月) 15:17:16ID:ywe2HeV4
>>38-40

汚いソースで申し訳ありませんが・・・
<?
/* test.php EUC-JP  ?>*/
?>

<html lang="ja">
<head>
<meta http-equiv="content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
<fieldset>
<form action="test.php" method="post">
  <input type="text" name="hoge" />
  <input type="submit" />
</form>

実行結果<br />
<?
echo $_POST['hoge'];  //blank

if(empty($_POST['hoge']))  echo"empty" ;   //TRUE
if(isset($_POST['hoge']))  echo"isset" ;   //TRUE
if(!empty($_POST['hoge'])) echo"!empty";   //FALSE

?>
</fieldset>
</body></html>
0042nobodyさん2007/05/28(月) 15:18:08ID:ywe2HeV4
つまり、私がissetの使い方を理解していない・間違っているということでしょうか?
0043nobodyさん2007/05/28(月) 15:35:38ID:???
print_rやらvar_dumpやら使えばいいじゃん・・・
0044nobodyさん2007/05/28(月) 15:36:47ID:???
>>41
POSTでhogeを送信してるから
$_POST['hoge']には空文字列が入っていると思われ
0045nobodyさん2007/05/28(月) 15:39:13ID:???
>>43
自分が別の時に書いたものの改造なので・・・

>>44
2行目については把握しています
1行目の意味することが理解できません
0046nobodyさん2007/05/28(月) 15:46:36ID:???
>>45
へ?自分が別の時に書いたものの改造だからなんでprint_rやvar_dumpができないのか詳しく説明してくれ
0047nobodyさん2007/05/28(月) 15:48:22ID:ywe2HeV4
荒れて来たので消えますね
失礼しました
0048nobodyさん2007/05/28(月) 15:57:28ID:???
>>47
解決してあげようと回答者が聞いてるのに無視
「荒れた」とかいう原因は自分なのに放置
多くの人の時間と手間を無駄にしておいて自分勝手に終わらせる無責任さ
一言礼すら無し

お前最悪すぎるよ・・・
0049nobodyさん2007/05/28(月) 16:01:25ID:ywe2HeV4
> 解決してあげようと回答者が聞いてるのに無視

これはない


> 「荒れた」とかいう原因は自分なのに放置

原因が云々の問題?


> 多くの人の時間と手間を無駄にしておいて自分勝手に終わらせる無責任さ
> 一言礼すら無し

この点は本当にごめんなさい
みなさんありがとうございました
0050nobodyさん2007/05/28(月) 16:05:58ID:???
自分に都合が悪い指摘を「荒らし」ってwwww
0051nobodyさん2007/05/28(月) 16:06:40ID:???
>>49

>これはない
>>46

>原因が云々の問題?
そうだと思うけど何か違う問題なの?
0052nobodyさん2007/05/28(月) 16:07:20ID:???
>>49
> 解決してあげようと回答者が聞いてるのに無視
> これはない

44ですが無視ですか・・・
0053nobodyさん2007/05/28(月) 16:09:46ID:???
38ですが無視ですか・・・
0054nobodyさん2007/05/28(月) 16:11:45ID:ywe2HeV4
>>44 >>38
ごめんなさい・・・

>>46の質問は解決のための質問とは思えない、という意味です
都合の悪い、という意味がわかりませんが
0055nobodyさん2007/05/28(月) 16:17:09ID:???
>>54
print_rやvar_dumpの使用は明らかに解決を早めると思うのだが・・・
0056nobodyさん2007/05/28(月) 16:19:50ID:???
>>54
どうすれば解決するか分からないから質問しに来たくせに、そういうことは分かってるつもりなんだw
大体>>46>>45でキミが意味不明な返答したから言われてんじゃん。
改造だからprint_rやvar_dumpが使えないってのは君の中では論理的な考えになってるのか?
もしそうならそれに興味があるから是非教えてほしい。
0057nobodyさん2007/05/28(月) 16:19:49ID:ywe2HeV4
>>55

> へ?自分が別の時に書いたものの改造だからなんでprint_rやvar_dumpができないのか
> 詳しく説明してくれ


詳しく教えて何か意味がありますか?
言い方にも問題があると思いますよ
0058nobodyさん2007/05/28(月) 16:21:09ID:ywe2HeV4
>>56
改造だから使えないんじゃなくて、改造だから使っていなかった、という意味です


いろいろなみなさんにご迷惑おかけして申し訳ありませんでした
0059nobodyさん2007/05/28(月) 16:22:54ID:???
まず最初に自分の言い方が悪かったから突っ込まれたのにそこはスルーなんだな
0060nobodyさん2007/05/28(月) 16:25:48ID:8Nb4gWX5
このスレに質問に来ると、質問にちゃんつける人がいるので、いつも質問すようか戸惑います
おかげで色々な問題を自分で解決できるようになりました
本当にありがとうございます
0061302007/05/28(月) 16:26:32ID:pAImQaIB
じっゎ、ゎたし、ぉんなのこ。

ここのひとたちは、きっとぉんなのこが困ってると、気持ち悪く
てとりあしとり、ょぶんなことまで、ぉしぇてくるの。。ほんとうはきもちゎるぃのに・・

でも、きのょゎぃぉとこのこぁぃてだと、ばかみたぃにぃばりくさってるの。

そぅぃぅ、ぉとこの人って、かすょね。ゎたしのしょくばにもたくぁんいるの。そぅぃぅ、ぉとこのひと。

だから、かのじょもできなぃんだょ♥
0062nobodyさん2007/05/28(月) 16:26:39ID:???
まともな質問ならキチンと回答されるので大丈夫ですよ
0063nobodyさん2007/05/28(月) 16:26:53ID:???
>>37
空の配列とは$_POST = array();
>>41
これは$_POST = array("hoge"=>"");
print_rやらvar_dumpすればすぐ分かること
0064nobodyさん2007/05/28(月) 16:28:20ID:???
>>57
print_rやvar_dumpを使用すれば解決が早まる

しかし質問者は改造だから使用できないという

理由を聞く
もしかしたら勘違いかもしれないし、別の方法があるかもしれない

何かおかしいですか
回答者は質問者に対して逆に問いを発してはだめですか
質問者の要求に従ってロボットのように知識を出して検索して推測して答えを出さなきゃだめですか

>>58
いや、使えば?
新規作成でも改造でも使えばいいと思う。
何が障害なのか知らんが。
0065nobodyさん2007/05/28(月) 16:28:23ID:8Nb4gWX5
>>62
でも>>61 = >>30 みたいな人がいますよね?
答える人も大変ですよね
0066nobodyさん2007/05/28(月) 16:28:55ID:???
>>65
で?
0067nobodyさん2007/05/28(月) 16:30:01ID:???
>>66
このスレは重複スレでテンプレもないけど、一言言わせてもらえば
「質問者は立場をわきまえろ」
0068nobodyさん2007/05/28(月) 16:30:01ID:???
暇そうだなw
0069nobodyさん2007/05/28(月) 16:30:33ID:???
ループ(for)で予め外部ファイルに作っておいたHTMLの雛形の特定の場所に変数を置き換えて表示する処理にて、
例えば【<H3>${KoMidasi}</H3>】という風に、処理する度に違う値が$KoMidasiに入る感じになるとします。

ですが、
for($i=0; $i<100; $i++){
$KoMidasi を定義する処理
$OUT_HTML .= $(HTMLの雛形);
}

と書いた場合「$(HTMLの雛形)」中の$KoMidasiには、外部ファイルが、includeされた時点での変数値が入ります。
ですのでforの1-2行目に include $(HTMLの雛形)があるファイル.php; と書けば問題ありませんが、100回も取込を行わなければなりません。

取込対象は大した容量ではありませんがやはり綺麗な処理とは言えないので、
どうにか一回取り込んで後は動的に変数値を置き換えたいのですがどうすれば宜しいでしょうか。

説明べたでスミマセンが宜しくお願いします。
0070672007/05/28(月) 16:31:27ID:???
すまん66じゃなくて65宛てだった
0071nobodyさん2007/05/28(月) 16:32:00ID:8Nb4gWX5
>>66
お疲れ様です、みたいなことでも言って欲しかった?
こういう人いるから質問をしたくないんですよね
0072nobodyさん2007/05/28(月) 16:32:18ID:???
>>69
つかHTMLの雛形に変数を置き換える処理で
100回繰り返す必要性が分かんないんだけど。
0073nobodyさん2007/05/28(月) 16:34:50ID:???
>>71
「だから何?」って聞きたかっただけなんだけど
一体お前が何を言いたいのか解らない
聞くな答えるなって言いたいのか?
0074692007/05/28(月) 16:37:55ID:???
>>72
今回は例ですので実際は○月の日別集計を表示する感じで日毎の雛形に集計結果を変数値として代入して返す風な処理です。
なので100回とか回数は飽くまで同様の処理を多数行う必要があるということをそれとなく表してるだけです。

<OL>
<LI>05/28(月) →$DAY
<LI>02:00 - 荒らしと遭遇 → $TIME[($LIST[$i])]

<LI>23:45 - 就寝
</OL>

こんな感じです。(実際は全然違いますが)
0075nobodyさん2007/05/28(月) 16:40:37ID:???
良いスレタイだよな 「書き込みやがれ」って

とりあえず書かせるだけで誰も答えないスレってどうよ?w
0076nobodyさん2007/05/28(月) 16:42:21ID:???
>>75
新参乙 Part10 辺りから既にこのスレタイだった希ガス
0077nobodyさん2007/05/28(月) 16:43:51ID:???
>>76
日常会話が出来ない人に何言ったって無駄
0078nobodyさん2007/05/28(月) 16:43:56ID:???
>>76
とりあえず書かせるけど答えられないスレ、で良ければ俺も参加するわww
0079nobodyさん2007/05/28(月) 16:44:58ID:???
>>74
情報を出し惜しみしないで実際の例で出してくれ
非常に理解しづらいし
抽象的な話されても実際に役に立つアドバイスが出せるか不明だし
つかまぁ俺だったらテンプレートエンジン使うけどな
0080nobodyさん2007/05/28(月) 16:45:23ID:???
>>78
書かせるけど答えられないスレ、では無いので参加しなくて結構です
0081nobodyさん2007/05/28(月) 16:45:52ID:???
>>77
ユーモアだよ、ユーモア
つまらなかったんなら謝る
0082nobodyさん2007/05/28(月) 16:53:39ID:???
どっちが本ヌレ?
0083692007/05/28(月) 17:09:34ID:???
できるだけ今やろうとしてることを書き出してみました。
行数の関係で読みにくいですが、どうかご指南お願いします。

―inc.php―――――――
$HTML = <<<TEXT
<H3>${Komidasi}</H3>
<OL>
<LI>${DAY}
<LI>${TEXT}
</OL>
TEXT;
―――――――――――
―data.xtx――――――
100円拾った<>13<>今日は机の中で100円拾った
今日も2ch<>25<>一日vipでネカマになって遊んだ有意義だった
―――――――――――
―index.php――――――
include inc.php;
$data = file("data.txt");
for($i=0; count($data)>$i; $i++){
list($Komidasi, $DAY, $TEXT) = explode("<>", $data[$i]);
$OUT_HTML .= $HTML;
}
―――――――――――

index.php の1行目でコールすると変数値は空なのでforの2行目でコールしなければならないというのが>>69で言いたかった内容です。
どうか1回コールして動的に変数値を置き換える方法はありますでしょうか。
因みにSmartyの利用も考えましたが、色んな環境で動くことを考慮して利用せずに組もうと思います
0084nobodyさん2007/05/28(月) 18:13:09ID:ni3tLdmG
PHPは最新のいれるべき?
0085nobodyさん2007/05/28(月) 18:47:46ID:???
>>84
特に理由が無ければね
0086通りすがり2007/05/28(月) 19:44:58ID:???
>>83 こんな感じかいな ずれたらスマン<xmp>
1 <?php
2 class tmpA{
3 var $m_html="";
4 function tmpA($fpath=""){
5 //本当はここでfopen fcloseでファイル読み込み
6 $this->m_html = "<H3>__KMD__</H3> <OL> <LI>__DAY__ <LI>__TXT__ </OL>";
7 }
8 function tmpB($row){
9 list($k, $d, $t) = explode("<>", $row);
10 $ret = preg_replace("/__KMD__/i",$k,$this->m_html);
11 $ret = preg_replace("/__DAY__/i",$d,$ret);
12 $ret = preg_replace("/__TXT__/i",$t,$ret);
13 return $ret;
14 }
15 }
16 $c = new tmpA();
17 $OUT_HTML = "<html><head></head><body>";
18 $data = file("data.txt");
19 for($i=0; count($data)>$i; $i++){
20 $OUT_HTML .= $c->tmpB($data[$i]);
21 }
22 $OUT_HTML .= "</body></html>";
23 echo $OUT_HTML; </xmp>
0087通りすがり2007/05/28(月) 19:47:53ID:???
>>86
やはりずれた、、
<xmp>は無視してね
0088nobodyさん2007/05/28(月) 22:05:05ID:???
>>86
それクラス使う意味あんの?
0089nobodyさん2007/05/28(月) 22:30:20ID:???
>>69
$data = file("data.txt");
for($i=0; count($data)>$i; $i++){
list($Komidasi, $DAY, $TEXT) = explode("<>", $data[$i]);
$OUT_HTML .= <<<TEXT
<H3>${Komidasi}</H3>
<OL>
<LI>${DAY}
<LI>${TEXT}
</OL>
TEXT;
}
で、いいじゃん。
0090nobodyさん2007/05/28(月) 22:52:21ID:???
>>88
>>86はどうか知らんが、純粋なOOPやってる人ならclassに入れるのはあたり前。
使う必要があるとかそういったことは手続き型脳の視点だから。
俺ならmainメソッドも書いて、最後にそれだけ実行するようにするけど。
0091通りすがり2007/05/28(月) 23:07:30ID:???
>>88

クラス化しておいた方が、メンテと拡張はしやすいと思ってるだけ。

ログやぶっこ抜いたhtmlに応じてテンプレートを切り替える時とかね。









0092nobodyさん2007/05/28(月) 23:16:31ID:???
>>90
理由も持たずに何でもクラスに入れりゃいいと思い込んでるならOOP脳だろ
例のクラスはオブジェクト設計的に何の意味も持ってないしクラスにした価値もない
よって>>89のようにやるのが正解 (つーかロジック示せば十分だろ)
0093nobodyさん2007/05/28(月) 23:18:57ID:???
何でもかんでもOOPな手法を用いるのは本質的にOOPを理解していない証拠だろう。
0094通りすがり2007/05/28(月) 23:25:53ID:???
>>69

ま、俺の場合は、

>>予め外部ファイルに作っておいたHTMLの雛形の特定の場所に変数を置き換えて表示する処理にて、
ってな第一要件をふまえると、ループ内に直にひな形を書くのはNGだと思ったから。

んで、外部にひな形が有るすなわち、テンプレートは切り替わる可能性がある。と
だからテンプレート切り替えの処理はまとめておいた方がいいよなぁ。→クラス作っておくこうか

となると
0095nobodyさん2007/05/29(火) 00:10:52ID:7xq0Zk/P
>>83
smartyが使えない環境ってどんな環境?

って、このスレの常連みたいな意地悪な解答はおいといて
知ってるかもしれないけどsmartyなどPHPでできたテンプレートエンジンは
パスさえ通せば動くので、よほど特殊な環境じゃなければ
動かせるので、素直に使った方が楽だと思うけどなあ
0096nobodyさん2007/05/29(火) 00:26:02ID:???
>>92-93
全てをオブジェクトにしないと使えない言語だってあるわけですよ。
PHPしかやったことない人間は知らんが、
Javaしかやったことないような人間が、
中途半端OOPもできるPHPに移行してきた場合、
必然的に全てオブジェクトになってしまうだろ。
0097nobodyさん2007/05/29(火) 00:32:42ID:???
>>96
いやPHPの手法に合わせればいいだろw
0098nobodyさん2007/05/29(火) 01:49:36ID:???
まあ、自分でメンテするなら作り易いやりかたでやればいいと思うが

ただ他人のコードを幾つかいじった経験からいうと
・ロジックが画面半分超える場合は分離してくれ
・Perl風に書くのだけはやめてくれ、つかPerlで書けよ
と思うときはある。

とりあえずヒアドキュメントでHTML書くのはやめてくれ、マジデ orz
0099nobodyさん2007/05/29(火) 01:57:32ID:???
>>98
なんで?
0100nobodyさん2007/05/29(火) 02:16:01ID:???
helloかgoodmooningを表示するクラスの作り方は
PHP4とPHP5とでは記述の違いはありますか?
0101nobodyさん2007/05/29(火) 02:30:48ID:???
>>100
4の書き方にあわせれば当然5でも使える。
5から使えるようになった機能や関数があるから、
5の書き方をした場合、4で使えるとは限らないのもまた当然。
0102nobodyさん2007/05/29(火) 05:30:24ID:???
>>69
<H3>..</H3>
phpとは関係ないけど、htmlの「タグ」は小文字<h3></h3>で書く癖つけたほうがいいよ
0103nobodyさん2007/05/29(火) 06:26:11ID:???
<H3>..</H3>
いやいや大文字がいいよ
0104nobodyさん2007/05/29(火) 07:04:49ID:???
>>103
XHTML1.0以降HTMLタグは小文字で表記することが文法的に規定されている
0105nobodyさん2007/05/29(火) 07:49:20ID:???
XHTML強要するのもどうかと。
0106nobodyさん2007/05/29(火) 08:24:04ID:???
まあ強要はよろしくないわな。
俺は小文字で書くけど。
0107nobodyさん2007/05/29(火) 08:50:19ID:???
XHTMLは消えてHTML5.0になるんじゃないのか
0108nobodyさん2007/05/29(火) 10:19:59ID:nFUqZanj
今utf8で作ってるんですが
とりあえず確認したところではrequireやsession_startなどの行を入れて
ブラウザからソース見るとその部分に?が入っているのですが
これはいったいどういうことなのでしょうか?
0109nobodyさん2007/05/29(火) 10:34:41ID:???
htmlあってこそのphpだからな。
htmlの知識もある程度あったほうがよろしい。
phpもだんだん手続き型からオブジェクト型に変化してるように、
htmlも進化しているのさ。
時代に即した書き方を覚えるのもプログラマとしてはよい心がけだと思うぜ。
まぁhtmlの場合はブラウザに実装任せてるから滅茶苦茶でも動くんだけどね。
0110nobodyさん2007/05/29(火) 10:35:27ID:???
>>108
UTFの罠です。
UTF BOMでぐぐればおk
0111nobodyさん2007/05/29(火) 10:55:15ID:nFUqZanj
>>110
なるほど、ありがとうございました。
0112nobodyさん2007/05/29(火) 11:56:20ID:4MbNvczK
>>98
これってどうしてなんでしょうか?
0113nobodyさん2007/05/29(火) 12:06:27ID:???
インデントが使えなくてソースが汚らしいとかそんな理由じゃないの?
0114nobodyさん2007/05/29(火) 12:32:07ID:???
staticとglobalってどう違うんですか
0115nobodyさん2007/05/29(火) 12:39:43ID:???
>>114
ttp://e-words.jp/w/E99D99E79A84E5A489E695B0.html
ttp://e-words.jp/w/E382B0E383ADE383BCE38390E383ABE5A489E695B0.html
0116nobodyさん2007/05/29(火) 12:56:15ID:4MbNvczK
>>113
なるほど
0117nobodyさん2007/05/29(火) 13:03:50ID:05UZMunq
class Hoge {
 function __construct($mode) {
  $this->{$mode}();
 }

}
この{$mode}を__constructに渡した任意の文字列に置き換えて
そのメンバーmethodを実行したいのですが、可能でしょうか?
やりかたをおしえていただけますでしょうか?
0118nobodyさん2007/05/29(火) 13:15:40ID:xx8sT90w
           /⌒`⌒`⌒` \
          /           ヽ
         (  ノ⌒〜⌒〜⌒ヽ、 )
         ヽ/   \, ,/   i ノ
          |   ≧ , ≦   |
          | 、 ,,,,(、_,),,,,  ノ| 
         ヽ   ト=ニ=ァ   /
          \ `ニニ´  /´ ̄ヽ
          / ̄`┻━┻' '´-  }
         r' f{ _ノ癶_ ノ}     /
          /  ハ`l´/,ゝ' /,r‐-、  j
       〈´7'{ V'´  '/   />’
        `7 ヽ ヽ   /   / l |  __  ,.- ._
        /   ハ ヽ/   / ,ヽ/ ̄ /´¨'´‐、  `ヽ    プッー
       /  / 丶.,′ /  ' /  ̄7     ヽ.、_  ',    ´⌒`::`)
.        ,'   /    ,'  /!      ,'ヽ      \`7 ≡⌒;;⌒`)
      /  /   /  / ヽ_    /、 / ,      ,'    ::⌒`;; )
      /  /   /  ハ ,イ、 `ヽ._/ .X /     /
     / ./_   /  ./ ` } }、ー- -'´ ,イヽ   _,.イ
     / ,.-_ヽ〉、./  /  / /l `   ′l,.-ヽ''´  ,'
    ヽ `^_ヾ、   /   丶-、|   _,ィ'´     ,'
     `ーr_'二`._/       「 ̄  l        /
                     |   |     /
                    |    !     /
                   |   l     /
                      l  |    /
0119nobodyさん2007/05/29(火) 13:25:46ID:???
>>117
何がやりたいのかサッパリ。
>$this->{$mode}();
何これ?
>そのメンバーmethodを実行したいのですが
どのmethod?

class Hoge {
  private $mode;
  function __construct($mode) {
    $this->mode = $mode;
  }
  function foo() {
    return $this->mode;
  }
}
$obj = new Hoge("ちんこ");
echo $obj->foo();
0120nobodyさん2007/05/29(火) 13:30:15ID:???
>>117
可変関数やりたいってんならそのままで動くと思うが。
ブラケットいらんがね。
0121nobodyさん2007/05/29(火) 13:32:23ID:???
あぁ・・・可変メソッドか。
0122nobodyさん2007/05/29(火) 13:57:17ID:???
>>119が何やりたかったのか意味不明w
0123nobodyさん2007/05/29(火) 14:45:00ID:???
何やりたかったのかはソース見ればわかるだろ。
0124nobodyさん2007/05/29(火) 15:00:12ID:???
ハッキリ言って、ここ解答者のレベルが低いんじゃないか?
ていうか、スキル以前に頭が悪い(藁
ほんと使えない。

ここ以外にPHPの質問板を紹介しろ。
0125nobodyさん2007/05/29(火) 15:04:38ID:???
>>124
      ___   ━┓  ___    ━┓
     / ―  \  ┏┛/ ―\   ┏┛
    /  (●)  \ヽ ・. /ノ  (●)\  ・
  /   (⌒  (●) /. | (●)   ⌒)\
  /      ̄ヽ__) /   |   (__ノ ̄  |
/´     ___/     \        /
|        \          \     _ノ
|        |          /´     `\
0126nobodyさん2007/05/29(火) 15:04:57ID:???
>>124
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0127nobodyさん2007/05/29(火) 15:10:04ID:6paIllMG
質問です。
ページの特定の場所にジャンプしたいとき、
<a href="#foge">
リンクの場合には、上記のようにしますが、
ボタンフォームの場合にはどうすればいいのでしょうか?

<form method="POST" action="#foge">
このようにしてもダメでした。
0128nobodyさん2007/05/29(火) 15:12:01ID:???
>>127
そもそもPHP関係ねぇ。
リダイレクトするスクリプトに飛んで、アンカー付けてあげれば?
0129nobodyさん2007/05/29(火) 15:12:48ID:???
>>127
ここがなんのスレか理解できるまで>>1を読んだ後、
http://pc11.2ch.net/test/read.cgi/hp/1178272099/
こっちにいってくださいね。
0130nobodyさん2007/05/29(火) 15:15:12ID:???
>>123
値をセットしてゲットしてechoするだけのクラスを書いて117に対して何を言いたいのかさっぱり?
ほんと低脳という言葉がぴったりだな・・・
0131nobodyさん2007/05/29(火) 15:16:01ID:6paIllMG
>>129
すみませんでした。そちらできいてみます。
0132nobodyさん2007/05/29(火) 15:27:04ID:???
いちいち煽るほうが低脳だという事にいい加減気づけよ。
この時間帯はヘボ回答者と煽ることしかできない馬鹿しかいないから、
夜聞くといいよ。なんせニートが元気な時間帯だからな。
0133nobodyさん2007/05/29(火) 15:28:23ID:???
目糞鼻糞を笑う
01341172007/05/29(火) 15:33:03ID:05UZMunq
度々すみません。
>>121さんの言うとおり、可変メソッドがやりたいのです。(言葉を知らなくて的確に説明できませんでした)
ですので、>>119さんのでは意図した動きをしません。(ありがとうございます)

調べてみると、
$val = 'hoge';
$this->$val();
これはできるようなのですが、(試してはいません)

$val = 'hoge';
$this->Method$val();

これはできないのでしょうか?
ブラケットをいれてもパースエラーになります
0135nobodyさん2007/05/29(火) 16:03:59ID:???
>>119
理解してないのに答えるなよ


カスが。
0136nobodyさん2007/05/29(火) 16:32:41ID:dXtsAnsD
質問です
今、ユーザー登録のフォームを作っていますが、
入力された情報をテキストに保存するかデータベース(mysql)に保存するか迷っています
レコードの取得や削除を考えれば圧倒的にデータベースが有利ですが、
テキストのメリットは何があるのでしょうか?

フォームに自由記入欄があったあっとして、そこで全角200文字くらい打ったりする人がいる場合、
それはテキストに保存した方がよかったりしますか?
0137虚弱PHP2007/05/29(火) 16:39:41ID:???
>>134
$val = 'Method'.'hoge';
$this->$val();
ってこと?
0138nobodyさん2007/05/29(火) 16:48:51ID:???
>>134
$val = ''hoge';
$this->{'Method' . $val}();
0139nobodyさん2007/05/29(火) 16:49:10ID:???
>>132
煽りではない。分かってない奴に対する単なる指摘。
お前みたいのが頭の悪い煽り。
能力ないならもっと謙虚になれ。

>>136
データベース使うべし
0140nobodyさん2007/05/29(火) 17:17:44ID:???
>>134
その説明ではどういうことをしたいのかわからないが、
>>117でやりたいことはマニュアルに書いてる通りでできるはず。

>>136
テキストのメリットなんてDBが使えない鯖でも動くとか、
セキュリティにDBほど考慮する必要がないってことぐらい。
DBがどういう目的で作られたかを考えれば、
DBがテキストよりもあらゆる面で優秀なのはわかる。
何より楽だからね。あえて難しい道を進みたいならテキストで。

>>138
$val = '';の間違いかな。
その場合$valがメソッド名だからいらない気もするけど。

>>139
どうみても煽りだろ。煽りじゃなくて指摘とか言い分が馬鹿すぎる。
ていうか何だその回答は。簡単な質問にどうでもいい答えしやがって。
偉そうなこといっといてヒドイなこれはwwwwww
0141nobodyさん2007/05/29(火) 17:22:57ID:dXtsAnsD
>>139-140
ありがとうございます
みなさん親切で助かりました

01421382007/05/29(火) 17:25:06ID:???
>>140
違うよ、>>134が意図してる動作は$valの文字列と
'Method'とを連結させた名前のメソッドをコールしたいってことだろう
0143nobodyさん2007/05/29(火) 17:25:53ID:???
>>140
荒らすな。煽るな。下らない書き込みは慎め。お前が一番ウザい。
0144nobodyさん2007/05/29(火) 17:32:20ID:???
>>142
なるほど。漏れは型指定でもしたいのかと思ったわ。
連結演算子がわからないような質問者とは思えないんだけどね。

>>143
お前はただの煽り馬鹿だと思っていたが、
ヘボ回答者でもあったから煽りたくもなるわwwww
0145nobodyさん2007/05/29(火) 17:35:55ID:???
にほんごの ほうそくが みだれている
0146692007/05/29(火) 17:43:05ID:???
皆さんレスありがとうございます。
全レスしたい位ですが、要所レスにて割愛させて頂きます。
>>86
サンプルまで書き起こして下さいまして大変分かりやすいです。
ただ、当方所謂php4までの書き方しか身についておらずオブジェクト指向なのは取り扱った事がなかったりしています。
良い機会なのでclassでの書き方に挑戦してみようと思います。

HTMLタグに関しましてはXHTMLが小文字を推奨していることは把握していましたが、癖でつい大文字表記してしまいました。
今後どっちに転ぶのか分かりませんがとりあえず小文字の癖をつけようと思います(後はスラッシュも)

結局のところ当方がやろうとしていることはclassで指定するか、或いはfor内にぶち込むしか無いという事でしょうか。
>>83で書いたのは噛み砕いた感じでして実際は10-15行程度ですのでメンテのし易さを考慮してロジックとデザインを分けて処理しようと考えておりました。
ちなみにSmartyを使わない理由はphpバージョン云々より処理速度が低下するのを懸念して避けました。

宜しくお願いします。
0147nobodyさん2007/05/29(火) 17:49:51ID:TCS52xeP
RSS2.0と1.0に対応したsimplexmlのサンプルってありませんか?
素直にPEAR使ったほうがいいのかな?
0148nobodyさん2007/05/29(火) 17:54:39ID:???
>>147
simplexmlでRSS出力したいってこと?
まぁsimplexmlはやめたほうがいいよ。
出力されたソースみたら萎えるよきっと。
0149nobodyさん2007/05/29(火) 17:58:30ID:TCS52xeP
>>148
うんたしかに・・・
そしてRSSの種類の多さに泣きそうになった。

PEARのXML_RSSを使うのが一番無難ですか?
0150nobodyさん2007/05/29(火) 18:03:45ID:???
XML_RSSは出力なかったきがす
0151通りすがり2007/05/29(火) 18:07:19ID:???
>>146

function tmpB($m_html,$row){
list($k,$d,$t) = explode( 省略…
$ret = preg_replace("/__TXT__/",$t,$m_html);
省略
return $ret;
}

$m_html = テンプレの値;

省略
for($i=0 …以下略){
$OUT_HTML .= tmpB($m_html,$data[$i]);
}

ってやれば、ファンクションだけでもできるっしょ
テンプレートに変数直書きするのではなく、置換用文字列を与えておけば、
いいってだけだから。

0152nobodyさん2007/05/29(火) 18:07:41ID:???
RSSなんてMSとNNのブラウザ戦争みたいできらいよっ!
Atomにしなさいよっ!
0153nobodyさん2007/05/29(火) 18:12:12ID:???
根本的に用途が違うものじゃねーか
0154nobodyさん2007/05/29(火) 18:21:46ID:???
>>153
え?
0155nobodyさん2007/05/29(火) 18:36:48ID:TCS52xeP
RSS2.0と1.0とAtomが読めてキャッシュできるPHP・・・
難儀だなこりゃw
0156692007/05/29(火) 18:54:35ID:???
>>151
なるほど!レスありがとうございます。
そんな方法があるとは思慮が及びませんでした。
とりあえずはそちらの方法で実装して、追々class指向の書き方のスキルが備わったら改めて前述の方を試してみます。
アドバイスありがとうございました。
0157nobodyさん2007/05/29(火) 19:08:00ID:GuBB/5Uv
すみません、初歩的な質問なのですが・・・
a.php、b.phpがあったとして
b.phpには
function fopen( )
{
 return mysql_connect();
}
function fclose( $link )
{
 mysql_close( link )
}
と、あるとして、a.phpで
if( ボタン1が押されたら ){
 $fh = fopen( );
}
else if( ボタン2が押されたら ){
 fclose( $fh );
}
と、すると、当然ならが$fhの値はなくなってmysql_closeは失敗するのですが
$fhの値を保持しておくにはどうしたらいいのでしょうか?
それともPHPではこういう書き方自体しないのでしょうか?

一連の流れは同じ関数内でするのが普通なのですか?
例えば、
mysql_connect();
なんかテーブル処理
mysql_close( )
と、必ずMySQLのテーブル操作をするたびにconnectとcloseを毎回呼び出すみたいな・・・
0158nobodyさん2007/05/29(火) 19:16:22ID:???
>>157
mysql_pconnectで持続接続を確立して閉じない。

あとその気持ちの悪い関数定義は何なんだ。
0159nobodyさん2007/05/29(火) 19:16:36ID:???
>>157
状況がよく分からんな

そら、mysql_connect() がスクリプト内で
一度も呼ばれずにmysq_close() が呼ばれれば
当然失敗するだろう
0160nobodyさん2007/05/29(火) 19:22:40ID:GuBB/5Uv
>>158
あ、そんなのがあるんですか、これ閉じたい場合はどうしたら閉じれるんですか?

>>159
いやいや、言いたいのはそこじゃなくて、戻り値として受け取っても
mysq_closeに渡す時には値が消滅するからどうしたらいいでしょう?ってとこなので
0161nobodyさん2007/05/29(火) 19:24:25ID:???
>>160
閉じる必要が無い

そもそも一体何がしたいのか理解不能。
何で別プロセスで開いた接続を閉じる必要がある?
0162nobodyさん2007/05/29(火) 19:26:49ID:???
>>157
言葉に対する回答。

>$fhの値を保持しておくにはどうしたらいいのでしょうか?
静的(static)にする。

>必ずMySQLのテーブル操作をするたびにconnectとcloseを毎回呼び出すみたいな・・・
NO
connectは最初にやって、全ての操作がおわってから閉じればいい。
その間接続は持続されている。

MySQL開けたり閉じたりするのは自分的にはこうする。

class Hoge {
  private $link;
  function mySqlOpen($server, $username, $password) {
    $this->link = mysql_connect($server, $username, $password);
    if (!$this->link) {
      //例外処理
    }
  }

  function mySqlClose() {
    if (!$this->link) {
      mysql_close($this->link);
    }
  }
}
0163nobodyさん2007/05/29(火) 19:33:11ID:GuBB/5Uv
>>161
PHPに馴れている人には理解不能かと・・・
PCソフトばかりやってるとこのPHP等の処理の流れに戸惑ってしまって・・
ボタン押したらまた自分(他)を最初から呼び出してとかこれ慣れが必要だなあと、
んで、何がしたいかといいますと
例えばボタン1を押すとDB接続、ボタン2を押すと閉じる、
そして、ボタン3を押すとAテーブルの内容を表示、ボタン4を押すとBテーブルの中身を表示・・・と
そもそもこういうやり方自体が普通しないのかなと・・・
ボタン1を押したら接続→テーブルA表示→閉じる
ボタン2を押したら接続→テーブルB表示→閉じる
こういうほうが一般的ですか?
0164nobodyさん2007/05/29(火) 19:36:09ID:???
>>163
ええ、一般的です。
0165nobodyさん2007/05/29(火) 19:36:23ID:GuBB/5Uv
>>162
うは、それですそれです!!
そういう記述が全くの無知でして、上でアホみたいな書き方をしました・・
あーこれめちゃくちゃ参考になります。
ありがとうございます。
その前にクラスの勉強しないと・・・
0166nobodyさん2007/05/29(火) 19:39:19ID:GuBB/5Uv
>>164
えええええ!
>>162さんはNoと・・・
でも毎回するのは一番簡単だけど、コードが増えますよね
更に接続→表示→閉じるを鬼のように繰り返してもいいのか疑問ものこります
0167nobodyさん2007/05/29(火) 19:42:55ID:???
PEAR使ってて良かったことってありますか?
01681672007/05/29(火) 19:45:00ID:???
誤爆しました 失礼
0169nobodyさん2007/05/29(火) 19:50:06ID:???
>>166
どういうことしたいのかちょっと理解できないなぁ。
>>163はボタン1を押したら接続→テーブルA表示→閉じるで処理が完結してるでしょ。
それともまだその後に他の処理をしたいのなら、
結果セットだけを開放して(mysql_free_result )、新たな処理をするっていう感じになる。
0170nobodyさん2007/05/29(火) 19:55:53ID:GuBB/5Uv
>>169
いやいや、最初にやろうとおもったのは、
ボタン1を押すとDB接続
ボタン2を押すと閉じる、
ボタン3を押すとAテーブルの内容を表示
ボタン4を押すとBテーブルの中身を表示
これはようするに、1押して接続してから、3押したり4押したり5,6押したり(書いてないけど)
んで、散々テーブルをみたあとに最後に2を押して閉じるとしたかったのですが
こうすると、コネクトしたときの戻り値をcloseに渡す方法がわからなくて・・・

んで、
接続→テーブルA表示→閉じる
と、常に毎回やるのが一般的なのですか?とお尋ねしました
0171nobodyさん2007/05/29(火) 20:01:07ID:GuBB/5Uv
ほんと馬鹿ですんません・・・
PCソフトの場合はDOSならmain内から終わるまで抜けないので
ローカルでも値を保持してるし、Windowsの場合はグローバルを使うので
ソフトが終了するまで保持していられるんですが、
PHPとかWEB系の場合はちょっと勝手が違う感じで初歩的なとこで悩んでしまって・・
ごめんなさい、勉強不足です、はい。
0172nobodyさん2007/05/29(火) 20:01:29ID:???
>>170
それなら
open
if ($_POST['button1']) {
  Queryおくって結果取得
  結果表示
}
なんていう条件が続いて
close
0173nobodyさん2007/05/29(火) 20:05:25ID:???
>>163
Windowsアプリケーションでも意味不明。
一回何らかのボタンを押し、別のボタンを押すという処理でも、プログラムが再起動されるわけではないだろう?

本質的にプログラムの処理手順を勘違いしてないか。
0174nobodyさん2007/05/29(火) 20:13:57ID:GuBB/5Uv
>>172
それすると、なにかボタンが押される度にまたopenから走ったりしないんですか?
うーん、僕たぶんかなりとんちんかんな質問をしてた希ガス
>>173
僕はボタンを押したら
<form action=$ScriptName method=POST>
こんなんで、また自分を呼び出すとおもっていて、メインが何度も呼ばれるみたいなイメージがあって・・・
ちなみに、>>173さんはWindowsソフトもPHPも全く同じ理屈でコード組んでますか?
0175nobodyさん2007/05/29(火) 20:17:40ID:GuBB/5Uv
だめだ・・・
根本が間違ってる・・・
PHPではなんとなくしょぼい掲示板つくったりしただけで
動きをまったく理解してないみたいだなあ、勉強してきます・・・
0176nobodyさん2007/05/29(火) 20:23:26ID:???
っていうか、皆さんめちゃくちゃ親切ですね。
そんなわけで勉強してきます。
またわからないことがあったら教えてください。。。
ありがとうございました
0177nobodyさん2007/05/29(火) 20:41:06ID:queQBOHY
PHP学ぶように会社から言われました。
プログラムを打ち込んで、その結果を表示させたいのですが
Webサーバーを使用せずにPHPって使用できますか?
0178nobodyさん2007/05/29(火) 20:45:22ID:???
>>175
エラー処理も適当で手続き型で関数化もしてない、
手抜きスクリプト置いとくからこれで動作勉強しちくり。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
A<input type="radio" name="a">
B<input type="radio" name="b">
<input type="submit" value="submit">
</form>
<pre>
<?php
$link = mysql_connect('localhost', 'username', 'password');
$dbselect = mysql_select_db('dbname');
if (!$link || !$dbselect) {
  dir(mysql_error());
}

続く
0179nobodyさん2007/05/29(火) 20:46:10ID:???
続き
if ($_POST['a']) {
  $res = mysql_query('SELECT * FROM TABLE_A');
  if (!$res) {
    die(mysql_error());
  }
  while ($row = mysql_fetch_assoc($res)) {
    print_r($row);
  }
  mysql_free_result($res);
}
if ($_POST['b']) {
  $res = mysql_query('SELECT * FROM TABLE_B');
  if (!$res) {
    dir(mysql_error());
  }
  while ($row = mysql_fetch_assoc($res)) {
    print_r($row);
  }
  mysql_free_result($res);
}
mysql_close($link);
?>
</pre>

あとは$linkと$dbselectの情報を設定して、
DB側に適当なTABLE_AとTABLE_B作ってください。
01801782007/05/29(火) 20:49:26ID:???
続き
if ($_POST['a']) {
  $res = mysql_query('SELECT * FROM TABLE_A');
  if (!$res) {
    die(mysql_error());
  }
  while ($row = mysql_fetch_assoc($res)) {
    print_r($row);
  }
  mysql_free_result($res);
}
if ($_POST['b']) {
  $res = mysql_query('SELECT * FROM TABLE_B');
  if (!$res) {
    dir(mysql_error());
  }
  while ($row = mysql_fetch_assoc($res)) {
    print_r($row);
  }
  mysql_free_result($res);
}
mysql_close($link);
?>
</pre>

あとは$linkと$dbselectの情報を設定して、
DB側に適当なTABLE_AとTABLE_B作ってください。
01811782007/05/29(火) 20:50:30ID:???
ああああああああああああああorz
Firefox使ってたせいで間違ってもう1回送信してしもた・・・
専ブラにしよう・・・
スレ汚しsorry

訂正
if (!$link || !$dbselect) {
dir(mysql_error());
}

dirじゃなくてdieね・・・
0182nobodyさん2007/05/29(火) 20:54:25ID:???
>>177
ローカルに環境を構築してください。
最低でもPHPはインストール。
ちゃんとした動作を検証したいのならApacheも入れてください。
DBを使って開発するのであればDBも入れてください。
XAMPPでぐぐると幸せになれるかも。
0183nobodyさん2007/05/29(火) 20:55:41ID:queQBOHY
>>182
ありがとう!

今までC言語とC#しかしたことがないので
これから大変お世話になりますのでよろしくお願いします。
0184nobodyさん2007/05/29(火) 21:50:25ID:HenTyugE
最近連日のようにリロード攻撃を受けて、
DBサーバーがダウン(コネクションオーバー)するのですが、
php側で防ぐ方法で、有効な方法を教えて頂けますか?
ちなみに、レンタルサーバーです。かなり困っています。
0185nobodyさん2007/05/29(火) 21:52:56ID:???
>>184
アプリケーションレベルでは下手に対応しない方が寧ろいい。
DoSアタックの対応はもっと下位のレイヤでやるべき。
0186nobodyさん2007/05/29(火) 21:56:19ID:???
DBでどういう処理してるかによるけど、
html化しても問題のないようなものなら、
html化すればいいと思うけど。
0187nobodyさん2007/05/29(火) 21:59:36ID:KHJlG38T
$somarray = array(
"abc"=>array("123"=>"456"),
"cde"=>"789",
"fgh"=>("hij"=>array("xyz"=>"10",array("foo"=>"bar"))
);

のような任意の連想配列で、fooを検索キーにして、
foo->hij->fghの並びを取得できる関数で適切なものはありますでしょうか?。
foreachを使うにしてもそれを補助的に支える関数を探しているのですが。
0188nobodyさん2007/05/29(火) 22:01:22ID:HenTyugE
>>185-186
早速の回答ありがとうございます。

>>185
レンタルサーバー(xrea)のため、なかなかそこが対応できないんです。
できれば、アプリケーションレベルで対応できればと思うのですが。
専用サーバーならいいのかもしれないのですが、運用経験がないので逆に危険かと思いまして。

>>186
動的に生成しないとホームページとして成り立たないものなので、
それも難しいのが現状です。すみません。
0189nobodyさん2007/05/29(火) 22:04:16ID:???
>>188
どうせ串経由なんでしょ?だったらBBQとかではじけばいいんじゃないの?
0190nobodyさん2007/05/29(火) 22:11:57ID:HenTyugE
>>189
いやぁ、それが串でもないんです。
串は、リストを作って独自プログラムで弾いているのですが、
普通のプロバイダーのIPからやられます。
日によって違うプロバイダーなので、違う人からなのかも。

政治とか教育とか意見が対立する掲示板を運営しているので、
論破された奴が荒らしているのかと。
リロード攻撃されると、暫く接続エラーになってサービスがとまって、
そのたびにサービスがとまっていると苦情のメールが。ほとほと疲れます。
0191nobodyさん2007/05/29(火) 22:17:25ID:???
ふむ。
じゃあsessionつかって、同一IPからある一定時間内($range_time)に複数回($reload_count)以上の
reloadがあった場合は、<なんかする>、みたいな感じでいいんじゃないの?
DBアクセスがボトルネックなんだったら、<なんかする>=キャッシュだけを送信する、とか。
結局、実装は、運営policyによるでしょ。
0192nobodyさん2007/05/29(火) 22:29:53ID:???
>>190
サーバまわりを強化しJava+Oracleで書き直す。

というのは冗談だけど、
そのコンテンツじゃPV多そうだし共有鯖だとかなり負担かけてるんじゃない?
ユーザより先にレンタル先に捨てられないように気をつけておくんなまし。
0193nobodyさん2007/05/29(火) 22:57:20ID:???
>>188
アプリケーションレベルでの対応は逆効果なんだよ。
XREAに通報したら何らかの対応はしてくれるんじゃないか?無料なら知らんが。
0194nobodyさん2007/05/29(火) 23:36:58ID:???
XREAスレ見てるのかな
最近200番台後半の鯖で中国からのアタックがあったよ
上位回線レベルで対策したそうだ
0195miu2007/05/30(水) 00:51:31ID:EHTzgQl2
iframeの中を(srcを)httpsのページにしています。
この中でセッション変数を使いたいのですが、
うまく値を引継げません。
session_id()を確認すると、ページごとに異なる値が
返ってきています。

なにか、セッション変数を使うための方法・設定というのはあるのでしょうか?

よろしくお願い致します。
0196nobodyさん2007/05/30(水) 01:34:43ID:???
TEMPORARYテーブルとか業務で使ったりする人います?
0197nobodyさん2007/05/30(水) 03:26:34ID:???
DDoSて古典的な方法の癖に未だにPGを悩ませがちだよね。
さくらの専用鯖みたいな安い専用借りてiptableで弾くとかはどうだろ。
XREAは過負荷になってもちょっと生暖かい目で見ててくれるけど他のユーザはその間しわ寄せ受けてる希ガス。
0198nobodyさん2007/05/30(水) 03:55:42ID:U6fy+t+P
質問です
同じ結果なら、
実行速度が遅い・重いプログラムより、速い・軽いやつがいいとは聞きますし、私もそう思いますが、
実行速度を数値化したりするなどして確認する手段はありますか?
0199nobodyさん2007/05/30(水) 04:27:45ID:???
>>184
テキトーだけど、こんな感じで軽減できない? 行詰めているので見にくいがすまん
<?php
function sessCtrl(){
session_start();
$lastvtime = $_SESSION["lastvtime"];
if($lastvtime){
$timediff = time() - $lastvtime;
if($timediff <3){
//ここでさよなら
die("<html><head></head><body>3秒以内リロード禁止<hr/><pre> 前回アクセス:"
.date("Y-m-d H:i:s",$lastvtime)."/只今"
.date("Y-m-d H:i:s",time())."</pre><hr/></body></html>");
//もしくは強制10秒待たせる
//sleep(10);
}
}
$_SESSION["lastvtime"]=time();
return $lastvtime;
}
$lastvtime = sessCtrl();
?>
<html><head></head><body> ここはOK也 <hr/>
<?php echo " 前回アクセス:".date("Y-m-d H:i:s",$lastvtime)
."/只今".date("Y-m-d H:i:s",time())."<br/>";
var_dump($_SESSION); ?>
<hr/></body></html>
0200nobodyさん2007/05/30(水) 07:03:10ID:???
>>198
前スレらへんで誰かが開始時刻と終了時刻を取れば良いって言ってたよ
0201nobodyさん2007/05/30(水) 09:09:58ID:Hm83KMHn
質問をふたつほどよろしいでしょうか。

アクセスしてくる者全員が共有できるような変数って作れますか?
Aさんが1を代入したらBさんにも1になるような。
テキストファイルを使わないとだめなのかな。

それから、サーバ上のファイルを自由に編集する画面があるのですが
ひとりがそのページを開いている間は
次に来た人には、ただいま混みいっています、のような画面を表示させたいのですけど
スマートなやりかたってないですか?
0202nobodyさん2007/05/30(水) 09:38:06ID:???
ふたつともセッション使え
0203nobodyさん2007/05/30(水) 09:41:15ID:???
アクセスカウンターCGI探して中身見てみれば>201
0204nobodyさん2007/05/30(水) 10:08:21ID:???
>>201
まるでwikiみたいだな。
ただあのソースを読めというのはちょっと酷か・・・
02052012007/05/30(水) 10:11:34ID:Hm83KMHn
>>202
セッション変数って、ひとりの人間が複数のページで共通に使える変数じゃないのですか?
>>203
うーむ、なんとかPHPだけでできないかなぁ。

すみません初心者で・・・
0206nobodyさん2007/05/30(水) 10:15:34ID:vB5BZnM8
ヘルプミーです。
フォーム送信で、textareaに入力したテキストで、クオート(')・ダブルクオート(")が
自動的にエスケープ(\)されるんだけど、これってphp.iniの設定が関係ありますか?
(POSTの値が自動的にエスケープされるなんてことはあるの?)
0207nobodyさん2007/05/30(水) 10:26:29ID:???
>>206
>php.iniの設定が関係ありますか?
YES
http://jp.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc
0208nobodyさん2007/05/30(水) 10:39:50ID:vB5BZnM8
>>207
早速のレスポンスTHX!! あいしてるぜー
0209nobodyさん2007/05/30(水) 11:59:49ID:???
>>205
>セッション変数って、ひとりの人間が複数のページで共通に使える変数じゃないのですか?
ちがう。マニュアルよめ。
0210nobodyさん2007/05/30(水) 12:09:56ID:???
>>201
共有メモリ関数
http://jp.php.net/manual/ja/ref.shmop.php
セマフォ・共有メモリおよび IPC 関数
http://jp.php.net/manual/ja/ref.sem.php
0211nobodyさん2007/05/30(水) 13:56:24ID:QPYqKYGN
textarea内にユーザからの入力を表示する場合、タグは無効になりますよね。
それでもhtmlspecialcharsは必要ですか?javascriptなんて実行されないっすよね危険はないですよね。
0212nobodyさん2007/05/30(水) 13:58:06ID:???
ある
0213nobodyさん2007/05/30(水) 13:59:49ID:???
>>211
</textarea>って入力されてたらどーすんのよ
0214nobodyさん2007/05/30(水) 14:05:44ID:UUvKwXeJ
すみません、昨日の基地外です

>>178-181
ありがとうございます。
これは毎回 接続→テーブル表示→閉じる 方式ですね。
やっぱりこの方法が妥当なんでしょうか?
0215nobodyさん2007/05/30(水) 14:11:12ID:???
>>213
それです!ありがとうございました
0216nobodyさん2007/05/30(水) 14:18:20ID:???
>>214
用途によるとしか言えない。
ただテーブルを表示するだけならその方法でいいんじゃない?
0217nobodyさん2007/05/30(水) 14:39:32ID:UUvKwXeJ
>>216
確かにそうですね。
やろうとしてることはそれだけなので、この方法でいきます。
ありがとうございました
0218nobodyさん2007/05/30(水) 14:43:51ID:QPYqKYGN
ある文字列を2進数にして、また文字列に戻すというのはできますでしょうか?
0219nobodyさん2007/05/30(水) 14:47:47ID:???
できまsんよ
0220nobodyさん2007/05/30(水) 14:52:37ID:???
>>218
文字列を2進数に、を具体的に説明してくれ
文字列"hoge"は何に変えればいいんだ
0221虚弱PHP2007/05/30(水) 14:53:32ID:???
>>214
ひとまずPHPというよりHTTPの勉強はしておいた方がいいと思う。
1リクエスト1レスポンスが基本。
もちろん応用はあるけど、基本からどうぞ。
0222nobodyさん2007/05/30(水) 14:57:23ID:QPYqKYGN
文字列を0111010101みたいに変換したいのですが、それは関数を使って実現しました。
ただ、2進数を文字列に変換するというのが何の関数を使えばいいのかわからないです。
やっぱり>>219さんの言うとおりできないんですか?
0223nobodyさん2007/05/30(水) 15:16:08ID:l02pgwI/
1行テキストエリアと送信ボタンとリセットボタンがあります。
テキストエリアの値を消せるように、リセットボタンを押すとクリア
できるようにしたいです。

1回目はリセットできるのですが、送信ボタンを押して自分(test.php)に飛んだ後に、
リセットを押すと、値が消えてくれません。
(テキストボックスに値を入れて飛んだときに保持しているため?)

それで、javascriptで消そうと思ったのですが、phpの中での使い方が良く分かりません。
分かる方お願いします。
↓ソ〜ス
<form method=\"post\" action=\"test.php\" name=\"form\">
<input type=\"text\" name=\"url\" size=\"80\" value='$url'>
<input type=\"submit\" name=\"b1\" value=\"取得\">
<input type=\"reset\" name=\"reset\" value=\"リセット\">
</p></form>
0224nobodyさん2007/05/30(水) 15:24:19ID:???
日本語でおk。ついでにソースそれなに?
0225nobodyさん2007/05/30(水) 15:27:00ID:???
phpとまったく関係ない件について
0226nobodyさん2007/05/30(水) 15:32:51ID:???
unset
0227nobodyさん2007/05/30(水) 15:36:00ID:6H++tvOC
みなさん、PEARやフレームワークの使い方ってどうやって勉強しました?
俺はこうした、普通はこうするぞ、という意見をお教えください

自分の作りたいソースは何とか書けるけど、PEARのようなものはまったく使ったことがないレベルです。
0228nobodyさん2007/05/30(水) 15:39:16ID:???
2ちゃんで罵倒されながら勉強してきました
0229nobodyさん2007/05/30(水) 15:46:35ID:???
ちんたらしてないでさっさと答えろクズドモ
0230nobodyさん2007/05/30(水) 15:50:21ID:s13+ZS2Y
>>228
うーん、なるべくなら人の迷惑にならない方法が好ましいですよねw
もう十分におかけしてしまった気がしますが・・・
0231nobodyさん2007/05/30(水) 16:10:54ID:???
どうやって勉強しましたって・・・
中学生でもできるようなスクリプト言語だぞ・・・

ぶっちゃけ
PHP勉強しても意味ねーぞ
ちょっとマニュアル読んだら簡単に何でも作れるようになるし
JAVA勉強したほうが100倍いい
0232nobodyさん2007/05/30(水) 16:13:03ID:???
C#やれC#
0233nobodyさん2007/05/30(水) 16:13:20ID:???
Rubyがいいと思います
0234nobodyさん2007/05/30(水) 16:16:31ID:???
信者わいてきたなw
0235nobodyさん2007/05/30(水) 16:18:15ID:s13+ZS2Y
>>231
そう言われると厳しいですが・・・何とかPHPでお願いします

>>232-233
PHPでおねが(ry
0236nobodyさん2007/05/30(水) 16:22:38ID:???
じゃあ何をやりたいかを先に言ったほうがいいな。
その関連のPEARライブラリを愛でる様にソース見ながら使っていくというのが
地道でいいんじゃないの?
0237nobodyさん2007/05/30(水) 16:23:19ID:???
誰かに背中を押してもらう事で安心し、責任を放棄するタイプだよ彼は
0238nobodyさん2007/05/30(水) 16:25:30ID:s13+ZS2Y
>>236
うーん、やっぱりそれしかないんでしょうか
それが王道なのはわかってます 近道はないのかなぁ

>じゃあ何をやりたいかを先に言ったほうがいいな。

何が出来るかもわかっていない状態なので、やっぱりちゃんとソース読んでみますね


>>237
言い過ぎっすよwww
0239nobodyさん2007/05/30(水) 16:28:10ID:???
>ちょっとマニュアル読んだら簡単に何でも作れるようになるし
これは悪いことなのか
02401902007/05/30(水) 16:37:07ID:m2uLNJ+I
>>192>>193>>194>>197>>199
返事が遅くなってすみません。
教えて頂いたセッションで弾く方法でやったところ、
うまくいきました。
確かに、この方法だとデータベースの接続前で弾くので非常に有効ですね。
又、今まではログをみてアクセス拒否していたのですが、
リアルタイムで悪さしているIPを拒否できるので非常に助かります。

>>199さんのソースを参考に、悪さをしているIPには、ネットで仕入れたグロ画像を
デカデカと表示させて、怖くて二度と来させないように心理的作戦も実装しました。

今まで、毎日毎日アクセスログとにらめっこする手間が無くなって助かりました。
xreaに有料で利用しているのですが、サポートがイマイチなのでそこまで対応してくれないので、
いずれは、専用サーバーで運用できるようにがんばります。

色々とアドバイスどうもありがとうございました。
02412372007/05/30(水) 16:50:14ID:???
ごめんwwwいいすぎました
0242nobodyさん2007/05/30(水) 16:55:55ID:???
>>222
つまり、その文字列の二進バイナリ文字列表現を元の文字列型に変換したいってことかね。
バイトのバイナリ表現つってもいろいろあるぜ。
もともとのパック方法が分からんことにはエスパー降臨まで待つしかない。
0243nobodyさん2007/05/30(水) 17:31:40ID:???
>>240
>ネットで仕入れたグロ画像をデカデカと表示させて、
xreaにみつかったら怒られますよ^^;;
0244nobodyさん2007/05/30(水) 18:13:39ID:???
いつのまにかこっちがくだ質のメインなのな
0245nobodyさん2007/05/30(水) 18:37:59ID:???
>>238
まぁ、エロだな。
ただ、組み方間違えると、相手に非常に迷惑掛けるので諸刃の剣だが。
0246nobodyさん2007/05/30(水) 18:45:17ID:???
>>238
それが一番の近道です.なのでがんばれ
0247nobodyさん2007/05/30(水) 19:28:10ID:???
>>205
マニュアル嫁といいたいとこだが、
初心者にマニュアルは厳しいと分かっているので特別にヒントをやろう。
二つ目の問いに関していえば、
アクセスした時にセッションになんらかの固有の値を入れる。
アクセスが終わったら、消す。
セッションにその固有の値がなかった場合はアクセスさせる。
0248nobodyさん2007/05/30(水) 20:28:08ID:???
fopenでcsvファイルを開いて、fgetcsvで読み込んで、print_rで表示させる、
ということをやっているのですが、各フィールドの先頭の文字がおかしくなります。
「学校」→「w校」みたいな感じで。どうなっているんでしょう。
ちなみにスクリプトはutf-8で書いており、csvファイルはShiftJISのはずです。
おわかりの方、教えてください。お願いします。
0249nobodyさん2007/05/30(水) 20:44:02ID:???
> ちなみにスクリプトはutf-8で書いており、csvファイルはShiftJISのはずです。

釣りか?
0250nobodyさん2007/05/30(水) 20:45:00ID:???
>>249
いえ、そのつもりはないんですが。なにかとんでもない勘違いを
していますでしょうか。
02512502007/05/30(水) 20:51:58ID:???
21時までにおねがいします。次にすすまないので
02522502007/05/30(水) 20:53:48ID:???
>>251は私の発言ではありません。全然急ぎません。
0253nobodyさん2007/05/30(水) 20:59:23ID:???
>>248
fgetcsvは文字コードの変換処理をしない
かつSJISに対応してないよん。
0254nobodyさん2007/05/30(水) 21:02:02ID:???
>>253
そうなんですか!調べて修正してみますね。ありがとうございます。
02552502007/05/30(水) 21:05:54ID:???
すみません、急ぎはしないのですが、できれば今日中に片付くと嬉しかったりはします。
02562502007/05/30(水) 21:20:56ID:???
さっきから変な人がいますが、>>255も私ではありません。
また分からなかったら聞きに来ますのでお願いします。
0257nobodyさん2007/05/30(水) 21:26:44ID:???
夜は偽者だるいから消えていいよ。
やるなら昼間やってくれ。
あと質問者もID出せ。こういう馬鹿が沸くから。
0258nobodyさん2007/05/30(水) 21:44:26ID:???
>>241
いえいえ、結果的にはそんな感じになったので、あなたのおっしゃるとおりでしたよwww

>>246
さっそくソース読んでました
まさかそんな嬉しい言葉を言ってもらえるなんて思ってもいなかったので、感激です!!


みなさん本当にありがとうございました
02592502007/05/30(水) 21:53:17ID:QPYqKYGN
>>257
ガタガタうるせーなっ!!!
指図するなっ!!!!!
ヘボ回答者のくせに何様だ!?コノヤロウ!!
ID出してやったから回答即よろ
0260nobodyさん2007/05/30(水) 21:57:02ID:???
>>259
ha?
質問している分際で、何言っているの?
2chに何期待しているわけ?自分で調べれば?
0261nobodyさん2007/05/30(水) 21:57:50ID:QPYqKYGN
ここは質問スレなんだけどっ!!!
答えたくないならくんなヘボ回答者!!
02622602007/05/30(水) 21:58:49ID:???
>>261
釣りにマジスレ
ワロタw
0263nobodyさん2007/05/30(水) 21:59:40ID:???
>>260
>2chに何期待しているわけ?自分で調べれば?

その通り
質問者は自分の置かれている状況をわきまえろ
0264nobodyさん2007/05/30(水) 22:01:17ID:QPYqKYGN
答えられもしないくせにえらそうにwwww
昨日も今日も明日もおまえらだって質問してんだろ?wwwwwww
なにを回答者ぶってんの?wwwwww
ちょうしこいてんじゃねーよ、わらっちゃうねwwwwwwwwwwww
0265nobodyさん2007/05/30(水) 22:01:24ID:???
このスレほど強制ID表示になったら面白そうなものは無いな
0266nobodyさん2007/05/30(水) 22:10:53ID:???
わざとID出して釣る奴もいるからな
0267nobodyさん2007/05/30(水) 22:15:00ID:???
ルータいじればコロコロIPかわるから、
あまり効果はなさそうだけどな。
0268nobodyさん2007/05/30(水) 22:22:11ID:???
DOSコマンドから、
ipconfig /renew
と打てば、DHCPサーバーからのIPアドレスがリフレッシュされて新しいIPアドレスが割り振られるよ。
そうすれば、IDも変わると思うけど。
0269nobodyさん2007/05/30(水) 22:33:57ID:???
arrayってなんだよ
とっとと教えろカス共
0270nobodyさん2007/05/30(水) 22:37:08ID:???
>>269
>>1
0271nobodyさん2007/05/30(水) 22:39:19ID:???
>>269は、私ではありません。
宜しくお願いします。
0272nobodyさん2007/05/30(水) 22:40:31ID:???
>>272は私ではありません。
こちらこそ宜しくお願いします。
0273nobodyさん2007/05/30(水) 22:48:58ID:???
誘導
http://pc11.2ch.net/test/read.cgi/php/1158647441
0274nobodyさん2007/05/30(水) 22:57:02ID:???
arrayもわからないカスはPHPやらなくていいです。
0275nobodyさん2007/05/30(水) 23:20:46ID:???
PHP以前の問題だろww
0276nobodyさん2007/05/31(木) 00:02:30ID:???
PHP以前の問題でもない。
プログラム言語を始めてやる人間にはarrayも始めて。
PHPがはじめてのプログラムだった場合その人間にはarrayも始めて。
ただarrayとか基本型は教科書でいう2.3ページに書いてる事項なので、
ここでそれが何?とか聞くやつはマニュアルも読めない阿呆。
0277nobodyさん2007/05/31(木) 00:27:35ID:???
まあ、arrayだな
0278nobodyさん2007/05/31(木) 00:43:15ID:???
おあとがよろしいようで
0279nobodyさん2007/05/31(木) 00:56:51ID:???
PHPスクリプトの中でerror_reportingやdisplay_errorを
弄れた気がするんだけど、php.iniじゃないと無理かな?

昔できた気がするんだけど、今やり方が分からない。

気のせいだったかも・・・
0280nobodyさん2007/05/31(木) 01:01:24ID:???
鉄array
0281nobodyさん2007/05/31(木) 01:02:39ID:???
>>279
error_reporting(E_ALL);

error_reporting(0);

とか、つうか

ttp://php.mirror.camelnetwork.com/manual/ja/ref.errorfunc.php
0282nobodyさん2007/05/31(木) 01:03:04ID:5QX9Xbht
>>279
つini_set()
0283nobodyさん2007/05/31(木) 01:06:57ID:j+g2vXuB
eclipseでPHPの開発環境作りたいのですが、検索しても古い記事しかなくて
どなたかご指導ねがいます
0284nobodyさん2007/05/31(木) 01:09:35ID:???
PHPのプラグインなんていくつでもあるだろ。
好きなプラグイン見つけてfeaturesとpluginフォルダにぶち込めばおk
0285nobodyさん2007/05/31(木) 01:14:16ID:???
>>282
なんてわかりやすい説明w

>>283ではないが、実際にプラグイン使ってる人いたら何使ってるかと利点も教えて欲しいな
0286nobodyさん2007/05/31(木) 01:30:14ID:???
>>281-282
どうもありがとう。
0287nobodyさん2007/05/31(木) 02:43:00ID:???
>>283
1.【ZendStudio】PHP統合開発環境 Part2【Eclipse】
ttp://pc11.2ch.net/test/read.cgi/php/1154082822/
2.
ttp://cydn.cybozu.co.jp/2007/03/_part_4_eclipse_php_pdt_php_de.html
0288nobodyさん2007/05/31(木) 02:48:16ID:???
>>285
PDT 0.7.0 +Aptana CSS/HTML/JavaScript + Zend デバッガ(糞)
これでおなか一杯。使いこなせん
02892852007/05/31(木) 02:56:57ID:???
>>288
え、PDTとAptanaってうまく動作する?
Aptana + Eclipse PHPやってみて 俺全部試したけど、Aptanaの機能を殺さずに動くのはこれだけだった希ガス
0290nobodyさん2007/05/31(木) 09:28:09ID:???
windows Eclipse 3.2.2で普通に動いてるけど?
0291nobodyさん2007/05/31(木) 11:46:56ID:CptwN5p9
こんにちは
SQLから
2007-05-31 10:12:28
と引っ張ってきた日時がありまして
05/31 10:21
と表示するには
どういった関数が最適なのでしょうか?
0292nobodyさん2007/05/31(木) 11:48:49ID:???
>>291
日付関数のところくらい見ろよ・・・・
0293nobodyさん2007/05/31(木) 11:49:15ID:???
>>291
substrで「05-31 10:12」だけ切り取って、
strreplaceで「-」を「/」にすればいい。
0294nobodyさん2007/05/31(木) 12:00:06ID:???
>>291
TIMESTAMP型だろうけど、
始めからCHAR型で05/31 10:21というデータを入れればいいのでは?
0295nobodyさん2007/05/31(木) 12:03:11ID:???
>>291
くれぐれも玄人ぶってdate関数みたいな激重の関数を使わないようにな。
0296nobodyさん2007/05/31(木) 12:14:37ID:???
>>290
Aptana自動補完よりPDTの保管が優先的に働かない?
もっかい設定見直してみるわ 情報サンクス!
0297nobodyさん2007/05/31(木) 12:14:43ID:???
SQLの出力を変える
0298nobodyさん2007/05/31(木) 12:26:55ID:???
>>295
おいおい、いつの時代のPC使ってんだお前さんは?

>>296
スレ違いだから他所でやれや

>>297
そういう中途半端なわけのわからんこと言わんと黙っとれや

>>298
なんか言いたかったんだよな?
0299nobodyさん2007/05/31(木) 12:29:26ID:???
>>298
必死だなw
0300nobodyさん2007/05/31(木) 12:53:06ID:B+7WuiH9
300げと 〜〜〜>(≧∀≦)これからも趣味で楽しいプログラム。
0301nobodyさん2007/05/31(木) 13:16:23ID:???
プログラム(笑
0302nobodyさん2007/05/31(木) 13:18:58ID:???
語尾に(ぉとか(笑とかつけるやつって殴りたくなるよね
0303nobodyさん2007/05/31(木) 13:25:48ID:???
>>302
殴っちゃだめだろ
俺の場合は"見たこと"自体を記憶から除外して済ますよ
0304nobodyさん2007/05/31(木) 14:17:21ID:???
お前の人生そればっかりだろ(藁
0305nobodyさん2007/05/31(木) 14:26:32ID:???
絶対こういうレスつくと思ったwwwwwwwww
0306nobodyさん2007/05/31(木) 14:28:24ID:CptwN5p9
>>293
それはちょっと…

>>294
データベースの時点で削ってしまうといざという時に…

>>295
重くないですよね?

>>297
month関数とか別に結果出力してからって事ですよね?
なるべく一文のSQLを実現したいです
0307虚弱PHP2007/05/31(木) 14:33:27ID:???
>>306
>>297の対処法だけど、例えば、MySQLならDATE_FORMAT関数とかあるよね。
select文の取得カラムのところに書くだけだから、一文だと思うけど?
0308nobodyさん2007/05/31(木) 14:44:44ID:???
>>307
select * でやってたんで フィールド一個ずつにすればよかったんですね(汗
0309nobodyさん2007/05/31(木) 14:48:06ID:???
>>306
>>292
0310nobodyさん2007/05/31(木) 15:14:31ID:???
最近こんなパターンが多い。

ID表示で質問する。
ついた回答にID無しで文句言う。
ID表示で真面目に答える。
0311nobodyさん2007/05/31(木) 15:16:21ID:???
PEAR:DBという選択肢はないの?
0312nobodyさん2007/05/31(木) 15:49:36ID:BDY8A6/X
str_replaceで引用符をエスケープするにはどうすれば良いんでしょうか?

$hoge = str_replace("<html lang="ja">", "<html>", $hoge);
でエラーが出たので、
$hoge = str_replace("<html lang=\"ja\">", "<html>", $hoge);
で試してみたのですがダメでして。
0313nobodyさん2007/05/31(木) 15:54:39ID:???
>>312
どうみてもあってる。
どうダメだったのか詳しく
0314nobodyさん2007/05/31(木) 16:06:52ID:???
前の行を閉じ忘れてるに一票
0315nobodyさん2007/05/31(木) 16:08:59ID:???
>>312
エラーメッセージは?
0316nobodyさん2007/05/31(木) 16:10:28ID:BDY8A6/X
>>313
返答ありがとうございます。

いずれも、
Parse error: syntax error, unexpected T_CLASS in /home/hogeuser/www/test.php on line 20
とエラーが返ってきます。
0317nobodyさん2007/05/31(木) 16:12:01ID:BDY8A6/X
レスしている間に書いてくださった方々、ありがとうございます。

>>314
確認しました…が、閉じております。

>>315
遅れましたが、書かせて頂きました。
0318nobodyさん2007/05/31(木) 16:19:44ID:???
まずはシングルクォーテーションて括って単純化してみては。


//$hoge = str_replace("<html lang=\"ja\">", "<html>", $hoge);
とかでコメントアウトしてみれば?
違うところが原因ならそれでもエラー吐くだろうし。

あとはその書式で大丈夫なのか最小単位切り出してチェックしてみればいい。
0319nobodyさん2007/05/31(木) 16:19:57ID:???
シンタックスエラーかよ、、、
0320nobodyさん2007/05/31(木) 16:26:02ID:BDY8A6/X
>>318
有難う御座います!
似たような処理を1つずつコメントアウト前の方の行でミスをしておりましたorz

>>319
あほらしいエラーでしたか?変な質問で申し訳ありませんでした、気をつけますorz

答えてくださった皆さん有難う御座いました。
今度からエラーが出たときは別の行もさかのぼって探してみます、お騒がせしてすみませんでした。
0321nobodyさん2007/05/31(木) 16:40:54ID:PjgXIH6j
XAMPP LiteでPHP4.* MySQL4.1.*のものはあるのでしょうか?
XAMPP Lite 1.4.16を動かしてphpinfoで環境を確認したところ、
MySQLのバージョンは4.1.14のようですが、PHPは5.0.5のようです。
http://cl.pocari.org/2005-10-27-3.html
このようなサイトを見ると、1.4.5以降にはPHPは4.*と5.*が両方入っているようですが、
XAMPP LiteではPHP4は省略されているのでしょうか?

WindowsXP SP1で使用するつもりです。
複数のPCで同一の環境でテストサーバーを立てたいので
持ち運べるXAMPP Liteを調べているのですが、
どなたかご存知でしょうか?
よろしくお願いします。
0322nobodyさん2007/05/31(木) 16:52:21ID:???
早く教えてください
0323nobodyさん2007/05/31(木) 17:17:08ID:???
Liteじゃ無きゃいけない理由はあるの?
複数の環境に同じXAMMPPを入れたほうが解決が早い気がするけど・・
0324nobodyさん2007/05/31(木) 17:18:20ID:???
>>321
それぞれの環境に同じバージョンのapache php mysqlを入れるなり
インストーラを持ち運ぶなりすればいいじゃん
0325nobodyさん2007/05/31(木) 17:21:59ID:???
ネカフェ難民?
0326nobodyさん2007/05/31(木) 17:37:13ID:hXhMR7Vu
pear db はデフォルトではいってない上mdb2に統合
0327虚弱PHP2007/05/31(木) 17:53:53ID:???
>>311
特に困る事はないと思うのでPDOに移行した方がいいんじゃない?
PDOの方がパフォーマンスも上だし。
0328nobodyさん2007/05/31(木) 17:59:13ID:???















もうずっと人大杉
0329nobodyさん2007/05/31(木) 18:57:25ID:B+7WuiH9
VistaってPHP環境おk?
0330nobodyさん2007/05/31(木) 19:00:27ID:???
聞く前に使ってみろ。
0331nobodyさん2007/05/31(木) 20:02:05ID:???
>>329
マイクロソフトが30日間無料の英語版VistaのVPCイメージを無料で配布してるよ
やった後に報告よろ
0332nobodyさん2007/05/31(木) 20:07:27ID:2Z3X/v1G
$xが0〜50の間だと

if($x >= 0 && $x <= 50)

だけど

if( 0 <= $x <= 50)

こんな感じに簡単にできる方法ないかな?
0333nobodyさん2007/05/31(木) 20:25:23ID:???
>>327
4系だとpdo使えなかったりするウチの近所の事情
かといってMDB2は情報が少ないので結局DBをホイホイと使ってしまうのさ
0334nobodyさん2007/05/31(木) 20:36:44ID:???
>>332
下にするような必要性がないのでないです。
0335nobodyさん2007/05/31(木) 21:32:22ID:???
>>334
SQL には、between なんてものがあるぐらいだか必要ないわけじゃないけど、
必要度は低そうだし、文法がややこしくなりそう。
0336nobodyさん2007/05/31(木) 21:33:14ID:???
SQLは特殊だからなぁ
どっちかというと直感系なプログラムだし。
0337nobodyさん2007/05/31(木) 22:39:19ID:???
SQLとCOBOL辺りはそういう文法好きだよね。
文系的な言語設計だと思う。
FORTRAN由来のC・PHP・Java辺りじゃなかなか採用しない。
0338nobodyさん2007/05/31(木) 22:43:33ID:???
>>332
function between($min, $value, $max) {
 if($min > $max) list($min, $max) = array($max, $min);
 return ($min <= $value && $value <= $max)?TRUE: FALSE;
}

if(between(0, $x, 50))

とか?
0339nobodyさん2007/05/31(木) 23:04:49ID:???
>>338
> if($min > $max) list($min, $max) = array($max, $min);

こんな余計な動作はいらんと思う。

あと昔から、return condition ? TRUE : FALSE; って書く奴は、
どっか抜けてるんじゃないかと思ってるんだけど。

なんで素直に return condition; って書かないの?
0340nobodyさん2007/06/01(金) 00:00:09ID:???
あと40、50年で世界の熱帯雨林消滅するらしいよ
0341nobodyさん2007/06/01(金) 00:01:00ID:???
>>340は誤爆
0342nobodyさん2007/06/01(金) 00:49:39ID:4yZmbPpg
ttp://mixclips.org/rss/ のRSSがXML_RSSでうまくパースできないんですが、
何が原因でしょうか?
0343nobodyさん2007/06/01(金) 01:17:21ID:???
そのURL見ると中身無いんだが・・
0344nobodyさん2007/06/01(金) 01:31:12ID:???
Operaで見たら構文エラーが出た。
XML の解析に失敗しました: 構文エラー (行: 25, 文字: 78)
元のファイルに問題があると思ふ。
0345nobodyさん2007/06/01(金) 01:31:40ID:???
そのxml&使っちゃってるYO
0346nobodyさん2007/06/01(金) 01:33:16ID:???
よくある、よくある
0347nobodyさん2007/06/01(金) 01:45:58ID:???
あるあるw
0348nobodyさん2007/06/01(金) 01:46:55ID:4yZmbPpg
スクリプト側で何とか処理できませんか?
0349nobodyさん2007/06/01(金) 01:50:35ID:???
つextends
0350nobodyさん2007/06/01(金) 02:50:46ID:4yZmbPpg
>>349
お手数ですが、サンプルコードをお願いしますm(__)m
0351nobodyさん2007/06/01(金) 03:34:58ID:???
つ市ね
0352nobodyさん2007/06/01(金) 05:21:30ID:Wi7GJ0Xe
Foo::bar();

abstract class Baz
{
public static function bar()
{
// ここで Foo の値を取りたいんですがどうやれば良いんでしょうか
}
}

class Foo extends Baz
{}
0353nobodyさん2007/06/01(金) 06:12:26ID:JTjp1lWk
やってみたけどstaticだとできなかった
0354nobodyさん2007/06/01(金) 06:19:30ID:???
>>352
親クラスが子クラスのメンバを呼び出すべきではないし、
親クラスが子クラスを前提に組まれるべきではないかなぁ。
0355nobodyさん2007/06/01(金) 08:04:04ID:39E81ppx
子クラスでメンバ変数を書き換えれば?

Foo::bar();

abstract class Baz{
  var $Foo;
 public static function bar(){
  // ここで Foo の値を取りたいんですがどうやれば良いんでしょうか
 }
}

class Foo extends Baz{
 var $Foo = 'なんとか';
}
0356nobodyさん2007/06/01(金) 11:17:29ID:adREKSPx
すみません。初心者です。超くだらないとおもうんですが、どこにもWebに載っていないので、
教えてください。

file()関数というものがあります。ためしに変数名に$fileとしてみましても有効に使えました。
また、defineでためしに("file", "test300.php")としてみても有効に使えました。

これらの区別は、関数の場合は()括弧が付いている、変数の場合は$が付いているから
インタープリタは区別できるのですか?
0357nobodyさん2007/06/01(金) 11:25:07ID:???
>>355
Foo::bar();じゃ取れないでしょ
0358nobodyさん2007/06/01(金) 11:30:57ID:???
>>356
いってる説明が全く分からないのでソース出してください。
>関数の場合は()括弧が付いている、変数の場合は$が付いているから
関数と変数を比べてるのがわけがわかりません。
定数と変数ならまだわかるんだけど。
0359nobodyさん2007/06/01(金) 11:47:14ID:???
>>356
PHP初心者がそんなどーでもいいことを気にすることに笑った。
内部的には変数も関数も演算子も、INとOUTのフィルタのかけ方が少し違うだけの全く同じ物(ポインタ)です。
0360nobodyさん2007/06/01(金) 11:59:58ID:39E81ppx
>>355
確かにいったんインスタンスを作らないとダメですね。。すいません。

0361nobodyさん2007/06/01(金) 12:03:09ID:???
>>360
はい?どこにインスタンスの話が出てるんだ?
0362nobodyさん2007/06/01(金) 13:52:41ID:MTWDEGSU
オブジェクト指向が何なのかよくわからないまま
カウンター作ってみました。
http://php.shiriagari.com/counter/counter.php
やっぱり根本的に間違ってますか?

それぞれの機能を部品のようにして
必要なときに呼び出すことだと思って作ってみました。
ただdoCountでまとめただけで
全然意味ないですけど。
0363nobodyさん2007/06/01(金) 13:53:42ID:???
ID出してみたらすごいことになった
0364nobodyさん2007/06/01(金) 13:55:12ID:MTWDEGSU
>>363
間違えた
sageてしまった
0365nobodyさん2007/06/01(金) 13:58:32ID:???
ただ分割してまとめただけじゃねーか・・・
03663562007/06/01(金) 14:00:16ID:adREKSPx
>>359
どうもありがとうございます。しっかり分かりました。なんというか
自分の性格上、内部構造というかある程度深いところまで気になってしょうがないんです。

ありがとうございました。
0367nobodyさん2007/06/01(金) 14:01:53ID:???
>>362
ファイル操作はファイル操作のクラスとしてもったほうがいい
それをextendsかなんかで呼び出してカウンタークラスを作ったほうがいいよ
0368nobodyさん2007/06/01(金) 14:14:02ID:???
>>362
色々突っ込みたいけど最初はそんなもんだろうなぁ。
関数をクラスに突っ込んだだけのような形。
PHPじゃオブジェクト指向はなかなか理解できないからJavaから学ぶといいよ。
オブジェクトに関してはPHPもJavaに近いものがあるから、
多少書き方が違うけど理解できると思う。
0369nobodyさん2007/06/01(金) 14:19:52ID:???
>>362
flockの使い方まちがっとる。
0370nobodyさん2007/06/01(金) 14:28:03ID:Sl+KWZC8
$pager = & Pager::factory($array);

この & はどのような意味なのでしょうか?
0371nobodyさん2007/06/01(金) 14:29:58ID:???
>>370
参照
マニュアルの演算子の項目でも眺めてくるといいよ。
0372nobodyさん2007/06/01(金) 14:37:13ID:???
>>365
すいませんほんとにそのまんまです。

>>367
修正してみました。
http://php.shiriagari.com/counter/counter0.0.2.php
こんな感じで良いですか?

>>368
> 色々突っ込みたいけど最初はそんなもんだろうなぁ。
できればどんどん突っ込んでください><
> PHPじゃオブジェクト指向はなかなか理解できないからJavaから学ぶといいよ。
> オブジェクトに関してはPHPもJavaに近いものがあるから、
> 多少書き方が違うけど理解できると思う。
Javaスレ覗いてきます。
0373nobodyさん2007/06/01(金) 14:39:19ID:bXYxdOH8
質問です。
os winxp home sp2
an httpd 1.42pでphp5.2.2最新版を
動かそうとしたんですが上手くいきません・・・
設定ファイルは見直しているんですが・・・
ひょっとして鯖ソフト側がphpのヴァージョンに
対応してないのでしょうか?それが原因で
動かない可能性はありますか?
0374nobodyさん2007/06/01(金) 14:41:47ID:???
どうして初心者向けの自鯖の入門書は、Windows環境にAn httpd を薦めるんだ
未だに意味がわからん
0375nobodyさん2007/06/01(金) 14:43:36ID:???
GUIで設定できるからじゃね?
0376nobodyさん2007/06/01(金) 14:45:16ID:???
Apacheにしてください。
An httpdなんてレアなもの使ってデバッグしてる人なんて、
このスレで見つかるのか?
0377nobodyさん2007/06/01(金) 14:45:45ID:???
>>374
んじゃ何がいいの?
0378nobodyさん2007/06/01(金) 14:46:34ID:???
>>377
Apache以外に選択肢があるわけが・・・
0379nobodyさん2007/06/01(金) 14:52:37ID:bXYxdOH8
分かりました・・・・
素直にsolaris入れてきます・・・
ありがとうございました。
0380nobodyさん2007/06/01(金) 14:53:24ID:???
なぜ・・・ww
0381nobodyさん2007/06/01(金) 14:56:04ID:???
ApacheがUnixでしか使えないとでも思ってるゆとり世代なんだろうか。
Apacheのページみればマルチプラットフォームなのが一目で分かるだろうに。
0382nobodyさん2007/06/01(金) 15:10:53ID:bXYxdOH8
すいません・・・ちょっとしゃれを言ってみただけです。
今手元には「自宅サーバーfor Window」と「Solaris入門」
という書籍がありまして。そして右手にはunixマシンと
winマシンがありまして・・・正直横着してましたw
0383nobodyさん2007/06/01(金) 15:14:31ID:???
>>381
残念だったな お前が思っている以上にゆとりだったみたいだぞw
0384nobodyさん2007/06/01(金) 15:19:07ID:???
自宅鯖本持ってて、セキュリティ考慮しようとSolarisの入門書まで持ってるのに、
an httpdなんて冗談きついぜ。
どうしても使いたいというならアドバイスはできないが頑張れい。
unixマシンあるならApache+PHPは簡単に環境構築できるでしょ。
そっちのほうがいいと思うけどね。
0385nobodyさん2007/06/01(金) 15:21:06ID:???
入門書あるのにきっと読んでないんだぜ。宝の持ち腐れってやつだなwwww
0386nobodyさん2007/06/01(金) 15:27:35ID:???
Linuxのディストリビューションとかとりあえずインストールしておいて、何も使わない奴いるよね
ブートローダの意味勘違いしたままwinとのデュアルブート設定して
「Windowsが起動しなくなりました」とか質問しているアホゥな奴をたまに見かけるが
>>382もその手の人間だろ
0387nobodyさん2007/06/01(金) 15:39:41ID:???
>ブートローダの意味勘違いしたままwinとのデュアルブート設定して
>「Windowsが起動しなくなりました」
やべw昔の俺だw
0388nobodyさん2007/06/01(金) 15:57:59ID:???
質問です。
amazonで「画像を拡大」をクリックすると小さい画像が出現します。
大きい画像を出したいのですがどうやったらでますか?
0389nobodyさん2007/06/01(金) 15:59:05ID:???
コーヒーフイタ
0390nobodyさん2007/06/01(金) 16:09:30ID:bXYxdOH8
すいませんですた・・・・
アパにしたらさっくり動きましたw
お騒がせしました。
0391nobodyさん2007/06/01(金) 16:10:42ID:???
>>388 つ【拡大鏡】
0392nobodyさん2007/06/01(金) 16:14:19ID:???
>>381
アパッチが他のより優れてる点を教えてください。
0393nobodyさん2007/06/01(金) 16:26:46ID:???
>>392
色々優位点はあるけど、主な点は↓な感じです。

夜間の作戦や悪天候時にディスプレイに視界を表示するシステムやそれが統合されたヘルメット
目標捕捉・指示照準装置
パイロット用の夜間装備
レーダー・ジャマー(電波妨害器)
赤外線迎撃兵器
地表面誘導装置
GPSなどの最先端の航空電子機器
メインローターに23mm砲弾が直撃しても一定時間の飛行が可能
ミリ波レーダーを装備
0394nobodyさん2007/06/01(金) 16:28:57ID:???
>>393
寒い・・・
0395nobodyさん2007/06/01(金) 16:30:38ID:???
>>394
俺の胸で、君を暖めてあげるよ♪
0396nobodyさん2007/06/01(金) 16:31:14ID:???
>>392
Apacheの紹介の何がすばらしいのかっていう項目でも読んできなさい
0397nobodyさん2007/06/01(金) 16:42:26ID:???
>>396
Apacheだけのすばらしい項目をみてもSolarisに比べてどうなのか教えてください
0398nobodyさん2007/06/01(金) 16:54:30ID:???
あの〜、>>397 は私ではないのですが...
公式ページをよく読んでみます。
0399虚弱PHP2007/06/01(金) 16:54:59ID:???
>>372
ファイルクラスのコンストラクタにファイルパスを渡すように変更。
ロックは自動でやるようにしたりして、
インターフェースをもっと単純になるように整理してください。

次、
ファイルクラスはファイルパス毎、ひとつのインスタンスになるように、
エセSingletonパターンにしたり、
カウンタークラスでは、ファイルクラスを継承ではなく委譲を使う。

次、
ファクトリーパターンとか使って、
ファイルだけじゃなく、DBでも大丈夫なようにしたり。

それから、Javaスレ覗くんじゃなくて、Javaの勉強をした方が良い。
結城浩氏の本はとてもいいと思う。
0400nobodyさん2007/06/01(金) 16:55:41ID:???
>>397
知らないのに無理に煽ろうとしなくて良いよ
0401nobodyさん2007/06/01(金) 17:12:11ID:???
ApacheとSolaris比べてる時点でどうかと思うね。
Solarisっていつからhttpdになったんですか?
もしくはApacheはいつからOSになったんですか?
0402nobodyさん2007/06/01(金) 17:13:36ID:???
>虚弱PHP
20個も前のやつにレスすんなうっとーしい
それと同じこと何度も言うなカス
0403nobodyさん2007/06/01(金) 17:25:55ID:???
>>401
おまwそんなことも知らないのかwwww









俺も知らない
0404nobodyさん2007/06/01(金) 17:38:16ID:???
>>401
ApacheがOSって・・・
君は1から勉強してきてね
0405nobodyさん2007/06/01(金) 17:42:15ID:O/c0FzVA
>>404
日本語の読解力が足りないよ
0406nobodyさん2007/06/01(金) 17:50:31ID:???
>>404
君は日本語の勉強を(ry
0407nobodyさん2007/06/01(金) 17:52:08ID:???
>>401が何やら必死に煽ってきてますねww
0408nobodyさん2007/06/01(金) 17:53:13ID:kUpJMD1n
>>404=>>407
かっこ悪いからそのへんにしたほうがいいよ
0409nobodyさん2007/06/01(金) 17:57:46ID:???
>>397,404,407
バカすぎるなお前等w
0410nobodyさん2007/06/01(金) 18:04:30ID:???
>>407
悔しいからって必死になるなよw
0411nobodyさん2007/06/01(金) 18:07:06ID:???
これは腹が痛いwwwwwwwwww
この電波なことを延々といってるのは>>382でおk?w
0412nobodyさん2007/06/01(金) 18:08:14ID:???
>>411
お ま え だ よ
0413nobodyさん2007/06/01(金) 18:18:17ID:???
わかりやすいなぁ・・・

飽きたしそろそろ話の流れ戻そうか。
0414nobodyさん2007/06/01(金) 18:32:45ID:???
mysql_fetch_assocの戻り値をprintf_r関数で表示すると
[TEST] => 1
みたいな形式で表示されるのですが
このTESTという名前を取得する方法を教えてください
0415nobodyさん2007/06/01(金) 18:34:42ID:???
>>414
マニュアルのmysql_fetch_assocの項目にまんまかいてるじゃないか。
0416nobodyさん2007/06/01(金) 18:34:47ID:???
>>414
key
0417nobodyさん2007/06/01(金) 18:34:54ID:???
phpでオブジェクトを使った書き方を勉強中なのですが、以下の点が理解できません。
・var $変数値 = "hoge";
 変数値の前にvarをつける意味がよく分かりません。
 初期化と説明してるサイトもありますが、普通に「$変数値 = "hoge";」だけでは初期化したことにはならないのでしょうか。

・class内にfunctionを定義する優位性が分かりません
 class外に書くのと内に書くのとでどういう優位性があるのでしょうか。
 例えばコール時に class AAA{ function BBB{} } とあって、
 $TEST = new AAA;
 $TEST -> BBB("なんとかかんとか");
 と書くより、
 $TEST BBB(); とclass外にあるユーザ関数を呼び出す方が行数が少なくならないでしょうか。

素人思考な質問でしょうが、よろしくお願いします。
当方php以外の言語はせいぜいperl位ですので、お手柔らかにお願いします。(一応これでもググって着ての質問です;)
0418nobodyさん2007/06/01(金) 18:37:36ID:???
>>417
マニュアル読みましょう
そしてIDを出しましょう
0419nobodyさん2007/06/01(金) 18:40:52ID:???
>>415
わかんなかったんです><
>>416
$res[key] ですか?
0420417 ◆LUdEVzdrco 2007/06/01(金) 18:43:43ID:???
ageていいのか分からないのでIDの代わりに酉つけてみます。
>>418
一応マニュアルは読んでみました。
ttp://jp.php.net/manual/ja/language.oop.php を見たのですがイマイチ理解できませんでした…。
0421nobodyさん2007/06/01(金) 18:45:48ID:???
>>419
http://jp.php.net/manual/ja/function.mysql-fetch-assoc.php
例の最後のほうのwhileで囲まれた部分がヒント。

>>420
>>1も読めないならお帰り下さい。
0422nobodyさん2007/06/01(金) 18:49:49ID:???
>>421
すみません、おもいっきり質問が間違ってました。
欲しいのはフィールド名です・・・
フィールド名を列挙する関数はありますか?><
0423nobodyさん2007/06/01(金) 18:50:40ID:???
更にすみません><
mysql_field_name ですね・・・
お騒がせしました><
0424nobodyさん2007/06/01(金) 18:59:59ID:???
どうでもいいけど、フィールド名というのは止めようね。
カラム名といってくれ。
0425nobodyさん2007/06/01(金) 19:00:11ID:???
>>417
スレのルールを守ってないとはいえ暇だから答えてみる。

>変数値の前にvarをつける意味がよく分かりません。
これはアクセス制限用の修飾子です。意味はあるんです。
varはpublicと同義です。
php5からはJava同様詳細なアクセス制限がつけられるようになりました。
(private, protected, public)
他にもfinalだのstaticだのいろいろ修飾子はあるんですが、
どういう意味かとか使い方はマニュアル見るよろし。

>class内にfunctionを定義する優位性が分かりません
ただのfunctionは関数(ユーザ定義関数)といいますね。
class内にあるfunctionはオブジェクト関数またはメソッドといいます。
要は中身は一緒でも概念が別物なんですよ。
どう違うとかはマニュアルにちゃんとかいてるはずなので見るよろし。

というわけで、ちゃんと意味はあるんですよ。
ただOOPが理解できてないうちはそんなこと考えててもだめ。
勉強してるうち、書いてるうちにだんだんどういうものかわかってくるんですよ。
0426nobodyさん2007/06/01(金) 19:02:05ID:???
>>424に1票
0427nobodyさん2007/06/01(金) 19:09:36ID:???
フィールドでもカラムでも通じるから別にそのへんはどっちでもいいよ。
0428nobodyさん2007/06/01(金) 19:22:50ID:???
>>424
なんで?
0429nobodyさん2007/06/01(金) 19:24:45ID:???
>>428
今時のゆとり教育ではフィールド名とは言わずにカラム名と言うから
0430nobodyさん2007/06/01(金) 19:28:13ID:???
DBの話するときにカラムのほうが一般的だから

>>417
行数が減らせるからとかいう話じゃない
本当に検索してんの?いくらでもオブジェクト指向の解説ページあるじゃん
本当にマニュアル読んでんの?開いたけど理解する気ないんでしょ
本当に>>1読んでんの?上げていいか分からないのでトリップ付けますとか氏ねよ
0431nobodyさん2007/06/01(金) 19:29:04ID:???
マジレスすると、DBのような二次元で表わす行と列のモデルに対応する英語は、
column(C)とrow(R)。
フィールド(field)は、俗的に使われているだけ。
0432nobodyさん2007/06/01(金) 19:29:38ID:???
>>430
今時の子供乙
0433nobodyさん2007/06/01(金) 19:31:48ID:???
英語圏だとcolumnとrowは、数学の行列だろうが、一般的な表だろうが、どこにでも使うから、DBではfieldとrecordが好んで使われることも少なくない
04344172007/06/01(金) 19:44:09ID:lY2OXFpS
とりあえず、>>1読んできました…。 後はLANケーブルで吊れば任務完了です。

>>425
なんとなくvarについては理解できました。
極端な話がコンソール画面でls -laて打ったときのWXRの組み合わせみたいな感じでしょうか。

もうちと検索して出直してきます。ありがとうございました。
0435nobodyさん2007/06/01(金) 20:39:00ID:???
LANケーブルで吊れば
LANケーブルで吊れば
LANケーブルで吊れば
0436nobodyさん2007/06/01(金) 20:39:20ID:???
rowとcolumnは現状のDBでは、位置として殆どの場合正しい。
recordとfieldは意味として常に正しい。
0437nobodyさん2007/06/01(金) 20:45:44ID:???
あんまり気になったからSQL(MySQL)のマニュアルを見てみた
両方使われてた
0438nobodyさん2007/06/01(金) 22:15:46ID:8Txj8d3o
スペースで区切られた単語を
SQLの||検索するには、どういうstr処理が一般的なのでしょうか?

$_REQUEST['search'] = "学校 千葉県 船橋市";

$sql = "select .....where
0439nobodyさん2007/06/01(金) 22:35:42ID:???
>>438
explode使うと便利ですよ
0440nobodyさん2007/06/01(金) 23:25:39ID:TCcOsPVi
>>399
ID変わってしまったかもしれませんが
>>372です。
アドバイスありがとうございます。
がんばってやってみます。
Java 結城浩 アマゾンで買ってきます。
0441nobodyさん2007/06/01(金) 23:43:51ID:???
>>417
・class内にfunctionを定義する優位性が分かりません

ま、あれだな、

・部品は、中身を隠蔽しておいた方が後で使い回せるし、部分的に手を入れやすい

・使い回すためには class化しといた方がいいみたいだ

位の認識で、書き慣れておけばいいと思う。
簡単な処理を書き捨てるのなら、class化のメリットは無いと思うけど。


画面遷移が増えてきたり、
画面ぶっこぬき(スクレイピング)+webapiを混ぜこぜにしてグルグル処理するとかいった
ほとんど同じ処理だが微妙に分岐が異なるような処理をしだすと、class化のメリットがわかると思う。


>>362
がんがれ
とりあえず次はコンストラクタからかな。
class名と同じ名前のfunction を書くと classをnewしたときに、まず呼び出される。
んで、この辺りで、いろいろ前準備をする。


0442nobodyさん2007/06/01(金) 23:43:55ID:MZUMr7GL
データの中に半角の空白が数個あるのですが、全て1個にしたいのですが、
どうすれば宜しいでしょうか?
str_replaceを使おうと思ったのですが、
1個しかないときもあれば10個連続するときもあるので、
うまく1個にできなくて困ってしまいました。

例: <半角空白>12<半角空白><半角空白><半角空白>34<半角空白><半角空白>56 → <半角空白>12<半角空白>34<半角空白>56

ヨロシクお願いします。
0443nobodyさん2007/06/01(金) 23:44:35ID:???
>>439
あ、空白でエクスブロードすればいいんですね!
0444nobodyさん2007/06/01(金) 23:45:52ID:???
>>442
正規表現
0445nobodyさん2007/06/01(金) 23:56:48ID:???
>>442
$foo=preg_replace("/\s+/"," ",$foo);
0446nobodyさん2007/06/02(土) 00:00:04ID:???
>>445
補足
改行を含めたくないなら
$foo=preg_replace("/ +/"," ",$foo);
0447nobodyさん2007/06/02(土) 00:47:46ID:4Fzsq5dM
>>444-446
教えてもらったコードで、思い通りの動作ができました。
どうも、ありがとうござました。
0448nobodyさん2007/06/02(土) 01:57:42ID:IL4/kKoQ
質問させて下さい。
phpの最適化を行っている道すがらで見つけたのですが、以下のURL
ttp://labs.unoh.net/2007/05/phptips.html
・@によるエラー制御は遅い
・エラーメッセージはコストがかかる
とあります。
では実際どうしたら速いのでしょうか?
ワーニングレベルでもエラーを全く吐くことなく組めばいいといわれればそれまでですが。

色々検索したのですが、何処も同じような内容でこれ以上の事がかいていませんでした。
お力添え頂けると幸いです。
0449nobodyさん2007/06/02(土) 02:03:00ID:???
ウォーニングレベルのエラーを運用時まで残すなよ
0450nobodyさん2007/06/02(土) 03:14:10ID:???
たしかに。
エラーをだすプログラムはやめてくれ
0451nobodyさん2007/06/02(土) 03:59:52ID:???
>>448
ttp://www.ilia.ws/files/zend_performance.pdf
の53p目嫁

>>449-450
dbへの接続オープンの @ とか運用時にも残るわけだが
0452nobodyさん2007/06/02(土) 06:53:00ID:???
>>451
保存しました
0453nobodyさん2007/06/02(土) 10:09:03ID:???
>>451
戻り値チェックしろよ
0454nobodyさん2007/06/02(土) 11:53:58ID:wQhvKdCT
プログラムの書き方なんですが
例えば単純なショッピングシステムとかの場合だと
フォーム処理、検索処理、など処理機能でページを分けるのか
顧客処理、商品処理、などデータ別でページを分けるのか
どちらの方が良いのでしょうか?
0455nobodyさん2007/06/02(土) 11:58:17ID:???
使う人のことも考えてやれよ・・・
0456nobodyさん2007/06/02(土) 11:59:17ID:???
>>441
昨日の>>362です。
修正してみました。
http://php.shiriagari.com/counter/counter.0.0.4.html
ソースに色付いてないと見にくいと思ったのでHTMLファイルです。
(火狐では色がおかしくなるのでIEで見てください)
虚弱さんの言ってることはまだ全然実行(理解すら)できてないので今からそっちがんばってきます。
0457nobodyさん2007/06/02(土) 12:12:20ID:???
>>456
flockの使い方が間違ってるって言ってるだろ
0458nobodyさん2007/06/02(土) 12:14:49ID:???
>>457
すいません。
どう違うのかわからないのですが
0459nobodyさん2007/06/02(土) 12:15:22ID:???
>>432が一瞬うちの子供乙に見えた
0460nobodyさん2007/06/02(土) 12:27:00ID:???
>>456
理解してから修正しろよ・・・
つかphps使えよ・・・
0461nobodyさん2007/06/02(土) 13:02:19ID:???
まあgottenDataとかresorceとか、笑いをとる言葉を使わないところからはじめようぜ
0462nobodyさん2007/06/02(土) 13:04:45ID:???
こんちは、石田武雄です。高校2年っす。
これから、ガンガンやるんでみんなヨロシク!
0463nobodyさん2007/06/02(土) 13:49:31ID:???
石田君。高校生のうちは限定した分野ではなく、
さまざまな分野の勉強をするべきだと思うよ。
学校の勉強をがんばろうね。
0464nobodyさん2007/06/02(土) 14:05:11ID:???
>>463
いや、それはoK。ってか、コンピューターは情報でやるやる勉強だから。
大学じゃなくてitの方の専門逝くっから、他の科目は勉強する必要なし。
数学とは、○進法とかの部分は得意だけど、後はさっぱ。まぁ、卒業できればいっしょw
うちの先生バカばっかだから、俺がPCのことを逆に教えてやっているw
専門行く前に、プログラム言語きわめるぜ!!
0465nobodyさん2007/06/02(土) 14:07:56ID:???
めちゃめちゃ大事だぞ数学。
おれ今から数学だけ習いに大学通い直したいくらいだよ。
暗号化も圧縮もポリゴンも放物線も全部広義の数学。
数学わからなきゃそのへんの雑魚プログラマで人生終わりだよ。
0466nobodyさん2007/06/02(土) 14:08:17ID:???
>大学じゃなくてitの方の専門逝くっから、他の科目は勉強する必要なし。

だからPGはバカにされる
0467nobodyさん2007/06/02(土) 14:10:50ID:???
ちなみにプログラマってのは3年もやればただのキーパンチャ兼テスタと化すから、
趣味でやるか、構築設計から導入サポートまで全て自分でやるかの二択になる。
後者ならどうしたって国語も数学も礼儀作法も学校の勉強は全て必要になる。
0468nobodyさん2007/06/02(土) 14:21:00ID:???
職人としてスーパーPGを志すなら、それも良いと思う。
一番たちが悪いのは、ろくに技術力が無いのSEが上流工程を仕切ること。
一流企業のSEの技術力のなさは目も当てられない。
0469nobodyさん2007/06/02(土) 14:27:56ID:???
>>464
>専門行く前に、プログラム言語きわめるぜ!!
なんで所詮スクリプト言語のPHPを選択したのかね?
悪いことは言わないから、やるならJavaかC#かVB.NETやったほうがいい。
0470nobodyさん2007/06/02(土) 14:34:01ID:???
>悪いことは言わないから、やるならJavaかC#かVB.NETやったほうがいい。
全部いらねえ。んなもん10年後にはマイナー言語だ。バーカバーカ
子供は今しか出来ないことをやるんだ。
感性を磨くこと。世界の理を知ること。そしてセックルすること。
0471nobodyさん2007/06/02(土) 14:36:43ID:???
>全部いらねえ。んなもん10年後にはマイナー言語だ。バーカバーカ
これはマジレスしちゃっていいの?釣りなんだろどうせ?
0472nobodyさん2007/06/02(土) 14:41:33ID:???
>>471
バカかおまえ いま機械語がどれだけアツイのか知らないだろ!!!!











うちの情報学科で
0473nobodyさん2007/06/02(土) 15:42:34ID:???
入門用の言語なんて正直余程変なのじゃなければ何でも良い
でもPHPはダメだな
何でも簡単に出来すぎるし、型の概念とか身に付かないでしょ
0474nobodyさん2007/06/02(土) 16:22:02ID:VjLksS9h
MySQLでselectの検索時間を取得する関数はあるんでしょうか?

やっぱりphp側で前後のミリ秒経過ですかねぇ…
0475nobodyさん2007/06/02(土) 17:08:31ID:???
やっぱり入門授業ならCで。
0476nobodyさん2007/06/02(土) 17:18:38ID:7YNSOR8L
http://pc11.2ch.net/test/read.cgi/db/1178154390/
ここでphpのセッションでも使われている
md5のバッティングが話題になってるけど
バッティング率って実際どのくらいですか?
0477nobodyさん2007/06/02(土) 17:20:38ID:???
>>476
164 名前:NAME IS NULL[sage] 投稿日:2007/05/31(木) 23:40:19 ID:???
>>162
バントしたらホームランになっちゃった くらいの確率

以上
0478nobodyさん2007/06/02(土) 17:25:46ID:7YNSOR8L
それを数字で表すと何パーセントですか?
0479nobodyさん2007/06/02(土) 17:27:15ID:6vXnRB3n
コメントについて質問です。

//ないし/**/のコメント内部は、クライアントはダウンロードしているのですか?

コメントが多いスクリプトは重くなるという話を聞きまいした。phpの他のコードがクライアントに渡らないのと同じ理由で
コメントもサーバ側で処理されていると思うのですが・・・
0480nobodyさん2007/06/02(土) 17:28:43ID:6vXnRB3n
重くなるというのは、ファイルの容量が大きくなるという意味ではなくて
転送量が大きくなる、という意味です
0481nobodyさん2007/06/02(土) 17:43:31ID:???
>>479-480
試してみれば?
0482nobodyさん2007/06/02(土) 17:55:01ID:???
>//ないし/**/のコメント内部は、クライアントはダウンロードしているのですか?

サーバーサイドっていう意味判ってる?
0483nobodyさん2007/06/02(土) 17:59:52ID:???
釣りだろw
0484nobodyさん2007/06/02(土) 18:04:34ID:6vXnRB3n
>>481
後でやってみます

>>482-483
私がコメントの多いソースを書いていたら
先輩に「それじゃあ転送量が増大するだろ」と忠告されました
コメント書かないとわけわからなくなる糞な設計書を書いたのはその人なので
釣りだとすればその人が犯人なんです
0485nobodyさん2007/06/02(土) 18:08:10ID:???
釣りでしたね。
ごめんなさい
0486nobodyさん2007/06/02(土) 18:31:18ID:???
>>483
おまえうぜえな。
社会のゴミってよく言われるだろ?
0487nobodyさん2007/06/02(土) 18:32:51ID:???
いやこれは釣りだと思われても仕方ないだろう
0488nobodyさん2007/06/02(土) 18:32:59ID:6vXnRB3n
>>485-486は私じゃない
0489nobodyさん2007/06/02(土) 18:33:39ID:6vXnRB3n
結論としては、先輩が終わってるっていうことで良いんですか?
0490nobodyさん2007/06/02(土) 18:56:49ID:???
どちらも終わってると思うので、
後は二人仲良く相談してコーディングしてください。
0491nobodyさん2007/06/02(土) 18:57:47ID:???
>>489
終わってるね
基礎中の基礎も解っていない
0492nobodyさん2007/06/02(土) 19:02:34ID:???
>>490
ひどww 俺バイトですから書かれてることやって提出するだけです
提出したら電話がかかってきて
「おまえのソースはコメント多すぎるんだよ 転送量がハンパなくなるから勝手に削除したわ
余計なことさせるなよ」
と言われました メールじゃなくて電話ですよ


>>491
どもです

ありがとうございました
0493nobodyさん2007/06/02(土) 19:03:34ID:6vXnRB3n
ID出し忘れ
失礼しました
0494nobodyさん2007/06/02(土) 19:07:21ID:???
コメント削除ぐらいPHPにやらせればいいのに馬鹿な先輩だ
0495nobodyさん2007/06/02(土) 19:10:46ID:???
>>493
ごめんな。
言い過ぎたよ。明日おごるから
0496nobodyさん2007/06/02(土) 19:13:16ID:???
コメントを丁寧に書くことはいいことだよ。
むしろ、コメントがなくて今まで散々悩まされてきた。
もっと、しっかり評価してくれる人の下で仕事したほうがいいぞ。
0497nobodyさん2007/06/02(土) 19:14:40ID:???
つーかコーディング規約あるだろ。
0498nobodyさん2007/06/02(土) 19:19:14ID:???
この場合、コーディング規約は、あんま関係ない。
0499nobodyさん2007/06/02(土) 19:32:43ID:???
コメントさ〜〜〜ん☆彡
0500nobodyさん2007/06/02(土) 19:54:02ID:???
>>498
普通ある。
コメントについても言及してるはず。
0501nobodyさん2007/06/02(土) 20:26:28ID:???
>>500
コーディング規約でコメントの「書き方」はよくあるが「つけ方」は普通ないだろ
まあ、一行ごとにコメント書けというアホ規約があって
ボスが規約作った奴に怒鳴り込んだプロジェクトもあったけどさ

ウチのまわりだと、クラスやpublicメソッドのコメントはともかく
それ以外のコメント書くならコメントがなくてもわかるようなコーディングしろ
ってのが主流ですだよ
0502nobodyさん2007/06/02(土) 20:41:15ID:???
>>501
それだとコメントの魅力半減じゃ
コード読まなくても何やってるのか解るようにするためにコメント書くのも良いんじゃない?
0503nobodyさん2007/06/02(土) 20:47:31ID:???
コメント書かなくてもコード見れば分かると言う奴のコードほど見づらい。
0504nobodyさん2007/06/02(土) 21:38:30ID:???
コメント書いてても他人の書いたコードはさっぱりだぜ!
0505nobodyさん2007/06/02(土) 21:46:48ID:???
投稿出来るレビューサイト作ってみたいんですが、難しいですかね?
0506nobodyさん2007/06/02(土) 21:49:21ID:???
そんなに難しくない
0507nobodyさん2007/06/02(土) 21:50:46ID:???
>>505
それはphpだと厳しい。そこまでいくと、perlかrubyでやらないと駄目かも。
0508nobodyさん2007/06/02(土) 21:51:37ID:???
>>507
それはひょっとしてギャグで言っているのか?
0509nobodyさん2007/06/02(土) 21:54:09ID:???
>>508
いや、ギャグでもなんでもないんだが・・・
自由にユーザーが投稿できるようにするには、
入力チェックや何やらでphpでは手に負えなくなるだろ。
0510nobodyさん2007/06/02(土) 21:57:46ID:???
>>509
あの・・・何言ってるんだ?
何か別のPHPと勘違いしていないか・・・?
0511nobodyさん2007/06/02(土) 22:05:58ID:???
まぁ、phpのスレだから、あまり言っても荒れるだけだから止めとくけど。

ノコギリでも刺身が作れるだろ、と言われれば、
そうですね、と苦笑して答えますが。
0512nobodyさん2007/06/02(土) 22:16:33ID:???
>>511
phpを何に入れ替えても使える、便利な煽り文句ですね
0513nobodyさん2007/06/02(土) 22:17:30ID:???
>>507
rubyって・・・
0514nobodyさん2007/06/02(土) 22:19:04ID:???
なんか、荒れてる・・・。
結局のところどっちなんでしょう?
0515nobodyさん2007/06/02(土) 22:20:01ID:???
全然厳しくない
掲示板の延長程度
0516nobodyさん2007/06/02(土) 22:20:53ID:???
>>507は何かいってみたかっただけの駆け出しプログラマーなんだ。
許してやってくれ。
0517nobodyさん2007/06/02(土) 22:24:45ID:???
なるほど。
ありがとうございます。
0518nobodyさん2007/06/02(土) 22:35:18ID:???
いつもここの酷い有様を楽しみながら見ている
下質大好きっ子の俺が言うのもなんだけど
今日の流れの酷さったら半端ないな
0519nobodyさん2007/06/02(土) 22:44:09ID:???
ここんとこ毎日こんな感じ
0520nobodyさん2007/06/02(土) 22:52:38ID:???
>>505
Javascriptのライブラリでやるのがオススメ
俺が知ってるのでも2,3あるけど、その場でプレビューできるから最高だよ
0521nobodyさん2007/06/02(土) 22:54:57ID:???
PHP入門者なんだけど、
入力チェックってjavascriptでやるほうが簡単なの?
05224412007/06/02(土) 22:59:43ID:4co9FcJH
>>456

ttp://php.benscom.com/manual/ja/function.flock.php
例 623. flock() の例

<?php

$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, LOCK_EX)) { // 排他ロックを行います
fwrite($fp, "Write something here\n");
flock($fp, LOCK_UN); // ロックを解放します
} else {
echo "ファイルをロックできません!";
}

fclose($fp);

?>
だな ロックを掛けたら解除しる ってとこか
0523nobodyさん2007/06/02(土) 23:00:02ID:???
>>521
だから、そんなもんは、phpだろうとjavascriptだろうとperlだろうと何だってできるんだよ。
迷ってないで、まずは作れよ。
0524nobodyさん2007/06/02(土) 23:02:14ID:???
簡単かどうか?と聞かれれば、慣れてるほうが簡単だろうとしか言い様がない。
どっちがいいか?と言われれば、両方組み合わせるのが一番いいのは言うまでもない。
javascriptは画面遷移を伴わないでチェックできる利便性があるが、
クライアント環境に依存するので、javascriptオンリーは避けたほうがいい。
0525nobodyさん2007/06/02(土) 23:03:21ID:???
>>521
jsで入力チェックしても、cgi側でもう一回チェックする羽目になるのだが
0526nobodyさん2007/06/02(土) 23:21:38ID:???
>>525
確かにな 処理は増える
だが、利用者の側に立てば、その場でチェックできる方が良いのではないだろうか
0527nobodyさん2007/06/02(土) 23:28:05ID:???
>>522

読みとりの時は排他ロックじゃなくて、LOCK_SH LOCK_UN か、
書き込みの時は LOCK_EX LOCK_UN だね

getData();とかは素直にそのままreturnでカウンタの値(or 戻り値を含むarray)を返した方が良いと思う
この辺は上で他の人もいっていたけど、Javaの入門の方を見た方がいいか、、setter getterあたりとか


0528nobodyさん2007/06/02(土) 23:30:45ID:???
>>526
>>521の言い方だとjsかphpかどっちか片方にしか掛けなさそうだから言ったまでさ

確かに俺も入門者に接する態度じゃなかったな、言い直すか

>>521
どっちでもやっても大差は無いよ
でも、jsで入力チェックしただけだと悪意の有るユーザーが不正な文字列を簡単に送る事が出来てしまう、だからphp側でもチェックするのは必須
0529441=522=5272007/06/02(土) 23:31:09ID:4co9FcJH
すまん、安価張り間違えた。

全部>>456に対してのレスです
0530nobodyさん2007/06/02(土) 23:43:52ID:???
クライアントサイドでvalidateして終わりって恐ろしすぎる
05315212007/06/02(土) 23:59:41ID:???
>>528
なるほど。両方でチェックするという発想はありませんでした。
勉強になります。
0532nobodyさん2007/06/03(日) 02:27:21ID:V2jBxdII
みなさんはE_NOTICEが出ないようにコーディングしてますか?
0533nobodyさん2007/06/03(日) 02:31:49ID:???
しているよ
0534nobodyさん2007/06/03(日) 02:33:06ID:???
PEARをphp5でつこうたらnoticeでまくりじゃん
0535nobodyさん2007/06/03(日) 03:09:39ID:QBl67X/1
セッション用のディレクトリに、
一時作業用ファイルを作成して
別のプロセス間で共有させたいのですが、
どうやりゃいいですか?
0536nobodyさん2007/06/03(日) 03:17:59ID:???
それがわからないのならやらないほうがいいよ。
教えてもらってもセキュリティつかれるだけ。
おまえにはまだ早い
0537nobodyさん2007/06/03(日) 03:29:24ID:QBl67X/1
>>536
共有鯖ではないので多分大丈夫です
session.save_pathというのがありました
これを使えばいいと思うのですが
もしかしてセッションを削除する時に
同時に削除されてしまったりするのでしょうか
ワイルドカード使って削除しているのか
ただ単に全削除しているのかによると思いますが
0538nobodyさん2007/06/03(日) 03:31:44ID:???
共有鯖じゃないなら大丈夫だという自信があるならやってください。
おれならおまえの鯖をクラックするのにそう時間はかからないよ
0539nobodyさん2007/06/03(日) 03:41:19ID:???
((((;゚Д゚)))))
0540nobodyさん2007/06/03(日) 03:45:03ID:???
>>535
書いてることが意味不明なわけだが
具体的に何したいの?
0541nobodyさん2007/06/03(日) 04:49:53ID:???
     ∧_∧
    ( =д=)  世の中は質問があれば答えがある。その2つしかないんだっ!   
    ハ∨/^ヽ
   ノ::[三ノ :.'、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
0542nobodyさん2007/06/03(日) 08:46:00ID:???
>>541
それ1つでしょ
0543nobodyさん2007/06/03(日) 08:47:52ID:???
>>542=コナン
0544nobodyさん2007/06/03(日) 12:17:38ID:yVYYmrsT
アクセスしてきた場合に、あるファイルを読み込む処理をしているのですが、
不定期にエラーが発生してしまって困っています。
ここ1ヶ月試行錯誤でコードをあれこれいじったのですが、どうしてもエラーが消えないんです。
アドバイス頂けないでしょうか?宣しくお願いします。

【コード】
$fp = @fopen($fileName, 'r');
if ($fp) {
while ($line = @fgets($fp)) {
if ($line == FALSE || $line == "") {
break;
} else {
// ファイル処理
}
}

@fclose($fp);

}
【エラーメッセージ】
「while ($line = @fgets($fp)) {」の部分で発生
メッセージ「fgets(): 10 is not a valid stream resource」
【発生頻度】
1000アクセスに2,3回程度
【再現性】
アクセス負荷、時間帯、処理の内容に関係なく不定期に発生
0545nobodyさん2007/06/03(日) 12:56:46ID:XtY/sQS4
PHPで1回だけ処理をさせたい場合ってどういう風に記述するんですか?
(初期化処理とかなんですが・・)
2回目以降にリクエストされても、その処理は通したくないのです。
0546nobodyさん2007/06/03(日) 12:59:28ID:???
>>545
unlink(__FILE__);
0547nobodyさん2007/06/03(日) 13:01:47ID:???
>>544
「試行錯誤であれこれいじった」とかいう情報に何の意味があるの?
頑張ったんですけどだめでしたとかいうポーズ?
0548nobodyさん2007/06/03(日) 13:02:20ID:???
>>544
エラーメッセージの通り
fgetsの引数に何かが原因で10を渡してしまってるんだろう
0549nobodyさん2007/06/03(日) 13:13:09ID:???
>>547
べつにえーやんそんくらい。おまいの嫌味情報のがよっぽどいらん。
0550nobodyさん2007/06/03(日) 13:17:57ID:XtY/sQS4
>546

それって処理終わったら消すってこと?(ファイル自体を)
PHPってそんな方法でしか実装できないの?
0551nobodyさん2007/06/03(日) 13:20:35ID:???
>>550
というか質問が曖昧なのだよ。
0552nobodyさん2007/06/03(日) 13:23:01ID:???
>>550
要件があいまいすぎてわけわからん。
本当に一回しか実行しないなら、一回実行して消せばいいのはあたりまえすぎだし。
セッションごとに一回って意味にとれなくもないし、妙に回答のしづらい質問だな。
0553nobodyさん2007/06/03(日) 13:24:46ID:XtY/sQS4
たとえばDBのコネクションをプーリング(保持)したい場合って、毎回接続させたくないから、apache起動時とかもしくは1番最初のリクエスト時にDBの接続をして、次回以降はさせたくないとかそんな意味なんだが。
0554nobodyさん2007/06/03(日) 13:31:53ID:???
>>553
pconnectとかだったらDBがやってくれるよ
2回目以降の接続なら自動的に既存の接続を使いまわしてくれる
それ以外でも1回目だけとか考えるより、対象の処理が完了していたら
実行しないとかそういう風に考えるのがまあ普通だな例外もあるが
0555nobodyさん2007/06/03(日) 13:32:47ID:???
singleton使えば?
あと何でいきなり口調が偉そうになってんの?
0556nobodyさん2007/06/03(日) 13:33:10ID:???
コネクションプーリングだったらググれば出るぞ
0557nobodyさん2007/06/03(日) 13:36:21ID:XtY/sQS4
>> 554

ありがとうございます。
参考になりました。
0558nobodyさん2007/06/03(日) 13:37:34ID:XtY/sQS4
>> 556

いや特にコネクションプーリングがやりたいわけじゃなく、PHP使って初期化処理って普通どうすんのかなぁと気になって。
上でも書いたけどコネクションプーリングは例えです。
0559nobodyさん2007/06/03(日) 13:55:14ID:9Yu/VUSy
PHP4でdelegateパターンを実現する方法はありますでしょうか?
0560nobodyさん2007/06/03(日) 14:30:00ID:???
逆にどこが実装しにくいのか聞きたい
0561nobodyさん2007/06/03(日) 14:36:04ID:9Yu/VUSy
>>560
存在しないメソッドが呼ばれたときに、呼ばれるメソッドを定義できて、
そのメソッド名とパラメータがえられれば実装できます。
が、今一度マニュアルを漁ってみたところそのような機構はないようです。
0562nobodyさん2007/06/03(日) 14:43:05ID:???
>>561
一応PHP4にもある、4.3.0以降オンリーで5のより使いにくいけどな
http://jp.php.net/overload
でも5でやるのがおすすめだな
0563nobodyさん2007/06/03(日) 14:50:10ID:9Yu/VUSy
>>562
ありがとうございます。こんなところにあるは思いませんでした。
一応リファレンスは通読していたつもりだったんですが…。

確かにPHP5でやると楽なんですが、PHP4が要件なんです。
これで何とかなりそうです。本当にありがとうございました。
0564nobodyさん2007/06/03(日) 16:12:50ID:???
1時間に100万通くらいメールを送りたいんですが、
sendmail関数をforでループさせても3万通位が限界です。
これってphpの仕様?
できれば、100万通じゃなくても多ければ多いほどよくて1億通でも送ることが可能なら送りたいです。
よろぴく♪
0565nobodyさん2007/06/03(日) 16:15:06ID:???
>>564
spam業者乙
0566nobodyさん2007/06/03(日) 16:16:06ID:???
>>564
それはphpだと厳しい。そこまでいくと、javaかperlでやらないと駄目かも。
0567nobodyさん2007/06/03(日) 16:21:45ID:???
>>566
レスありがと!
んで、javaだと何かいい方法あんの?
0568nobodyさん2007/06/03(日) 16:23:28ID:???
>>566
おいおい関係ねーよ。誘導すんなぼけ。
0569nobodyさん2007/06/03(日) 16:25:09ID:???
phpがどうというよりMTAが捌ききれてないような
0570nobodyさん2007/06/03(日) 16:30:02ID:???
>>567
javaはphpと違って言語レベルで並行処理ができる。
※ こういうことが出来ないのが、phpがスクリプト言語と言われる由縁だけど。
詳しくは、javaのスレでメールの送信方法と、マルチスレッドの方法を聴いて。
※ その前に、googleで検索するように。すぐ見つかる。
あとは、サーバーによって一時間当たりのメール送信数に制限掛けているところがあるから、
複数の安いサーバーと契約して送信すればできるんじゃないか?
0571nobodyさん2007/06/03(日) 16:34:57ID:???
強烈な電波を感じます
0572nobodyさん2007/06/03(日) 16:37:13ID:???
普通100万とか送ったら自滅するだろ。
0573nobodyさん2007/06/03(日) 16:41:15ID:???
結局、phpだとダメダメってことな。
jjavaもよくわからんけど、わかんかったらまたききに来るわ。
0574nobodyさん2007/06/03(日) 16:43:27ID:???
pcntl_forkでsocket100個作って回してみろよ
0575nobodyさん2007/06/03(日) 16:43:45ID:9Yu/VUSy
んなこたない。用途に合わせて適切に道具を選べないお前がダメダメってことだ。
0576nobodyさん2007/06/03(日) 16:46:36ID:???
>>573
もうここには、聞きに来ないでくれ。
javaなら、下のメールリストに高木さんという親切な管理人さんがいらっしゃるから、
何も分からないから、メールで大量送信できるようなプログラムを至急作って送って下さい。
と送れば、すぐ作ってくれるんじゃないかなぁ。
ttp://java-house.jp/ml/
0577nobodyさん2007/06/03(日) 16:50:24ID:???
>>576
宣伝乙
0578nobodyさん2007/06/03(日) 16:50:31ID:???
ここが一番クソスレクソサイトなんだからここでやれよ
0579nobodyさん2007/06/03(日) 16:56:48ID:???
それは宣伝と言うよりも……怖い…
0580nobodyさん2007/06/03(日) 16:57:59ID:???
GCされた時に
session_destroyすると
Message: session_destroy() [function.session-destroy]: Session object destruction failed
になります。
セッションが切れているかどうかを判定する方法はないですか?
0581nobodyさん2007/06/03(日) 19:08:19ID:???
タイムアウト処理に関して質問です。
ある処理が一定時間経っても終了しなかった場合に、次以降の処理に進むような処理はどうやって実装するのでしょうか。

具体的にやりたいのは、数件のRSSファイルをネットワーク経由で持ってくる場合、n秒以上応答が無い場合は
次のURLに移る・・・というような処理です。

宜しくお願いいたします。
0582nobodyさん2007/06/03(日) 19:14:26ID:???
>>580-581
テンプレ嫁
05835812007/06/03(日) 20:48:31ID:ngQVF/3a
失礼しました。

環境はWindows、Apache、PHP5.2.1です。
0584nobodyさん2007/06/03(日) 20:51:34ID:???
>>580
session_destroyしてるってことは、そのスクリプトの前の方で
session_startしてるわけだわな
んで、session_destroyの時点でセッションのデータが削除されてるってことは
(session_destroyの時間 - session_startの時間) < session.gc_maxlifetime
になるわけだと思うが、いったい何をしたらそうなるのかこっちが聞きたいわ

>>581
RSSをHTTPでもってくるにしても色々やり方があるわけで
それによって答えも変わるわな
0585nobodyさん2007/06/03(日) 22:19:08ID:3VqHHU9G
コメント欄のcgiが欲しいんですけど何処かにありませんか?
0586nobodyさん2007/06/03(日) 22:25:30ID:???
>>585
日本語でおk&スレ違い&
http://pc11.2ch.net/test/read.cgi/php/1180181033/41
これお前だろ
0587nobodyさん2007/06/03(日) 22:31:21ID:???
>>585
簡単だからつくれ
0588nobodyさん2007/06/03(日) 22:38:17ID:???
>>585
そんなのコメントのフリして自分で書いたHTMLあげておけや
0589nobodyさん2007/06/03(日) 22:52:53ID:???
>>588
>>585じゃないけど、その仕様だと例えばHTMLを知らないユーザーとかだとアップできなくない?
HTMLの説明書きとかを注釈で加えるとか?
0590nobodyさん2007/06/03(日) 22:57:00ID:???
>>589
お前馬鹿だろ
0591nobodyさん2007/06/03(日) 23:00:54ID:???
>>590
バカはお前だ。
ブログのコメント欄にHTMLで書けと要求するシステムがどこにあんだよw
0592nobodyさん2007/06/03(日) 23:04:52ID:BrDIy+5H
XAMPPのことをプログラム初心者向けに解説されてるページとかはないでしょうか?
ぐぐってもなんらかのプログラム知識ある人向けに書かれてるページばかりで
さっぱりわかりません。
05935922007/06/03(日) 23:11:19ID:BrDIy+5H
Warning: include(lang/jp.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\security\htdocs\index.php on line 13
Warning: include() [function.include]: Failed opening 'lang/jp.php' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\security\htdocs\index.php on line 13

https://localhost/xampp/
でセキュリティを押すと上のようなページ表示されてるけど
解説ページ探してもちょっと違うんだよね
なんか間違えてインストールしてるのかな?
0594nobodyさん2007/06/03(日) 23:12:09ID:???
>>591
aho-
どう見ても>>588は「自分でコメント欄もどき作っておけ」っていう冗談じゃねーか
日本語大丈夫か?
05955812007/06/03(日) 23:13:38ID:ngQVF/3a
>>584
返信ありがとうございます。

RSSを持ってくる手段についてはfopenを使うか、もしくはRSS読み込みまでやってくれるモジュールを使うか
決めてはいませんでした。仮にfopenで持ってくる場合にどうすれば良いかお聞きしたいです。
0596nobodyさん2007/06/03(日) 23:25:52ID:???
>>593
検索すればいくらでも出てくると思うが、、、
jpの言語ファイルがないってインストーラで入れるときに
japanese選んだのかい?
05975882007/06/03(日) 23:31:58ID:???
おまいら何折れ抜きでおもしろいことしてんのよw
くそ、ID出しておけばよかった・・・
05985922007/06/03(日) 23:38:39ID:BrDIy+5H
しっかりと日本語を選択しました。
インストール自体が失敗してたのかな?
05995922007/06/04(月) 00:07:17ID:fJ2k7ySq
原因発見
DLしたXampp自体のバグだったようです
http://support.exxaxon.co.jp/index.php?topic=30.0
のようにjp.phpってのをコピーしたら表示できました
しかしまぁ1.5.5の時のバグが1.6.2でも解決されてないんですね
これだけで今日6時間かかった危うく挫折するところだったorz

0600nobodyさん2007/06/04(月) 00:41:14ID:???
>>599
>しかしまぁ1.5.5の時のバグが1.6.2でも解決されてないんですね

はい、そこ。ちょっと問題が解決したからって、気を大きくしない

逆に言われてしまえば「既知のバグも確認せずにインストールするなんて」ってなるんだから、
正直見苦しいよ
0601nobodyさん2007/06/04(月) 00:53:50ID:???
どう見ても見苦しいのはおまえだよ
0602nobodyさん2007/06/04(月) 00:57:39ID:???
>>599必死涙目乙w
0603nobodyさん2007/06/04(月) 01:06:16ID:???
あるオブジェクトのメソッドから、呼び出し元を調べたいんですが
どうやって調べればいいでしょうか。
0604nobodyさん2007/06/04(月) 01:09:03ID:???
>>603
http://jp.php.net/debug_backtrace
0605nobodyさん2007/06/04(月) 02:41:59ID:???
>>595

stream_set_timeout($fp, $idle);
http://php.mirror.camelnetwork.com/manual/ja/function.stream-set-timeout.php

だな
0606nobodyさん2007/06/04(月) 10:20:36ID:???
>>605
そんな関数があったのか。前に同じことをしようとしたときはわざわざforkしてた...
でも、スレッド使いたいな。
0607nobodyさん2007/06/04(月) 11:14:34ID:xiuS9z/Z
いつも読ませてもらってます。
連想配列内の配列を取り出す方法を考えています。
例えば以下の配列
$a = array(0=>array(0=>"AA",1=>array("A","B")),1=>array("C","D"),2=>array("E","F"));
から$a[0][1]を取り出したい場合どのようなスクリプトならできるのか悩んでいます。
array_slice($a,0,1)だとarray(0=>array(0=>"AA",1=>array("A","B")))のみです。

$aからarray("A","B")の部分を取り出すにはどのようにすればいいのか教えていただけませんか。
0608nobodyさん2007/06/04(月) 11:17:18ID:???
$newArray = $a[0][1];
06095812007/06/04(月) 11:36:37ID:JYPog2pE
>>605
どうもありがとうございます。早速試してみます。
0610nobodyさん2007/06/04(月) 12:00:59ID:DwHDHcMt
今、他の方が作ったプログラムをいじってるんですけど、
フォームから、GETでデータをhoge.phpに渡しているんですが、
データが、'を\'にしたり\を\\にしたりと、サニタイズされています。
hoge.phpのインクルードしているプログラム間でそういう記述があると思ったのですが、
hoge.phpの一番上(処理が何もされていないだろうと思う場所)で、
print_r($_GET);
exit;
としても、サニタイズされているんです。
javascriptでも何もしていませんでした。
これってありえますかね?(現にありえてるんで悩んでいるんですが・・・)
アドバイスお願いいたします。
0611nobodyさん2007/06/04(月) 12:13:54ID:???
>>610
つ[magic_quotes_gpc]
0612nobodyさん2007/06/04(月) 12:26:25ID:???
このmagic_quotes_gpcって本当に邪魔だよなあ。
ってわかってるやつは切ればいいんだけど。
サーバをいじれない環境だと.htaccessでやるしかなくて、
できるかどうか確認するのまでどきどきしちゃうw
0613nobodyさん2007/06/04(月) 12:28:08ID:???
>>611
あ〜それわすれてましたw
ありがとうございます!
0614nobodyさん2007/06/04(月) 12:38:17ID:???
magic_quotes_gpcでだめなケースってどんな場合があるの?
0615nobodyさん2007/06/04(月) 12:48:07ID:???
>>614
つ[ブラウザを通さないで表示する場合]
0616nobodyさん2007/06/04(月) 15:32:29ID:???
>>607はPHP-usersのMLとのマルチかよ、くだんね
0617nobodyさん2007/06/04(月) 16:47:52ID:???
明日6時に起きようと考えて眠ると、5時58分くらいに目が覚めるのですが、
あれは、脳の中にcronの仕組みがあるという認識で間違っていませんか?
0618nobodyさん2007/06/04(月) 16:56:17ID:???
>>617
とりあえずNTPサーバーと同期をとることをおすすめします。
0619nobodyさん2007/06/04(月) 17:48:34ID:6QRX92pz
>>441

>中身を隠蔽しておいた方が後で使い回せるし

classに隠蔽したほうが使いまわせれるというのはどういうことですか?
毎回オブジェクトをつくらないといけないですよね?

>>画面遷移が増えてきたり
フォームかurlでしか次の表示に変数は渡せないですよね?

0620nobodyさん2007/06/04(月) 18:14:19ID:N4khH+fa
セッションについての質問です

セッションはクッキーと違い、変数をサーバー上に保存しておくものだと本で読みました
ということは、あるユーザーが取得したセッションで管理されてる変数を、
同じページを開いた別のユーザーも共有できるのかと思い、試してみましたができませんでした
これはなぜでしょうか?

ちなみに下記の方法で試してみました
↓ソース
test.php
<?php
session_start();
if(!isset($_SESSION["count"])){
$_SESSION["count"] = 0;
}
else{
$_SESSION["count"] ++;
}
echo $_SESSION["count"];
?>

PCが一台しかないので、同じPC内の2種類のブラウザ(IEとファイアーフォックス)で実験
1 IEで開いてF5を連打し、カウントを適当な数まで増やす
2 ファイアーフォックスで同じページを開く

ファイアーフォックスで開いたとき、IEで表示されているカウント数に関係なく 0 が表示されました
なぜでしょうか?
0621nobodyさん2007/06/04(月) 18:33:08ID:lLfrP8Zc
ドコモ携帯で太陽マークを打ち込み、それをポストして、PHP側で「F89F」を取得するにはどうすればいいのでしょうか?
0622nobodyさん2007/06/04(月) 18:46:04ID:???
>>620
セッションidって物が有るから
0623nobodyさん2007/06/04(月) 19:00:04ID:???
>>621
ヒント 16進数
0624虚弱PHP2007/06/04(月) 19:03:20ID:???
>>620
厳密には正しくないけど最初は↓みたいに理解するといいかも。

○ユーザー毎にセッションIDが付けられる。
 → これをブラウザのクッキーに保存

○セッションID毎にセッションファイルが作られる。
 → ブラウザクッキーとして送られたセッションIDをもとに読み出し
0625nobodyさん2007/06/04(月) 21:31:58ID:???
>>620に釣られたんだけど、セッションって何も設定しなくてもクッキー使わないんだよね?
06264412007/06/04(月) 21:51:29ID:g5MJj3HB
>>619
>classに隠蔽したほうが使いまわせれるというのはどういうことですか?
>毎回オブジェクトをつくらないといけないですよね?

確かに、書き捨ての簡単な処理しか必要ない、機能追加もメンテも全部一人でこなすというのなら
無理にする必要は無いとは思うけど。

ただ、使えるけど使わない 使えないから使わない
は全然違うから、とりあえず使えるようにすることから始めてみればいいのでは。

メリットを理解するのは
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060921/248617/ とか、
ttp://www-06.ibm.com/jp/developerworks/opensource/060901/j_os-php-designptrns.shtml とかか、


>画面遷移が増えてきたり
>フォームかurlでしか次の表示に変数は渡せないですよね?

有る意味ではその通りだし、有る意味では違うともいえるかも。
class云々とは若干離れるが、

変数(+オブジェクト)の受け渡しは、 serialize ttp://jp.php.net/serialize を使う方法もある。

最近は json and xajax 使ってるけど。 なるべく画面遷移させたくないからね。
単純な登録・更新・削除だけだと、べたべた書いても変わらないけど
curl+パース→結果によりPOSTを分岐+DB格納 とかを組み合わせた
バッチ系の処理を書くと、クラス化して隔離・隠蔽しとかないと、あとで訳わからなくなってくるんすよ。

まぁ覚えておいて損は無いからまずは習得+模倣から始めればよいと思う。
0627nobodyさん2007/06/04(月) 21:58:09ID:???
>メリットを理解するのは
>ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060921/248617/ とか、
これはいくらなんでも電波だな。電波と言うか無内容
06284412007/06/04(月) 22:13:23ID:g5MJj3HB
>>627

平易で良くまとまっているポインタが有れば、差してくださいな。

中・高・大・大人(というか環境)によって見え方と捉え方が違うから難しいっす。




0629nobodyさん2007/06/04(月) 22:26:07ID:5+o3owYS
>>使えるけど使わない 使えないから使わない
いつ使ったらいいかわからないんです
単に遠まわしにしているとしか感じないです。
ただのユーザー関数とクラス化したもので
例えばどういう処理orアプリにおいて便利なるんですか?
ユーザー関数だと、こういう風に格納しまくらなきゃいけなくて
オブジェクトならこんな風に数行で…みたいな
0630nobodyさん2007/06/04(月) 22:35:46ID:???
OOPは考えるな、書いて感じろ
06314412007/06/04(月) 22:35:58ID:g5MJj3HB
>>629
乱暴に一言でいうと、単純なユーザー関数だと、抽象化 継承が出来ない。
一連の機能を継承して新たな機能を派生で作るとかね。

遠回しという感覚は確かにその通りに感じると思う。
というか遠回しにしているからこそ拡張出来る。


だから、有る程度の複雑性と多様性が無いと、純粋なコードを書く量は増えてしまうだけで、
メリットを享受出来ないかも。
0632nobodyさん2007/06/04(月) 22:43:50ID:???
リンク先でも書いてるけど、OOPの特徴といったらカプセル化、継承、ポリモーフィズムなんだろう。
一人で開発していて、再利用するつもりもなくて、拡張性の必要もない場合に加えて、
言語はPHPというなら、別にOOPする必要はないんじゃないか。
0633nobodyさん2007/06/04(月) 22:50:17ID:???
ないよ
とりあえずOOPで書いてみて何がいいのかを体感しようとせず
頭だけで理解しようとする奴にはいつまでたっても無理だから
0634nobodyさん2007/06/04(月) 22:57:02ID:???
>>632

そうだと思うよ。急いでその場しのぎで作るなら無理にする必要はないとも思う。
OOPが目的のOOPでの実装は意味がないと思っている。

趣味とか、やっつけ仕事、数百行程度の実装なら別にいいんじゃないか。


ただ、そのまま機能を作り込んでいくと、

「あの機能とよく処理にてる」とか
「あの処理のあの機能を引っぺがして、ちょこっと変えてこっちにも組み込みたい」
「ほとんど似ている手続きなんだけど微妙に分岐が違う一連の手続きを定期的に連続実行したい。」
とかが頻発してくる。

んで、よく似た同じ事をコピペとかでくむと、後で修正するときも、同じような機能で微妙に違う箇所を
grepして抽出して、書き換えるとかいった面倒なことになる。書き換えるだけならいいけど、テストも過給的に
増えてメンドクセーとかね。

だから、必須ではないけど、使えるようにしておいた方が何かとつぶしは効くかも。
0635nobodyさん2007/06/04(月) 22:59:49ID:???
>>630は名言だろww
06364412007/06/04(月) 23:03:21ID:g5MJj3HB
>>634
ID晒し忘れた。
0637nobodyさん2007/06/04(月) 23:12:23ID:gV5OyYxv
初心者に近い人が「これつくってみると一気にレベルアップするよ」的なものってありますか?
0638nobodyさん2007/06/04(月) 23:22:45ID:???
ブログ
0639nobodyさん2007/06/04(月) 23:24:34ID:???
自分で造るにしても、他のソースを参考にしないと進歩しない
0640nobodyさん2007/06/04(月) 23:25:12ID:???
とりあえず自力で作ってみて詰まるのもいいんじゃね?
0641nobodyさん2007/06/04(月) 23:29:34ID:???
自分でゼロから作って、完成させる。

人のソースを見て、自分のソースをリファクタする。

これが、最強の教育アルゴリズム。
0642nobodyさん2007/06/04(月) 23:33:42ID:???
PHP5.2.2からOCIでOracle8i(8.1.5)に繋げた人いる?
0643nobodyさん2007/06/04(月) 23:35:13ID:???
いない
0644nobodyさん2007/06/04(月) 23:42:42ID:???
>>638-641
ありがとうございます トランバック、RSS、コメントにそれらを管理するものetc
確かに勉強になりそうです

>>641さん方式が向いてそうなのでそれで進めてみますが、おすすめの既存ソースはありますか?
読みやすくて完成度が高いもの、XSS等虚弱性なんて当然なくて
サニタライズがしっかりしているものはどんなものがありますか?wordpressのように高機能でなくて良いです
0645nobodyさん2007/06/04(月) 23:43:59ID:???
>>637
http://developer.yahoo.co.jp/
とか使ってなんか面白いものを作るとか。

生きてて変化するデータを使う方が何かと楽しいとは思う。
0646nobodyさん2007/06/05(火) 00:03:22ID:???
トランバック サニタライズ
0647nobodyさん2007/06/05(火) 00:26:04ID:/9Tx9T4K
数字を漢数字に変換する方法を教えて下さい(>_<)
0648nobodyさん2007/06/05(火) 00:31:46ID:m4nsZU4o
>>抽象化 継承が出来ない。
ああー
まずは継承や再利用の価値を勉強すればいいんですね
0649nobodyさん2007/06/05(火) 00:58:06ID:???
>>647

if($string == "1"){
$string == "一";
}
0650nobodyさん2007/06/05(火) 01:03:27ID:???
>>647
function hoge($val) {
if ($val==0) {return '零';}
$len = strlen($val);
$j = 0;
$kansuuji = array('','一','二','三','四','五','六','七','八','九');
$kurai1 = array('','十','百','千');
$kurai2 = array('','万','億','兆');
$answer = "";
for ($i = $len-1; $i >= 0; $i++) {
if (0==($j % 4)) {
$answer .= array_shift($kurai2);
} else {
$answer .= $kurai1[$j % 4];
}
$answer .= $kansuuji[substr($val, $i, 1)];
}
$j++;
}
}

ちゃんと動くかは知らん
0651nobodyさん2007/06/05(火) 01:06:28ID:???
CGIのようなバッチ処理でオブジェクト指向は完全に無意味で非効率。
唯一イベント駆動型のGUIで意味がある。ウインドウやボタンをオブジェクトとして、
オブジェクト毎に色や形(プロパティ)やイベント(メソッド)を定義するだけだから。
06524412007/06/05(火) 01:06:53ID:J7TorZ22
>>648

継承と再利用の価値は 勉強つうか >>630 だとおもう

1)仕事じゃないんだったら、最初は周りくどいことは気にせずテキトーに Aという仕組みを作ってみる。
(登録・更新・削除・参照・バッチ処理があるようなものがいいか)

2)テキトーに作ったAを機能分割、汎用化して一つ一つの処理の複雑度を下げてA’を作る

3) 2を使ってBを作ってみる

4) 1を使って Bを作ってみる

という流れかもね。

初めからいきなり 2) → 3)が作れればそれが最短だけど、
1)を作れないのならば、いきなり抽象化と再利用ができるようにはならないかも。

ついでに言うとコーディングレベルでの抽象化と再利用だけだとうまく分割出来ないともいえる。
規模・要件によって、最適解と抽象化の粒度は異なるわけ。

再利用する必要が無いものを、汎用化して工数が余計に掛かる位ならべた書きでも
速攻仕上げた方が最適だったりする。
0653nobodyさん2007/06/05(火) 01:07:36ID:???
>>647
1文字だけ変えるのなら>>649のような感じでいいけど、
数文字いっぺんに変えるなら正規表現で置き換えのほうが楽。
30000を三万とかにするならかなり複雑になると思う。
0654nobodyさん2007/06/05(火) 01:08:36ID:???
>>651
StrutsやRailsの立場はどーなんねん
つか、バッチて言葉の意味わかってる?
0655nobodyさん2007/06/05(火) 01:10:08ID:???
※くだらない質問スレで議論するのはやめてください
これ以上やるならクソスレ立てて誘導します。
0656nobodyさん2007/06/05(火) 01:18:11ID:???
>>655
クソスレ立てるのは賛成だけど、
スレのサブタイトルに、「日本共産党員お断り」って入れておいて。
0657nobodyさん2007/06/05(火) 01:21:00ID:???
>>654
反論があれば具体的にどーぞ。
Railsがどんな功績や効率的な処理を実現しましたか?
ほんとCGI系でオブジェクト指向なんてひとつも意味無いから。
RubyはVisualCOBOLみたいなもんだよ。アホな人的資源の救済措置。
0658nobodyさん2007/06/05(火) 01:25:07ID:J7TorZ22
>>655
ここがそのクソスレ(ry
すまん 吊ってきます。
0659nobodyさん2007/06/05(火) 01:26:25ID:???
ちなみにここで繰り返し出てきたオブジェクト指向の長所とやらは
全て手続き型で実現可能な物事です。まぁ当たり前なんだけどね。
オブジェクト指向自体が手続き型で実装されているわけだから。

自分で実際やってみるとわかるけど、スクリプト言語でオブジェクト指向的
振る舞いを繰り返すと、すぐに重くてどうにもならなくなる。
また全体に知能が低めに設定されているのか、オブジェクト指向派は動的な
構成を好み、決まってHTMLを生成しようとしない。
0660nobodyさん2007/06/05(火) 01:37:59ID:???
>>659
いまどきOOが重いとか貧民的プログラムが必要な環境ならCで組むことをオヌヌメするよ
0661nobodyさん2007/06/05(火) 01:58:10ID:???
>>660
な。知能低いだろ。HTML生成型という発想そのものが無く、Cで書けば速いと
思い込んでいる。自分で書いたことも無さそうなのにw
こんな5年10年使い込まれた泣き言が飛び出すとは、この糞スレだけ時の流れが
止まってるのでしょうか。サーバサイドは誰でもどんな時代でも少しでも軽い方が
良いに決まっているのにねぇ。私はカウンタだけCで書いています。関係無いけどね。
0662nobodyさん2007/06/05(火) 02:04:37ID:???
※2度目の忠告です
議論は他にいってやってください。
0663nobodyさん2007/06/05(火) 02:06:37ID:???
>>659
君が独自の試行錯誤の末に何かを得たのはわかった。
でも一般性に欠けるから、人に押し付けないでね。
0664nobodyさん2007/06/05(火) 02:11:18ID:???
>>655 >>662
何この偉そうな馬鹿?何様だよ^^;;
0665nobodyさん2007/06/05(火) 02:13:37ID:???
>>655
糞スレ立てるなんて犯罪予告だぜ!
通報しますた。
0666nobodyさん2007/06/05(火) 02:14:37ID:???
うちも変更されないようなページはHTMLを生成するな

社内向けシステムなら動的にページを生成したときの
レスポンスの悪さもある程度がまんしてもらえるけど
ネットに公開するようなサイトだとそれだと困るからな〜
0667nobodyさん2007/06/05(火) 02:34:09ID:???
クソスレ立てるのは賛成だけど、
スレのサブタイトルに、「日本共産党員お断り」って入れておいて。
0668nobodyさん2007/06/05(火) 04:20:29ID:???
>>250
いや、やっぱり見えるか見えないかそんな所が一番。
特に周りに広がるメラニン色素の沈着がタマラナイ。
06696682007/06/05(火) 04:21:30ID:???
うそです
0670虚弱PHP2007/06/05(火) 10:16:30ID:???
まあ、なにはともあれOOPを「勉強」するならPHPはいい回答ではない。
0671nobodyさん2007/06/05(火) 11:54:18ID:4B8PpfOt
ただ単にリダイレクトさせるためだけにPHPを使いたいんだけど、

<?php header("Location: 転送先URL"); ?>

だけテキストで入力して、
その後、拡張子をPHPにすればOKでしょうか?

あと、このリダイレクトの方法って、メタと違って
ブラウザ側で拒否出来ないという認識で問題ないですか?
0672nobodyさん2007/06/05(火) 12:07:33ID:???
>>671
PHPが動くサーバー設定になってるならそれで大丈夫じゃない?
0673nobodyさん2007/06/05(火) 13:08:10ID:???
>>671
ブラウザで拒否できないというか、
正常なブラウザならhttpヘッダを見て挙動を決めるので、
それでリダイレクトされる。
逆にそれでリダイレクトされないなら、
そのブラウザがブラウザとしての最低限の機能を搭載してないってこと。
つまりブラウザにあらず。
0674nobodyさん2007/06/05(火) 13:19:13ID:4B8PpfOt
>>672
有り難うございます。
一応、動くのは試してみてわかっているのですが、
PHP自体をほとんど理解していないので
なにか足りないのではないかと
ちょっと心配になり聞いてみました。

>>673
有り難うございます。
PHPは現在、初心者本片手に勉強してるんですが、
まだまだ理解が乏しいので助かりました。
言われてなるほどですね。
0675nobodyさん2007/06/05(火) 13:29:59ID:???
>>620>>625
セッション関数を使うと、「セッションクッキー」という特殊なクッキーが
自動で発行される。


>セッションはクッキーと違い(中略)あるユーザーが取得したセッションで管理されてる変数を・・・
共有できるわけねぇだろ、と。
それじゃセッションの意味がないだろ、と。
0676nobodyさん2007/06/05(火) 14:32:50ID:???
共有しようと思えば・・・
0677nobodyさん2007/06/05(火) 14:40:10ID:J1A5BxRH
Oracleを使いたいのですが、
標準の関数oci_connect等を使うか、
PEARのDBクラスを使うか、
PDO関数を使うか、どれを使えばよいのか迷っています。
好きなものを使うべきなのでしょうが、
皆さんならどれを使いますか?
0678nobodyさん2007/06/05(火) 14:57:10ID:???
PDOが無難
0679nobodyさん2007/06/05(火) 15:19:54ID:fm5P/WUS
質問です。
PHPスクリプトを暗号化しようと思い
php_screw( ttp://www.pm9.com/newpm9/itbiz/php/ )をインストールし
php.iniにextension=php_screw.soと記述し、phpを実行すると
以下のようなエラーが出てしまいます。

PHP Warning: Unknown(): Unable to load dynamic library
'/usr/local/lib/php/extension/no-debug-non-zts-20020429/php_screw.so' -
/usr/local/lib/php/extension/no-debug-non-zts-20020429/php_screw.so:
cannot open shared object file: No such file or directory in Unknown on line 0

No such file or directorといわれていますが実際にファイルは存在しています。
何らかの原因でロードできていないんだと思いますが、検討がつきません。

どなたか分かる方いらっしゃらないでしょうか?

環境は Linux(CentOS4.4) + PHP 4.4.4です。
0680nobodyさん2007/06/05(火) 15:24:34ID:Q4Q2J1Ec
Web関係の求人サイト見て思ったんだが、
「オープンソースでの開発経験をお持ちの方」
って書いてあったんだが、気にしなくていいよな・・・


いいバイト先ないかなぁorz
0681nobodyさん2007/06/05(火) 15:32:15ID:???
>>680
ここは人生相談スレでもチラシの裏でもありません。
0682nobodyさん2007/06/05(火) 15:33:04ID:???
>>680
開発に参加っていってもパッチを送る位なら履歴書を書きながらでもできるだろ。
適当なハックを見繕ってプロジェクトのMLにポストすりゃいいのよ。
0683nobodyさん2007/06/05(火) 16:10:55ID:???
long 型の Unix タイムスタンプ(数字13ケタ)を人間が読めるように表示したい。

Java だと、以下のような感じでできた。

Long mylong = new Long("1181025482687");
Date date = new Date(mylong.longValue());
System.out.println(date);

PHP で同じようなことをしたいと思い、

$param = "1181025482";
$today = date('Y-m-d H:i:s', $param);
print($today);

こんなコードを書いたが、date() や gettime() は int 型しか受け取れない。
Java みたいに long を受け取れる関数はありますか?

やりたいことですが、今使っている他システムが、ログに時刻を Unix タイムスタンプ(long型)で
出力しやがるので、それを見やすくする web 変換ページを作りたいのです。
0684nobodyさん2007/06/05(火) 16:17:33ID:???
>>683
>>1
0685nobodyさん2007/06/05(火) 16:18:48ID:Ku9URNE5
N進数→N進数の変換をしたいんだけど
割って位を出していくでしょ?
数が巨大になると、PHPが整数として扱える範囲を超えて、
割れなくなる。
この難問どうすれば解けますか?
0686nobodyさん2007/06/05(火) 16:21:56ID:???
>>685
数いくつかに分ければいいんじゃね?
06876832007/06/05(火) 16:26:41ID:vO+V39fB
すみません、sage は NG ということを知りませんでした。

サーバのOS:CentOS4.4
PHPのバージョン:PHP 4.3.9
Webサーバ:2.0.52
0688nobodyさん2007/06/05(火) 16:48:52ID:???
>>687
そのコードで何が問題?

>>685
http://php.net/base_convert
0689nobodyさん2007/06/05(火) 16:53:20ID:???
>>683
型キャストすればいいんでないの?
06906832007/06/05(火) 16:58:40ID:vO+V39fB
>>688

date() 関数に 1181025482687 のような13桁を渡すと、
オーバーフローしてしまいます。

Long mylong = new Long("1181025482687");
Date date = new Date(mylong.longValue());
System.out.println(date);  // 2007/06/05 15:38:02 が表示される

同じ "1181025482687"を >>683 のコードに渡すと
2038-01-19 12:14:07 が表示されてしまいます。
>>683 のように、"1181025482"(後ろ3文字をカット)すると、
2007-06-05 15:38:02
が表示されます。

実際にはミリ病は必要ないのでこれでいいのですが、
PHP でも、Java のように long 型で受け取れないのかなと思い
質問しました。

>>689
キャストしてみた。

$param = "1181025482687";
$today = date('Y-m-d H:i:s', (int)$param); // (intをつけた)

結果は、やはり 2038-01-19 ・・・ が表示されてしまう。
0691nobodyさん2007/06/05(火) 17:00:10ID:???
>>690
date('Y-m-d H:i:s',1181025482687 / 1000)

2007-06-05 15:38:02

割ればいいんでないの?
06926832007/06/05(火) 17:11:04ID:vO+V39fB
>>691
とりあえず割ることで対応しました。
自分が作った関数には13ケタの数字をそのまま渡したいのですが、
出力にはミリ秒が含まれなくても別にかまわないので。

# date() の出力フォーマットにミリ秒が出せるのは、PHP 5.2.2 からのようですね

http://www.php.net/manual/ja/function.date.php
をみると、date() の引数は int 型なので、結局 long は渡せないし、
ほかにそのような関数もない、ということなのかな。

っつーか http://www.php.net/manual/ja/language.types.php を見ているのですが、
もしかして PHP は long がない?
(整数は、10進だと10ケタまで?)

すみません、頭の中がJavaかCなもので・・・
0693nobodyさん2007/06/05(火) 17:13:06ID:???
UNIXタイムスタンプって普通秒単位だろ?
ミリ秒単位で渡すなよ.
例え桁あふれがなくても1181025482687秒と認識されるだろが
0694nobodyさん2007/06/05(火) 17:21:02ID:???
>>692
普通にlong型はないね。
intの範囲(-2147483647〜2147483647)を超えるとfloatになる。
06956832007/06/05(火) 17:29:28ID:vO+V39fB
>>693-694
レスどうもありがとうございます。
すみません、Unix タイムスタンプ(time_t ?)という書き方がよくなかったでした。
やりたかったことは、とにかく 時刻表現が1970/1/1 からのミリ秒として13ケタの数字でわたってくるので、
これを人間の読めるようにしたかった、でした。

PHP の time() 関数が、精度を秒で返すのは、
PHP の time() が C の time() でできているからかな?
0696nobodyさん2007/06/05(火) 17:36:10ID:???
逆にUNIXタイムスタンプをミリ秒まで数えてるのをJSしか知らない
0697nobodyさん2007/06/05(火) 17:43:47ID:???
>>696
その問題は変数の型とは全く関係ないっしょ。
確かにDate.getTimeとかで1970/1/1からのミリ秒で返ってくるんだろうけど
それは「UNIXタイムスタンプ」とは非なるもの。
適当に3桁削るか自作関数作りなるなりして対応すればいいんでないの.

つかマニュアル見れば分かることだけどlong型なんてないし
型が違ったら自動的にキャストしてくれるから引数の型は意識しなくもいい。

$param = "1181025482";
$today = date('Y-m-d H:i:s', $param);
print($today);

そもそも最初の例のこれだと$paramはstring型だしな。
0698nobodyさん2007/06/05(火) 17:47:29ID:???
久々に2038年問題を思い出した
                  クダラネー
0699nobodyさん2007/06/05(火) 17:57:33ID:???
>>679
書いてるまんまだと思うが、パスが違う、パーミッションが違うとかつまんねー理由だと思う。
0700nobodyさん2007/06/05(火) 18:11:13ID:DIaHasCn
すいません、こんな感じのタグが、index.phpに勝手に追加される事があります。
これって、サーバがやられてしまったのでしょうか?

<iframe src='http://quickcnt.com/ld/axhst/' width='1' height='1' style='visibility: hidden;'></iframe>
0701nobodyさん2007/06/05(火) 18:35:24ID:???
>>700
自分のスクリプトに穴があるとは考えないんだな
0702nobodyさん2007/06/05(火) 18:39:10ID:???
Dreamweaver使ってるんじゃまいか?
0703nobodyさん2007/06/05(火) 18:41:05ID:???
自鯖ならそく閉鎖しる
07047002007/06/05(火) 19:03:42ID:DIaHasCn
レス、ありがとうございます。

>>自分のスクリプトに穴があるとは考えないんだな
問題のあるコードを書いているかもしれません。。。

>>Dreamweaver使ってるんじゃまいか?
使ってます、問題あるのでしょうか?

>>自鯖ならそく閉鎖しる
閉鎖しました
0705nobodyさん2007/06/05(火) 19:05:35ID:???
>閉鎖しました
はやいなw
0706nobodyさん2007/06/05(火) 19:21:06ID:???
>>704
http://www.itmedia.co.jp/enterprise/articles/0702/08/news027.html
0707nobodyさん2007/06/05(火) 19:37:41ID:???
せっかくだからその穴だらけのコード晒してけよ
0708nobodyさん2007/06/05(火) 19:55:06ID:???
現実に個人レベルでもクラックってされるんだなw
脆弱性のあるスクリプトがどういうものなのか気になる。
今後の参考にもぜひみせてもらいたい。
0709nobodyさん2007/06/05(火) 20:34:47ID:6blsZ/zS
初心者ですが教えて下さい。「変数に値が入ってなかったら」
というのは、どういう風に表現されるのですか?

変数Aに、値が入っていなかったら、変数Bを変数Xに代入せよ。
変数Aに、値が入っていたら、変数Xには変数Aを代入せよ。

ということを書く場合、
if($a==""){$x=$b}
else
{$x=$a}

じゃ、うまくいかないんですが、未定義・null・値が入ってない、
といったことを表現するのはどう表現するのでしょう?

0710nobodyさん2007/06/05(火) 20:38:11ID:???
>>709
http://jp.php.net/empty
0711nobodyさん2007/06/05(火) 20:38:22ID:???
>>709
「初心者ですが教えて下さい。」←これタブーね

if($a){
echo "入っています";
}else{
echo "入っていません";
}
0712nobodyさん2007/06/05(火) 20:41:11ID:???
>>709
ttp://jp.php.net/manual/ja/function.isset.php
ttp://jp.php.net/manual/ja/function.is-null.php
ttp://jp.php.net/manual/ja/function.empty.php
0713nobodyさん2007/06/05(火) 20:42:10ID:???
>>711
それ$aが0のときダメなんじゃん?
0714nobodyさん2007/06/05(火) 20:47:01ID:MIae8p3r
GDを使った画像の透明化がうまくいきません。
imagepng()で作成した場合はちゃんと透明化されるのですが、
imagegif()を使用すると透明化されません。
サーバによって上手くいく場合もあるのですが何を調べるべきなのかもわからない状態です。
何かご存知でしたらご教授お願いします。

↓テスト用にソースを抜き出しました。
<?
$image = imagecreatetruecolor(20,20);
$color = ImageColorClosest($image,255,255,255);
for($i=1;$i<=10;$i++){
for($j=1;$j<=20;$j++){
imagesetpixel($image,$j-1,$i-1,$color);
}
}
$color = ImageColorClosest($image,200,0,5);
//透明にする予定の色で半分だけ塗りつぶし
for($i=11;$i<=20;$i++){
for($j=1;$j<=20;$j++){
imagesetpixel($image,$j-1,$i-1,$color);
}
}
$permeateColor = ImageColorClosest($image,200,0,5);
imagecolortransparent($image,$permeateColor);
$file = "./test.gif";
imagegif($image,$file);
//$file = "./test.png";
//imagepng($image,$file); これならうまくいく
0715nobodyさん2007/06/05(火) 20:51:11ID:6blsZ/zS
私は >>709 です。

すごい すごい!
こんなに素速く返事があるなんて!
あまりに初歩的すぎて、皆さんから怒られるかと思いましたが、
適切なご教示を頂きありがとうございました。
マニュアルとか解説系HPでも分からなかったのですが、
isset ってのも見かけては居たのですが、その変数が宣言されて
いるかどうかを調べる関数に違いないと即断していました。
いろいろあるんですね。
ありがとうございました m(..)m
0716nobodyさん2007/06/05(火) 20:51:41ID:???
>>714
> サーバによって上手くいく場合もあるのですが何を調べるべきなのかもわからない状態です。
とりあえず上手くいくサーバといかないサーバのGDのバージョンをリストアップしてみれば
0717nobodyさん2007/06/05(火) 21:07:48ID:EQxq7rXd
セッションについて質問です

error_reporting(E_ALL);
if(isset($_COOKIE["hoge"])){

ini_set("session.gc_maxlifetime",14*86400);
ini_set("session.cookie_path","/hogehoge/");
ini_set("session.cookie_lifetime",14*86400);
ini_set("session.save_path","./hogehogehoge/");
ini_set("session.use_only_cookies",1);

session_start();
$sestmp=$_SESSION;
session_destroy();
session_id(md5(uniqid(rand(),true)));
session_start();
$_SESSION=$sestmp;
}
//以降省略

上記のコードですが、テスト環境(Windows+AN HTTPD+PHP5.2.1)では問題は無いのですが、レンサバ(Linux+Apache1.3+PHP5.1.6)で動かした所、特にエラーメッセージ等も無いのにセッションファイルがカラッポ(0バイト)になってしまいます。
単にsession_start();とした場合は期待通りに動作するのですが、session_start();session_regenerate_id(true);では駄目でした。

ローカルではいずれも意図した通りに動作するのに、何故レンサバでは動かないのでしょうか?
また解決するにはどうすれば良いのでしょうか?
0718nobodyさん2007/06/05(火) 21:09:00ID:???
>>686
アルゴリズムが難解すぎて…
具体的にどうやればいいですか?
>>688
最初はそれ使ってましたが
巨大になると挙動がおかしくなるんです

// ここまではok
echo base_convert('fffffffffffff',16,16);

// ここからng
echo base_convert('ffffffffffffff',16,16);
0719nobodyさん2007/06/05(火) 21:28:52ID:???
つ 一歩進んで前習え
0720nobodyさん2007/06/05(火) 21:30:26ID:???
>>717
環境依存すぎ。
そういうことするまえに、
なにもせずに
session_start();で
var_dump($_SESSION);
が可能かどうかをしめすべきだ。
07217172007/06/05(火) 21:42:20ID:EQxq7rXd
>>720
ローカル、レンサバ共にarray(0) { }でした

環境依存と言いますと、どこかに汎用性の無い関数でも使っていましたか?
session.cookie_path等は前述のように単にsession_startした場合は大丈夫でしたので問題は無いと思います。
0722nobodyさん2007/06/05(火) 22:09:27ID:???
>>718
>アルゴリズムが難解すぎて…
ふむ、どの辺まで考えたの?
>巨大になると挙動がおかしくなるんです
まぁその理由はマニュアルに書いてあるけどね。
0723nobodyさん2007/06/05(火) 22:14:46ID:???
>>721
iniなんたら多すぎ。
全部外して一つづ加えていって$_SESSION値を確かめろよ。
0724nobodyさん2007/06/05(火) 22:21:26ID:???
>>721
ココだけ見ると COOKIEが無いときは永久に通らないという罠
一行づつデバグしろよ

あと、/hogehoge/のパーミッションエラーとかはマジ勘弁
0725nobodyさん2007/06/05(火) 22:23:44ID:???
>>718
function bc_base_n2ten($num, $n) {
  $len = strlen($num);
  $result = ??
  for ($i=0; $i<$len; $i++) {
    $result = bcadd($result,
        bcmul(base_convert($num[$i], $n, 10), bcpow($n, $len - $i - 1)));
  }
  return $result;
}
function bc_base_ten2n($num, $n) {
  $len = strlen($num);
  $result = ??
  for ($i=0; $i<$len; $i++) {
    $surplus = bcmod($num, $n);
    $num = bcdiv(bcsub($num, $surplus), $n);
    $result .= base_convert($surplus, 10, $n);
  }
  return preg_replace("/^0+/", ??, strrev($result));
}
function bc_base_convert($num, $n, $m) {
  $num = bc_base_n2ten($num, $n);
  return bc_base_ten2n($num, $m);
}

PEAR探さばこういうのあるかもしれないけどシラネ
息抜きに作ってみたからちゃんと動作するかもシラネ
0726nobodyさん2007/06/05(火) 22:26:03ID:???
なんか化けてるしorz
??は上から
'0'
''
''
0727717 ◆.Ia5JkzwT6 2007/06/05(火) 22:26:49ID:EQxq7rXd
>>723-724
レス有り難う御座います
一行ずつ試してみたいと思います

パーミッションはミスってたらエラーメッセージが表示されますし、session_start()のみだと正常に動作するのでそれは無いと思います

早いですが、今日はもう寝るのでトリップつけておきます
0728nobodyさん2007/06/05(火) 22:41:18ID:???
ねるのはやいw
0729nobodyさん2007/06/05(火) 22:58:16ID:???
配列使う時
$hoge = array();
書かずにいきなり
$hoge[] = 'fuga';
って書くの行儀悪い?
0730nobodyさん2007/06/05(火) 23:03:17ID:???
>>729
気分次第、でも VB(option explicit) C JAVA とかと一緒でクセで初めに宣言してる
0731nobodyさん2007/06/05(火) 23:05:58ID:???
>>729
コーディング規約に従えばよろし
ないならフィーリングでおk
0732nobodyさん2007/06/05(火) 23:32:15ID:???
>>729
書き方次第でどっちもつかう
0733nobodyさん2007/06/05(火) 23:35:20ID:???
捨てコードじゃないなら、宣言しとくのが普通だろ。
0734nobodyさん2007/06/06(水) 00:11:14ID:???
Cで宣言してから使うのに慣れている人は
他人のソースを見るときでもそれを前提に読むからな

どっちでもいいと思うよ
おれは宣言してから使うけど
0735nobodyさん2007/06/06(水) 00:23:36ID:???
>>729
forとかifとかの中で
$hoge[] = 'fuga';
するなら、必ず
$hoge = array();
しておく。
0736nobodyさん2007/06/06(水) 00:27:49ID:???
>>729
たぶんDBのFetchループあたりのことだと思うけど、
そういうのわざわざ変数名変えたりしないから
初期化してないってのは怖いね。
0737nobodyさん2007/06/06(水) 00:48:44ID:???
初期化する必要がないほうが高級言語じゃないか?
別にPHPがそうとかいう話じゃなくて、プログラミング言語の発展としてさ。
いちいちプログラマの判断で変数宣言を書き込んで管理しなきゃならないなんて、前時代の遺産となるべきものじゃないかしら
0738nobodyさん2007/06/06(水) 00:52:31ID:???
初期化コードが近くにないと、
新しく使うのか、どこかから結果を引き継いでいるのかが分からないから
可読性のために俺は書く
0739nobodyさん2007/06/06(水) 00:54:27ID:???
$str = 'hoge';
echo $str[1]
---
o

こんな感じに、配列のように文字列から文字を切り出せるって
今日はじめて知ったんだがおまえら知ってましたか?
これ一般常識なの?
0740nobodyさん2007/06/06(水) 01:00:47ID:???
>>739
つかマニュアルに普通に書いてあるし
0741nobodyさん2007/06/06(水) 01:21:46ID:???
俺だけなのか…(゜◇゜)
0742nobodyさん2007/06/06(水) 01:28:32ID:???
自分と他人の世界や知識や価値観は違うってことが理解できない人?
0743nobodyさん2007/06/06(水) 01:39:49ID:???
>>739
しらなかった。
マニュアルのどこにかいてあったの?
0744nobodyさん2007/06/06(水) 01:40:29ID:???
>>743
そんくらい自分で見ればいいだろ
ほんと人にやってもらわないと何にもできない人だな・・・
0745nobodyさん2007/06/06(水) 01:41:48ID:???
>>739
なんじゃそれ!?
もしそれが本当なら、実は変数は全て配列型だってことか?
0746nobodyさん2007/06/06(水) 01:43:29ID:???
ちょうど>>725でも使ってるな
0747nobodyさん2007/06/06(水) 01:43:45ID:???
>>745
違うよ配列型が実は全て文字列型で構成されてるんだよ
0748nobodyさん2007/06/06(水) 01:44:10ID:???
>>737
変数のスコープを自在にあやつれるほうが高級、というか混乱しなくて良い
んなわけで初期化というか変数宣言(Perlだとmyとかlocalとかな)がないと困るZE☆
0749nobodyさん2007/06/06(水) 01:45:46ID:???
>>748
初期化の必要性と、変数スコープを自在にあやつれることは、別の問題だろ?
0750nobodyさん2007/06/06(水) 01:55:19ID:???
http://jp.php.net/manual/ja/language.types.string.php#language.types.string.substr
0751nobodyさん2007/06/06(水) 01:58:00ID:???
PHP+ImageMagickで、たまに画像アップロードができません。
アップロードできない画像は主にjpgです。
アップロードできるjpgもあります。
ファイルサイズも関係ないようです。
(ファイルサイズが大きめのjpgにもアップロードできるものがあった。逆に小さいjpgだができないものもあった)

昔も同じ症状に陥りましたがたしかphpの設定関係だった気がします。。
いったいどこが原因でしょうか?
07527512007/06/06(水) 01:59:12ID:b3J3b1x0
スマソage
0753nobodyさん2007/06/06(水) 02:00:53ID:???
jpegとpjpegじゃね?
0754nobodyさん2007/06/06(水) 02:07:41ID:???
>>749
スコープを決めるには変数宣言必要だし
変数宣言あるなら
my $hoge;
・・・
$hoge[] = 'fuga';
するなら
my $hoge = array();
・・・
$hoge[] = 'fuga';
のほうが "読みやすい" と思う。
だから俺は変数宣言は必須で初期化は任意でいいと思うけど
初期化してあるほうが「他の人が改修する時」とか。という感じだZE☆

phpの場合スコープいいかげんだから、初期化しといたほうが気配りさんじゃね
エディタの一画面で全部把握できるコードとかだったら俺も初期化とかしねーけどさ
07557512007/06/06(水) 02:15:59ID:b3J3b1x0
>>753
いえ、jpgです。
どうもPHPの設定じゃない気がしてきました。
うーん。
0756nobodyさん2007/06/06(水) 02:39:59ID:3mye17O+
PHP4のクラススタティックメソッドから同じクラスのスタティックメソッドを呼ぶ場合

class Hello {
  function hello() {
  echo "Hello, ", Hello::bar();
  }
  function bar() {
  return "world.";
  }
}

Hello::bar(); のようにいちいちクラス名を書いているのですが、
これを省略することはできますか?
0757nobodyさん2007/06/06(水) 02:43:49ID:0gT0vIE0
PHP4の構文について質問です。
あるオブジェクトを返してくるメソッドがfoo()があると仮定します。
その返されたオブジェクトがメソッドbar()を持っていたとき、
このメソッドbarを呼ぶには一度テンポラリ変数にオブジェクトを代入して、
改めてメソッドを適用しなくてはならないのでしょうか?

つまり、

 $tmp = foo();
 $tmp->bar();

と書くしかないのでしょうか。できれば

 foo()->bar();

のように一度に書きたいです。無理でしょうか。
0758nobodyさん2007/06/06(水) 02:50:53ID:oqXEdx16
PHP4とPHP5の両方で使えるものを開発したいのですが、
PHP4用と、PHP5用を分けて2つ作るか、
ソースに差がある部分を条件文で分けて1つだけ作るか
どっちにするか迷っています。
速度面を重視するなら、条件文がないほうが早いと思うので前者がいいですか?
互換性を保つため、PHP4の書き方で1つだけ作るという方法もありますが、
速度面でPHP5から導入された関数なんかも使いたいので、
それは今回なしの方向でお願いします。
07597512007/06/06(水) 02:52:21ID:b3J3b1x0
どうもお騒がせしました。勘違いでした(^^)
0760nobodyさん2007/06/06(水) 03:15:49ID:???
>>744
けちけちするなよ
0761nobodyさん2007/06/06(水) 03:17:31ID:???
バージョンの違いを条件文でいちいちわける理由は?
0762nobodyさん2007/06/06(水) 03:23:36ID:???
substrのsubって何の略?
0763nobodyさん2007/06/06(水) 03:35:50ID:???
>>762
ttp://www2.alc.co.jp/ejr/index.php?word_in=substring&word_in2=reedeirrf&word_in3=zJPa7DCxJ15687987t
0764nobodyさん2007/06/06(水) 03:36:26ID:???
if( !function_exists( 'hogehoge' ){
fucntion hogehoge()
{
}
}

ベタなのはこんなん?だけど複雑なのはめんどそう
0765nobodyさん2007/06/06(水) 03:42:04ID:???
>>763
単語だったのか
びっくり( ・_・;)
0766いつもの人 ◆3Htx6mDqZs 2007/06/06(水) 03:55:05ID:???
>>758
速度言ってるが、ベンチすらしたことなだろ

>>757
foo()->bar(); 4だと使えない?
call_user_func(array(foo(),bar))とか

>>756
self
0767いつもの人 ◆3Htx6mDqZs 2007/06/06(水) 03:57:26ID:???
ごめん情緒不安定だったから許して
0768nobodyさん2007/06/06(水) 04:05:02ID:???
何を?
07697582007/06/06(水) 04:40:45ID:oqXEdx16
>>761
DBを使う予定なのですが、
PHP4ではPDOが使えないので、分けようと思いました。
PDOは速度面キャッシュ効率などパフォーマンスに優れているので、
PHP5ではそちらを使いたいなぁと。
4でも5でも使えるPEARはパフォーマンスは悪いですし、
標準DB関数でもいいのですが、めんどくさくて・・・

>>766
ベンチはとってないです。というのもまだ着手してないので。
結構大きいものになる予定なので、
簡単なものを作って比較するのでは誤差も微妙で参考にならないと思い質問しました。
0770nobodyさん2007/06/06(水) 05:03:22ID:???
>>769
PDOは確かにね
DBの条件分岐だけならほんの少しで済むだろうし
別に作る必要は無いと思われ

条件文自体は何個あろうが変わらん(誤差以下
07717582007/06/06(水) 05:14:44ID:oqXEdx16
>>770
心強いアドバイスありがとうございます。
では該当部分は1ファイルにまとめて作りたいと思います。
早朝からわざわざありがとうございました。
0772nobodyさん2007/06/06(水) 08:29:01ID:???
pdoのあるなしだったらファクトリメソッドのパターンでも使ってみれば
0773nobodyさん2007/06/06(水) 10:25:01ID:jwkhTokv
簡単なアバターチャットを作ってみたいのですが
どこか、初心者でもわかりやすい
解説サイトありますか??
お願いします。
0774nobodyさん2007/06/06(水) 10:26:32ID:jwkhTokv
>>773
書き込む場所間違えた。
さーせん
0775nobodyさん2007/06/06(水) 10:50:10ID:xvgl2fqU
>>747
それは違うのではないでしょうか。
正しくは 「文字列型が実は全て配列型で構成されてる」 で、
簡単に言うと 「文字列は文字の配列」 ですよね?
0776nobodyさん2007/06/06(水) 11:18:36ID:???
文字が配列としてとりだせるってバグじゃないのかw
0777nobodyさん2007/06/06(水) 11:22:52ID:???
知らなかった。PHP使ってないけど。

$hoge = "PHP-kuso";
$hoge[3] = "\0";
print $hoge;

こうしたらどう表示されるの?
0778nobodyさん2007/06/06(水) 11:23:49ID:???
ためしてみてからきいてんの?
0779nobodyさん2007/06/06(水) 11:49:24ID:KZlHfOQY
最近、エディタを開いただけでやる気を喪失して、疲労感を覚えます
これは何という名前の虚弱生でしょうか?対処方法はありますか?
0780nobodyさん2007/06/06(水) 11:54:03ID:???
>>776
バグじゃないよ
マニュアルにもちゃんと書いてある仕様だよ
0781nobodyさん2007/06/06(水) 11:56:53ID:???
>>779
おれも、最近はオンラインゲームにどっぷりつかってプログラミングから遠ざかってる
0782nobodyさん2007/06/06(水) 12:18:54ID:???
>>779
糖尿病

>>781
俺もオンラインゲームにどっぷり
やっぱパソコン持っててオンラインゲームやってないやつってクズだよな
0783nobodyさん2007/06/06(水) 12:20:20ID:???
>>779
それはバグです
マニュアルにもちゃんと書いてある仕様だよ
0784nobodyさん2007/06/06(水) 14:04:24ID:???
>>779
俺なんてエディタのアイコンをダブルクリックする気力すら湧かないぜ!
0785nobodyさん2007/06/06(水) 14:06:18ID:???
だれか雑談スレつくって
0786nobodyさん2007/06/06(水) 15:13:12ID:y4bZ9a73
http://sv2ch.baila6.jp/chk_route.cgi?host=pc11.2ch.net
このプログラムなんですが、
ソースを見た限りではJavaScriptは使われていませんよね?
こういう、順番に取得した結果をリアルタイムに表示ようなものは、
PHPだけで出来ますか?
全て終わるまで応答が何秒も返って来ないプログラムの場合有効そうですよね?
0787nobodyさん2007/06/06(水) 15:18:59ID:???
キャッシュ切ってるだけです
0788nobodyさん2007/06/06(水) 15:52:07ID:???
>>785
いちおうあるよ。あまり使われてないけど。

【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1131016915/
0789nobodyさん2007/06/06(水) 15:52:36ID:???
>>786
<?php
echo "Hello\n";
ob_flush();
flush();
sleep(2);
echo "World\n";
?>
0790nobodyさん2007/06/06(水) 16:02:55ID:???
>>789
>>786じゃないが、普通に表示されたぞ
07917902007/06/06(水) 16:06:47ID:???
すまん、更新したらちゃんと2秒後に出てきたわ

function fluch_echo($str,$sleep=0){

ob_flush();
flush();
sleep($sleep);

echo $str;

}

fluch_echo ("Hello\n",2);
fluch_echo ("World\n",2);

こんなの作ってみたんだがどうだろ
0792nobodyさん2007/06/06(水) 16:11:53ID:y4bZ9a73
>>789-791
どうもありがとうございます。
こんな面白い関数があったのですねー
早速これをつかって色々遊んでみます。
0793nobodyさん2007/06/06(水) 17:04:22ID:???
>>792
ちなみに<table>タグ使ってるとでない。
これはブラウザの仕様。
閉じた段階で表示される。
0794nobodyさん2007/06/06(水) 17:11:50ID:???
>>793
じゃあ
ob_flush();
flush();
これは、ブラウザ側で処理しろって命令するってこと?
0795nobodyさん2007/06/06(水) 17:27:09ID:???
>>794
出力はいろいろなところでバッファリングされる
ob_flush( ) でPHPのバッファをApacheにフラッシュ
flush( ) でApache内のバッファをブラウザへ出力
<table>があると</table>が来るまでブラウザ内にバッファされて表示されない
0796nobodyさん2007/06/06(水) 17:38:59ID:???
>>795
サンクス
バッファについてはサッパリなのでちと勉強してきますわ
0797nobodyさん2007/06/06(水) 17:41:31ID:???
>>790
IEかな
IEは256バイト以下の出力はブラウザにバッファされるからHelloの前にダミーの文字を256文字出力しておけばいい
<?php
echo str_repeat("A", 256);
echo "<br>\n";
echo "Hello\n";
ob_flush();
flush();
sleep(2);
echo "World\n";
?>
0798nobodyさん2007/06/06(水) 17:43:37ID:sQx6t4Ws
比較演算子ってどっち使ってます?ANDとORそれぞれ。
|| か or か、 &&か and か。
0799nobodyさん2007/06/06(水) 17:46:16ID:???
条件式の変数が長い単語のときは読みにくいから || かなぁ
短かったり関数だったりする場合はorとかORとか書くかな
0800nobodyさん2007/06/06(水) 17:53:16ID:???
カタカナ多すぎてわからないが

>>ob_flush( ) でPHPのバッファをApacheにフラッシュ
これ以降の出力をメモリに格納

>>flush( ) でApache内のバッファをブラウザへ出力
今まで溜めたものを射精して、通常処理でFA?

あとネストってなにがネストってるんだ…
0801nobodyさん2007/06/06(水) 18:03:39ID:???
>>798
標準的には&&と||でしょ。
0802nobodyさん2007/06/06(水) 18:22:16ID:???
>>798
つかそれは論理演算子…。
優先順位が違うから基本的に&&||だね。
or exit()くらいにしか使わんなぁ。or exit()自体もほぼ使わないけど。
0803nobodyさん2007/06/06(水) 18:27:10ID:sQx6t4Ws
>>801
なんでですか?orはだめなの?
0804nobodyさん2007/06/06(水) 18:34:02ID:2+2ZUG2D
縁があって、自宅に方向幕と方向幕専用の装置(?)があるのですが、
この方向幕が何の電車(○○○系)に使われていたのか、知りたいです。

方向幕の装置は手で動かすハンドルが付いており、
電動式ではないようなので、かなりの年代物のようです。
印刷されているコマの駅は、山口県の一部(宇部・宇部新川・下関・厚東など)と、
日豊線の門司港〜大分間、鹿児島線の門司港〜川尻間、あと長崎線です。
幕の痛み具合から日豊線で使用されていた物のようなのですが、
それ以上のことは分かりません。
『急行』と書かれたコマがあるものの、多分普通電車の方向幕だと思います。
また、小郡が『新山口』となっていないので、やはり年代物でしょうか。

どなたかお詳しい方いらっしゃったら、どうぞ宜しくお願いします。
0805nobodyさん2007/06/06(水) 18:39:57ID:???
>>804
E723系ではないでしょうか?
0806717 ◆.Ia5JkzwT6 2007/06/06(水) 18:50:43ID:???
>>717です
一行ずつ検査して行った所、どうやらセッションの中身が空なのかどうかを判別せずに$sestmpで移していたのが不味かったようです。

session_start();
$sestmp=$_SESSION;
session_destroy();
session_id(md5(uniqid(rand(),true)));
session_start();
$_SESSION=$sestmp;



session_start();
if(isset($_SESSION["hoge"])){
$sestmp=($_SESSION["hoge"]);
}
session_destroy();
session_id(md5(uniqid(rand(),true)));
session_start();
if(isset($sestmp)){
$_SESSION["hoge"]=($sestmp);
}
に書き換えたところ上手く動作するようになりました。
なぜこんな所で動作の違いが生じたのかは解りませんが、とりあえず動作するようになったので報告させて頂きます。
有り難う御座いました。
08077792007/06/06(水) 18:54:27ID:???
みなさんのご教授も虚しく、今日のテストに間に合いませんでした
レスくれたみなさん、本当にありがとうございます
明日からは首にならないように皆さんの意見を取り入れ、こっそりオンラインゲームしようと思います
0808nobodyさん2007/06/06(水) 18:59:51ID:???
これはいい現代人ですね
0809nobodyさん2007/06/06(水) 20:17:55ID:???
>>779
欝じゃね、精神科いってこい。
いやマジな話、この業界多いから。
0810nobodyさん2007/06/06(水) 20:21:07ID:???
ただニートになりたいだけちゃうんかと。
0811nobodyさん2007/06/06(水) 20:25:39ID:???
趣味でPHPやってますが、今は立派なニートです
0812nobodyさん2007/06/06(水) 20:30:57ID:???
>>806
上手くいくも、めちゃくちゃだろそれ。
0813nobodyさん2007/06/06(水) 20:31:27ID:???
>>809
今かなり大きな仕事やってまして、主任を任されています
これさえ終われば・・・と思ってはいるのですが、このままでは本当に鬱病になりそうです
明日こそは頑張ってオンラインゲームじゃなかった仕事します
0814nobodyさん2007/06/06(水) 20:34:41ID:???
>>806
>session_id(md5(uniqid(rand(),true)));

なんでわざわざ、自前でこんな事やってんの?
PHPが発行してくれるセッションIDは十分に信頼できるランダム性を持ってるぞ。
0815nobodyさん2007/06/06(水) 20:36:40ID:???
>>811
よお同士。"そのうち"頑張ってPHPの仕事見つけような!
0816nobodyさん2007/06/06(水) 20:44:24ID:???
>>813
欝は表に症状が出たら手遅れだから
早めに病院いったほうがいいよ

> 明日こそは頑張って(略
典型的に欝になりやすいタイプだな……無理して2ヶ月休職とかなる前に手をうっとけ
あと がんばるな
0817nobodyさん2007/06/06(水) 20:44:33ID:???
rand()なんて使ってる童貞まだいたんだ
0818nobodyさん2007/06/06(水) 20:46:40ID:???
>>806
session.entropy_file = /dev/urandom
session.entropy_length = 32

これで十分
0819nobodyさん2007/06/06(水) 20:51:32ID:???
>>806は何がしたいのかまったくわからん
どうしたらこんなコピペみたいなソースが書けるんだ?
0820nobodyさん2007/06/06(水) 21:05:13ID:???
鬱やら情緒不安定てw
おまいらガンガレ!ガンガレ!超ガンガレ!

「頑張れ」って鬱には逆効果なんだっけ
0821nobodyさん2007/06/06(水) 21:45:54ID:???
>>820
頑張れ、は確か痴呆症の人に言ってはいけない言葉だったと思う。
鬱の人には、頑張れ、といってあげると気分が楽になると思うよ。
0822nobodyさん2007/06/06(水) 22:27:06ID:???
>>821
どういう釣りだよw
ワロタwww
0823nobodyさん2007/06/06(水) 23:25:06ID:???
>>820-821
生真面目な人はうつになりやすいので
頑張れ、とかいうとホントに頑張っちゃって病状悪化するので言っちゃだめ
と、マジレス
0824nobodyさん2007/06/06(水) 23:40:10ID:???
散々本とかに逆効果とか書いてるし、医者にも言われるだろうし、
鬱の人間にもそれは分かってるはず。
言われても相手に悪気がないのも分かるし、
言われても気にしなければいいと言うことが分かっているのに、
なぜか病状悪化するんだよな。
確かに>>823の言うとおり生真面目すぎるんだろうな。
0825717 ◆.Ia5JkzwT6 2007/06/06(水) 23:43:50ID:RCcsVPbu
>>812
めちゃめちゃですか?もうちょっと具体的にお願いします。
ちなみに最後から二行目の括弧はミスです。

>>814
特に根拠は無いのですが、なんとなく少しIDが短かいようで不安になったので、idを長くするためだけにやっています

>>817
マニュアルのコピペです

>>818
良く意味が解らないので保留にしておきます
と言うかそれ、窓だと動かないのでは?

>>819
ほとんどsession_regenerate_idが古いファイルを消してくれなかった頃に書かれた物のコピペですが、そんなに変でしたか?
やりたいことは毎回session_regenerate_id(true)と同等の動作をさせたいだけですが、前述の理由で長ったらしいコードになっています。
0826nobodyさん2007/06/06(水) 23:44:04ID:???
症状悪化して最終的に楽になるってことだろ。





って書くとむきになってマジレスしてくる奴とかは鬱になりやすいので
にちゃんなんだからとさらっとスルーできるようにしましょう。
0827nobodyさん2007/06/07(木) 02:01:20ID:???
rand(1,2)

これで明日の運勢を決めてる
0828nobodyさん2007/06/07(木) 02:33:49ID:???
     ∧_∧    <今日はがんばらないことにしたんだ
    ( ´・ω・`)     ∧_∧
    /     \   (    )うんうん、それがいいよね
.__| |    .| |_ /      ヽ
||\  ̄ ̄ ̄ ̄   / .|   | |
||\..∧_∧    (⌒\|__./ ./
||.  (    )     ~\_____ノ|   ∧_∧
  /   ヽ 賛成だね     \|   (    )
  |     ヽ           \/     ヽ. ぼくもそうするよ〜、だってそれがよさげだもん
  |    |ヽ、二⌒)        / .|   | |
0829nobodyさん2007/06/07(木) 03:01:48ID:???
甘えは捨てろ。さもないと、お前を射殺する。
0830nobodyさん2007/06/07(木) 03:06:20ID:???
犯罪予告キタ━━━━(゚∀゚)━━━━ッ!!
0831nobodyさん2007/06/07(木) 09:31:41ID:???
すみません 凄く基本的な質問ですが
実際にはLinuxのサーバで動かすプログラムをwinでコーディングするって
問題ありますか?
もちろんphpやSQLのバージョンは同じという前提ですが…
0832nobodyさん2007/06/07(木) 09:43:29ID:???
>>831
難しいことしないにしても、マニュアルのファイル操作系関数はよく見ておいたほうがいい。
あとファイル名規則はLinuxにあわせること。大文字小文字にも注意して。
0833nobodyさん2007/06/07(木) 09:56:54ID:???
>>829
Gメン75乙
0834nobodyさん2007/06/07(木) 10:08:56ID:???
>>831
コーディング自体は何使っても問題無いが、
途中の動作テストをwindows上でやるのはあまりお勧めできない。実機がなければ、VirtualPCとかを使えばマシか。

文字コード改行コードの違い、マルチバイトの正規表現、CLI まわりは特に注意する。
0835nobodyさん2007/06/07(木) 10:13:30ID:???
>>825
>めちゃめちゃですか?もうちょっと具体的にお願いします。

>なぜこんな所で動作の違いが生じたのかは解りませんが
って書いてるんだから、変更に意味があると思ってないでしょう?あなたも。

そもそも元質問>>717の駄目原因、
>session_start();session_regenerate_id(true);では駄目でした。
session_regenerate_id(true);がソースのどこにあるのよ。
0836虚弱PHP2007/06/07(木) 11:32:02ID:???
>>825
ID被り&推測可能かが心配なら自前でMD5にするより
session.hash_function = 1
でSHA1にしたらいいんじゃあるまいか。
0837nobodyさん2007/06/07(木) 12:07:42ID:???
ソース見るとversion 5使っている奴だと思えないけどね。
0838717 ◆.Ia5JkzwT6 2007/06/07(木) 18:40:54ID:5RXDLZBj
>>835
>って書いてるんだから、変更に意味があると思ってないでしょう?あなたも。
確かにそうです。
変数の扱い方でも変わったのかな?と思いましたが、公式にも書いて無いですし、例えそうだとしてもエラーメッセージぐらい出てもいいものだ、とお手上げ状態です。

>session_regenerate_id(true);がソースのどこにあるのよ。
後半の処理をsession_start();session_regenerate_id(true);に置き換えても駄目だったと言う事です。

>>836
その設定項目は知っていましたが、パッと見でidの長さが自前で指定したときよりも短かったのでスルーしていました。
しかし、よく見てみるとハッシュ値は16進数なのに対し、PHPが吐くセッションIDはアルファベットを全て使っているようですね。

PHPが自動で吐くIDも、自前で指定したハッシュ値も安全性に大差無い事が解りましたので、このように変えてみました。

〜行数制限に掛かるのでini_set省略〜
ini_set("session.hash_function",1);

session_start();
//セッションが空の状態でregenerate_idするのを防ぐ
if(isset($_SESSION["hogehogehoge"])){
  session_regenerate_id(true);
}
else{
  $_SESSION["hogehogehoge"]=1;
}

このように変えてみました。
杞憂と早とちりで無駄にスレを消費してしまい、申し訳ありませんでした。
結局、何故テスト環境では空のセッションをregenerateしても大丈夫なのか解らずじまいですが、当面はこれで問題も出なさそうですし、解決したと言う事にして置きます。
アドバイスくれた方々有り難う御座いました。
0839nobodyさん2007/06/07(木) 21:06:49ID:4r7P9twq
一昨日から友達に頼まれて、PHPで携帯サイトを作っております。
PHPの作成は今回が初めてです。
昨日まで順調に進んでいたのに、あるところで詰まってしまい、現在困っているので、是非アドバイスお願いいたします。

例として・・・。
1ページ目に「A」を選択し
2ページ目に「b」を選択、
3ページ目に「任意の日付を選択」を選択し、プルダウン方式(××年××月××日 ←バツをプルダウン式))で日付を選びます。
4ぺージ目には「A-b-20070607.jpg」という感じに組み合わせた画像を表示したいです。
(組み合わせた画像はすでに友人が作成してあります)

とりあえず、3ページ目の「今日」で「A-b-20070607.jpg」と表示できるのですが、
「任意の日付を選択」では、その3ページ目のデーターしか値を渡すことができません。「--20070607.jpg」となってしまいます。

作り方は・・・
1ページ目
 <a href="page2.php?q1=A">A</a>

2ページ目(page2.php)
<?php
 echo "<a href=\"page3.php\"?q1=".$_GET['q1']."&q2=a>a</a>";
?>

3ページ目(今日)
<?php
echo "<a href=page4.php?q1=".$_GET['q1']."&q2=".$_GET['q2']."&q4=" $now_date = date("Ymd").">1:今日<br></a>";
?>

3ページ目の「任意の日付を選択」の作り方を教えてください・・・。
よろしくお願いします。。。
08408392007/06/07(木) 21:14:18ID:4r7P9twq
途中までなんですが、
任意の書き方としては・・・

//GETフォーム
echo("
<form action=\"testf_3.php=".$_GET['q1']."&q2=".$_GET['q2']."\" method=\"GET\">
<select name=\"year\" >
<option value=\"2006\">2006</option>
<option value=\"2007\">2007</option>
</select>

<br>
<select name=\"month\" >
<option value=\"01\">01</option>
<option value=\"02\">02</option>
               ・
<option value=\"11\">11</option>
<option value=\"12\">12</option>
</select>

<br>
<select name=\"day\" >
<option value=\"01\">01</option>
<option value=\"02\">02</option>
               ・
</select>

<br>
<input type=submit value=確定 >
</form>
");
0841nobodyさん2007/06/07(木) 21:16:03ID:???
>>839
form使えば?
0842nobodyさん2007/06/07(木) 21:18:19ID:???
>>840
hidden使えば?
0843nobodyさん2007/06/07(木) 21:34:48ID:4r7P9twq
>>841
form使用してるんだけど無理なんです。

>>842
hiddenかぁ、ちょっと調べてきます。
略している部分があるけど、書き方はこれであってる?
0844nobodyさん2007/06/07(木) 21:40:55ID:???
聞く立場でずいぶんな口調なやつがいるな。
0845nobodyさん2007/06/07(木) 21:43:55ID:???
>>843
任意の日付の選択の作り方なのかHTMLフォームの文法チェックしてほしいのか
はっきりしろよ。
何がわからなくて何を教えてほしいのかはっきりしない質問はクズ質問だ
0846nobodyさん2007/06/07(木) 21:50:18ID:???
>>844
ハァ?早く四つんばいになれよ
0847nobodyさん2007/06/07(木) 21:54:01ID:4r7P9twq
>>845
任意の日付の作り方を教えてほしいです
0848nobodyさん2007/06/07(木) 21:55:51ID:???
>>847
ふむ、それでそのフォームでどう駄目だったわけ?
0849nobodyさん2007/06/07(木) 22:01:56ID:???
>>848

>>840の記述をして、
次のページに移動しても
$_GET['q1']と.$_GET['q2'].の値を受け取ることができません。

<form action=\"testf_3.php=".$_GET['q1']."&q2=".$_GET['q2']."\" method=\"GET\">

この文法であっているのでしょうか?



0850nobodyさん2007/06/07(木) 22:05:00ID:???
つかそれじゃ表示もされないんじゃないの?
0851nobodyさん2007/06/07(木) 22:05:40ID:???
>testf_3.php=".$_GET['q1']."
間違ってるに決まってるだろ。
>>839
>PHPの作成は今回が初めてです。
他のプログラム言語でも作ったことが無いんだろ。
素直に言えばいいのに
0852nobodyさん2007/06/07(木) 22:10:33ID:???
>>840

<form action=\"page3.php="..$_GET['q1']."&q2="..$_GET['q2']."\" method=\"GET\">

日付のデータは受け取れて表示されています。
ほかのデータはまったく表示されていません。

0853nobodyさん2007/06/07(木) 22:13:03ID:zFLdGIyc
今、オブジェクト指向の勉強に入ったんですが(PHPで)、インターフェイスがよくわかりません。

色々しらべたところ、Javaの本には「インターフェイスで多重継承を実現する」とか書いてあるものがありまして、
しかし、中身は、インターフェイスはメソッドの中身は定義されていなくて、いちいち使用するクラスのほうで
中身を書かなくてはなりません。多重継承できるなら、継承したすべてのクラスのメソッドが使用できると解釈してしまうのですが。。
継承したメソッドを使用できなくては、「多重継承を実現する」という日本語を使うのはおかしいとおもうのですが・・
せめて、「多重継承の真似事ができる」くらいにしか表現できないとおもうのですが・・

初心者のうちはあまり深く考えずに、どんどんソース書いた方がいいですか?あまり気にしないほうがいいですか?

Javaのほうで質問しようとおもいましたが、私はJavaはよくわからないので・・
0854LwHXvdhAI2007/06/07(木) 22:15:59ID:???
<a href="http://p1ring.xshorturl.org/1/free-ringtones.html";>free ringtones</a>
<a href="http://p1ring.xshorturl.org/1/download-free-ringtones.html";>download free ringtones</a>
<a href="http://p1ring.xshorturl.org/1/cingular-ringtones.html";>cingular ringtones</a>
0855nobodyさん2007/06/07(木) 22:22:27ID:???
↑こういうのを無言で張るやつって、なに考えてるんだろうな
0856nobodyさん2007/06/07(木) 22:25:27ID:???
>>853
10行中に生齧りで自分が書いてても判ってない言葉が一杯あるのがよくわかるから
まあ、そんな自分でもわかってないことを質問するよりは10000行ぐらいコード書いてから来なさい。
0857nobodyさん2007/06/07(木) 22:32:33ID:???
>>853
多重継承という機能はJavaの世界では糞と呼ばれています。
0858nobodyさん2007/06/07(木) 22:36:52ID:???
>>853
気持ちはわかる
気にしないでいい
OOPの極意は>>630
08598532007/06/07(木) 22:38:23ID:???
>>855 僕宛なんですかね??怖くて踏めませんが・・
>>856 わかりました。自分でもよくわからないまま質問しました。もっとたくさん書いてからですね。
>>857 わかりました。というか、わからないんですが、多重継承が糞と呼ばれてることだけは、
おぼえておきます。

皆さん、どうもありがとうございました。どんどん書いてみます。
08608532007/06/07(木) 22:40:41ID:???
>>858 レス、すれ違いになってしまいました。
どうもありがとうございました。気持ちを分かっていただいた上で
気にしないでいいということなので、気にせずにどんどん進めていきます。

ありがとうございました。PHPは面白いですね。Cだと、コンソール画面に向かって
短いプログラムを作ってるだけなんで。

みなさん、ありがとうございました。
0861nobodyさん2007/06/07(木) 23:40:16ID:???
>>840
クエリの文法間違ってるしGETじゃactionでパラメータは渡せん。
<input type="hidden"〜をパラメータ分作ってvalueに指定する。

>>853
インターフェイスはクラスメソッドの仕様書みたいなもんだが…。
組み込みインターフェイスを実装して
http://www.php.net/manual/ja/language.oop5.iterations.php
こんな風にオブジェクトをforeachとかで使えるようにしたりとか…。
しかしPHPでは使う機会はほとんどないかな?
まぁOOPは確かに勉強しようとするよりも
組んでいって使う場面に出会った時、こんな素敵な機能が、と気付くような物だからね。
0862nobodyさん2007/06/07(木) 23:49:31ID:???
>>861
ありがとうございます!!
今から頑張ります。
0863nobodyさん2007/06/08(金) 01:15:57ID:YM7YDoyY
error_reporting = E_ALL
にしてると、注意で「Notice」が表示されるけど、
表示されるようにしておいたほうがいいのかな?

それとも、Noticeくらいならぜんぜん問題ないのかな?
0864nobodyさん2007/06/08(金) 01:24:20ID:rQuqM37d
こんばんは。

初めて読ませていただきましたが、みなさん面白いですね。

私も仕事でPHP等使ってますが、この掲示板のところどころに
見覚えのある単語がかかれていたので、つい最後まで読んでしまいました。

私の環境では、PHP3,4,5サーバーが混在するので、怖くてクラスの機能は超基本的な部分しか使ってません。

多重継承... 試したことがありません。(おそらく動くでしょうけど・・・)
0865nobodyさん2007/06/08(金) 01:25:52ID:???
3とか使ってるほうが怖いよ
0866nobodyさん2007/06/08(金) 01:39:02ID:rQuqM37d
あるんですよ。これが・・・

4〜5年前のもの。
各種2〜3バージョン前のもの。

ほとんどが手続き型で保守がしんどい・・・。
ざっくり再構築したいのだが・・・

ま、明日もがんばります。では!
0867nobodyさん2007/06/08(金) 02:11:49ID:???
あと100レスぐらいあとに書くもんなんだろうけど。

【PHP】下らねぇ質問はここに書き込みやがれ 46 (前スレ)
http://pc11.2ch.net/test/read.cgi/php/1178955837/
【PHP】下らねぇ質問はここに書き込みやがれ 45 (ここ。実質 47)
http://pc11.2ch.net/test/read.cgi/php/1178955768/
【PHP】下らねぇ質問はここに書き込みやがれ 47 (次スレ?実質 48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/

だったっけ?
0868nobodyさん2007/06/08(金) 02:30:13ID:???
>>863
Noticeまで出ないように書く。
0869nobodyさん2007/06/08(金) 07:02:43ID:YM7YDoyY
>>868
だよね、一番良い対策はそれだよね・・・

if($_POST['check']){
でNoticeが出るんだけどなんでだろ
結構この書き方使うのに・・・
0870nobodyさん2007/06/08(金) 07:24:41ID:???
isset、empty使いましょう
0871nobodyさん2007/06/08(金) 07:28:12ID:???
>>869
未定義の変数を評価しようとしてるからだよ
外から来た変数が空か、定義されてるか調べるには
empty($_POST['check'])とかisset($_POST['check'])
0872nobodyさん2007/06/08(金) 07:43:07ID:???
Notice出たことないな
Fatalばっかし
0873nobodyさん2007/06/08(金) 07:54:36ID:???
htmlでいうところのstrictかtransitionalかってところだな。
0874nobodyさん2007/06/08(金) 07:55:44ID:???
PHPは多重継承できないから。
初心者が間に受けるからオマイラ適当なこというな
0875nobodyさん2007/06/08(金) 08:29:03ID:???
多重継承という負の遺産まで、Javaを真似て取り込んじゃうのがPHPクオリティー
多重継承はできないけど、合成関数で多重継承ライクなことはPHPでもできるよ。
0876nobodyさん2007/06/08(金) 11:05:51ID:???
>>852
> <form action=\"page3.php="..$_GET['・・・・

というか

<form action=\"page3.php?".$_GET['・・・・

じゃ。
0877nobodyさん2007/06/08(金) 11:14:27ID:???
二重エンコードされたURLを判別する方法ってありますか?
二重でコードではなく一度だけデコードしたいのですが。
0878nobodyさん2007/06/08(金) 11:34:03ID:???
ぐるぐるデコードしていって最後に一度エンコードすれば
0879nobodyさん2007/06/08(金) 11:39:55ID:???
>>878
エンコードされていない文字列が入ってきた場合に問題が…。
0880nobodyさん2007/06/08(金) 11:55:04ID:???
>>877
おまえの家に鍵が二つあったとして、2つ鍵をかけた。
その鍵を2つとも一回であけたい


こういうことか?
0881nobodyさん2007/06/08(金) 11:55:24ID:???
<?php
$a = 0;
$htemp = array("35.0","35.1","35.2","35.3","35.4","35.5","35.6","35.7","35.8","35.9",
"36.0","36.1","36.2","36.3","36.4","36.5","36.6","36.7","36.8","36.9",
"37.0","37.1","37.2","37.3","37.4","37.5","37.6","37.7","37.8","37.9",
"38.0","38.1","38.2","38.3","38.4","38.5","38.6","38.7","38.8","38.9",
"38.0","39.1","39.2","39.3","39.4","39.5","39.6","39.7","39.8","39.9",
"40.0","40.1","40.2","40.3","40.4","40.5","40.6","40.7","40.8","40.9",
"41.0","41.1","41.2","41.3","41.4","41.5","41.6","41.7","41.8","41.9",
"42.0","42.1","42.2","42.3","42.4","42.5","42.6","42.7","42.8","42.9",);

print("<select name=htemp><option>");
while($a < 80) {
print("<option>$htemp[$a]");
$a++;
}
print("</option></select>");
?>

もっとスマートに記述する方法、教えて偉い人
0882nobodyさん2007/06/08(金) 12:01:16ID:???
>>880
入ってくるデータが
URLエンコ*2
URLエンコ
の二種類あり前者ならURLエンコを、後者なら元の文字列を得たい、ということです。
0883nobodyさん2007/06/08(金) 12:01:46ID:???
<?php
$htemp = array("35.0","35.1","35.2","35.3","35.4","35.5","35.6","35.7","35.8","35.9",
"36.0","36.1","36.2","36.3","36.4","36.5","36.6","36.7","36.8","36.9",
"37.0","37.1","37.2","37.3","37.4","37.5","37.6","37.7","37.8","37.9",
"38.0","38.1","38.2","38.3","38.4","38.5","38.6","38.7","38.8","38.9",
"38.0","39.1","39.2","39.3","39.4","39.5","39.6","39.7","39.8","39.9",
"40.0","40.1","40.2","40.3","40.4","40.5","40.6","40.7","40.8","40.9",
"41.0","41.1","41.2","41.3","41.4","41.5","41.6","41.7","41.8","41.9",
"42.0","42.1","42.2","42.3","42.4","42.5","42.6","42.7","42.8","42.9",);

print("<select name=htemp><option>");
foreach($htemp as $v) {
print("<option>$v</option>");
}
print("</select>");
?>
0884nobodyさん2007/06/08(金) 12:05:35ID:???
>>882
二種類のユーザー定義関数を作成して、条件判断して振ればいい。
0885nobodyさん2007/06/08(金) 12:07:41ID:???
883です、
もっと、シンプルに記述するにはどうすればいいですか
0886nobodyさん2007/06/08(金) 12:13:06ID:???
>>885
>>1
0887nobodyさん2007/06/08(金) 12:20:43ID:???
マニュアル読んでも、わからないので
0888nobodyさん2007/06/08(金) 12:24:02ID:???
マニュアル見る前にまず>>1を読め
0889nobodyさん2007/06/08(金) 12:25:52ID:I6Gynhm5
IDのことですか
これでいいですか
0890nobodyさん2007/06/08(金) 12:28:24ID:???
>>889
>>1
0891nobodyさん2007/06/08(金) 12:28:50ID:???
マニュアルのどの辺読んだんですか
0892nobodyさん2007/06/08(金) 12:31:41ID:???
ここの人なら簡単だと思って聞いたのですが、
あんなコードでも使えるので、もういいですよ

では、
0893nobodyさん2007/06/08(金) 12:32:48ID:???
二度と来ないで下さいね
0894nobodyさん2007/06/08(金) 12:34:17ID:???
配列の保持が必要ないなら
for($i = 35; $i < 43; $i += 0.1)
とか、PHP5以上なら
range(35,43,0.1)
とか。
0895nobodyさん2007/06/08(金) 12:39:39ID:???
>>883
俺ならそんな配列をわざわざ作らないでPHPに計算させる
0896nobodyさん2007/06/08(金) 12:47:27ID:???
>>882
"%" を urlencode すると、 "%25"になるよな?
で、"%25" をurlencodeすると "%2525"になる。

ここで、"%2525"が与えられたときに、
これが"%"を2重エンコードしたものか、"%25"を一回エンコードしたものか
どうにかして判断できないかってこと?

入力データ依存のヒューリスティックな推測以外ないだろうね。
0897nobodyさん2007/06/08(金) 12:58:32ID:???
>>882を見る限り、普通に1回デコードすれば当人希望の状態になる気がするんだけど。

URLエンコ*2→「前者ならURLエンコを」
URLエンコ→「後者なら元の文字列を」
でしょ。

2回エンコード後が %2525 → %25 (元は "%")
1回エンコード後が %2525 → %25 (元がこれ)
0898nobodyさん2007/06/08(金) 13:10:45ID:???
>>894
$iとかの一文字ってわかりづらいんですけど
みんながこういう変数を使うのは何でですか?
0899nobodyさん2007/06/08(金) 13:15:16ID:???
ループのカウンタが i, j, k だったりするのは慣習。
「そもそもはFORTRANでどーたらこーたら」とか言う話を聞いた記憶が。
0900nobodyさん2007/06/08(金) 13:43:02ID:???
>>898
incrementの頭文字だから?
0901nobodyさん2007/06/08(金) 13:48:29ID:???
http://ja.wikipedia.org/wiki/%E5%A4%89%E6%95%B0
0902nobodyさん2007/06/08(金) 13:55:39ID:???
本物も偽物も早く死ね
09038962007/06/08(金) 14:27:51ID:???
>>897
そうは思ったんだけど、
いくらなんでもそんなこと人に聞かないよなと思ってエスパーのふりしてみた。
0904nobodyさん2007/06/08(金) 14:37:45ID:???
phpでMySQL使うときはmysqlとmysqliどっちがええのん?
0905nobodyさん2007/06/08(金) 14:45:02ID:Xs31IcmG
$test = "abcdefvhijklmnopqrstuvwxyz0123456789あいうえおかきくけこさしすてそ";
を10文字単位で区切り文字を入れたいのですが
どうやらばいいのでしょうか?
0906nobodyさん2007/06/08(金) 15:02:23ID:6ggljLpp
10000000000 * 10000000000
百億 * 百億 の結果を整数で表示したいのですがどうしたらいいのでしょうか?
0907nobodyさん2007/06/08(金) 15:10:15ID:???
>>904
どっちでも問題なくPHPでMySQL使える

>>905
マルチバイトの文字列関数使えばできるのかもしれないけどざっと見た感じではよう分からん。
forで回したほうが早いかも

>>906
http://jp2.php.net/manual/ja/ref.bc.php
0908nobodyさん2007/06/08(金) 15:20:48ID:JzH9jcRm
ふと思うんだけど
クラスの利点は再利用って言うけど
ユーザー関数郡をインクルードしたって同じじゃないの?
別に中の変数名違うのでもグローバルしなきゃ大丈夫だし
0909nobodyさん2007/06/08(金) 15:23:01ID:???
>>905
10文字づつmb_substrで配列にして
forで好きな文字はさんでもどせば?
0910nobodyさん2007/06/08(金) 15:25:31ID:6ggljLpp
>>907
ありがとうございます。
echo bcmul(bcmul('10000000000', '10000000000'), bcmul('10000000000', '10000000000'));
で百億の四乗とかやってみたかったのです。
もう少し見やすくする方法はないですよね?
0911nobodyさん2007/06/08(金) 15:35:06ID:???
>>910
> bcpow ? 任意精度数値をべき乗する
0912nobodyさん2007/06/08(金) 15:44:38ID:Xs31IcmG
>>907 >>909
ありがとうございます
とりあえず以下を作って対応しました
$test = "abcdefvhijklmnopqrstuvwxyz0123456789あいうえおかきくけこさしすてそ";
echo hohoge($test,",",10);
function hohoge($text="",$key="",$limit=100){
$max = $start = 0;
$temp = array();
if($text=="" && $limit < 0){
return false;
}
$max = mb_strlen($text);
while($max > $start){
$temp[] = mb_substr($text,$start,$limit);
$start += $limit;
}
return implode($key,$temp);
}
0913nobodyさん2007/06/08(金) 15:46:42ID:???
>>910
1e10
1E+10
0914nobodyさん2007/06/08(金) 15:57:07ID:???
>>908
それがそもそもの間違い。
よくクラスはその書き方から名前空間の付いた関数群のようなものと思われがちだが、
クラスは関数よりの概念ではない。

クラスとは型であって構造体とかもっと言ってしまえばスカラー型に近いもの。
クラスの再利用っていうのは処理の再利用ではなく型の再利用。
メソッドはクラスメンバを操作するためにある。
フィールドとメソッドを内包してカプセル化することにより、
それが一つの物として機能することに価値がある。

火打ち石で何かに火を付けるよりライター1つみたいな。

とまぁ長々書いたがとりあえずクラスとは関数群ではなく型であるということを覚えておいてほしい。
0915nobodyさん2007/06/08(金) 16:17:15ID:ORXPTs1E
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\test\tenki2.php on line 59
WEB上のサンプルファイルを試してたら上記のようなエラーがでましたが
どのような意味みなるのでしょうか?
0916nobodyさん2007/06/08(金) 16:21:18ID:???
終わらすには早いよ〜何か抜けてるよーって意味だ

どうせ ;か } あたりがぬけてんだろ
0917nobodyさん2007/06/08(金) 16:30:23ID:???
>>908
一度作ってしまえば、あとは中の人が頑張ってくれるんですよ。
0918nobodyさん2007/06/08(金) 16:31:55ID:ORXPTs1E
>>916
ありがとうございます
09199142007/06/08(金) 16:38:48ID:???
>>908
ちょっと書き方が悪かった。簡潔に
自身の振る舞い方を知っている型。
と言った方がいいかもしれん
0920nobodyさん2007/06/08(金) 17:11:03ID:HgwodoIy
$test = 'abcdefvhijklmnopqrstuvwxyz0123456789あいうえおかきくけこさしすてそ';
$encode = 'Shift_JIS';
$delimiter = '/';
$limit = 16;

$str = mb_substr($test, 0, $limit, $encode);
for ($i = $limit; $i < mb_strlen($test, $encode); $i = $i + $limit){
 $str .= $delimiter.mb_substr($test, $i, $limit, $encode);
}

echo $str;//abcdefvhijklmnop/qrstuvwxyz012345/6789あいうえおかきくけこさし/すてそ

--
ちょっと前に自分で書いたのはこんな感じ
あとマルチバイト関数使うときはエンコードちゃんと指定した方がよかよ
09219082007/06/08(金) 17:43:33ID:JzH9jcRm
>>919
あー
税金というクラスがあったとして
このオブジェクトはお金を計算する型です。
この中に格納して、いろんなメソッドを指定すれば
所得税や手取り金など、簡単に取り出せます
みたいな?


0922nobodyさん2007/06/08(金) 18:14:44ID:au/61P4H
>>905
UTF-8で書いているなら、 preg_replaceを使って簡単に書けます。

$string = 'abcdefvhijklmnopqrstuvwxyz0123456789あいうえおかきくけこさしすてそ';
$string = preg_replace('/(?:^|\G)(.{10})/u', '${1};', $string);
0923nobodyさん2007/06/08(金) 18:55:15ID:Xs31IcmG
>>920
ありがとうございます
文字コード指定するようにしました

>>922
残念ながらUTF-8ではなくEUC-JPです
なので今回は利用できそうにありません
しかし次回機会があったら是非使わせていただきます
ありがとうございます
0924nobodyさん2007/06/08(金) 20:13:13ID:rQuqM37d
http://www.php.net/manual/ja/function.mb-substr.php

よくできたマニュアルだ〜。

私もこの手の文字列操作をよくしてるが、FreeBSD, PHP (.configure -enable-mbstring のみのような) 環境では、
EUC-JP以外の文字の取り扱いは、たまにお手上げのような状況にはまることがあるな〜。


0925nobodyさん2007/06/08(金) 20:56:58ID:rQuqM37d
$test = "abcdefvhijklmnopqrstuvwxyz0123456789あいうえおかきくけこさしすてそ";

for ($i=1; $i<=mb_strlen($test); $i++){
  $string.=mb_substr($test, $i,1);
  if ( ($i%10) == 0 ) {
   $string.="/";
  }
}
echo $string;

かな〜。
0926nobodyさん2007/06/08(金) 21:01:58ID:???
単純そうでやり方が思いつかないのですが
アルファベットを順番に表示させたいのですが…

< a href="hoge.html?$search=A">A行</a>
0927nobodyさん2007/06/08(金) 21:02:43ID:SfnUwTBh
<a href="hoge.html?$search=B">B行</a>
<a href="hoge.html?$search=C">C行</a>
<a href="hoge.html?$search=D">D行</a>
とリンクを作りたくて…
0928nobodyさん2007/06/08(金) 21:03:11ID:???
ねえ?
なんでくだ質系のスレは回答する人も初心者さんばかりなの?
09299272007/06/08(金) 21:11:45ID:SfnUwTBh
<?
$abc = "A";
for($i=1; $i < 27; $i++) {
echo '<a href="?alphabet='.$abc.'">'.$abc.' </a>';
$abc++;
}
?>
そんなアホなと思いつつこれでできちゃうんですね…
でも小文字は変換するしかないのかな
0930nobodyさん2007/06/08(金) 21:15:34ID:rQuqM37d
問題が初心者向けだからだ>928
0931nobodyさん2007/06/08(金) 21:16:05ID:???
>>927
for($i=65;$i<91;$i++){
echo '<a href="hoge.html?search='.chr($i).'">'.chr($i).'行</a>'."\n";
}
0932nobodyさん2007/06/08(金) 21:21:21ID:rQuqM37d
お。基本的なCの命令文(?)は、PHPマニュアルにはないから見落とす。
さすがですね。
0933nobodyさん2007/06/08(金) 21:25:55ID:???
>>931
あ!ありがとうございます
chr()調べにいきます…
0934nobodyさん2007/06/08(金) 21:35:22ID:8TLyKZoa
すみませんが教えてください
$user_arr = array(
 1 => array('1','pop','0'),
 2 => array('2','red','1'),
 3 => array('3','dream','1'),
 4 => array('4','braian','0'),
 5 => array('5','boy','0'),
 6 => array('6','test','0')
);
この$user_arr配列を pop,red,dream...の項目でソートすることは
出来ないでしょうか?
0935nobodyさん2007/06/08(金) 21:45:29ID:/7xjylPa
>>934
usort()
0936nobodyさん2007/06/08(金) 21:54:03ID:???
>>934
$user_arr = array(
 1 => array('1','pop','0'),
 2 => array('2','red','1'),
 3 => array('3','dream','1'),
 4 => array('4','braian','0'),
 5 => array('5','boy','0'),
 6 => array('6','test','0')
);


function cmp($a,$b){
return strcmp($a[1],$b[1]);
}
usort($user_arr,"cmp");
echo print_r($user_arr);
0937nobodyさん2007/06/09(土) 03:12:26ID:???
mysqlをはじめてつかうならiはあとからにしろ
0938nobodyさん2007/06/09(土) 03:13:06ID:???
iは拡張版みたいなもんじゃね?
0939nobodyさん2007/06/09(土) 03:13:15ID:???
>>934
↑↑↓↓→←→←
0940nobodyさん2007/06/09(土) 11:39:16ID:???
$hoge[0]['name'] = "C";
$hoge[0]['value'] = "シー";
$hoge[1]['name'] = "A";
$hoge[1]['value'] = "エー";
$hoge[2]['name'] = "B";
$hoge[2]['value'] = "ビー";

上のような配列 $hoge を $hoge[$i]['name'] の名前順に並べ変えたいのですが
どうすればよいでしょうか?

つまり
$hoge[0]['name'] = "A";
$hoge[0]['value'] = "エー";
$hoge[1]['name'] = "B";
$hoge[1]['value'] = "ビー";
$hoge[2]['name'] = "C";
$hoge[2]['value'] = "シー";
のように変更したいと考えています

0941nobodyさん2007/06/09(土) 11:52:54ID:???
>>940
キーワード
・foreach
・代入
0942nobodyさん2007/06/09(土) 12:22:29ID:j2tEU2dd
mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS

この設定のとき、EUCで作成したファイルはSJISの問題に関する対処を入れておくべきでしょうか?
0943nobodyさん2007/06/09(土) 12:23:08ID:???
ftp_put()使ったときに
多くのFTPクライアントみたいに
改行コードを自動的に書き換えるようにしたいのですが、
普通にstr_replaceあたり使ってシコシコするしかないですかね?
なんか簡単な方法ないでしょうか。
改行コードの識別時点でかなりだるそうなのですが。
0944nobodyさん2007/06/09(土) 12:39:41ID:???
\n に統一 str_replace(array("\r\n", "\r"), "\n", $str)
\r\n に統一 preg_replace("/(?<!\r)\n|\r(?!\n)/", "\r\n", $str)
0945nobodyさん2007/06/09(土) 12:42:04ID:???
>>940
<?php
$hoge[0]['name'] = "C";
$hoge[0]['value'] = "シー";
$hoge[1]['name'] = "A";
$hoge[1]['value'] = "エー";
$hoge[2]['name'] = "B";
$hoge[2]['value'] = "ビー";
foreach ($hoge as $key => $row) {
$name[$key] = $row['name'];
}
array_multisort($name, $hoge);
print_r($hoge);

かな
それかユーザ関数作る
09469402007/06/09(土) 12:52:17ID:???
>>945
神サンクス!!
0947nobodyさん2007/06/09(土) 20:43:27ID:RIHYcObC
正規表現で文字列を検索したいのですが、
""や''内は検索の対象外としたいです。
どうすれば可能でしょうか?
0948nobodyさん2007/06/09(土) 22:00:20ID:fw4XPRkl
携帯からですみません。
iモードhtmlシュミレーターで
http://localhost/bbs.php
にアクセスしようとしても接続出来ません。と出るのですが、
どうしたらよいでしょうか?
WindowsでApacheを使っています。
0949nobodyさん2007/06/09(土) 22:17:11ID:???
>>947
何がしたいのか、漠然としすぎてて答えにくいが、PHPの中で検索したいのか?
タグ内の文字列を検索条件から取り除きたいのなら、まずstrip_tagsした後に、抽出するとか
0950nobodyさん2007/06/09(土) 22:25:35ID:???
>>948
スレ違い
まず適当なindex.htmlを作って設置してみて、
http://localhost/index.htmlに繋がるか試せ。どうせ繋がらないはず。

0951nobodyさん2007/06/09(土) 22:28:58ID:fw4XPRkl
>>950
先ほどの質問をした者ですが、
繋がらない理由を教えていただけませんか?

インターネットエクスプローラーなら繋がるのですが、
0952nobodyさん2007/06/09(土) 22:33:55ID:???
>>951
そもそもlocalhostって何か理解してますか?
0953nobodyさん2007/06/09(土) 22:35:39ID:???
大人が小学1年生を相手にしているような流れですね
0954nobodyさん2007/06/09(土) 22:39:26ID:fw4XPRkl
>>952
先ほど質問した者ですが、localhostの意味がわからないので説明してくれませんか?
0955nobodyさん2007/06/09(土) 22:39:33ID:???
小学6年生が1年生の世話を嫌々見ているようなインターネッツですね
0956nobodyさん2007/06/09(土) 22:40:40ID:???
案外多いのなwww
http://www.google.co.jp/search?q=localhost%E3%81%AE%E6%84%8F%E5%91%B3&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:unofficial&client=firefox-a
0957nobodyさん2007/06/09(土) 22:41:32ID:???
あまりにもPHPと関係がないことに感心します。
0958nobodyさん2007/06/09(土) 22:42:55ID:???
>>954
スレ違いだと言っているけれど。ついでだから教えてあげる。

IEは localhost→ hostsファイルを参照→ 127.0.0.1 (自分自身) と解釈して、自分のPCに繋がるわけ。

どうせi-modehtmlシュミレータは、それを解釈できないだけでしょ。
設定画面か何かに、hostsファイルを参照するとかその辺の設定があるはず。んでそれがOFFになっていて解釈できないと。

だからPHPは全く関係ない。
0959nobodyさん2007/06/09(土) 22:48:11ID:fw4XPRkl
>>958
先ほど質問した者ですが、
設定はONにしてありますが、接続出来ないのです。
これはなぜでしょうか?
0960nobodyさん2007/06/09(土) 22:54:21ID:???
>>959
・そのシュミレータとやらを一回再起動したりした?
・あと >>948 は試してみた?
・パーソナルファイヤーウォールとかで蹴られていないか?

何故でしょうと聞かれても、エスパーじゃないから出来ない。
一つづつ可能性をつぶしていけよ。 これ以上は自分でググってがんばれ。
0961nobodyさん2007/06/09(土) 23:01:02ID:fw4XPRkl
>>960
丁寧なる改善策ありがとうございます。
お時間を取らせてしまいすみませんでした。
http://127.0.0.1/bbs.phpとしましたら接続出来ました。
ありがとうございます。
では
0962nobodyさん2007/06/09(土) 23:12:39ID:yCd1SwCo
$object->arrayvar[$key]
とは書けないですよね?
$object1->object2->var
はできるのになんなのこの言語。
0963nobodyさん2007/06/09(土) 23:17:47ID:???
>>962
書けるが…?
0964 ◆yBEncckFOU 2007/06/09(土) 23:21:22ID:???
文字の取り扱い、重荷サニタイズについての質問です。
1 mysqlへのデータ格納時にサニタイズしなければならない文字
2 html出力時にサニタイズしなければならない文字
3 get/postでのデータ受け取り直後にサニタイズしなければならない文字
を教えていただきたいです。
また、htmlspecialcharsでjavascriptなどの特殊なスクリプトの埋め込み攻撃を完全に防げるのかどうか教えていただきたいです
また、上記すべての設定ではmagic_quote gpcの設定をonで使用することを前提としてのアドバイスをお願いいたします
0965 ◆yBEncckFOU 2007/06/09(土) 23:25:21ID:Op34nGQd
アゲ忘れです(TT;
0966nobodyさん2007/06/09(土) 23:44:35ID:???
>>964
先ほど質問した者ですが、 質問は1人1つまででお願いします
0967nobodyさん2007/06/09(土) 23:49:57ID:???
>>964
SQLInjectionとXSSがごっちゃになってるような
お約束ってことで「サニタイズ言うな」

1はそれぞれDBのエスケープ用の関数なりプレースホルダーなりを使う
2はhtmlspecialchars
3はいらない
0968 ◆yBEncckFOU 2007/06/09(土) 23:55:24ID:Op34nGQd
>>967
ありがとうございました
0969nobodyさん2007/06/10(日) 00:03:14ID:???
>>964
「サニタイズ言いたいだけちゃうんか」
というのは置いておいて、

・どうしてもmagic_quote gpc on なんですか
・DB格納用のエスケープ処理と、XSS対策を一緒くたにすんな
・mysql内部の文字コード、php側の文字コードは?
・ユーザの入力にhtmlを許可するのか?しないのか?
・LGPL使っていいのなら、http://htmlpurifier.org/ とか面白い。


あと、
ttp://cgi36.plala.or.jp/tera5/v/security/webap_sec2/chap01.html へんとか
ttp://cgi36.plala.or.jp/tera5/v/security/char_xss1/chap01.html へん
とかは一読の価値ありか。
0970nobodyさん2007/06/10(日) 00:05:30ID:???
不特定のURLから取得したファイルについて、
ファイルの内容(テキスト、画像、動画など)を判別する方法を教えてください。

$url = 'http://www.sample.com/****';
$file = file_get_contents ($url);
0971 ◆yBEncckFOU 2007/06/10(日) 00:13:58ID:isb7MrtT
>>969
ありがとうございました
0972nobodyさん2007/06/10(日) 00:25:41ID:qbDoORWs
MySQL総合から誘導されてきますた


MySQL + PHP で掲示板を作っているのですが、分からないことがあります。

MySQLのSQL文中にPHPの変数を入れたいです。
こんなカンジ↓

$sql = "select count(*) from post2 where tid=".$row["id"];

これで実行してみるとResource id #4 Resource id #5 Resource id #6...
といった結果が得られて思うような結果(掲示板のレス数)が得られません。

どのようにすればいいか教えてください。お願いします。
0973nobodyさん2007/06/10(日) 00:28:56ID:???
>>972
先ほど質問した者ですが、Resource id の意味わかってますか?
0974nobodyさん2007/06/10(日) 00:42:49ID:???
>>970
http://jp.php.net/manual/ja/ref.fileinfo.php
09759722007/06/10(日) 00:43:15ID:qbDoORWs
>>973
レスありがとうございます。
Resource idは分かっていません・・・。
ぐぐってみましたが有用な情報は得られませんでした。
Webプログラムは検索が難しいです。

もう少し考えてみることにします。
ありがとうございました。
0976nobodyさん2007/06/10(日) 00:49:58ID:17od7jmr
SQLを出力するクラスにWHERE情報を加えたいんだが、
ANDとORのグルーピングを考えるとどうしても一つの条件を
オブジェクトまたは配列にしないとうまくできないと思った。
けど、できますか?
またはよく言われているcriteriaクラスとかはどうやってるんでしょうか。
0977nobodyさん2007/06/10(日) 00:52:18ID:???
>>975

マニュアル嫁 >>1

$ret = mysql_query($sql);
while ($a = mysql_fetch_assoc($ret)) {\
var_dump($a);
}
0978nobodyさん2007/06/10(日) 00:52:27ID:???
>>976
先ほど質問した者ですが、前半はコード出して
後半はググれ
0979nobodyさん2007/06/10(日) 01:02:53ID:???
>>976
エスパーレスすると

where
1=1 and ほげ
or
(0=1)

とか工夫汁

0980nobodyさん2007/06/10(日) 01:03:12ID:???
「先ほど質問した者ですが、」が気に入ったのはわかったけど、IDを出してやってくれないと
ID:fw4XPRklに対して感じた「いや、書かなくてもわかるから」感がなくて物足りない。
09819762007/06/10(日) 01:11:16ID:17od7jmr
コード出すというか概念を話すと、WHERE条件を複数持つことのできる
Trayクラスを作って、
var $connection="AND";
var $elements=array();
function elementtray($connection)
{
$this->connection=$connection;//(ANDかOR)
}
function addelement($element)
{
$this->elements[]=$element;
}
でこの$elementのデータ型もまたオブジェクトなわけ。
そんで
function output
{
$ret="SELECTうんぬん。";
foreach($this->elements as $element){
$ret.= $element->output();
}
}
というかんじにする。ここをポリモって、
elementクラスにもoutputメソッドを入れといて、
elementtrayのなかに入れ子にできるようにするわけだ。
こんなんしか思いつかん。
09829722007/06/10(日) 01:13:59ID:qbDoORWs
>>977
ありがとう。
おかげでうまくいきました。

$sql = "select count(*) as reply from post2 where tid = $row[id]";

として新しいフィールドを作ってあげるとうまくできました。感謝!
0983nobodyさん2007/06/10(日) 01:15:25ID:???
フィールドじゃないし
そんなことしなくても取れるけどね
0984nobodyさん2007/06/10(日) 01:22:00ID:???
>>980
先ほど質問した者ですが、これやってる人ウザいよね
やめろ
0985nobodyさん2007/06/10(日) 01:35:55ID:???
>>982
$sql = "select count(*) as reply from post2 where tid = {$row['id']}";
って書いたほうが俺は安心する。
09869762007/06/10(日) 01:39:02ID:17od7jmr
男は黙ってsprintf

ところでわたくしの質問なんですが誰も答えてくれないですよねすんません。
結局WHERE以下の1文章をオブジェクトにする設計にしそうです。
0987nobodyさん2007/06/10(日) 01:45:29ID:???
>>986
すまん、配列のelementに入ってくる引数の$elementsが何なのか
分からん
0988nobodyさん2007/06/10(日) 01:50:11ID:???
>>986
便利なクラス作ってうpってくれ
09899762007/06/10(日) 01:50:12ID:17od7jmr
説明不足すぎました。
$elementは、WHERE以下の1つの条件文をもつオブジェクトです。
たとえばWHERE uid< 79 AND (uname like %a% OR uname like %b%)
というWHERE以下の条件に対して、一つのelementオブジェクトは
uid<79または
name like %a%または
uname like %b%であるということです。
この括弧で括る「グルーピング」をうまく表現したかったんです。
0990nobodyさん2007/06/10(日) 02:17:19ID:???
>>989
いろいろあるだろうけど、ラムダを使って入れ子方式にすんのはどうよ。
$cond->add("uid < 79");
$cond->or(create_function('$cond','
 $cond->add("uname like %a%");
 $cond->add("uname like %b%");
'));

うーん、文字列で渡すのがいまいちださいな。
create_functionはor()の中で呼んでもいいね。
09918672007/06/10(日) 02:21:12ID:???
たまたまこのタイミングで見ててよかった。
次スレの扱いは>>867な感じでいいのかな?

過去スレリストなんかはその次でどうにかするとして。
0992nobodyさん2007/06/10(日) 02:39:31ID:???
>>989
あんま的確なレスになってないけど
ttp://www.symfony-project.com/snippets/snippets/tagged/criteria/order_by/date

とか symfonyの
symfony/vendor/propel\util/Criteria.php
とか参考にならない?
09939762007/06/10(日) 02:51:20ID:17od7jmr
いろいろとありがとうございます。ラムダを使って入れ子とか、
賢すぎです。馬鹿はPHP極められないなぁとか思った次第です。
symfonyのcriteriaは…紹介だけだと詳しくのってませんでした。
ソースコード見るよりとりあえず作ってみます。どうもでした。
0994nobodyさん2007/06/10(日) 04:16:51ID:???
>>993
ま、これぐらいたいしたことじゃねぇってw
09959762007/06/10(日) 06:28:21ID:17od7jmr
>>988
できた。よかったら使ってください。
長いんでこのスレ埋めてしまいますすんません。
<?php
//WHERE以下の条件クラス
class element
{
var $field;//DBのフィールド値
var $value;//値
var $relation;//fieldとvalueの関係。=とかlikeとか。

//コンストラクタはプロパティのセットのみ
function element($field,$value,$relation="=")
{
$this->field=$field;
$this->value=$value;
$this->relation=$relation;
}

//DB用の「サニタイズ」
function trimforquery($value)
{
if(is_numeric($value)){return $value;}
elseif(is_string($value)){return $this->strforquery($value);}
else{
error("element->trimforquery:UNKNOWN DATATYPE ".$value);
return $value;
}
}
09969762007/06/10(日) 06:29:47ID:17od7jmr
function strforquery($str)
{
$strforquery=addslashes(trim($str));
$strforquery="'".$strforquery."'";
return $strforquery;
}

//SQLフォーマットで出力します。
function render()
{
$condition=sprintf(" %s %s %s ",$this->field,$this->relation,$this->trimforquery($this->value));
return $condition;
}
}

09979762007/06/10(日) 06:31:11ID:17od7jmr
//複数のelementを格納したオブジェクト。自身もelementとなりうる(入れ子が可能)
class elementtray extends element
{
var $elements=array();//ここにelementオブジェクトが入る。
var $connection="AND";//element同士の接続。Tray内では常に同じ接続。別にしたきゃ別のTrayを作れ。

function elementtray($connection="AND")
{
$this->connection=$connection;
}

//elementを加えるメソッド
function add($element)
{
$this->elements[]=$element;
}

//elementを$connectionでつないで、括弧でくくって出力します。
function render()
{
if($this->elements!==array()){
$condition=" ( ";
foreach($this->elements as $element){
$condition.=trim($element->render());
$condition.=" ".$this->connection." ";
}
$condition=substr($condition,0,strlen($condition)-strlen($this->connection)-2);
$condition.=" ) ";
}
return $condition;
}
}
09989762007/06/10(日) 06:32:25ID:17od7jmr
//SQLをつかさどる抽象クラス。elementtrayと同様に、elementを複数持てます。
class query extends elementtray
{
var $order;//ORDER BYとかの機能ものちに追加したいが自分が今必要ないからプロパティだけ作っとく。
var $sql="";

function query($connection="AND")
{
$this->elementtray($connection);
}

//SQLを出力します。$this->sqlは子クラスに任せています。
function render()
{
$sql=$this->sql;
if($this->elements!==array()){
$condition=" WHERE ";
foreach($this->elements as $element){
$condition.=trim($element->render());
$condition.=" ".$this->connection." ";
}
$condition=substr($condition,0,strlen($condition)-strlen($this->connection)-2);
$sql.=trim($condition);
}
return $sql;
}
}
09999762007/06/10(日) 06:33:27ID:17od7jmr
//SELECT ほげ FROM をしてくれるクラス
class selectquery extends query
{
function selectquery($field,$table,$connection="AND")
{
$this->query($connection);
$this->sql=sprintf("SELECT %s FROM %s ",trim($field),trim($table));
}
}

//INSERT INTO ほげ してくれるクラス。$arrofnewの順序および数はテーブルのフィールドと一致している必要があります。
class insertquery extends query
{
function insertquery($table,$arrofnew)
{
$values="";
foreach($arrofnew as $value){
$values.=$this->trimforquery($value);
$values.=",";
}
$values=substr($values,0,strlen($values)-1);
$this->sql=sprintf("INSERT INTO %s VALUES(%s);",trim($table),$values);
}
}
?>
1000nobodyさん2007/06/10(日) 06:34:16ID:???
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。