【PHP】下らねぇ質問はここに書き込みやがれ 62
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
【簡易FAQ】 (3/3) 21. 画像処理一般 or GDの限界 → ImageMagick(PECLのやつ or シェルから実行) 22. 画像・音・動画はファイルで保存?DBに保存? → 好きにしてください
テンプレ長すぎwww もっと、短く簡潔にまとめろよ。 話が長い使えない上司と一緒。
別にいいじゃん7秒でテンプレ貼れるんだから。
√ ̄ヽ--ヘ
/ ☆ ヽ
0く━=ニニ二>
//(●) (●) \
/ ヘ (__人__) | ■■ 自宅警備員へお知らせ! ■■
/ヽノ彡,,.. .|∪| /
/ 丿,, /\ヽノ/ゝ 丶 2008年1月11日午前6時(日本時間)より
(  ̄jヽ,/_l ヽ 「2ちゃんねる」が12時間にわたって停止
\ ____ ̄{。 _____ } します。自宅警備を強化し待機せよ。
ヽ、,,_, {---} }。 {---} j
【2ちゃんねる停止】 2ちゃんねるが12時間にわたって停止
http://mamono.2ch.net/test/read.cgi/newsplus/1199955812/
ゝ _{ 《 ー/: : : : : : //: : : : : : : : : : : : : : : :l: : : : : :', ' ∧ 《 /: : : : : : /': : : : /: : : : : :/: :/: : |: : : : : : ', / /: :ゝ《 ,: : : : : : /: : : :/: : : : : /: /: /: : /: :l: : : : : ', / /: : : : 《 l: : : : : : l: : /: : : : : /: /:/: : /: : l|: : : : : :l l: /: : : : : :》ー:!: : : :-‐1:´: :_; :-‐≠: ///: : :∧: : l|: : : :l : | l/: : : : : : :《 ∧: : : : : |三ー-/、/´ 〃::/ ハ: :l|: : : :l : | /: r ⌒)\: 《 ハ.: : : : :!ヘヤテ云圷ミー /イ示テイ: :∨: : :/: :/ 'r=',イ { ヘ《 \: : |\とう斗′ 辷ぅ イ:l: :/: :/l/:/ 下らねぇ質問は /f´/ l レ⌒ヌ《 ーi\\ 丶 ,! /、l:/://》 /'´ ここに書き込みやがれ : }/ l r' ヘ》 |トヽ c- ァ ィ》 /イ ー《 ちび : :| | { 《 | > 、 _,. <´j_ 《 》 : :| | レ⌒l《 |\ / ( / 》 《
12 :
nobodyさん :2008/01/10(木) 22:09:38 ID:RXHuRxCJ
CenOS5に、諸事情でphp-4.2.2-17をインストール必要が出たのですが、 php-4.2.2-17.src.rpmからrpmbuildしようとするもエラーが出てしまいました。 どなたか、上記のような事を試した人おりませんでしょうか? また、成功した方がいましたら是非ご教授下さい。宜しくお願いいたします。
13 :
nobodyさん :2008/01/10(木) 22:39:53 ID:SBFfSjuO
現在zabian上でPHP-4.2.2を使用しております。 mail関数で送信されるメールの中身を表示させる方法ってありますか? FALSEが返ってきてメールが送れていないみたいなので、中身を確認したいと思っています どうかご教授お願いします。
普段、馬鹿だとかアホとか罵っている奴が、 ちょっと難しい質問が来ると絶句して何もレスしなくなる件について
15 :
nobodyさん :2008/01/11(金) 00:44:55 ID:9vffPb9l
PDOでシングルクォートの中の変数を展開できるようなのを見かけた記憶があるんだけど、 記憶違いですかね?
18 :
nobodyさん :2008/01/11(金) 01:10:04 ID:9vffPb9l
>>17 'SELECT * FROM user WHERE num=$num'
の$numが展開されるみたいなやつです
シングルクォートの中でも展開されるみたいな説明文を読んだ記憶が
$sql = "SELECT * FROM user WHERE num='$num'"; こういうのじゃなくて? あとはプリペアードステートメントの事をなんか間違って覚えてるとか
21 :
nobodyさん :2008/01/11(金) 01:33:05 ID:9vffPb9l
すいません 勘違い確定かも 以前PDOの検索結果を渡り歩いているときに見たような気がしたんだが ?を置き換えるように$varもPDOが自動的に展開するようなのがあるのかなと思ってた
fgetcsvで読んだときに、文字列中の”を取得する方法って無いでしょうか? "ABC",123,"DEF"GHI",456 の時に、 ABC 123 DEF 456 となってしまいました。 「DEF」を「DEF"GHI」でとる方法有れば教えてください。 それと >17. CSVやTSVのファイルをスマートに扱いたい > → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。 これが気になったのですが、どんな症状が出るか?どこか解説無いでしょうか?
パラメータにstring $escapeってのがあるじゃん
あれ?まだ2ch動いてんの?
この切り替え作業が予定通り進みましたら、約1秒のダウンタイムで切替が完了します。 この時、何らかの問題により一部のサーバー郡及びネットワーク全体に繋がらなくなる トラブルが発生した場合は、最大12時間のダウンタイムを頂戴する場合がございます事を ご了承ください。
ってことは、どっかでトラぶっているってことか?
約1秒のダウンタイムで切替が完了します。
わずか1_秒で赤射蒸着を完了する
>>22 それはCSVのフォーマットが間違ってる。
フィールド中に"を含む場合は""としなけりゃならん。
30 :
nobodyさん :2008/01/11(金) 15:59:45 ID:Y50d6JUn
ファイルから、特定の文字列ではまれた部分をブラウザに表示させないよう にしたいのですが、どうもうまくいきません。 何が間違っているのか検討がつきません。お力をお貸し下さい。 hoge.file 行1 行2 <-- コメント1 コメント2 コメント3 --> 行4 行5 [EOF] show.php $strings = file("hoge.file"); $mode = false; foreach($strings as $str){ if(strcmp($str,"<--") == 0){ $mode = true; }else if(strcmp($str,"-->") == 0){ $mode = false; } if($mode == false){ echo "$str<br>"; } }
アップロードPHPで、アップロード先を 試しにサーバーのスタートアップフォルダを指定したら 普通にサーバーのスタートアップにWEB経由でバッチファイルをアップロードできたんですが・・・・ すっげーこえーんだが・・・
なんでもないPHPのアップロードプログラムで、(オーバーフロー攻撃も何もない、そこらのアップロードPHP) winサーバーのスタートアップにバッチファイルを送り込んで、再起動時にバッチファイルを自動実行させて サーバーをクラッキングor起動不可能に出来るのか? PHP5.2.3 なんじゃそりゃ。PHPこえー
腹減った…飯にするか。
proxyから偽装投稿があったので、proxyが吐くHTTPヘッダーがあるものを アクセス禁止にしたところ、企業からアクセスできないという苦情があり、 裁判も辞さないなどと脅されています。 ただ、proxyはphpと共鳴してい発生するものであって、 proxyを個別にとって違法性を叫んでも意味がないと思うのですが、 phpの設定でどうにかなりましたか?
アクセスできないから裁判ってどんな中二企業だよ
>>32 んなのPHPに限らず、そう指定すれば当たり前だろに
>>37 そうなんですよね。私は、有料会員制のサイトをやっていまして、
料金だけとってアクセスできないのは詐欺じゃないか、と猛抗議で。
こちらとしては、HTTP_VIAやHTTP_X_FORWARDED_FORが来ているのでアクセスを禁止しているだけと
口頭やメールで説明しているのですが、分からないの一点張りで平行線のままです。
私としては、意図的にその企業をアクセス禁止にしている訳ではないので全くの濡れ衣です。
>>39 企業どうこうは知らんが、そこのプロキシサーバだけ許可してから
他のプロキシはじけばいいんじゃねぇの?
>>39 その企業がアクセスしてきたら、これを出力してやれ
for ($i = 0; $i < 10000000000000000; %i++) {
echo "<img scr='a://baka'>";
echo "<img scr='
http://www.2ch.net/ '>";
}
なんだエロサイトか
>>40 >>41 ありがとうございます。確かにそうですね。
ちょっとソースを改造してみます。
>>42 するどい。やっぱり分かりました?
有料でバカそうな客だしなw ところでITで裁判て裁判官もよく分かってないから とんでも判決くらうこともあるから注意しろよ
礼なんか言ってる暇があったら、はやくしろ、さっさとしろ、いいからしろ
<img src="a://baka"> って懐かしいな でもこれFDドライブないと意味ないよな
プロ串は、犯罪ということを認識させるために、 法律を作って厳罰化してくれ。 プロキシサーバー接続禁止法 第1条 (プロキシサーバーでの接続禁止) 何人も、プロキシサーバーを経由して接続してはいけない。 第2条 (罰則) 第1条違反したものは、無期若しくは5年以上の懲役に処する。
>>48 携帯は、串じゃなくてgetewayだから無問題。
>>49 確認してないから多分だが
pearにあるんじゃない?
2kgwwwww
変なサンタ来たーーーー ってか、今更かよwww
>>50 そういやniftyのなんちゃらセキュロティ使うと思い切り串の環境変数吐くのを思い出した
っ「社内串」 っ「大学内串」
56 :
nobodyさん :2008/01/12(土) 16:03:26 ID:aex5ZIdg
指定したディレクトリ「cache」からファイル一覧を取得して、 そのファイルの更新日時を出力するというプログラムを組んでいるのですが、 opendirでカレントディレクトリ「opendir("./");」を指定した場合はきちんと表示されるのですが、 cacheディレクトリ、「opendir("/cache/");」と指定するとどうしてもエラーが出てしまいます。 ------------------------------------------------------- 以下がソースです。 <?php $strDir=opendir("/cache"); while($strFle=readdir($strDir)){ $localday = date("Y年m月d日 H時i分s秒",filemtime ($strFle)); print($strFle."<br>".$localday."<hr>"); } closedir($strDir); ?> ------------------------------------------------------- 以下がエラーメッセージです Warning: filemtime() [function.filemtime]: stat failed for date.txt in C:\Program Files\Apache Group\Apache2\htdocs\php\rss\file2.php on line 4 date.txt 1970年01月01日 09時00分00秒 ------------------------------------------------------- どうかよろしくお願いします。
opendir("cache");
58 :
56 :2008/01/12(土) 16:14:57 ID:aex5ZIdg
>>57 うーん・・・どうしてもディレクトリを指定した場合のみ「Warning: filemtime()」というエラーが出てしまいます・・・
4行目がいけないというのは分かってはいるのですが、どうしたらいいか・・・
./date.txt は存在しないからじゃないの
>>56 readdir()はファイルパスじゃなくファイル名を返すから、
ディレクトリパスを付加しないといけない。
面倒なのでRecursiveDirectoryIteratorとかglob()を使うという選択肢もある。
61 :
56 :2008/01/12(土) 16:36:53 ID:aex5ZIdg
>>60 色々とありがとうございます。
やってみます。
>>61 マジレスすると、おまえ自身がこの世に存在してないからだよ。
63 :
nobodyさん :2008/01/12(土) 16:48:07 ID:br4QB1Gf
入力画面でOKボタンを押すと入力内容の確認画面に移り、戻るボタンを押すと 前の入力画面に戻るというプログラムを作っています。 戻るボタンはonclick='history.back()を利用しており、入力画面に戻った時には 直前に入力した内容が残っておりました。 しかし、セッション管理をしたく、session_start()の文を追加すると、戻るボタン で戻った際に、直前に入力した内容が消えてしまいます。 onclick='history.back()から戻ったときのみsession_start()を省略するととか 出来ますでしょうか?何かヒントだけでも頂けないでしょうか? よろしくお願い致します。
64 :
nobodyさん :2008/01/12(土) 16:51:36 ID:lZDx/D8E
phpというより、apacheの問題かもしれないですが… ファイルをブラウザで開いたときに実行されるプログラムに エラー(noticeレベルでも)が多いと、ページの表示に時間がかかると考えて 良いんでしょうか? エラー発生→エラーログに書き込む→大量なら時間がかかる→表示遅くなる ってこと? また、php側でこのエラーログへの書き込みを抑制する方法ってありますか? いちいち警告してくれなくても実用上問題ないって場合、そういうのが あると助かります。 それとも、そんな制御しないほうがいいかな?
66 :
nobodyさん :2008/01/12(土) 17:28:06 ID:lZDx/D8E
>>65 どうもです
どうやって制御するんでしょう? すみません、教えてください
68 :
nobodyさん :2008/01/12(土) 19:19:53 ID:g6/EhvFh
<?php if (isset($_COOKIE["guest"])) { echo 'ただいまログイン中。'; } else { echo 'ただいまログアウト中。'; } で、クッキーに値が入っていても毎回ログアウトの表示がなされます。原因わかりますでしょうか。 ちなみに上記ファイルは他のPHPからincludeで呼び出しています。php4.4.7 さくらインターネットです。
制御の仕方もわからんやつが気にするレベルのロスじゃねーよ
君が次に書くべきコードは、 var_dump($_COOKIE); だと思うが、いかがか?
72 :
68 :2008/01/12(土) 19:35:19 ID:g6/EhvFh
>>69 ありがとうございます。
<?php
if (var_dump($_COOKIE["guest"])) {
echo 'ただいまログイン中。';
} else {
echo 'ただいまログアウト中。';
}
?>
としてみたら、
NULL ただいまログアウト中。
と表示されました。
クッキーは
setcookie("guest", "guest", time()+3153600, "/");
で入れています。
> if (var_dump($_COOKIE["guest"])) { ハァ?
74 :
68 :2008/01/12(土) 19:48:32 ID:g6/EhvFh
すいません。初心者で。 ページの別の場所で var_dump($_COOKIE); を実行したところ、 array(1) { ["guest"]=> string(5) "guest" } が表示されました。 ひとつのページに NULL とそうでないのが共存することはあるのでしょうか。 ちなみにファイル構造は ----A.php---- <?php include("B.php"); var_dump($_COOKIE); ?> ----B.php---- <?php var_dump($_COOKIE); if (isset($_COOKIE["guest"])) { echo 'ただいまログイン中。'; } else { echo 'ただいまログアウト中。'; } ?> みたいになっていて、B.phpの方がNullになります。
setcookieは?
76 :
68 :2008/01/12(土) 19:52:31 ID:g6/EhvFh
setcookieは別のC.phpで setcookie("guest", "guest", time()+3153600, "/"); で入れています。
>>74 B.php の var_dump の出力結果は?
自分は、これから外出するんで、回答はできないけど。
78 :
68 :2008/01/12(土) 20:07:26 ID:g6/EhvFh
まとめると A.php部分→「array(1) { ["guest"]=> string(5) "guest" } 」 B.php部分→「NULL」 と表示されます。(同じページに表示されます。) また、すべてのPHPはフォルダは違えど同じドメイン上に存在しています。
プログラミング経験なし。28のWEBデザイナーです。 これからコツコツとPHP勉強するならどの教材がオススメ? 「独習PHP」というのにちょっとひかれているのですが…。
>>78 小出しであいまいにじゃなくて全てを正確に出して
82 :
nobodyさん :2008/01/12(土) 20:47:18 ID:C+S8ANQW
pearをアップグレードしようとしたら HTTP error, got response: HTTP/1.1 404 Not Found Didn't receive 200 OK from remote server. (HTTP/1.1 404 Not Found) というエラーが出てしまいます。 これってどうすればいいんですか?
83 :
68 :2008/01/12(土) 20:49:49 ID:g6/EhvFh
>>68 です。すべてのデータをまとめます。(不要部分削除)
同じドメイン上、違うフォルダに3つのPHPがあり、それぞれ
----A.php----
include("B.php");
echo 'A部分:';
var_dump($_COOKIE);
----B.php----
echo 'B部分:';
var_dump($_COOKIE);
----C.php----
setcookie("guest", "guest", time()+3153600, "/");
です。
C.phpを実行したあとに、A.phpを表示させると
B部分:NULL
A部分:array(1) { ["guest"]=> string(5) "guest" }
(↑当然ですが、ひとつのページに表示されます)
と表示がでます。最終的にはB.phpでcookieによる
条件分岐を実施したいのですが、B部分でcookieに値が
入っていないので断念しています。
B部分でもcookieが読み込めない理由がわかれば教えてください。
php4.4.7 さくらインターネットです。よろしくお願いします。
間違えた,B部分ね
86 :
68 :2008/01/12(土) 21:11:51 ID:g6/EhvFh
>>84 なぜなんでしょうか。。。原因わかりません。
今判明したのですが、B.phpを単独で表示させると
array(1) { ["guest"]=> string(5) "guest" }
と表示されるので、phpの記述ミス等は無さそうです。。
88 :
83 :2008/01/12(土) 21:38:01 ID:g6/EhvFh
>>87 >include時に httpから始めてたりしたら笑うな
そのとおりでした。。解決しました。
皆さんありがとうございました!
89 :
nobodyさん :2008/01/12(土) 21:38:08 ID:C+S8ANQW
>>87 thx.
とりあえずやってみたんですが、
# pear upgrade --force
http://pear.php.net/get/Archive_Tar http:// pear.php.net/get/XML_Parser
http://pear.php.net/get/Console_Getopt downloading Archive_Tar-1.3.2.tgz ...
Starting to download Archive_Tar-1.3.2.tgz (17,150 bytes)
......done: 17,150 bytes
downloading XML_Parser-1.2.8.tgz ...
Starting to download XML_Parser-1.2.8.tgz (13,476 bytes)
...done: 13,476 bytes
downloading Console_Getopt-1.2.3.tgz ...
Starting to download Console_Getopt-1.2.3.tgz (4,011 bytes)
...done: 4,011 bytes
No handlers for package.xml version 2.0
というというエラーが・・・・・・
90 :
89 :2008/01/12(土) 21:58:02 ID:???
スマソ 自己解決しました
>>88 だから
>正確に出して
って書いたのに。
どんだけ他人の時間と労力を無駄にしたと思ってるんだ。
情報小出し厨は放置の方向で
93 :
nobodyさん :2008/01/13(日) 09:27:43 ID:rbyeeIhv
@var_dump($_POST); Aecho "f_cate1>>>".$_POST["$f_cate1"]; とやって、 @の方は array(21) { ["act"]=> string(6) "修正" ["f_cate1"]=> string(37) "FOODメニューのカテゴリ名1"〜 って中身返すのに、 Aはf_cate1>>> ってだけで中身返さない なんで? ちなみにソース見ようとするとキャッシュがクリアされたから再送信しますていう(firefox)
$_POST["$f_cate1"] と $_POST["f_cate1"] とは違うから。 また、$_POST[$f_cate1] と $_POST["f_cate1"] も違う。
95 :
93 :2008/01/13(日) 10:11:54 ID:rbyeeIhv
>>94 ありがとうございます、var_dumpをみると、値の引渡し自体は上手くいってると
考えていいんですよね? ただ引き出し方がおかしいだけで…
今までこの程度で詰まったことなかったので逆に戸惑っています
寝ぼけて変なことやってるかなぁ
97 :
93 :2008/01/13(日) 11:07:41 ID:???
すみません、解決しました ボケボケでした
$_POST["$f_cate1"];じゃなくて.$_POST['f_cate1'];ですね 恥ずかしい…
>>94 >>96 ありがとうございました
98 :
nobodyさん :2008/01/13(日) 17:24:32 ID:0nLyIgyH
以下で使っているuksort()と同じ動きをするように出来る組み込み関数ってありますか? 希望する動作は、キーと値の保持がされつつ、$array[$hoge]の順番を$array[$hoge]['priority']の値でソートしたいのです。 <?php function callback($a1, $a2){ return $a1['priority'] > $a2['priority']; } $array = array( 'therd' => array( 'c1' => 3, 'c2' => 'c', 'priority' => '2', ), 'first' => array( 'c1' => 1, 'c2' => 'a', 'priority' => '0', ), 4 => array( 'c1' => 3, 'c2' => 'c', 'priority' => '4', ), 'second' => array( 'c1' => 2, 'c2' => 'b', 'priority' => '1', ), ); uksort($array,'callback'); var_dump($array);
あれいまるちそーと
1.学校で性教育を受けたがどうやって卵子と精子が出会うのかが謎 2.女にはちんこが無いのにどうやって小便するのかが謎 3.女にちんこが無いというのは都市伝説で実は股に挟んでるだけじゃないのか? おながいします
101 :
nobodyさん :2008/01/13(日) 17:53:07 ID:k2tfZ1QQ
trimの代わりに $hoge = preg_replace('/^[ ]*(.*?)[ ]*$/', '$1', $hoge); という処理をしています。(全角スペースも除去) EUC-JPでは問題なく動いていたのですが、UTF-8ではうまくいきません。 具体的には、先頭のひらがなカタカナが化けます。漢字や半角英数は問題ないようです。 あいうえお→・・いうえお 何かよい方法はありますか?
>>99 レスありがとうございます。
array_multisort()を使ってどのように書けば良いかも教えていただいて良いですか?
>>101 正規表現の検証とかはしてないけど/regex/ => /regex/u でいけると思う。
>>103 どのような引数を渡せば良いのかが、どうにもイメージ出来ないのです。
よろしければサンプルとしてどのようにするかを見せていただけると、
それを元に理解が出来るかもしれないので助かります。
109 :
101 :2008/01/13(日) 18:15:23 ID:???
せいどく 【精読】 (名)スル 内容を細かく吟味しつつ、丁寧に読むこと。熟読。 「古典を―する」
111 :
nobodyさん :2008/01/13(日) 22:36:50 ID:zh5BCzxe
PHP5でクラスメソッドをstaticにして呼び出すのとインスタンス化して呼び出す決定的な差がピンときません。 前者のメリットは、staticにした方が早い。 名前空間がないので、クラスを名前空間代わりに使ってstaticで呼び出しているだけで関数と差異はない。 Singletonが実装できる。(インスタンスを一つだけに制限できる) 逆にインスタンス化する場合のメリットは、 クラス内でプロパティを共有できる。 複数のオブジェクトが必要な場合、インスタンス化が必須。 自分の中でいくつか考えてみたので、何かフィードバックください。
113 :
nobodyさん :2008/01/13(日) 23:03:49 ID:zh5BCzxe
>>112 ありがとうございます。staticについてちょっと理解が深まりました。
ウェブアプリだったらユーザーからのリクエストに応じて処理して返すだけだったら、
ほとんどstaticで済む気がするのに、
全体的にstaticが使われるのが少ない気がするんですがなんででしょうか。
>>113 Javaスレいって聞いてきな。
あっちは純粋なオブジェクト指向言語だしいい回答が返ってくると思う。
少し前にJavaメインでやってるPGの知り合いに同じような質問ぶつけてみたが忘れたぜ・・・
ループ回数が多い中で呼び出すなら staticで呼び出さないほうが良いよ遅いし
インスタンスメソッドとクラスメソッドの区別がつかないうちは 全てインスタンスにしとけばOK
117 :
nobodyさん :2008/01/14(月) 00:33:13 ID:fNJFgJhz
インスタンスとクラスの違いは理解しているつもりなんですが、
ウェブアプリでDBやLOGオブジェクトなんかは全部staticでいいと思うんです。
でも、インスタンス化されている場合も多くてこれは実装が下手なのか何か意味があるのか分からないしだいです。
>>114 やっぱJavaですかね。いってきます。
118 :
nobodyさん :2008/01/14(月) 00:56:54 ID:eVMtNzBz
PHP上から次のSQL文を実行しているのですがエラーになります。 ORACLEだとSYSDATE等が使えるのですがMYSQLでは使えないのでしょか? INSERT INTO TB_TEST ( C1_NAME, C2_DATE ) VALUES ( 'NAME', date --DATEでも駄目。 ) 日時を登録するには何型を設定すれば良いのでしょか?
>>118 sqlの構文だろ?なんでphpスレなんだ
mysqlのスレで聞けば良いのに
now()
120 :
nobodyさん :2008/01/14(月) 01:22:05 ID:eVMtNzBz
>>119 スレチだったかもしれません。これだけ質問させてください。
お願い致します。
実は、NOW()ですと確かに登録は出来るのですが
'2009-11-11'
こういうデータが登録されてしまいます。
私が登録したいのは、年・月・日・時間・分・秒(つまり"sysdate"
も格納したいのです。
※データカラムをDATE型では無く、TIMESTAMP型にすれば良いのでしょうか?
そしてinsert時には"NOW()"では無く、Oracleで言うところの"SYSDATE"に
相当するコマンドを入れなければ行けないかと思いますが、MySqlの場合です
と何になるのでしょか?
date型は日付だけ datetime型だと日付と時間 TIMESTAMPだとunixタイムスタンプ timestampはnullを指定するかその項目を指定しなかったら insert時に自動で値が入る(更新時にも変わる) それ以外の場合はmysqlにNOW()って関数があるから ''無しでNOW()って書けば良い アプリ側の時間に合わせるならphp側でてきとーに整形して つっこんでやって
122 :
120 :2008/01/14(月) 01:44:20 ID:eVMtNzBz
>>121 さん
詳しい解説をして頂きまして、本当にありがとうございます。
勉強になります。
会社 PHPやJavaを使用したWeb開発 募集条件 やる気のある方 PHPやJavaをやったことのある方歓迎(独学可) 面接官 PHPの経験があるってことはWebアプリにたいしてのノウハウはある程度あるのかな? 俺 はい一般人よりはそれなりに 面接官 おkwww採用wwwwwwww研修がんwwwwwばwww そんなこんなでPHPが好きだったからこの誰でもおkみたいな会社に入ったわけだ 先輩 PHPの案件はないからVB勉強して下さい(本どっさり) 全俺が泣いた
辞めろ
PHPの案件安いからって零細企業でも蹴ってるとこあるけど こんなんだから業務で使えるPHPエンジニア育たないんだよね このPHP冷遇の時代を乗り切らないと完全に趣味言語になってしまう PHPの地位をもっとあげるために Zendをはじめ開発陣は企業に使ってもらえるようなアイデアや仕様を取り込んでくれないとな・・・ もっともこんな状態なのは日本だけなのかもしれないけど
日本人は自分を安売りすることを「誠意を見せる」ことと勘違いしている こんな国は発展しないよな
127 :
nobodyさん :2008/01/14(月) 14:01:56 ID:eVMtNzBz
>>123 VB位やれ
俺はこれくらいはマスターしている(業務レベルで)
C#/VB.net/VB6.0/C++/ASP.net(C#・VB.net)/PHP5/
Java/Windwsシェル/Unix-C/Cobole/PL_SQL
MySQLは?
マスターしてる奴がこのスレで質問すんのかw
ID消し忘れ恥ずかしいwwwww 知ってるの並べたとかじゃないの?ねえどうなの?www
こぼーれ
132 :
nobodyさん :2008/01/14(月) 14:29:03 ID:eVMtNzBz
MySQLは知らん。 MySQLなんて書いてないでしょ? cobolね。
phpはマスターしてるんだw
おちこぼーれなんだな
135 :
nobodyさん :2008/01/14(月) 14:34:50 ID:eVMtNzBz
まぁ、PHPは他の言語と比べてかなり簡単だからね。
PHP質問スレじゃなくて雑談スレみたいなのないかな
>>137 サンクス
PHP総合雑談スレでも立ててみるわ
139 :
nobodyさん :2008/01/14(月) 15:23:53 ID:kFFYYs1+
サイト内検索はどうやって作っているのでしょうか。 ページ全てをデータベースに放り込んで、 そこから当てはまるURLを取得して表示しているのですか? もっと簡単な方法とかありましたら教えてください。
>>139 ページを作ってからデータベースに放り込むのではなく、
データベースに放り込んだものからページを生成する。
141 :
nobodyさん :2008/01/14(月) 15:35:41 ID:kFFYYs1+
>>140 つまり、ページは自動生成ということですか?
ってことは、既に複数のページを作成してしまったから無理かorz
>>140 >ページは自動生成ということですか?
YES。ブログみたいのを思い浮かべれば簡単じゃないかな。
最初からちゃんと設計しないとだめだねえ。
Namazuでもつかっとけばおk
143 :
nobodyさん :2008/01/14(月) 15:39:32 ID:kFFYYs1+
>>142 やっちまったZE☆
Google様にお世話なります・・・。
145 :
144 :2008/01/14(月) 15:41:53 ID:???
リロードしてなくて俺脂肪wwwwwwwwwww
phpで全HTML読み込んでstrpos()でもかけりゃおk
148 :
nobodyさん :2008/01/14(月) 16:04:24 ID:HAlmIBpU
WINのanhttpdで phpファイル動かそうと思ったが tplファイルというのが syntaxerrorで動かない。 linuxのapacheだと動くのだろうか? ちょっとぐぐったがでてこない。 www.itmedia.co.jp/enterprise/0401/23/epn01_5.html ↑ここが参照元 tplファイルをphpに関連つけるには? php5.2です。
tplとか見るからにただのテンプレートファイルだろ includeで読み込まれて使われてるとかだろ つうか当たり前の話だが拡張子phpにしないとphpとして動作しない anhttpdとかマイナーなの使ってないでapacheにして下さい tplをphpとして動かしたいというならapacheでそういう設定にすればいいんじゃね?
>>148 使ったことないけど、それはサーバ側で設定するしかない。
151 :
nobodyさん :2008/01/14(月) 18:01:11 ID:hiecVsD+
PHPで掲示板を製作しているのですが、 「【PHP】下らねぇ質問はここに書き込みやがれ 62」という文字列があった場合 自動的に「【PHP】下らねぇ質問はここに書き込みや....」という感じに文字列を省略させたいのですが、 どうしたらよいでしょうか?
>>151 まずはチンポ洗って清潔にしてからこいや。
そんときゃ詳しく教えたる。
154 :
nobodyさん :2008/01/14(月) 18:34:26 ID:kFFYYs1+
Warning: simplexml_load_file() [function.simplexml-load-file]:
http://example.com/xml.php parser error : Premature end of data in tag rss
PHPで吐き出したXMLを読み込もうとするとこのようなエラーが出てしまいます。
YahooのRSSを真似たので、中身は同じだと思うのですが、なぜこんなエラーが出るのでしょうか
155 :
nobodyさん :2008/01/14(月) 18:35:43 ID:hiecVsD+
156 :
nobodyさん :2008/01/14(月) 18:36:16 ID:kFFYYs1+
とおもったら閉じタグなかったorz サーセン
何でもあるなw
丸めるのもmb_substerより優秀なので 文字列切り取りもmb_substerよりこっちのがいいよ
あ、mb_substrな・・・
162 :
nobodyさん :2008/01/15(火) 00:20:26 ID:Yg4ty3XI
これまで、Perlでプログラミングをしていて、PHPは全くの初心者です。
PHPの特徴を学びながら、コードを書いていきたいなと思っています。
以下のサイトで、PHPのメリットを読んだのですが、Perlとの違いで
大きな部分はイメージやPDFファイルが作れたりするところですよね。
http://www.php.net/manual/ja/intro-whatcando.php まずは、Perlで自作した掲示板をPHPに移植するところから
やってみようと思ったのですが、この移植の場合は、特にメリットや
書き方のスタイルに違いは無いと思ったのですが、それであっているのでしょうか?
処理内容
・ユーザの書き込みをログファイルに書き込む。
・ログファイルの内容をhtml出力する。
・検索をし、該当するデータのみを表示させる。
プログラミングの全体構成
・POSTのデータを取得し、処理を行う関数を振り分ける。
・各種パラメータはグローバル変数で設定する。
>>162 まずはチンポ洗って清潔にしてからこいや。
そんときゃ詳しく教えたる。
>>162 PerlもPHPも出来ることは一緒
なのでやることも一緒
>>162 >大きな部分はイメージやPDFファイルが作れたりするところですよね。
Perlやったことないから知らないけど、なくても自作すれば作れるようになるでしょ。(大変そうだけど)
Perlって構文が特殊だから少し戸惑うだろうけど慣れればほぼ一緒。
書き方のスタイルは少し違ってくるだろうけど、大きなメリットは別にないんじゃない?
強いて言うなら小規模の物ならPerl/CGIと比べてパフォーマンス面で優れてるぐらいかな。
最近のPC事情を考えるとその辺は割りとどうでもいいような気はするけどね。
それよりDB使った掲示板にこの際移行してみたら?
167 :
nobodyさん :2008/01/15(火) 10:47:34 ID:9YYFPVXq
UTF-8⇔utf8 Shift_JIS⇔sjis EUC-JP⇔ujis のような相互変換をしてくれる関数とかありませんか?
168 :
nobodyさん :2008/01/15(火) 13:07:16 ID:SIMemfh4
<form name="test" method="post" action="index2.php"> <input type="text" name="test"/><input type="submit"/> </form> <?php $test = $_POST['test']; echo $test; ?> 上記のようなフォームを送信後、その値を表示する簡単なプログラムを作ったのですが 携帯電話(au)から入力して送信すると文字化けしてしまいます。 123→123\0 あいう→%82%a0%82%a2%82%a4\0 上記のようになってしまうのですが、正常に表示させるにはどういった処理が必要なのでしょうか? phpファイルの文字コードを変更して保存しても意味がないようでした。 よろしくお願いします。
>>168 文字コードじゃなく、urlencodeされた状態のままになってる。
普通は$_POSTで取得したときに勝手にデコードされてるはずなんだが・・・
170 :
168 :2008/01/15(火) 13:48:56 ID:SIMemfh4
urlencodeで検索した結果 urldecode ($test); を使ってデコードすることで解決しました。 処理を掲示板に組み込むので、全ての変数にこれを入れておきたいと思います。 ありがとうございました。
>>167 preg_replace( array( '/UTF-8/', '/Shift_JIS/', '/EUC-JP/' ), array( 'utf8', 'sjis', 'ujis' ), $string );
レベルh(ry
173 :
nobodyさん :2008/01/15(火) 14:08:09 ID:9YYFPVXq
>>171 ありがとうございます。
専用の関数はないのですね。
自分で作ってみます。
クラスに変数を渡すとき面倒だから一括してglobal化してんだけど、何か問題あります?
おっしゃってる意味がわかりません
176 :
nobodyさん :2008/01/15(火) 16:05:50 ID:9YYFPVXq
もしかしてevalの中でfunction内にあるfunction使えない!?
177 :
nobodyさん :2008/01/15(火) 17:36:36 ID:WIMu7eDH
質問です メールフォーム作ってその内容をメールで通知するとすると、 やはりメールサーバが必要になるんですか? そこまでフォローしてくれる関数とかはないの?
>>177 メールはPHPの範囲外
なので鯖が必要
ねーよハゲ
180 :
177 :2008/01/15(火) 18:10:26 ID:WIMu7eDH
わかりました、ありがとう
死ね
入力画面作ったので処理部分作ってくださいってか?w そんなんじゃ3万くれたらやってあげよう。とか言われるぜ。
187 :
nobodyさん :2008/01/15(火) 19:48:43 ID:S1LM8YrJ
サイトで使われているPHPのソースを見る方法、
またはダウンロードする方法があれば教えてください!
↓このサイトが、どうやってRSSを読み込んで表示させているのか知りたいので・・・
ttp://owata-net.com/
つ、釣られるもんかっ!
>>187 >サイトで使われているPHPのソースを見る方法
出来るわけない。出来たとしたらそれはセキュリティホール。
DBの接続情報なんか書いてるものが外部から見えたら大変だろ。
RSSなんてxmlなんだから専用の関数使うか、
構文解析して表示してるだけに過ぎない。
最初はみんなそんなレベルから始まるもん・・・とかフォロー
>>187 ソース公開してなきゃ無理。
ソース抜けたらセキュリティなんかあったもんじゃねえでしょ。
RSS読込んで表示させたいだけなら、そういうライブラリやフレームワーク探すのが手軽かな。
php5だとZend Frameworkのとか
あら随分出遅れて被ってしまった。すまんですよ
192 :
nobodyさん :2008/01/15(火) 20:33:19 ID:S1LM8YrJ
>>189 >>190 なるほど・・・回答ありがとうございます!
初心者なのでソースを見て研究しようかと思ったのですが
PHPソースって見れないものなのですね。
いろいろ探すとソースを別途公開してるオープンソースというものがあるので参考にしてください。
194 :
nobodyさん :2008/01/16(水) 00:02:57 ID:UPc0pgTu
pg_prepare()とpg_execute()使ってinsert実行したいんだけど、 トランザクション処理増やすとpg_execute()でこけちゃうんだよね。 もしプリペアとトランザクションが併用できないなら教えてください。
板違い
196 :
nobodyさん :2008/01/16(水) 01:21:17 ID:fdtlATv5
PHP+DBをローカルマシン(Windows2000やXP)で動かす方法ってあるのでしょうか。 例えば、PerlだとActivePerl(とPostgreSQLのWindows版)みたいなものです。 開発しながら動作確認をレンタルサーバでやると迷惑がかかりますが、 そのサーバとは別にLinuxでマシンを組むしかないのかの確認をしたくて こちらで質問してみました。
Windows版バイナリを落としてきて入れる
XAMPP
>>196 ActivePerlも「やり方」覚えただけなんだろうな・・。
普通にできるよ。
200 :
nobodyさん :2008/01/16(水) 01:37:24 ID:fdtlATv5
>>197-199 すばやい回答ありがとうございました。
XAMPPとか準備されてるのですね。そちらをもう少し調べてやってみます。
>>196 AN HTTPDやウィンドウズ版のapache
というサーバーソフトがある。
これ入れたらローカルPCで動作する。
俺も最低一回は自分でhttpd.confやphp.ini弄って起動まで持ってくべきだと思うなあ
鯖管になるわけじゃないんだしそこまでしなくてもいいようなきも・・・ ゴミが増えるだけだしね。 テスト用の別マシンかVMでやるなら話は別だけど。
>>196 Windows版のApacheやMySQLはサービスとして動くので、
一度インストールすれば後は手間がかからない。
ローカルマシンでテスト後、本番サーバーに転送というのが
普通の開発方法だと思うが。
ゆとり世代なんだろよ
つーかPC作らなくても仮想PCってのがあるんだから Windowsでやりたくないならそれにインスコすればいいのに 変な日本語になってるけどキニシナイでくれ
208 :
nobodyさん :2008/01/16(水) 10:56:03 ID:zeEvpiQl
switchの比較って===でしたっけ?
209 :
nobodyさん :2008/01/16(水) 11:19:50 ID:jNLvN05l
>>208 演算子なら比較演算子でなくても何でもOKですよ。
型を含めた同一性を比較するなら===でOK
211 :
nobodyさん :2008/01/16(水) 11:22:58 ID:jNLvN05l
つか俺は何を言ってんだか...無視してくれ
212 :
208 :2008/01/16(水) 11:59:52 ID:zeEvpiQl
ごめんなさい switchのcase x:の比較のことです。 有難う御座いました。
213 :
nobodyさん :2008/01/16(水) 17:26:39 ID:zeEvpiQl
class example extends hogehoge{ Test(); } このclassの定義の仕方ってどういう意味なのでしょうか? 普段は class hogehoge{ function 〜 } のようにするのですが・・・
そんな書き方しない
>>213 >このclassの定義の仕方ってどういう意味なのでしょうか?
何を聞きたいの?extendsを聞きたいのかメソッドの書き方を聞きたいのかわからん
extendsのほうだろ
extendsは継承。 継承される側をスーパークラスと呼んで、される側をサブクラスと呼ぶ。 class B extends A の場合BがAのサブクラスでAがスーパークラス。 どういうときに使うかというとスーパークラスのメソッドをオーバーライドして使う時とかに使う。 なんていっても理解できないと思うので、 OOP勉強したいならJavaの入門書でも読むといいよ。
>Test(); こんな書き方しないっていったのね interfaceやabstractでも修飾子は必要だし コンストラクタやメソッドもfunctionつけて中身ちゃんと書かないといけないし
移転前のサーバーでは問題無かったのですが、移転後のサーバーで下記のようなエラーが出ました。 記述はどちらも同じなのですが…… Warning: fopen(text.txt) [function.fopen]: failed to open stream : Permission denied in (URL〜)index.php on line 206 206行目は $fp = fopen("text.txt", "r+"); と記述しています。 もちろんtext.txtは存在します。 なぜエラーが出るのか分かる方がいましたら返答お願いします。
chmod("text.txt", 0666);
少しは英語読もうぜ・・・ゆとりならしょうがないけど。 test.txtのパーミッションを666にする。
ふとおもったんだけど、ログとかのファイルって、 アップロード時に手動でパーミッション変えるか、 初期設定用みたいなPHP用意してchmodで変えるかどっちがいいの? つうかchmodってセーフモードじゃ使えないから前者でやってるんだけど。
>>223 個人的には、ファイルがなければ作成・パーミッション設定のがいいかと思う
いや、俺の独断と偏見だから参考にしないほうがいいかもしれんが
どんだけ逃げ腰だよw
226 :
nobodyさん :2008/01/16(水) 20:16:57 ID:zeEvpiQl
サンクス なんとなくだけど理解できました〜。
php.iniを読み込むのと、自作iniをparse_ini_fileで読み込んだときと全然処理が違うのねorz include_path = ".;C:\xampp\php\PEAR\;C:\xampp\php\Smarty\" php.iniだと成功するんだが parse_ini_fileの場合、""内の「;」がコメント扱いになってしまう・・・
その発想は無かったわ
鯖上にあるファイルをクライアントがDLするときに、クライアント一人あたりのDL速度を制限することは可能ですか? また可能であればどのようにすればよいのでしょうか?
帯域制限はサーバの設定
どうしてもPHPでやりたいの?sleepとか使って出力速度の調整をする感じ。 それよりもwebサーバの(拡張)機能を使った方がいいんじゃないかな。 apacheならmod_bwshareとか。
ソフトウェアレベルでやる話じゃないような希ガス
ソフトウェアレベルでやる話だと思うんだけど。
234 :
229 :2008/01/16(水) 21:48:38 ID:???
すいません 一般的な無料のレンタルWEB鯖とかの話です そういう場合はアパッチの設定なんてできないですよね クライアント一人あたりのDL速度を調整するような関数なりプログラムなんかはないということでしょうか
無料レンタル鯖でDL負荷気にするようなコンテンツはやらないのが原則
真面目に速度計算とか調整とかするとトンでもなく負荷が増えるだろうね。 挙句の果てにタイムアウトで鯖から接続切られたりとか。 一人の人に接続(帯域)を占有されたくないってのが元々の目的なら、 一定時間内に同一IPの人がダウンロードできる数を制限する、とかの方が簡単でいいんじゃないかな。 そういうのなら誰かが作ったのが配布サイトに転がってたりするんじゃないかな。 てか、別にPHPじゃなくてもよくね?
レベルひっくw 低脳な、学歴のないやつばっかだなここ・・・
※餌を与えないでください
学歴のないとかおかしな日本語使う低脳は帰れよ。
高卒しね。
中卒の俺はセーフらしい。やっぴー(^O^)/
PHP面白いよね
※撒餌禁止区域です。
245 :
nobodyさん :2008/01/17(木) 01:02:00 ID:ckn0RAb7
php5で、GDを使ってアップロードしたファイルをリサイズするプログラムを組んでいます で、アップしてサイズ変更・保存というプロセスは最後まで上手くいってるんですが、 apacheのエラーログにはエラーが出てしまいます PHP Warning: imagecreatefromjpeg(../../../test/img/user/pic3.jpg) [<a href='function.imagecreatefromjpeg'>function.imagecreatefromjpeg</a>]: failed to open stream: No such file or directory というエラーが出るんですが、実際には「../../../test/img/user/pic3.jpg」は 存在してるし、だからこそちゃんとリサイズと保存まで出来てるのではと思います 同じようなエラー(少なくとも見た目の動作はちゃんとしてるのにエラーがでる)を 経験した方いないですか? どのように解決しました? また、このエラー?をログに書き出ないようにする方法はないでしょうか? よろしくお願いします
>>245 いやエラーでてるんだったら結果が正しく見えてようが、とにかく該当箇所はおかしいんだろ。
出来てるのではと思います、とかじゃなくて、エラーが出力される以上まずはコードを疑ってかかれよ。
普通に使ってる分にはPHP自体がバグってることはそうそうねーから。
ワラタ 「PHPからの警告!/../../test/img/user/pic3.jpgがありません」 って言われているのに「私は/../../test/img/user/pic3.jpgのリサイズと保存は出来ている と思います」と頑なに主張する245が可愛い
>>245 俺もその関数を使ってアップロードされた画像をリサイズ処理してるけどなんら問題ない
マニュアルもろくに読まないで関数使ってるゆとりだろ。
250 :
nobodyさん :2008/01/17(木) 09:12:48 ID:O85eEBCt
$db =& DB::connect("pgsql://root@localhost/abs"); var_dump($db); NULLすら表示されませんorz エラーも出ないし(他のエラーは出ます、error_reporting = 2047、display_error = On) これのあとにechoなどしても表示されません・・・。 まじ簡便orz どうすれば表示されるのでしょうか
if (PEAR::isError($db)) { die($db->getMessage()); }
他人が作ったスクリプトのソースを見ていて疑問に思ったのですが ある変数をセッションに登録するときに、 $_SESSION['hoge'] = base64_encode(serialize($hoge)); とやって、参照するときには $hoge = unserialize(base64_decode($_SESSION['hoge'])); としてました。 これって、いったい何のメリットがあるんでしょうか? 配列とかオブジェクトをセッションに登録できる、ってことですか?
254 :
nobodyさん :2008/01/17(木) 10:16:24 ID:O85eEBCt
255 :
nobodyさん :2008/01/17(木) 10:40:10 ID:O85eEBCt
[last_query] => INSERT INTO hogehoge (id,name,address,telephone,email,keyword,catch_copy) VALUES (60006,'test','大阪府 ','','','','test') autoExecuteでクエリは実行したのにDBに格納されてない・・・。 PEAR::DBマジで死ねヽ(`Д´ )ノ
>>255 普通にpg_connectとかで接続はできるの?
>>258 getOne(SELECT文)での取得はできたので、DBには接続されています。
260 :
258 :2008/01/17(木) 13:05:00 ID:O85eEBCt
ID出し忘れましたorz
261 :
nobodyさん :2008/01/17(木) 13:57:20 ID:HX+GAcfV
素朴な疑問なんですけど、サイトにある画像を右クリック→プロパティで見たら、
画像なのに、gifとかjpgではなく
http://www.datadepot.org/fr/glosp.php みたいなphpファイルになってたんですけど、これって何ですかね?
どうやってphpで画像を表示させてるんでしょうか?
また、わざわざphpで表示させるメリットは何かあるんですかね?
うpろだとか使ったこと無いの?
>>261 グラフみたいだしGD使ってるだけでしょ。
264 :
261 :2008/01/17(木) 14:26:40 ID:HX+GAcfV
イメージ関数でやれば可能みたいなのは分かったんですが、 何のメリットがあるのかな?
PHPで画像を生成してると言ったほうがわかりやすいだろうか だからPHPを通して画像が出力される
>>264 相場とかリアルタイムに動くじゃん
そんなの固定イメージ作って手動更新なんてしないでしょ
リアルタイムに動く相場のデータとかを別にとっておいて
そのデータをもとに動的にグラフを生成してるってだけ
267 :
261 :2008/01/17(木) 14:43:08 ID:HX+GAcfV
ぶっちゃけた話、上記のサイトは他サイトの画像を引っ張ってきてるみたいなんですが、
たぶん元画像のおいてあるサイトはリファラー監視していて
<IMG src="
http:// ○○○.jpg">のような単純な直リンクは弾いてると思うんですが、
php経由の直リンクならすり抜けちゃうのかなと思いました。
また以前、phpは動的なプログラム?だからphpによる直リンクは著作権に触れない?みたいな
変な情報聞いたことがあって、それでこのサイトはphpで直リンクやってるのかな?と思いました。
?ばっかりだなw
>>267 何を言ってるかよくわからんが難しいこと考えすぎ。
どうみてもGDでグラフ出力してるだけだろ。
JpGraphとかその辺使ってみるといい。
出力するときヘッダでmimeタイプ送ればphpの拡張子でイメージ表示される。
>>267 単にAPIが提供されてるだけじゃねえの?
独自で繰り返しの命令文を作るってできないですかね これ作りたい loop(5){ 〜〜5回繰り返し処理〜〜 }
作れば?
274 :
nobodyさん :2008/01/17(木) 17:02:18 ID:FPY6k7hv
$$k = $v の左辺の意味がわかりません
>>274 $k = "test";
$$k = "お母さん";
echo $test;
俺は
>>275 のソースの $test の意味が分かりません。
>>276 275を実行してみればどういうことかわかるでしょ
わからないならセンスないからやめたほうがいい
278 :
274 :2008/01/17(木) 17:33:42 ID:FPY6k7hv
>>275 端的な回答どうもありがとうございます。理解できました。
こういう使い方があると知らなくてもなんとなく眺めて分かるだろうに
個人的には $$kより ${$k}のが好きだわ
foreach($hoge as $k => $v) { $kk = $v; } なら、extractとやりたいことは一緒かな?
$$kだった。typo
ID:HX+GAcfVの迷走ぶりにワロタ
半端に知識あるから余計なことに気が回るんだよね。 ディレクターとかデザイナっぽい。
なんで、「お母さん」なの?
あのさ、ちょっと教えて。 User というクラスと、 なんか適当なオブジェクト(例えば Item とか) があたとするよな。 それで、このItemはUserによって編集できたりできなかったりするわけだ。 その場合、この権限のチェックはどのクラスにどういった感じで実装するのがいい? class Item { function canEdit(User $user) { // なんかの処理 return true; } } みたいな感じにするのがいいのか、User クラスに実装するのがいいのか、それとも別のクラスを作成したほうがいいのか。 おしえてガリレオ!
canEditはねーよ・・・
クラス関連で質問なんだけど クラスを作るときに最初に、 class doHoge{ var $hoge; var $hogehoge; } みたいに書いてるときあるけど、これってメンバのスコープとかデフォルト値を明示的に宣言してるだけであって、 デフォルトのスコープであれば、この宣言は必要ない?
あるとなしでは大違い
290 :
286 :2008/01/17(木) 23:05:26 ID:???
>> 287 すまん、まじでどう実装するのがよいかわかんねーんだ。
モハメドあた
293 :
286 :2008/01/17(木) 23:59:54 ID:5odDHjy8
>>291 えーと、ユーザーがItemのデータを編集したり、削除したりする権限です。
Itemは例なので、ブログのエントリーでも、商品でも何でもいいんだけど、
それを編集できる人が設定されていて、それをチェックするロジックが必要なんです。
それをどこに実装するのがスマートっつーか定石っつーかその辺を知りたいんですよ。
295 :
nobodyさん :2008/01/18(金) 01:12:48 ID:3giek1Yn
質問です。 たまに 「現在の閲覧者は***人です。」 といったサイトがありますがあれはどうやって行っているのでしょか? サイトにアクセスがされたら、各クライアント毎にセッションを張り その数をカウントし、一定間隔でクライアント側で再アクセスを する事により動的に表示しているのでしょか?
サーバーに保存してあるjpgデータを他のサーバーにPOSTして、受け取り側で$_FILESで取得したいのですが、できますでしょうか? 画像を保存してあるサーバーはPHP5.2.5、受け取りはPHP4.4.7です。 受け取りの方でPOSTされたりしたら、imagecreatejpegやらで画像ファイルを取得して、それを自分のサーバーに保存するという手段もありますが、 今回は$_FILESでうけとって処理をしたいのです。 よろしくお願いします。
>>293 >えーと、ユーザーがItemのデータを編集したり、削除したりする権限です。
あほか!そのくらいはわかるわ。
どういう風にシステムで持っているわけ?
むしろ誰(どのオブジェクト)がその権限を持っているわけ?
っていうか自分の書いたレスを100回読んだらどこに実装したらいいか見えてくるんちゃう?
例えば、
コンビニでジュースを買うのにそれを買えるかどうかは
ジュースがわかるわけでも店員がわかるわけでもなく
本人が金持ってるかどうか確認したらええだけやん。
>>295 ページが遷移するまで普通は変わらないんじゃない?
アクセスした時点での閲覧者数を表示するのが一般的なんじゃないかと。
もしリアルタイムでやっているのならAjax使ってやるんじゃないかな。
300 :
296 :2008/01/18(金) 02:18:49 ID:Jr2FhrEe
ID忘れました。 お願いします。
301 :
nobodyさん :2008/01/18(金) 03:10:49 ID:3giek1Yn
>>299 そうですね。確かに。。。
>アクセスした時点での閲覧者数を表示するのが一般的なんじゃないかと。
この「閲覧者数」はどの様にして集計しているのでしょか?
私が思いつく一つの方法として10分間の間のアクセス数を取得し
「現在の閲覧者数」にしようかと思っています。
が、しかしこの方法ですとスマートで無い気がします。
何か良い方法はありますでしょか?
ない
>>296 pearのHTTP_Requestでも使えば?
>>301 自分でセッション管理してセッション数を表示すればいいんじゃ
305 :
301 :2008/01/18(金) 03:31:42 ID:3giek1Yn
>>303 さん,304さん
ありがとうございます。
明日(今日か)また試してみようと思います。
今日はもう寝ます。おやすみなさい^^;
PHP5 hoge.php で実行しようとしたら、ソースが表示されて終わってしまいます。 実行権限あたえてるのに。 助けて!
>>306 httpd.confとかいじれるの?
弄れるなら
AddHandler php5-script .php
AddType text/html .php
の追加とか
308 :
296 :2008/01/18(金) 08:43:16 ID:Jr2FhrEe
>>303 PEAR使えばできるんですね。
方法がまったく思い浮かずにできないのかと思っていました。
ソースのぞいて勉強します。 ありがとうございました。
309 :
nobodyさん :2008/01/18(金) 10:33:12 ID:JPL9CEzO
$text = "ABCDALSKEAICCOSASDFF"; という文字列から、 "A"のある場所を取得する方法はありませんでしょうか? 1つだけ取得するのではなく、複数ある場合は複数取得したいのです。
>>309 $a = split("A",$text);
とやって、文字列を数える方法とか。
もっとスマートな方法がありそうな気もするけれど。。。
こっちがいいかな。 $i = strlen($text); $a = strpos($text, 'A', 0); $i > $a である限り以下の処理をする。 $a = strpos($text, 'A', $a);
簡単なのは310の方のような $ary = split('A',$text); $cnt = count($ary);
313 :
nobodyさん :2008/01/18(金) 11:11:34 ID:JPL9CEzO
$this->v('A');
315 :
nobodyさん :2008/01/18(金) 11:42:35 ID:JPL9CEzO
echo v('A'); 吹いた
うまいことすんなぁ
318 :
nobodyさん :2008/01/18(金) 12:08:41 ID:TUomNt9J
自クラスのフィールドを参照する場合$thisを使いますが、 継承したときにスーパークラスのフィールドを参照する方法を教えてください。 $superとかしてみたのですが無理っぽいので。
320 :
nobodyさん :2008/01/18(金) 13:05:01 ID:TUomNt9J
parentはstaticしか使えないんだっけ
>>181 <?php
$q1 = $HTTP_POST_VARS["Q1"];
$q2 = $HTTP_POST_VARS["Q2"];
$q3 = $HTTP_POST_VARS["Q3"];
$q4 = $HTTP_POST_VARS["Q4"];
$q5 = $HTTP_POST_VARS["Q5"];
$line = $q1 . "," . $q2 . "," . $q3 . "," . $q4 . "," . $q5 . "\n";
$fp = fopen("test.dat", "a");
fwrite($fp, $line);
fclose($fp);
?>
<html><body>
ご回答ありがとうございました。<br>
<a href="test.html">戻る</a>
</body></html>
※フォームをtest.html、ログファイルをtest.datとし、
同じディレクトリに置いた場合。
phpバージョンや区切り文字、エラーの処理などについては
指定されていなかったので、こちらで勝手に解釈した。
A1 ぼくは,まあまあ,好きです
>>325 訂正というか、よくみたら、マニュアルにもヘブライ語ってかいてあった。
インスタンスもOKなんだね。当たり前か。
328 :
nobodyさん :2008/01/18(金) 15:16:14 ID:JPL9CEzO
自分で吐き出したXML文を、別のスクリプトで読み込ませたいのですが、 simplexml_load_file(URL); にすると、 Warning: simplexml_load_file(URL) [function.simplexml-load-file]: failed to open stream: Connection refused Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "URL" とエラーが出ます。 XMLはHotPepperを真似て作ったようなもので、下記のようになっています。 headerはapplication/xmlを吐き出しています。 何か対処法はありませんでしょうか? ↓続き(XML)
329 :
nobodyさん :2008/01/18(金) 15:16:54 ID:JPL9CEzO
<?xml version="1.0" encoding="UTF-8" ?> <result> <subject>検索結果</subject> <count>2</count> <word>居酒屋</word> <lat>35.1245214</lat> <lon>139.54231</lon> <items> <item> <name>〜</name> <address>〜</address> <email>〜</email> <telephone>〜</telephone> <message>〜</message> </item> </items> </result>
331 :
質問 :2008/01/18(金) 16:53:39 ID:e2DNo7Zr
現在レンタル鯖でIMAP関数でメールを読み 送信時にmail()関数を使って送信する という使い方をしています。 しかしメール送信時にmail()関数を使うと 送信アドレスの間違いなどで不達の時のエラーメッセージが 鯖管のアノニマス@hoge.comに逝ってしまい確認が取れません。 これを回避するため素直にsmtpなどで送信したいのですが どうしたらいいのでしょうか?
332 :
nobodyさん :2008/01/18(金) 16:54:52 ID:JPL9CEzO
>>330 ・URLで接続失敗
・外部リソース"URL"の読み込み失敗
エラーが分かっても原因がわからないと意味ないです
>>322 にこれを追加。
$q5 = ereg_replace(",", "、", $q5);
$q5 = ereg_replace("\r|\n", "<br>", $q5);
これで問題ないでしょ?あとは、以下の機能をつけるくらいの話でしょ。
・リファラを見てはじく。
・フォームをhtmlからphpに変えて、hiddenにランダムな数値を入れておいて確認する。
・IPアドレスも登録して、一生涯に一度しか投稿できなくする。
他にあったらお願いします。
>>331 ごくごく素直にsendmail -fを使うのは?
>>332 そもそもそれエラー原文じゃないんじゃないのか?
どーでもいいが
>>334 のはmailの第5引数につけれるよ
337 :
331 :2008/01/18(金) 18:04:41 ID:e2DNo7Zr
>>334 即レスありがとうございます。
それも考えたのですが
この際送信メールそのものも
メールサーバに保存しておければいいかな
と考えまして質問してみました。
__ __ ヽ'::':/ }:::{ |:::l r:ャ l:::| l:(.ノ:::l ,.r:::''::::::::::::::) .〈;;;:::::::::::::::゛:i,,__,〃 /~:::y'''::::-:::〈ー‐’ かぶと虫さんがこのスレに遊びに来ました。
フレームワークって、PEARやSmartyみたいに外部に置いといて、 スクリプト内から呼び出すもんだと思ってたわ もう、フレームワーク自体に組み立ててしまうのか・・・。
逆に考えるんだ、“フレームワークがスクリプトを呼び出すのさ”と考えるんだ
>>340 !!
しかし、URL直下にフレームワーク置くとか心配だわ
342 :
nobodyさん :2008/01/18(金) 19:24:05 ID:UtEgGG7x
xreaをつかっているのですが、safeモードのせいかexecを実行することができません。 やりたい事としては、whoisの実行結果を取得したいのですが、 execを使う以外に実現できる方法はありますか? よろしくおねがいします。
344 :
nobodyさん :2008/01/18(金) 20:06:58 ID:QH3r72PN
今、会員システムを作っていて、その会員領域からいろんなスケジュールやBBSへの 書き込みを出来るようになっています。 それで、たとえばスケジューラのDBテーブルへの書き込みを会員領域以外からは いっさい受け付けなくすることはできるでしょうか? ディレクトリ指定というか、、 もし出来たらアドバイスお願いします よろしくお願いします あと、SQLインジェクション対策についてですが、 たとえばプルダウンで時間選択するとき、0〜23までの値が入るのは確定してると 思いますが、このパラメータにも半角チェックや最大値チェックすべきなのか…? 主義とやる気の問題だとは思いますが、皆さんそこまでやってますか?
> プルダウンで時間選択するとき、0〜23までの値が入るのは確定してると思いますが
>>339 通常前者だと思うが。
ドキュメントルート以下に置いたフレームワーク自体に組み立てるFWって何?
>>344 逸る気持ちは分かるが手近な先輩に指導してもらうなりテキスト読むなりして
ちゃんと勉強したほうがいい
' OR 1=1--で一発だなw
>>339 Zendは外部に置いといて呼び出すけどな。
350 :
nobodyさん :2008/01/18(金) 21:40:53 ID:emyOBJ8O
サーバの要領が少なすぎて足りなくなった為、他社で2つ目のサーバを借りたのですが 1つ目のサーバから、2つ目のサーバへテキストファイルの書き込みをするPHPスクリプトを作りたくて ぐぐったり書籍を見て調べました。 ですが、どう書けばよいのかがわかりません。 プロの方には初心的な質問で恐縮ですが 参考になるスクリプトか、ページを教えていただけませんか?よろしくお願いします。
だが断る web制作版で依頼してきなさい
どういう用途でそういう処理が必要かによると思う。 リモートファイルの更新は技術的には可能。
>>350 数百メガもテキストファイルで何に使ってんの?
354 :
350 :2008/01/18(金) 21:57:51 ID:???
ポエムです。
PHPからftpで接続できるから、それでファイル開いて更新できるよ。
356 :
nobodyさん :2008/01/18(金) 22:10:34 ID:emyOBJ8O
書き込みありがとうございます。 >351 PHPについての質問だったのでこちらに書き込みしました。 プロの方にはくだらない質問になるのかなと思いまして、ついこちらに... >352 はい、用途としては2つ目のサーバは友人にもFTPのユーザとパスワードを与えて 使ってもいいよと言って友人専用のディレクトリを使わせています。(サーバ屋の規約範囲内でです) 私が元々使っていたサーバはPHP4に対応していまして、2つ目のサーバはPHP5に対応しています。 ですので、丸ごと引越ししたかったのですが、なぜだか2つ目のサーバでPHPのスクリプトが動かなかったので 丸ごとの引越しを断念して、1つ目のサーバで使っているものはそのままのサーバで使っています。(お気に入りにいれているので使い勝手としてはあまり気になりません) そこで、私が使っているプログラムの機能で(ただの掲示板なのですが) 私の方で書き換えたデータを、友人のページ(これも掲示板みたいなやつで2つ目のサーバにあります)にも 表示させてよと言われたので、>352さんの仰るリモートファイルの更新というものをしたいと考えています。 1つ目のサーバ →→ 2つ目のサーバ という形でテキストファイルを更新させることで内容を同期させたと思っています。 2つ目のサーバ →→ 1つ目のサーバ という形での内容の同期(読み込み?)でもいいのですが、正直どちらの形が良いのか、 初心者なために判断がつかないのが現状です。 すみません、長文になってしまいました。 なんか分からないところがあったら指摘してください。追加で説明をしたいと思います。 よろしくおねがいします。
> プロの方にはくだらない質問になるのかなと思いまして、ついこちらに... > プロの方にはくだらない質問になるのかなと思いまして、ついこちらに... > プロの方にはくだらない質問になるのかなと思いまして、ついこちらに... ( ゚д゚ )
358 :
nobodyさん :2008/01/18(金) 22:20:06 ID:emyOBJ8O
350です >353 ほとんど個人の用途なのですが、基本的に掲示板とかなのでテキストファイルもありますが 少しですが画像もあります。 2つ目のサーバを貸している友人も含め(数人ですが皆仲間ウチです)、元々はこの掲示板を使って備忘録がわりにしたりしていました。 1つ目のサーバの要領が50M程度だったので、流石に数人分の記録でも溢れてしまいました。 >354 さすがにポエムは恥ずかしいのでアップロードできません。 (隠れて書いたりもしていません) >355 >PHPからftpで接続できるから、それでファイル開いて更新できるよ。 !????????? すみません、ftpとはFFFTPのことですか? FFFTPは使っているのですが、PHPとの連携ができるのですか!? なんか解釈が間違っていたらすみません...
これは罠よ!
死ね
361 :
nobodyさん :2008/01/18(金) 22:23:51 ID:emyOBJ8O
>357 すみません、なにか変なことを書いたでしょうか(>_<)??? 【PHP】下らねぇ質問はここに書き込みやがれ 62 とタイトルに書いてあったので... 私にとって難しい悩みでも、プロの方にはくだらないのかなぁと...
http_requestでpost投げるのが手っ取り早い
きっとポコチン美女よ!
釣り道具は立派だが餌が弱いな。 練り餌はもっと錬らなきゃ。
366 :
nobodyさん :2008/01/18(金) 22:56:37 ID:emyOBJ8O
>359 罠とはなんでしょうか? >360 荒れるのであまりそのようなことは... >362 ぐぐってみます。ありがとうございます。 >363 マニュアルは見てみましたが、見当違いのところを見ていたのかもしれません。 参考になりそうな感じがしますので、見てみたいと思います。 ありがとうございました。 >364 ... >365 釣りじゃないです↓
何↓って?
←なんだろうね?
こいつはプロID 構うだけ博之の思う壺だよ
とうとう全res始めたか
ヒント:サクラ要員
372 :
nobodyさん :2008/01/18(金) 23:56:31 ID:pg2V70jW
掲示板のソースをみてPHPを勉強しようとしてる初心者だが、 ある掲示板はPHPファイルが一つのみ ある掲示板はaction,view,resなどに色んなphpファイルがあり その下にもサブディレクトリがありかなり複雑になってる。 ただし、一つ一つのスクリプトは小さい。 これってどうしてこういう違いになってるんだろう? 何か、開発してる人毎に開発方法が違うんだろうか? phpspot.net/php/pgPHP%81%95CSS%8Cf%8E%A6%94%C2.html ↑この掲示板はファイルが多く理解できない。 何か開発するに至って参考となるものありますか? 本はマンモス本、サンプル集等いくつか買い集めたが 今ひとつ掴みきれない。 ネックの一つは開発したときのデバック方法。 サイトはPHP4のソースが圧倒的に多いのだが 漏れのPHP5の環境で動かない、場合によっては更にエラー番号も返さない。 みんなどうやって開発してるのだろう?
全角厨ウゼー
>>373 逆に全角じゃないと見にくいからダメだというヤシもいるんだぞ。
問題ないなら、変なこだわり持つな。
心の病気になるぞ。
またプロ名無しか
いらん書込はいいからさっさと答えろ。
>>372 PHPはご存知のように一つのファイルに詰め込むことも
いくつかのファイルに分割することもできる。
ただ一つのファイルにすべてを詰め込むと、どの箇所でどの処理をしているかがわかりにくくなることが多い。
ということで通常は機能ごとにファイルを分けたり、クラスごとに分けたりする。
PHP5で動くようにしたらええやん。
デバッグ中はエラーも表示するようにする。
詳細は
>>1
>>372 楽して身に付けようとしてるなら無理だからやめとけ.悪いこと言わんから.
379 :
372 :2008/01/19(土) 00:32:21 ID:uG/K5st/
>>377 わかりました。
特に開発環境とかが各自で違うとかではないという事ですかね。
(理解できないのは己の頭が悪い、知識がないとかのの問題なのだろうか)
デバックの仕方とかもよくわからんけど
もうちょっと勉強して出直します。
デバックの意味も分かってないんじゃないの
質問です 変数に収まっている値のデータ型を判別する関数ってありますか?
382 :
381 :2008/01/19(土) 00:54:18 ID:FuloTUhn
しまった うっかり下げてしまいました よろしくお願いします
FFFTPやらデバックやら…
385 :
381 :2008/01/19(土) 01:37:05 ID:FuloTUhn
"デバック" に一致する日本語のページ 約 228,000 件中 1 - 50 件目 (0.39 秒) 全米が泣いた。
387 :
nobodyさん :2008/01/19(土) 05:24:17 ID:nyppE0sx
ここのスレホント役に立たない。 2回質問したが全くレスがない。 ちょっと難しい論点を出すと、全く歯が立たないんだなぁ。 このスレの住民の能力が手に取るように分かった。
※餌を与えないでください
>>387 > 2回質問したが全くレスがない。
> ちょっと難しい論点を出すと、全く歯が立たないんだなぁ。
お前の質問の仕方が悪いんだろ。人のせいにするな。
bug :【和称】バグ debug:【和称】デバッグ デバックではないアホ
こういうことに固執して書き込みする奴って、 「鯖」とか普通に使ってたりするんだよな。 っていうか、何でFFFTPが急に出てくるのか分からない。
393 :
nobodyさん :2008/01/19(土) 08:39:29 ID:uG/K5st/
>>390 古フランス語puc由来なので
デバックで濁らないのが本来の発音、アホ。
394 :
nobodyさん :2008/01/19(土) 08:54:19 ID:uG/K5st/
ガリア訛りのロマンシュ語。 英貴族は当初は濁らなかったんだよ。 デパック。
396 :
339 :2008/01/19(土) 09:18:23 ID:???
397 :
nobodyさん :2008/01/19(土) 09:43:37 ID:ctJIPU4v
extendsについて質問です。 class A { public function Test(){ echo "TEST"; return 0; } } class B extends A { function Test2(){ echo "Hello "; parent::Test(); } } $extends = new B(); $extends->Test2; この場合、「Hello TEST」と表示されますが、 extendsなしで、 parent::Test();を A::Test();とすればいいのに extendsをするメリットはあるのでしょうか?
398 :
397 :2008/01/19(土) 09:46:29 ID:ctJIPU4v
ああ、メンバ変数が継承されているのかΣ メソッドの継承は、別クラスからClass::hogehoge()で呼べばいいだけで・・・あれ?
出っ歯9本
400 :
397 :2008/01/19(土) 09:57:16 ID:ctJIPU4v
すみません、extends理解できました 普通に便利ですねこれ ただ、使い方間違えるとゴチャゴチャになりそうで怖いです・・・
多分色々間違って覚えてるんだろうな
402 :
397 :2008/01/19(土) 10:16:08 ID:ctJIPU4v
>>401 自分の解釈では
「メソッド・メンバ変数の継承」
class Aで使っていたメソッドやクラスをclass Bに継承させると考えていいのですよね?
403 :
nobodyさん :2008/01/19(土) 11:39:42 ID:FuloTUhn
フォームで半角英数字を入力して、DBに登録して、それを後で引き出して gettypeで判別したらstringになってたんですが、コレは仕様ですよね? 数字のままdbに保存→引き出し をする方法はないですか?
無意味に継承してどうするのと。
>>397 のソースは不可解。
includeみたいなものだと勘違いしてない?
>class Aで使っていたメソッドやクラスをclass Bに継承させると考えていいのですよね?
A(スーパークラス)で定義したメソッドやフィールド(メンバ変数)をB(Aのサブクラス)で継承する。
またはAで別クラスを継承してた場合、そのクラスのものも継承する。
継承についてはオーバライドやポリモーフィズム(多態性)を理解しないと使うのは難しいと思う。
>>403 仕様。
>数字のままdbに保存
保存する直前でintに変えてから保存すればいいじゃないか。
406 :
nobodyさん :2008/01/19(土) 11:56:23 ID:QtJ57h/6
数日前にPHPをやり始めた者です。勉強がてら、
>>181 の回答にあたるものを
>>322 を
参考にしながら書いてみたのですが、重い処理をしているのではないかとか、
間違ったコーディングをしているのではないか、と不安になってここで質問してみました。
どうぞよろしくお願い致します。
test.php ファイルの内容
<?php
// 日付、IPアドレスを取得
$date = getdate();
$day = $date["year"] . sprintf("%02d",$date["mon"]) . sprintf("%02d",$date["mday"]);
$ip = getenv("REMOTE_ADDR");
// 重複入力チェック。同じ日に同じIPアドレスからであると、はじく。
$fp = fopen("test.dat", "r");
if($fp == false){ printf("<html><body>エラー:ログファイルが開けません。</body></html>");return;}
while( !feof($fp) ){
$read_line = fgets($fp, 1024);
$file_day_ip = split(",", $read_line);
if( ( $file_day_ip[0] == $day )and( $file_day_ip[1] == $ip ) ){
consecutive_error_html();
return;
}
}
fclose($fp);
// POSTを受け取る。
$q1 = $HTTP_POST_VARS["Q1"];
$q2 = $HTTP_POST_VARS["Q2"];
$q3 = $HTTP_POST_VARS["Q3"];
$q4 = $HTTP_POST_VARS["Q4"];
$q5 = $HTTP_POST_VARS["Q5"];
407 :
nobodyさん :2008/01/19(土) 11:58:19 ID:QtJ57h/6
>>406 のつづき
// 未入力チェック。いきなりtest.phpにアクセスしてきた時にもはじく処理。
if( ($q1=="")or($q2=="")or($q3=="")or($q4=="") ){
input_error_html();
return;
}
// 任意入力欄にて、CSVで使用している文字を変更する。
$q5 = ereg_replace(",", "、", $q5);
// 任意入力欄にて、改行を <br> に変更する。
$q5 = ereg_replace("\r|\n", "<br>", $q5);
// 文字列をつなげてファイルへ書込み
$write_line = $day . "," . $ip . "," . $q1 . "," . $q2 . "," . $q3 . "," . $q4 . "," . $q5 . "\n";
$fp = fopen("test.dat", "a");
if($fp == false){ echo "<html><body>エラー:ログファイルが開けません。</body></html>"; return;}
if(flock($fp, LOCK_EX)){
fwrite($fp, $write_line);
}else{
echo "<html><body>エラー:ログファイルのロックが出来ません。</body></html>";
return;
}
fclose($fp);
finish_html();
return;
408 :
nobodyさん :2008/01/19(土) 12:00:13 ID:QtJ57h/6
>>407 のつづき
// 連投拒否
function consecutive_error_html(){
echo "<html><title>エラー</title><body>";
echo '<div align="center"><b>エラー:連投ですか?</b><br>';
echo "$ip<br>";
echo '<a href="test.html">戻 る</a></div>';
echo "</body></html>";
}
// 入力不備
function input_error_html(){
echo "<html><title>エラー</title><body>";
echo '<div align="center"><b>エラー:Q1〜Q4すべてを選択して下さい。</b><br>';
echo '<a href="test.html">戻 る</a></div>';
echo "</body></html>";
}
// データ登録完了
function finish_html(){
echo "<html><body>";
echo '<div align="center"><b>ご回答ありがとうございました。</b><br>';
echo '<a href="test.html">戻る</a></div>';
echo "</body></html>";
}
?>
終わり
409 :
nobodyさん :2008/01/19(土) 12:22:27 ID:t8kHENxA
// POSTを受け取る。 $q1 = $HTTP_POST_VARS["Q1"]; $q2 = $HTTP_POST_VARS["Q2"]; $q3 = $HTTP_POST_VARS["Q3"]; $q4 = $HTTP_POST_VARS["Q4"]; $q5 = $HTTP_POST_VARS["Q5"]; この部分 $HTTP_POST_VARSは古い$_POSTに変更 値は配列にしたほうが後々楽 $Q[1] = isset($_POST['Q1']) ? $_POST['Q1'] : null; $Q[2] = isset($_POST['Q2']) ? $_POST['Q2'] : null;
日付は$day = date('Ymd');にできる if( ( $file_day_ip[0] == $day )and( $file_day_ip[1] == $ip ) ){ これは if($file_day_ip[0] == $day && $file_day_ip[1] == $ip){ でいい下の$q1〜等もそう $HTTP_POST_VARSは$_POSTでいいし $ip = getenv("REMOTE_ADDR"); の部分は$ip = $_SERVER['REMOTE_ADDR'];に置き換えられる あと重複チェックなら1行ずつ取得して 文字列一致を探した方が早いんじゃ? それとCSVで使用している文字を変更するとあるが 勝手に入力値を変更するはどうかと やるならダブルクォーテーションで囲って ダブルクォーテーションを&quot;に置き換えた方が良い あと自作関数だがエラーと完了のみにして function error($errMsg,$title='',$param=null){ エラー処理(かくのめんどくせ) } 因みに連投拒否のところに書いてある$ipは表示されないからねっ
>>402 俺も単なる関数の集合としか使えてなかったけど
Zend Framework使ったらオブジェクト指向の利点が体感できたよ。
>324でも書いたけど なんでq5だけに改行や','が入ってくるって決め付けてるのさ
413 :
403 :2008/01/19(土) 13:15:48 ID:???
>>405 >保存する直前でintに変えてから保存すれ
フォームでsubmitした時点で文字列になっちゃうわけですかね?
気づかなかった、確認してみるよ ありがとう
415 :
nobodyさん :2008/01/19(土) 13:20:28 ID:CC01YTh8
どなたかお助けください。 アマゾンAWSECSというwebサービスからXMLを取得 →XMLファイルに保存 →XSLTファイルを作成(画像URLとタイトル抜き出し) →PHPのxslt_process関数を用いてXSLTを適用しHTMLを出力 ってな事をしたました。 リロード7回に1回の割合で上手く表示されるのですが、 ほとんどの場合空白ページが表示されてしまいます。 これを回避する方法はありませんでしょうか? 原因すらよくつかめてませんで_(_ _;)_ なにか考えられることありませんでしょうか? ブラウザはIEとFireFoxで試したのですがIEのほうが少し空白になる割合が低そうです。 コード・サンプルなどは要望がありましたらUPしますけど。
>>413-414 ちゃうだろ、例えpostで取得した時点で文字列だとしてもクエリ発行の際に
クオーテーションで囲むか否かで数値として入れるか文字列として入れるかが変わる
>>415 原因すらつかめてないならコード晒そうよ
出せない部分は伏字とかで良いから
>>415 まずどの時点で想定外の結果になっているかを把握
データをどう扱うかは結局PHP側でどうにかしないと
馬鹿ばっかり。 データベースに書き込んだ時点で、PHPでどういう型で 扱っていたかなんか忘れ去られる。 SQLで数値をクォーテーションでくくったからと言って 数値で記録されるというわけでもない。そもそも数値だろうが文字だろうが 全部クォーテーションでくくって何の問題もない。 データベースにはPHPの型情報なんて記録されていないんだから、 データベースから取得した時点で型がどうなるかは、データベースと そのスキーマ定義と読み込むときに使用するPHPライブラリに依存する。 まあ、普通はデータベースのフィールドの型になるだろうが例外もあるだろう。 つまりだ、なんのデータベースを使って、テーブルのフィールドの型が どうなっていて、どのライブラリを使ったか書けという話。
421 :
406 :2008/01/19(土) 13:42:58 ID:QtJ57h/6
みなさん、丁寧なご回答をありがとうございます。
古い表記を知らなかったなど、変なコーディングをしていたことに気づき、
勉強になりました。
>>409 古い表記とかあるのですね。調べてみます。
確かに、受け取るデータは配列に入れて管理すると楽になりますね。
ループで一気に処理など出来ますし。
>>410 私はつい、(...)and(...)を使ってしまうへんな癖があるようです。直します
IPアドレス取得のコードは表記が古かったのですね。
> あと重複チェックなら1行ずつ取得して
> 文字列一致を探した方が早いんじゃ?
これは、具体的にはsplit(",",$read_line)を使用せずに、
例えば以下のようにするという意味でよろしいのでしょうか。
$day_ip = $day . "," . $ip;
if(preg_match($day_ip, $read_line))
> それとCSVで使用している文字を変更するとあるが
> 勝手に入力値を変更するはどうかと
確かに言われてみるとそうですね。"にしてみます。
> あと自作関数だがエラーと完了のみにして
> function error($errMsg,$title='',$param=null){
言われてみて、そういうまとめ方がいいなと気づきました。
構造的に似たような関数になってますしね。
> 因みに連投拒否のところに書いてある$ipは表示されないからねっ
自分の環境で動かしていて気づいていなかったのですが、
確かにおっしゃる通りですね。スコープを考えていませんでした。
422 :
403 :2008/01/19(土) 13:48:09 ID:???
>>414 ほんとだ、、SQL送信直前にintvar()したけど、取得したら文字列でした
最終的に、取得値をNullと0で区別したいんですが…
取得値に対して再度intvar()しなきゃいけないのかな やっても
登録するカラムのデフォルト値がNULLなんで、
if(intvar(取得値)===0){〜〜;} ってした場合、NULLを拾ってきた場合も
処理してしまいますよね? めんどくさいなー
423 :
406 :2008/01/19(土) 13:48:56 ID:QtJ57h/6
>>412 > なんでq5だけに改行や','が入ってくるって決め付けてるのさ
これは、誰かがformを自作して変なデータを入力しようとするのを
防ぐという意味合いですよね?
Q1〜Q4においても、入力されるデータにチェックをかける必要が
ありますね。
424 :
415 :2008/01/19(土) 13:51:52 ID:???
<?php //header("Content-Type:text/html;charset=EUC-JP"); $strDir=dirname(__FILE__); $strXml=$strDir."/[****].xml"; $strXsl=$strDir."/[****].xsl"; $objPrc=xslt_create(); $result=xslt_process($objPrc,$strXml,$strXsl); //print(mb_convert_encoding($result,"EUC-JP","UTF-8")); if ($result){ print $result; }else{ print"errno=".xslt_errno($objPrc); print"err =".xslt_err($objPrc); } xslt_free($objPrc); ?> あいよー汚いソースですんません。PHP側のソースはこんだけ XSLTは静的に(XML文書内にXSLTを指定)はなんら問題なく表示されてます。
もっとも正しい答えは「今さらAWSなんてやめとけw」
426 :
415 :2008/01/19(土) 14:00:16 ID:CC01YTh8
すいません。今いろいろ試して解ったのですが
どうも借りてるレンタルサーバ(ロリポ)でおかしく、サクラだと何の異常もなくうごいたので、
どうもレンタルサーバの負荷もしくは環境かなと。
迷惑かけてすいませんでしたー。
>>425 ごもっともw
>>422 420よめよ。。
だいたいオマエのDBは文字列型も数値型も両方同じフィールドに入るのかと。
アドホッククエリ書いてる気がするんだけど、そうなら連結してる変数を
intに変えようが全く意味がないし。
nullと0の区別はPHPのように型が緩い言語ではやりにくい。
ライブラリとか使ってるなら勝手に変換されちゃうこともあるんでさらに。
なので数値型のフィールドではnot null制約しといて規定値0にしてる。
429 :
403 :2008/01/19(土) 15:27:14 ID:???
>>428 すみません、422書いてる間に420のレスもらってたみたいで読めてませんでした
カラムはint型でデフォルトがNULLです
0だと後々の処理の中で意味を持ってしまうので(
>>422 )そうしたつもりだったんですが
いっそのことNULL指定もしない空欄にすべきでした
PHPが型指定あいまいってのを今回ようやく痛感した感じです
>>420 >データベースにはPHPの型情報なんて記録されていないんだから、
確かに…って感じです ありがとうございました
PHPの型指定の曖昧さは他の箇所でのことなんだけど
int のカラム SELECT した結果て intで入るっけ?
関数によるでしょ
435 :
350 :2008/01/19(土) 18:05:25 ID:yodDlY2F
350です。
昨日は皆様ありがとうございました。
参考にさせて頂いたページや、他のページも見ながらとりあえず読み込むことができるスクリプトを書いてみようと思い、
ちょっと書いてみましたが上手くいきません。
ファイルへのアクセスはできているようですが、echoした結果が'<'としか出ません。
どこが間違っているのか添削をお願いできないでしょうか?
よろしくお願いします。
<?php
$log = "
http://www.xxxxxx.com/test.log ";
$size = sizeof($log);
$handle = fopen($log, "r");
if (!$handle) {
echo "<p>Unable to open remote file.\n";
exit;
}
$line = stream_get_line($handle, $size);
fclose($handle);
print $line;
?>
>>435 君、才能ないから百姓でもしてな
それが最終的に君のためになるんだよ。
こいつの書き込みを読むたびに笑ってしまうのだが、ウケ狙いなのか?w
むしろ本気だから面白いんだろう
>>435 二万で目的のもの作ってやるよ
>>435 それは君の使っているサーバの仕様も関係することだから、
その具体的なサイトを書いてくれないと話は進まないぞ。
441 :
350 :2008/01/19(土) 18:57:53 ID:???
偽者だろうけど真面目な話題中に茶化すなよ屑
どこが真面目なのか僕にはわっかりましぇーん
レベル ヒック (ドイツの思想家 1906-1972)
>>429 SELECTした値をカラムの型に合わせて(というかDBが返してきた型そのままで)
ちゃんと取得できるライブラリやフレームワークもあるけど、PHPだとどうかなあ?
ある程度やってくと、型が緩いってのはデメリットだと思うようになったりするんだよね。
ぼやいても仕方がないので、それを考慮してあらかじめ回避しとくしかない。
個人的には言語に関係なく、数値型のカラムの0に意味を持たせるのは避けたほうがいいと
思ってる。型に厳格な言語なら、nullと0の区別はつくけどね。
446 :
nobodyさん :2008/01/19(土) 21:57:02 ID:FuloTUhn
すみません、設定について質問します cmdでpearのライブラリをインストールしようとしたら(php.exeの実行)、 「php_mbstring.dllが見つからなかったためインストール失敗しました」という メッセージが出ます。(その後も立て続けに○○が見つからないという警告が出ます) phpinfo()で調べたら extension_dir C:\PHP\ext となっていて、その中にphp_mbstring.dllが入ってました php.iniのextension=php_mbstring.dllもコメント解除してあります 何が原因でしょうか? それとも見るところが間違ってますか? 環境はphp5.2.3でapache2、windowsXPです (さらにいうと、アラート表示はするものの、C:\php\PEAR\Calendarの形で インストール自体は成功してます)
ひょっとして php.ini がこうなってるんじゃね? extension=php_exif.dll extension=php_mbstring.dll ↑これじゃ、駄目で extension=php_mbstring.dll extension=php_exif.dll ↑こうしないと駄目 php_exif.dll は php_mbstring.dll がロードされてないとロードできないから、 その様なエラーメッセージボックスが表示される
rsswriterってダウンロード元のリンクが切れてるんだけど、 どこで配布してるん?
450 :
448 :2008/01/20(日) 00:25:15 ID:y4+xWtE5
ID公開おk
451 :
448 :2008/01/20(日) 00:32:24 ID:???
事故快尻しました
452 :
448 :2008/01/20(日) 00:36:18 ID:y4+xWtE5
453 :
448 :2008/01/20(日) 00:47:43 ID:???
>>450 は偽者です。
rsswriterってダウンロード元のリンクが切れてるんですが、
どこで配布しているかご存知の方いませんか?
454 :
446 :2008/01/20(日) 00:52:46 ID:jGlr+mbd
>>447 すごい! ほんとにそうなってました。
で、php_exif.dllよりもmb_string.dllを先にして再起動後
pear install -f Spreadsheet_Excel_Writer としたんですが、
今度は「OCI.dllが見つからなかったため失敗」と言われました
どうしたらいいんでしょうか? .dllの記述順って厳格に決まってるんですか?
あるならどこかそれを確認できるサイトないでしょうか?
また、実際php.iniにはphp_pdo_oci.dllとphp_pdo_oci8.dllはあったけど
oci.dllはありませんでした ※でもやはりインストール自体は成功してます
http://hey.chu.jp/up/source3/No_12545.txtなんですが 、
僕のphp.iniのextension変ですか?
456 :
446 :2008/01/20(日) 01:27:57 ID:jGlr+mbd
>>455 ありがとうございます しかしダウンロードしたphp5.2.5のphp.ini見てみると、
自分のものと記述の順序同じです
ていうか、php_exif.dllがmb_string.dllよりも先にあります
(447さんの推奨順序とちがう、、) これはいいのかな?
あと、apacheのエラーログ見ると、
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll'
というエラーが延々出ています
.dllの個数分というわけじゃないですが、これも関係してるんでしょうか?
>>456 糞zendの .ini ファイルなんて信用するなよw
windows のインストーラー壊れたまま、chm 文字化け放置してるぐらいなんだからw
で、pdo 使いたいみたいだが、これもロードの順序あるんだわw
extension=php_pdo.dll
をとにかく前の方に記述してみな
htmlの削除フォームから、ファイル名を入れ、 ディレクトリAにアップロードされたファイルaを 削除しようと、 unlink(basename($_POST['filename'])); を使おうとしたのですが、ディレクトリA内の指定の仕方がわからなくて困っています。 $dir = "./A/"として unlink(basename($dir,$_POST['filename']));などいろいろやってみたのですがうまくいきませんでした 詳しくは、 html側 <form action="delete.php" method=""> <input type="text" name="filename" value=""> <input type="submit" name="delete" value="delete"> </form> php側 <?php if($_POST['filename']){ unlink(basename($_POST['filename'])); } ?> ですが、エラーはないのですが、もちろんファイルを消してくれることもありませんでした。 どうかよろしくお願いします助けてください
460 :
459 :2008/01/20(日) 03:39:35 ID:SGo/1Pd2
windows xp Apache 2.0 Handler でし
461 :
nobodyさん :2008/01/20(日) 03:40:23 ID:SGo/1Pd2
→です
unlink(basename($dir.$_POST['filename'])); ^ ここ 不特定多数が利用する仕組みなら、ディレクトリトラバーサル対策に realpath()とか使って想定されたパスかどうかチェック
あと、 method="post"としないとGETになるよ
windows xp Apache 2.0 Handler でし!!(*'-^)d
465 :
nobodyさん :2008/01/20(日) 04:23:04 ID:GtMoA5jM
現在、PHPの勉強様に掲示板を作っています。
そしてDBより取得した「DateTime型」の値を2chの様に
2008/01/20(日) 00:15:54
といった形式で表示するにはどうすれば良いでしょか?
1※レコードセットで取得しておりまして、DBより取得した値は
「2008-01-17 01:13:47」
の様な形で入っています。
2※次のサイトを参考に見ているのですがどうしても2chの様な
文字列で出力する事が出来ません。
http://www.scollabo.com/banban/php/php_12.html
preg_match→mktime→dateとか もっとシンプルな方法があるかも知れんが
467 :
nobodyさん :2008/01/20(日) 04:43:07 ID:SGo/1Pd2
>>462-463 おお!
realpathとmethod="post"つかったら
とりあえずはファイル削除することができました!
ありがとうございました!
初歩的な質問をさせていただきます $test1 = 'test'; $test[0] = 'test'; $test2['test'] = 'OK'; print "$test2[$test1]\n"; ←@ print "$test2[$test[0]]\n"; ←A @は上手くいきますがAは上手くいきません Aのように、連想配列の添え字を配列にすることはできないのでしょうか
>>465 $timestamp = strtotime('2008-01-17 01:13:47');
$weekNum = date('w',$timestamp);
$week = '';
switch($weekNum) {
case 0:
$week = '日';
break;
case 1:
$week = '月';
break;
case 2:
$week = '火';
break;
case 3:
$week = '水';
break;
case 4:
$week = '木';
break;
case 5:
$week = '金';
break;
case 6:
$week = '土';
break;
}
$date = date('Y/m/d('.$week.') H:i:s',$timestamp);
俺ならクエリーで全部済ませちゃうな
>>469 ダブルクォーテーション外せば通るよ
外すのが嫌なら
print "{$test2[$test[0]]}\n";
こんな風に{}で囲めば良い
471さん 出来ました、ありがとうございます^^
>>470 馬鹿すぎだろ。せめて配列に入れとけよ。
相変わらずレベル低すぎ
476 :
nobodyさん :2008/01/20(日) 14:58:37 ID:GtMoA5jM
>>466 さん,
>>468 さん
勉強してみようと思います。
>>470 さん
ありがとうございます。解決しました。
でも、よくよく考えてみると態々PHPで整形する必要性は全く無いですね^^;
でもPHP関数の勉強になるので今回は敢えてPHPで実装してみようと思います。
>>471 たまにそんな風に{}で囲むことがある場合があるけど、その場合の{}の意味合いはどう解釈するものなの?
>>477 まぬあるに書いてあるよ
>>478 全てタイムスタンプを基準としてstrtotime使ったほうが楽でないか?
おまえらのレベルの低さは産まれつきなのか?親がIQが低いと悲惨よのぅ。
レベル低いだの煽ってる馬鹿はID出して素晴らしい解答してやってくれ
>>481 学歴とIQの低いおまえらに俺様が回答しても、高度すぎて理解でけへんやろw
>>479 できればそのURLを教えてちょんまg
お願い
>>480 さっき俺んちの親が泣いてたのは、それが原因だったのか……orz =3
487 :
459 :2008/01/20(日) 19:53:47 ID:???
また問題が発生してしまいました。 Apache 2.0 Handlerのlocalhostでは動くのですが、 レンタルサーバーに同じものを設置するとエラーがでてしまいます。 html側 method="post" に変更だけ php側 <?php $real_path = realpath("./data/"); if(unlink($real_path.$_POST['filename'].)){ print("success!"); } ?> エラー内容 Parse error: syntax error, unexpected ')' in /home/users/7e/****/www/********/1/delete.php on line 9 ---------------------- if(unlink($real_path.$_POST['filename'].)){ で ” でくくってみたり . を加えてみたりしたのですが 余計にエラーがひどくなってしまって、この状態が一番エラー文が少なかったです。 消したいファイルと、そのファイルが入ってるディレクトリの属性は、それぞれ604と777でやってみました よろしくお願いします。
488 :
nobodyさん :2008/01/20(日) 19:54:28 ID:SGo/1Pd2
age
489 :
nobodyさん :2008/01/20(日) 19:55:38 ID:SGo/1Pd2
ちなみにon line 9の部分がif(unlink($real_path.$_POST['filename'].)){ のラインでした
ちょ
このスクリプトは動かないままにしておいた方が幸せな気がする。
493 :
nobodyさん :2008/01/20(日) 20:14:34 ID:GtMoA5jM
ちょっと皆さん質問させて下さい。日付の質問をした者です。 勉強用に人様の作ったサーバ(自宅サーバも含む)で公開されて いるPHPスクリプトファイルを見る(参照)事って可能でしょうか? 今、PHPのコードは現在、我流で色々作っている為、 はたしてこう言う(我流コード)作りで良いのか? と不安になったりします。 ※Googleで調べたところクライアントからサーバにアクセスをすると そのタイミングでphp ⇒ html に変換される為「不可能」との 事でした。 もしソースを参照する方法をご存知の方がいらっしゃいましたら ご伝授願います。
無理。公開されているソースを探せ。初めはPearなんかお勧め。
495 :
nobodyさん :2008/01/20(日) 20:27:17 ID:GtMoA5jM
>>494 無理ですか。。。
Pearという物には触れた事が無いのでちょっとぐぐってみます。
あとは、職場でPHP(Java)開発をしている人と仲良くなって
ちゃっかりソースを頂こうと思います。(これってマズイ???)
ドトネト畑でして、業務レベルPHPコードが未だ現状では書けません。
>>493 危ないから、普通はそんなことはさせないようになってると思う。
例えば、会員用のログイン画面をPHPで作ってる人が居たとする。
そのPHPソースが見れるということは、どのデータベーステーブルを参照して認証してるとかの情報がわかってしまうだろう?
人様の作ったものを勝手に見るような事は考えずに、わからなかったら当面はここで質問するといい。
で、レベルが上がったら質問する側から答える側にまわれるようになるといいな。
ここのやつは、口は悪いやつも居るがみんな根はいいやつばかりだよ。
教える気もないやつは、おそらくこのスレを見もしないだろう?
がんばれ。
正常に動けばいいんだよ。体裁や作りなんてその後の話。
プログラムの書き方なんて関係ないだろ。 問題が起きるプログラムであるか、ないか。そこが大事。 過程より結果だ。
スーパープログラマーでもないやつが わかったことだけをスレチになろうが関係なく書き込んで 優越感に浸ろうとするが、当人は恥をかいてることに気づいていない
>>497 >>498 私も同意見です。
まずは、仕様通りに動かさせることが先決だと思う。
その後に、コードの簡素化やなるべくメモリを消費させないような仕様に変更して
価値の向上を目指す方が良いと思う。
自分の力量以上のことをやって、先に美しいコードを書こうとしていつまで経っても
完成しないのでは意味がない。
レベルは圧倒的に違うとは思うが、企業でもベータ版のソフトからどんどんユーザのニーズを取り入れたり
もっと良いものにしたりして使い勝手の良いものにしているのだし。
個人的には、動かなくても読めるコードは直せば良いけど、動くけど読めないコードは修正できないから、 前者の方が良い。 あとソースコードから勉強するより、オライリーあたりの本でも読んだほうが良いと思う。
オライリーの本に何書いてあんの?
レベルひっくw
>>502 セキュリティとか色々。
でもよく考えたら、プログラミングの作法についてはあんまり書いてなかったかも。
>>501 この場合、機能拡張をするとか、他人のソースを引き継ぐ話じゃないだろ。
システムとして動かす時、このコードでいいのか不安だという話だろ。
「そういう不安は持つ必要ない」でいいんでないの?
可読性の低いコードは、安心して動かせるものか確認するのが難しい。 コードの可読性は、自分しか読まない場合でも十分意味がある。
>>506 いやそれは必要だと思うがw
493が具体的に何の話をしているのかによる。
セキュリティなのかコーディングスタイルなのか関数を再発明しているのか構造の効率化なのか何なのか。
俺が思うにろくにリファレンスも読んでいないレベルのような気もするが。
CodeGolfじゃあるまいし後々自分でも読めないようなコード書く奴は氏ねばいいのに。
どのプログラミングにもいえる話だが、ソースの書き方のスタイルを 自由に認めているからどう書けばよいのかとかそういう議論に なっていくんだろうな。プログラミングの永遠のテーマだ。 しかし、こういうテーマをずっと考えてばかりいる奴は何も進まないのは確かだ。
日本生まれの日本育ちな中学生が、英語勉強してるようなもんだろ。 そりゃ間違いもいろいろあるさ。 読み方も書き方も初めてなんだ、自分が書いた文章が正しいのかそれとも他に参考になるような文章があるのか 誰だって、最初は迷うだろ。
昔はvirtualaveっつーサイトがあっていろんなソース見放題だったんだがな
513 :
350 :2008/01/21(月) 00:32:11 ID:YgC1PUVS
350です。 皆様に教えていただいたページなどを参考にスクリプトを書いてみました。 片方のサーバから、もう片方のサーバにFTP接続でファイルをアップロードするスクリプトです。 きちんとアップロードされていました。 教えてくださった皆様、ありがとうございました。 以下は書いてみたスクリプトです。 $ftps = ftp_connect($host); $result = ftp_login($ftps, $username, $password); if (!$result) { echo "接続に失敗しました。\n"; return; } ftp_pasv($ftps, true); ftp_chdir($ftps, $dir); ftp_put($ftps, $dir."/".$upload_file, FTP_ASCII); ftp_quit($ftps);
515 :
nobodyさん :2008/01/21(月) 00:46:52 ID:DIuX2u4G
社内のコーディング規約で if ($area > 0) 1行のみの処理 if ($area > 0) { 複数行の処理 } のように来年度からきまったのだけど、とてもやりにくい。 どうすればいい?
好きなように書いてバレるまで黙っておく
517 :
350 :2008/01/21(月) 01:09:35 ID:YgC1PUVS
>>514 初心者ですみません。
これで問題ないものだと思ったのですが。 すみません、教えてください
if( ・・・ ) 1行 else { 複数 }
519 :
350 :2008/01/21(月) 01:12:42 ID:YgC1PUVS
>>514 もしかして、10行目ですか?
ftp_put($ftps, $dir."/".$upload_file, $upload_file, FTP_ASCII);
ローカルにあるファイルを指定してるところが、書き漏れていました。
350は煽られるかもしれないのに よく懲りないで来るね。
522 :
350 :2008/01/21(月) 01:41:12 ID:YgC1PUVS
>>520 まったくわかっていませんでした。お心遣い感謝します。
>>521 煽られても仕方ないと思っています。
私がバカなので皆様にご迷惑をかけて申し訳なく思っています。
あのコードのどこがいけなかったのか、わからないので
すみませんが、教えてください
>>519 君は百姓してろと忠告されたはずだ。
それが最終的には君とご家族のためになるんだよ。
>>523 むやみやたらに煽るなガキめ
簡単なコードも書けんなら寝てろ暇人
>>522 マニュアルは読んだのか?
>>524 いいから答えだせや、クズ。笑ってやるからよ。
>マニュアルは読んだのか?
当たり前じゃネーか。 マニュアルマニュアルってうるせーんだよ、ハゲ。
いいからケツだせや、クズ。入れてやるからよ。
「サーバの仕様が関係する」といわれた時、痛いサイトがさらされるかと期待してたのに・・・
528 :
459 :2008/01/21(月) 08:00:48 ID:iStOW3ry
あれから少しいじってみて、単純に同じディレクトリのファイルを消すように if($_POST['filename']){ unlink($_POST['filename']); print("success!"); } としてみると問題なく削除することができました。 これをディレクトリを指定して、その中のファイルを削除するようにしたいのですが その記述の仕方がわかりません どうか教えていただけないでしょうか。よろしくおねがいします。
>>528 $dir = "../images/";
if ($_POST['filename']) {
unlink($dir . $_POST['filename']);
# unlink("../images/" . $_POST['filename']);
pring("success!");
}
で出来る。 外部からディrクトリも指定したいなら
$dir = $_POST['dir'];
に替える。
固定のディレクトリでいいのなら$dirに任意のディレクトリを入力しておく。
ただ今のままじゃ想定しないディレクトリ内のファイルも消されてしまう。
$_POST['filename']に ../test.jpeg とか入力されるとそのファイルが削除されてしまう。
$_POST['filename']は正規表現などで、英数字とドットのみは受け付けないようにするなどしたほうがよい。
続いて、ファイルやディレクトリ(外部から指定するようにしたばあい)の存在チェックも忘れずに。
file_exists
is_file
is_dir
あたりを参考に。
530 :
459 :2008/01/21(月) 09:33:46 ID:???
>>529 できました!
おっしゃ通りまだセキュリティー面をぜんぜん考えていないので
言われたのを参考に調べてみます!
うやむやがすっきりしましたありがとうございました
532 :
nobodyさん :2008/01/21(月) 09:59:54 ID:kkXgkN55
HTTPリクエスト時に、POSTでリクエストして、結果を取得できますが、 リクエスト時にそのページにジャンプする方法はありますか? headerか何かでリクエスト+Locationができれば嬉しいのですが・・・。
534 :
nobodyさん :2008/01/21(月) 10:09:52 ID:kkXgkN55
>>533 それを、POSTリクエストを含めて行いたいのです。
535 :
532 :2008/01/21(月) 10:22:37 ID:kkXgkN55
537 :
nobodyさん :2008/01/21(月) 11:33:26 ID:kkXgkN55
>>536 location前にPOSTを送信するとできるのですか、有難う御座います。
早速試してみます
mb_convert_encoding($value, "SJIS", "SJIS"); mb_convert_encoding($value, "EUC-JP", "EUC-JP"); mb_convert_encoding($value, "UTF-8", "UTF-8"); こういう記述って問題ないよな
parse errorやwarningは出ないかと
542 :
nobodyさん :2008/01/21(月) 14:50:55 ID:kkXgkN55
Smartyで使うテンプレート内で、PHP文を使うことは可能ですか? ちなみに使いたい関数はmb_convert_encoding()です。 変数を受け渡す前に行わずに、テンプレートに受け渡してから行う方法があれば教えてください。
>>542 Smarty使ったことないけど多分可能
headerで指定すればいいはず。
545 :
nobodyさん :2008/01/21(月) 15:12:14 ID:kkXgkN55
>>544 調べても、出てくるのはテンプレート内でのif文・foreach文などのループ文や、
テンプレート内でSESSION・環境変数を使うようなことばかりで、
関数を使うにあたっての記事は見当たりませんでした。
そもそもテンプレートに渡してからmb_convert_encodingをする意味がわからない。 テンプレートに合わせた文字コードで渡せばいいんじゃないか?
PHP Editor使いにくいな PHP Editorでフォルダ消しても、表示から消えるが、 実際フォルダ残ったまんまだし・・・
は?
> PHP Editorでフォルダ消しても、表示から消えるが、 > 実際フォルダ残ったまんまだし・・・ > PHP Editorでフォルダ消しても、表示から消えるが、 > 実際フォルダ残ったまんまだし・・・ > PHP Editorでフォルダ消しても、表示から消えるが、 > 実際フォルダ残ったまんまだし・・・ > PHP Editorでフォルダ消しても、表示から消えるが、 > 実際フォルダ残ったまんまだし・・・ > PHP Editorでフォルダ消しても、表示から消えるが、 > 実際フォルダ残ったまんまだし・・・ > PHP Editorでフォルダ消しても、表示から消えるが、 > 実際フォルダ残ったまんまだし・・・
>>553 日本語が理解できないのか
どこの国のニートさんですか?^^;
煽ってるやつを煽ってるやつって・・・
$_GET = $_POST;
全員ID消してるし全部自演だろ?
なにやらごたごたもめてるのは、プロジェクトビューでのことか? プロジェクトの概念が理解できないのなら、センスないから 辞めた方がいいぞ。他の言語のIDEもそうなっているんだから。
おまえらカントンはよくないよ、カントンだけは・・・
561 :
nobodyさん :2008/01/21(月) 19:03:00 ID:FJRU+V1H
クダ質なんだけど、date()で返す時間とか月とかは、そのphpが入ってるサーバの 時間を参照してるわけ? apacheのインストールもphpのインストールも自分でしたけど、 時間設定した記憶はないし… もしかしてOSの時間? もしそうなら、サーバの調子が狂ったらどうするの?
>>561 サーバの時間て何?Apacheて個別に時間設定できたっけ?
>>561 自分のローカルPCにApacheとPHPを入れて、BIOSの時間設定を変更して
プログラムを実行してみてからこい。
566 :
561 :2008/01/21(月) 20:04:03 ID:???
ありがとう 確かに板違いでした、申し訳ない
火災報知機が義務化されるらしいが、 phpのデーターセンターって火災報知機の設置はどうなっているの? 火災報知機をつけたってアナウンスが来てないけど。
568 :
nobodyさん :2008/01/21(月) 20:46:27 ID:MggCWroJ
smartyについての質問ですが、該当スレがdat落ちしていたためこちらで質問です。 smartyのテンプレートを利用ユーザに編集させてたいと思っているのですが、 {include file=index.php}などされるとソースが見えてしまいます。 なんとかできないでしょうか? templatesフォルダ外は見れないかなと思ったのですが、includeできるようです。 テンプレート内で使える関数を指定できるとかないですよね?
570 :
531 :2008/01/21(月) 21:05:43 ID:QMxieb83
ID表示を忘れてました。 ・サンプルをそのまま動かしただけ ・E_ALLでもエラーは吐かないようなのでdebianの問題なのかもしれません。 debianスレで質問するよりこちらの方が的確な回答が得られるかと思ったので よろしくお願いします。
>>568 うろ覚えだが、↓みたいな設定で出来たかと
$this->security = true;
$this->security_settings["INCCLUDE_ANY"] = false;
$this->security_dir = "/path/to/templates";
$this->trustes_dir = "/path/to/php";
$this->use_sub_dirs = false;
572 :
nobodyさん :2008/01/21(月) 21:24:49 ID:Oosg4/rN
PHP5サンプル集というの買って 動かしてみようと思い。少しがんばって pear,smarty,DB,authと設定してて一部動いたのだが 別のプログラム読むとこのウォーニンの量!!! なんじゃこりゃ。 何処までおれの時間奪う気だ、死ね!!!!! 頼むから死んでくれ! Warning: include(jpgraph/jpgraph.php) [function.include]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\samples\chap4\graph\chart.php on line 2 Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph.php' for inclusion (include_path='/php/auth/') in C:\Program Files\Apache Group\Apache2\htdocs\samples\chap4\graph\chart.php on line 2 Warning: include(jpgraph/jpgraph_pie.php) [function.include]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\samples\chap4\graph\chart.php on line 3 Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph_pie.php' for inclusion (include_path='/php/auth/') in C:\Program Files\Apache Group\Apache2\htdocs\samples\chap4\graph\chart.php on line 3 Warning: include(jpgraph/jpgraph_pie3d.php) [function.include]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\samples\chap4\graph\chart.php on line 4 Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph_pie3d.php' for inclusion (include_path='/php/auth/') in C:\Program Files\Apache Group\Apache2\htdocs\samples\chap4\graph\chart.php on line 4 Fatal error: Class 'PieGraph' not found in C:\Program Files\Apache Group\Apache2\htdocs\samples\chap4\graph\chart.php on line 5
C:\Program Files\Apache Group\Apache2\htdocs\samples\chap4\graph\chart.php の2行目でincludeが正常に行われていない 3,4行目も同様。
( ゚д゚) _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄ ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_ \/ /  ̄ ̄ ̄
575 :
568 :2008/01/21(月) 22:00:04 ID:MggCWroJ
>>572 その程度のことで罵声飛ばすようならば辞めた方がいいよ。
怒りすぎるとストレスで身体が持たないから。
サーバ移転する時とか、「動くはずだけど動かないなぁ」
なんてことしょっちゅうだから。
JpGraphロードしてないだけだろ。 warningの数で判断するなんて何という初心者
まぁ初めはみんなこんなもんだろ。 エラーになれるまでは毎回調べてたからな
身の程を知らず、背伸びをして書籍を買うからそういう風になるんだよ。 その本は本棚にしまっておいて、もう一度書店へ行って来い。
PHP 5.2.5をmake testしたら2008年問題が発生しやがったです、こんちくしょーっ!
初期設定で サンプル集5一つもうごかん(ワロタ)
perlとは違う難しさがあるからな、初期設定でperlはほぼ動く、phpはほぼ動かない。
素のままセットアップするとphpinfoすら動かんことがあるからな
extensionとセキュリティ関連はともかく、設定を全てデフォルトに戻してくれるような関数ってないのかな。
設定ファイルを上書き
再インストール関数か PHPならやってくれるかもな
で、次バージョンでやっぱり辞めますとか?w
そうじゃなくて、実行中のプロセスだけ。
デフォルトの設定ファイルをどっかに置いとけば不可能ではない
590 :
nobodyさん :2008/01/21(月) 23:37:36 ID:cWI2M6j4
メールフォームで質問です。 ・テキストフィールドにダブルクォートで文字を囲んで送信すると入力された情報が返されず、 何も入力されていないメールが送られてきます。 ・シングルクォート、\をいれると前に\がついてしまいます。(こんなカンジ→\'\\) フォームはHTMLで作成しています。確認画面のフォームに stripcslashes($_POST[name])を かけておりブラウザ上だとシングルクォートと\は除去されているのですが、メールだと除去されてません。 ダブルクォート、シングルクォート、\が付いた文字列をPHP・HTMLにどのように記述すれば、 メールにきちんと送られるようになるのでしょうか?どうか教えてください。 Apache/2.0.59 (Win32) PHP/5.2.4を使っています。
591 :
nobodyさん :2008/01/21(月) 23:40:40 ID:sm/tfw0I
>>589 どうやるの?
iniファイルをロードする関数探してるんだけど、見つからない。
.htaccess で overrideするのかな。
それとも iniファイルをパースして、ini_setするの?
だが断る
.access って書いたはずなのに、.aは消えるのか。知らなかった。
593 名前:nobodyさん[sage] 投稿日:2008/01/21(月) 23:42:45 ID:??? .access って書いたはずなのに、.aは消えるのか。知らなかった
>>594 そうなのか。処理が遅くなりそうだから、あきらめることにした。
>>595 (半角で).htaccess ですた。(´・ω・`)
もう寝よ。
>>596 phpの日本語ヘルプファイル落としてインデックス眺めてみろ
全角厨死ね
omaekososine
>>590 よくわからんが、とりあえず
magic_quotes_gpc = Off
603 :
nobodyさん :2008/01/22(火) 00:44:24 ID:m0vD4BDS
>>603 当該企業と正式な契約を行えば可能です。
605 :
nobodyさん :2008/01/22(火) 00:48:28 ID:nORw9PK8
>>602 590の者です。
magic_quotes_gpc = Offにするとその後どうするんですか?
確かphp.iniで設定ができますよね?
>>605 602じゃないけどとりあえずApacheを再起動したら?
607 :
nobodyさん :2008/01/22(火) 00:59:25 ID:m0vD4BDS
>>604 著作権の問題さえクリアできれば、PHPで可能ということでしょうか?
個人的にデスクトップの片隅に小さくブラウザで表示させておきたいんですが・・。
(定期的にリロードさせて更新させる)
>>607 君の株や為替の儲けの幾ばくかを分けてくれたら作ってあげるよ
>>603 fileとかでページを取ってくる。
preg_matchあたりで必要な部分を取り出す。
後は好きにドゾー
正規表現は別スレがあるのでそちらで
611 :
nobodyさん :2008/01/22(火) 01:15:36 ID:m0vD4BDS
>>608 レスありがとうございます。
可能ということですので、頑張って勉強してみます。
>>609 負けてますんで、勘弁して下さい。(ノ_-。)
612 :
nobodyさん :2008/01/22(火) 01:18:05 ID:m0vD4BDS
>>610 ヒントありがとうございます。
良い情報頂きました。
1万円で代行します!!!いえ、5000円でも良いです!!! お金がなさすぎて困ってます!!!!
これPHPで詳しくなるには(人を小馬鹿にできるレベル) この仕事してるかヒッキー以外無理と思う。
それは君の能力が低いからだよ(小馬鹿)
616 :
nobodyさん :2008/01/22(火) 07:42:20 ID:vHhiKcdC
DBテーブルからの情報取得に関してなのですが 例えば ID,属性1,属性2,属性3,名前 というスキーマがあり,それぞれ属性に数字で情報が格納されるとします。 この属性の意味を日本語のラベルを付けて表示するのは,PHP側で出力時に変換するのが一般的なんでしょうか? それともラベルテーブルを別に作って結合させるのが良いでしょうか. 端的で申し訳ないですが,経験者の方がいましたらアドバイスお願いします.
>>616 SQLを実行した結果を受け取る時点で文字列にしておくのが一般的。
氏名:ID,属性1,属性2,属性3,名前
属性:ID,属性名
とすると、以下のような文を実行することになる。(長くなりすぎるため
一部省略している)
SELECT 氏名.ID, 氏名.属性1, 属性.属性名
FROM 属性 INNER JOIN 氏名 ON 属性.ID = 氏名.属性1;
>string readdir ( resource dir_handle) >ディレクトリから次のファイルのファイル名を返します。 ファイル名はファイルシステム上に格納されている順番で返されます。 これをなんとか格納した順で返したいところ
一言でいうと面倒くさい。よーやるは。
あんたらよーやる、寒心、寒心!
>>616 PHP側で配列作っておいて、属性を要素にして引いたほうが楽だし速いと思うけどね。
保証するか?ダメなら賠償請求するぜ。
616じゃないが 個人的には「楽で早い」より「管理がし易い」のほうがいいと思うが・・・。 まぁ、クラス化しちゃえばどうでもいっか
CSVファイルでやっているならまだしも、DB使っている状況で、 ソースコードの中に実データを保管するのは気持ち悪くね?
625 :
nobodyさん :2008/01/22(火) 10:37:54 ID:2lDbj7KP
PHPなんて化石みたいなPerl使いが次世代のRubyについていけなくて泣く泣く使っているようなものだろ JAVAもRubyも出来ないようなWEBプログラマーは死ぬの?
627 :
nobodyさん :2008/01/22(火) 10:43:19 ID:eDYfSsSA
>>626 道具にこだわってる君が死ぬことだけは確実。
肝心なことは言語じゃない、何を作るかなんだな。
>>624 CSVファイルで持てばいい。
include一回すればおしまい。
DB使ってる奴って何でもかんでもテーブルで持ちたがるだよな。
SQL発行が如何に負荷が高い処理かよく考えてほしい。
>>625 >こういう形式のURLを開くととても時間がかかるので気になりました
この一文が気になる。
631 :
nobodyさん :2008/01/22(火) 11:03:04 ID:2lDbj7KP
>>628 SQL発行とCSVのincludeとどれくらい負荷が違うの?
633 :
nobodyさん :2008/01/22(火) 15:32:00 ID:Oa0QX3V3
文字列 20070122 などを YYYYMMDD でフォーマットをしなおしたい場合 $str = '20070122'; if(preg_match("/^([0-9]{4})([0-9]{2})([0-9]{2})$/",$str,$match)){ $str = $match['1'] . '-' . $match['2'] . '-' . $match['3']; } print $str; //2007-01-22 とやる以外にスマートな方法はありますでしょうか? 文字列 $str はDBなどに入っているものでも、date()等で取得したものではなく、単純な文字列データです(CSVに格納されているなど)。
>>633 date("Y-m-d", strtotime("20070122"));
628:nobodyさん:sage:2008/01/22(火) 10:52:46 ID:???
>>624 CSVファイルで持てばいい。
include一回すればおしまい。
DB使ってる奴って何でもかんでもテーブルで持ちたがるだよな。
SQL発行が如何に負荷が高い処理かよく考えてほしい。
なんつ〜か…色々と突っ込み所満載なレスだな('A`)
637 :
633 :2008/01/22(火) 15:46:07 ID:???
>>634 しまった…その手がありましたか。
ありがとうございます!
セキュリティのセの時も知らない様なガキが使いそうだな<csv include
>>638 URL直下に置かなければ問題なくね?
まぁ、CSVなんてDB置けないとこで使うようなもんだな
CSV includeって何?
セキュリティとDBは何の関係もないが
>>637 問題ないなら良いけど、タイムスタンプの範囲には注意が必要。
643 :
634 :2008/01/22(火) 16:10:41 ID:???
>>642 strtotimeの範囲って19700101〜でいいんだよな?
でも、それ以前でも自動的に取得できなかったかな・・・?
処理はだいぶ遅くなるけど
644 :
nobodyさん :2008/01/22(火) 17:36:03 ID:omtXdBd7
Linux red3 2.4.20-8 redhat 8 php 4.2.2 質問ですが、下記のようなプログラム(ファイル名 sample6.php)で、ボタンを押しても次の画面で入力した数字が表示されません。 なぜでしょうか? <? header("Content-type:text/html; charset=euc-jp"); ?> <html> <head> <title>サンプル</title> </head> <body> <? print($abc); if($birth == "1") { print("正解"); } else{ print ("数字入力してください\n"); } ?> <form method="POST" action="sample6.php"> 1入れて:<input type="text" name="abc"><br> <input type="submit" value="go"> </form> </body> </html>
$tmp |= (0x0001) << $_POST['content'][$i]; 書いてある意味教えてください |= これと 0x0001 これと << これの意味が分かりません 教えてくださいえらい人
もしかしてビット演算子か |= << これとこれ 0x0001これは?
648 :
644 :2008/01/22(火) 18:07:37 ID:omtXdBd7
>>647 html間違ってますか?
一応 htmlは知ってるのですが。
ヒントPLZ
>>644 ヒドイコードだなw
ヒント echo $_POST['abc'];
$birth = $_POST['abc'];
650 :
644 :2008/01/22(火) 18:14:47 ID:omtXdBd7
>>649 ありがとうございます。
表示されました。
653 :
644 :2008/01/22(火) 20:07:55 ID:omtXdBd7
>>651 ありがとうございます。
見て理解できました。
サンクスコ
655 :
nobodyさん :2008/01/22(火) 20:57:25 ID:ie4F05t5
クラスの継承について聞きます、よろしくお願いします。 BクラスにAクラスを継承したいと思います このとき、Aクラス中のメソッド funciton switchAry($name,$n){ switch($name){ case "bird": $theAry = $birdAry; break; case "flog": $theAry = $flogAry; break; } echo $theAry[$n]; } ってのをクラスBに継承しても、分岐条件(case 〜)は既存の"bird","flog"しか 使えないですよね? つまり他の条件を継承したメソッドの中身にねじ込むなんてのは無理で… 結局そんなことしたかったら新規にメソッドを作るか、元のクラスAの中の switchAryに追加するしかないという考えでOKですか? 質問の箇所以外にも変なところがありましたらすみません よければそれもあわせてご意見ください
デバッグコードとか以外でメソッドにechoってどうなのよ もうちょっとクラスが何かとかどういう使い方するかを勉強した方がいいよ まぁかなり強引だが動的にメソッド作ることもできるけど。。。
別にそんくらいよくね
658 :
655 :2008/01/22(火) 21:17:19 ID:ie4F05t5
え? echoってまずいんですか? あまり考えずに使ってました
659 :
nobodyさん :2008/01/22(火) 22:51:24 ID:Jy6n3MId
>>655 継承したほうでswitchAry()を再定義(オーバーライド)する。
>echoってまずいんですか?
あんまりよくない。
Javaだと必ず呼び出されるメインメソッドで他のメソッドを呼び出して表示するね。
PHPの場合、インスタンス化した後の処理でechoを使うといい。
switchAry()の返り値をStringにして
$obj = new A();
echo $obj->switchAry($name, $n);
見たいな感じで。
>質問の箇所以外にも変なところがありましたらすみません
>よければそれもあわせてご意見ください
未定義の変数使ったりソースが不自然。ちゃんとしたコードをまず書けるようにしましょう。
echo 使っても別にいいじゃん。
とりあえずfuncitonってのは変だねw
663 :
655 :2008/01/22(火) 23:18:30 ID:ie4F05t5
>>660 詳しい説明ありがとう
今、a.class.phpにクラスAを記述、b.class.phpにクラスBを記述してて、
c.phpに
require_once("a.class.php");
require_once("b.class.php");
としました。
で、b.class.phpのクラスBにはクラスAを継承させるつもりだったんですが、
これって動作しないですか? 別ファイルのクラスを継承するって無理なんでしょうか?
試してるんですが、動きません
>>655 実装して欲しい部分を切り離して
派生クラスで再定義できるようにしてあげるのが一つの手段。
class Foo {
public function getHoge($name, $index) {
$fuga = $this->getFuga($name);
return isset($fuga[$index]) ? $fuga[$index] : null;
}
protected function getFuga($name) {
switch ($name) {
case 'bird': return array(1, 2, 3);
case 'flog': return array(4, 5, 6);
}
}
}
class Bar extends Foo {
protected function getFuga($name) {
if ($name == 'phper') { return array(7, 8, 9); }
return parent::getFuga($name);
}
}
665 :
655 :2008/01/23(水) 00:01:36 ID:TY7vcim1
>>664 どうもありがとうございます
理解できたら凄く役立ちそうなことを教えてくれてるようですが、知識不足です
勉強します、ありがとう
echo 嫌厨か
いや問題はそこじゃないだろw
echoを否定してるわけじゃねえだろ 必ずechoの処理はどこかに入るんだから どこでechoするかってだけの話だろ
669 :
助けて下さい;; :2008/01/23(水) 02:38:46 ID:Q533T7ox
あるサイトで公開されていたソースなんですが 長いのでテキストファイルでアップしました。
http://kissho.xii.jp/1/src/1jyou24922.txt.html MagpieRSSを使いRSSを取得してくれるスクリプトです。
これをRSS記事の最新順に上から並んでほしいのですが、
このソースのままではサイト順にしか並びません;;
どこをいじってあげれば新着記事順に並び替えができるでしょうか?
もしよろしければ教えて下さい;;
色々なサイトでソースを比較していじったりしましたが出来ませんでした;;
;; ←なにこれ?ふざけてんのか?
新参の頃は、おまえらだって使ってただろぉUu ふざけてるってヒドイよぉ;; ^^
672 :
助けて下さい :2008/01/23(水) 03:07:53 ID:Q533T7ox
ごめんなさい。 以後気をつけさせて頂きます。
Uu;;^^
,,;;;;;;;;;;;;;;;;;;;;;;---、;:;:;:;:;:,,,
/;;;;;;;;;;,-'''" ゙'''ヽ;;;;;;ヽ ←
>>671 /;;;;;;;;;''' ヽ;;;;l
/;;;;;;;;;'" _ヽ、 【ちてきしょうがいしゃ】
i';;;;;;;;;;; ,,;;;;;;-=ヽ、
|;;;;;;;;;;| ,,,,,;;;;;;;;;-、 ‐'"゙_,,,,,,,_\
|;;;;;;;;/ /-─'''''''"ヽ "‐=二 ̄ヽ、 まちのにんきもの
|;;;;;;| '",,,-==‐ ヽ " 、 ヽ
,┴、;| ==ニ-‐'" , ヽ、 ゙i ちてきといっても
|l |ヽl /l .)\ i
\|lノl /└-‐ヽ-‐' ヽ i あたまがいいわけではない
l、 ゙| / ,,---'ニ=メ i .|
ヽ-i i' /-l「ヽ┼+// ;; /
ヽ、 ヽ=ヽ─++-''ノ /、
,,,,\ ヽ ゙‐─''''''"~ / ヾヽ、
,,-''''" \ / )
\ヽ、 / /
/ ̄ ̄⌒γ⌒ヾ / ________人 \ ノ::/━━ ヽ ヽ |/-=・=- ━━ \/ i /::::::ヽ―ヽ -=・=-_ ヽ i |○/ 。 /::::::::: /⌒) |::::人__人:::::○ ヽ ) ヽ __ \ / \ | .::::/.| /. / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \ ヽ::::ノ丿 / < ちんちん シュッ!シュッ!シュッ! しw/ノ___-.イ. \_______________ ∪
>>669 一番下の方にある
echo '<li>└ <a href="' . $url . '" title="' . $desc . '" target="_blank">' . $title . '</a>';
// 日付フォーマットが任意の物でない場合は更新日の比較をしない
if (preg_match("/^\d{4}\/\d{2}\/\d{2}\s?/", $date)) {
diff_date($date,$days);
}
echo "</li>\n";
}
って部分があるから
ここでechoってせずにを一旦配列にいれて
ソートすれば良いんじゃない
diff_dateで何してるのか解らんから
ob_start();
echo '<li>└ <a href="' . $url . '" title="' . $desc . '" target="_blank">' . $title . '</a>';
// 日付フォーマットが任意の物でない場合は更新日の比較をしない
if (preg_match("/^\d{4}\/\d{2}\/\d{2}\s?/", $date)) {
diff_date($date,$days);
}
echo "</li>\n";
}
$articles[] = ob_get_clean();
って感じで出力バッファ取得する方が楽だとは思うけど
>>669 原因箇所特定してからわからないなら書き込んでくれ。
丸投げの質問はここじゃ受け付けてないし、スクリプト改造はスレ違い。
RSSに記事が作られた日時が記述されているならそれでソートすればいいんじゃないの?
とヒントだけ。
真・スルー 何もレスせず本当にスルーする。簡単なようで一番難しい。 偽・スルー みんなにスルーを呼びかける。実はスルーできてない。 予告スルー レスしないと予告してからスルーする。 完全スルー スレに参加すること自体を放棄する。 無理スルー 元の話題がないのに必死でスルーを推奨する。滑稽。 失敗スルー 我慢できずにレスしてしまう。後から「暇だから遊んでやった」などと負け惜しみ。 願いスルー 失敗したレスに対してスルーをお願いする。ある意味3匹目。 激突スルー 話題自体がスルーの話に移行してまう。泥沼状態。 疎開スルー 本スレではスルーできたが、他スレでその話題を出してしまう。見つかると滑稽。 乞食スルー 情報だけもらって雑談はスルーする。 質問スルー 質問をスルーして雑談を続ける。 思い出スルー 攻撃中はスルーして、後日その思い出を語る。 真・自演スルー 議論に負けそうな時、ファビョった後に自演でスルーを呼びかける。 偽・自演スルー 誰も釣られないので、願いスルーのふりをする。狙うは4匹目。3匹目のスルー 直接的にはスルーしてるが、反応した人に反応してしまう。 4匹目のスルー 3匹目に反応する。以降5匹6匹と続き、激突スルーへ。
PHPで、DB接続を行うアプリ作るんですけど、 DB接続情報(IPやID,パスワード)って、どうやて管理していくのがよいでしょう? 一般に公開するアプリなので、ファイルへ格納しているだけだと 簡単にばれるのでは?と不安です 何かよい手段あれば紹介してください
681 :
助けて下さい :2008/01/23(水) 04:23:39 ID:Q533T7ox
>>677 さん
親切に教えて頂きありがとうございます。
試行錯誤頑張って結果にだしたいと思います。
夜中なのに本当にありがとうございます。
>>678 はい、次回からどこをどのようにしてとまともな質問をさせて頂きます。
気分を害してすいませんでした。
>>680 ファイルへじゃなくて、テーブルに格納でいいんでないの?
(DBがファイルベースだと論外)
SQLインジェクションなどに気をつけてアプリを組めばおk
>>680 一般に公開ってフリーウェアってことかね?
共有鯖の場合、CGIで動かしてSuEXECでもしてないと
同居ユーザが何のPHPソフトウェア動かしているか調べて
予想できる場所インクルードするだけでおkって恐れはあるだろうね
そういや数年前、数秒だけWeb鯖の設定ミスってソース丸見え状態、 偶然アクセスしたユーザがソース保存、脆弱性暴露して 祭りになった某画像掲示板があったな。
Webサイトを作る時に、JavaにできてPHPにできないことってあります?
>>680 が言いたいことは良く分からんな。
いろんな解釈が出来てしまう。
パスワードの問題ではなく、 ドキュメントの可視性や拡張子の関連性がそもそも分かってないんだろ
ひょっとして、PHPソースコードに書く pg_Connect() とかの文字列のことだったのか? お前エスパーだな。すごい。
mysql_real_escape_stringって、 実際に行っているのは $str = preg_replace('/\'/', "\\'", $str); くらいですか?
全然
知り合いがキーワード検索のmethodがPOSTなんだが・・・使いづらいorz
知り合いが単語検索の方法が郵便なんだが・・・使いづらい失意体前屈
>>695 こういう人最悪。
こういう人って、平気な顔して人の男を寝取るタイプ。
ホモ氏ね
本人はウケ狙ったつもりが回りはドン引き まさにKYの典型www
699 :
nobody :2008/01/23(水) 16:30:45 ID:02waJQsw
phpでaタグがあるかないかの分岐を作りたいので preg_much関数を調べてみたのですが、書き方がいまいち わかりません。 どなたか教えてください。
せいきひょうげん ↑読める?
702 :
nobody :2008/01/23(水) 16:34:39 ID:02waJQsw
preg_match
文字列処理の質問なら正規表現と答えておけば間違いないと勘違いしている思考停止状態のゆとり。
>>704 ゆとり乙
「正規表現」は答えじゃなくて入り口だ
じゃあお前は答えをそのまま書くのか?
それが
>>702 のためになると思っているのか?
反論されると鸚鵡返しでしか反論できないのが、典型的なゆとり脳の証左
<^a.+>.*<\/a>→<a.+>.*<\/a>
>>704 正規表現ほどスマートな選択肢ってないと思うが、他にどうやんの?
誰か俺にデータベースのSQL文の書き方教えてくれないか? 問題となってる部分がこれ 'INSERT INTO `bbsTable` (`id`, `title`, `comment`) VALUES ('''', '.$title.', '.$comment.')'; うまくいかないんだよ_| ̄|○ 誰か教えてくれ…。
712 :
704 :2008/01/23(水) 16:58:49 ID:???
マニュアル坊しねや
文字分解して1文字ずつ調べる方法とかある 正規表現は人によって書き方はまだらだし読みにくいという理由で複数人プロジェクト向け 個人で使うなら正規表現を覚えれれば正規表現使うのが最良
>>713 マニュアルも読まないで他人に全て頼るやつはPHPやらないでほしい
自分のためならまわりの負担を考えない馬鹿はおとなしく金を払うべき
>>711 コマンドラインに投げる感じでおk
mysql_query("insert into table(id,name,body)values('$id','$name','$body')", $mysql_connect);
>>711 phpの場合は、INSERT文を実行する前にTRUNCATE TABLE `bbsTable`を実行しないと、
失敗することがある。だから、前処理としてやっておいた方がいいよ。
最近このネタ多いな おもろいからいいけど
匿名でも嘘教えて業務に支障が出たら逮捕されるんだろうか
嘘を嘘と見抜けない人は2chをry
SQL弄ろうかってヤツがTRUNCATEやらDROPやら知らんわけないだろ
drop insert updateしか知りませんが何か?
ゆとりばっか
>>719 が弁明に必死と聞いて飛んできますた
電子計算機損壊等業務妨害罪乙であります
PHPからMySQL入るやつは大概phpMyAdminだからな 俺もそのうちの一人ですが何か
ありえね コマンド投げたほうが楽なのに
あんなバグだらけのもんよく使う気になるね。
データを表示するときに、コマンドラインじゃ不便だろ。 なんでもGUIよりCUIの優位性を必要以上に主張したがる奴は、 なんでも正規表現と連呼するやつと性質が似ている。
phpMyAdminでcreate,insert,dropする馬鹿がいるか? レコードを表示する時には、phpMyAdminよりもマシなGUIがあるだろと。 適材適所を考えろバカ
というか、もうMySQLからPgSQLに移るだろ、普通の人は・・・
Sunに買収されたんだろ 逆にMySQLのこれからにおおいに期待だぜ
redhad linuxも買収されてから、いつのまにか商用になって 無料じゃ使えないOSになったしなぁ。MYSQLも同じ運命か・・・
冷静に考えて、MySQLより大きなJavaを無償配布してるSunがMySQLだけ有料ってのは考えにくい。 むしろ今のMySQL ABのコンサルティングとかのサポートは高額なので、 Sunになっても変わらんっていうかちょっと安くなるかも。
>>739 冷静に考えて、soralisは有料なんだが・・・
Solaris無料じゃん
Sunはオープンソースに興味があるからな MySQLの従業員もそのままSun傘下に入ったしこれからも基本的な体制は変わらず Javaとの連携を強めるとかそっちがねらいなんじゃね?
>>709 その正規表現ならaタグじゃないのも引っかかると思うが・・・
>>718 バッククォートはつけたほうが良い
というかMySQL使うならNavicatが便利すぎる(2万~3万ぐらいする)
>>733 フリーのDB管理ツールでいい奴って何?
phpmyadmin以上に便利なの知らないんだけど
>>733 最初のテーブル作るときは(create)普通に使うだろ
あとdropもテーブルに入ってるデータ見ながらやったほうが安心できる
>>733 だけど、コマンド打ったほうが楽だからGUI使ってないだけ。
select用のviewを他に用意して、drop、alterも同様。select構文以外は殆どコマンド打ってるがなー。
なんでdropするのに中のデータが気になるんだろ。deleteならまだしも。 何が入ってようと消えるだけじゃん。
消していいデータか今一度確認するっていう意味合いなんじゃね?
>>744 cseでもつかっとけ
もう更新されてなかった筈だがmysql5とかでも使える
もう更新されてないのを勧めるなよww
752 :
nobodyさん :2008/01/24(木) 05:37:04 ID:oseLc3nh
質問します フォームの登録が完了したとき、SQLの2重送信を防ぐために別のページに 転送させることがあると思います。 そのとき、転送先のページに登録したデータの一部をPOSTの形で引き継ぐことは 出来ないでしょうか? header locationのような形での移動を考えると、GETなら出来そうですが… POSTは無理でしょうか
登録したDBから引っ張ってくれば?
754 :
752 :2008/01/24(木) 06:04:12 ID:oseLc3nh
>>753 ありがとうございます 確かにその手がありました
ちょっといろいろ試してみます ありがとう
PHP IDEを導入したんだが、 まずEclipseの使い方がわからない\(^o^)/
それはひどい
>>757 うーん、VS.NETをお遊び程度で使ったくらいだったからなぁ・・・
PHP IDEだと、Zend Frameworkとの相互性があるとかないとか聞いたから、
とりあえずPHP IDEを導入してみた。
ZF入門書も買っちゃったから俺ハジマタ
PHP IDE = PDTな
IDEのインストールや読みもしない書籍から入るのは良くないパターン
>>759 うん、でも俺は「PHP IDE」派・・・。
PDTでググると「眼科PDT研究会」とか出てくるのが嫌だ
>>760 あー、普通のプロジェクト開発は大丈夫
ただ、インクルードパスの設定とかhtaccessの作成をエクスプローラーに反映させたりするのがわからん/(^o^)\
昔は統合開発環境スレあったからそっちで聞けたのになぁ
そういやあのスレなんでもう立たないんだろうか
zend studioでも買えば? 要らん機能が多いけど、普通にお勧め
>>763 検討購入中
25,000だったっけ、学生じゃないから安く買えない・・・
eclipseスレならム板にあるけど、PDTの使い方ならググった方が早いべ。 eclipse pdt に一致する日本語のページ 約 51,700 件中 1 - 10 件目 (0.17 秒) 仕事で既存アプリ(数千ファイル)の改修・ドキュメント化を PDT+xdebug+simpletest+subclipseでやってるけど、良い感じ。
>>765 数千ファイルSUGEEEEEE
多くて精々50くらいだわ・・・
とりあえずYahooでググってくるわ
PDTは、(Java用の)Eclipseと使い方が似ているから、Eclipseを一通り使ってからでないと、ファイルの新規作成すらワケワカメだと思われ。 分かればとても便利なのだけれど。ZendDebuggerとの連携がすばらしい。
>>264 4万
まぁ試すだけならzend.comに
お試し用があるから試すといい
flashに渡すデータファイルを動的に作りたい、というようなことを考えたとき、 一時的に必要なデータファイルを作って、一定時間後とかアクセスがあったら とかの条件で消す、というような仕組みをPHPで実現するような方法は ありますか? データファイルを出力するようなページを用意してそれをflashに食べさせる 方がスマートでしょうか。
PHPでダウンロードとか表示するページを作って 直接データに触れなくすれば何でもできるべ
771 :
nobodyさん :2008/01/24(木) 14:16:49 ID:GkmSThHq
windows版のphpでメール送信を行いたくて、php.iniに [mail function] ; For Win32 only. SMTP = ***.***.jp smtp_port = 25 こんな風に設定しました。 いざphpからメールを送ってみると、 Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Authentication required というエラーが発生し送れませんでした。 調べてみると、送信する前にPOPの認証が必要みたいだったんですが、 phpでこれを実現するにはどういう風にプログラムしたらいいでしょうか。
772 :
nobodyさん :2008/01/24(木) 14:27:11 ID:a44FeVCd
POP認証入れる。 SMTP_AUTHを使う。 メールサーバ入れてSMTPサーバをlocalhostにする。 認証要らないサーバを使う。
GD無理なところで画像リサイズしたりのサムネイル表示させるにはどうすればいい しかも動的に 無理かな
775 :
nobodyさん :2008/01/24(木) 14:59:30 ID:oseLc3nh
いま、フォームを作っています。 1)記入フォーム 2)確認ページ 3)登録ページ(SQL) 4)完了ページ という流れがあって、登録ページは登録完了後すぐに4の完了ページに リダイレクトされるとします。(リロードによる二重送信防止のため) で、リダイレクト先の完了ページで登録内容を修正したいと思ったユーザが、 ブラウザのバックボタンを押すと確認ページに戻り、そこで「登録」することで 結局2重送信の形になってしまいます どうしたらいいでしょうか? バックボタン使用禁止などのメッセージを置く以外に 良い方法ないですか? 一度目の登録時に登録完了のフラグを持たせて、用意した「書き直す」ボタンでhidden送信しても ブラウザの戻るボタン使われたら元も子もないですよね… みなさんどうやってるんですか? 一応調べたんですが、「戻るボタン使用禁止メッセージ」を使うというのが多くて、 それ以外の考え方が聞きたくてお尋ねしました よろしくお願いします
777 :
nobodyさん :2008/01/24(木) 16:25:49 ID:5srzkiIl
ZendFw使っているのですが、 Viewのパスを $view = setScriptPath("example"); と設定しますが、 全てのページでViewのスクリプトを置く場所はかわらないので一括指定したいと思うのですが、 フロントで指定する方法はありませんでしょうか?
780 :
nobodyさん :2008/01/24(木) 17:12:56 ID:GkmSThHq
>>773 ありがとうございます。
お客さんのサーバなので、あまりいじれないんですよね。
教えていただいた方法をそれぞれ調べてみたんですが、pearが必要だったりするみたいなんですが、
php_init()関数ぐらいしか使えない状況下でも可能な方法ってないでしょうか?
>>780 PEAR以前にメール送信するにはメールサーバーが必要
案外、なんでもPHPでできると思いがちなんだが、メール関係はPHP・Webサーバーの設定だけじゃダメ
>>780 pearはコマンドラインからのインストールが必須ってわけじゃないよ
FTPで転送して終わりでも問題ないし
783 :
nobodyさん :2008/01/24(木) 17:34:14 ID:GkmSThHq
>>781 メールサーバはあるんですよ。
ただ、そこから送信するには、POP認証が必要ということで困っている状態です。。
>>782 え?そうなんですか?
みなさんありがとうございます。
ちょっと調べてみます。
別にPHPでメール送信するのにメールサーバーは なくてもできるけどな。
785 :
nobodyさん :2008/01/24(木) 17:51:59 ID:GkmSThHq
外部のメールサーバにソケットで接続するんじゃね?
>>785 蹴られるのはリレーを頼むからで、直接相手先に送れば蹴られない。
おまえらwindowsで開発してる? 俺はlinuxでしか動かないのがあるからlinux上でデバッグしようかとおもってるんだけど 仮想にぶち込んで低パフォーマンスだからeclipse動くか心配
>linuxでしか動かない kwsk
仮想上でEclipse動かして開発するんじゃなくて サーバ部分だけ仮想でLinuxいれりゃいいじゃん FTPなり共有ファイルコピーなり少し手間はかかるが
>linuxでしか動かない phpizeいるもん全般とか… >FTPなり共有ファイルコピー あぁそれだよなー 一手間かかるのがあれだがやむを得ないかもしれない
普通にvmware上でvimで開発してるが。
俺もvmwareで開発してる。 エディタはeclipse。 vmにwinscpでログインしてコマンドからミラーリングアップロードを使う。 そするとローカルで保存sすればvmに自動で同期される。 んで、ブラウザでvm叩く ( ^ω^)うまー
( ^ω^)うまー ← レベルひっくw 無知ってしあわせですわねwwwww
>>794 vimで開発とか特殊すぎて異端だから
Unix世代のよほど古いオッサンしかそんなことしねえよ
798 :
nobodyさん :2008/01/24(木) 21:01:43 ID:vo4pqLSe
799 :
nobodyさん :2008/01/24(木) 21:10:35 ID:9zAbxKxR
間違えてプログラム板で聞いちゃったのでこちらで聞きなおさせてください>< PHPで、変数1(数字以外の文字列)が変数2(こちらも数字以外の文字列)と等しければtrueを返す条件文を書きたいのですが、何かいい方法はないでしょうか? 数値以外の文字列の比較が出来る関数とかがあったりするんでしょうか、 それとも正規表現使ってマッチさせるとかそんな感じでしょうか?
>>799 ===演算子は型の比較まで行う
他にもgettypeで変数の型を調べることができるからそれを応用する方法もある
== (型はどうでもいい) === (厳密に比較したい)
802 :
799 :2008/01/24(木) 21:16:09 ID:???
なるほど、そんな演算子があったんですね…詳しく調べてみます。 ありがとうございます!
803 :
779 :2008/01/24(木) 21:31:25 ID:???
>>798 PHPプラグインが何を指してるかあれだが・・・
PDTとはEclipseにPHPの開発環境を実装するためのプラグインの事
他にもPHPEclipseやKoebiStudioてのもある
これらの開発環境にはPHP本体は入ってないので別途インストールする必要がある
Zendにおいてあるやつも俺が紹介したサイトにあるやつも
同じPDTで違いがあるとすればバージョンぐらいの差
それ以外でPDTの差は無い
英語が解らんならPleiadesってプラグインを
入れておけば良い
大抵のプラグインと本体が日本語化される
まぁそこらへんの必要なものが入ったのが779で紹介したURLにあるやつな訳だが・・・
>>797 それはGUI派かCUI派かであっておっさんか否かじゃなかろ
ガキでも必要ありゃviに慣れてvimやらemacs使い始めるもんだ
いやおっさんだろ ガキじゃ必要でもそんなもの使おうなんて思わん
>>804 おっさん、そろそろ墓と棺おけでもつくってろや
てかviて…。 「edlinでconfig.sys弄ってます」みたいなw。
昭和のPHPがプンプンするスレですね
vim使ってると書いたの俺だが今年24だよ。オッサンかどうかは任せる。プログラムも始めて一年たたないくらいだ。
>>810 おまえレベルひくすぎだからもう来なくていいよ。
人に教えられるレベルじゃないぜw
>>810 使いやすいエディタならなんでもかまわないし、たいしたこと言ってるわけではないけど、
IDEの話が出てる最中にvim使ってるとかはタイミング的に悪かったな。
そもそもUnix系でしか動かないものを開発するというのはまれなわけで、
大多数はVMで開発する必要もなければWindows以外で開発する必要もない。
そんな中で"普通に"という言葉を使ったのもまずかったな。
別に開発してるとしかいってないのだが、話の脈略で薦めているようにも見えてしまうわけで。
813 :
nobodyさん :2008/01/25(金) 04:07:47 ID:HQAGAWGB
CentOS 4.6 x86 で phpmyadmin をインストールしたんですが、
設定を済ませて phpmyadmin にアクセスすると、
「mcrypt 拡張をロードできません。PHP の設定を確認してください」
と言われるので、続けて mcrypt libmcrypt もインストールしたんですが、
やはり変化がありません。
/etc/php.ini をいじるんだろうと思うんですが、
どのように設定すればいいんでしょうか?
http://jp.php.net/mcrypt に書いてあるとおり、
php をコンパイルし直さねばならないのでしょうか?
CentOS 4.6 x86 用の php は --with-mcrypt されてないようなので。。。
<?php print("下らねぇ<b>質問</b>"); ?> の<b>のように、print()で<font>が使えると便利だと思うのですが 例えば<font color>とか、 こういうフォントを変えることができるものは<b>のほかにないでしょうか? よろしくお願いします。
htmlの質問をここでされても困るんですが スタイルシートでも使えよと
>>815 >>816 あぁすみません・・
聞きたかったのは、print()で<b></b>や<I></I>が使えたので
色もこの調子で変えられないかとhtmlタグを探していて
fontがあったのですが、エラーが出たので
font的なものがあるのかなと聞いてみたのですが
ないようですね。言われるようにスタイルシートや別の方法を探してみます
ありがとうございました
つか<b>も<I>も使えるわけねぇだろカス htmlの話はすんなぼけ二度とくんな
>>817 >エラーが出たので
ダブルクオテーション(")で囲ってるときに
文字列でダブルクオテーションを使う場合エスケープしましょう
print ("<font color=\"red\">あいうえお</font>");
シングルのほうがこの場合は楽だけど
print ('<font color="red">あいうえお</font>');
どっちみちfontは古いし今や使われていないのでスタイルシート使いましょう
そしてhtmlだけの質問はWeb制作板だから次回からご注意あれ
>>817 PHPで文字列などを出力するのに使うprintやechoは、htmlのソースとして出力する。
つまりprint内にhtmlのコードを書けば当然htmlのソースとして反映される。
print内に<b></b>を書くことで太字になったのはphpの機能の一部というわけではなく、
phpがhtmlのソースとしてそのまんま<b></b>という文字列を出力しているから。
<font color="">でエラーが出たのは上の人が指摘してる通りエスケープ忘れ。
print "";で囲う""は、最初の"が表示する開始点をあらわし、2度目の"が終点をあらわす。
つまり
print "あ"いうえお"; というコードがあった場合、
phpは『あ』だけを表示しようとするが、『あ』の後ろに続くコードが『:(セミコロン)』で終わっていないためエラーを吐く。
この場合『あ』の後に続く『"』は文字列として表示したいわけで、
そういう場合エスケープ記号『\』を『"』の前におくと、その『"』は文字列として扱われることになる。
print "あ\"いうえお";
初歩的な質問に寛大なのは何故だぜ? レベルが低いから?
>初歩的な質問に寛大 そういうスレだし。お前を含めて煽ってるやつが馬鹿なだけ。
すげぇ、ネット上でテリトリーを築いてやがる。
824 :
nobodyさん :2008/01/25(金) 06:06:10 ID:RlEjDmZc
PHPを覚えようと思い手始めにスレッド式の掲示板を作っているのですが、 「スレッドを最新更新順でソートして表示させる」というところで苦戦しています。 例えが下手でわかりにくいかもしれませんが、3回新規投稿が行われた場合に ・スレッドNo.3 ・スレッドNo.2 ・スレッドNo.1 の様に順番に表示させる事はもちろんできるのですが、 その後に2つめの投稿記事へ返信があった場合に ・スレッドNo.2 ・スレッドNo.3 ・スレッドNo.1 という様に更新された順に表示するにはどうすれば良いでしょうか? 自分なりに考えてみましたが、 1)スレッドNoを記載したテキストファイルを用意する 2)新規投稿が行われた場合は、ファイル内の最上部に追記 3)返信が行われた場合は、ファイル内の該当のスレッドNoを最上部に移動 4)閲覧する際にテキストファイルに記載された順番で出力する という方法くらいしか思いつきませんでした…。 根本的に何か間違っている様な気がするのですが、アドバイス頂けると助かります。
.logとかに保存すんなら、普通にファイルの更新日時を取得すりゃいんじゃない。 更新日時を正の整数に置き換えてソート。簡単じゃん
>>824 DBで設計すれば楽なのに。
>>825 のやりかただけだと親子関係がめちゃくちゃになるんで、
親子関係の情報もとって、更新日時でソートしたあとに、親子関係でソート。
さらにそのままだと親スレが一番下になるんで、
親子関係でさらに配列分けて配列を逆にしてから最後にくっつける。
vimってEclipseみたいなコード補完やらタイプヒントみたいなものあるんだろうか
親子関係ナシのように伺えたのだが、違うのかな。 むしろ面倒だから統一して管理したほうがよさげ(初心者用)
適当に作ってDBに移行すればおk
さすがDB依存のペチパー テキスト管理について意見を言わせれると的外れ発言のオンパレードww
効率の悪いテキストよりDBをすすめるのは普通の流れだと思うのだが 簡単な処理ならともかく掲示板レベルはあきらかにDBのほうが効率的 ていうかさっきから煽ってるやつは同一人物?朝っぱらから元気だな
同意 pgdbの存在を知らなかったりして
833 :
830 :2008/01/25(金) 06:47:55 ID:???
DBすする流れじゃなくてログの管理方法そのものについて言ってるんですけどwww ファイルの更新日時でソートするだけとかwwwwwwwwwwwwwwwww
具体例を出さずに人に当たるのは煽りの典型。 ってことで、愚民の俺らにその高尚な脳味噌で考えた具体例を教えてくれよ 期待してるぜ
>ファイルの更新日時でソートするだけとかwwwwwwwwwwwwwwwww お前は何をいってんの? 更新日時をログに記録してるってことだろ。 日本語もわからないの?
836 :
830 :2008/01/25(金) 07:03:07 ID:???
つれたつれた^^^^^^^^^^^^^^
だめだこいつ何とかしないと
今日も朝っぱらからネットで憂さ晴らしですか? 対人関係下手で家を出れない引きニートはかわいそうですね。
839 :
830 :2008/01/25(金) 07:25:24 ID:???
>>838 そうなんだよ。つき合ってくれてありがとう(´・ω・`)
今日は散歩にでもいくかな・・
>>824 大体あってんじゃないの。
TEXTベースでやるのなら
1.スレッドNOを覚えているファイルを作る
2.新しい投稿があったら1を見てそれをファイル名とするファイルを生成し
投稿内容を書き込む
3.返信のときはすでにあるファイルをサーチし、投稿内容をマージ
返信に上限を付けるならここで上限チェック。
4.表示はいったん全ての投稿ファイルのタイムスタンプを読み込み
ソートして、出力順を決定する。
5.出力順に投稿ファイルを開き、内容を出力する。
6.実際には古いファイルを消去する仕組みも必要でしょう。
新しい投稿をトリガーにして、一定期間投稿のない投稿ファイル
=タイムスタンプが古いを削除する。
>>840 タイムスタンプを読み込んでソートするってことは
返信の際にそのファイルのタイムスタンプも更新してるわけだから
そのついでに最上段に持っていけば表示の時にソートする必要ないんじゃね?
そしたら古いファイルの削除も最下段を削除するだけで済む
age、sage機能をつけるんならいるだろうけど
842 :
nobodyさん :2008/01/25(金) 09:57:59 ID:rbOm8Vt/
PEAR::Mail_mimeDecodeを使っているのですが、 来たメールのエンコーディングを調べる方法はありますか? ヘッダー情報に文字コードがなかったので・・・
>>841 ついでに最上段というのがよく分からない。
動的にHTMLファイルを作り直せってこと?
844 :
nobodyさん :2008/01/25(金) 11:33:44 ID:KgKyfu/6
中国や台湾などからのアクセスを拒否する場合、 .htaccessでやるべきか、phpの403で拒否するか、 もしくは、ルーティングテーブルで拒否するか、 よく分からないのですが、どれでやるのがベストですか? 宜しくお願いします。
>>844 > どれでやるのがベストですか?
抽象的杉。
サーバの移項も考えるかとか、負荷の量とか、改変の頻度とか、
それを作業する環境は何かなどいろんな尺度があるので、目的次第。
>>844 そりゃハードレベルでできるならそれが一番いいよ。
phpは最終手段。
phpよりhtaccess、htaccessよりルータ。
848 :
nobodyさん :2008/01/25(金) 11:55:06 ID:KgKyfu/6
>>846 すみません。もう少し具体的に書かせて頂きます。
使用サーバーは、さくら株式会社が提供する専用サーバーで、移行の予定はないです。
負荷は、不明ですが、よく中国や台湾から大量のアクセスでサーバーが落ちるという話を聞くので、
それに堪えられるようにしたいです。
よく分からないですが、1秒間に1万回リクエストされても耐えられれば大丈夫だと思います。
改変は随時です。怪しいIPアドレスは拒否するように定期メンテします。
全部やれ
>>849 わからないなら適当なこというな
全部やってもパフォーマンスが下がるだけで意味がない
>>843 スレ一覧が載ってるログを書き直せばいい
表示するときは上から順に読み込めばソートをする必要がなくなる
>>851 そりゃ返信を書き込んだ人に対してはいいだろうが、
見に来るだけの人にはその手は使えんでしょう。
>>852 2chみたいに書き込みをするとスレ一覧のトップに移動するのが
見に来るだけの人に問題が出るの?
なんだPEARってコピーするだけで使えるじゃん。。。 なんでみんなこんなめんどうなもん使うんだろうってずっと避けてたよ
855 :
nobodyさん :2008/01/25(金) 15:53:58 ID:rbOm8Vt/
対象のページ
http://example.com/ のソースの文字コードを知りたいのですが、
metaタグから取得する以外にどのような方法があるのでしょうか?
レスポンスヘッダーから簡単に取得できないですかね?
856 :
855 :2008/01/25(金) 16:02:45 ID:rbOm8Vt/
GET投げて返ってきた値のContent-Typeを取得することで解決しました
mb使えるならdetectかなんか使った方が確実かもね。
858 :
855 :2008/01/25(金) 16:22:48 ID:rbOm8Vt/
>>857 それが気になったんです。
detectはheaderのcontent-typeの情報を受け継いでいるのか、
PHP側のアルゴリズムで解釈しているのか、その辺りの仕組みがよくわからないのです。
アルゴリズムで解釈しているのであれば、headerの値を受け取ったほうがより確実のようが気がします。
headerに必ずあるものじゃなかったからな。
860 :
855 :2008/01/25(金) 16:32:49 ID:rbOm8Vt/
まぁ、流石にヘッダーにもmetaにも無かったら「文字化けしてください」と申請しているみたいなもんですね。 YahooやGoogleでの検索で文字化けしたページが見つからないのがすごい・・・。 というか、文字化けしているページを弾いてるだけなのかな? とりあえず、有難う御座いましたー。
>>858 http headerの文字コードはWebサーバ側で設定された値か、metaタグで指定された値になるんじゃなかったかな。
どちらにせよ人間が指定したものなので、信頼はできなさそうだが
862 :
nobodyさん :2008/01/25(金) 16:38:49 ID:Lm6JW6Xc
Windowsサーバでエラー表示がされなくて困っています。 ini_set('display_errors', 'On');をプログラムの先頭に記述しても真っ白のままです。 他になにかエラー表示関係の設定項目ってありましたっけ?
863 :
nobodyさん :2008/01/25(金) 16:40:35 ID:rbOm8Vt/
864 :
nobodyさん :2008/01/25(金) 16:43:34 ID:Lm6JW6Xc
>>864 php.iniの設定は?
それのdisplay_errorが0なら
ini_setする前にエラーが出ている可能性もある。
866 :
nobodyさん :2008/01/25(金) 17:25:45 ID:Lm6JW6Xc
>>865 0ですが、ini_setする前にエラーは無いです。
ローカルで試すとうまくいくのです
>>866 ini_setする前に何か行っている動作あったりする?
もしくは、ini_setを記述しているファイルが他のファイルから読み込まれるものだったり
868 :
nobodyさん :2008/01/25(金) 18:35:24 ID:Lm6JW6Xc
>>867 全く無いです。
<?php
ini_set('display_errors', 'On');
echoooooo "a";
?>
こんなんでも真っ白になります。
echoooooo ワロタ phpinfoしてみたらちゃんとini_set反映されてた? ini_set('display_errors', 'On'); phpinfo();
なんだネタか ネタじゃないならphp.iniか.htaccessで display_startup_errorsをonにする それでも出ないなら出力処理してないだけだろ
>>848 基本的には
>>847 の考え方でいいと思う。
まずは、ルーターのみにしておいて、アクセス解析も同時に行う。
アクセス解析に不安なログが出ているようであれば、.htaccessも入れる。
ソフトの対応はリソースの消費も考えないといけないので、最初は
入れないで良いと思うというのが私の意見。
サーバのrootもってやるわけではない場合、セキュリティーにおいては
何処まで信頼するかは意見が分かれるところなので、最初から.htaccessまで
いるという人もいるだろう。
872 :
nobodyさん :2008/01/25(金) 23:06:00 ID:KgKyfu/6
>>847 >>871 アドバイスありがとうございました。
ルーティングテーブルでやればいいんですね。ありがとうございます。
私の場合、専用サーバーといっても、ルーターの設定はいじれないので、
webサーバー内のルーティングテーブルで設定します。
今までレン鯖(xrea)だったので、php以外の知識が要求されて四苦八苦中です。
助かりました。
今日は誰からもレスされなかった(´・ω・`)
877 :
nobodyさん :2008/01/26(土) 10:03:21 ID:uPT20mdm
あ
878 :
非通知 :2008/01/26(土) 10:10:49 ID:uPT20mdm
スクリプトをそのままコピペしたなら入力した値が間違ってる 変更したのであれば変更点を書かないとわからない
880 :
非通知 :2008/01/26(土) 10:58:46 ID:???
#vim httpd.conf +---追加---- | <Directory "/usr/local/apache2/htdocs/member> | AuthType Digest | AuthName "BIOHAZARD LEVEL 4" | AuthDigestDomain /member/ | AuthUserFile /tmp/digestpass | Require valid-user | </Directory> #/usr/local/apache2/bin/htdigest -c /tmp/digestpass "BIOHAZARD LEVEL 4" dora +--------- |Passwd : emon #vim /member.index.php +----変更点----- | $realm='BIOHAZARD LEVEL 4'; | $user=array('dora'=>'emon','unkn'=>'own');
↑ 正規表現廚が必死 ↓
ふふふ・・・そうじゃないです
PHPを勉強しようと思っているのですが、覚えるのにおすすめのサイトってありますか? それとも何か一冊買った方が良いでしょうか?
885 :
nobodyさん :2008/01/26(土) 15:35:06 ID:2Pi/4pg1
自前の掲示板を作りたくてphpを勉強して実践してるものです。 データベースと連携するも、何の機能も無い簡単な掲示板は無事作れました。 今pear pagerを使ってページネーション機能を付けようとしているところです。 その過程でコケました。 pagerを使うためには配列形式のデータを渡さないといけない →データベースから受け取る連想配列を1セット(名前や本文など)ずつ配列に入れなおす という作業をしていますが、うまくいかないので見ていただきたいです。 それと上の作業の中で 配列の中に配列を入れる ということをしていますが、 その場合は 例えば配列data[1]の中の配列innerのidを取得したい場合 $hoge = 〜 どのように書けばいいのでしょうか。よろしくお願いします。
886 :
nobodyさん :2008/01/26(土) 15:36:33 ID:2Pi/4pg1
<?php $sql = "SELECT * FROM bbsdata ORDER BY id DESC"; $res = mysql_query($sql, $conn) or die("データベースからデータを抽出できませんでした。 "); function createTable() { $data = array(); while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { $data[] = $row; } return $data; } $date_array = createTable(); print_r ($data_array); ?> データベースの接続のところは動作確認してます。fetch単独での動作もうまくいきました。
887 :
nobodyさん :2008/01/26(土) 15:37:57 ID:2Pi/4pg1
エラー付け忘れました Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\web_page\pager_sample.php on line 20
891 :
nobodyさん :2008/01/26(土) 16:29:12 ID:2Pi/4pg1
>>関数に$resを渡す。 すいません、聞いといてアレなんですけど、もう少し具体的にお願いします。($resってリソース型ですよね・・・ PEARはつまみ食い程度に使ってます。以前HTML quickformを使ったとき、融通が全然きかなかったこともあり敬遠してました。 (ある程度 型 が決まっているからPEARなんでしょうけど・・) 手元の本にもDBアクセスはPEARを推奨してました。pagerが実装できたらそっちにもいきたいと思います。
>>891 とりあえず888を読んでから再度お越し下さい
$a の文字列が「〜@〜」であることを確かめるプログラムは $a == ".@." にif文とかを組みあわせればいいはずなのにうまくいかない どうして?
エスパー要るな
896 :
nobodyさん :2008/01/26(土) 17:19:55 ID:Cad1bcuY
専用サーバーに引越してシステム変更の自由度が上がったのですが、 php側で処理速度が格段に上がる方法ってどのようなものがありますか? MYSQLだと、参照系TBLをメモリーテーブルにするとか、 Apatchだと、プロセス数を増やしたり、1.3から2.0に上げる 方法などが考えられると思うのですが。php側の最適化の方法がよくわかりません。 宜しくお願いします。
>>894 それだと$aが.@.の時しか一致しないよ
preg_matchとかeregあとはstrposとかで確認しれ
>>894 こっちでやるんじゃないの?
$a = "aaaaa@aaaaaaa";
if( ereg("@", $a) ){
echo "true";
}else{
echo "false";
}
Apatch って何?
memcachedとかeAcceleratorとかZendOptimizerとか使うと良いんじゃない あとXdebugのプロファイラ機能つかって遅い場所早くするとか
スコープ・・・ 考慮に入れた結果真っ白になりました <?php $sql = "SELECT * FROM bbsdata ORDER BY id DESC"; $res = mysql_query($sql, $conn) or die("データベースからデータを抽出できませんでした。 "); function createTable($resource) { $data = array(); while ($row = mysql_fetch_array($resource, MYSQL_ASSOC)) { $data[] = $row; } return $data; } $date_array = createTable($res); print_r ($data_array); ?>
>>899 Apacheの誤字ってことぐらいわかるだろ
いちいちあげ足とるな
>>898 ありがとうございます。うまくいけました。ereg 覚えときす。
>>901 君は頭も真っ白なんだから、もうその辺で農機具でも洗浄しときなさい。
雅子さまが仕事をサボって、このスレで暴れていると聞いて飛んできました。
作成するテーブルはDBのテーブルじゃなくて配列のことなんだろ。
PHPから、あるファイルaをbとしてコピーして、そのときから3日後にファイルbを自動で消去するためにはどんな関数を使えばいいでしょうか
コピーする仕組み -> コピーする関数 3日後に -> ファイル作成時の時間を調べる関数 + 現在の時間を調べる関数 (※) 消去する -> 消去する関数 ※の「3日後」は他にも幾つかやり方がある。
>>909 レスありがとうございます。
頭の中には copy unlink とあとdate関数とかの時間系の関数 があるんですが、
「3日後にunlinkを実行」をどこに指定してやればいいのかで困っています。クッキーだと引数にあったんですが、
getBbsData(笑);
>>910 自動的に判定処理を実行させたいのか(させたいなら間隔はいくらか)
もしくはユーザがアクセスしたときに判定処理を実行できればいいのか
どちらかによる
後者でお願いします
対象のファイルの時間を調べる・・・(1) 現在の時間を調べる・・・(2) (2)−(1)>=3日間 が真だったらファイル削除 という話ではなくて?
あ〜なるほど。そういう手があったか。 その場合 その削除プログラムをどこに組み込むか や コピーしたファイルの名前をどこかに保存する とかいうことも考えないといけなくなる。
俺はファイル削除の件で書き込みするのはこれが初めてだが、 参考としてファイルを削除するソースを書いておく。 削除対象のファイル名:西暦4桁+月2桁+日2桁+拡張子 (例)20080128.log 今日の日付の取得と削除対象の日の取得は、プログラムをする必要があるが、 簡潔にするため文字列をセットしている。 ※このソースは、実行するphpファイルも削除しようとするから注意。 <?php // 今日の日を取得する。 $date = "20080126"; // 削除対象となる日の設定(これ未満が削除) $del_date = "20080123"; // ディレクトリのファイルを調べる。 $res_dir = opendir( '.' ); //ディレクトリ内のファイル名を1つずつ取得 while( $file_name = readdir( $res_dir ) ){ $file_date = substr($file_name, 0, 8); // 対象となる日付より少ないかのチェック。 if($file_date < $del_date){ // ファイルを削除する。 unlink($file_name); }else{ // 何もしない。 } } //ディレクトリ・ハンドルをクローズ closedir( $res_dir ); ?>
>削除対象のファイル名:西暦4桁+月2桁+日2桁+拡張子 (例)20080128.log なんだこの後付け設定ww
なんか要領が悪そうだ
ファイルのDLを全部PHP経由でやればどこでやるかなんて悩まなくてもいいのに。。。
pearのHTTP_Downloadがダウンローダーの実装を手助けしてくれる。
>>916 何もしないなら無駄なブロックは無くそうぜ
そこは突っ込みどころじゃない
___ ━┓ ___ ━┓ / ― \ ┏┛/ ―\ ┏┛ / (●) \ヽ ・. /ノ (●)\ ・ / (⌒ (●) /. | (●) ⌒)\ /  ̄ヽ__) / | (__ノ ̄ | /´ ___/ \ / | \ \ _ノ | | /´ `\ -------------------------------------- このスレはあなたにとって役に立ちましたか? ○ 非常に役にたった ○ 役にたった ○ どちらともいえない ○ 役に立たなかった ● 全く役にたたなかった
923 :
nobodyさん :2008/01/27(日) 00:58:59 ID:IFsQu3P4
凄く他愛ないんですが、以下のif文ってもっとスマートに書けませんか? if(($name=="yamada")||($name=="tanaka")){〜〜;} 条件部分で、使ってる変数が同じなのを利用してもっとシンプルに書く書き方がないか 知りたいんです ないんでしょうか?
既知かもしれないけどswitch文っていうのがあるよ switch($name){ case "yamada": 処理1(); break; case "tanaka": 処理2(); break; default: 処理3(); }
>>819 >>820 エスケープでできました
スタイルシートも使ってやってみようと思います
以後気をつけます
ありがとうございました!
>>925 もしかしたらif文の内容が
>>923 みたいな場合だけじゃないかもしれないし
選択肢の一例として挙げただけだから。
>>918 笑うことないだろ。
ファイルをコピーして作ってから3日後には削除するという
ことだから、そういう命名規則だとプログラム上で便利だという意味だ。
>>919 「なんか」って何だよ
>>920 無駄なブロックは消しておきます。
普通は作成日とか更新日を見るもんだろ。 勝手に要件を変更するなよ。
>>923 文字列の条件候補がもっと多い場合は、あらかじめ配列にいれて
おいてループしながら確認する場合が多い。
何を持ってスマートというかにもよるけれど、この方法だと、
条件確認部分が横に長くならないし、候補の文字列格納部分を
見やすく書くことが出来る。
>>923 なんで今まで出てこないのか不思議だけども
in_array
>>929 > 普通は作成日とか更新日を見るもんだろ。
そうなの?あおりとかじゃなくて、どういう状況の時にそれがあるの?
定期バックアップとか取るのなら、ファイル名にしとけば早いと
思ってたけど、ファイル名取得は重いって事?
933 :
923 :2008/01/27(日) 01:37:13 ID:???
答えてくれた人ありがとう
if文て三項演算子みたいな面白い表現もあるので、他にないかなーって思ってたんですが、、
ないっぽいですね
if($name=="yamada"||"tanaka"||"kato"){print "success";}else{print "miss!";}
とかできたらいいのに。923みたいにカッコがどんどん増えてくと見づらくてしょうがない
どうもありがとうございました switchも適宜使いますね
>>924
934 :
923 :2008/01/27(日) 01:42:39 ID:???
>>930-931 おお、ありがとう!
in_arrayって知りませんでした、大発見て気分です!
使わせていただきます、ありがとう!
935 :
nobodyさん :2008/01/27(日) 02:27:17 ID:9v+HixkY
ダイジェスト認証自体使ってる人レアだから返答はあまり期待しないほうがいいよ
>>933 if( preg_match('/^(yamada|tanaka|kato)$/', $name) ){ print "success"; }
else{ print "miss!"; }
みたいにすればできるけど正規表現理解せずにやっても別の問題起きかねないしその方法のが無難かな。
>>880 >| <Directory "/usr/local/apache2/htdocs/member>
手入力なら関係ないかもしれんけどダブルクオート閉じてなくない?
Basic認証+SSLでセキュア的におk?
NG
おしえてください <!-- test --> <p>abcd</p> efgh ijkl <!-- /test --> というのの<!-- test -->と<!-- /test -->の間を抽出したいのですが preg_match('/<!-- test -->(.*)<!-- test -->/', $buf,$match); echo $match[0]; でうまくいきません どうすればいいでしょうか
↑間違いました preg_match('/<!-- test -->(.*)<!-- /test -->/', $buf,$match); です
あぁ文字列が改行されてるのか じゃ preg_match("/<!-- test -->(.*)<!-- \/test -->/s", $buf, $match); echo $match[1]; で $match[0]だとマッチした全体が表示されるので(.*)のとこは[1]ね
うおおおおおすごい できました ありがとうございます
945 :
初心者です :2008/01/27(日) 06:05:29 ID:fV3Opxe0
教えてください。 phpでmysqlにレコードを追加したいのですが、 $area = 5; $sql = "insert into area_tbl (area) values ('.$area.')"; $res = mysql_db_query($db,$sql); では追加できるのですが、 $area = array(10,10); では追加できません。 arrayの使い方もよくわからない素人ですが 何卒よろしくお願いします。
配列を勉強してからこい 次
947 :
初心者です :2008/01/27(日) 06:16:46 ID:fV3Opxe0
はい。
>>935 なぜかは解らんがあれは正規表現で問題があった
多分あれが書かれた時のPHPのバージョンと今のバージョンでは
正規表現の書き方が多少変わったんじゃないかと
正規表現をこれに変更
@(\w+)=([\'"]?)([^\s\2,]+)\2@
$data[$m[1]] = $m[3] ? $m[3] : $m[4];
この部分を
$data[$m[1]] = $m[3];
に変更でいけると思う
M$の手に堕ちた鈍物が集うスレですか.... 君らphpとか使ってて恥ずかしくないの?
>>949 MSなんか関係あるの?出資や買収でもしたってニュースあったっけ?
IISでPHPに(ある程度)対応するし、提携もしたからその話なのかな。
>君らphpとか使ってて恥ずかしくないの?
んじゃまずYahooとかにその台詞いいなよ。
じゃあ何を使えば恥ずかしくないの?w 言ってみて
他の言語を否定する奴って9割方能無しなんだよね、見てきた限りwwwwwwww
>>949 さんは、きっと違いますよね^^
まぁ、ハッカーに好まれる言語ではないけど、寧ろそこがいいところでもある。 array_map array_filter array_reduce aray_walk create_function とかを使うと、少し気が紛れる。おれはだけど。
多くのレスありがとうございます、でもなんか質問したせいで口論が起こっているようで申し訳ないです。 この削除プログラムをどこに利用するかというと 仮登録→本登録 っていうありきたりの流れの中で 仮登録が済んだら本登録画面をmd5で名前を適当に変えてコピってユーザに渡しといて3日後には消す って感じで使いたいんです。 ですからファイル名自体に日付け っていうのはちょっと・・・です やはりコピったときに コピったファイル名と日付け をデータベースにいれといて そのあとに消す っていうのが一番オーソドックスな方法ですかね。。。 dbを参照して自動消去するプログラムは1日おきにcronから実行させるって感じで。 このプログラム自体(セキュリティー面やら)みんなに叩かれそうです
君達のレベルの低さにはうんざりだよ。 ご両親もそうなのかい?
>>954 なんでファイルを使う必要があるのかそもそも分からん。
要するに、仮登録がすんだら、有効期限3日の間に本登録にしないと
仮登録のデータ消しますよ?ってことだよね。
そのユーザー固有のデータと仮登録日をDBに記録しといて、
「本登録画面」とやらはこのデータを参照するPHPで表示すればいい
気がするんだけど。
物理的にファイルとして存在した方がいいって場合ももちろんある
んだけど、こういうやり方も検討した方がいいかもね。
私もファイルに保存する必要性がわからない。 ま、掲示板なんかで、サーバの負荷を減らすために ログファイルからhtmlファイルを作っておいて、 参照は〜.phpではなく、〜.htmlにアクセスさせる というものがあるけれど、それにあたるものかな?
if(!($abc == "[a-zA-Z0-9]{3,10}")) { echo "<p>3~10文字ですよ</p>"; exit(); } 上で質問したものですが、、、これは正規表現として正しい?
>>456-457 さん ご意見どうもありがとうございます。
確かにそうですね。プログラムを作る初期の段階で「ファイルをつくらなきゃ」っていう固定観念が生まれてたみたいです。
とすると、ファイルを削除する必要がなくなって 本登録時にDBにアクセスして今の日付けと比較すればいいわけですね。
解決?プログラミング作業に戻ってみます。どうもありがとうございます。
>>958 コードも駄目だし、正規表現も間違ってる
どこがまちがっているのですか
◆質問する時の注意 ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
テンプレ読まない質問者もそうだが、それに答えてる解答者も同様かそれ以下だな。
転送用のPHPファイル(header(location:)のみ指示したファイル)に、 オーバーチュアーのコンバージョンカウンタを突っ込むには、 <html><head>(タグ)</head><body></body></html>を加えないとダメ? それとももっと簡素化出来る方法がありますか? ど素人につき、意味がわからない質問になっているかもしれません。
965 :
nobodyさん :2008/01/27(日) 15:04:41 ID:cIwbO15I
次スレ立てるときにちゃんと削っとけよ・・・質問者IDの件
↑チョン
テンプレとうざい自己主張はトレードオフだからな。少々は我慢しろ。
970 :
nobodyさん :2008/01/27(日) 15:31:48 ID:cIwbO15I
>>969 説明ページ→転送ページ(PHP)→商品ページ
という状況で、転送に便利なPHPを使っていたんですけど、
そこに効果測定用のオーバーチュアーのコンバージョンカウンタを
埋め込みたいのです。
どうやったら埋め込めますか?という初歩的な質問です。
コンバージョンカウンタはJAVA SCRIPTで出来ています。
Locationヘッダで飛ばしたら本文は読まないと思う ブラウザ依存かもしれんけど
このスレで何回か質問したことあるけど、おれは本当に役に立った。 お陰で自分で考える手間が省けるので、時間の節約にもなって仕事にゆとりが出てきた。 今日は、休日だから日頃のお礼を言うよ。サンクス。
973 :
nobodyさん :2008/01/27(日) 16:10:53 ID:jK32tI//
データベースで不思議なエラーが出ました。 $sql = "SELECT 1gyagu FROM pre_appli WHERE id = 1"; $query = mysql_query($sql,$conn) or die("クエリ失敗"); $result = mysql_result($query,0); print $result; id =1 の一発ギャグが表示される アルミ缶の(ry $sql = "SELECT 1gyagu FROM pre_appli WHERE 1gyagu = "アルミ缶の(ry""; $query = mysql_query($sql,$conn) or die("クエリ失敗"); $result = mysql_result($query,0); print $result; Parse Error なぜ?
>$sql = "SELECT 1gyagu FROM pre_appli WHERE 1gyagu = "アルミ缶の(ry""; 最後の " がひとつ多い
いや、 1gyagu = \"アルミ缶の(ry\""; だっけか
976 :
973 :2008/01/27(日) 16:25:16 ID:jK32tI//
>>974 "SELECT の"と "アルミ缶 の"を最後に閉じるから2ついる
>>975 うは。うまくいきました。すいません\ってどういう意味でつか???
続く文字をエスケープ
最近エスケープがらみのトラブル多いな 基礎中の基礎だからちゃんと覚えような
エスケープ覚える前にデータベースっていうのも学習の順序がおかしいな すごいんだかすごくないんだか
981 :
nobodyさん :2008/01/27(日) 16:49:37 ID:IHMN/Cyj
PHPでアクセスしてきたクライアントの国名(県名)を取得できませんか? Java Scriptの使用はなし、 あくまでPHP単体での取得方法があればお願いします。
982 :
973 :2008/01/27(日) 17:19:50 ID:jK32tI//
エスケープシークエンス・・・ 一応学習はしてましたが消えかけていました。初めて使いました。ありがとうございました。
>>981 正確なクライアントの国名はわからないけど、
最後にどこを経由したかはIPからわかる。
>>982 エスケープシークエンス?
ちょっと勘違いしている予感…
985 :
nobodyさん :2008/01/27(日) 17:44:37 ID:cIwbO15I
>>971 有り難うございます。
となると、どうやるんでしょうか(^^;
986 :
nobodyさん :2008/01/27(日) 17:45:55 ID:DYynvymq
hello.html <html> <body> こんにちは みなさん お元気ですか </body> </html> というhtmlファイルがあったとして、 <body>から</body>の間だけ取得するにはどうしたらいいですか? $file = file_get_contents ("hello.html"); この後どうしたらいいのでしょうか
988 :
nobodyさん :2008/01/27(日) 17:56:44 ID:DYynvymq
preg_matchとやらを使えばいいんですね ありがとうございました
989 :
973 :2008/01/27(日) 18:18:31 ID:jK32tI//
>>989 通常は過去ログとかテンプレを全部貼り終えてから告知するもんなのだが。
991 :
nobodyさん :2008/01/27(日) 18:22:16 ID:IHMN/Cyj
ああ埋まってしまう。
>>983 それでOKです。串さされたらどうしようもないですし。
方法を教えてもらえませんか?
専用の変数があるんでしょうか?
その前にスレ番が後退しているわけだが なんで62から61になるんだよ
993 :
nobodyさん :2008/01/27(日) 18:23:03 ID:jK32tI//
サーセンw
これはひどい
おまえのちんこをぐにぐにふんづけてやる
996 :
nobodyさん :2008/01/27(日) 18:27:49 ID:+7hlQOJN
\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ,,、,、,,, / \〇ノゝ∩ < 野朗共!1000取り合戦、いくぞゴルァ!! ,,、,、,,, /三√ ゚Д゚) / \____________ ,,、,、,,, /三/| ゚U゚|\ ,,、,、,,, ,,、,、,,, ,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/ //三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ∪ ∪ ( ) ( ) ( ) ) ,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧ ,,、,、,,, ( ) ( ) ( ) ( )
997 :
nobodyさん :2008/01/27(日) 18:28:28 ID:IHMN/Cyj
マニアワナイwwwオワタwww
多分1000は俺だろう
999 :
nobodyさん :2008/01/27(日) 18:29:57 ID:jK32tI//
申し訳ないす ぐにぐにしてくださいw
1000 :
nobodyさん :2008/01/27(日) 18:30:02 ID:Nkn4j03s
1000Get!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。