【PHP】下らねぇ質問はここに書き込みやがれ 45
まず読め→【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カテゴリ)の各スレで
2げおt
とりあえずこっちはsage進行で、できればdat落ちさせて。
4 :
nobodyさん:2007/05/13(日) 00:27:07 ID:aU5J+vQg
みなさん実務でPHP開発ってどうやってやってるんですか?勉強とかで使うには
windows環境だからPHPエディタで編集 → 実行でやり易いけど、実務だと
編集するファイルはLinux上にありますよね。わざわざファイルまで移動して
Viエディタで編集してるんですか?eclipseだとリモートデバッグがあるらしいけど
重いし色々めんどくさそうだからもっといい方法ないですかね。私としては
PHPエディタを使いたいんですが;
>>4 手元のFreeBSDで開発。リモートにはSubversion via sshで同期を取る。
エディタはEmacs。リモートにも一応Emacsをインストールしてある。
DWかeclipseかマクロが使えるエディタなど。
zendは会社が経費で落としてくれるようなあたたかいところか、自腹で使ってる奴がいる程度
よくわかんねえけど、向こうのスレと同時進行しちゃえばいいんじゃないの?
vim+マクロ
10 :
nobodyさん:2007/05/15(火) 16:43:27 ID:6TG+QTaB
いまeregiを使ってフォームから送られてきたデータに
半角記号があればはじくスクリプトを書いているのですが
$と\だけが正しくはじかれません。
if(eregi("$",$_POST["deta"])){
//もしくはif(eregi("\\",$_POST["deta"])){
return false;
}else{
return true;
}
いちを\$も試してみたのですが上手くいきません。
正規表現でググって見ても明確な答えも出ず
$でググる事もできないので困ってます。
OSはfreeBSD、php4.4.6(レンタルサーバ)になります。
>>10 正規表現を"で括るのではなくて'で括ってみてはどうか。
12 :
10:2007/05/15(火) 17:02:38 ID:6TG+QTaB
>>11 すばやい回答ありがとうございます。
今試して見ました。
if(eregi('$',$_POST['data'])){
return false;
}else{
return true;
}
と言う事ですよね、やっぱりダメでした。
詳しく言うと、$が入っていようが無かろうがここで必ず
引っかかってfalseを返すようなのです。
\の方は\が入ってなかろうが必ずtrueを返すみたいです。
しかも$_POST['data']のなかに\しか入れてないのに、print('$_POST['deta']');
したときに、おかしなことに\\と置き換わって表示されている事です。
そのほかの記号#$%等はうまくはじけるので、このレンタルサーバだけの
しようかもしれないと思っております。
13 :
10:2007/05/15(火) 17:09:43 ID:6TG+QTaB
訂正です
print("$_POST['deta']");
シングルとダブルクオートの使い分けをレスに書いておらず
訂正させていただきます。
>>13 むこうでやれよ。お前。向こうの質問と、こっちの質問、重複して、しかも違うところあるだろが。
そもそもここはオチスレだ。
15 :
10:2007/05/15(火) 17:17:54 ID:6TG+QTaB
失礼しました。
こちらに書いた質問は取り消します。
ある数字の値があり小数点以下値があれば小数点2桁まで表示、なければ少数点を表示しないようにするにはどうすればよいでしょうか?
>>16 >>8のスレでどうぞ。スレのはじめにおやくそく書いてあるから読んでね。
19 :
nobodyさん:2007/05/26(土) 20:39:03 ID:zAGWqET9
age
20 :
nobodyさん:2007/05/27(日) 10:22:46 ID:24TJO5qa
21 :
nobodyさん:2007/05/28(月) 10:05:36 ID: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つずつ表示されました。
うまくいきません!
どうしたらいいでしょうか?
>こうすると1行ずつ表示されました。
>これは1行目だけ1つずつ表示されました。
>うまくいきません!
>どうしたらいいでしょうか?
ハァ?
23 :
nobodyさん:2007/05/28(月) 11:30:57 ID:IWdKxl1z
質問します。
DBにあるひらがなのデータを引き出して、PHPであいうえお順に並べたいのですが、何かいい方法はありませんでしょうか?
宜しくお願いします。
ヒィ?
>>23 DBから取り出すときに、あいうえお順に取り出せばいいじゃん。
>>25 いやww そのやり方がわからないんじゃないの?wwww
SQLの問題だね
27 :
nobodyさん:2007/05/28(月) 11:53:00 ID:IWdKxl1z
>>23,25
回答ありがとうございます!
なるほど!DBで引きださないといけないんですね。
今調べているんですが、ネットじゃ見つかりませんorz
探し方が悪いな。。。
28 :
21:2007/05/28(月) 11:53:02 ID:efvDy8q4
全行ひとつずつ取り出すにはどうしたらいいのですか?
30 :
nobodyさん:2007/05/28(月) 12:11:01 ID:pAImQaIB
おい。おしえれ!
$_POST配列についてだけんども、フォームからの情報が空のまま送信されてきたときは、
$_POSTは空の配列という認識でええんかな?ようするに$array=array()で作成された空の配列と
同じと考えていいのかな?
教えてくさい。おながいします。
>>30 フォームからの情報を空にして送信して中身見てみれば分かるだろカス
>>31 30ではないが、echoすると空っぽだが、emptyはtrueで返ってきたりするから困ったもんだ
何書いてんだ俺・・・
×emptyはtrueで返ってきたりする
○emptyはfalseで返ってきたりする
35 :
30:2007/05/28(月) 12:26:45 ID:pAImQaIB
>>31 わかんないんです(><;)
>>33 ですよね?わけわかんないです(><#)
>>35 「おしえれ」「教えてくさい」「おながいします」「ふざけた顔文字」
この時点でまじめに質問しようとしてないことが見て取れるので却下
37 :
nobodyさん:2007/05/28(月) 13:40:41 ID:ywe2HeV4
$_POST配列についての質問です。フォームからの情報が空のまま送信されてきたときは、
$_POSTは空の配列という認識で良いのですか
41 :
nobodyさん:2007/05/28(月) 15:17:16 ID: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>
42 :
nobodyさん:2007/05/28(月) 15:18:08 ID:ywe2HeV4
つまり、私がissetの使い方を理解していない・間違っているということでしょうか?
print_rやらvar_dumpやら使えばいいじゃん・・・
>>41 POSTでhogeを送信してるから
$_POST['hoge']には空文字列が入っていると思われ
>>43 自分が別の時に書いたものの改造なので・・・
>>44 2行目については把握しています
1行目の意味することが理解できません
>>45 へ?自分が別の時に書いたものの改造だからなんでprint_rやvar_dumpができないのか詳しく説明してくれ
47 :
nobodyさん:2007/05/28(月) 15:48:22 ID:ywe2HeV4
荒れて来たので消えますね
失礼しました
>>47 解決してあげようと回答者が聞いてるのに無視
「荒れた」とかいう原因は自分なのに放置
多くの人の時間と手間を無駄にしておいて自分勝手に終わらせる無責任さ
一言礼すら無し
お前最悪すぎるよ・・・
49 :
nobodyさん:2007/05/28(月) 16:01:25 ID:ywe2HeV4
> 解決してあげようと回答者が聞いてるのに無視
これはない
> 「荒れた」とかいう原因は自分なのに放置
原因が云々の問題?
> 多くの人の時間と手間を無駄にしておいて自分勝手に終わらせる無責任さ
> 一言礼すら無し
この点は本当にごめんなさい
みなさんありがとうございました
自分に都合が悪い指摘を「荒らし」ってwwww
>>49 >これはない
>>46 >原因が云々の問題?
そうだと思うけど何か違う問題なの?
>>49 > 解決してあげようと回答者が聞いてるのに無視
> これはない
44ですが無視ですか・・・
38ですが無視ですか・・・
54 :
nobodyさん:2007/05/28(月) 16:11:45 ID:ywe2HeV4
>>44 >>38 ごめんなさい・・・
>>46の質問は解決のための質問とは思えない、という意味です
都合の悪い、という意味がわかりませんが
>>54 print_rやvar_dumpの使用は明らかに解決を早めると思うのだが・・・
>>54 どうすれば解決するか分からないから質問しに来たくせに、そういうことは分かってるつもりなんだw
大体
>>46は
>>45でキミが意味不明な返答したから言われてんじゃん。
改造だからprint_rやvar_dumpが使えないってのは君の中では論理的な考えになってるのか?
もしそうならそれに興味があるから是非教えてほしい。
57 :
nobodyさん:2007/05/28(月) 16:19:49 ID:ywe2HeV4
>>55 > へ?自分が別の時に書いたものの改造だからなんでprint_rやvar_dumpができないのか
> 詳しく説明してくれ
詳しく教えて何か意味がありますか?
言い方にも問題があると思いますよ
58 :
nobodyさん:2007/05/28(月) 16:21:09 ID:ywe2HeV4
>>56 改造だから使えないんじゃなくて、改造だから使っていなかった、という意味です
いろいろなみなさんにご迷惑おかけして申し訳ありませんでした
まず最初に自分の言い方が悪かったから突っ込まれたのにそこはスルーなんだな
60 :
nobodyさん:2007/05/28(月) 16:25:48 ID:8Nb4gWX5
このスレに質問に来ると、質問にちゃんつける人がいるので、いつも質問すようか戸惑います
おかげで色々な問題を自分で解決できるようになりました
本当にありがとうございます
61 :
30:2007/05/28(月) 16:26:32 ID:pAImQaIB
じっゎ、ゎたし、ぉんなのこ。
ここのひとたちは、きっとぉんなのこが困ってると、気持ち悪く
てとりあしとり、ょぶんなことまで、ぉしぇてくるの。。ほんとうはきもちゎるぃのに・・
でも、きのょゎぃぉとこのこぁぃてだと、ばかみたぃにぃばりくさってるの。
そぅぃぅ、ぉとこの人って、かすょね。ゎたしのしょくばにもたくぁんいるの。そぅぃぅ、ぉとこのひと。
だから、かのじょもできなぃんだょ♥
まともな質問ならキチンと回答されるので大丈夫ですよ
>>37 空の配列とは$_POST = array();
>>41 これは$_POST = array("hoge"=>"");
print_rやらvar_dumpすればすぐ分かること
>>57 print_rやvar_dumpを使用すれば解決が早まる
↓
しかし質問者は改造だから使用できないという
↓
理由を聞く
もしかしたら勘違いかもしれないし、別の方法があるかもしれない
何かおかしいですか
回答者は質問者に対して逆に問いを発してはだめですか
質問者の要求に従ってロボットのように知識を出して検索して推測して答えを出さなきゃだめですか
>>58 いや、使えば?
新規作成でも改造でも使えばいいと思う。
何が障害なのか知らんが。
65 :
nobodyさん:2007/05/28(月) 16:28:23 ID:8Nb4gWX5
>>66 このスレは重複スレでテンプレもないけど、一言言わせてもらえば
「質問者は立場をわきまえろ」
暇そうだなw
ループ(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回も取込を行わなければなりません。
取込対象は大した容量ではありませんがやはり綺麗な処理とは言えないので、
どうにか一回取り込んで後は動的に変数値を置き換えたいのですがどうすれば宜しいでしょうか。
説明べたでスミマセンが宜しくお願いします。
70 :
67:2007/05/28(月) 16:31:27 ID:???
すまん66じゃなくて65宛てだった
71 :
nobodyさん:2007/05/28(月) 16:32:00 ID:8Nb4gWX5
>>66 お疲れ様です、みたいなことでも言って欲しかった?
こういう人いるから質問をしたくないんですよね
>>69 つかHTMLの雛形に変数を置き換える処理で
100回繰り返す必要性が分かんないんだけど。
>>71 「だから何?」って聞きたかっただけなんだけど
一体お前が何を言いたいのか解らない
聞くな答えるなって言いたいのか?
74 :
69:2007/05/28(月) 16:37:55 ID:???
>>72 今回は例ですので実際は○月の日別集計を表示する感じで日毎の雛形に集計結果を変数値として代入して返す風な処理です。
なので100回とか回数は飽くまで同様の処理を多数行う必要があるということをそれとなく表してるだけです。
<OL>
<LI>05/28(月) →$DAY
<LI>02:00 - 荒らしと遭遇 → $TIME[($LIST[$i])]
|
<LI>23:45 - 就寝
</OL>
こんな感じです。(実際は全然違いますが)
良いスレタイだよな 「書き込みやがれ」って
とりあえず書かせるだけで誰も答えないスレってどうよ?w
>>75 新参乙 Part10 辺りから既にこのスレタイだった希ガス
>>76 とりあえず書かせるけど答えられないスレ、で良ければ俺も参加するわww
>>74 情報を出し惜しみしないで実際の例で出してくれ
非常に理解しづらいし
抽象的な話されても実際に役に立つアドバイスが出せるか不明だし
つかまぁ俺だったらテンプレートエンジン使うけどな
>>78 書かせるけど答えられないスレ、では無いので参加しなくて結構です
>>77 ユーモアだよ、ユーモア
つまらなかったんなら謝る
どっちが本ヌレ?
83 :
69:2007/05/28(月) 17:09:34 ID:???
できるだけ今やろうとしてることを書き出してみました。
行数の関係で読みにくいですが、どうかご指南お願いします。
―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の利用も考えましたが、色んな環境で動くことを考慮して利用せずに組もうと思います
84 :
nobodyさん:2007/05/28(月) 18:13:09 ID:ni3tLdmG
PHPは最新のいれるべき?
86 :
通りすがり:2007/05/28(月) 19:44:58 ID:???
>>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>
87 :
通りすがり:2007/05/28(月) 19:47:53 ID:???
>>86 やはりずれた、、
<xmp>は無視してね
>>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;
}
で、いいじゃん。
>>88 >>86はどうか知らんが、純粋なOOPやってる人ならclassに入れるのはあたり前。
使う必要があるとかそういったことは手続き型脳の視点だから。
俺ならmainメソッドも書いて、最後にそれだけ実行するようにするけど。
91 :
通りすがり:2007/05/28(月) 23:07:30 ID:???
>>88 クラス化しておいた方が、メンテと拡張はしやすいと思ってるだけ。
ログやぶっこ抜いたhtmlに応じてテンプレートを切り替える時とかね。
>>90 理由も持たずに何でもクラスに入れりゃいいと思い込んでるならOOP脳だろ
例のクラスはオブジェクト設計的に何の意味も持ってないしクラスにした価値もない
よって
>>89のようにやるのが正解 (つーかロジック示せば十分だろ)
何でもかんでもOOPな手法を用いるのは本質的にOOPを理解していない証拠だろう。
94 :
通りすがり:2007/05/28(月) 23:25:53 ID:???
>>69 ま、俺の場合は、
>>予め外部ファイルに作っておいたHTMLの雛形の特定の場所に変数を置き換えて表示する処理にて、
ってな第一要件をふまえると、ループ内に直にひな形を書くのはNGだと思ったから。
んで、外部にひな形が有るすなわち、テンプレートは切り替わる可能性がある。と
だからテンプレート切り替えの処理はまとめておいた方がいいよなぁ。→クラス作っておくこうか
となると
95 :
nobodyさん:2007/05/29(火) 00:10:52 ID:7xq0Zk/P
>>83 smartyが使えない環境ってどんな環境?
って、このスレの常連みたいな意地悪な解答はおいといて
知ってるかもしれないけどsmartyなどPHPでできたテンプレートエンジンは
パスさえ通せば動くので、よほど特殊な環境じゃなければ
動かせるので、素直に使った方が楽だと思うけどなあ
>>92-93 全てをオブジェクトにしないと使えない言語だってあるわけですよ。
PHPしかやったことない人間は知らんが、
Javaしかやったことないような人間が、
中途半端OOPもできるPHPに移行してきた場合、
必然的に全てオブジェクトになってしまうだろ。
まあ、自分でメンテするなら作り易いやりかたでやればいいと思うが
ただ他人のコードを幾つかいじった経験からいうと
・ロジックが画面半分超える場合は分離してくれ
・Perl風に書くのだけはやめてくれ、つかPerlで書けよ
と思うときはある。
とりあえずヒアドキュメントでHTML書くのはやめてくれ、マジデ orz
helloかgoodmooningを表示するクラスの作り方は
PHP4とPHP5とでは記述の違いはありますか?
>>100 4の書き方にあわせれば当然5でも使える。
5から使えるようになった機能や関数があるから、
5の書き方をした場合、4で使えるとは限らないのもまた当然。
>>69 <H3>..</H3>
phpとは関係ないけど、htmlの「タグ」は小文字<h3></h3>で書く癖つけたほうがいいよ
<H3>..</H3>
いやいや大文字がいいよ
>>103 XHTML1.0以降HTMLタグは小文字で表記することが文法的に規定されている
XHTML強要するのもどうかと。
まあ強要はよろしくないわな。
俺は小文字で書くけど。
XHTMLは消えてHTML5.0になるんじゃないのか
108 :
nobodyさん:2007/05/29(火) 10:19:59 ID:nFUqZanj
今utf8で作ってるんですが
とりあえず確認したところではrequireやsession_startなどの行を入れて
ブラウザからソース見るとその部分に?が入っているのですが
これはいったいどういうことなのでしょうか?
htmlあってこそのphpだからな。
htmlの知識もある程度あったほうがよろしい。
phpもだんだん手続き型からオブジェクト型に変化してるように、
htmlも進化しているのさ。
時代に即した書き方を覚えるのもプログラマとしてはよい心がけだと思うぜ。
まぁhtmlの場合はブラウザに実装任せてるから滅茶苦茶でも動くんだけどね。
>>108 UTFの罠です。
UTF BOMでぐぐればおk
111 :
nobodyさん:2007/05/29(火) 10:55:15 ID:nFUqZanj
112 :
nobodyさん:2007/05/29(火) 11:56:20 ID:4MbNvczK
インデントが使えなくてソースが汚らしいとかそんな理由じゃないの?
staticとglobalってどう違うんですか
116 :
nobodyさん:2007/05/29(火) 12:56:15 ID:4MbNvczK
117 :
nobodyさん:2007/05/29(火) 13:03:50 ID:05UZMunq
class Hoge {
function __construct($mode) {
$this->{$mode}();
}
…
}
この{$mode}を__constructに渡した任意の文字列に置き換えて
そのメンバーmethodを実行したいのですが、可能でしょうか?
やりかたをおしえていただけますでしょうか?
118 :
nobodyさん:2007/05/29(火) 13:15:40 ID:xx8sT90w
/⌒`⌒`⌒` \
/ ヽ
( ノ⌒〜⌒〜⌒ヽ、 )
ヽ/ \, ,/ i ノ
| ≧ , ≦ |
| 、 ,,,,(、_,),,,, ノ|
ヽ ト=ニ=ァ /
\ `ニニ´ /´ ̄ヽ
/ ̄`┻━┻' '´- }
r' f{ _ノ癶_ ノ} /
/ ハ`l´/,ゝ' /,r‐-、 j
〈´7'{ V'´ '/ />’
`7 ヽ ヽ / / l | __ ,.- ._
/ ハ ヽ/ / ,ヽ/ ̄ /´¨'´‐、 `ヽ プッー
/ / 丶.,′ / ' /  ̄7 ヽ.、_ ', ´⌒`::`)
. ,' / ,' /! ,'ヽ \`7 ≡⌒;;⌒`)
/ / / / ヽ_ /、 / , ,' ::⌒`;; )
/ / / ハ ,イ、 `ヽ._/ .X / /
/ ./_ / ./ ` } }、ー- -'´ ,イヽ _,.イ
/ ,.-_ヽ〉、./ / / /l ` ′l,.-ヽ''´ ,'
ヽ `^_ヾ、 / 丶-、| _,ィ'´ ,'
`ーr_'二`._/ 「 ̄ l /
| | /
| ! /
| l /
l | /
>>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();
>>117 可変関数やりたいってんならそのままで動くと思うが。
ブラケットいらんがね。
あぁ・・・可変メソッドか。
何やりたかったのかはソース見ればわかるだろ。
ハッキリ言って、ここ解答者のレベルが低いんじゃないか?
ていうか、スキル以前に頭が悪い(藁
ほんと使えない。
ここ以外にPHPの質問板を紹介しろ。
>>124 ___ ━┓ ___ ━┓
/ ― \ ┏┛/ ―\ ┏┛
/ (●) \ヽ ・. /ノ (●)\ ・
/ (⌒ (●) /. | (●) ⌒)\
/  ̄ヽ__) / | (__ノ ̄ |
/´ ___/ \ /
| \ \ _ノ
| | /´ `\
127 :
nobodyさん:2007/05/29(火) 15:10:04 ID:6paIllMG
質問です。
ページの特定の場所にジャンプしたいとき、
<a href="#foge">
リンクの場合には、上記のようにしますが、
ボタンフォームの場合にはどうすればいいのでしょうか?
<form method="POST" action="#foge">
このようにしてもダメでした。
>>127 そもそもPHP関係ねぇ。
リダイレクトするスクリプトに飛んで、アンカー付けてあげれば?
>>123 値をセットしてゲットしてechoするだけのクラスを書いて117に対して何を言いたいのかさっぱり?
ほんと低脳という言葉がぴったりだな・・・
131 :
nobodyさん:2007/05/29(火) 15:16:01 ID:6paIllMG
>>129 すみませんでした。そちらできいてみます。
いちいち煽るほうが低脳だという事にいい加減気づけよ。
この時間帯はヘボ回答者と煽ることしかできない馬鹿しかいないから、
夜聞くといいよ。なんせニートが元気な時間帯だからな。
目糞鼻糞を笑う
134 :
117:2007/05/29(火) 15:33:03 ID:05UZMunq
度々すみません。
>>121さんの言うとおり、可変メソッドがやりたいのです。(言葉を知らなくて的確に説明できませんでした)
ですので、
>>119さんのでは意図した動きをしません。(ありがとうございます)
調べてみると、
$val = 'hoge';
$this->$val();
これはできるようなのですが、(試してはいません)
$val = 'hoge';
$this->Method$val();
これはできないのでしょうか?
ブラケットをいれてもパースエラーになります
136 :
nobodyさん:2007/05/29(火) 16:32:41 ID:dXtsAnsD
質問です
今、ユーザー登録のフォームを作っていますが、
入力された情報をテキストに保存するかデータベース(mysql)に保存するか迷っています
レコードの取得や削除を考えれば圧倒的にデータベースが有利ですが、
テキストのメリットは何があるのでしょうか?
フォームに自由記入欄があったあっとして、そこで全角200文字くらい打ったりする人がいる場合、
それはテキストに保存した方がよかったりしますか?
137 :
虚弱PHP:2007/05/29(火) 16:39:41 ID:???
>>134 $val = 'Method'.'hoge';
$this->$val();
ってこと?
>>134 $val = ''hoge';
$this->{'Method' . $val}();
>>132 煽りではない。分かってない奴に対する単なる指摘。
お前みたいのが頭の悪い煽り。
能力ないならもっと謙虚になれ。
>>136 データベース使うべし
>>134 その説明ではどういうことをしたいのかわからないが、
>>117でやりたいことはマニュアルに書いてる通りでできるはず。
>>136 テキストのメリットなんてDBが使えない鯖でも動くとか、
セキュリティにDBほど考慮する必要がないってことぐらい。
DBがどういう目的で作られたかを考えれば、
DBがテキストよりもあらゆる面で優秀なのはわかる。
何より楽だからね。あえて難しい道を進みたいならテキストで。
>>138 $val = '';の間違いかな。
その場合$valがメソッド名だからいらない気もするけど。
>>139 どうみても煽りだろ。煽りじゃなくて指摘とか言い分が馬鹿すぎる。
ていうか何だその回答は。簡単な質問にどうでもいい答えしやがって。
偉そうなこといっといてヒドイなこれはwwwwww
141 :
nobodyさん:2007/05/29(火) 17:22:57 ID:dXtsAnsD
142 :
138:2007/05/29(火) 17:25:06 ID:???
>>140 違うよ、
>>134が意図してる動作は$valの文字列と
'Method'とを連結させた名前のメソッドをコールしたいってことだろう
>>140 荒らすな。煽るな。下らない書き込みは慎め。お前が一番ウザい。
>>142 なるほど。漏れは型指定でもしたいのかと思ったわ。
連結演算子がわからないような質問者とは思えないんだけどね。
>>143 お前はただの煽り馬鹿だと思っていたが、
ヘボ回答者でもあったから煽りたくもなるわwwww
にほんごの ほうそくが みだれている
146 :
69:2007/05/29(火) 17:43:05 ID:???
皆さんレスありがとうございます。
全レスしたい位ですが、要所レスにて割愛させて頂きます。
>>86 サンプルまで書き起こして下さいまして大変分かりやすいです。
ただ、当方所謂php4までの書き方しか身についておらずオブジェクト指向なのは取り扱った事がなかったりしています。
良い機会なのでclassでの書き方に挑戦してみようと思います。
HTMLタグに関しましてはXHTMLが小文字を推奨していることは把握していましたが、癖でつい大文字表記してしまいました。
今後どっちに転ぶのか分かりませんがとりあえず小文字の癖をつけようと思います(後はスラッシュも)
結局のところ当方がやろうとしていることはclassで指定するか、或いはfor内にぶち込むしか無いという事でしょうか。
>>83で書いたのは噛み砕いた感じでして実際は10-15行程度ですのでメンテのし易さを考慮してロジックとデザインを分けて処理しようと考えておりました。
ちなみにSmartyを使わない理由はphpバージョン云々より処理速度が低下するのを懸念して避けました。
宜しくお願いします。
147 :
nobodyさん:2007/05/29(火) 17:49:51 ID:TCS52xeP
RSS2.0と1.0に対応したsimplexmlのサンプルってありませんか?
素直にPEAR使ったほうがいいのかな?
>>147 simplexmlでRSS出力したいってこと?
まぁsimplexmlはやめたほうがいいよ。
出力されたソースみたら萎えるよきっと。
149 :
nobodyさん:2007/05/29(火) 17:58:30 ID:TCS52xeP
>>148 うんたしかに・・・
そしてRSSの種類の多さに泣きそうになった。
PEARのXML_RSSを使うのが一番無難ですか?
XML_RSSは出力なかったきがす
151 :
通りすがり:2007/05/29(火) 18:07:19 ID:???
>>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]);
}
ってやれば、ファンクションだけでもできるっしょ
テンプレートに変数直書きするのではなく、置換用文字列を与えておけば、
いいってだけだから。
RSSなんてMSとNNのブラウザ戦争みたいできらいよっ!
Atomにしなさいよっ!
根本的に用途が違うものじゃねーか
155 :
nobodyさん:2007/05/29(火) 18:36:48 ID:TCS52xeP
RSS2.0と1.0とAtomが読めてキャッシュできるPHP・・・
難儀だなこりゃw
156 :
69:2007/05/29(火) 18:54:35 ID:???
>>151 なるほど!レスありがとうございます。
そんな方法があるとは思慮が及びませんでした。
とりあえずはそちらの方法で実装して、追々class指向の書き方のスキルが備わったら改めて前述の方を試してみます。
アドバイスありがとうございました。
157 :
nobodyさん:2007/05/29(火) 19:08:00 ID: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を毎回呼び出すみたいな・・・
>>157 mysql_pconnectで持続接続を確立して閉じない。
あとその気持ちの悪い関数定義は何なんだ。
>>157 状況がよく分からんな
そら、mysql_connect() がスクリプト内で
一度も呼ばれずにmysq_close() が呼ばれれば
当然失敗するだろう
160 :
nobodyさん:2007/05/29(火) 19:22:40 ID:GuBB/5Uv
>>158 あ、そんなのがあるんですか、これ閉じたい場合はどうしたら閉じれるんですか?
>>159 いやいや、言いたいのはそこじゃなくて、戻り値として受け取っても
mysq_closeに渡す時には値が消滅するからどうしたらいいでしょう?ってとこなので
>>160 閉じる必要が無い
そもそも一体何がしたいのか理解不能。
何で別プロセスで開いた接続を閉じる必要がある?
>>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);
}
}
}
163 :
nobodyさん:2007/05/29(火) 19:33:11 ID:GuBB/5Uv
>>161 PHPに馴れている人には理解不能かと・・・
PCソフトばかりやってるとこのPHP等の処理の流れに戸惑ってしまって・・
ボタン押したらまた自分(他)を最初から呼び出してとかこれ慣れが必要だなあと、
んで、何がしたいかといいますと
例えばボタン1を押すとDB接続、ボタン2を押すと閉じる、
そして、ボタン3を押すとAテーブルの内容を表示、ボタン4を押すとBテーブルの中身を表示・・・と
そもそもこういうやり方自体が普通しないのかなと・・・
ボタン1を押したら接続→テーブルA表示→閉じる
ボタン2を押したら接続→テーブルB表示→閉じる
こういうほうが一般的ですか?
165 :
nobodyさん:2007/05/29(火) 19:36:23 ID:GuBB/5Uv
>>162 うは、それですそれです!!
そういう記述が全くの無知でして、上でアホみたいな書き方をしました・・
あーこれめちゃくちゃ参考になります。
ありがとうございます。
その前にクラスの勉強しないと・・・
166 :
nobodyさん:2007/05/29(火) 19:39:19 ID:GuBB/5Uv
>>164 えええええ!
>>162さんはNoと・・・
でも毎回するのは一番簡単だけど、コードが増えますよね
更に接続→表示→閉じるを鬼のように繰り返してもいいのか疑問ものこります
PEAR使ってて良かったことってありますか?
168 :
167:2007/05/29(火) 19:45:00 ID:???
誤爆しました 失礼
>>166 どういうことしたいのかちょっと理解できないなぁ。
>>163はボタン1を押したら接続→テーブルA表示→閉じるで処理が完結してるでしょ。
それともまだその後に他の処理をしたいのなら、
結果セットだけを開放して(mysql_free_result )、新たな処理をするっていう感じになる。
170 :
nobodyさん:2007/05/29(火) 19:55:53 ID:GuBB/5Uv
>>169 いやいや、最初にやろうとおもったのは、
ボタン1を押すとDB接続
ボタン2を押すと閉じる、
ボタン3を押すとAテーブルの内容を表示
ボタン4を押すとBテーブルの中身を表示
これはようするに、1押して接続してから、3押したり4押したり5,6押したり(書いてないけど)
んで、散々テーブルをみたあとに最後に2を押して閉じるとしたかったのですが
こうすると、コネクトしたときの戻り値をcloseに渡す方法がわからなくて・・・
んで、
接続→テーブルA表示→閉じる
と、常に毎回やるのが一般的なのですか?とお尋ねしました
171 :
nobodyさん:2007/05/29(火) 20:01:07 ID:GuBB/5Uv
ほんと馬鹿ですんません・・・
PCソフトの場合はDOSならmain内から終わるまで抜けないので
ローカルでも値を保持してるし、Windowsの場合はグローバルを使うので
ソフトが終了するまで保持していられるんですが、
PHPとかWEB系の場合はちょっと勝手が違う感じで初歩的なとこで悩んでしまって・・
ごめんなさい、勉強不足です、はい。
>>170 それなら
open
if ($_POST['button1']) {
Queryおくって結果取得
結果表示
}
なんていう条件が続いて
close
>>163 Windowsアプリケーションでも意味不明。
一回何らかのボタンを押し、別のボタンを押すという処理でも、プログラムが再起動されるわけではないだろう?
本質的にプログラムの処理手順を勘違いしてないか。
174 :
nobodyさん:2007/05/29(火) 20:13:57 ID:GuBB/5Uv
>>172 それすると、なにかボタンが押される度にまたopenから走ったりしないんですか?
うーん、僕たぶんかなりとんちんかんな質問をしてた希ガス
>>173 僕はボタンを押したら
<form action=$ScriptName method=POST>
こんなんで、また自分を呼び出すとおもっていて、メインが何度も呼ばれるみたいなイメージがあって・・・
ちなみに、
>>173さんはWindowsソフトもPHPも全く同じ理屈でコード組んでますか?
175 :
nobodyさん:2007/05/29(火) 20:17:40 ID:GuBB/5Uv
だめだ・・・
根本が間違ってる・・・
PHPではなんとなくしょぼい掲示板つくったりしただけで
動きをまったく理解してないみたいだなあ、勉強してきます・・・
っていうか、皆さんめちゃくちゃ親切ですね。
そんなわけで勉強してきます。
またわからないことがあったら教えてください。。。
ありがとうございました
177 :
nobodyさん:2007/05/29(火) 20:41:06 ID:queQBOHY
PHP学ぶように会社から言われました。
プログラムを打ち込んで、その結果を表示させたいのですが
Webサーバーを使用せずにPHPって使用できますか?
>>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());
}
続く
続き
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作ってください。
180 :
178:2007/05/29(火) 20:49:26 ID:???
続き
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作ってください。
181 :
178:2007/05/29(火) 20:50:30 ID:???
ああああああああああああああorz
Firefox使ってたせいで間違ってもう1回送信してしもた・・・
専ブラにしよう・・・
スレ汚しsorry
訂正
if (!$link || !$dbselect) {
dir(mysql_error());
}
dirじゃなくてdieね・・・
>>177 ローカルに環境を構築してください。
最低でもPHPはインストール。
ちゃんとした動作を検証したいのならApacheも入れてください。
DBを使って開発するのであればDBも入れてください。
XAMPPでぐぐると幸せになれるかも。
183 :
nobodyさん:2007/05/29(火) 20:55:41 ID:queQBOHY
>>182 ありがとう!
今までC言語とC#しかしたことがないので
これから大変お世話になりますのでよろしくお願いします。
184 :
nobodyさん:2007/05/29(火) 21:50:25 ID:HenTyugE
最近連日のようにリロード攻撃を受けて、
DBサーバーがダウン(コネクションオーバー)するのですが、
php側で防ぐ方法で、有効な方法を教えて頂けますか?
ちなみに、レンタルサーバーです。かなり困っています。
>>184 アプリケーションレベルでは下手に対応しない方が寧ろいい。
DoSアタックの対応はもっと下位のレイヤでやるべき。
DBでどういう処理してるかによるけど、
html化しても問題のないようなものなら、
html化すればいいと思うけど。
187 :
nobodyさん:2007/05/29(火) 21:59:36 ID:KHJlG38T
$somarray = array(
"abc"=>array("123"=>"456"),
"cde"=>"789",
"fgh"=>("hij"=>array("xyz"=>"10",array("foo"=>"bar"))
);
のような任意の連想配列で、fooを検索キーにして、
foo->hij->fghの並びを取得できる関数で適切なものはありますでしょうか?。
foreachを使うにしてもそれを補助的に支える関数を探しているのですが。
188 :
nobodyさん:2007/05/29(火) 22:01:22 ID:HenTyugE
>>185-186 早速の回答ありがとうございます。
>>185 レンタルサーバー(xrea)のため、なかなかそこが対応できないんです。
できれば、アプリケーションレベルで対応できればと思うのですが。
専用サーバーならいいのかもしれないのですが、運用経験がないので逆に危険かと思いまして。
>>186 動的に生成しないとホームページとして成り立たないものなので、
それも難しいのが現状です。すみません。
>>188 どうせ串経由なんでしょ?だったらBBQとかではじけばいいんじゃないの?
190 :
nobodyさん:2007/05/29(火) 22:11:57 ID:HenTyugE
>>189 いやぁ、それが串でもないんです。
串は、リストを作って独自プログラムで弾いているのですが、
普通のプロバイダーのIPからやられます。
日によって違うプロバイダーなので、違う人からなのかも。
政治とか教育とか意見が対立する掲示板を運営しているので、
論破された奴が荒らしているのかと。
リロード攻撃されると、暫く接続エラーになってサービスがとまって、
そのたびにサービスがとまっていると苦情のメールが。ほとほと疲れます。
ふむ。
じゃあsessionつかって、同一IPからある一定時間内($range_time)に複数回($reload_count)以上の
reloadがあった場合は、<なんかする>、みたいな感じでいいんじゃないの?
DBアクセスがボトルネックなんだったら、<なんかする>=キャッシュだけを送信する、とか。
結局、実装は、運営policyによるでしょ。
>>190 サーバまわりを強化しJava+Oracleで書き直す。
というのは冗談だけど、
そのコンテンツじゃPV多そうだし共有鯖だとかなり負担かけてるんじゃない?
ユーザより先にレンタル先に捨てられないように気をつけておくんなまし。
>>188 アプリケーションレベルでの対応は逆効果なんだよ。
XREAに通報したら何らかの対応はしてくれるんじゃないか?無料なら知らんが。
XREAスレ見てるのかな
最近200番台後半の鯖で中国からのアタックがあったよ
上位回線レベルで対策したそうだ
195 :
miu:2007/05/30(水) 00:51:31 ID:EHTzgQl2
iframeの中を(srcを)httpsのページにしています。
この中でセッション変数を使いたいのですが、
うまく値を引継げません。
session_id()を確認すると、ページごとに異なる値が
返ってきています。
なにか、セッション変数を使うための方法・設定というのはあるのでしょうか?
よろしくお願い致します。
TEMPORARYテーブルとか業務で使ったりする人います?
DDoSて古典的な方法の癖に未だにPGを悩ませがちだよね。
さくらの専用鯖みたいな安い専用借りてiptableで弾くとかはどうだろ。
XREAは過負荷になってもちょっと生暖かい目で見ててくれるけど他のユーザはその間しわ寄せ受けてる希ガス。
198 :
nobodyさん:2007/05/30(水) 03:55:42 ID:U6fy+t+P
質問です
同じ結果なら、
実行速度が遅い・重いプログラムより、速い・軽いやつがいいとは聞きますし、私もそう思いますが、
実行速度を数値化したりするなどして確認する手段はありますか?
>>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>
>>198 前スレらへんで誰かが開始時刻と終了時刻を取れば良いって言ってたよ
201 :
nobodyさん:2007/05/30(水) 09:09:58 ID:Hm83KMHn
質問をふたつほどよろしいでしょうか。
アクセスしてくる者全員が共有できるような変数って作れますか?
Aさんが1を代入したらBさんにも1になるような。
テキストファイルを使わないとだめなのかな。
それから、サーバ上のファイルを自由に編集する画面があるのですが
ひとりがそのページを開いている間は
次に来た人には、ただいま混みいっています、のような画面を表示させたいのですけど
スマートなやりかたってないですか?
ふたつともセッション使え
アクセスカウンターCGI探して中身見てみれば>201
>>201 まるでwikiみたいだな。
ただあのソースを読めというのはちょっと酷か・・・
205 :
201:2007/05/30(水) 10:11:34 ID:Hm83KMHn
>>202 セッション変数って、ひとりの人間が複数のページで共通に使える変数じゃないのですか?
>>203 うーむ、なんとかPHPだけでできないかなぁ。
すみません初心者で・・・
206 :
nobodyさん:2007/05/30(水) 10:15:34 ID:vB5BZnM8
ヘルプミーです。
フォーム送信で、textareaに入力したテキストで、クオート(')・ダブルクオート(")が
自動的にエスケープ(\)されるんだけど、これってphp.iniの設定が関係ありますか?
(POSTの値が自動的にエスケープされるなんてことはあるの?)
208 :
nobodyさん:2007/05/30(水) 10:39:50 ID:vB5BZnM8
>>207 早速のレスポンスTHX!! あいしてるぜー
>>205 >セッション変数って、ひとりの人間が複数のページで共通に使える変数じゃないのですか?
ちがう。マニュアルよめ。
211 :
nobodyさん:2007/05/30(水) 13:56:24 ID:QPYqKYGN
textarea内にユーザからの入力を表示する場合、タグは無効になりますよね。
それでもhtmlspecialcharsは必要ですか?javascriptなんて実行されないっすよね危険はないですよね。
ある
>>211 </textarea>って入力されてたらどーすんのよ
214 :
nobodyさん:2007/05/30(水) 14:05:44 ID:UUvKwXeJ
すみません、昨日の基地外です
>>178-181 ありがとうございます。
これは毎回 接続→テーブル表示→閉じる 方式ですね。
やっぱりこの方法が妥当なんでしょうか?
>>214 用途によるとしか言えない。
ただテーブルを表示するだけならその方法でいいんじゃない?
217 :
nobodyさん:2007/05/30(水) 14:39:32 ID:UUvKwXeJ
>>216 確かにそうですね。
やろうとしてることはそれだけなので、この方法でいきます。
ありがとうございました
218 :
nobodyさん:2007/05/30(水) 14:43:51 ID:QPYqKYGN
ある文字列を2進数にして、また文字列に戻すというのはできますでしょうか?
できまsんよ
>>218 文字列を2進数に、を具体的に説明してくれ
文字列"hoge"は何に変えればいいんだ
221 :
虚弱PHP:2007/05/30(水) 14:53:32 ID:???
>>214 ひとまずPHPというよりHTTPの勉強はしておいた方がいいと思う。
1リクエスト1レスポンスが基本。
もちろん応用はあるけど、基本からどうぞ。
222 :
nobodyさん:2007/05/30(水) 14:57:23 ID:QPYqKYGN
文字列を0111010101みたいに変換したいのですが、それは関数を使って実現しました。
ただ、2進数を文字列に変換するというのが何の関数を使えばいいのかわからないです。
やっぱり
>>219さんの言うとおりできないんですか?
223 :
nobodyさん:2007/05/30(水) 15:16:08 ID: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>
日本語でおk。ついでにソースそれなに?
phpとまったく関係ない件について
unset
227 :
nobodyさん:2007/05/30(水) 15:36:00 ID:6H++tvOC
みなさん、PEARやフレームワークの使い方ってどうやって勉強しました?
俺はこうした、普通はこうするぞ、という意見をお教えください
自分の作りたいソースは何とか書けるけど、PEARのようなものはまったく使ったことがないレベルです。
2ちゃんで罵倒されながら勉強してきました
ちんたらしてないでさっさと答えろクズドモ
230 :
nobodyさん:2007/05/30(水) 15:50:21 ID:s13+ZS2Y
>>228 うーん、なるべくなら人の迷惑にならない方法が好ましいですよねw
もう十分におかけしてしまった気がしますが・・・
どうやって勉強しましたって・・・
中学生でもできるようなスクリプト言語だぞ・・・
ぶっちゃけ
PHP勉強しても意味ねーぞ
ちょっとマニュアル読んだら簡単に何でも作れるようになるし
JAVA勉強したほうが100倍いい
C#やれC#
Rubyがいいと思います
信者わいてきたなw
235 :
nobodyさん:2007/05/30(水) 16:18:15 ID:s13+ZS2Y
じゃあ何をやりたいかを先に言ったほうがいいな。
その関連のPEARライブラリを愛でる様にソース見ながら使っていくというのが
地道でいいんじゃないの?
誰かに背中を押してもらう事で安心し、責任を放棄するタイプだよ彼は
238 :
nobodyさん:2007/05/30(水) 16:25:30 ID:s13+ZS2Y
>>236 うーん、やっぱりそれしかないんでしょうか
それが王道なのはわかってます 近道はないのかなぁ
>じゃあ何をやりたいかを先に言ったほうがいいな。
何が出来るかもわかっていない状態なので、やっぱりちゃんとソース読んでみますね
>>237 言い過ぎっすよwww
>ちょっとマニュアル読んだら簡単に何でも作れるようになるし
これは悪いことなのか
240 :
190:2007/05/30(水) 16:37:07 ID:m2uLNJ+I
>>192>>193>>194>>197>>199 返事が遅くなってすみません。
教えて頂いたセッションで弾く方法でやったところ、
うまくいきました。
確かに、この方法だとデータベースの接続前で弾くので非常に有効ですね。
又、今まではログをみてアクセス拒否していたのですが、
リアルタイムで悪さしているIPを拒否できるので非常に助かります。
>>199さんのソースを参考に、悪さをしているIPには、ネットで仕入れたグロ画像を
デカデカと表示させて、怖くて二度と来させないように心理的作戦も実装しました。
今まで、毎日毎日アクセスログとにらめっこする手間が無くなって助かりました。
xreaに有料で利用しているのですが、サポートがイマイチなのでそこまで対応してくれないので、
いずれは、専用サーバーで運用できるようにがんばります。
色々とアドバイスどうもありがとうございました。
241 :
237:2007/05/30(水) 16:50:14 ID:???
ごめんwwwいいすぎました
>>222 つまり、その文字列の二進バイナリ文字列表現を元の文字列型に変換したいってことかね。
バイトのバイナリ表現つってもいろいろあるぜ。
もともとのパック方法が分からんことにはエスパー降臨まで待つしかない。
>>240 >ネットで仕入れたグロ画像をデカデカと表示させて、
xreaにみつかったら怒られますよ^^;;
いつのまにかこっちがくだ質のメインなのな
>>238 まぁ、エロだな。
ただ、組み方間違えると、相手に非常に迷惑掛けるので諸刃の剣だが。
>>205 マニュアル嫁といいたいとこだが、
初心者にマニュアルは厳しいと分かっているので特別にヒントをやろう。
二つ目の問いに関していえば、
アクセスした時にセッションになんらかの固有の値を入れる。
アクセスが終わったら、消す。
セッションにその固有の値がなかった場合はアクセスさせる。
fopenでcsvファイルを開いて、fgetcsvで読み込んで、print_rで表示させる、
ということをやっているのですが、各フィールドの先頭の文字がおかしくなります。
「学校」→「w校」みたいな感じで。どうなっているんでしょう。
ちなみにスクリプトはutf-8で書いており、csvファイルはShiftJISのはずです。
おわかりの方、教えてください。お願いします。
> ちなみにスクリプトはutf-8で書いており、csvファイルはShiftJISのはずです。
釣りか?
>>249 いえ、そのつもりはないんですが。なにかとんでもない勘違いを
していますでしょうか。
251 :
250:2007/05/30(水) 20:51:58 ID:???
21時までにおねがいします。次にすすまないので
252 :
250:2007/05/30(水) 20:53:48 ID:???
>>251は私の発言ではありません。全然急ぎません。
>>248 fgetcsvは文字コードの変換処理をしない
かつSJISに対応してないよん。
>>253 そうなんですか!調べて修正してみますね。ありがとうございます。
255 :
250:2007/05/30(水) 21:05:54 ID:???
すみません、急ぎはしないのですが、できれば今日中に片付くと嬉しかったりはします。
256 :
250:2007/05/30(水) 21:20:56 ID:???
さっきから変な人がいますが、
>>255も私ではありません。
また分からなかったら聞きに来ますのでお願いします。
夜は偽者だるいから消えていいよ。
やるなら昼間やってくれ。
あと質問者もID出せ。こういう馬鹿が沸くから。
>>241 いえいえ、結果的にはそんな感じになったので、あなたのおっしゃるとおりでしたよwww
>>246 さっそくソース読んでました
まさかそんな嬉しい言葉を言ってもらえるなんて思ってもいなかったので、感激です!!
みなさん本当にありがとうございました
259 :
250:2007/05/30(水) 21:53:17 ID:QPYqKYGN
>>257 ガタガタうるせーなっ!!!
指図するなっ!!!!!
ヘボ回答者のくせに何様だ!?コノヤロウ!!
ID出してやったから回答即よろ
>>259 ha?
質問している分際で、何言っているの?
2chに何期待しているわけ?自分で調べれば?
261 :
nobodyさん:2007/05/30(水) 21:57:50 ID:QPYqKYGN
ここは質問スレなんだけどっ!!!
答えたくないならくんなヘボ回答者!!
262 :
260:2007/05/30(水) 21:58:49 ID:???
>>260 >2chに何期待しているわけ?自分で調べれば?
その通り
質問者は自分の置かれている状況をわきまえろ
264 :
nobodyさん:2007/05/30(水) 22:01:17 ID:QPYqKYGN
答えられもしないくせにえらそうにwwww
昨日も今日も明日もおまえらだって質問してんだろ?wwwwwww
なにを回答者ぶってんの?wwwwww
ちょうしこいてんじゃねーよ、わらっちゃうねwwwwwwwwwwww
このスレほど強制ID表示になったら面白そうなものは無いな
わざとID出して釣る奴もいるからな
ルータいじればコロコロIPかわるから、
あまり効果はなさそうだけどな。
DOSコマンドから、
ipconfig /renew
と打てば、DHCPサーバーからのIPアドレスがリフレッシュされて新しいIPアドレスが割り振られるよ。
そうすれば、IDも変わると思うけど。
arrayってなんだよ
とっとと教えろカス共
>>269は、私ではありません。
宜しくお願いします。
>>272は私ではありません。
こちらこそ宜しくお願いします。
arrayもわからないカスはPHPやらなくていいです。
PHP以前の問題だろww
PHP以前の問題でもない。
プログラム言語を始めてやる人間にはarrayも始めて。
PHPがはじめてのプログラムだった場合その人間にはarrayも始めて。
ただarrayとか基本型は教科書でいう2.3ページに書いてる事項なので、
ここでそれが何?とか聞くやつはマニュアルも読めない阿呆。
まあ、arrayだな
おあとがよろしいようで
PHPスクリプトの中でerror_reportingやdisplay_errorを
弄れた気がするんだけど、php.iniじゃないと無理かな?
昔できた気がするんだけど、今やり方が分からない。
気のせいだったかも・・・
鉄array
282 :
nobodyさん:2007/05/31(木) 01:03:04 ID:5QX9Xbht
283 :
nobodyさん:2007/05/31(木) 01:06:57 ID:j+g2vXuB
eclipseでPHPの開発環境作りたいのですが、検索しても古い記事しかなくて
どなたかご指導ねがいます
PHPのプラグインなんていくつでもあるだろ。
好きなプラグイン見つけてfeaturesとpluginフォルダにぶち込めばおk
>>282 なんてわかりやすい説明w
>>283ではないが、実際にプラグイン使ってる人いたら何使ってるかと利点も教えて欲しいな
>>285 PDT 0.7.0 +Aptana CSS/HTML/JavaScript + Zend デバッガ(糞)
これでおなか一杯。使いこなせん
289 :
285:2007/05/31(木) 02:56:57 ID:???
>>288 え、PDTとAptanaってうまく動作する?
Aptana + Eclipse PHPやってみて 俺全部試したけど、Aptanaの機能を殺さずに動くのはこれだけだった希ガス
windows Eclipse 3.2.2で普通に動いてるけど?
291 :
nobodyさん:2007/05/31(木) 11:46:56 ID:CptwN5p9
こんにちは
SQLから
2007-05-31 10:12:28
と引っ張ってきた日時がありまして
05/31 10:21
と表示するには
どういった関数が最適なのでしょうか?
>>291 substrで「05-31 10:12」だけ切り取って、
strreplaceで「-」を「/」にすればいい。
>>291 TIMESTAMP型だろうけど、
始めからCHAR型で05/31 10:21というデータを入れればいいのでは?
>>291 くれぐれも玄人ぶってdate関数みたいな激重の関数を使わないようにな。
>>290 Aptana自動補完よりPDTの保管が優先的に働かない?
もっかい設定見直してみるわ 情報サンクス!
SQLの出力を変える
>>295 おいおい、いつの時代のPC使ってんだお前さんは?
>>296 スレ違いだから他所でやれや
>>297 そういう中途半端なわけのわからんこと言わんと黙っとれや
>>298 なんか言いたかったんだよな?
300 :
nobodyさん:2007/05/31(木) 12:53:06 ID:B+7WuiH9
300げと 〜〜〜>(≧∀≦)これからも趣味で楽しいプログラム。
プログラム(笑
語尾に(ぉとか(笑とかつけるやつって殴りたくなるよね
>>302 殴っちゃだめだろ
俺の場合は"見たこと"自体を記憶から除外して済ますよ
お前の人生そればっかりだろ(藁
絶対こういうレスつくと思ったwwwwwwwww
306 :
nobodyさん:2007/05/31(木) 14:28:24 ID:CptwN5p9
>>293 それはちょっと…
>>294 データベースの時点で削ってしまうといざという時に…
>>295 重くないですよね?
>>297 month関数とか別に結果出力してからって事ですよね?
なるべく一文のSQLを実現したいです
307 :
虚弱PHP:2007/05/31(木) 14:33:27 ID:???
>>306 >>297の対処法だけど、例えば、MySQLならDATE_FORMAT関数とかあるよね。
select文の取得カラムのところに書くだけだから、一文だと思うけど?
>>307 select * でやってたんで フィールド一個ずつにすればよかったんですね(汗
最近こんなパターンが多い。
ID表示で質問する。
ついた回答にID無しで文句言う。
ID表示で真面目に答える。
PEAR:DBという選択肢はないの?
312 :
nobodyさん:2007/05/31(木) 15:49:36 ID:BDY8A6/X
str_replaceで引用符をエスケープするにはどうすれば良いんでしょうか?
$hoge = str_replace("<html lang="ja">", "<html>", $hoge);
でエラーが出たので、
$hoge = str_replace("<html lang=\"ja\">", "<html>", $hoge);
で試してみたのですがダメでして。
>>312 どうみてもあってる。
どうダメだったのか詳しく
前の行を閉じ忘れてるに一票
316 :
nobodyさん:2007/05/31(木) 16:10:28 ID:BDY8A6/X
>>313 返答ありがとうございます。
いずれも、
Parse error: syntax error, unexpected T_CLASS in /home/hogeuser/www/test.php on line 20
とエラーが返ってきます。
317 :
nobodyさん:2007/05/31(木) 16:12:01 ID:BDY8A6/X
レスしている間に書いてくださった方々、ありがとうございます。
>>314 確認しました…が、閉じております。
>>315 遅れましたが、書かせて頂きました。
まずはシングルクォーテーションて括って単純化してみては。
//$hoge = str_replace("<html lang=\"ja\">", "<html>", $hoge);
とかでコメントアウトしてみれば?
違うところが原因ならそれでもエラー吐くだろうし。
あとはその書式で大丈夫なのか最小単位切り出してチェックしてみればいい。
シンタックスエラーかよ、、、
320 :
nobodyさん:2007/05/31(木) 16:26:02 ID:BDY8A6/X
>>318 有難う御座います!
似たような処理を1つずつコメントアウト前の方の行でミスをしておりましたorz
>>319 あほらしいエラーでしたか?変な質問で申し訳ありませんでした、気をつけますorz
答えてくださった皆さん有難う御座いました。
今度からエラーが出たときは別の行もさかのぼって探してみます、お騒がせしてすみませんでした。
321 :
nobodyさん:2007/05/31(木) 16:40:54 ID: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を調べているのですが、
どなたかご存知でしょうか?
よろしくお願いします。
早く教えてください
Liteじゃ無きゃいけない理由はあるの?
複数の環境に同じXAMMPPを入れたほうが解決が早い気がするけど・・
>>321 それぞれの環境に同じバージョンのapache php mysqlを入れるなり
インストーラを持ち運ぶなりすればいいじゃん
ネカフェ難民?
326 :
nobodyさん:2007/05/31(木) 17:37:13 ID:hXhMR7Vu
pear db はデフォルトではいってない上mdb2に統合
327 :
虚弱PHP:2007/05/31(木) 17:53:53 ID:???
>>311 特に困る事はないと思うのでPDOに移行した方がいいんじゃない?
PDOの方がパフォーマンスも上だし。
もうずっと人大杉
329 :
nobodyさん:2007/05/31(木) 18:57:25 ID:B+7WuiH9
VistaってPHP環境おk?
聞く前に使ってみろ。
>>329 マイクロソフトが30日間無料の英語版VistaのVPCイメージを無料で配布してるよ
やった後に報告よろ
332 :
nobodyさん:2007/05/31(木) 20:07:27 ID:2Z3X/v1G
$xが0〜50の間だと
if($x >= 0 && $x <= 50)
だけど
if( 0 <= $x <= 50)
こんな感じに簡単にできる方法ないかな?
>>327 4系だとpdo使えなかったりするウチの近所の事情
かといってMDB2は情報が少ないので結局DBをホイホイと使ってしまうのさ
>>332 下にするような必要性がないのでないです。
>>334 SQL には、between なんてものがあるぐらいだか必要ないわけじゃないけど、
必要度は低そうだし、文法がややこしくなりそう。
SQLは特殊だからなぁ
どっちかというと直感系なプログラムだし。
SQLとCOBOL辺りはそういう文法好きだよね。
文系的な言語設計だと思う。
FORTRAN由来のC・PHP・Java辺りじゃなかなか採用しない。
>>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))
とか?
>>338 > if($min > $max) list($min, $max) = array($max, $min);
こんな余計な動作はいらんと思う。
あと昔から、return condition ? TRUE : FALSE; って書く奴は、
どっか抜けてるんじゃないかと思ってるんだけど。
なんで素直に return condition; って書かないの?
あと40、50年で世界の熱帯雨林消滅するらしいよ
342 :
nobodyさん:2007/06/01(金) 00:49:39 ID:4yZmbPpg
そのURL見ると中身無いんだが・・
Operaで見たら構文エラーが出た。
XML の解析に失敗しました: 構文エラー (行: 25, 文字: 78)
元のファイルに問題があると思ふ。
そのxml&使っちゃってるYO
よくある、よくある
あるあるw
348 :
nobodyさん:2007/06/01(金) 01:46:55 ID:4yZmbPpg
スクリプト側で何とか処理できませんか?
つextends
350 :
nobodyさん:2007/06/01(金) 02:50:46 ID:4yZmbPpg
>>349 お手数ですが、サンプルコードをお願いしますm(__)m
つ市ね
352 :
nobodyさん:2007/06/01(金) 05:21:30 ID:Wi7GJ0Xe
Foo::bar();
abstract class Baz
{
public static function bar()
{
// ここで Foo の値を取りたいんですがどうやれば良いんでしょうか
}
}
class Foo extends Baz
{}
353 :
nobodyさん:2007/06/01(金) 06:12:26 ID:JTjp1lWk
やってみたけどstaticだとできなかった
>>352 親クラスが子クラスのメンバを呼び出すべきではないし、
親クラスが子クラスを前提に組まれるべきではないかなぁ。
355 :
nobodyさん:2007/06/01(金) 08:04:04 ID:39E81ppx
子クラスでメンバ変数を書き換えれば?
Foo::bar();
abstract class Baz{
var $Foo;
public static function bar(){
// ここで Foo の値を取りたいんですがどうやれば良いんでしょうか
}
}
class Foo extends Baz{
var $Foo = 'なんとか';
}
356 :
nobodyさん:2007/06/01(金) 11:17:29 ID:adREKSPx
すみません。初心者です。超くだらないとおもうんですが、どこにもWebに載っていないので、
教えてください。
file()関数というものがあります。ためしに変数名に$fileとしてみましても有効に使えました。
また、defineでためしに("file", "test300.php")としてみても有効に使えました。
これらの区別は、関数の場合は()括弧が付いている、変数の場合は$が付いているから
インタープリタは区別できるのですか?
>>355 Foo::bar();じゃ取れないでしょ
>>356 いってる説明が全く分からないのでソース出してください。
>関数の場合は()括弧が付いている、変数の場合は$が付いているから
関数と変数を比べてるのがわけがわかりません。
定数と変数ならまだわかるんだけど。
>>356 PHP初心者がそんなどーでもいいことを気にすることに笑った。
内部的には変数も関数も演算子も、INとOUTのフィルタのかけ方が少し違うだけの全く同じ物(ポインタ)です。
360 :
nobodyさん:2007/06/01(金) 11:59:58 ID:39E81ppx
>>355 確かにいったんインスタンスを作らないとダメですね。。すいません。
>>360 はい?どこにインスタンスの話が出てるんだ?
362 :
nobodyさん:2007/06/01(金) 13:52:41 ID:MTWDEGSU
ID出してみたらすごいことになった
364 :
nobodyさん:2007/06/01(金) 13:55:12 ID:MTWDEGSU
ただ分割してまとめただけじゃねーか・・・
366 :
356:2007/06/01(金) 14:00:16 ID:adREKSPx
>>359 どうもありがとうございます。しっかり分かりました。なんというか
自分の性格上、内部構造というかある程度深いところまで気になってしょうがないんです。
ありがとうございました。
>>362 ファイル操作はファイル操作のクラスとしてもったほうがいい
それをextendsかなんかで呼び出してカウンタークラスを作ったほうがいいよ
>>362 色々突っ込みたいけど最初はそんなもんだろうなぁ。
関数をクラスに突っ込んだだけのような形。
PHPじゃオブジェクト指向はなかなか理解できないからJavaから学ぶといいよ。
オブジェクトに関してはPHPもJavaに近いものがあるから、
多少書き方が違うけど理解できると思う。
370 :
nobodyさん:2007/06/01(金) 14:28:03 ID:Sl+KWZC8
$pager = & Pager::factory($array);
この & はどのような意味なのでしょうか?
>>370 参照
マニュアルの演算子の項目でも眺めてくるといいよ。
373 :
nobodyさん:2007/06/01(金) 14:39:19 ID:bXYxdOH8
質問です。
os winxp home sp2
an httpd 1.42pでphp5.2.2最新版を
動かそうとしたんですが上手くいきません・・・
設定ファイルは見直しているんですが・・・
ひょっとして鯖ソフト側がphpのヴァージョンに
対応してないのでしょうか?それが原因で
動かない可能性はありますか?
どうして初心者向けの自鯖の入門書は、Windows環境にAn httpd を薦めるんだ
未だに意味がわからん
GUIで設定できるからじゃね?
Apacheにしてください。
An httpdなんてレアなもの使ってデバッグしてる人なんて、
このスレで見つかるのか?
>>377 Apache以外に選択肢があるわけが・・・
379 :
nobodyさん:2007/06/01(金) 14:52:37 ID:bXYxdOH8
分かりました・・・・
素直にsolaris入れてきます・・・
ありがとうございました。
なぜ・・・ww
ApacheがUnixでしか使えないとでも思ってるゆとり世代なんだろうか。
Apacheのページみればマルチプラットフォームなのが一目で分かるだろうに。
382 :
nobodyさん:2007/06/01(金) 15:10:53 ID:bXYxdOH8
すいません・・・ちょっとしゃれを言ってみただけです。
今手元には「自宅サーバーfor Window」と「Solaris入門」
という書籍がありまして。そして右手にはunixマシンと
winマシンがありまして・・・正直横着してましたw
>>381 残念だったな お前が思っている以上にゆとりだったみたいだぞw
自宅鯖本持ってて、セキュリティ考慮しようとSolarisの入門書まで持ってるのに、
an httpdなんて冗談きついぜ。
どうしても使いたいというならアドバイスはできないが頑張れい。
unixマシンあるならApache+PHPは簡単に環境構築できるでしょ。
そっちのほうがいいと思うけどね。
入門書あるのにきっと読んでないんだぜ。宝の持ち腐れってやつだなwwww
Linuxのディストリビューションとかとりあえずインストールしておいて、何も使わない奴いるよね
ブートローダの意味勘違いしたままwinとのデュアルブート設定して
「Windowsが起動しなくなりました」とか質問しているアホゥな奴をたまに見かけるが
>>382もその手の人間だろ
>ブートローダの意味勘違いしたままwinとのデュアルブート設定して
>「Windowsが起動しなくなりました」
やべw昔の俺だw
質問です。
amazonで「画像を拡大」をクリックすると小さい画像が出現します。
大きい画像を出したいのですがどうやったらでますか?
コーヒーフイタ
390 :
nobodyさん:2007/06/01(金) 16:09:30 ID:bXYxdOH8
すいませんですた・・・・
アパにしたらさっくり動きましたw
お騒がせしました。
>>381 アパッチが他のより優れてる点を教えてください。
>>392 色々優位点はあるけど、主な点は↓な感じです。
夜間の作戦や悪天候時にディスプレイに視界を表示するシステムやそれが統合されたヘルメット
目標捕捉・指示照準装置
パイロット用の夜間装備
レーダー・ジャマー(電波妨害器)
赤外線迎撃兵器
地表面誘導装置
GPSなどの最先端の航空電子機器
メインローターに23mm砲弾が直撃しても一定時間の飛行が可能
ミリ波レーダーを装備
>>392 Apacheの紹介の何がすばらしいのかっていう項目でも読んできなさい
>>396 Apacheだけのすばらしい項目をみてもSolarisに比べてどうなのか教えてください
あの〜、
>>397 は私ではないのですが...
公式ページをよく読んでみます。
399 :
虚弱PHP:2007/06/01(金) 16:54:59 ID:???
>>372 ファイルクラスのコンストラクタにファイルパスを渡すように変更。
ロックは自動でやるようにしたりして、
インターフェースをもっと単純になるように整理してください。
次、
ファイルクラスはファイルパス毎、ひとつのインスタンスになるように、
エセSingletonパターンにしたり、
カウンタークラスでは、ファイルクラスを継承ではなく委譲を使う。
次、
ファクトリーパターンとか使って、
ファイルだけじゃなく、DBでも大丈夫なようにしたり。
それから、Javaスレ覗くんじゃなくて、Javaの勉強をした方が良い。
結城浩氏の本はとてもいいと思う。
>>397 知らないのに無理に煽ろうとしなくて良いよ
ApacheとSolaris比べてる時点でどうかと思うね。
Solarisっていつからhttpdになったんですか?
もしくはApacheはいつからOSになったんですか?
>虚弱PHP
20個も前のやつにレスすんなうっとーしい
それと同じこと何度も言うなカス
>>401 おまwそんなことも知らないのかwwww
俺も知らない
>>401 ApacheがOSって・・・
君は1から勉強してきてね
405 :
nobodyさん:2007/06/01(金) 17:42:15 ID:O/c0FzVA
408 :
nobodyさん:2007/06/01(金) 17:53:13 ID:kUpJMD1n
これは腹が痛いwwwwwwwwww
この電波なことを延々といってるのは
>>382でおk?w
わかりやすいなぁ・・・
飽きたしそろそろ話の流れ戻そうか。
mysql_fetch_assocの戻り値をprintf_r関数で表示すると
[TEST] => 1
みたいな形式で表示されるのですが
このTESTという名前を取得する方法を教えてください
>>414 マニュアルのmysql_fetch_assocの項目にまんまかいてるじゃないか。
phpでオブジェクトを使った書き方を勉強中なのですが、以下の点が理解できません。
・var $変数値 = "hoge";
変数値の前にvarをつける意味がよく分かりません。
初期化と説明してるサイトもありますが、普通に「$変数値 = "hoge";」だけでは初期化したことにはならないのでしょうか。
・class内にfunctionを定義する優位性が分かりません
class外に書くのと内に書くのとでどういう優位性があるのでしょうか。
例えばコール時に class AAA{ function BBB{} } とあって、
$TEST = new AAA;
$TEST -> BBB("なんとかかんとか");
と書くより、
$TEST BBB(); とclass外にあるユーザ関数を呼び出す方が行数が少なくならないでしょうか。
素人思考な質問でしょうが、よろしくお願いします。
当方php以外の言語はせいぜいperl位ですので、お手柔らかにお願いします。(一応これでもググって着ての質問です;)
>>417 マニュアル読みましょう
そしてIDを出しましょう
>>421 すみません、おもいっきり質問が間違ってました。
欲しいのはフィールド名です・・・
フィールド名を列挙する関数はありますか?><
更にすみません><
mysql_field_name ですね・・・
お騒がせしました><
どうでもいいけど、フィールド名というのは止めようね。
カラム名といってくれ。
>>417 スレのルールを守ってないとはいえ暇だから答えてみる。
>変数値の前にvarをつける意味がよく分かりません。
これはアクセス制限用の修飾子です。意味はあるんです。
varはpublicと同義です。
php5からはJava同様詳細なアクセス制限がつけられるようになりました。
(private, protected, public)
他にもfinalだのstaticだのいろいろ修飾子はあるんですが、
どういう意味かとか使い方はマニュアル見るよろし。
>class内にfunctionを定義する優位性が分かりません
ただのfunctionは関数(ユーザ定義関数)といいますね。
class内にあるfunctionはオブジェクト関数またはメソッドといいます。
要は中身は一緒でも概念が別物なんですよ。
どう違うとかはマニュアルにちゃんとかいてるはずなので見るよろし。
というわけで、ちゃんと意味はあるんですよ。
ただOOPが理解できてないうちはそんなこと考えててもだめ。
勉強してるうち、書いてるうちにだんだんどういうものかわかってくるんですよ。
フィールドでもカラムでも通じるから別にそのへんはどっちでもいいよ。
>>428 今時のゆとり教育ではフィールド名とは言わずにカラム名と言うから
DBの話するときにカラムのほうが一般的だから
>>417 行数が減らせるからとかいう話じゃない
本当に検索してんの?いくらでもオブジェクト指向の解説ページあるじゃん
本当にマニュアル読んでんの?開いたけど理解する気ないんでしょ
本当に
>>1読んでんの?上げていいか分からないのでトリップ付けますとか氏ねよ
マジレスすると、DBのような二次元で表わす行と列のモデルに対応する英語は、
column(C)とrow(R)。
フィールド(field)は、俗的に使われているだけ。
英語圏だとcolumnとrowは、数学の行列だろうが、一般的な表だろうが、どこにでも使うから、DBではfieldとrecordが好んで使われることも少なくない
434 :
417:2007/06/01(金) 19:44:09 ID:lY2OXFpS
とりあえず、
>>1読んできました…。 後はLANケーブルで吊れば任務完了です。
>>425 なんとなくvarについては理解できました。
極端な話がコンソール画面でls -laて打ったときのWXRの組み合わせみたいな感じでしょうか。
もうちと検索して出直してきます。ありがとうございました。
LANケーブルで吊れば
LANケーブルで吊れば
LANケーブルで吊れば
rowとcolumnは現状のDBでは、位置として殆どの場合正しい。
recordとfieldは意味として常に正しい。
あんまり気になったからSQL(MySQL)のマニュアルを見てみた
両方使われてた
438 :
nobodyさん:2007/06/01(金) 22:15:46 ID:8Txj8d3o
スペースで区切られた単語を
SQLの||検索するには、どういうstr処理が一般的なのでしょうか?
$_REQUEST['search'] = "学校 千葉県 船橋市";
$sql = "select .....where
440 :
nobodyさん:2007/06/01(金) 23:25:39 ID:TCcOsPVi
>>399 ID変わってしまったかもしれませんが
>>372です。
アドバイスありがとうございます。
がんばってやってみます。
Java 結城浩 アマゾンで買ってきます。
>>417 ・class内にfunctionを定義する優位性が分かりません
ま、あれだな、
・部品は、中身を隠蔽しておいた方が後で使い回せるし、部分的に手を入れやすい
・使い回すためには class化しといた方がいいみたいだ
位の認識で、書き慣れておけばいいと思う。
簡単な処理を書き捨てるのなら、class化のメリットは無いと思うけど。
画面遷移が増えてきたり、
画面ぶっこぬき(スクレイピング)+webapiを混ぜこぜにしてグルグル処理するとかいった
ほとんど同じ処理だが微妙に分岐が異なるような処理をしだすと、class化のメリットがわかると思う。
>>362 がんがれ
とりあえず次はコンストラクタからかな。
class名と同じ名前のfunction を書くと classをnewしたときに、まず呼び出される。
んで、この辺りで、いろいろ前準備をする。
442 :
nobodyさん:2007/06/01(金) 23:43:55 ID:MZUMr7GL
データの中に半角の空白が数個あるのですが、全て1個にしたいのですが、
どうすれば宜しいでしょうか?
str_replaceを使おうと思ったのですが、
1個しかないときもあれば10個連続するときもあるので、
うまく1個にできなくて困ってしまいました。
例: <半角空白>12<半角空白><半角空白><半角空白>34<半角空白><半角空白>56 → <半角空白>12<半角空白>34<半角空白>56
ヨロシクお願いします。
>>439 あ、空白でエクスブロードすればいいんですね!
>>442 $foo=preg_replace("/\s+/"," ",$foo);
>>445 補足
改行を含めたくないなら
$foo=preg_replace("/ +/"," ",$foo);
447 :
nobodyさん:2007/06/02(土) 00:47:46 ID:4Fzsq5dM
>>444-446 教えてもらったコードで、思い通りの動作ができました。
どうも、ありがとうござました。
448 :
nobodyさん:2007/06/02(土) 01:57:42 ID:IL4/kKoQ
質問させて下さい。
phpの最適化を行っている道すがらで見つけたのですが、以下のURL
ttp://labs.unoh.net/2007/05/phptips.html ・@によるエラー制御は遅い
・エラーメッセージはコストがかかる
とあります。
では実際どうしたら速いのでしょうか?
ワーニングレベルでもエラーを全く吐くことなく組めばいいといわれればそれまでですが。
色々検索したのですが、何処も同じような内容でこれ以上の事がかいていませんでした。
お力添え頂けると幸いです。
ウォーニングレベルのエラーを運用時まで残すなよ
たしかに。
エラーをだすプログラムはやめてくれ
454 :
nobodyさん:2007/06/02(土) 11:53:58 ID:wQhvKdCT
プログラムの書き方なんですが
例えば単純なショッピングシステムとかの場合だと
フォーム処理、検索処理、など処理機能でページを分けるのか
顧客処理、商品処理、などデータ別でページを分けるのか
どちらの方が良いのでしょうか?
使う人のことも考えてやれよ・・・
>>456 flockの使い方が間違ってるって言ってるだろ
>>457 すいません。
どう違うのかわからないのですが
>>456 理解してから修正しろよ・・・
つかphps使えよ・・・
まあgottenDataとかresorceとか、笑いをとる言葉を使わないところからはじめようぜ
こんちは、石田武雄です。高校2年っす。
これから、ガンガンやるんでみんなヨロシク!
石田君。高校生のうちは限定した分野ではなく、
さまざまな分野の勉強をするべきだと思うよ。
学校の勉強をがんばろうね。
>>463 いや、それはoK。ってか、コンピューターは情報でやるやる勉強だから。
大学じゃなくてitの方の専門逝くっから、他の科目は勉強する必要なし。
数学とは、○進法とかの部分は得意だけど、後はさっぱ。まぁ、卒業できればいっしょw
うちの先生バカばっかだから、俺がPCのことを逆に教えてやっているw
専門行く前に、プログラム言語きわめるぜ!!
めちゃめちゃ大事だぞ数学。
おれ今から数学だけ習いに大学通い直したいくらいだよ。
暗号化も圧縮もポリゴンも放物線も全部広義の数学。
数学わからなきゃそのへんの雑魚プログラマで人生終わりだよ。
>大学じゃなくてitの方の専門逝くっから、他の科目は勉強する必要なし。
だからPGはバカにされる
ちなみにプログラマってのは3年もやればただのキーパンチャ兼テスタと化すから、
趣味でやるか、構築設計から導入サポートまで全て自分でやるかの二択になる。
後者ならどうしたって国語も数学も礼儀作法も学校の勉強は全て必要になる。
職人としてスーパーPGを志すなら、それも良いと思う。
一番たちが悪いのは、ろくに技術力が無いのSEが上流工程を仕切ること。
一流企業のSEの技術力のなさは目も当てられない。
>>464 >専門行く前に、プログラム言語きわめるぜ!!
なんで所詮スクリプト言語のPHPを選択したのかね?
悪いことは言わないから、やるならJavaかC#かVB.NETやったほうがいい。
>悪いことは言わないから、やるならJavaかC#かVB.NETやったほうがいい。
全部いらねえ。んなもん10年後にはマイナー言語だ。バーカバーカ
子供は今しか出来ないことをやるんだ。
感性を磨くこと。世界の理を知ること。そしてセックルすること。
>全部いらねえ。んなもん10年後にはマイナー言語だ。バーカバーカ
これはマジレスしちゃっていいの?釣りなんだろどうせ?
>>471 バカかおまえ いま機械語がどれだけアツイのか知らないだろ!!!!
うちの情報学科で
入門用の言語なんて正直余程変なのじゃなければ何でも良い
でもPHPはダメだな
何でも簡単に出来すぎるし、型の概念とか身に付かないでしょ
474 :
nobodyさん:2007/06/02(土) 16:22:02 ID:VjLksS9h
MySQLでselectの検索時間を取得する関数はあるんでしょうか?
やっぱりphp側で前後のミリ秒経過ですかねぇ…
やっぱり入門授業ならCで。
476 :
nobodyさん:2007/06/02(土) 17:18:38 ID:7YNSOR8L
>>476 164 名前:NAME IS NULL[sage] 投稿日:2007/05/31(木) 23:40:19 ID:???
>>162 バントしたらホームランになっちゃった くらいの確率
以上
478 :
nobodyさん:2007/06/02(土) 17:25:46 ID:7YNSOR8L
それを数字で表すと何パーセントですか?
479 :
nobodyさん:2007/06/02(土) 17:27:15 ID:6vXnRB3n
コメントについて質問です。
//ないし/**/のコメント内部は、クライアントはダウンロードしているのですか?
コメントが多いスクリプトは重くなるという話を聞きまいした。phpの他のコードがクライアントに渡らないのと同じ理由で
コメントもサーバ側で処理されていると思うのですが・・・
480 :
nobodyさん:2007/06/02(土) 17:28:43 ID:6vXnRB3n
重くなるというのは、ファイルの容量が大きくなるという意味ではなくて
転送量が大きくなる、という意味です
>//ないし/**/のコメント内部は、クライアントはダウンロードしているのですか?
サーバーサイドっていう意味判ってる?
釣りだろw
484 :
nobodyさん:2007/06/02(土) 18:04:34 ID:6vXnRB3n
>>481 後でやってみます
>>482-483 私がコメントの多いソースを書いていたら
先輩に「それじゃあ転送量が増大するだろ」と忠告されました
コメント書かないとわけわからなくなる糞な設計書を書いたのはその人なので
釣りだとすればその人が犯人なんです
釣りでしたね。
ごめんなさい
>>483 おまえうぜえな。
社会のゴミってよく言われるだろ?
いやこれは釣りだと思われても仕方ないだろう
488 :
nobodyさん:2007/06/02(土) 18:32:59 ID:6vXnRB3n
489 :
nobodyさん:2007/06/02(土) 18:33:39 ID:6vXnRB3n
結論としては、先輩が終わってるっていうことで良いんですか?
どちらも終わってると思うので、
後は二人仲良く相談してコーディングしてください。
>>489 終わってるね
基礎中の基礎も解っていない
>>490 ひどww 俺バイトですから書かれてることやって提出するだけです
提出したら電話がかかってきて
「おまえのソースはコメント多すぎるんだよ 転送量がハンパなくなるから勝手に削除したわ
余計なことさせるなよ」
と言われました メールじゃなくて電話ですよ
>>491 どもです
ありがとうございました
493 :
nobodyさん:2007/06/02(土) 19:03:34 ID:6vXnRB3n
ID出し忘れ
失礼しました
コメント削除ぐらいPHPにやらせればいいのに馬鹿な先輩だ
>>493 ごめんな。
言い過ぎたよ。明日おごるから
コメントを丁寧に書くことはいいことだよ。
むしろ、コメントがなくて今まで散々悩まされてきた。
もっと、しっかり評価してくれる人の下で仕事したほうがいいぞ。
つーかコーディング規約あるだろ。
この場合、コーディング規約は、あんま関係ない。
コメントさ〜〜〜ん☆彡
>>498 普通ある。
コメントについても言及してるはず。
>>500 コーディング規約でコメントの「書き方」はよくあるが「つけ方」は普通ないだろ
まあ、一行ごとにコメント書けというアホ規約があって
ボスが規約作った奴に怒鳴り込んだプロジェクトもあったけどさ
ウチのまわりだと、クラスやpublicメソッドのコメントはともかく
それ以外のコメント書くならコメントがなくてもわかるようなコーディングしろ
ってのが主流ですだよ
>>501 それだとコメントの魅力半減じゃ
コード読まなくても何やってるのか解るようにするためにコメント書くのも良いんじゃない?
コメント書かなくてもコード見れば分かると言う奴のコードほど見づらい。
コメント書いてても他人の書いたコードはさっぱりだぜ!
投稿出来るレビューサイト作ってみたいんですが、難しいですかね?
そんなに難しくない
>>505 それはphpだと厳しい。そこまでいくと、perlかrubyでやらないと駄目かも。
>>507 それはひょっとしてギャグで言っているのか?
>>508 いや、ギャグでもなんでもないんだが・・・
自由にユーザーが投稿できるようにするには、
入力チェックや何やらでphpでは手に負えなくなるだろ。
>>509 あの・・・何言ってるんだ?
何か別のPHPと勘違いしていないか・・・?
まぁ、phpのスレだから、あまり言っても荒れるだけだから止めとくけど。
ノコギリでも刺身が作れるだろ、と言われれば、
そうですね、と苦笑して答えますが。
>>511 phpを何に入れ替えても使える、便利な煽り文句ですね
なんか、荒れてる・・・。
結局のところどっちなんでしょう?
全然厳しくない
掲示板の延長程度
>>507は何かいってみたかっただけの駆け出しプログラマーなんだ。
許してやってくれ。
なるほど。
ありがとうございます。
いつもここの酷い有様を楽しみながら見ている
下質大好きっ子の俺が言うのもなんだけど
今日の流れの酷さったら半端ないな
ここんとこ毎日こんな感じ
>>505 Javascriptのライブラリでやるのがオススメ
俺が知ってるのでも2,3あるけど、その場でプレビューできるから最高だよ
PHP入門者なんだけど、
入力チェックってjavascriptでやるほうが簡単なの?
522 :
441:2007/06/02(土) 22:59:43 ID: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);
?>
だな ロックを掛けたら解除しる ってとこか
>>521 だから、そんなもんは、phpだろうとjavascriptだろうとperlだろうと何だってできるんだよ。
迷ってないで、まずは作れよ。
簡単かどうか?と聞かれれば、慣れてるほうが簡単だろうとしか言い様がない。
どっちがいいか?と言われれば、両方組み合わせるのが一番いいのは言うまでもない。
javascriptは画面遷移を伴わないでチェックできる利便性があるが、
クライアント環境に依存するので、javascriptオンリーは避けたほうがいい。
>>521 jsで入力チェックしても、cgi側でもう一回チェックする羽目になるのだが
>>525 確かにな 処理は増える
だが、利用者の側に立てば、その場でチェックできる方が良いのではないだろうか
>>522 読みとりの時は排他ロックじゃなくて、LOCK_SH LOCK_UN か、
書き込みの時は LOCK_EX LOCK_UN だね
getData();とかは素直にそのままreturnでカウンタの値(or 戻り値を含むarray)を返した方が良いと思う
この辺は上で他の人もいっていたけど、Javaの入門の方を見た方がいいか、、setter getterあたりとか
>>526 >>521の言い方だとjsかphpかどっちか片方にしか掛けなさそうだから言ったまでさ
確かに俺も入門者に接する態度じゃなかったな、言い直すか
>>521 どっちでもやっても大差は無いよ
でも、jsで入力チェックしただけだと悪意の有るユーザーが不正な文字列を簡単に送る事が出来てしまう、だからphp側でもチェックするのは必須
529 :
441=522=527:2007/06/02(土) 23:31:09 ID:4co9FcJH
すまん、安価張り間違えた。
全部
>>456に対してのレスです
クライアントサイドでvalidateして終わりって恐ろしすぎる
531 :
521:2007/06/02(土) 23:59:41 ID:???
>>528 なるほど。両方でチェックするという発想はありませんでした。
勉強になります。
532 :
nobodyさん:2007/06/03(日) 02:27:21 ID:V2jBxdII
みなさんはE_NOTICEが出ないようにコーディングしてますか?
しているよ
PEARをphp5でつこうたらnoticeでまくりじゃん
535 :
nobodyさん:2007/06/03(日) 03:09:39 ID:QBl67X/1
セッション用のディレクトリに、
一時作業用ファイルを作成して
別のプロセス間で共有させたいのですが、
どうやりゃいいですか?
それがわからないのならやらないほうがいいよ。
教えてもらってもセキュリティつかれるだけ。
おまえにはまだ早い
537 :
nobodyさん:2007/06/03(日) 03:29:24 ID:QBl67X/1
>>536 共有鯖ではないので多分大丈夫です
session.save_pathというのがありました
これを使えばいいと思うのですが
もしかしてセッションを削除する時に
同時に削除されてしまったりするのでしょうか
ワイルドカード使って削除しているのか
ただ単に全削除しているのかによると思いますが
共有鯖じゃないなら大丈夫だという自信があるならやってください。
おれならおまえの鯖をクラックするのにそう時間はかからないよ
((((;゚Д゚)))))
>>535 書いてることが意味不明なわけだが
具体的に何したいの?
∧_∧
( =д=) 世の中は質問があれば答えがある。その2つしかないんだっ!
ハ∨/^ヽ
ノ::[三ノ :.'、
i)、_;|*く; ノ
|!: ::.".T~
ハ、___|
544 :
nobodyさん:2007/06/03(日) 12:17:38 ID: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回程度
【再現性】
アクセス負荷、時間帯、処理の内容に関係なく不定期に発生
545 :
nobodyさん:2007/06/03(日) 12:56:46 ID:XtY/sQS4
PHPで1回だけ処理をさせたい場合ってどういう風に記述するんですか?
(初期化処理とかなんですが・・)
2回目以降にリクエストされても、その処理は通したくないのです。
>>544 「試行錯誤であれこれいじった」とかいう情報に何の意味があるの?
頑張ったんですけどだめでしたとかいうポーズ?
>>544 エラーメッセージの通り
fgetsの引数に何かが原因で10を渡してしまってるんだろう
>>547 べつにえーやんそんくらい。おまいの嫌味情報のがよっぽどいらん。
550 :
nobodyさん:2007/06/03(日) 13:17:57 ID:XtY/sQS4
>546
それって処理終わったら消すってこと?(ファイル自体を)
PHPってそんな方法でしか実装できないの?
>>550 要件があいまいすぎてわけわからん。
本当に一回しか実行しないなら、一回実行して消せばいいのはあたりまえすぎだし。
セッションごとに一回って意味にとれなくもないし、妙に回答のしづらい質問だな。
553 :
nobodyさん:2007/06/03(日) 13:24:46 ID:XtY/sQS4
たとえばDBのコネクションをプーリング(保持)したい場合って、毎回接続させたくないから、apache起動時とかもしくは1番最初のリクエスト時にDBの接続をして、次回以降はさせたくないとかそんな意味なんだが。
>>553 pconnectとかだったらDBがやってくれるよ
2回目以降の接続なら自動的に既存の接続を使いまわしてくれる
それ以外でも1回目だけとか考えるより、対象の処理が完了していたら
実行しないとかそういう風に考えるのがまあ普通だな例外もあるが
singleton使えば?
あと何でいきなり口調が偉そうになってんの?
コネクションプーリングだったらググれば出るぞ
557 :
nobodyさん:2007/06/03(日) 13:36:21 ID:XtY/sQS4
>> 554
ありがとうございます。
参考になりました。
558 :
nobodyさん:2007/06/03(日) 13:37:34 ID:XtY/sQS4
>> 556
いや特にコネクションプーリングがやりたいわけじゃなく、PHP使って初期化処理って普通どうすんのかなぁと気になって。
上でも書いたけどコネクションプーリングは例えです。
559 :
nobodyさん:2007/06/03(日) 13:55:14 ID:9Yu/VUSy
PHP4でdelegateパターンを実現する方法はありますでしょうか?
逆にどこが実装しにくいのか聞きたい
561 :
nobodyさん:2007/06/03(日) 14:36:04 ID:9Yu/VUSy
>>560 存在しないメソッドが呼ばれたときに、呼ばれるメソッドを定義できて、
そのメソッド名とパラメータがえられれば実装できます。
が、今一度マニュアルを漁ってみたところそのような機構はないようです。
563 :
nobodyさん:2007/06/03(日) 14:50:10 ID:9Yu/VUSy
>>562 ありがとうございます。こんなところにあるは思いませんでした。
一応リファレンスは通読していたつもりだったんですが…。
確かにPHP5でやると楽なんですが、PHP4が要件なんです。
これで何とかなりそうです。本当にありがとうございました。
1時間に100万通くらいメールを送りたいんですが、
sendmail関数をforでループさせても3万通位が限界です。
これってphpの仕様?
できれば、100万通じゃなくても多ければ多いほどよくて1億通でも送ることが可能なら送りたいです。
よろぴく♪
>>564 それはphpだと厳しい。そこまでいくと、javaかperlでやらないと駄目かも。
>>566 レスありがと!
んで、javaだと何かいい方法あんの?
phpがどうというよりMTAが捌ききれてないような
>>567 javaはphpと違って言語レベルで並行処理ができる。
※ こういうことが出来ないのが、phpがスクリプト言語と言われる由縁だけど。
詳しくは、javaのスレでメールの送信方法と、マルチスレッドの方法を聴いて。
※ その前に、googleで検索するように。すぐ見つかる。
あとは、サーバーによって一時間当たりのメール送信数に制限掛けているところがあるから、
複数の安いサーバーと契約して送信すればできるんじゃないか?
強烈な電波を感じます
普通100万とか送ったら自滅するだろ。
結局、phpだとダメダメってことな。
jjavaもよくわからんけど、わかんかったらまたききに来るわ。
pcntl_forkでsocket100個作って回してみろよ
575 :
nobodyさん:2007/06/03(日) 16:43:45 ID:9Yu/VUSy
んなこたない。用途に合わせて適切に道具を選べないお前がダメダメってことだ。
>>573 もうここには、聞きに来ないでくれ。
javaなら、下のメールリストに高木さんという親切な管理人さんがいらっしゃるから、
何も分からないから、メールで大量送信できるようなプログラムを至急作って送って下さい。
と送れば、すぐ作ってくれるんじゃないかなぁ。
ttp://java-house.jp/ml/
ここが一番クソスレクソサイトなんだからここでやれよ
それは宣伝と言うよりも……怖い…
GCされた時に
session_destroyすると
Message: session_destroy() [function.session-destroy]: Session object destruction failed
になります。
セッションが切れているかどうかを判定する方法はないですか?
タイムアウト処理に関して質問です。
ある処理が一定時間経っても終了しなかった場合に、次以降の処理に進むような処理はどうやって実装するのでしょうか。
具体的にやりたいのは、数件のRSSファイルをネットワーク経由で持ってくる場合、n秒以上応答が無い場合は
次のURLに移る・・・というような処理です。
宜しくお願いいたします。
583 :
581:2007/06/03(日) 20:48:31 ID:ngQVF/3a
失礼しました。
環境はWindows、Apache、PHP5.2.1です。
>>580 session_destroyしてるってことは、そのスクリプトの前の方で
session_startしてるわけだわな
んで、session_destroyの時点でセッションのデータが削除されてるってことは
(session_destroyの時間 - session_startの時間) < session.gc_maxlifetime
になるわけだと思うが、いったい何をしたらそうなるのかこっちが聞きたいわ
>>581 RSSをHTTPでもってくるにしても色々やり方があるわけで
それによって答えも変わるわな
585 :
nobodyさん:2007/06/03(日) 22:19:08 ID:3VqHHU9G
コメント欄のcgiが欲しいんですけど何処かにありませんか?
>>585 そんなのコメントのフリして自分で書いたHTMLあげておけや
>>588 >>585じゃないけど、その仕様だと例えばHTMLを知らないユーザーとかだとアップできなくない?
HTMLの説明書きとかを注釈で加えるとか?
>>590 バカはお前だ。
ブログのコメント欄にHTMLで書けと要求するシステムがどこにあんだよw
592 :
nobodyさん:2007/06/03(日) 23:04:52 ID:BrDIy+5H
XAMPPのことをプログラム初心者向けに解説されてるページとかはないでしょうか?
ぐぐってもなんらかのプログラム知識ある人向けに書かれてるページばかりで
さっぱりわかりません。
593 :
592:2007/06/03(日) 23:11:19 ID: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/ でセキュリティを押すと上のようなページ表示されてるけど
解説ページ探してもちょっと違うんだよね
なんか間違えてインストールしてるのかな?
>>591 aho-
どう見ても
>>588は「自分でコメント欄もどき作っておけ」っていう冗談じゃねーか
日本語大丈夫か?
595 :
581:2007/06/03(日) 23:13:38 ID:ngQVF/3a
>>584 返信ありがとうございます。
RSSを持ってくる手段についてはfopenを使うか、もしくはRSS読み込みまでやってくれるモジュールを使うか
決めてはいませんでした。仮にfopenで持ってくる場合にどうすれば良いかお聞きしたいです。
>>593 検索すればいくらでも出てくると思うが、、、
jpの言語ファイルがないってインストーラで入れるときに
japanese選んだのかい?
597 :
588:2007/06/03(日) 23:31:58 ID:???
おまいら何折れ抜きでおもしろいことしてんのよw
くそ、ID出しておけばよかった・・・
598 :
592:2007/06/03(日) 23:38:39 ID:BrDIy+5H
しっかりと日本語を選択しました。
インストール自体が失敗してたのかな?
599 :
592:2007/06/04(月) 00:07:17 ID:fJ2k7ySq
>>599 >しかしまぁ1.5.5の時のバグが1.6.2でも解決されてないんですね
はい、そこ。ちょっと問題が解決したからって、気を大きくしない
逆に言われてしまえば「既知のバグも確認せずにインストールするなんて」ってなるんだから、
正直見苦しいよ
どう見ても見苦しいのはおまえだよ
あるオブジェクトのメソッドから、呼び出し元を調べたいんですが
どうやって調べればいいでしょうか。
>>605 そんな関数があったのか。前に同じことをしようとしたときはわざわざforkしてた...
でも、スレッド使いたいな。
607 :
nobodyさん:2007/06/04(月) 11:14:34 ID: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")の部分を取り出すにはどのようにすればいいのか教えていただけませんか。
$newArray = $a[0][1];
609 :
581:2007/06/04(月) 11:36:37 ID:JYPog2pE
>>605 どうもありがとうございます。早速試してみます。
610 :
nobodyさん:2007/06/04(月) 12:00:59 ID:DwHDHcMt
今、他の方が作ったプログラムをいじってるんですけど、
フォームから、GETでデータをhoge.phpに渡しているんですが、
データが、'を\'にしたり\を\\にしたりと、サニタイズされています。
hoge.phpのインクルードしているプログラム間でそういう記述があると思ったのですが、
hoge.phpの一番上(処理が何もされていないだろうと思う場所)で、
print_r($_GET);
exit;
としても、サニタイズされているんです。
javascriptでも何もしていませんでした。
これってありえますかね?(現にありえてるんで悩んでいるんですが・・・)
アドバイスお願いいたします。
>>610 つ[magic_quotes_gpc]
このmagic_quotes_gpcって本当に邪魔だよなあ。
ってわかってるやつは切ればいいんだけど。
サーバをいじれない環境だと.htaccessでやるしかなくて、
できるかどうか確認するのまでどきどきしちゃうw
>>611 あ〜それわすれてましたw
ありがとうございます!
magic_quotes_gpcでだめなケースってどんな場合があるの?
>>614 つ[ブラウザを通さないで表示する場合]
>>607はPHP-usersのMLとのマルチかよ、くだんね
明日6時に起きようと考えて眠ると、5時58分くらいに目が覚めるのですが、
あれは、脳の中にcronの仕組みがあるという認識で間違っていませんか?
>>617 とりあえずNTPサーバーと同期をとることをおすすめします。
619 :
nobodyさん:2007/06/04(月) 17:48:34 ID:6QRX92pz
>>441 >中身を隠蔽しておいた方が後で使い回せるし
classに隠蔽したほうが使いまわせれるというのはどういうことですか?
毎回オブジェクトをつくらないといけないですよね?
>>画面遷移が増えてきたり
フォームかurlでしか次の表示に変数は渡せないですよね?
620 :
nobodyさん:2007/06/04(月) 18:14:19 ID: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 が表示されました
なぜでしょうか?
621 :
nobodyさん:2007/06/04(月) 18:33:08 ID:lLfrP8Zc
ドコモ携帯で太陽マークを打ち込み、それをポストして、PHP側で「F89F」を取得するにはどうすればいいのでしょうか?
624 :
虚弱PHP:2007/06/04(月) 19:03:20 ID:???
>>620 厳密には正しくないけど最初は↓みたいに理解するといいかも。
○ユーザー毎にセッションIDが付けられる。
→ これをブラウザのクッキーに保存
○セッションID毎にセッションファイルが作られる。
→ ブラウザクッキーとして送られたセッションIDをもとに読み出し
>>620に釣られたんだけど、セッションって何も設定しなくてもクッキー使わないんだよね?
626 :
441:2007/06/04(月) 21:51:29 ID:g5MJj3HB
628 :
441:2007/06/04(月) 22:13:23 ID:g5MJj3HB
>>627 平易で良くまとまっているポインタが有れば、差してくださいな。
中・高・大・大人(というか環境)によって見え方と捉え方が違うから難しいっす。
629 :
nobodyさん:2007/06/04(月) 22:26:07 ID:5+o3owYS
>>使えるけど使わない 使えないから使わない
いつ使ったらいいかわからないんです
単に遠まわしにしているとしか感じないです。
ただのユーザー関数とクラス化したもので
例えばどういう処理orアプリにおいて便利なるんですか?
ユーザー関数だと、こういう風に格納しまくらなきゃいけなくて
オブジェクトならこんな風に数行で…みたいな
OOPは考えるな、書いて感じろ
631 :
441:2007/06/04(月) 22:35:58 ID:g5MJj3HB
>>629 乱暴に一言でいうと、単純なユーザー関数だと、抽象化 継承が出来ない。
一連の機能を継承して新たな機能を派生で作るとかね。
遠回しという感覚は確かにその通りに感じると思う。
というか遠回しにしているからこそ拡張出来る。
だから、有る程度の複雑性と多様性が無いと、純粋なコードを書く量は増えてしまうだけで、
メリットを享受出来ないかも。
リンク先でも書いてるけど、OOPの特徴といったらカプセル化、継承、ポリモーフィズムなんだろう。
一人で開発していて、再利用するつもりもなくて、拡張性の必要もない場合に加えて、
言語はPHPというなら、別にOOPする必要はないんじゃないか。
ないよ
とりあえずOOPで書いてみて何がいいのかを体感しようとせず
頭だけで理解しようとする奴にはいつまでたっても無理だから
>>632 そうだと思うよ。急いでその場しのぎで作るなら無理にする必要はないとも思う。
OOPが目的のOOPでの実装は意味がないと思っている。
趣味とか、やっつけ仕事、数百行程度の実装なら別にいいんじゃないか。
ただ、そのまま機能を作り込んでいくと、
「あの機能とよく処理にてる」とか
「あの処理のあの機能を引っぺがして、ちょこっと変えてこっちにも組み込みたい」
「ほとんど似ている手続きなんだけど微妙に分岐が違う一連の手続きを定期的に連続実行したい。」
とかが頻発してくる。
んで、よく似た同じ事をコピペとかでくむと、後で修正するときも、同じような機能で微妙に違う箇所を
grepして抽出して、書き換えるとかいった面倒なことになる。書き換えるだけならいいけど、テストも過給的に
増えてメンドクセーとかね。
だから、必須ではないけど、使えるようにしておいた方が何かとつぶしは効くかも。
636 :
441:2007/06/04(月) 23:03:21 ID:g5MJj3HB
637 :
nobodyさん:2007/06/04(月) 23:12:23 ID:gV5OyYxv
初心者に近い人が「これつくってみると一気にレベルアップするよ」的なものってありますか?
ブログ
自分で造るにしても、他のソースを参考にしないと進歩しない
とりあえず自力で作ってみて詰まるのもいいんじゃね?
自分でゼロから作って、完成させる。
↓
人のソースを見て、自分のソースをリファクタする。
これが、最強の教育アルゴリズム。
PHP5.2.2からOCIでOracle8i(8.1.5)に繋げた人いる?
いない
>>638-641 ありがとうございます トランバック、RSS、コメントにそれらを管理するものetc
確かに勉強になりそうです
>>641さん方式が向いてそうなのでそれで進めてみますが、おすすめの既存ソースはありますか?
読みやすくて完成度が高いもの、XSS等虚弱性なんて当然なくて
サニタライズがしっかりしているものはどんなものがありますか?wordpressのように高機能でなくて良いです
トランバック サニタライズ
647 :
nobodyさん:2007/06/05(火) 00:26:04 ID:/9Tx9T4K
数字を漢数字に変換する方法を教えて下さい(>_<)
648 :
nobodyさん:2007/06/05(火) 00:31:46 ID:m4nsZU4o
>>抽象化 継承が出来ない。
ああー
まずは継承や再利用の価値を勉強すればいいんですね
>>647
if($string == "1"){
$string == "一";
}
>>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++;
}
}
ちゃんと動くかは知らん
CGIのようなバッチ処理でオブジェクト指向は完全に無意味で非効率。
唯一イベント駆動型のGUIで意味がある。ウインドウやボタンをオブジェクトとして、
オブジェクト毎に色や形(プロパティ)やイベント(メソッド)を定義するだけだから。
652 :
441:2007/06/05(火) 01:06:53 ID:J7TorZ22
>>648 継承と再利用の価値は 勉強つうか
>>630 だとおもう
1)仕事じゃないんだったら、最初は周りくどいことは気にせずテキトーに Aという仕組みを作ってみる。
(登録・更新・削除・参照・バッチ処理があるようなものがいいか)
↓
2)テキトーに作ったAを機能分割、汎用化して一つ一つの処理の複雑度を下げてA’を作る
↓
3) 2を使ってBを作ってみる
↓
4) 1を使って Bを作ってみる
という流れかもね。
初めからいきなり 2) → 3)が作れればそれが最短だけど、
1)を作れないのならば、いきなり抽象化と再利用ができるようにはならないかも。
ついでに言うとコーディングレベルでの抽象化と再利用だけだとうまく分割出来ないともいえる。
規模・要件によって、最適解と抽象化の粒度は異なるわけ。
再利用する必要が無いものを、汎用化して工数が余計に掛かる位ならべた書きでも
速攻仕上げた方が最適だったりする。
>>647 1文字だけ変えるのなら
>>649のような感じでいいけど、
数文字いっぺんに変えるなら正規表現で置き換えのほうが楽。
30000を三万とかにするならかなり複雑になると思う。
>>651 StrutsやRailsの立場はどーなんねん
つか、バッチて言葉の意味わかってる?
※くだらない質問スレで議論するのはやめてください
これ以上やるならクソスレ立てて誘導します。
>>655 クソスレ立てるのは賛成だけど、
スレのサブタイトルに、「日本共産党員お断り」って入れておいて。
>>654 反論があれば具体的にどーぞ。
Railsがどんな功績や効率的な処理を実現しましたか?
ほんとCGI系でオブジェクト指向なんてひとつも意味無いから。
RubyはVisualCOBOLみたいなもんだよ。アホな人的資源の救済措置。
658 :
nobodyさん:2007/06/05(火) 01:25:07 ID:J7TorZ22
>>655 ここがそのクソスレ(ry
すまん 吊ってきます。
ちなみにここで繰り返し出てきたオブジェクト指向の長所とやらは
全て手続き型で実現可能な物事です。まぁ当たり前なんだけどね。
オブジェクト指向自体が手続き型で実装されているわけだから。
自分で実際やってみるとわかるけど、スクリプト言語でオブジェクト指向的
振る舞いを繰り返すと、すぐに重くてどうにもならなくなる。
また全体に知能が低めに設定されているのか、オブジェクト指向派は動的な
構成を好み、決まってHTMLを生成しようとしない。
>>659 いまどきOOが重いとか貧民的プログラムが必要な環境ならCで組むことをオヌヌメするよ
>>660 な。知能低いだろ。HTML生成型という発想そのものが無く、Cで書けば速いと
思い込んでいる。自分で書いたことも無さそうなのにw
こんな5年10年使い込まれた泣き言が飛び出すとは、この糞スレだけ時の流れが
止まってるのでしょうか。サーバサイドは誰でもどんな時代でも少しでも軽い方が
良いに決まっているのにねぇ。私はカウンタだけCで書いています。関係無いけどね。
※2度目の忠告です
議論は他にいってやってください。
>>659 君が独自の試行錯誤の末に何かを得たのはわかった。
でも一般性に欠けるから、人に押し付けないでね。
>>655 糞スレ立てるなんて犯罪予告だぜ!
通報しますた。
うちも変更されないようなページはHTMLを生成するな
社内向けシステムなら動的にページを生成したときの
レスポンスの悪さもある程度がまんしてもらえるけど
ネットに公開するようなサイトだとそれだと困るからな〜
クソスレ立てるのは賛成だけど、
スレのサブタイトルに、「日本共産党員お断り」って入れておいて。
>>250 いや、やっぱり見えるか見えないかそんな所が一番。
特に周りに広がるメラニン色素の沈着がタマラナイ。
669 :
668:2007/06/05(火) 04:21:30 ID:???
うそです
670 :
虚弱PHP:2007/06/05(火) 10:16:30 ID:???
まあ、なにはともあれOOPを「勉強」するならPHPはいい回答ではない。
671 :
nobodyさん:2007/06/05(火) 11:54:18 ID:4B8PpfOt
ただ単にリダイレクトさせるためだけにPHPを使いたいんだけど、
<?php header("Location: 転送先URL"); ?>
だけテキストで入力して、
その後、拡張子をPHPにすればOKでしょうか?
あと、このリダイレクトの方法って、メタと違って
ブラウザ側で拒否出来ないという認識で問題ないですか?
>>671 PHPが動くサーバー設定になってるならそれで大丈夫じゃない?
>>671 ブラウザで拒否できないというか、
正常なブラウザならhttpヘッダを見て挙動を決めるので、
それでリダイレクトされる。
逆にそれでリダイレクトされないなら、
そのブラウザがブラウザとしての最低限の機能を搭載してないってこと。
つまりブラウザにあらず。
674 :
nobodyさん:2007/06/05(火) 13:19:13 ID:4B8PpfOt
>>672 有り難うございます。
一応、動くのは試してみてわかっているのですが、
PHP自体をほとんど理解していないので
なにか足りないのではないかと
ちょっと心配になり聞いてみました。
>>673 有り難うございます。
PHPは現在、初心者本片手に勉強してるんですが、
まだまだ理解が乏しいので助かりました。
言われてなるほどですね。
>>620、
>>625 セッション関数を使うと、「セッションクッキー」という特殊なクッキーが
自動で発行される。
>セッションはクッキーと違い(中略)あるユーザーが取得したセッションで管理されてる変数を・・・
共有できるわけねぇだろ、と。
それじゃセッションの意味がないだろ、と。
共有しようと思えば・・・
677 :
nobodyさん:2007/06/05(火) 14:40:10 ID:J1A5BxRH
Oracleを使いたいのですが、
標準の関数oci_connect等を使うか、
PEARのDBクラスを使うか、
PDO関数を使うか、どれを使えばよいのか迷っています。
好きなものを使うべきなのでしょうが、
皆さんならどれを使いますか?
PDOが無難
679 :
nobodyさん:2007/06/05(火) 15:19:54 ID: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です。
680 :
nobodyさん:2007/06/05(火) 15:24:34 ID:Q4Q2J1Ec
Web関係の求人サイト見て思ったんだが、
「オープンソースでの開発経験をお持ちの方」
って書いてあったんだが、気にしなくていいよな・・・
いいバイト先ないかなぁorz
>>680 ここは人生相談スレでもチラシの裏でもありません。
>>680 開発に参加っていってもパッチを送る位なら履歴書を書きながらでもできるだろ。
適当なハックを見繕ってプロジェクトのMLにポストすりゃいいのよ。
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 変換ページを作りたいのです。
685 :
nobodyさん:2007/06/05(火) 16:18:48 ID:Ku9URNE5
N進数→N進数の変換をしたいんだけど
割って位を出していくでしょ?
数が巨大になると、PHPが整数として扱える範囲を超えて、
割れなくなる。
この難問どうすれば解けますか?
687 :
683:2007/06/05(火) 16:26:41 ID:vO+V39fB
すみません、sage は NG ということを知りませんでした。
サーバのOS:CentOS4.4
PHPのバージョン:PHP 4.3.9
Webサーバ:2.0.52
690 :
683:2007/06/05(火) 16:58:40 ID: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 ・・・ が表示されてしまう。
>>690 date('Y-m-d H:i:s',1181025482687 / 1000)
2007-06-05 15:38:02
割ればいいんでないの?
692 :
683:2007/06/05(火) 17:11:04 ID:vO+V39fB
UNIXタイムスタンプって普通秒単位だろ?
ミリ秒単位で渡すなよ.
例え桁あふれがなくても1181025482687秒と認識されるだろが
>>692 普通にlong型はないね。
intの範囲(-2147483647〜2147483647)を超えるとfloatになる。
695 :
683:2007/06/05(火) 17:29:28 ID:vO+V39fB
>>693-694 レスどうもありがとうございます。
すみません、Unix タイムスタンプ(time_t ?)という書き方がよくなかったでした。
やりたかったことは、とにかく 時刻表現が1970/1/1 からのミリ秒として13ケタの数字でわたってくるので、
これを人間の読めるようにしたかった、でした。
PHP の time() 関数が、精度を秒で返すのは、
PHP の time() が C の time() でできているからかな?
逆にUNIXタイムスタンプをミリ秒まで数えてるのをJSしか知らない
>>696 その問題は変数の型とは全く関係ないっしょ。
確かにDate.getTimeとかで1970/1/1からのミリ秒で返ってくるんだろうけど
それは「UNIXタイムスタンプ」とは非なるもの。
適当に3桁削るか自作関数作りなるなりして対応すればいいんでないの.
つかマニュアル見れば分かることだけどlong型なんてないし
型が違ったら自動的にキャストしてくれるから引数の型は意識しなくもいい。
$param = "1181025482";
$today = date('Y-m-d H:i:s', $param);
print($today);
そもそも最初の例のこれだと$paramはstring型だしな。
久々に2038年問題を思い出した
クダラネー
>>679 書いてるまんまだと思うが、パスが違う、パーミッションが違うとかつまんねー理由だと思う。
700 :
nobodyさん:2007/06/05(火) 18:11:13 ID:DIaHasCn
すいません、こんな感じのタグが、index.phpに勝手に追加される事があります。
これって、サーバがやられてしまったのでしょうか?
<iframe src='
http://quickcnt.com/ld/axhst/' width='1' height='1' style='visibility: hidden;'></iframe>
>>700 自分のスクリプトに穴があるとは考えないんだな
Dreamweaver使ってるんじゃまいか?
自鯖ならそく閉鎖しる
704 :
700:2007/06/05(火) 19:03:42 ID:DIaHasCn
レス、ありがとうございます。
>>自分のスクリプトに穴があるとは考えないんだな
問題のあるコードを書いているかもしれません。。。
>>Dreamweaver使ってるんじゃまいか?
使ってます、問題あるのでしょうか?
>>自鯖ならそく閉鎖しる
閉鎖しました
>閉鎖しました
はやいなw
せっかくだからその穴だらけのコード晒してけよ
現実に個人レベルでもクラックってされるんだなw
脆弱性のあるスクリプトがどういうものなのか気になる。
今後の参考にもぜひみせてもらいたい。
709 :
nobodyさん:2007/06/05(火) 20:34:47 ID:6blsZ/zS
初心者ですが教えて下さい。「変数に値が入ってなかったら」
というのは、どういう風に表現されるのですか?
変数Aに、値が入っていなかったら、変数Bを変数Xに代入せよ。
変数Aに、値が入っていたら、変数Xには変数Aを代入せよ。
ということを書く場合、
if($a==""){$x=$b}
else
{$x=$a}
じゃ、うまくいかないんですが、未定義・null・値が入ってない、
といったことを表現するのはどう表現するのでしょう?
>>709 「初心者ですが教えて下さい。」←これタブーね
if($a){
echo "入っています";
}else{
echo "入っていません";
}
714 :
nobodyさん:2007/06/05(火) 20:47:01 ID: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); これならうまくいく
715 :
nobodyさん:2007/06/05(火) 20:51:11 ID:6blsZ/zS
私は
>>709 です。
すごい すごい!
こんなに素速く返事があるなんて!
あまりに初歩的すぎて、皆さんから怒られるかと思いましたが、
適切なご教示を頂きありがとうございました。
マニュアルとか解説系HPでも分からなかったのですが、
isset ってのも見かけては居たのですが、その変数が宣言されて
いるかどうかを調べる関数に違いないと即断していました。
いろいろあるんですね。
ありがとうございました m(..)m
>>714 > サーバによって上手くいく場合もあるのですが何を調べるべきなのかもわからない状態です。
とりあえず上手くいくサーバといかないサーバのGDのバージョンをリストアップしてみれば
717 :
nobodyさん:2007/06/05(火) 21:07:48 ID: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);では駄目でした。
ローカルではいずれも意図した通りに動作するのに、何故レンサバでは動かないのでしょうか?
また解決するにはどうすれば良いのでしょうか?
>>686 アルゴリズムが難解すぎて…
具体的にどうやればいいですか?
>>688 最初はそれ使ってましたが
巨大になると挙動がおかしくなるんです
// ここまではok
echo base_convert('fffffffffffff',16,16);
// ここからng
echo base_convert('ffffffffffffff',16,16);
つ 一歩進んで前習え
>>717 環境依存すぎ。
そういうことするまえに、
なにもせずに
session_start();で
var_dump($_SESSION);
が可能かどうかをしめすべきだ。
721 :
717:2007/06/05(火) 21:42:20 ID:EQxq7rXd
>>720 ローカル、レンサバ共にarray(0) { }でした
環境依存と言いますと、どこかに汎用性の無い関数でも使っていましたか?
session.cookie_path等は前述のように単にsession_startした場合は大丈夫でしたので問題は無いと思います。
>>718 >アルゴリズムが難解すぎて…
ふむ、どの辺まで考えたの?
>巨大になると挙動がおかしくなるんです
まぁその理由はマニュアルに書いてあるけどね。
>>721 iniなんたら多すぎ。
全部外して一つづ加えていって$_SESSION値を確かめろよ。
>>721 ココだけ見ると COOKIEが無いときは永久に通らないという罠
一行づつデバグしろよ
あと、/hogehoge/のパーミッションエラーとかはマジ勘弁
>>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探さばこういうのあるかもしれないけどシラネ
息抜きに作ってみたからちゃんと動作するかもシラネ
なんか化けてるしorz
??は上から
'0'
''
''
727 :
717 ◆.Ia5JkzwT6 :2007/06/05(火) 22:26:49 ID:EQxq7rXd
>>723-724 レス有り難う御座います
一行ずつ試してみたいと思います
パーミッションはミスってたらエラーメッセージが表示されますし、session_start()のみだと正常に動作するのでそれは無いと思います
早いですが、今日はもう寝るのでトリップつけておきます
ねるのはやいw
配列使う時
$hoge = array();
書かずにいきなり
$hoge[] = 'fuga';
って書くの行儀悪い?
>>729 気分次第、でも VB(option explicit) C JAVA とかと一緒でクセで初めに宣言してる
>>729 コーディング規約に従えばよろし
ないならフィーリングでおk
捨てコードじゃないなら、宣言しとくのが普通だろ。
Cで宣言してから使うのに慣れている人は
他人のソースを見るときでもそれを前提に読むからな
どっちでもいいと思うよ
おれは宣言してから使うけど
>>729 forとかifとかの中で
$hoge[] = 'fuga';
するなら、必ず
$hoge = array();
しておく。
>>729 たぶんDBのFetchループあたりのことだと思うけど、
そういうのわざわざ変数名変えたりしないから
初期化してないってのは怖いね。
初期化する必要がないほうが高級言語じゃないか?
別にPHPがそうとかいう話じゃなくて、プログラミング言語の発展としてさ。
いちいちプログラマの判断で変数宣言を書き込んで管理しなきゃならないなんて、前時代の遺産となるべきものじゃないかしら
初期化コードが近くにないと、
新しく使うのか、どこかから結果を引き継いでいるのかが分からないから
可読性のために俺は書く
$str = 'hoge';
echo $str[1]
---
o
こんな感じに、配列のように文字列から文字を切り出せるって
今日はじめて知ったんだがおまえら知ってましたか?
これ一般常識なの?
俺だけなのか…(゜◇゜)
自分と他人の世界や知識や価値観は違うってことが理解できない人?
>>739 しらなかった。
マニュアルのどこにかいてあったの?
>>743 そんくらい自分で見ればいいだろ
ほんと人にやってもらわないと何にもできない人だな・・・
>>739 なんじゃそれ!?
もしそれが本当なら、実は変数は全て配列型だってことか?
>>745 違うよ配列型が実は全て文字列型で構成されてるんだよ
>>737 変数のスコープを自在にあやつれるほうが高級、というか混乱しなくて良い
んなわけで初期化というか変数宣言(Perlだとmyとかlocalとかな)がないと困るZE☆
>>748 初期化の必要性と、変数スコープを自在にあやつれることは、別の問題だろ?
PHP+ImageMagickで、たまに画像アップロードができません。
アップロードできない画像は主にjpgです。
アップロードできるjpgもあります。
ファイルサイズも関係ないようです。
(ファイルサイズが大きめのjpgにもアップロードできるものがあった。逆に小さいjpgだができないものもあった)
昔も同じ症状に陥りましたがたしかphpの設定関係だった気がします。。
いったいどこが原因でしょうか?
752 :
751:2007/06/06(水) 01:59:12 ID:b3J3b1x0
スマソage
jpegとpjpegじゃね?
>>749 スコープを決めるには変数宣言必要だし
変数宣言あるなら
my $hoge;
・・・
$hoge[] = 'fuga';
するなら
my $hoge = array();
・・・
$hoge[] = 'fuga';
のほうが "読みやすい" と思う。
だから俺は変数宣言は必須で初期化は任意でいいと思うけど
初期化してあるほうが「他の人が改修する時」とか。という感じだZE☆
phpの場合スコープいいかげんだから、初期化しといたほうが気配りさんじゃね
エディタの一画面で全部把握できるコードとかだったら俺も初期化とかしねーけどさ
755 :
751:2007/06/06(水) 02:15:59 ID:b3J3b1x0
>>753 いえ、jpgです。
どうもPHPの設定じゃない気がしてきました。
うーん。
756 :
nobodyさん:2007/06/06(水) 02:39:59 ID:3mye17O+
PHP4のクラススタティックメソッドから同じクラスのスタティックメソッドを呼ぶ場合
class Hello {
function hello() {
echo "Hello, ", Hello::bar();
}
function bar() {
return "world.";
}
}
Hello::bar(); のようにいちいちクラス名を書いているのですが、
これを省略することはできますか?
757 :
nobodyさん:2007/06/06(水) 02:43:49 ID:0gT0vIE0
PHP4の構文について質問です。
あるオブジェクトを返してくるメソッドがfoo()があると仮定します。
その返されたオブジェクトがメソッドbar()を持っていたとき、
このメソッドbarを呼ぶには一度テンポラリ変数にオブジェクトを代入して、
改めてメソッドを適用しなくてはならないのでしょうか?
つまり、
$tmp = foo();
$tmp->bar();
と書くしかないのでしょうか。できれば
foo()->bar();
のように一度に書きたいです。無理でしょうか。
758 :
nobodyさん:2007/06/06(水) 02:50:53 ID:oqXEdx16
PHP4とPHP5の両方で使えるものを開発したいのですが、
PHP4用と、PHP5用を分けて2つ作るか、
ソースに差がある部分を条件文で分けて1つだけ作るか
どっちにするか迷っています。
速度面を重視するなら、条件文がないほうが早いと思うので前者がいいですか?
互換性を保つため、PHP4の書き方で1つだけ作るという方法もありますが、
速度面でPHP5から導入された関数なんかも使いたいので、
それは今回なしの方向でお願いします。
759 :
751:2007/06/06(水) 02:52:21 ID:b3J3b1x0
どうもお騒がせしました。勘違いでした(^^)
バージョンの違いを条件文でいちいちわける理由は?
substrのsubって何の略?
if( !function_exists( 'hogehoge' ){
fucntion hogehoge()
{
}
}
ベタなのはこんなん?だけど複雑なのはめんどそう
>>763 単語だったのか
びっくり( ・_・;)
>>758 速度言ってるが、ベンチすらしたことなだろ
>>757 foo()->bar(); 4だと使えない?
call_user_func(array(foo(),bar))とか
>>756 self
ごめん情緒不安定だったから許して
何を?
769 :
758:2007/06/06(水) 04:40:45 ID:oqXEdx16
>>761 DBを使う予定なのですが、
PHP4ではPDOが使えないので、分けようと思いました。
PDOは速度面キャッシュ効率などパフォーマンスに優れているので、
PHP5ではそちらを使いたいなぁと。
4でも5でも使えるPEARはパフォーマンスは悪いですし、
標準DB関数でもいいのですが、めんどくさくて・・・
>>766 ベンチはとってないです。というのもまだ着手してないので。
結構大きいものになる予定なので、
簡単なものを作って比較するのでは誤差も微妙で参考にならないと思い質問しました。
>>769 PDOは確かにね
DBの条件分岐だけならほんの少しで済むだろうし
別に作る必要は無いと思われ
条件文自体は何個あろうが変わらん(誤差以下
771 :
758:2007/06/06(水) 05:14:44 ID:oqXEdx16
>>770 心強いアドバイスありがとうございます。
では該当部分は1ファイルにまとめて作りたいと思います。
早朝からわざわざありがとうございました。
pdoのあるなしだったらファクトリメソッドのパターンでも使ってみれば
773 :
nobodyさん:2007/06/06(水) 10:25:01 ID:jwkhTokv
簡単なアバターチャットを作ってみたいのですが
どこか、初心者でもわかりやすい
解説サイトありますか??
お願いします。
774 :
nobodyさん:2007/06/06(水) 10:26:32 ID:jwkhTokv
775 :
nobodyさん:2007/06/06(水) 10:50:10 ID:xvgl2fqU
>>747 それは違うのではないでしょうか。
正しくは 「文字列型が実は全て配列型で構成されてる」 で、
簡単に言うと 「文字列は文字の配列」 ですよね?
文字が配列としてとりだせるってバグじゃないのかw
知らなかった。PHP使ってないけど。
$hoge = "PHP-kuso";
$hoge[3] = "\0";
print $hoge;
こうしたらどう表示されるの?
ためしてみてからきいてんの?
779 :
nobodyさん:2007/06/06(水) 11:49:24 ID:KZlHfOQY
最近、エディタを開いただけでやる気を喪失して、疲労感を覚えます
これは何という名前の虚弱生でしょうか?対処方法はありますか?
>>776 バグじゃないよ
マニュアルにもちゃんと書いてある仕様だよ
>>779 おれも、最近はオンラインゲームにどっぷりつかってプログラミングから遠ざかってる
>>779 糖尿病
>>781 俺もオンラインゲームにどっぷり
やっぱパソコン持っててオンラインゲームやってないやつってクズだよな
>>779 それはバグです
マニュアルにもちゃんと書いてある仕様だよ
>>779 俺なんてエディタのアイコンをダブルクリックする気力すら湧かないぜ!
だれか雑談スレつくって
786 :
nobodyさん:2007/06/06(水) 15:13:12 ID:y4bZ9a73
キャッシュ切ってるだけです
>>786 <?php
echo "Hello\n";
ob_flush();
flush();
sleep(2);
echo "World\n";
?>
791 :
790:2007/06/06(水) 16:06:47 ID:???
すまん、更新したらちゃんと2秒後に出てきたわ
function fluch_echo($str,$sleep=0){
ob_flush();
flush();
sleep($sleep);
echo $str;
}
fluch_echo ("Hello\n",2);
fluch_echo ("World\n",2);
こんなの作ってみたんだがどうだろ
792 :
nobodyさん:2007/06/06(水) 16:11:53 ID:y4bZ9a73
>>789-791 どうもありがとうございます。
こんな面白い関数があったのですねー
早速これをつかって色々遊んでみます。
>>792 ちなみに<table>タグ使ってるとでない。
これはブラウザの仕様。
閉じた段階で表示される。
>>793 じゃあ
ob_flush();
flush();
これは、ブラウザ側で処理しろって命令するってこと?
>>794 出力はいろいろなところでバッファリングされる
ob_flush( ) でPHPのバッファをApacheにフラッシュ
flush( ) でApache内のバッファをブラウザへ出力
<table>があると</table>が来るまでブラウザ内にバッファされて表示されない
>>795 サンクス
バッファについてはサッパリなのでちと勉強してきますわ
>>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";
?>
798 :
nobodyさん:2007/06/06(水) 17:43:37 ID:sQx6t4Ws
比較演算子ってどっち使ってます?ANDとORそれぞれ。
|| か or か、 &&か and か。
条件式の変数が長い単語のときは読みにくいから || かなぁ
短かったり関数だったりする場合はorとかORとか書くかな
カタカナ多すぎてわからないが
>>ob_flush( ) でPHPのバッファをApacheにフラッシュ
これ以降の出力をメモリに格納
>>flush( ) でApache内のバッファをブラウザへ出力
今まで溜めたものを射精して、通常処理でFA?
あとネストってなにがネストってるんだ…
>>798 つかそれは論理演算子…。
優先順位が違うから基本的に&&||だね。
or exit()くらいにしか使わんなぁ。or exit()自体もほぼ使わないけど。
803 :
nobodyさん:2007/06/06(水) 18:27:10 ID:sQx6t4Ws
804 :
nobodyさん:2007/06/06(水) 18:34:02 ID:2+2ZUG2D
縁があって、自宅に方向幕と方向幕専用の装置(?)があるのですが、
この方向幕が何の電車(○○○系)に使われていたのか、知りたいです。
方向幕の装置は手で動かすハンドルが付いており、
電動式ではないようなので、かなりの年代物のようです。
印刷されているコマの駅は、山口県の一部(宇部・宇部新川・下関・厚東など)と、
日豊線の門司港〜大分間、鹿児島線の門司港〜川尻間、あと長崎線です。
幕の痛み具合から日豊線で使用されていた物のようなのですが、
それ以上のことは分かりません。
『急行』と書かれたコマがあるものの、多分普通電車の方向幕だと思います。
また、小郡が『新山口』となっていないので、やはり年代物でしょうか。
どなたかお詳しい方いらっしゃったら、どうぞ宜しくお願いします。
>>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);
}
に書き換えたところ上手く動作するようになりました。
なぜこんな所で動作の違いが生じたのかは解りませんが、とりあえず動作するようになったので報告させて頂きます。
有り難う御座いました。
807 :
779:2007/06/06(水) 18:54:27 ID:???
みなさんのご教授も虚しく、今日のテストに間に合いませんでした
レスくれたみなさん、本当にありがとうございます
明日からは首にならないように皆さんの意見を取り入れ、こっそりオンラインゲームしようと思います
これはいい現代人ですね
>>779 欝じゃね、精神科いってこい。
いやマジな話、この業界多いから。
ただニートになりたいだけちゃうんかと。
趣味でPHPやってますが、今は立派なニートです
>>809 今かなり大きな仕事やってまして、主任を任されています
これさえ終われば・・・と思ってはいるのですが、このままでは本当に鬱病になりそうです
明日こそは頑張ってオンラインゲームじゃなかった仕事します
>>806 >session_id(md5(uniqid(rand(),true)));
なんでわざわざ、自前でこんな事やってんの?
PHPが発行してくれるセッションIDは十分に信頼できるランダム性を持ってるぞ。
>>811 よお同士。"そのうち"頑張ってPHPの仕事見つけような!
>>813 欝は表に症状が出たら手遅れだから
早めに病院いったほうがいいよ
> 明日こそは頑張って(略
典型的に欝になりやすいタイプだな……無理して2ヶ月休職とかなる前に手をうっとけ
あと がんばるな
rand()なんて使ってる童貞まだいたんだ
>>806 session.entropy_file = /dev/urandom
session.entropy_length = 32
これで十分
>>806は何がしたいのかまったくわからん
どうしたらこんなコピペみたいなソースが書けるんだ?
鬱やら情緒不安定てw
おまいらガンガレ!ガンガレ!超ガンガレ!
「頑張れ」って鬱には逆効果なんだっけ
>>820 頑張れ、は確か痴呆症の人に言ってはいけない言葉だったと思う。
鬱の人には、頑張れ、といってあげると気分が楽になると思うよ。
>>820-821 生真面目な人はうつになりやすいので
頑張れ、とかいうとホントに頑張っちゃって病状悪化するので言っちゃだめ
と、マジレス
散々本とかに逆効果とか書いてるし、医者にも言われるだろうし、
鬱の人間にもそれは分かってるはず。
言われても相手に悪気がないのも分かるし、
言われても気にしなければいいと言うことが分かっているのに、
なぜか病状悪化するんだよな。
確かに
>>823の言うとおり生真面目すぎるんだろうな。
825 :
717 ◆.Ia5JkzwT6 :2007/06/06(水) 23:43:50 ID:RCcsVPbu
>>812 めちゃめちゃですか?もうちょっと具体的にお願いします。
ちなみに最後から二行目の括弧はミスです。
>>814 特に根拠は無いのですが、なんとなく少しIDが短かいようで不安になったので、idを長くするためだけにやっています
>>817 マニュアルのコピペです
>>818 良く意味が解らないので保留にしておきます
と言うかそれ、窓だと動かないのでは?
>>819 ほとんどsession_regenerate_idが古いファイルを消してくれなかった頃に書かれた物のコピペですが、そんなに変でしたか?
やりたいことは毎回session_regenerate_id(true)と同等の動作をさせたいだけですが、前述の理由で長ったらしいコードになっています。
症状悪化して最終的に楽になるってことだろ。
って書くとむきになってマジレスしてくる奴とかは鬱になりやすいので
にちゃんなんだからとさらっとスルーできるようにしましょう。
rand(1,2)
これで明日の運勢を決めてる
∧_∧ <今日はがんばらないことにしたんだ
( ´・ω・`) ∧_∧
/ \ ( )うんうん、それがいいよね
.__| | .| |_ / ヽ
||\  ̄ ̄ ̄ ̄ / .| | |
||\..∧_∧ (⌒\|__./ ./
||. ( ) ~\_____ノ| ∧_∧
/ ヽ 賛成だね \| ( )
| ヽ \/ ヽ. ぼくもそうするよ〜、だってそれがよさげだもん
| |ヽ、二⌒) / .| | |
甘えは捨てろ。さもないと、お前を射殺する。
犯罪予告キタ━━━━(゚∀゚)━━━━ッ!!
すみません 凄く基本的な質問ですが
実際にはLinuxのサーバで動かすプログラムをwinでコーディングするって
問題ありますか?
もちろんphpやSQLのバージョンは同じという前提ですが…
>>831 難しいことしないにしても、マニュアルのファイル操作系関数はよく見ておいたほうがいい。
あとファイル名規則はLinuxにあわせること。大文字小文字にも注意して。
>>831 コーディング自体は何使っても問題無いが、
途中の動作テストをwindows上でやるのはあまりお勧めできない。実機がなければ、VirtualPCとかを使えばマシか。
文字コード改行コードの違い、マルチバイトの正規表現、CLI まわりは特に注意する。
>>825 >めちゃめちゃですか?もうちょっと具体的にお願いします。
>なぜこんな所で動作の違いが生じたのかは解りませんが
って書いてるんだから、変更に意味があると思ってないでしょう?あなたも。
そもそも元質問
>>717の駄目原因、
>session_start();session_regenerate_id(true);では駄目でした。
session_regenerate_id(true);がソースのどこにあるのよ。
836 :
虚弱PHP:2007/06/07(木) 11:32:02 ID:???
>>825 ID被り&推測可能かが心配なら自前でMD5にするより
session.hash_function = 1
でSHA1にしたらいいんじゃあるまいか。
ソース見るとversion 5使っている奴だと思えないけどね。
838 :
717 ◆.Ia5JkzwT6 :2007/06/07(木) 18:40:54 ID: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しても大丈夫なのか解らずじまいですが、当面はこれで問題も出なさそうですし、解決したと言う事にして置きます。
アドバイスくれた方々有り難う御座いました。
839 :
nobodyさん:2007/06/07(木) 21:06:49 ID: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ページ目の「任意の日付を選択」の作り方を教えてください・・・。
よろしくお願いします。。。
840 :
839:2007/06/07(木) 21:14:18 ID: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>
");
843 :
nobodyさん:2007/06/07(木) 21:34:48 ID:4r7P9twq
>>841 form使用してるんだけど無理なんです。
>>842 hiddenかぁ、ちょっと調べてきます。
略している部分があるけど、書き方はこれであってる?
聞く立場でずいぶんな口調なやつがいるな。
>>843 任意の日付の選択の作り方なのかHTMLフォームの文法チェックしてほしいのか
はっきりしろよ。
何がわからなくて何を教えてほしいのかはっきりしない質問はクズ質問だ
847 :
nobodyさん:2007/06/07(木) 21:54:01 ID:4r7P9twq
>>847 ふむ、それでそのフォームでどう駄目だったわけ?
>>848 >>840の記述をして、
次のページに移動しても
$_GET['q1']と.$_GET['q2'].の値を受け取ることができません。
<form action=\"testf_3.php=".$_GET['q1']."&q2=".$_GET['q2']."\" method=\"GET\">
↑
この文法であっているのでしょうか?
つかそれじゃ表示もされないんじゃないの?
>testf_3.php=".$_GET['q1']."
間違ってるに決まってるだろ。
>>839 >PHPの作成は今回が初めてです。
他のプログラム言語でも作ったことが無いんだろ。
素直に言えばいいのに
>>840 <form action=\"page3.php="..$_GET['q1']."&q2="..$_GET['q2']."\" method=\"GET\">
日付のデータは受け取れて表示されています。
ほかのデータはまったく表示されていません。
853 :
nobodyさん:2007/06/07(木) 22:13:03 ID:zFLdGIyc
今、オブジェクト指向の勉強に入ったんですが(PHPで)、インターフェイスがよくわかりません。
色々しらべたところ、Javaの本には「インターフェイスで多重継承を実現する」とか書いてあるものがありまして、
しかし、中身は、インターフェイスはメソッドの中身は定義されていなくて、いちいち使用するクラスのほうで
中身を書かなくてはなりません。多重継承できるなら、継承したすべてのクラスのメソッドが使用できると解釈してしまうのですが。。
継承したメソッドを使用できなくては、「多重継承を実現する」という日本語を使うのはおかしいとおもうのですが・・
せめて、「多重継承の真似事ができる」くらいにしか表現できないとおもうのですが・・
初心者のうちはあまり深く考えずに、どんどんソース書いた方がいいですか?あまり気にしないほうがいいですか?
Javaのほうで質問しようとおもいましたが、私はJavaはよくわからないので・・
↑こういうのを無言で張るやつって、なに考えてるんだろうな
>>853 10行中に生齧りで自分が書いてても判ってない言葉が一杯あるのがよくわかるから
まあ、そんな自分でもわかってないことを質問するよりは10000行ぐらいコード書いてから来なさい。
>>853 多重継承という機能はJavaの世界では糞と呼ばれています。
859 :
853:2007/06/07(木) 22:38:23 ID:???
>>855 僕宛なんですかね??怖くて踏めませんが・・
>>856 わかりました。自分でもよくわからないまま質問しました。もっとたくさん書いてからですね。
>>857 わかりました。というか、わからないんですが、多重継承が糞と呼ばれてることだけは、
おぼえておきます。
皆さん、どうもありがとうございました。どんどん書いてみます。
860 :
853:2007/06/07(木) 22:40:41 ID:???
>>858 レス、すれ違いになってしまいました。
どうもありがとうございました。気持ちを分かっていただいた上で
気にしないでいいということなので、気にせずにどんどん進めていきます。
ありがとうございました。PHPは面白いですね。Cだと、コンソール画面に向かって
短いプログラムを作ってるだけなんで。
みなさん、ありがとうございました。
>>861 ありがとうございます!!
今から頑張ります。
863 :
nobodyさん:2007/06/08(金) 01:15:57 ID:YM7YDoyY
error_reporting = E_ALL
にしてると、注意で「Notice」が表示されるけど、
表示されるようにしておいたほうがいいのかな?
それとも、Noticeくらいならぜんぜん問題ないのかな?
864 :
nobodyさん:2007/06/08(金) 01:24:20 ID:rQuqM37d
こんばんは。
初めて読ませていただきましたが、みなさん面白いですね。
私も仕事でPHP等使ってますが、この掲示板のところどころに
見覚えのある単語がかかれていたので、つい最後まで読んでしまいました。
私の環境では、PHP3,4,5サーバーが混在するので、怖くてクラスの機能は超基本的な部分しか使ってません。
多重継承... 試したことがありません。(おそらく動くでしょうけど・・・)
3とか使ってるほうが怖いよ
866 :
nobodyさん:2007/06/08(金) 01:39:02 ID:rQuqM37d
あるんですよ。これが・・・
4〜5年前のもの。
各種2〜3バージョン前のもの。
ほとんどが手続き型で保守がしんどい・・・。
ざっくり再構築したいのだが・・・
ま、明日もがんばります。では!
869 :
nobodyさん:2007/06/08(金) 07:02:43 ID:YM7YDoyY
>>868 だよね、一番良い対策はそれだよね・・・
if($_POST['check']){
でNoticeが出るんだけどなんでだろ
結構この書き方使うのに・・・
isset、empty使いましょう
>>869 未定義の変数を評価しようとしてるからだよ
外から来た変数が空か、定義されてるか調べるには
empty($_POST['check'])とかisset($_POST['check'])
Notice出たことないな
Fatalばっかし
htmlでいうところのstrictかtransitionalかってところだな。
PHPは多重継承できないから。
初心者が間に受けるからオマイラ適当なこというな
多重継承という負の遺産まで、Javaを真似て取り込んじゃうのがPHPクオリティー
多重継承はできないけど、合成関数で多重継承ライクなことはPHPでもできるよ。
>>852 > <form action=\"page3.php="..$_GET['・・・・
というか
<form action=\"page3.php?".$_GET['・・・・
じゃ。
二重エンコードされたURLを判別する方法ってありますか?
二重でコードではなく一度だけデコードしたいのですが。
ぐるぐるデコードしていって最後に一度エンコードすれば
>>878 エンコードされていない文字列が入ってきた場合に問題が…。
>>877 おまえの家に鍵が二つあったとして、2つ鍵をかけた。
その鍵を2つとも一回であけたい
こういうことか?
<?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>");
?>
もっとスマートに記述する方法、教えて偉い人
>>880 入ってくるデータが
URLエンコ*2
URLエンコ
の二種類あり前者ならURLエンコを、後者なら元の文字列を得たい、ということです。
<?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>");
?>
>>882 二種類のユーザー定義関数を作成して、条件判断して振ればいい。
883です、
もっと、シンプルに記述するにはどうすればいいですか
マニュアル読んでも、わからないので
889 :
nobodyさん:2007/06/08(金) 12:25:52 ID:I6Gynhm5
IDのことですか
これでいいですか
マニュアルのどの辺読んだんですか
ここの人なら簡単だと思って聞いたのですが、
あんなコードでも使えるので、もういいですよ
では、
二度と来ないで下さいね
配列の保持が必要ないなら
for($i = 35; $i < 43; $i += 0.1)
とか、PHP5以上なら
range(35,43,0.1)
とか。
>>883 俺ならそんな配列をわざわざ作らないでPHPに計算させる
>>882 "%" を urlencode すると、 "%25"になるよな?
で、"%25" をurlencodeすると "%2525"になる。
ここで、"%2525"が与えられたときに、
これが"%"を2重エンコードしたものか、"%25"を一回エンコードしたものか
どうにかして判断できないかってこと?
入力データ依存のヒューリスティックな推測以外ないだろうね。
>>882を見る限り、普通に1回デコードすれば当人希望の状態になる気がするんだけど。
URLエンコ*2→「前者ならURLエンコを」
URLエンコ→「後者なら元の文字列を」
でしょ。
2回エンコード後が %2525 → %25 (元は "%")
1回エンコード後が %2525 → %25 (元がこれ)
>>894 $iとかの一文字ってわかりづらいんですけど
みんながこういう変数を使うのは何でですか?
ループのカウンタが i, j, k だったりするのは慣習。
「そもそもはFORTRANでどーたらこーたら」とか言う話を聞いた記憶が。
本物も偽物も早く死ね
903 :
896:2007/06/08(金) 14:27:51 ID:???
>>897 そうは思ったんだけど、
いくらなんでもそんなこと人に聞かないよなと思ってエスパーのふりしてみた。
phpでMySQL使うときはmysqlとmysqliどっちがええのん?
905 :
nobodyさん:2007/06/08(金) 14:45:02 ID:Xs31IcmG
$test = "abcdefvhijklmnopqrstuvwxyz0123456789あいうえおかきくけこさしすてそ";
を10文字単位で区切り文字を入れたいのですが
どうやらばいいのでしょうか?
906 :
nobodyさん:2007/06/08(金) 15:02:23 ID:6ggljLpp
10000000000 * 10000000000
百億 * 百億 の結果を整数で表示したいのですがどうしたらいいのでしょうか?
908 :
nobodyさん:2007/06/08(金) 15:20:48 ID:JzH9jcRm
ふと思うんだけど
クラスの利点は再利用って言うけど
ユーザー関数郡をインクルードしたって同じじゃないの?
別に中の変数名違うのでもグローバルしなきゃ大丈夫だし
>>905 10文字づつmb_substrで配列にして
forで好きな文字はさんでもどせば?
910 :
nobodyさん:2007/06/08(金) 15:25:31 ID:6ggljLpp
>>907 ありがとうございます。
echo bcmul(bcmul('10000000000', '10000000000'), bcmul('10000000000', '10000000000'));
で百億の四乗とかやってみたかったのです。
もう少し見やすくする方法はないですよね?
>>910 > bcpow ? 任意精度数値をべき乗する
912 :
nobodyさん:2007/06/08(金) 15:44:38 ID: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);
}
>>908 それがそもそもの間違い。
よくクラスはその書き方から名前空間の付いた関数群のようなものと思われがちだが、
クラスは関数よりの概念ではない。
クラスとは型であって構造体とかもっと言ってしまえばスカラー型に近いもの。
クラスの再利用っていうのは処理の再利用ではなく型の再利用。
メソッドはクラスメンバを操作するためにある。
フィールドとメソッドを内包してカプセル化することにより、
それが一つの物として機能することに価値がある。
火打ち石で何かに火を付けるよりライター1つみたいな。
とまぁ長々書いたがとりあえずクラスとは関数群ではなく型であるということを覚えておいてほしい。
915 :
nobodyさん:2007/06/08(金) 16:17:15 ID:ORXPTs1E
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\test\tenki2.php on line 59
WEB上のサンプルファイルを試してたら上記のようなエラーがでましたが
どのような意味みなるのでしょうか?
終わらすには早いよ〜何か抜けてるよーって意味だ
どうせ ;か } あたりがぬけてんだろ
>>908 一度作ってしまえば、あとは中の人が頑張ってくれるんですよ。
918 :
nobodyさん:2007/06/08(金) 16:31:55 ID:ORXPTs1E
919 :
914:2007/06/08(金) 16:38:48 ID:???
>>908 ちょっと書き方が悪かった。簡潔に
自身の振る舞い方を知っている型。
と言った方がいいかもしれん
920 :
nobodyさん:2007/06/08(金) 17:11:03 ID: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あいうえおかきくけこさし/すてそ
--
ちょっと前に自分で書いたのはこんな感じ
あとマルチバイト関数使うときはエンコードちゃんと指定した方がよかよ
921 :
908:2007/06/08(金) 17:43:33 ID:JzH9jcRm
>>919 あー
税金というクラスがあったとして
このオブジェクトはお金を計算する型です。
この中に格納して、いろんなメソッドを指定すれば
所得税や手取り金など、簡単に取り出せます
みたいな?
922 :
nobodyさん:2007/06/08(金) 18:14:44 ID:au/61P4H
>>905 UTF-8で書いているなら、 preg_replaceを使って簡単に書けます。
$string = 'abcdefvhijklmnopqrstuvwxyz0123456789あいうえおかきくけこさしすてそ';
$string = preg_replace('/(?:^|\G)(.{10})/u', '${1};', $string);
923 :
nobodyさん:2007/06/08(金) 18:55:15 ID:Xs31IcmG
>>920 ありがとうございます
文字コード指定するようにしました
>>922 残念ながらUTF-8ではなくEUC-JPです
なので今回は利用できそうにありません
しかし次回機会があったら是非使わせていただきます
ありがとうございます
924 :
nobodyさん:2007/06/08(金) 20:13:13 ID:rQuqM37d
925 :
nobodyさん:2007/06/08(金) 20:56:58 ID:rQuqM37d
$test = "abcdefvhijklmnopqrstuvwxyz0123456789あいうえおかきくけこさしすてそ";
for ($i=1; $i<=mb_strlen($test); $i++){
$string.=mb_substr($test, $i,1);
if ( ($i%10) == 0 ) {
$string.="/";
}
}
echo $string;
かな〜。
単純そうでやり方が思いつかないのですが
アルファベットを順番に表示させたいのですが…
< a href="hoge.html?$search=A">A行</a>
927 :
nobodyさん:2007/06/08(金) 21:02:43 ID: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>
とリンクを作りたくて…
ねえ?
なんでくだ質系のスレは回答する人も初心者さんばかりなの?
929 :
927:2007/06/08(金) 21:11:45 ID:SfnUwTBh
<?
$abc = "A";
for($i=1; $i < 27; $i++) {
echo '<a href="?alphabet='.$abc.'">'.$abc.' </a>';
$abc++;
}
?>
そんなアホなと思いつつこれでできちゃうんですね…
でも小文字は変換するしかないのかな
930 :
nobodyさん:2007/06/08(金) 21:15:34 ID:rQuqM37d
問題が初心者向けだからだ>928
>>927 for($i=65;$i<91;$i++){
echo '<a href="hoge.html?search='.chr($i).'">'.chr($i).'行</a>'."\n";
}
932 :
nobodyさん:2007/06/08(金) 21:21:21 ID:rQuqM37d
お。基本的なCの命令文(?)は、PHPマニュアルにはないから見落とす。
さすがですね。
>>931 あ!ありがとうございます
chr()調べにいきます…
934 :
nobodyさん:2007/06/08(金) 21:35:22 ID: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...の項目でソートすることは
出来ないでしょうか?
935 :
nobodyさん:2007/06/08(金) 21:45:29 ID:/7xjylPa
>>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);
mysqlをはじめてつかうならiはあとからにしろ
iは拡張版みたいなもんじゃね?
$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'] = "シー";
のように変更したいと考えています
942 :
nobodyさん:2007/06/09(土) 12:22:29 ID:j2tEU2dd
mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS
この設定のとき、EUCで作成したファイルはSJISの問題に関する対処を入れておくべきでしょうか?
ftp_put()使ったときに
多くのFTPクライアントみたいに
改行コードを自動的に書き換えるようにしたいのですが、
普通にstr_replaceあたり使ってシコシコするしかないですかね?
なんか簡単な方法ないでしょうか。
改行コードの識別時点でかなりだるそうなのですが。
\n に統一 str_replace(array("\r\n", "\r"), "\n", $str)
\r\n に統一 preg_replace("/(?<!\r)\n|\r(?!\n)/", "\r\n", $str)
>>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);
かな
それかユーザ関数作る
946 :
940:2007/06/09(土) 12:52:17 ID:???
947 :
nobodyさん:2007/06/09(土) 20:43:27 ID:RIHYcObC
正規表現で文字列を検索したいのですが、
""や''内は検索の対象外としたいです。
どうすれば可能でしょうか?
948 :
nobodyさん:2007/06/09(土) 22:00:20 ID:fw4XPRkl
>>947 何がしたいのか、漠然としすぎてて答えにくいが、PHPの中で検索したいのか?
タグ内の文字列を検索条件から取り除きたいのなら、まずstrip_tagsした後に、抽出するとか
951 :
nobodyさん:2007/06/09(土) 22:28:58 ID:fw4XPRkl
>>950 先ほどの質問をした者ですが、
繋がらない理由を教えていただけませんか?
インターネットエクスプローラーなら繋がるのですが、
>>951 そもそもlocalhostって何か理解してますか?
大人が小学1年生を相手にしているような流れですね
954 :
nobodyさん:2007/06/09(土) 22:39:26 ID:fw4XPRkl
>>952 先ほど質問した者ですが、localhostの意味がわからないので説明してくれませんか?
小学6年生が1年生の世話を嫌々見ているようなインターネッツですね
あまりにもPHPと関係がないことに感心します。
>>954 スレ違いだと言っているけれど。ついでだから教えてあげる。
IEは localhost→ hostsファイルを参照→ 127.0.0.1 (自分自身) と解釈して、自分のPCに繋がるわけ。
どうせi-modehtmlシュミレータは、それを解釈できないだけでしょ。
設定画面か何かに、hostsファイルを参照するとかその辺の設定があるはず。んでそれがOFFになっていて解釈できないと。
だからPHPは全く関係ない。
959 :
nobodyさん:2007/06/09(土) 22:48:11 ID:fw4XPRkl
>>958 先ほど質問した者ですが、
設定はONにしてありますが、接続出来ないのです。
これはなぜでしょうか?
>>959 ・そのシュミレータとやらを一回再起動したりした?
・あと
>>948 は試してみた?
・パーソナルファイヤーウォールとかで蹴られていないか?
何故でしょうと聞かれても、エスパーじゃないから出来ない。
一つづつ可能性をつぶしていけよ。 これ以上は自分でググってがんばれ。
961 :
nobodyさん:2007/06/09(土) 23:01:02 ID:fw4XPRkl
962 :
nobodyさん:2007/06/09(土) 23:12:39 ID:yCd1SwCo
$object->arrayvar[$key]
とは書けないですよね?
$object1->object2->var
はできるのになんなのこの言語。
文字の取り扱い、重荷サニタイズについての質問です。
1 mysqlへのデータ格納時にサニタイズしなければならない文字
2 html出力時にサニタイズしなければならない文字
3 get/postでのデータ受け取り直後にサニタイズしなければならない文字
を教えていただきたいです。
また、htmlspecialcharsでjavascriptなどの特殊なスクリプトの埋め込み攻撃を完全に防げるのかどうか教えていただきたいです
また、上記すべての設定ではmagic_quote gpcの設定をonで使用することを前提としてのアドバイスをお願いいたします
965 :
◆yBEncckFOU :2007/06/09(土) 23:25:21 ID:Op34nGQd
アゲ忘れです(TT;
>>964 先ほど質問した者ですが、 質問は1人1つまででお願いします
>>964 SQLInjectionとXSSがごっちゃになってるような
お約束ってことで「サニタイズ言うな」
1はそれぞれDBのエスケープ用の関数なりプレースホルダーなりを使う
2はhtmlspecialchars
3はいらない
968 :
◆yBEncckFOU :2007/06/09(土) 23:55:24 ID:Op34nGQd
不特定のURLから取得したファイルについて、
ファイルの内容(テキスト、画像、動画など)を判別する方法を教えてください。
$url = '
http://www.sample.com/****';
$file = file_get_contents ($url);
971 :
◆yBEncckFOU :2007/06/10(日) 00:13:58 ID:isb7MrtT
972 :
nobodyさん:2007/06/10(日) 00:25:41 ID: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...
といった結果が得られて思うような結果(掲示板のレス数)が得られません。
どのようにすればいいか教えてください。お願いします。
>>972 先ほど質問した者ですが、Resource id の意味わかってますか?
975 :
972:2007/06/10(日) 00:43:15 ID:qbDoORWs
>>973 レスありがとうございます。
Resource idは分かっていません・・・。
ぐぐってみましたが有用な情報は得られませんでした。
Webプログラムは検索が難しいです。
もう少し考えてみることにします。
ありがとうございました。
976 :
nobodyさん:2007/06/10(日) 00:49:58 ID:17od7jmr
SQLを出力するクラスにWHERE情報を加えたいんだが、
ANDとORのグルーピングを考えるとどうしても一つの条件を
オブジェクトまたは配列にしないとうまくできないと思った。
けど、できますか?
またはよく言われているcriteriaクラスとかはどうやってるんでしょうか。
>>975 マニュアル嫁
>>1 $ret = mysql_query($sql);
while ($a = mysql_fetch_assoc($ret)) {\
var_dump($a);
}
>>976 先ほど質問した者ですが、前半はコード出して
後半はググれ