【PHP】下らねぇ質問はここに書き込みやがれ 36
PHPに関する質問用スレです。ここならお前の下らない質問に回答があるかも知れません。
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc10.2ch.net/test/read.cgi/php/1166676139/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
http://pc10.2ch.net/php/subback.html ・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
http://pc10.2ch.net/db/subback.html ・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
【簡易FAQ】
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)、起動&再起動あたり
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.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。 1. ハードウェア、OSのバージョン等には一字一句触れない。 2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。 3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。 目の前で生じている現象をそのまま具体的に書くなどもっての外。 事実より俺様の脳内解釈を優先すべし。 4. 独り言文体で必勝。 「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」 5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。 6. もう試したことを得意げに指摘してくる奴には、厳しく対応。 「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」 "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。 7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。 「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」 示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので 絶対に避ける。 8. 情報は小出しに。 「エスパーきぼんぬ」 補足 上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。 そのような悪い質問に対して答えられるのは, 質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ, という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。 まちがっても「エスパーの方,回答お願いします」 なんて痛い質問するな。つうか氏ね。
企業に提出するポートフォリオを作ろうと思うのですが、 掲示板やブログのような簡単なものでもいいのでしょうか?
9 :
nobodyさん :2007/01/10(水) 11:53:38 ID:YxQZDx6s
前スレがなくなりそうなので、こっちへの質問失礼します。 今作業しているプログラムを作った前の奴が、SQLに日付を入れるのに varcharで20070101123000という形式で作ってしまいました。(愕然) で、インターフェース部分で、人が分かりやすい様に、2007/1/1 12:30:00 という形式に変換したいんですが、strtotimeではできませんでした。 こういう時って、正規表現使うしかありませんかね?
<? $date = "20070101123000"; echo date("Y/m/d H:i:s",strtotime($date)); ?> これじゃダメなん?
>>9 よくあるねぇ。一部上場している企業でもそんなんザラで作るSEいるよ。
なんのためにdateやtimestampがあるんだか。
何日前とか一発で計算出来るのにvarcharとかしてるせいで出来ないし。
スレ違いスマソ。
mb_convert_encoding( $var, mb_internal_encoding(), mb_detect_order() ); これをすると$var内に十分な文字コードの判断要素が存在しない場合に mb_convert_encoding のエラーが発生します。 mb_detect_order が空扱いされるようです。 それ自体は良いのですが、 そのまま mb_convert_encoding は 文字コードを変換してない文字列$var を返してきます。 このエラーが出た場合は、強制的に EUC-JPに変換をしたいのですが、 良い方法はないでしょうか?
正規表現ってPHPやC言語など、その言語によって使い方が異なるのでしょうか?
>>12 $encode = @mb_convert_encoding( $var, mb_internal_encoding(), mb_detect_order() );
if($encode){
エラーの場合の処理
}
15 :
14 :2007/01/10(水) 13:29:01 ID:???
mb_convert_encodingが成功するとTRUE、失敗するとFALSEを返すので、 FALSE(失敗)が返ってきたときにEUC-JPに変換するようにすればいいんじゃないかな
/ .,※,...-―:.:.:.:.:.:.:.:.:.:.:.:.:::ー-.、 \ / /,.:.:.:.:.:.:..:.:.:.:.:.:.:.:.:.:.:.:.:.:.::.:.:.:.:.:\※ヽ \ /:.:.:.::/:.:.:.::.:.:.:.:.:.:!:.!:.:.:.:.:.\::.:.:.:..:ヽ ', /:.:.:.:.:.:/.:.:.:.:.:.:.:../.;イ.:ト、.:.:.:.:.:.:ヽ.:.:.:.:.:ヽ ,':.:.:.:.:.:.:!.:.:.:.:.:.:.,:イ:/ ;:/ ヽ.:..:.:.:.:.!:.:.:.:.:.:.'※. !:.:.:.:.:.:.:|.:.:.:.:/.// // \:.:.:.:.|:.:.:.:..:.:i |:.!:.:.:.:.:.|;∠..−'" 〃゛` ―--\:.!:.:..:.:.::,' } 下らねぇ質問はここに !ハ:.:.:.:.:.! _,, / 、_ /:.:.:./:/∧ 書き込みやがれですっ i! \:.:.:\`=''" `ー=''イ/:.ィ//:.:. }ヾ、_\ ' //´ /:.:.:. ト、※,.>-―…―--<7´※ /:.:.:.:. !:.r(´.._'' ¨´ ̄ ̄`¨r-┴ 、 /ユュ_:.:. /:.{ 〉ーュ__...::::::::::.r―_`ヽ〈 // {j:.:. . /:.:/{Y´,.-<:::::::::::::::`ー、` ノュ!_j⌒ーリ:.:.
> if($encode){ if(!$encode){ じゃね?
mb_internal_encoding() ? mb_internal_encoding() : 'EUC-JP';
質問に答えてもらっておいて、お礼もないのか・・・ これじゃ答える側もこたえる気なくすよな
20 :
12 :2007/01/10(水) 18:45:38 ID:???
すいません、お礼がちゃんと書き込めてませんでした。 おかげで助かりました。 多謝!!!
21 :
nobodyさん :2007/01/10(水) 19:52:35 ID:hNJDqrmd
PHPの勉強をしています、参考書を読みながら試してるのですが 色々不可解なことが・・・。 OS:WindowsXPSP2 Webサーバー:Apach2.2 PHP:5.2.0 質問1:↓これを実行すると ####################### <?php print "現在の日時は " . date("Y年m月d日 h時i分") . " です。<BR>"; ?> ####################### ↓どうしても、年が・になってしまいます・・・。なぜでしょうか?? 現在の日時は 2007・01月10日 07時44分 です。
22 :
21です :2007/01/10(水) 19:53:14 ID:hNJDqrmd
質問2:print文の省略というのがうまくいきません・・・。 ↓ころをやると ############### 現在の日時は <?=$now?> です。 ############### ↓こうなります・・・。 現在の日時は です。 試しに↓こうすると ############### 現在の日時は<?php print $now; ?> です ############### ↓こうなりました(相変わらず「年」だけ「・」になります。 現在の日時は2007・01月10日 07時50分 です。 大変お手数をおかけしますが、どなたか原因が解りました教えてください。 よろしくお願いします。
>>22 文字コードの問題じゃね?
$nowには中身入ってんの?
25 :
21です :2007/01/10(水) 20:30:44 ID:hNJDqrmd
>>23 >>24 ありがとうございます。
$nowは↓これが入っています。
<?php
$now = date("Y年m月d日 h時i分");
?>
文字コードだと、iniファイルの設定がうまくいってないのでしょうか?
「年」だけ「・」になるってあるんですね・・・・・、
どこをいじればぃいのだろぅ・・。
あ!!ちなみにいま
print "年<BR>";
これやったらちゃんと「年」って出ました。
むぅ・・・
26 :
24 :2007/01/10(水) 20:32:32 ID:???
こうでもすればいいんじゃまいか? <? $d = split(",",date("Y,m,d,h,i")); $d = "現在の日時は ".$d[0]."年".$d[1]."月".$d[2]."日 ".$d[3]."時".$d[4]."分 <br />\n"; echo $d; ?> <?=$d?>
27 :
21です :2007/01/10(水) 20:57:47 ID:hNJDqrmd
>>26 まだ始めたてでよくわからないのですが、
こぴぺして実行したら
こう↓表示されました・・・
\n"; echo $d; ?>
>>27 とりあえず君にはここで質問するよりもマニュアルをちゃんと読むことをお勧めする
>>27 とりあえずPHPの文字コードどうしてるよ?
php.iniのmbstringのとこだ
>>28 マニュアル嫁厨はいなくていいよ
マニュアル読んでも理解できないことは多々ある
嫁と言うくらいなら読む部分のURLを貼ってやれ
30 :
21です :2007/01/10(水) 21:28:03 ID:hNJDqrmd
>>29 あ・・・ありがとうござぃます;;
[mbstring]
; language for internal character representation.
mbstring.language = Japanese
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = SJIS
; http input encoding.
mbstring.http_input = auto
; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = SJIS
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
mbstring.encoding_translation = On
; automatic encoding detection order.
; auto means
mbstring.detect_order = auto
; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;
31 :
21です :2007/01/10(水) 21:29:46 ID:hNJDqrmd
>>28 すんません;
でもでも、
↓これで「年」が「・」になるのは・・・とても不思議で・・・。
print "年<BR>"; ←これだとちゃんと「年」って出るのに・・・。PHP5.2.0ってバカなのかなぁ・・。
質問1:↓これを実行すると
#######################
<?php
print "現在の日時は " . date("Y年m月d日 h時i分") . " です。<BR>";
?>
#######################
mb_convert_encoding()
保存文字コードはShift_JISをやめろ、UTF-8とかEUC-JP dateはマルチバイト対応してないので Shift_JISで「年」は0x94 0x4E、「N」が0x4Eだから置き換えしてしまう
始めたばっかりでエンコーディングの問題にぶつかるってラッキーだよな
わかりにくい説明になってしまってすいませんが、 /hogehoge/scripts/gaibu.phpという外部ファイルを /hogehoge/main.phpというファイルからincludeさせたときには main.phpファイルの親ディレクトリである、hogehogeを /hogehoge/link/index.phpというファイルからincludeさせたときには、 index.phpファイルの親ディレクトリである、linkを取得できるようにgaibu.phpに記述する方法ってありますでしょうか? <?php $path_parts = pathinfo(__FILE__); $mydir = basename($path_parts['dirname']); print $mydir; ?> とすると当然ですがgaibu.phpの親ディレクトリであるscriptsが取得されてしまいます。
37 :
21です :2007/01/10(水) 23:07:57 ID:tu53/ebs
>>32 ?
>>33 !!!
そうなんですね、テキストに書いてあった通りにしたのに・・・。
今日は勉強してるパソの前を離れてしまったので
明日やってみて結果報告しますね!!
ありがとうござぃます(●´∀`)ノ(ペコリ
>>34 そぅなんですか??
>>37 dateが「N」で置換するようになったのはPHP 5.1.0からだから
たぶん使ってるテキストが古いんだろな
40 :
前スレ991 :2007/01/10(水) 23:32:23 ID:dQ2G34v1
これです。 ・・・何のソースを出せばいいの? YahooAPI弄ってたんだけど、 検索結果がでねぇ。
d
42 :
nobodyさん :2007/01/10(水) 23:33:32 ID:Svb1C9pT
ここにいる回答者の方々はphpでどういうプログラミングをしてきたか教えてください。
43 :
40 :2007/01/10(水) 23:42:53 ID:dQ2G34v1
できるだけ早くお答えがほしいです。 一応構成は、common.phpと(YJSearchExample.php) の2ファイルです。
>>43 「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
45 :
nobodyさん :2007/01/11(木) 00:10:59 ID:uW7xEbZY
PHPのモジュールを作りたいんですけど CとC++どちらがいいですか?
47 :
nobodyさん :2007/01/11(木) 00:15:30 ID:uW7xEbZY
いやいやHSPはCでできてるわけで、そこから作っても無駄だと思うんですが、 二次で生まれたものから作成するのはスピードの面とか・・・
JSP
49 :
nobodyさん :2007/01/11(木) 00:21:12 ID:uW7xEbZY
モジュールを作ったことがある人っていないんですかね? 0:45分にモジュールの新スレたてます。
50 :
nobodyさん :2007/01/11(木) 01:46:57 ID:8lXV+y43
preg_match関数の使い方について質問させてください。 $strに、メール(ヘッダおよび本文)が格納されているとします。 メールの仕様では、ヘッダと本文の境界は「CR+LF」の空行だそうなので、 以下のような正規表現にて本文だけを抜き出せるかと思いましたが、うまく出来ません。 どこがいけないのでしょうか? preg_match("/^\s*$([\s\S]*)/", $str, $body);
51 :
nobodyさん :2007/01/11(木) 01:55:47 ID:JCcmSaAf
>>54 /test/read.cgiにあたるファイルを作って、それより後ろの部分は$_SERVER['PATH_INFO']。
もしくはmod_rewrite+REQUEST_URI等。
>>55 ありがとうございます。
$_SERVER['PATH_INFO']を使ってみます。
>>9 遅レスっすけど、この前同じ目に
MySQLだったんだけど、MySQLのDATE_FORMATで対応できた
SELECT DATE_FORMAT( '20070101123000', '%Y-%m-%d %H:%i:%s' ) AS dt FROM.....
-- dt --
2007-01-01 12:30:00
----
てな感じ。MySQL以外はわかんね
>>50 全然関係ないんだけど
自分だったら for 文で空行が出てくるまで読み捨て
とかやっちゃうな
今時の富豪的プログラミングとしては
正規表現を使うのかもしれんけど
既に $str に入ってるから CRLF を検索するだけでいいか
正規表現使わなくても list($head,$body) = explode("\r\n\r\n", $str, 2); でもいけるんじゃないかと
2ちゃんねるの内部プログラムを真似て作った掲示板があるんですけど 著作権に引っかかりますか?
>>61 内部プログラムっていうのが何かわからないが、
特許技術とかでもない限り、
一般的に掲示板なんて構造はどれも一緒なんだから、
問題はない。
ifの条件判定で日本語(ななしさんの部分)を使うのはまずいでしょうか? もし使うとしたらUTF-8のほうがいいですか?EUCやShift_JISではやめといたほうがいいのでしょうか? if($_POST['name'] == "ななしさん"){ 省略 }
>>63 Shift jisだと問題が起こる可能性があるがそれを理解して使っていれば問題ない
メーメールフォームをつくってます。 テキストメールで送信する前にサニタイズしてタグ等がある場合は 無害化してからメール関数で送信するべきでしょうか?
67 :
37 :2007/01/11(木) 12:15:45 ID:???
>>38 外部phpファイルを読みこませるファイルのファイル名や親ディレクトリ名を取得するスクリプトを、
外部phpファイルにかけるかどうかということなんですが、伝わりますでしょうか?
ファイル名などを取得させるように外部phpファイルに書くと当然、外部phpファイルのファイル名が取得されてしまいますよね?
これを、外部phpを読み込ませたファイルのファイル名を取得したいのです。
68 :
38 :2007/01/11(木) 12:16:43 ID:???
すいません、名前間違えました
67は
>>38 が書きました
>>67 ディレクトリは取得できる
大元のファイル名は環境変数からわかる
>>36 こんな答えを望んでいないのを承知で書くが、
gaibu.phpをクラスとして定義し、
コンストラクタでパスを渡す
というのが設計としては正解だったりしないか。
もっと単純に、
読み込み元のスクリプトで変数を設定し、
読み込まれたファイルでは、その変数を読むとか。
とはいえ、出されている情報だけでは、
判断できないけどね。
>>71 どういう文章で切られてるかというのが分からんとなぁ。
たとえば、改行したところで切られるとか、改行が2回連続出たところで切られるとか
何文字目で切られるとか。
73 :
71 :2007/01/11(木) 16:54:15 ID:???
>>72 やっと今頃なんですが、
色々調べてみたらなんとなく分かってきました、
どうやら機種依存文字があると、その文字列以降が一切削除されているようです。
例えば機種依存文字、○の中に1、を書くとそれ以降は削除されてました。
機種依存文字をうまく変換するような関数ってあるでしょうか?
PCに詳しくない人ともやりとりするので
機種依存文字を0にするのは厳しそうです。
>>73 「php 機種依存文字」でぐぐってみれ。
いっぱい出てくるちゅーねん。
75 :
71 :2007/01/11(木) 18:04:12 ID:???
自分で少しずつデバッグしてわからなかったら聞いてくれ。 どこが悪いか分かりますか?ではなく、 ここの部分が悪いんですが〜とちゃんと言えるようにしてきてくれ。
76はスレタイも見えないようだ。頭悪そうだな
このスレの存在意義ね〜〜〜
このスレは76を称えるスレになりました
>>71 $text = mb_convert_encoding($text, 'ISO-2022-JP', mb_detect_encoding($text));
これがいらん気がする。
まあ確かに 大抵のMUAはShift_JISのメールも読めるだろうけど 昔気質の自分はISO-2022-JPであってほしいと思うな
ポストされた内容をメールで送信しているんだぜ? header(Location: 〜) ; // POST後のページに切り替え html() ; // Location が効かなかったときの表示 flush() ; mail() ; // メール送信 ポスト後のページ切り替えは IE6 メール送信しないときは速い。送信するとワンテンポ遅れる。 Opera9 どっちも速い。 FireFox2 どっちも遅い。 できれば IE6 でも遅れないようにしたいさ。 なんか手はないか。 flush のところに ob_end_clean や ob_flush を入れても同じさ。
session_set_save_handlerを実装したくて、試してみたのですが、 openハンドラーのところで、セッション保存パスが取得できませんでした。 原因を切り分けるために、session_save_path()を実行してみたのですが、 取得ができませんでした。サーバーの環境の問題かもしれませんが、 可能性として考えられる原因って分かりますか? ---- echo session_save_path(); session_start(); ---- テスト環境 WindowsXP PHP5
84 :
37=67 :2007/01/11(木) 20:08:10 ID:???
>>69 さん
できるのですか!
単純にディレクトリ名取得させる書き方だと、うまくいかないのですが書き方か関数かご教授願えないでしょうか?
環境変数というのは、調べてやってみます。
phpinfo()
のなかに、使える関数があるのでしょうか。
>>70 読み込みもとのスクリプトで取得させるのはできるのですが、、ページを簡素にして全部共通で外部ファイルを使いたいので、外部化にこだわってます。
アドバイス頂いた設計は、ちょと難しくて、まだ把握できません・・・
86 :
21です :2007/01/11(木) 20:49:58 ID:6cjanMPr
>>39 途中報告です!
iniの設定をShift-JIS以外にして試してるのですが、
完全に文字化けしてしまいました・・なので、多分Apacheの設定??も
間違えてるんだと思います。
今、ネットであれこれ調べてチャレンジしてます!
クリアできたらまた報告しますね!
にしても設定するだけで難しい・・・。
87 :
nobodyさん :2007/01/11(木) 20:53:34 ID:r9MspATb
メールを送ったとき、 送信先不明や着信許可していない時にデーモンから返されてくるエラーメールから 元々送った相手のメールアドレスを変数に取り出すには、どうしたらいいですか?
90 :
nobodyさん :2007/01/11(木) 21:14:57 ID:r9MspATb
>>89 スパムじゃないです!主婦友のメーリングリストを作りたいんですが、携帯が主なので
機種変とか受信許可設定の未設定とかで、帰ってくることが多いので、
返ってきたメールアドレスは、データベースから消したりする処理をする為です!
私は、業者じゃないです!
93 :
nobodyさん :2007/01/11(木) 21:23:59 ID:r9MspATb
あの、それをしなくてもいいように、お尋ねしているのです。 私もググって見たのですが、メーリングリストのスクリプトについての解説が載っているページがなくて ここにたどり着きました。 どなたか、ご存知の方、直接解説をしていただかなくても良いので URLだけでも教えていただけませんか?
95 :
nobodyさん :2007/01/11(木) 21:25:41 ID:r9MspATb
?
>>94 暇なガキはけーーーーーーーーーーん (゚∀゚)ニート!!!!!
PHPでツリーメニューをHTMLの調子で使っても全く動作しないのですが PHPでツリーメニューを使うにはどうしたらいいですか?
ちなみにPHPでツリーメニューをHTMLの調子で使うというのは、 ソースに記述して動作させようとしてるということです
>>86 Apache 2.2 なら AddDefaultCharset はなかったはず。
書き足してなければ。
これはない方が概ね意図した動作になる。
php.ini は↓2つ。
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8
で php ファイルは UTF-8 で作成して
最低限の html タグは書いておくこと。
要するに head に meta タグで charset を指定するため。
>>97 あなたの言う「ツリーメニュー」とはどういうものを指すのですか?
>>102 ソースに書いたHTMLのツリーメニューってやつを見せて
<?php $str1 = <<< DOC_END1 HTMLのやつ DOC_END1; print $str1 ?>
JavaScriptで新しい画面を開くような実装をしているんですが、 その新しい画面から他の画面へ遷移させた途端、SessionIDが新しいのに 変わって、セッションが破棄されてしまいます。 session_destroyをしていないのに。。。 それが、同じ環境(OS、ブラウザ)でも起こる場合と起こらない場合があるのですが、 対処方法が全く分かりません。 原因をつきとめる方法でもいいので、アドバイスをお願いします。
106 :
nobodyさん :2007/01/11(木) 22:47:32 ID:cEYa3q1p
WindowsサーバにImageMagickをインストールしたのですが、 PHPから操作する方法がわかりません 何かライブラリがあるのでしょうか?
>>90 PHPじゃないけど、そういう処理がfmlに含まれてる。
まさにエラーメールをはじくために。
Perlが分かるなら、その部分だけ取って来て流用すれば良い。
phpmyadminのライブラリ使うとかありですか?
110 :
nobodyさん :2007/01/12(金) 00:46:34 ID:MVKrQ9mz
>>105 Webサーバをロードバランシングしてると同様の
ことが起こるが。。。違うか。。
111 :
nobodyさん :2007/01/12(金) 01:06:03 ID:21GIWcBS
print $str1 print $str2 print $str3 print $str4 print $str5 PHPの記述の一部にこのような命令があったとして これの順番を入れ替えたい(例えば$str1と$str4) (ちなみに変数の中身が変わるので、手書きで順番を変えるわけには行きません) そのような場合にはどうすればいいでしょうか?
設計を考え直しましょう
if( 変数の中身の状況1 ){ print $str1 print $str2 print $str3 print $str4 print $str5 }else if( 変数の中身の状況2 ){ print $str4 print $str2 print $str3 print $str1 print $str5 }else if( 変数の中身の状況3 ){ ・ ・ ・
せめて $str[] にならんのか
>>111 $str1 = "s1";
$str2 = "s2";
$str3 = "s3";
$str4 = "s4";
$str5 = "s5";
//$list = array(1, 2, 3, 4, 5); //元々の順番
$list = array(4, 2, 3, 1, 5); //str1とstr4の表示順を入れ替え
foreach($list as $n) {
print ${"str" . $n} . "\n";
}
ってこと?
ああ、改行要らんかった。まぁいいや
ソースレベルでの変更が可能ならどうにでもすればいい。 すでに表示されてしまってるのをどうにかしたいなら、 JavaScriptでやるしかない。
118 :
nobodyさん :2007/01/12(金) 05:49:30 ID:YAXXgeZf
functionを多用する時に外部ファイルを使う場合、 1ファイル上であっても何度も読み込む必要がありますよね? function test01(){ require("admin_setting"); echo $admin_name; } function test02(){ require("admin_setting"); echo $admin_text; } こんな感じで何度もfunction内にrequireを書く必要があると思いますが、 そうではなくて、何度も読み込まない方法は無いでしょうか?
>>118 <?php
require("admin_setting");
class Hogehoge{
function test01(){
echo $admin_name;
}
function test02(){
echo $admin_text;
}
}
?>
>>122 クラスにしなくても
require("admin_setting");
をユーザ関数の外に出せばいいだけの希ガス
124 :
nobodyさん :2007/01/12(金) 13:08:45 ID:qjLqWtKa
>>9 です。遅レスすまそ
>>10 それじゃできないはずです。つうか、できませんでした。(php v4.4.4)
日付までならOKなんですが、時分秒が入ったらあきませんでした。
>>11 そうなんですよ!!!!(怒)
SQLを単なるデータの入れ物にしか使ってないんですよ。
flag(status)にvarchar(1)とか定義して(なんでやねん!!!)、
中身は数字が1〜9まで。(←お前、出直して来い!)
125 :
nobodyさん :2007/01/12(金) 13:09:48 ID:qjLqWtKa
>>124 あ、結局ですね、正規表現で処理しました。(悩む時間がもったいなかったので)
126 :
nobodyさん :2007/01/12(金) 14:01:29 ID:5AgUsAfL
2つのクラスの内部functionを継承によって共有したいのですが、少し分からないことがあるのでお願いします。 class hoge { public $foo; function yahoo() { $this->foo = $_GET['foo']; } function checkFoo() { if($this->foo ==1) { echo 'OK'; } } このクラスを継承してcheckFooを他のクラスから使用できるようにしたいのですがどんな方法があるでしょうか? class hoge2 exteds hoge { public $bar; function __condtruct() { $this->bar = $_GET['bar']; $this->checkFoo(); <- ここで$barも同じチェックをしたい } }
>>126 とりあえずhoge2の__constructの中で、parent::__construct()でも呼び出しとけば?
128 :
118 :2007/01/12(金) 14:14:59 ID:???
>>122-123 つまりこういうことでしょうか?
require("admin_setting.php");
class Hogehoge{
function test01(){
echo $admin_name;
}
function test02(){
echo $admin_text;
}
}
$sample=new Hogehoge;
$sample->test01();
ただ、これでは表示されません。requireの箇所をfunction内に入れれば
表示されるのですが・・。
admin_nameとかをglobal宣言しないと駄目なんじゃね?
>>128 いろいろやり方あるけどPHP5なら、俺の場合はstatic参照する
----------------------------------------
class AdminSetting{
static $admin_name = "hirairio";
static $admin_text = "yariman";
}
----------------------------------------
require("admin_setting.php");
class Hogehoge{
function test01(){
echo AdminSetting::admin_name;
}
}
----------------------------------------
PHP4では動かないよ。
PHP4ならあんまり好きじゃないけどdefineとか使うしかないんじゃね。
131 :
前931 :2007/01/12(金) 14:41:19 ID:snP01oSS
遅レスすいませんんん。 正規表現部分です。 $str = preg_replace('|(?:<!--)(?:(?!-->).)*-->|sxi', " ", $str); $str = preg_replace('|(?:<style)(?:(?!</style>).)*</style>|sxi', " ", $str); $str = preg_replace('|(?:<script)(?:(?!</script>).)*</script>|sxi', " ", $str); マルチバイト対応してないのか。あぁ。
>>130 これなら動きました。
自分はPHP5.1.4の環境でテストしていたのですが、
それで動かなかったんですね。
とはいえ一般のレン鯖はPHP4のところがほとんどですし、
自分もPHP5仕様にしたくないので、defineを使うか
素直にrequireをfunctionの数だけ用意するようにします。
ソースありがとうございました。
指定配列の文字が要素配列に存在するかのチェックです if(preg_match(array('a','b','c','d'), array('c', 'd'))) { 処理 } こんな処理をしたいのですが、正規表現は使わないのでpreg_match以外で軽快な関数ありますでしょうか?
134 :
nobodyさん :2007/01/12(金) 15:33:16 ID:h324r4IB
Xitamiを入れてPHP5.2のインストーラ版を入れました。 試しに動かしてみたのですが、echoやforループなどはまぁ普通に動いているのですが、file_get_contentsが機能していないようです。 こういう現象に心当たりのある方いたらアドバイスをお願いします。
135 :
nobodyさん :2007/01/12(金) 15:38:30 ID:qKWjHdtb
>>134 機能していないってどういう状態
ファイルを読み込んでいないってこと?
返り値のエラーはどうなっているの
137 :
134 :2007/01/12(金) 15:44:54 ID:???
>>136 $a = file_get_contents("test.txt");
echo $a;
で結果は何も表示されません。
fileがないとかそういうエラーも出てません。
>>135 せっくすべーりーまっちょでちゅヾ(@°ω°@)ノ
139 :
133 :2007/01/12(金) 15:56:31 ID:???
>>138 こいつなんなの?
よくいるみたいでけど
>>135 さん
それだと1つでもマッチしているとTRUEになるんです…
すべてあっていた場合のみTRUEという関数は自作するしかないのでしょうか?
生年月日を入力すると年齢が表示されるというものを作っています。 //今日の日付 $today=mktime(); //生年月日を結合 $birth=mktime(0,0,0,$_POST["moon"],$_POST["day"],$_POST["year"]); $age=$today-$birth; echo "あなたの現在の年齢は".date("Y",$age)."歳です"; フォームから自分の生年月日を入力して送信したら年齢が出るという 仕組みなのですが、上手くいきません。どこがおかしいのでしょうか?
わろす day もおかしいな
「月」だからmoonか。間違ってはいないなw
WEB(DB兼(oracle))サーバー上のDBバックアップのバッチファイルを php経由で叩こうとしてるのですが上手くいきません セキュリティとか実行権限あたりかと思うんですが・・・ よろしくお願いします
145 :
144 :2007/01/12(金) 16:29:46 ID:???
内容書き忘れましたorz test.php-------------- <?php passthru("test.bat",$ret); echo $ret; ?> test.bat--------------- D:\Oracle\Ora90\bin\exp FILE=D:\test.dmp ---------------------- こんな感じです バッチファイルを直接叩くとtest.dmpは作成されるのは確認しました
test.dmpが作成されるならうまくいってるじゃん
>>142 dayはいいんじゃないの?dateだと年月日全部って感覚なんだけど。
違うかな。
さて、ヒントはmktimeやdateの有効範囲。
ロジックが間違ってます。
じゃどうするか。貴方が計算するように計算するんです。
>>145 test.php経由だと上手くいかないんです
「dir」や「time」等の単純(?)なコマンドは引数も取得出来るのですが・・・
>>148 パスが通ってないんじゃないの?
passthru("test.bat",$ret);
↓
passthru("D:\test.bat",$ret);
みたいに絶対パスで指定してみれ。
特定の文字がHTML内にはいっているとエラーになるのですがこれは何なのか分かりますでしょうか? Smarty error: [in hoge.html line 19]: syntax error: unrecognized tag: 投票 この場合、「投票」という文字を消すと動作します
>>150 tagに2byte charは使えない。
Shift_JIS をやめる
>>150 19行目全部貼り付けてよ。
前のタグを閉じてないとかそんなんだろ
154 :
nobodyさん :2007/01/12(金) 18:23:58 ID:ixGVyEcV
PHPでディレクトリ内に.html等のファイルを作る事はできるのですが ディレクトリを作成する方法はどうしたらいいですか?
155 :
150 :2007/01/12(金) 18:27:00 ID:???
>>150 たぶんこれが原因です…ありがとうごさいます。
Shift_JISまんどくせ〜
それでもShift_JISでやらなきゃいけない…鬱鬱
mkdir()
>>137 echo じゃなくて var_dump で出力してみたらどうなるの
false が帰ってきていたら失敗だよ
>>139 素直にループまわしてチェックする関数作ったら?
>>155 Smarty、テンプレートのエンコードSJIS、
スクリプトエンコードSJISの組み合わせは地獄だよ
せめてスクリプトのエンコードはEUCとかにして、
プリフィルターとポストフィルターを使って
SJIS -> EUC -> SJIS にしたほうが楽
重いけどな
163 :
150 :2007/01/12(金) 18:44:46 ID:???
>>162 (携帯は)重かった話になんないっしょ!!ですって…
鬱・鬱・鬱…
164 :
154 :2007/01/12(金) 18:53:26 ID:ixGVyEcV
>>156 157 158 159
ありがとう!買った本に載ってなかったので
ググって挑戦してみます。
>>162 画面 SJIS
ソース UTF-8
DB EUC-JP
だったけど、そんなに重くならなかったぞ。
SmartyとかShift_JISの問題じゃなくてタグの書き方が悪かっただけでしょ? × <日本語 value="bar">foo</日本語> × <tag 日本語="bar">foo</tag> ○ <tag value="日本語">foo</tag> ○ <tag value="bar">日本語</tag> 基本だろ
167 :
nobodyさん :2007/01/12(金) 19:34:45 ID:2nrbZFx0
いや、あれはテンプレがSJISだからおこるエラー {literal}で囲んでごらん。 エラー消えるから
imagejpeg()は、ファイルか、ブラウザにしか出力できないようですが、 変数に入れることはできないのでしょうか。 jpegイメージの実態を変数に代入したいです。
>>170 すまん。ちょっとよくわからん。
どれに対して&使えばいいんだ?
ob_start(); imagejpeg($img_res); $image = ob_get_clean(); これじゃダメ?
>>163 php は携帯で実行されるわけじゃないじゃない
switch文で、caseの値を、複数(値が、a,b,dの場合とか)入れるにはどうしたらいいでしょうか?
>>176 switch(test){
case a:
case b:
case d:
echo 'a b d';
break;
case c:
echo 'c';
}
即レス ThankS!
179 :
nobodyさん :2007/01/12(金) 23:25:36 ID:UiMa0kdE
>>163 なんのことか知らんが、出力だけSJISにしとけばいいだけじゃね?
180 :
nobodyさん :2007/01/13(土) 00:01:41 ID:LrFYrtf4
キーが不特定の、配列があります。 この配列から何でもいいから値を一つ返したいのですが、 いい方法はありませんか? foreachを使えば返すことが出来るんですが、 一つだけとりだすなら、処理が無駄のような気がして・・・・
>>180 current(),end(), prev(),reset() ,next()
好きなのを使え
$HOGE=$ARR[mt_rand(0,count($ARR)-1)]
function rand_array($arr) { $key_list = array_keys($arr); return $arr[$key_list[mt_rand(0,count($key_list)-1)]]; }
あれ、ちょっと前まで出来なかったのに・・
185 じゃないけど 昼くらいから見れなかった www.php.net 全体が
で、
>>180 はあまりの人気にビビって消えた?w
smartyで ループ回数が10回以上だったら、iterationの値を表示しないようにしたいのですがどんな方法があるでしょうか? {if {$smarty.section.loop.iteration} != 10}{$smarty.section.loop.iteration}{/if} 尚、ループは50回以上の場合もあるのでiterationの値だけを表示しないようにしたいのです
192 :
115 :2007/01/13(土) 03:03:03 ID:???
全体のループが40あったとして、1〜9までは表示して10〜40までは表示しないってこと? それなら {if $smarty.section.loop.iteration <= 9}{$smarty.section.loop.iteration}{/if} 全体のループが8や9だったら表示して、11や20だったら全く表示しないのなら {if $smarty.section.loop.total <= 9}{$smarty.section.loop.iteration}{/if} とやるかなぁ。 @count
193 :
nobodyさん :2007/01/13(土) 06:22:47 ID:yY12RXL1
使い勝手のいいHTMLパーサーない?ただし、Pearはのぞく
194 :
180 :2007/01/13(土) 08:19:51 ID:???
ifの条件式で、変数が数字だった場合、 trueを返すというのは可能でしょうか? それとも正規表現関数を使わなければ、 不可能なんでしょうか?
196 :
nobodyさん :2007/01/13(土) 09:10:55 ID:Ymy8BY2c
携帯から自宅のPCのローカルホストにアクセスしてPHPファイルにアクセスしたいんですが何か良いアイデアございませんか?パソコンでインターネットにつないでないので、家で携帯からどうやってチェックしようか悩んでます。
ネットにつながってないなら知るかw
僕ハッカー
>>196 apach入れないと無理だな
インターネットにつながないと無理だな
PHPファイルにアクセスしてもサーバーが建ってないと動かないよ。
>>201 その前に、globalかどうかだな。
最近のプロバイダー、セキュリティーや有料サービスとの差別化で
privateがほとんどだし。
203 :
nobodyさん :2007/01/13(土) 09:35:15 ID:Ymy8BY2c
apacheやPHPなどの動作環境は揃ってます。あとは携帯からPCにどうアクセスしたらいいのか悩んでます。赤外線でできるのか、ケーブルで接続したらできるのでしょうか?やっぱりネット繋いでないと無理ですよね?
>>203 え?携帯から操作するのって、外出先からじゃないの?
USBで接続してPCのファイル実行するアプリでも作ればいいんじゃね?
206 :
nobodyさん :2007/01/13(土) 09:46:18 ID:Ymy8BY2c
今回の場所は自宅ないです。説明不足ですみません。いまからアプリ作ってためしてみます。
208 :
nobodyさん :2007/01/13(土) 15:46:01 ID:/ix/YWHy
正規表現についての質問なのですが、 PHPのpreg_matchの問題のような気がするため、 こちらで質問させてください。 $template_src = preg_replace("/\\\[/","[",$template_src); 上のように、データ内に存在する\[を、ただの[へ置換したいのですが、 Compilation failed: missing terminating ] for character class at offset 3 という警告が出てしまいます。 これはどのようにすれば解決できるのでしょうか? ご教授下さいませ。
正規表現の勉強不足。専門スレッドへ。
210 :
208 :2007/01/13(土) 16:03:53 ID:???
了解しました、失礼しました。
>>208 PHPが文字列リテラルをパースする際の難点と相俟って面倒なことになってるな。
つ
"/\\\\\[/"
"/\\x5C\[/"
'/\x5C\[/'
>>211 っていうか、このケースならpreg_replaceじゃなくて、str_replaceだろ。
ケースってなんだよ。 早ければ早いほうを使えばいい。
正規表現は遅いからね
int型を作りたいのですが、できますでしょうか? 実際のコード $a=1; echo bin2hex($a);//とした時に01 00 00 00となってほしい $a=chr(1).chr(0).chr(0).chr(0); とすれば、希望のようになる事にはなるのですが256を越えた場合の処理が面倒で・・・ よろしくお願いします
echo gettype($a); してみ
str_padでやるしかない
外部phpをincludeしようと <?php include("スクリプトアドレス/test.php"); ?> と記述すると、 Warning: main(): Failed opening 'スクリプトアドレス/test.php' for inclusion (include_path='.;c:\php4\pear') というエラーがでてしまいます。 なんとか解決策をご教授願えないでしょうか?
219 :
nobodyさん :2007/01/13(土) 21:16:00 ID:FzAsO9U8
掲示板で投稿があったときにキャッシュ的にPHPコードと表示用HTMLが混ざった phpファイルを書き出しているんだけど、たまにファイル更新が途中で切れて エラーが出るんだよね 今は見つけたら管理画面から再構築する処理ができるようにしてあるけど、 あるファイルにPHPの構文エラーがないかチェックする方法ってないのかな?
>>219 PHP CLIのオプション付きでチェックできた希ガス
>>219 shell から php のスクリプトを実行して出力の文字列にエラーが文字列が
含まれているかどうか確かめたら?
というか、そもそもの原因を突き止めたほうがいいぞ
それ何かおかしい
そんなもの自作で作るより素直にテンプレートエンジンを導入したほうが
良いと思うけどな
今まで設定ファイルに直書きでやっていたプログラム達に 管理画面を作っていこうと思ってます。 fileで読み込んで、行毎に「設定名\t値\n」でテキストエディタで開いた時に わかりやすくするか、全部タブで区切って、項目無しでいくか、どっちが良いでしょう? PHPを書き出してrequireの方が変数そのまま使えて楽でしょうか? PHPで書き出すと、書き出しが面倒なのかなとも思います。 管理画面作る場合は他の人はどうやってるのか知りたいです。 やり方による後のメンテの問題とかあったら教えてください。
>>225 定数とか変数とか書いたPHPファイルをincludeすればいいんじゃないかな。
parse_ini_file()
ってのもあるよ
227 :
225 :2007/01/13(土) 23:26:30 ID:Xm9uu4fh
すみません下げてました。
>>219 携帯絵文字とか文字コードの違うPOSTで「<」が壊れるか
ファイルロック系じゃないでしょうか
>>225 日本語とかが入らないのなら
ini形式が楽だとは思う。
parse_ini_file() で設定読み込めるし
XMLとか。parse_iniの形式もええわな。pearのConfigでもええし。 yamlとかもあるけどPHPではあんまり聞かんわな
230 :
225 :2007/01/13(土) 23:37:35 ID:Xm9uu4fh
>>225 ありがとうございます。
そんなのあったんですね!
工夫を考える前にデフォルトの関数暗記した方がよさげですね。
231 :
225 :2007/01/13(土) 23:45:02 ID:???
あ〜もうだめぽ 何で自分にお礼言ってるんだ俺… みなさんありがとうございます。
/admin index.php /profile profile.php /function config.php こんな感じのファイル構造だとして、設定ファイル(config.php)を読み込むには どういう風に書くのが理想なのでしょうか?(エラーが起きにくい 自分の場合は、index.phpから読み込むなら requre_once("function/config.php"); としています。(つまり相対指定)
なんだその分かりにくいディレクトリ表記は
>>232 フォルダ構造が一つにまとまっていれば当然相対指定でいいんじゃない
/*で広い範囲をコメントアウトしたいのですが その範囲中にコメントアウトが記述されているので、 うまくコメントアウトできません。 コメントアウトをネストしたい時はどうすればいいですか?
無理。 頻繁にそういう状況が発生するのなら、プログラムの書き方に問題があるんじゃないかな。
よっぽどのことがない限りは/*は使うべきじゃない。あとで/*使えなくなるから。 俺はclassの説明文とかfunctionの説明文以外では使用しないようにしてる。
>>235 バージョン管理システムの導入をおすすめする。
今からならSubversionがいいかと思う。
最初は取っつきにくいと思うが、
その犠牲を払っても有り余る恩恵が得られると思う。
239 :
nobodyさん :2007/01/14(日) 08:30:07 ID:Q6oeoCn/
空メール送信機能を実現したいのですがxmailでは無理ですか?
入力された文字の全角を半角に変える関数ってあるのでしょうか?
mb_convert_kana
携帯電話向けのスレから誘導されてきました。 ソフトバンク端末で着メロ(mmf)をダウンロードするとき 着メロのファイル名を指定する方法がわからず困っています 以下のPHPプログラムで着メロを携帯にダウンロードできたのですが ファイル名がtest.mmfではなく 何故かdownload.mmfになってしまいます。 download.php <?php $fileName = "test.mmf"; header("Content-type: application/x-smaf"); header("Content-disposition: attachment; filename=" . $fileName ); header("Content-length: " . filesize($fileName) ); readfile ( ($fileName) ); ?> test.mmfにするには どのように対応すればよいでしょうか。
244 :
243 :2007/01/14(日) 11:02:36 ID:8Jw775ys
↑質問者なのにsageてしまいました
PATH_INFO使うって結論でてるじゃん 他にもmod_rewrite使うとか
247 :
241 :2007/01/14(日) 11:06:26 ID:???
248 :
243 :2007/01/14(日) 11:09:57 ID:8Jw775ys
>>245 >>246 すいません、私が悪いんだと思います。
他スレで同じ質問したときに回答して頂いた
情報だったのですが、PATH INFO調べても
イマイチわからなくて、誘導されたスレでも
同じ質問してしまいました
どうしてもダメならtest.phpにするしかないな
セッションとクッキーってどう違うの?
251 :
243 :2007/01/14(日) 11:34:51 ID:8Jw775ys
PATH INFOを使ってうまくいきました 私の調べ方がダメダメだったようです php.iniのPATH INFOが無効になっていることに 気づかなかったことが原因です レスくれた人に感謝します
配列を文字列として結合して返す という関数はありませんか? "$array[0] - $array[1] - $array[2]" こんな感じに変数の間に"-"を間に挟んで、 文字列として返してほしいのですが・・・
implode('-',$array);
255 :
nobodyさん :2007/01/14(日) 13:25:40 ID:Q6oeoCn/
ShiftJISでPHPファイルを作成するとき、ECHOなどで文字を出力せず、<?〜?>のそとにHTMLとしてだしとけばエスケープは必要ないですよね?
256 :
218 :2007/01/14(日) 13:41:20 ID:???
>>220 そんな器用な事はできんです。
外部っていうのは、別のphpファイルってことです。
なんと呼ぶのが適切かわかりませんが・・・
>>256 スクリプトアドレス ってとこは実際にはどう書いてあるんだ?
260 :
218 :2007/01/14(日) 14:07:19 ID:???
>>257-258 ありがと〜 フルパスでいけました。
php4なんたらってエラーだったのでphpプログラムの問題なのかとおもってしまいました。
Thanks
基本的な動作のprintとかが出来るなら(つまりphpが動作してるなら) 基本的に設定か自分のプログラムの問題 phpは結構な商業サービスにも使用されている物だぞ
商用に広く使われているが故に、バグやセキュリティホールや言語使用の甘さを叩かれるのもまたPHP
263 :
21です :2007/01/14(日) 14:34:15 ID:qItO8NuR
>>99 できたー!!!嬉し過ぎます!!!
ありがとぅございます!!
えーっと、なんか色々勘違いしてiniもApacheもいじくりまわして
、もぅわけわかんなくなって泣きそうでした。
設定はその2つだけだったんですね;
何度もほんとにありがとうございました(ペコリ
よし!がんばって続き勉強しょう!
>>262 そういう心配はもうちょっとレベルが上がってからじゃん?
今回の質問者のレベルで気にするより、マニュアルなり入門書を・・
まぁ、PHP(ZendEngine)自体の秘孔をつく事はあんまり無いな。 突いたらついたでバグ報告して直してもらうなりパッチを寄贈するなりすりゃみんな幸せ。 include時に相対パスを使う時に注意しなければいけないのは、 ブラウザから呼び出された一番最初のPHPファイルからの相対パスになるって事だね。 どこが基準になってるかは、getcwd()で分かるよ。 ・getcwd - main script(一番最初)のパス ・__FILE__ - このファイルそのもののパス
getcwdで判定して相対パス使うくらい複雑になるなら、ディレクトリ構造をちゃんと整理して絶対パスのみ使うよう統一したほうが楽かもね。
267 :
262 :2007/01/14(日) 14:56:21 ID:???
>>264 あー、すまん。質問者に言ったわけじゃないよ。
正直すまんかった!
いやいや、俺もすまんかった
270 :
竜平 :2007/01/14(日) 17:17:17 ID:???
いやここは俺が
Apache + PHP + MySQL の組み合わせで開発環境もサーバもWinとLinuxが混在する場合、 文字コードは何にしたらいいですか?
utf-8 か euc-jp
携帯サイトを作る場合、たとえばEUCで作ったら、PHP.iniにShiftジスで出力するようにしたら大丈夫ですか?
>>273 携帯の絵文字はshift-jisの外字文字の領域にあって(つまりshift-jisとも言えない)、eucではそれを表現できない。
なのでそれを扱いたいのならそれに応じた処理を書かないと大丈夫とは言えない。
「携帯 euc shift-jis 絵文字」でググればその辺の事情と幾つかの対応策が見つかるよ。
foreach ループって 途中で止める方法がないの?
止めるつーか抜け出す事はできる。 -> break。confinueもセットで覚えるべし。
>>273 >>274 っていうか、今の携帯はUTF-8で大丈夫だろ。
Shift-JISっていつの携帯だよw
電池パック変えつつ何年も使う人もいるよ
>>279 そういう奴もいるだろうけど、それはブラウザの対応と一緒。
PCサイトだって、マイナーなブラウザやversionまで対応しないだろ?
今更、NN4.7に対応しているところはほぼ皆無だしな。
まだ切り捨てるには早いんじゃないかって話
282 :
nobodyさん :2007/01/14(日) 20:11:46 ID:tkWQOn4V
$weekday = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜')[$weekday]; ↑これは構文エラーが出るんですが、こういうのを上手く1行で処理する方法ってありませんか?
何がしたいのか分からん
$weekday = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜'); $weekday = $weekday[$weekday];
> $weekday = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜'); $weekday = $weekday[$weekday]; ちょーwww
>>284 の予想が当たっていたらエスパーだな
意味分からん、っていうか勝手に構文開発するなw
0から6の数値を、日本語の曜日に変換したいんじゃないのかな。
なるほど $days=array(〜〜); $today=$days[$n];
289 :
nobodyさん :2007/01/14(日) 21:11:15 ID:tkWQOn4V
あーごめん。 $weekday = 0;//0〜6が入ってる。 $weekday = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜')[$weekday]; で、0=日曜、1=月曜って出力したいんだけど、意味が分かったかな?
290 :
nobodyさん :2007/01/14(日) 21:12:53 ID:tkWQOn4V
>>287 そうそう。
$weekdayNum = 0;
$weekdayArray = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜');
$weekday = $weekdayArray[$weekdayNum];
を1行で書きたいんだけど。
ええ、一行にこだわる時期もありました。 今となっては苦い思い出です。
>>290 $weekday = array_search($weekdayNum, array('日曜','月曜','火曜','水曜','木曜','金曜','土曜'));
>>290 ソースのZend/zend_language_parser.yに、>282のように書ける規則を追加すればいいじゃないか。
>>290 1行で書く意味が単なる自己満足ならやめとけ
君はもっと他に学ぶべきことがあるはずだ
>>295 どうして一行で書いちゃダメかを、一行で説明シル
読みやすいのが一番
余計な変数を導入するよりもリテラルに演算子を適用して 一発で求められる方がずっと可読性高いんだがなあ。 変数が導入されると他で使われないかとか、 何処かで書き換えられるんじゃないかとか考慮する点が多くなる。 が、まあそれができないのなら仕方ないけどね。
$weekday = toWeek($num); function toWeek($num) { $week = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜'); return $week[$num] }
読みやすさ。 普通は1行に色々処理が混ざってると読み難い。 後で曜日使おうと思った時の使いまわし。 sun mon tue…にしたいとか、デザイン切り分けたい時のやりやすさ。 IDE使えば変数の参照なんて勝手にしてくれる。
>>298 ならswitch文で書いちゃえばいいんじゃないの?
> 変数が導入されると他で使われないかとか、
直後にunsetしちゃえば?
> 何処かで書き換えられるんじゃないかとか考慮する点が多くなる。
1行上で定義しているものをどこで書き換えるんだよ。
302 :
nobodyさん :2007/01/15(月) 02:16:32 ID:MepRBIHy
特殊文字の質問です ※まず最初に、以下に書く「&」とは半角の&のことです。 @フォームのテキストボックスに ©&copy; と記入する。 AそれをPHPで受け取り ©&copy; とそのまま表示させたい。 B要するに、©&copy;を &copy;&amp;copy; に変換したい。 よろしくお願いします。
で、何がうまくいってないんだ?
そもそも©っていう記号文字をフォームに入力すること自体無理でしょう。 ©を入力したいユーザー自身が©って入力するもんだと思う。 サーバはそれをそのまま保存してそのまま表示すればいい。
それはクエリーに仕込んでフォームに*出力させてる*んじゃないのかと。
>>302 が何をどうしたいのか、はっきりよくわかんないんだけど
「htmlspecialcharsに食わすと、全部&→&amp;変換されてしまうので困ってます」に見えた。
必要な個所だけ「&amp;→&」に戻しましょう、という話じゃないのかな。
>>305 それはUTF-8に含まれてる「コピー(著作権)」の記号でしょう。
それでいいのならそれがリクエストされたら©に変換してあげれば?
308 :
302 :2007/01/15(月) 04:11:48 ID:???
レスありがとうございます。 その、©©を©©に変換してDBにぶち込みたいので 変換方法を教えてください。
309 :
302 :2007/01/15(月) 04:15:02 ID:???
あう、変換されてしまった。
>>308 は間違いです。
©&copy;を&copy;&amp;copy;に変換したい。
です。
310 :
306 :2007/01/15(月) 04:19:30 ID:???
>>309 下2行だけでいいので読んでいただければ幸いです。
311 :
302 :2007/01/15(月) 04:36:49 ID:???
>>310 読みました。
htmlspecialcharsは使ってませんが、使うと全部&→&amp;変換されますね。
>必要な個所だけ「&amp;→&」に戻しましょう、という話じゃないのかな。
そうです。
XML_RSSでATOMのパースってどうにか出来ないもんですかね
313 :
nobodyさん :2007/01/15(月) 13:46:11 ID:674OVm6O
なんだか人生に疲れました…
おれもー
317 :
nobodyさん :2007/01/15(月) 15:21:13 ID:QZYdEtmo
DOMElementをHTML付で変数に入れたいんだけど、どうすればいい?
318 :
nobodyさん :2007/01/15(月) 15:31:57 ID:674OVm6O
>>318 お爺さんに諭されているような, 2006/12/26
レビュアー:I "II" (神奈川県横浜市) - レビューをすべて見る
良くある人生訓的な本ですが、他のものと違って
まるで肉親の祖父に諭されているような感じを受ける一冊です。
親しみやすい文体が心地よいです
if( $スレ違い ){ 帰れ(); }
>>317 その要素名をHTMLで使える要素名に置き換えて出力すればいいのでは?
phpファイルをUTF-8で保存して1行目に <?php header('Content-Type: text/html; charset=UTF-8') ?> と書くとエラーが出ます。 エラー文: Warning: Cannot modify header information - headers already sent by なぜでしょうか?
>>323 Warning行はほんとに1行目?
下のほうでまたheader関数呼んじゃってるんじゃないの?
includeしてるんじゃないの
BOMつきUTF-8なだけとか
>>324 違うよ、バカ。
---------file head
あい う<?php header('Content-Type: text/html; charset=UTF-8') ?>
---------
header関数の前に文字列か何かを出力しているだろ。
>>327 なんか変な設定してる? その程度だとバッファに収まってるから、
headerは間に合うんだけど。
329 :
323 :2007/01/15(月) 18:50:41 ID:???
test.phpの中身 <?php header('Content-Type: text/html; charset=UTF-8') ?> <html><body>TEST</body></html> 出力結果 Warning: Cannot modify header information - headers already sent by (output started at C:\hoge\test.php:1) in C:\hoge\test.php on line 1 TEST です。よろしくお願いしいます。
うちだとエラー出んな
そもそもセミコロンもないのにparseエラーにならないのが不思議。 <?php header( "Content-Type: text/html; charset=UTF-8" ); ?> <html><body>TEST</body></html> これでどうよ? (ダブルクオートにしたのは俺の趣味)
スクリプトの最後にはいらないんだけどね
まぁ323は付けたほうがいいと思うけど
あと俺予想では原因は
>>326
334 :
323 :2007/01/15(月) 19:04:08 ID:???
>>331 >これでどうよ?
だめでした
BOMつきUTF-8って何ですか?
336 :
323 :2007/01/15(月) 19:13:06 ID:???
>>335 質問する前にそのページ読みましたが解決できませんでした。
ちなみにTeraPad使ってますのでBOM付きじゃないです・・・
>>336 原因切り分けるヒント:
1. EUC-JPで試してみる。
2. header関数だけにしてみる。
339 :
338 :2007/01/15(月) 19:27:26 ID:???
もしかして、サーバーで、そのファイルをmoreやって中身を見てみ。 文字化けして何か入っているじゃないかな?
340 :
323 :2007/01/15(月) 19:28:06 ID:???
>>338 header関数だけにしてみました
EUC-JPだとエラーなし
UTF-8だとエラーが出ます
343 :
323 :2007/01/15(月) 19:30:14 ID:???
知識不足ですみません。 サーバーで、そのファイルをmoreって何でしょうか?
>>340 使ってるTeraPadさんがステータスバーに文字コードを表示してると思うけど
「UTF-8」って書かれてない?「UTF-8N」でなく。
moreよりもodしたほうがはっきりするような。
346 :
338 :2007/01/15(月) 19:32:29 ID:???
>>343 おれも、Unix系詳しくないんだけど、テキストファイルを見るときの
コマンドのことだよ。
moreとかlessとかそんな名前だったような?悪い、そこは他の詳しい人に。
347 :
323 :2007/01/15(月) 19:32:47 ID:???
>>342 UTF-8Nで保存したときの出力結果
TESTL
UTF-8Nで保存したときの出力結果のソース
<html><body>TEST</body></html>L
エラーは出ませんが最後にLと言う文字が…
349 :
323 :2007/01/15(月) 19:35:27 ID:???
>>344 ステータスバーには保存した文字コード(UTF-8)と書かれています
サーバーはローカルのWindowsです
apache2 php5 です
>>348 まずPEARのMDB2とか使ってみるといいんじゃないかな?
351 :
323 :2007/01/15(月) 19:43:28 ID:???
>>342 あ,すみません。
UTF-8NではエラーなしでちゃんとTESTと表示できました。
UTF-8Nで保存しろってことでしょうか?
354 :
323 :2007/01/15(月) 19:54:33 ID:???
あ UTF-8NってBOMなしのUTF-8って意味ですか? 知りませんでした。8Nで保存します。 ありがとうございました。
早々に答えが出てるのにここまで引っ張る力 なかなかの釣り師w
調べもせずに「TeraPad使ってますのでBOM付きじゃないです・・・」 と言っておいて「知りませんでした。」 素人の仕業じゃないなw
357 :
nobodyさん :2007/01/15(月) 20:19:49 ID:N+fJDAIZ
Debianでapache2,PHP4です ローカルIPアドレスって取得できますか? 192.168.1.10みたいなやつです(DHCPは使っていません) よろしくお願いいたします
359 :
323 :2007/01/15(月) 20:34:26 ID:???
ただUTF-8Nを知らなかっただけです。ごめんなさい
googleで調べて、某サイトにTeraPadはBOM付じゃない。と書いてあったので。
>>355 >>356 本当にごめんなさい
>>359 参考までに知りたいんだけど何処のサイト?
361 :
323 :2007/01/15(月) 20:53:30 ID:???
>>360 windows apache2 ローカルサイト(
>>349 にも書きました)
で遊んでるだけですけど。
参考になりましたでしょうか?
TeraPadはBOM付じゃない。って書いてあったサイトのこと
363 :
357 :2007/01/15(月) 20:56:10 ID:N+fJDAIZ
>>358 即レスありがとうございました
$_SERVERは検索などしていたのですが、もうひとつ分からなくって。。
もう一度検索などしてみます
あとググり方でちょっと教えて欲しいのですが、
php ipconfig
でググると、phpで作成(拡張子が.php)されているページだとコンテンツ内にphpが含まれていなくても
ヒットしてしまう気がするのですが、これって回避する方法ないでしょうか?
ごめんipconfigは嘘
$_SERVER["SERVER_ADDR"]
php -.php
>>363 -filetype:php
しかしphpに詳しいサイトはphpである可能性がかなりあると思うんだが
ちょっと某サイトで --------------------------------------- 上のプログラムだとaが出力されるのですが下のプログラムで「あ」を出力するプログラムに変更するにはどうしたらいいでしょうか?? <?php $data[1]="aaa"; $str=$data[1]; echo $str[0]; ?> <?php $data[1]="あいち"; $str=$data[1]; echo $str[0]; ?> --------------------------------------- こんな質問があったんだが $str = "hogehoge"; としてみると $str[0] ⇒ h $str[1] ⇒ o $str[2] ⇒ g $str[3] ⇒ e $str[4] ⇒ h $str[5] ⇒ o $str[6] ⇒ g $str[7] ⇒ e となるんだけど仕様?
>>369 今初めてしったwwwwあり
マルチバイト取得するときはどうすればいいのかな?
あくまで文字数じゃなくて1byteの取得だからmb_substr使うしかないと思うよ
秀和システム刊「PHPによるデザインパターン入門」を読んでいてふと気になったので質問をさせてください。 Singletonパターンですが、このパターンを適用するとインスタンスはひとつだけ生成されるという説明でした。 class Singleton { private static $instance; private function __construct() { ...//コンストラクタな処理をする。 } public function getInstance() { if(!isset(self::$instance)) self::$instance = new Singleton(); return self::$instance; } public final function __clone()//インスタンスの複製を許可しない。 { throw new RuntimeException("だめ"); } } $inst1 = Singleton::getInstance();//実際にはこうやって使う。 $inst2 = Singleton::getInstance();//$inst1と同じインスタンスになる。 実際、一回の実行の最中に何回getInstance()メソッドを実行しても帰ってくるインスタンスは同じものでした。 で、一つになったのですが、複数の人間が同時にこのスクリプトにアクセスした場合、インスタンスは同一のものが渡されるのでしょうか? どなたか心やさしい方がいらっしゃったらご教授いただけると幸いです。
>>372 staticだからまったく同じオブジェクトが使用されるよ。
逆に言えば複数アクセスで問題になるクラスの場合は使うべきではない。
素早い回答ありがとうございました!! なるほど。複数人がアクセスする場合も同じインスタンスなのですか。。。 //staticな変数が置かれるメモリってプロセスごとに違うのでしたっけ? ////そもそもPHPのプロセスはひとつでしたっけ… //////あぁ・・・勉強不足だ私・・・
375 :
nobodyさん :2007/01/16(火) 00:47:41 ID:GnaOUHXQ
WinXP, Apache2.0.58, PHP5, ローカルで ローカルの別ドライブにあるフォルダをscandir()するとスクリプトのあるディレクトリの一覧が返されます。 スクリプト:C:\Apache Group\Apache2\htdocs (C:/Apache Group/Apache2/htdocs) スキャン先:F:\docs (F:/docs) ディレクトリの指定方法が間違ってるんでしょうか? それとも権限等別の問題でしょうか?
んなバカな。同じインスタンスを使うからSingletonでしょ。
そんな危ない仕様ならPHP5へは移行できんな
なんか用語が通じてないと思うのだがwww
380 :
372 :2007/01/16(火) 03:14:02 ID:???
>>372 です。
>>376 さんのご質問に答えます。
複数人でのアクセスというのは同じスクリプトに別のPCや別のブラウザからアクセスされた場合を想定しております。staticなインスタンスがメモリにおかれるということなので、プロセスが一つなら複数人がアクセスしても同じインスタンスが使われそうです。
/*とはいっても私自身勉強不足なので本当に同じインスタンスなのかわかりませんが…*/
ただ、その場合はどのタイミングでstaticなインスタンスが破棄されるのかとか
いろいろと疑問はつきませんが・・・
あと、CGI版PHPとモジュール版で違うのかとか・・・
>>380 PHPのstaticメンバは「プロセス毎にメモリに配置される」わけではなく、「PHPの実行毎に割り当てられる」ので、アクセス毎に別のオブジェクトになる。
ちなみに、プロセスがどうのこうの言ってるけど、アクセス毎に別プロセスにするかどうかは、Webサーバ依存。
まあ現実問題、Apacheはアクセス毎に別々のプロセスを生成してるけどね。
382 :
372 :2007/01/16(火) 04:29:04 ID:???
>>381 と、いうことは
>>372 に書いた例でも別のアクセスの場合は別のインスタンスが生成されるわけですね?
>>382 そもそも複数ユーザからのアクセスで同じインスタンスを返す方法なんて存在しない。
>>377 Singletonパターンってのは1つのプログラム内でどこで何度生成しても
全て同一のインスタンスを指す、というだけのものであって、
あくまで1アクセス内のみに適用されるものだよ。
逆にすべてのユーザからアクセス可能なら逆にめんどいことになる
387 :
372 :2007/01/16(火) 05:01:02 ID:???
なるほど、納得しました。 皆様のご親切な回答、ありがとうございました。
388 :
nobodyさん :2007/01/16(火) 06:24:26 ID:MadsLSvn
file_get_contents($url);でたまに failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden になるんだけど、 どうやったら回避できる?
>>388 403が出ないURLを指定すればいいんでない?
あるデータに表示順序を保持させてユーザが自由に順序変更できるようにしたいのですが、どのような方法がありますでしょうか? また、順序変更する際のデータのとり方がさっぱりなのです。 例) 1〜10のデータ順序をユーザが決定 ⇒ 順序をPHPに送る ⇒ データベースに順序を格納 この『順序をPHPに送る』際、どのように、ユーザが設定した順序と内部のユニークキーを結び付けるのか見当が付かないのです。 長文になりましたが宜しくお願い致します。
391 :
nobodyさん :2007/01/16(火) 07:28:52 ID:MadsLSvn
>>389 いや、、たま〜に出るんだよ。5回に1回くらい。
>>390 「順番」を表す数値を全部送信させたらいいんじゃない?
>>391 そんな奇妙な現象が起こっているなら、もう少し発生条件をよく確認した上で、サーバ管理者にその不具合について問い合わせてくれ。
-リストの文字 -リストの文字 -リストの文字 を <ul> <li>リストの文字</li> <li>リストの文字</li> <li>リストの文字</li> </ul> にする方法と元に戻す方法をよろしくお願いします。 スレ違いだったらすいません
以下の症状に悩まされています。 しかも、再現性がなく原因が分からないので、困っています。 自作のphpに問題があるのか、サーバーに問題があるのか、 分からないのですが、このような症状の要因として、 どのようなことが考えられますか。 (症状) サーバーにリクエストすると、またに、画面が白くなります。 もしくはブラウザのエラー画面(ページが表示できません?)が表示されます。 (再現性) 500リクエスト〜1000リクエストに一回程度。 特定のスクリプトに依存せず (サーバー) レンタルサーバー:xrea (php) php5 (OS) Linux
配列内を検索してヒットしたらその番号を出力するというのを作っています。 ですが、配列内を検索するのはarray_searchで出来るとして どうやって検索した文字を出力するのか分かりません。。 何か良い関数などがあるのでしょうか?
399 :
390 :2007/01/16(火) 12:48:45 ID:???
>>392 返答ありがとうございます。
データを送る際のHTML文なんですが、
foreach $data_list as $data) {
<input type="text" name="<? echo $data->seq; ?>">
<input type="text" name="<? echo $data->seq; ?>">
...
}
こんな感じで取ろうとしているのですが,
seqはデータベースのユニークキーであるため、PHP内でうまく取得することができないです。
なにかコツはありますでしょうか?
変数内の”を削除するにはどうしたらいいのでしょうか?
str_replace($foo, '"', '');
str_replace($foo, '”', '');
>>398 検索した文字って何? それって、array_searchの第1引数じゃないの?
>>398 $ary = (10,11,12);
$key = array_search(11, $ary);
echo $ary[$key];
>>397 静的なHTMLでも鯖が忙しいときはそうなったりする。
サーバサイドスクリプトだとPOSTしたままで終わったり。
>>401-402 俺が使ってる str_replace と引数の順序が違うように見える。
>>399 意味わかんね
foreachの前の部分も出せば?
<input type="text" name="<? echo $data->seq; ?>">
<input type="text" name="<? echo $data->seq; ?>">
は一行でいいんじゃないの?
407 :
390 :2007/01/16(火) 13:33:58 ID:???
>>406 間違えました…
foreach $data_list as $data) {
<input type="text" name="n<? echo $data->seq; ?>" maxlength="2"><? echo $data->name; ?>
}
でした。
この場合のseqはユニークな数字(1とか23とか)ですので$_POST['n1']などで取る場合、非常にやっかいなのです
>>407 <input type=" hidden " name="seq" value="23">
を使えば?
セッション使ったほうがセキュアだと思うけどさ。
409 :
390 :2007/01/16(火) 14:05:46 ID:???
>>408 それだとユーザが定義した順序が送られてこないと思うのですが…
恥ずかしながら無知なのでそれでユーザが定義した順序を取得する方法が思いつきません
度々すみませんがお願い致します
ユーザに定義して欲しいのは order なんでしょ。unique key でなくて。
プログラムはEUCなのですが、読み込むファイルはShift_JISの場合、 どうやって文字化けなしに読み込めばいいのでしょうか? $data=file(mb_convert_encoding("test.csv","EUC-JP")); とかしても駄目でした。
まぁ、何かと突っ込みどころがあるんだがwww
415 :
412 :2007/01/16(火) 15:18:32 ID:???
一つ目。 file と mb_convert_encodingの処理順が逆。
今、??人の閲覧者がいます 的なサンプルコード知ってる人いますか? cgiは沢山あるのに…
>>409 もう少し自分で考えるって事をしたら?
HTMLフォームとphpの基礎を学びなおしたほうがいい
まずフォームで必要な情報をまとめて表なりリストにしなさい
まとまったら自分で考えるか、ここにそのリストなり表を書いてみれば
>>407 と
>>408 の内容を合わせれば出来るんじゃね?
とにかくトライ&エラーしてみそ
>>416 cgiでもサンプルになると思うが・・・
Cだろうが、perlだろうがrubyだろうがpythonだろうが、phpだろうが
419 :
390 :2007/01/16(火) 16:41:14 ID:???
>>417 リストにしてみます。
自分では1週間ほど考え抜いたのですが
効率的な方法がどうしても分からないのでまたお力お借りするかと思います。
スミマセンが宜しくお願いしますm(_ _)m
>>418 じっくりとphpに直せばいいんですけど
phpしかしらないので…
また、phpならではの作り方もあるかもしれず
421 :
390 :2007/01/16(火) 17:45:11 ID:???
1.データベース内 master_tbl data_seq = ユニークキー name = タイトル名 msg = コメント欄 ip = IPアドレス number = 標準表示ナンバー time = 投稿時間 usr_tbl usr_seq = ユーザキー(ユニーク) name = ユーザの名前 pass= ip = IPアドレス time = 登録時間 usr_num_tbl seq = ユニークキー usr_seq = ユーザキー(usr_tblと連動) data_seq = master_tblと連動(ユニークではない) number = ユーザ定義表示ナンバー time = 登録時間 こんなテーブルでユーザが順序を変更するたびusr_num_tblを新たに消して挿入します。 2.フォームで必要な情報 PHPSESSID=usr_seqや名前を格納しておく
続き 2.フォームで必要な情報 number =master_tblの何番のデータと連動しているか、知るため seq =ユーザ定義の順序を取る 理想としては<input name="num1" value="1"> このようにnum(数字)でmaster_tbl内部の数値を送り、valueでユーザの順序を得るのがいいのかなぁとおも宇野ですが これはかなり効率が悪いのです。。
まぁ、大抵はテーブル設計時にキーと順序情報って別にするけどね。
↑スマソ。seqとnumberと別にしてるね。忘れてくれ。
usr_num_tbl に seq って必要なのか? usr_seq と data_seq の二つユニークでいいんじゃね? 俺が理解してないだけか?
JavascriptでPHPの処理が出来るのでしょうか? 例えば if($test==""){ echo "testは空です"; }else{ echo $test; } というよくあるPHPの分岐があったとして、通常はフォームのボタンを押すなどして $testに値を入れて判断しますが、それをJavascriptで出来るのかどうか 気になって質問しました。(もちろんJavascriptのスレでないのでソースなどは良いです)
>>426 何がしたいかよくわからないがajaxかな
428 :
426 :2007/01/16(火) 18:53:54 ID:???
>>427 わかりずらくてすみません。
用はif内を表示する為には1アクション起こさなければ表示されませんが、
それをJavascriptで出来ないかと思いまして。
(フォームに値を入れたら表示されるなど)
それでやっぱりAjaxなんですね。とりあえず道が開けました。ありがとうございます。
>>421-422 ここまでまとまってるのに何で出来ないんだろうね、不思議な個だ・・
多分フォームが余り理解できて無い?HTMLは得意?
では今出来ているフォームだけを晒してくださいな。
>>429 ありがとうございます(;ω;)バカなんです…でも必死なんです…
現在はこんな感じです。
<?$i=1;?>
<form action="" method="post">
<? foreach($data_list as $data) {?>
<input type="text" name="n<? echo $data.number; ?>" value="<? echo $i;?>" size="1" maxlength="2"><? echo $data.name; ?><br />
<? $i++;?>
<? }?>
<input type="submit" value="変更">
</form><br />
>>430 えーと、これだと正直読みにくいので表示後のHTMLだけのほうが嬉しい
>>430 好みの問題かもしれないが、今の段階では細切れに<?php〜?>を多用するより、
ヒアドキュメントを使うなりしてソースの視認性を高めた方が良いかも。
435 :
434 :2007/01/16(火) 19:41:52 ID:???
度々の投稿、すみません。 <form action="" method="post"> <input type="text" name="n1" value="1" size="1" maxlength="2">ほげほげ<br /> <input type="text" name="n2" value="2" size="1" maxlength="2">ふーふー<br /> <input type="text" name="n4" value="3" size="1" maxlength="2">ほげ<br /> … <input type="submit" value="変更"> </form><br /> n(1〜)はn+内部numberです。 valueはユーザが決める順序になります。 例えば 内部numberが1でvalueが2の場合、テーブルには内部ナンバーとvalueのナンバーを入れていく感じです
>>433-434 すみません。。。
普段は自作のテンプレート使ってますが、
自分にし
か理解できないと思うのでこんな書き方にしました。
ごめんなさい…
自作のテンプレート?? それが作れて何故これが出来ないのだろう・・ <input type="text" name="1" value="1" size="1" maxlength="2">ほげほげ<br /> <input type="text" name="2" value="2" size="1" maxlength="2">ふーふー<br /> <input type="text" name="4" value="3" size="1" maxlength="2">ほげ<br /> ってやればいいんじゃないの? 標準表示ナンバー1はユーザ指定順番は一番目 標準表示ナンバー2はユーザ指定順番は二番目 標準表示ナンバー4はユーザ指定順番は3番目 ってことじゃなくて?
で$_POSTでforeachしたら解決じゃね?
ひとまずこれで出来るだろ これをまず理解すれ サニタイズとかは自分で調べてね <?php //print_r($_GET); foreach($_GET as $key => $val){ print "標準通し番号{$key}はユーザでは{$val}<br>"; } $html .= <<<_EOF_ <head> <meta http-equiv="content-type" content="application/xhtml+xml; charset=EUC-JP" /> <meta http-equiv="content-style-type" content="text/css" /> </head> <form action="" method="get"> <input type="text" name="1" value="1" size="1" maxlength="2">ほげほげ<br /> <input type="text" name="2" value="2" size="1" maxlength="2">ふーふー<br /> <input type="text" name="4" value="3" size="1" maxlength="2">ほげ<br /> <input type="submit" value="変更"> </form><br /> _EOF_; print $html; ?>
サニタイズいうな
なんて言うたらええねん
>>434 の紹介したサイト、説明が間違ってる、誤字も多かった。
宣伝じゃないと思うけど見てて恥ずかしい。
まぁ、大体分かればいいと思って適当にググッたんだけどな
445 :
nobodyさん :2007/01/17(水) 04:04:07 ID:gVMvFP3J
指定したIDのDOMElementを削除するにはどうすればいい? 教えてくれ。
ソースも出さない馬鹿は放置汁。
while (!feof($fp)) { $buffer = fgets($fp); echo $buffer; } ファイルポインタが次の行に進むタイミングって、fgetsが1行読み込んだ後ですか? fgetsは1行読み込むと同時にファイルポインタを1行進めるっていう関数でおk?
449 :
nobodyさん :2007/01/17(水) 11:27:29 ID:cKV9B/mv
あげ忘れ
ファイルポインタいうな
ファイルカーソゥ♪
functionに配列を適応することは出来ないのでしょうか? 例えば $array=array("あああ","いいい",ううう""); testFunc("$array"); function testFunc($array){ print_r($array); } としても表示されません。。
>>453 実引数がおかしいぞ。ダブルコーテーションで囲まずやってみそ。
testFunc($array);
>>454 出来ました!凡ミスだったんですね。。ありがとうございました。
Arrayって表示されるんかな?それは
外部変数の$_GETや$_POSTってあるじゃないですか ちょっとうまくいかないので、質問させてください。 $method = GET; $method = "_$method"; print_r($$method); これはprint_r($_GET);と動作は同じです。 通常これで外部変数が取得できます。 しかしメソッドや関数ないで上記を動作させると、 なぜか$_GETの配列を返してくれません。 メソッドや関数内ではprint_r($_GET)で配列を返してくれるため、 理由がわかりません。どうしてなんでしょうか?
array_searchって最初の値は無視する・・・わけないですよね? $array=array("りんご","みかん","バナナ"); $array2=array("りんご","みかん"); for($i=0;$i<count($array2);$i++){ if(array_search(,"$array2[$i]",$array)){ echo $array2[$i]; } } こんな感じのを作ったのですが、「みかん」しか表示されません。 それで、$array2の中を$array2=array("","りんご","みかん"); としたら「りんご みかん」と表示されます。どこかおかしいのでしょうか?
ほんとだ、関数内だと出ないんだね REQUEST使うか素直に分岐したら?
>>459 1番目の要素が見つかったとき返ってくるキーが0だからじゃね
462 :
459 :2007/01/17(水) 14:46:11 ID:???
>>460-461 とりあえずあまり対策がわからないので、
表示の際は array_unshift($array2,"");
として空の要素を追加するようにしました。
if(false !== array_search(...
465 :
459 :2007/01/17(水) 14:54:15 ID:???
>>463 こういう方法があったんですね!大変参考になりました。
こちらを使用します。ありがとうございました。
466 :
457 :2007/01/17(水) 15:00:31 ID:???
>>458 現在こんな感じです
function test () {
$method = GET;
$method = "_$method";
echo $method; //文字列"_GET"
print_r($$method); //出力されない
print_r($_GET); //出力される
}
test();
$method = GET;
$method = "_$method";
print_r($$method); //出力される
echo "<a href=?test=test1>GETの送信</a>";
>>457 なんでそんなトリッキーなことしてるのかが分からん。
しかもGETは定数扱い(定数定義してないから文字列として扱われるけど)だし。
初心者ほど色々試したくなるんだろう。 仕事でこんなんやってたらぶっ叩くわw
469 :
457 :2007/01/17(水) 16:51:21 ID:???
>>467 >>468 GETとPOST入れ替えるだけで、
外部変数が取得できると楽かなと
思っていたのもので・・・
>>460 REQUEST試してみたんですが、なんか変な
文字列が配列に入ってるので、
おっしゃるとおり、GETとPOST分岐してみます。
ありがとうございました。
言っておくが、この板で質問している全員が 職業プログラマというわけではないからな。
つーか「PHPが仕事」なんて、声を大にして言いたくないよね。
foreach内でin_arrayしたいのですが foreach($hoge as $key=>$var) { if(in_array($var, $hoge)) 処理; } とすると全てクエリがtrueになってしまいます。 foreach内で1つの要素をとるにはどうしたらいいでしょうか?
>>471 人の仕事を馬鹿にするような人間には言われたくないよね
>>471 つーか、PHPとかCとか言語にこだわっている時点で...ry
PHP"も"扱えてなんぼだろ
>>472 そりゃあ配列から取り出した値がその配列に存在するのは当たり前だ
何がしたいん?
>>476 あっ!!…そうか…
配列に同じ数が1つ以上入っていないチェックしたいのです
>>477 in_array
マニュアルの関数一覧か逆引きとかを買う事をオススメする。
array_count_values とかもいいかもね
>>471 煽ってやるからどんな言語だと声を大にできるのか言ってみ
>>480 このスレを見ている人はこんなスレも見ています。(ver 0.20)
SOHOとかフリーとかで細々食えだした奴 十九人目 [Web制作]
Ads by Goooooogle Part73 [Web収入]
疲れた管理人の憩いの場 23 [同人]
Ads by Goooooogle Part72 [Web収入]
組み込みプログラマーこそ真の一流!その4 [プログラマー]
>>471 は、「組み込みプログラマーこそ真の一流」と言いたいんだろ。プッw
482 :
471 :2007/01/17(水) 18:09:26 ID:???
どんだけ痛々しい反応だよ・・・もうちょっと自分の仕事に自信持てよ。
483 :
軟式PHP :2007/01/17(水) 18:19:26 ID:???
どこが痛々しいのか俺には分からん。別にPHPを絶賛してるわけでもないし。 まぁ、言語論争は他でやってくださいな。 仕事で使ってる人はPHPは手軽にWebアプリを作れる一言語でしかないわけですので。
「PHPも仕事」だろ。 だいたいPHPを生業としてるものは、 他の言語もできて当たり前。
PHPで符号無視(0埋め)右シフトって無理でしょうか? Javascriptで言うところの >>> が使いたいんです。
PHPは符号無し整数をサポートしていないので無理。 どうしてもMSBを使わなきゃならないなら、工夫汁。
>>477 チェックしてどうしたいかにもよるな
重複を取り除きたいならarray_unique()でいいし
$time_start = microtime(true); 処理 $time_end = microtime(true); $time = $time_end - $time_start; この経過時間を計る処理なんですが、 結果で4.6014785766602E-05って、このE-05とかE-06はなんなんでしょうか? 早いのか遅いのかさっぱーり分かりません。。。
今までは編集画面に値を渡す時など <a href="edit.php?id=<?=$id?>">編集する</a> のリンクから次のページに値を渡し、echo $idなどで表示していたのですが、 違うサーバで試した時、それでは動きませんでした。 それで後に次ぎページで表示する際はecho $_REQUEST["id"]としないと URL上の変数を表示出来ないみたいなのですが、 これはregist_globalがonになってないからですよね? また、今後はecho $_REQUEST["id"]という書き方で統一した方が良いのでしょうか?
regist_global は off が強く推奨されています
>>490 その場合は$_GET['id']を使用することをお勧めする。
>>492 わかりました。サーバを変更して初めて気づいたので
早速、プログラムのソース内全部書き替えます。
ありがとうございました。
494 :
nobodyさん :2007/01/17(水) 23:19:31 ID:I/eWBx8l
浮動小数点てどんなときにつかうんですか?タイマーの精度がintよりもいいってことですか?それとも小数点を使うためにあるのでしょうか?
495 :
nobodyさん :2007/01/17(水) 23:33:02 ID:gVMvFP3J
PHPでOOPできない奴いるの?
>>494 一般論で言えば理系の演算で用いられる極端に小さい数値や極端に巨大な数値を表現するためにある。
小数点を表現するだけなら浮動小数点以外にも固定小数点という仕組みも世の中には存在する。
固定小数点では誤差という問題が発生しないが浮動小数点では常に誤差の問題に悩まされる。
COBOLなどの事務計算向け言語では固定小数点方式が用いられている。
しかしPHPには浮動小数点以外に小数点を表現する仕組みは標準では用意されていないので
浮動小数点=小数点を使うためにある、という理解でOK。
>>495 そりゃいるだろ。
OOP専用の言語じゃないんだし。
498 :
nobodyさん :2007/01/17(水) 23:39:37 ID:gVMvFP3J
>>495 ページをパーツ毎に分離してincludeしてPHPってスゲーって使ってる奴もいるからな
>>498 自分がプログラムを始めた頃を思い出してみれ。
OOPもFWも言葉すら知らなかっただろ?
>>499 ____
, -‐.:.:.:.:.:.:.:.:.:.:.:.:‐- 、
/:.:..:.:.:.:.:.:.:.:.:.:.ヽ、:.:.:.:.:.ヽ
/.:.:,r─-----─¬尸:.:.:.:.:.:l
/.:.:/{-─、 _,─-尸:.:.:. ||
| i{ |!:.:.:.:.::|:.| えっ、phpてそれ以上にスゲー事できんの!?!
レー| ◯ ◯ イ:.:/.:/.:|rァ
{ ハ! ' ' ' ' 'ノイィ介//')
ト、j| r‐--─‐、 に'// /
ノ:ハ:.ヽ、 |/ ̄ ̄ } /-イ/ 厶
/ ̄ ̄ `ヽ:.:.\───' イ川:/ { /
/ \父_ー-‐ '´ /ノ.:.:/ | !
/ ヽ 〉 \ 厶‐、/ lノ
厂 \ / {⌒>'´ ヽ\ イ
/ \,-┴‐n< \ヾ |
502 :
485 :2007/01/17(水) 23:56:35 ID:???
>>486 回答Thanks!
やっぱり無理なのか・・・頭が痛いです
他の言語を使うことを検討した方がいいのかなぁ
503 :
nobodyさん :2007/01/18(木) 00:18:53 ID:u+PvmfUj
公式マニュアルを紙で欲しいのですが、 販売している所などございましたら教えていただけないでしょうか?
>>502 符号無し右シフト自体はできなくても、全く同じ答を出すことはできるよ。
最新情報が掲載されてるのが利点なのに製本なんて
>>498 PHPはOOP専用じゃないしフレームワーク専用でもない。
>>503 PHPのマニュアルは結構な頻度で更新してるから
できる限り紙媒体でなく本家を見るようにした方がいいよ。
509 :
503 :2007/01/18(木) 01:28:20 ID:???
レスありがとうございます _ _
>>504 それも考えたのですが、製本作業をしないと見づらそうなので。
>>506 >>508 一度読み通すために紙媒体が欲しくて。。
無いようなので、製本サービスに依頼するか、電子ペーパーブックを検討してみようと思います。
ありがとうございました。
510 :
ふ :2007/01/18(木) 01:42:54 ID:QmQzu1gN
PHPに慣れたいんじゃなくて、本家マニュアルの内容を一度に読む行為そのものが目的なのか?
リファレンスマニュアルを頭から全部読んでざっと機能を把握するのは基本中の基本のはずだが。
きっと山篭りで修行するんだろ。 インターネットが使えないから、仕方なく製本したいんだ。
514 :
nobodyさん :2007/01/18(木) 03:17:34 ID:dfwRUKzs
IIS6.0(WindowsServer2003),MySQL ASPとMySQLを連携させて、既にHPを作っています。 さらに機能を拡張させるため、PHPを導入しようと思いまして、 設定でISAPIフィルタに「php5isapi.dll」を読み込ませたのですが それをすると元のHPが表示されなくなってしまいます。 原因が分かる方いましたら、よろしくお願いします。
>>512 プログラミングでそういう基本はあんまり聞いた事が…
書いて覚えろよ
>>515 そんなことしてたら言語の特徴やら機能の全体像を把握できない。
歯抜けの断片的な知識なんかより、2〜3日かけてリファレンスを
熟読して全体像を把握した方が断然早いし楽。
…素人さんなら別だけどね
PHPはやたら標準装備の関数が多いのと、 同じ機能で複数のI/Fの関数があったりするんで リファレンス全体に1度目を通しておくのは確かに基本。 書いて覚えようとすると知識が偏る。
他の言語経験者で紙に印刷して2、3日ってえらい奇特だな
素人さんじゃない人は何さんなの?
>>503 の質問のレベルからしたらおそらくプログラミング初心者だろ
いきなりリファレンス通読はやめといたほうがいいんじゃ
初心者ならマニュアルじゃなくてチュートリアル系から始めろっちゅーとりある
523 :
nobodyさん :2007/01/18(木) 10:49:38 ID:Ra9i1bGq
カレントURL(現在のURL)を取得して そのURLがhttpかhttpsかで条件分岐 したいんですが どうやってカレントURLを取得したらいいのかがわかりません (PHP4.3.2) 何か良い方法をご存知の方 ご教授いただけると幸いです
525 :
457 :2007/01/18(木) 12:00:47 ID:???
POSTってフォームのsubmitボタンを使わなければ、 送信できないんでしょうか? GET見たいにリンク形式では不可能ですか?
それはGETだ
フレームワーク、smartyをまったく使ったことのないけど、 それらを使うプロジェクトで即戦力になるかな
>>525 PHPとは全く関係ないけど、JavaScriptで可能。
529 :
457 :2007/01/18(木) 12:13:30 ID:???
>>523 $_SERVERの中身に全部入ってるよ
hoge.comというサーバで、
http://hoge.com/a/b/c/d.html というリクエストあったら、
hoge.com/index.php
実行して、「a/b/c/d.html」は変数として受け取りたいんだけど、
そういうことはPHPだけでは不可能ですか。
やっぱりサーバ設定しないとだめですよね。
サーバはindex.htmlと、index.phpを自動的に表示するようになってる。
>>531 普通にできるんじゃね?
$SERVER['PATH_INFO']とか
配列操作の質問なのですが、 $arr['d']='a'; $arr['c']='b'; $arr['b']='c'; $arr['a']='d'; とあったとして、ループを $arr['b'] からはじめたいのですが、 どうやったら効率がよいでしょうか。 current($arr); とか each($arr); だと先頭の $arr['d'] の値を返して、 配列カーソルを1つ勧めるわけですが、一気に $arr['b'] から始めたいのです。 キーが 'b' だということはわかっているので。 php だとキーが数字じゃなくても、実際順番はあるわけで、 $arr['b'] のポインタは 2、 みたいなかんじで取得できてもおかしくないとは思うのですが、どうにも見つからないもので。
追記:本当のキーは 'b' → 'a' のような規則性があるわけではありません。一応。
smartyの section内で$hoge[$foo]みたいなことしたいのですが、どのようにやれば出来ますでしょうか? {section name="val" loop=$data} {$hoge.$foo[val].name} {/section} でできませんでした…
スマートリーなるほどを話は専門スレッドへどうぞ。なるべく専門スレを活性化させてください
お、便利だなそれww phpをhtmlとして表示とか、できそうだねw 偽装しまくろぅwww
オートログインサイトを自鯖に作りたいと思っています。例えば ヤフーオークション ID / Pass 【ボタン】 楽天 ID / Pass 【ボタン】 イトレード証券 ID / Pass 【ボタン】 のようなフォームを作り【ボタン】を押すと、新たなブラウザ(タブ)が開き Yahooオークションのページへ進み、IDとPassが自動で入力され、ログイン後の画面に進む このようなスクリプトをこしらえたいのですが、どういうロジックで進めばいいか悩んでいます fopenでYahooオークションのURLをひっぱり、ソースにIDとPass情報を追加させて、HTMLを表示させようとしたのですが無理でした・・・ 皆様のご意見お願いします
>>542 自分用です
実際、IDとPassはDBにMD5で格納してそれを呼び出す感じですが
どうにも既存サイトのIDとPass入力を自動化させるスクリプトが思いつかないのです
544 :
523 :2007/01/18(木) 15:31:09 ID:Ra9i1bGq
>>530 >>532 ご回答ありがとうございます
ちょっと予定とは異なりますが リンク元のURLを表す$_SERVER["HTTP_REFERER"]
を用いました
現在のURLではなかったため 結構大変でしたが 何とかできました
ありがとうございました!
>>537 {$hoge.$foo.val.name}
とかでできんじゃない?
つかったことないけどw
>>544 $_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]
とかじゃだめなん?
>>543 > 無理でした・・・
じゃ、何が無理なのか不明。
> IDとPassはDBにMD5で格納してそれを呼び出す感じ
MD5は復号できないから、なにをしたいのか全くわからん。
>>544 referer は送ってこないクライアントもあるから
これを前提に設計しない方が
>>547 >じゃ、何が無理なのか不明。
頭の中で描いてみたら、ソースにIDとPassを追加させて保存
保存されたHTMLってYahoo鯖にはないわけだから当然弾か
れるという結論になって無理と書きました
MD5はそうですね・・・そうですよねorz
どうしたもんだか、、、時間ばかり過ぎていく
>>549 それらのサイトを見てはいないんだけど、
ログインのページにあるフォームをPOSTしてやるスクリプトじゃ駄目なの?
>>535 実際の値とソース見ないと分かりにくいよ
foreach内で
continue;
break;
を工夫してみれば?
552 :
nobodyさん :2007/01/18(木) 19:41:58 ID:YjXpax59
553 :
nobodyさん :2007/01/18(木) 19:42:52 ID:tMFu2Al5
フィッシングサイトいくない
555 :
nobodyさん :2007/01/18(木) 19:47:53 ID:YjXpax59
>>554 有難うございます
.htaccessでできると思ってました^^;
・・・なのであきらめます
apacheのモジュールでmod_rewriteが有効になっていて .htaccessが使える環境であれば mod_rewriteは.htaccessで出来るよ。
DNSも設定する必要があるんじゃない?
>>555 の 「.htaccessでできると思ってました^^;・・・なのであきらめます」というのは
「サブドメインの設定は.htacessで出来ると思っていたんだけど、出来ないから諦めるよ」っていうことかも。
DNSの話だろ。スレ違い。
560 :
nobodyさん :2007/01/18(木) 22:29:27 ID:98uytmcY
初心者ですが はてなダイアリーみたいに 自動でキーワードリンクがつく プログラムを作りたいんですけど どう書けばいいですか? 仕組みがまったく想像できません。
キーワードを探してリンクに置換すればいいじゃない
562 :
nobodyさん :2007/01/18(木) 22:53:21 ID:98uytmcY
その仕組みがわかりません。
おかえりください
>>562 どこまで考えたか言ってくれればアドバイスできる
簡単なスクリプト書いてやりたいけど携帯からだから、コード書くのツライな…
どこまで考えたとか、ソースを示さないと丸投げだろ。 ここは一応プログラムを作る人のスレだし
568 :
nobodyさん :2007/01/18(木) 23:35:49 ID:ZHXjE+dx
キーワードリンクに変えるだけなら簡単じゃん。 キーワードサーチしてあったらアンカーで囲って URLにキーワードのクエリ入れればOK。 キーワード登録の仕組みと、キーワードに何でもかんでも登録できないように 制限を考えるのが面倒そうだ。 はてなは日記を何回も更新しないと、キーワードの記者には なれないって仕組みで対処してる。 接続詞とか、1文字とか全部弾かないとダメだな。 じゃないと全部キーワードになっちまう。 後、キーワードリストの並び順を文字数が少ない順に一回ソートしないと キーワードリンクの中にキーワードリンクが入っちまう。 でも実際は長いワードにマッチした方が実用的だ。 一回マッチしたらその中はマッチさせないとか必要になってくるのかな。
keywordlist 落としてみたけど 正気の沙汰とは思えないサイズだ はてなってやっぱスゲーな
キーワードが100個とか程度だと単純な実装の力業で全単語を順に舐めればいいだろうけど、 これが数万とか数十万オーダーになったらどうなる? あとキーワード中にたとえば「電話機」と「電話」ってのがあったとして、 どっちをマッチさせる? 通常最長の方だけど、どう管理する? とか考え始めると一筋縄ではいかない。 はてなはすごいと思いますよ。
リアルタイムでやらなきゃいいんじゃん? 投稿があってから、長い処理を経て、結果が保存されて 閲覧はその書き出されて固定されたデータとか。 1週間に一回くらい書き直していくとか。
うん。まあ規模が大きくなったら、複数のマシンで手分けして処理するようにするとか、 文書と単語のハッシュを巨大なbitにマップして文書に 単語が含まれているかどうか単純なand演算だけでフィルタしたりとか(これはPHPでは面倒そう…)、 いろいろやりようはあると思う。 リアルタイムでやらなきゃいいってのも一つの手だけど、 どれくらいの頻度で文書が増えていくかにもよるよね。
>>543 オレがやってたネトゲはホームページ上からログインして
メンバーページからクライアントプログラムを起動するんだが、
メンバーページまでのログイン処理をやってくれるjsスクリプトなら誰かが作ってくれてたよ
php関係ないからsage。
574 :
560 :2007/01/19(金) 01:53:53 ID:74ZAn3Ei
キーワードリンクは 初心者には無理っぽいので あきらめます。
>>540 file_get_contents使ってページの内容を読み込んで、
onloadされたらID/PWを入力してsubmitするJSをphpで仕込んで表示すれば良いんじゃね?
>>551 いや、foreach, continue, break では一気にすっ飛ばす要素がどこにもないわけで。
$arr['d']='a';
$arr['c']='b';
$arr['b']='c';
$arr['a']='d';
$keys = array_keys($arr);
$i = array_search('b', $keys);
// $arr[$keys[$i]] == $arr['b'] == 'c'
// $arr[$keys[$i+1]] == $arr['a'] == 'd'
こんなかんじにすっとばしたいわけです。
が、array_search はおそらく順繰り比較していると思うので $i を見つけるまでに時間がかかる。実質すっとばしていない。
$arr['b'] は即座に値を見つけられるわけで、即座に $arr['b'] のポインタ (current) を見つけられてもいいのにな。という話です。
577 :
nobodyさん :2007/01/19(金) 02:37:09 ID:1l3/TpIO
578 :
nobodyさん :2007/01/19(金) 03:34:43 ID:/UQbmip1
検索ワード取得したいんですが、 専用の関数ってありますか?
またお前か
ハテナ社員による釣りがようやく終わったか…
>>578 GoogleのDBに不正アクセスする。
っていうか常識的に考えて無理だとわかる質問はしないでくれよ。
582 :
nobodyさん :2007/01/19(金) 07:28:19 ID:/UQbmip1
無理なの? 既存のアクセス解析ツールなんかだと リファラと検索ワード取得できてるけど・・・。
そこまでわかってるなら関数さがしてないで自分でつくれるだろ。
>>582 専用関数はあるかどうかしらんが、その方面ならできるね。
GoogleだとエンコーディングはたしかUTF-8で、
それがリファラにURLエンコーディングされた形で渡ってくる(こともある)から、
そいつを記録しとけばいいんじゃないの。
とまあ、以上にちりばめたキーワードで適当にぐぐれば何かとヒントが出てくると思うよ。
>>573 それです!!
どこかにサンプルコードないでしょうか><!!
573もスレ違いっていってんじゃん
>>586 そこをPHPコードでおねがいします!! ><
ただ、フレームごしに処理すればいいんじゃないのか? っていうか自分用ならSleipnirのスクリプトを書いた方が早いし簡単。 既存のものでAutoLoginとかあるし。
>>588 いや、作りたいのです
そもそも、自動ログインの仕組みが知りたいのです><
パスワードのvalue="12345"をvalue="*****"にするにはどうすればできる?
>>591 画面上はそれで*になるけどソースを表示するとvalueの値が丸見えになるんだけど・・・
値を****に変換してvalueにいれればいいじゃん。 ま、サーバーには「****」が送られるけどw ソースを見る時だけ「****」で、値は「12345」を送るなんて都合のいい事は無理だがね。
>>592 何が目的なのかさっぱりわからん。
画像公開したいけど、保存させたくない
っていう矛盾
596 :
nobodyさん :2007/01/19(金) 10:22:43 ID:SA/XQFQX
最近PHPのメールフォームから 英文のスパムが来るようになりました 日本語を含む文章だけ送信できるように 改造したいのですが どういう文章を追加したらよいか教えてください。
>>596 厳密なものではないけど、正規表現で、ひらがなが一文字もない場合は
エラーとかでいいんじゃね?
>>595 管理画面でいろんな人のIDやパスワードを保存してあるんだけど
べつの人の情報も見れるようにしてあるのでパスワードは見られたら
困るから*にしてばれないようにしたい。
>>598 それ、別に表示させなければいいんじゃね?
それもありだけどいまのままでいってパスワードを*にするのは無理?
そんな頭の悪い質問を繰り返すなw
>>600 基本的に、デフォルトで表示させたいなら無理。
逆に、なんのために***を表示させたいの?
MySQLのダンプファイルをパースしてくれるクラスやライブラリはありませんか? 探すと小規模なものはいくつか見つかるんですが、一般的なものってあるんでしょうか?
>>600 目的が分からん。
HTMLのソースにも入れない=送信不可能、になるわけだけど、データの送信は不要なの?
だったら単に<input type=text value="*****">でいいと思うけど。
いっそ<input>も使わず*****と直接書いちゃってもいいと思う。
>>598 パスワードを暗号化(又はハッシュ化)しないで保存するのはセキュリティ的にNG…
というのが、定説。
なんでパスワードなんか表示する必要があるのかわからん。
しかも<input>タグで…。
結論 あほすぎる
あー、もしかして [名前フォーム] | [パスワードフォーム] で一覧表示していて、変更可能になっていて、空にしちゃうと Submitするときに全部カラになっちゃうからデフォルトで入れたいとかエスパーしてみる。
>>596 全角を含まない文字列なら
mb_strlen($str) != strlen($str)
でいける
609 :
nobodyさん :2007/01/19(金) 12:08:13 ID:+33hGGFp
わがままだね
変数からキーのみを取り出すことって出来ますか?
配列からキーのみを取り出すことなら出来るよ。 詳しくはマニュアルへ。
$array = array(10, 100, 1000, 10000, 100000); $int = 4789; こんな感じのソースで、 $intに一番近い数字を配列の中から探し出したいのです(この場合1000) そんなことを簡単に実現するような関数はありますか?
>>614 標準関数は無いだろうな(私は知らない)
ループして、$intとの差を順番に比較していって
一番差の少ない値を求めるしかないんジャマイカ?
>>617 意地悪で不親切だから
せめて関連する関数くらいおしえてやれよ
>>618 「配列」って一応キーワードを入れたつもりだったんだが。
関数名より、マニュアルトップページから検索出来る方がいいと思って。
620 :
614 :2007/01/19(金) 15:44:09 ID:???
>>616 どうもありがとうございます。
なさそうとのことなので、その方法でやってみたいと思います。
621 :
616 :2007/01/19(金) 15:44:22 ID:???
>>614 適当に書いてみた。
$arrays = array(10, 100, 1000, 10000, 100000);
$int = 4789;
rsort($arrays);
$minimum_diff = $arrays[0];
foreach($arrays as $val){
$diff = abs($val - $int);
if($minimum_diff > $diff){
$minimum_diff = $diff;
$minimum_val = $val;
}
}
print $minimum_val;
Gmailに自動ログインさせるJSをみつけてきました (XXにID ZZにPWを入力) ## JavaScript:(function(){document.body.innerHTML=document.body.innerHTML.replace ## (/NAME="Email" VALUE=""/g,'name="Email" value="XX"'); ## document.body.innerHTML=document.body.innerHTML.replace ## (/TYPE="password"/g,'type="password" value="ZZ"'); ## document.forms[0].submit(); ## })(); これのPHP版は作れないものでしょうか?
>>622 いい加減、サーバサイドとクライアントサイドの区別をつけよう。
624 :
614 :2007/01/19(金) 15:55:55 ID:???
>>621 わざわざ書いていただいてありがとうございます。
早速使わせていただきますー
変数に意図的に型宣言することはできないのでしょうか?
>>625 宣言はできないね。
キャストしてやることはできるけど。
>>623 了解。やはり無理ですね。諦めました。お手数かけました(吊
>>626 やっぱ無理ですか。
いつか型付けも実装してほしいなぁ。
静的型付けが実装されるってことは、全部の変数に型宣言つけなきゃいけないってこと? 面倒くさくて嫌だなぁ。
静的な型付けなんて、利用する場面がすくないからPHPでは 実装されないだろう
利用する場面っていうか、静的型付けじゃないと気持ち悪い。
632 :
nobodyさん :2007/01/19(金) 17:54:10 ID:P38t/vZn
静的型付けを出来るだけ意識して作ることは出来るんじゃね。 どうしても嫌ならjavaでもやればいいと思うが
変数にそれらしく付けれ。 $iXXXX … 整数型 $strXXXX … 文字列型 など
fsockopenで開いたソケットで「test」「guest」「pass」と個別のパケットで受信した場合に 「test」「guest」「pass」を分けて変数に入れたいのですが、どうすればよいでしょうか? よろしくお願いします
635 :
nobodyさん :2007/01/19(金) 21:48:04 ID:3c0iN0iL
DB.phpがincludeされません ディストリはsuse10.0です。 よろしくお願いします。
こちらこそよろしくお願い致します。
638 :
nobodyさん :2007/01/19(金) 22:54:39 ID:XwzELT8l
最近、画像ファイルのアップロードでPHPを使おうと思ってるのですが、 HTMLフォームを利用しないでアップロードできないでしょうか? (要するに、参照せずに自動的に任意のファイルをアップロードしたいのです。) どうでしょう? 可能ですか?
するとそのアップローダを置いた人は ユーザの任意のファイルを自動で手に入れられる訳ですね。
phpでウィルスは作れないだろw
641 :
nobodyさん :2007/01/19(金) 23:06:06 ID:XwzELT8l
>>639 640
そうなっちゃいますね。。。
画像ファイルだけなんですけどね。取って来るのは。。。
無理ですね。。。はぁ。
やっぱ、素直にFTPとかで画像ファイル送るしかないんかな。
643 :
nobodyさん :2007/01/19(金) 23:27:38 ID:3c0iN0iL
DB.phpがincludeされません ディストリはsuse10.0です。 よろしく説明お願いします
>>643 それだけじゃようわからないから
おちょくられているのがわからないのかwww
>>641 はあ。。。何言ってるんだろうこの人。。。
色んな意味で無理だわ。。。はぁ。。。
647 :
nobodyさん :2007/01/20(土) 01:12:42 ID:/6Q5JJje
>>644 同じプログラムをれんさばで動かしたら
動いたのでサーバー側の問題だと思います。
エラーメッセージはあとでアップするので
おねがいします
にせものは、やめて、ください!(><)悲
650 :
nobodyさん :2007/01/20(土) 10:29:45 ID:+1gEJG5n
PEARじゃありません。PHPのディレクトリに入ってるファイルです。 ここの方達で解決できないような難題だとしたら教えてgooで聞いてきます。
PEARじゃありません。APPLEです。
すみません。 PEARでもAPPLEでもなく 僕はCHERRYでした。><
fopenでURLを読み込んでfgetsする時、fopen先のURLが
Shift-JISの場合、文字化けします。(元ファイルがEUC-JPの場合)
mb_convert_encodingを使うと思うのですが、どの部分でどう使えば
適応されるかわかりませんし、うまく行きませんでした。。
例えば下記のようなソースの場合、どうすればいいのでしょうか?
$fp=fopen("
http://***.com ");
$line=fgets($fp);
print_r($line);
655 :
nobodyさん :2007/01/20(土) 11:59:13 ID:2R+sYSL0
クラスの中で $this->hoge() を呼び出すと、 派生クラスで hoge() がオーバーロードされたいた場合 派生クラスの方が呼び出されるんですか? 自分のクラスの中のメソッドを明示的に呼び出したいなら self::hoge() とすべきですか?
657 :
nobodyさん :2007/01/20(土) 12:31:50 ID:+1gEJG5n
>>651 PHPのディレクトリって、どこだ?
/usr/local/lib/php
とかだったら、PEARなんだがねw
658 :
nobodyさん :2007/01/20(土) 12:39:30 ID:apT1PIiM
突然すみません、ADSServiceって何でしょうか・・・ Cドライブにいつの間にかADSServiceっていうテキストファイルが作られてました。 他にも似たようなファイルが3つくらいありました、スパイウェアか何かでしょうか、ものすごく怖いですTT
659 :
nobodyさん :2007/01/20(土) 12:53:40 ID:apT1PIiM
板間違えましたm(. .)m
アハハ、こやつめ!
661 :
nobodyさん :2007/01/20(土) 16:25:17 ID:dyYgBfVX
はじめまして。 今日はじめて、phpをインストールして。 テストで、print("hello"); こんなかんたんな、出力をさせました。 そして、IEを終了させると、 "問題が発生したため、IEXPLORE.EXEを終了します。〜" なんてのが現われます。 原因としては何が考えられますか? すみません、こんな質問ですがお願いします。
663 :
nobodyさん :2007/01/20(土) 16:35:34 ID:dyYgBfVX
あ、そうなんですか? 糞初心者ですみません。 となると原因はなんなんでしょうか?
>>663 あの〜〜、問題も何も「IEを終了させると、」だから、
「 "問題が発生したため、IEXPLORE.EXEを終了します。〜" 」
って出るのは普通だろ。それで終了しなかったら異常事態だが。
file() で得た文字列はシングルクォートでくくったのと同様のようですが、 これをダブルクォートくくり相当にするか、シングルクォートでくくった文字列の中の変数名を パースする方法はありますか?
>>665 str_replaceでダブクォをシンクォでパースするとか。
>>665 文字列をダブルクォートで括ってevalに渡す
668 :
nobodyさん :2007/01/20(土) 16:48:48 ID:jfiH3bl8
www.example.com/index.php?word=a%27b%22c このwordの文字を「a'b"c」と表示させることはできたのですが URLの文字をそのまま「a%27b%22c」と表示させることができません。 簡単にスクリプトを書きましたがうまくいきませんでした。 <?php $word = $_GET["word"]; print $word; ?> あといろいろやってみましたがうまくいきませんでした。 先輩方、よろしくお願いします。
urlencodeがあるじゃん $_GETとかはデコードされたデータだから
ゆとり言語の弊害ですなw
>>663 IEが糞
だと思う
>>668 お前の先輩になったつもりは無い
print_r($_SERVER)
で所望のが出るような気がする
672 :
668 :2007/01/20(土) 17:08:58 ID:???
>>669 さん
ありがとうございます。
しかしながら
<?php
$word = $_GET["word"];
$word = urlencode($word);
print $word;
?>
とやってみましたが
「a%5C%27b%5C%22c」と表示されてしまい
「a%27b%22c」とは表示されませんでした。
「a%27b%22c」と表示させたいので
「a%27b%22c」と表示させるにはどうしたらいいでしょうか?
>>672 >「a%27b%22c」と表示させたいので
>「a%27b%22c」と表示させるにはどうしたらいいでしょうか?
echo "a%27b%22c";
675 :
668 :2007/01/20(土) 17:29:40 ID:???
echo urldecode($word);してみ
$word = "a%5C%27b%5C%22c";でな
678 :
nobodyさん :2007/01/20(土) 17:39:21 ID:KP/kHuU7
質問です。 「PHPによるデザインパターン入門」を読みながらデザインパターンを勉強してるのですが、 シングルトンパターンを使った場合、どのレベルでただ一つのオブジェクトとして機能するのでしょうか? 例えば、「そのPHPの動いているパソコンでただ一つ」なのか、 それとも「いま接続しているユーザーのsessionの中でただ一つ」なのか? それとも「いま実行してるファイル内においてただ一つ」なのか? ご存知の方いらっしゃいましたら、お教え願います。
679 :
668 :2007/01/20(土) 19:18:33 ID:???
>>676 >>677 urlencodeしたデータをurlencodeでしょうか?
それをやってもだめでした…
>>679 urlencode($_GET["word"]);
682 :
668 :2007/01/20(土) 19:45:22 ID:???
decodeだろ エンコードしたらデコード。これ定説
簡潔に質問を書きます。 index.php?hoge=a%27b%22c というURLのGETの変数hogeのデコードされてないデータ「a%27b%22c」をHTMLに表示させたい。 要するに「a%27b%22c」をHTMLに出力したい。 #他の質問でもそうですけどわからない人はレスしないでください #こういうこと書きたくなかったけど鬱陶しいレスが多いので…
>>684 この質問したのは
>>668 だけど、それ以来ID出してないので多分ニセモノ
構わないように
686 :
684 :2007/01/20(土) 20:46:48 ID:???
>>685 の言う通り
もう構わないでください。解決しました。
やはりというか、自分で調べたほうが勉強になりました。
しかし他の質問でもそうだけど、質問の意味も理解できずにレスするやつ鬱陶しいよね
質問する方も答える方もそんなに頭良くないんだから文句言うな
おれもその内の一人かよ!!
なんでクラスのメンバ変数はfinalとか付けて継承を止めることができるようになってないんだろう?
691 :
nobodyさん :2007/01/21(日) 11:08:16 ID:Y0OZFz+S
PHPには、PerlにおけるCGI::Carp qw(fatalsToBrowser)のようなエラー出力関数はありますか? あれば教えて頂けると幸いですm(_ _)m
692 :
nobodyさん :2007/01/21(日) 12:11:17 ID:08MwJFVu
自宅winXPにアパッチ入れて、phpの勉強してたら 突然プログラムが実行されなくなりました .phpを保存か開くか質問するダイアログがでます 何が原因でしょう?わかる方教えてください ちゃんと動かなくなった時に動かしてたプログラムは フォームに名前を入力して送信→同階層の.phpで受けて 送信した名前を表示するものです その後はhello worldすら実行しなくなりました 助けてください、よろしくお願いします
OSが壊れたな
vistaにしないと直らない
695 :
nobodyさん :2007/01/21(日) 13:14:06 ID:7pzdx2CI
<?php $fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr); if (!$fp) { echo "ERROR: $errno - $errstr<br>\n"; } else { print "$fp"; } ?> このようにUDP接続を行い、目的のデータを取得しようとしているのですが上手くいかないのです 具体的にはResource id #等と表示され目的のデータを取得できません どのようにすれば取得できますか?
697 :
nobodyさん :2007/01/21(日) 13:22:43 ID:7pzdx2CI
>>696 そこのテンプレート通りにやってもうまく行かないのですが・・・
嫁
>>697 やってないじゃん
fsockopen関数の返り値は何でしょう
つか本文嫁よ
700 :
nobodyさん :2007/01/21(日) 13:54:37 ID:HMt1hfg+
>>699 ファイルポインタですか?
>>697 で言った通り
テンプレ↓
<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
echo "ERROR: $errno - $errstr<br />\n";
} else {
fwrite($fp, "\n");
echo fread($fp, 26);
fclose($fp);
}
?>
でやってもうまく表示されないんです
702 :
695 :2007/01/21(日) 14:04:56 ID:???
失礼しました
windowsXP sp2
PHP4.4.4
サーバは 04Webserver
です
>>700 の通り行った結果→タイムアウト(ページが表示できません)
俺はfsockopen詳しくないけど、とりえあず原因の切り分けしてみれば? localhostに接続できてるのか、$fpは取れているのか、書き込みで失敗しているのか
質問者がsageで書くなバカ
>>692 httpd.confの中のphpに関する設定
>>702 04WebはUDPに対応していない、別の鯖ソフトでやれば解決するぞ
707 :
695 :2007/01/21(日) 14:27:59 ID:???
708 :
nobodyさん :2007/01/21(日) 14:51:24 ID:08MwJFVu
>>705 ありがとうございます
ただ、おかしくなる前と今でhttpd.cofに変更を加えてないんです
同条件で動かなくなりました
まだ試してみますが、他の可能性についても気が向いたら教えてください
709 :
nobodyさん :2007/01/21(日) 14:52:40 ID:xp0A917W
>>708 httpd.confが変更されてないことを確認した?
710 :
nobodyさん :2007/01/21(日) 17:38:28 ID:Fae6i/Oz
$aaa = "<!--UNKO_START-->"; とするとき、正規表現を用いてUNKOを他の変数に代入することは出来ますか? // Perlにおける↓のようなもの $aaa =~ s/<!--(\w+)_START-->/$aaa/g; // $1にUNKOが代入される
できます
712 :
nobodyさん :2007/01/21(日) 17:50:02 ID:Fae6i/Oz
どのような記述で出来ますか?
正規表現の記述で
すみません。PHPというか、プログラミングのうまいやり方がわからず、質問させていただきます。 現在、データベースにcategoryというテーブルがあり、格納されているデータは、 手動で数字インデックスを0から順に連番で付与して格納する仕様にあります。 当然ですが、そのテーブルから一行データを削除すると、 通常、連番でなければならない数字インデックスが、削除したデータの数字が飛んでしまいます。 この飛んだ数字を埋める為に、その削除したデータ以降のデータの数字インデックスを 一つずつ繰り上げたいのですが、スマートなコーディングが思い浮かびません。 現状は、一度削除した後に、再度、全データをfindして、ループでまわしながら、 全てのデータに0から順にupdateをかけて、その場をしのいでいます。 サーバ負荷の面からも、コードの可読性の面からも凄く泥臭いやり方になっています。 このようなコーディングをする場合は、何かうまい方法がないものでしょうか? みなさまのお知恵をお借りしたく書き込みさせていただきました。 なお、現在のプログラムは、直ぐに書き込みいたします。
715 :
714 :2007/01/21(日) 18:12:54 ID:fPPKNR2L
$comp_category = DB_DataObject::factory("public.category"); $comp_category->whereAdd("base='$base'"); $comp_category->whereAdd("key='$key'"); $comp_category->delete(TRUE); $comp_category->whereAdd(); $comp_category->whereAdd("base='$base'"); $comp_category->orderBy("num"); $comp_category->find(); $comp_category_update = DB_DataObject::factory("public.category"); for($i=0;$comp_category->fetch();$i++){ $comp_category_update->whereAdd(); $comp_category_update->whereAdd("key='".$comp_category->getkey()."'"); $comp_category_update->num = $i; $comp_category_update->update(TRUE); } 宜しくお願いいたします。
716 :
714 :2007/01/21(日) 18:16:30 ID:???
すみません。 変に改行が入ってしまって、凄く読みにくくなりました。 申し訳ございません。
普通、そういう連番は自動で振ります。 一行データを削除した場合は、番号が抜けたままにします。
>>714 update category set num = num - 1 where 削除したやつ以降
つーか、その連番は本当に絶対必要な仕様なのか?
あるレコードに付与された番号が時とともに変化すること自体、かなりわかりにくいと思うんだけど。
php じゃなくて db の設計の話じゃないの? うちは実際は削除はしなくて 削除フラグ立てるだけにしてるけど
720 :
714 :2007/01/21(日) 18:29:13 ID:???
>>717 お返事ありがとうございます。
シリアルによる連番は、この数字インデックスとは別に付与されています。
この数字は、テーブル内の同じ型のデータ内の連番インデックスなのです。
以下のような感じになります、
・グループAのデータが0〜5まで、連番である。
・グループBのデータが0〜6まで、連番である。
・この2つのグループは、同じcategoryテーブルに格納されている。
・自動付与の連番は、別に存在して、それを触る事はできない。
宜しくお願いいたします。
そこを連番にしなければならないという、 設計の方が悪いとしか言いようが無い…
722 :
714 :2007/01/21(日) 18:34:24 ID:???
>>718 ありがとうございます。
やはりそういう感じで回すしかないですね。
この連番は、DBの仕様であって、自分ではどうする事もできない、おかしな仕様です。
>>719 そうですね。元を辿れば、DBの設計の問題なんですが…
このデータは、頻繁に削除され入れ替わるものですので、削除フラグで保存しておくと、
かなり肥大してしまう恐れがあります。
723 :
714 :2007/01/21(日) 18:47:29 ID:???
書き忘れましたが、この連番インデックスは、互いに入れ替わる事もあります。 例えば、現在4のインデックスを持つデータが1のインデックスを付与され繰り上がり、 それ以降のデータは、順番に数字がずれていく感じです。 DBの設計の問題かな?とも思いますが、これらの仕様を満たす、 よりよい設計も思い浮かばず、泣き寝入り状態になっています。
どうしても変えられないならSQLとPHPで頑張れば何とか
725 :
714 :2007/01/21(日) 18:56:51 ID:???
みなさん。ありがとうございました。 徹夜で頭をひねって、もっと簡潔なコーディングができるDBの仕様を考え、提案してみます。
画面表示のときに連番を振ればいい。テーブルにもたせる必要はない。 と俺は考えるが。
727 :
nobodyさん :2007/01/21(日) 19:55:13 ID:Fae6i/Oz
くだ質ですが気になったので質問します。 最近、PHPで構築されたっぽいサイトを見るとURLが ファイル名.php?m=Kjifsk&p=Fgfkif みたいな形式のサイトが多いですよね?ファイルは1つでincludeして各動作を 読み込む?のかよくわかりませんが。perlっぽい使い方な気がして。 (OpenPNEとかそんな感じかも。) それで、なぜそういう風に=以下に識別コードか何かを付けて動作させるような 形式になってきているのでしょうか?単にindex.phpとかform.phpとかではなく。 やっぱり、セキュリティに関連するのでしょうか?
CMSを利用することが多くなったんじゃない?
つ [デザインパターン J2EE フロントコントローラ ]
731 :
647 :2007/01/21(日) 20:32:37 ID:0sqXUt7p
647以降の書き込みは偽者です。 DB.phpの話ですがPEARのライブラリです。 これはレンサバでは問題なく動きます。 ブラウザにcookieを食わせたいんですが ひとつのcookieに複数の値を設定する方法 (aaa=php&bbb=ohmygod こんな形の一つのcookieを作る方法です。) が分かりませんので ご指導お願いします。
732 :
728 :2007/01/21(日) 20:49:11 ID:???
>>729-730 730さんの語句をググって見ましたが、なんとなくわかってきたかも。
要はファイル・機能のリクエスト(アクセス)を分散させると
それだけ負荷がかかりやすいから、1つにまとめてそこから
各部位を呼び出すようにコントロールすると言うことですね。
確かにその方が良いような気もするけど、開発している側としたら
どれがどのファイルか分かりづらくなる時もあるんですよね。。
それに単純に1ファイル毎に用意する方が使いやすいし。
とりあえずもう少し勉強します。ありがとうございました。
>>732 お前は凄まじいくらいに時代を逆走してるなw
いまどき1ファイル毎に処理する所なんてあるのか?
MVCどころか、オブジェクト指向ですら完全無視かよww
つ初心者
737 :
nobodyさん :2007/01/21(日) 22:05:45 ID:L6gn7cYV
すいません初心者ですが レンタルサーバーを借りてプログラムを公開しようとしてますが データベースにアクセスできません。 自分のパソコンでは正常に動いていました。 <?php require_once 'DB.php'; $dsn = "mysql://hibinotatsuya:(パスワード)@localhost/hibinotatsuya "; $con = DB::connect($dsn); if(DB::isError($con)){ exit('DBの接続に失敗しました'); }else{ echo('成功'); } ?> Warning: main(DB.php) [function.main]: failed to open stream: No such file or directory in /home/hibinotatsuya/public/www/test.php on line 2 Fatal error: main() [function.require]: Failed opening required 'DB.php' (include_path='.:') in /home/hibinotatsuya/public/www/test.php on line 2 こういうエラーがでるんですがどこを直せばいいでしょうか?
require_once 'DB.php'; ↓ require_once '/home/hibinotatsuya/public/www/DB.php'; パスが通ってないんでしょう。 上記と違う場所に置いてるなら正しい場所を絶対パスで指し示してみること。 つーか、本名を2chに書き込まないでください
739 :
765 :2007/01/21(日) 22:13:00 ID:???
>>766 さん
それだと
$_GET['hoge'] = 'foo';
にはなりますが$_POSTでは渡されません
740 :
765 :2007/01/21(日) 22:18:33 ID:???
追記です。
http://exsample.com/index.phpに$_POST[ 'hoge']の値が渡せればheaderでなくてもいいです。
switch($_POST['k']) {
case 1:
exsample.com/index.phpに $_POST[hoge]="foo"で飛ばす
break;
case 2:
exsample.com/index2.phpに$_POST[hoge]="foo"で飛ばす飛ばす
break;
…
}
こんな処理がしたいのです
>>738 いや・・・あきらかにPEAR::DBだろ
>>737 そのレンタルサーバでPEAR::DBが使えない可能性が高いけど、
使える可能性があるとすれば、↓かな?
/usr/local/lib/php/DB/DB.php
743 :
nobodyさん :2007/01/21(日) 22:44:59 ID:Fae6i/Oz
xmlファイルの種類がRSS1.0かRSS2.0かAtomかを判別するにはどうすれば良いですか?
>>740 $_GETか$_REQUESTで取る。
それがどうしてもダメならheaderでは無理。
HTTP通信を実装してPOSTするしかない。
JavaにはHttpClientあるけどPHPにもそんなんあるのかね。
745 :
nobodyさん :2007/01/21(日) 23:08:42 ID:xp0A917W
>>737 自分のテスト環境にあるPEARライブラリの入っているディレクトリを丸ごと
レンタルサーバーにうpする。
で、そのディレクトリを、include pathに追加する。
imagecopymergeで画像を合成しているのですが、 GIFアニメを合成した場合、最初のコマで止ってしまいます。 GIFアニメをそのまま動かすにはどうすれば良いのでしょうか?
749 :
nobodyさん :2007/01/22(月) 01:17:17 ID:H0oVPkgd
750 :
749 :2007/01/22(月) 01:26:28 ID:H0oVPkgd
誤爆サーセン
>>748 GIFは特許の問題があるから、使うのはあまりオススメしないけど。
>>751 gif の特許は 2004/6 に失効してます
∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
うらぎりものの会社のつくったフォーマットなんて使う気になれない。PNGまんせー
756 :
nobodyさん :2007/01/22(月) 18:20:28 ID:XtuQ8nwW
PHP5関連の書籍を見ているとオブジェクト指向とかフルコントローラとか 色々気にする必要があるのかと思い、現在作成しているシステムも 作り直した方が良いのか否か、本気で悩んでいます。 過去レスも見ると、同じような質問もあったりして、「常識」の部類みたいですが みなさんもやはり「常識」だと思われているのでしょうか? どうもクラスとかの使い方がよくわからなくて、まとめられないのですが、 見るサイトすべてオブジェクト指向っぽいので、このままでいいのかと悩みます。
>>756 趣味でやってるなら、好きなようにすればいい。
だが、勉強という意味合いもこめて、開発しているなら、
有名所のフレームワークやオブジェクト指向型プログラミングは絶対必須!
これができないと、PHPを使えるなんて口が裂けてもいえるようなレベルではない。
>>756 担当しているサイトは顧客のニーズによって、毎月機能追加・変更が行われいるので、
オブジェクト指向で作って正解だった思う。(元々Java技術者だったし)
現在のシステムが稼動実績があるなら、あえてつくり直す必要もないと思うけど、
拡張性がある程度要求されるシステムなら、オブジェクト指向も検討に値すると思うよ。
>>756 その人のレベルにもよると思うから常識とまでは言わないけど…
フレームワークやオブジェクト指向は、一度作ってしまえば、拡張も修正も凄く楽になる。
最初は面倒だと思うだろうけど、後々の事を考えたら作り直す価値はあるかも。
760 :
756 :2007/01/22(月) 18:32:57 ID:???
>>757-758 かなりお詳しいご説明ありがとうございます。
仕事でやっておりまして、プログラミングは元々プログラマーがやるのですが、
自分はディレクション等をしているので、ある程度のプログラミング知識も
必要だと思い、最近PHPとMySQLであれこれやっています。
それでそこそこ作れるようになってきたのですが、どうもコピー・ペーストする
作業が多く、デザインが重複する箇所も多くて、デザインとの両立が難しいです。
だから調べていたらオブジェクト指向とかフレームワークとかの知識が必要
みたいで悩んでました。
これまでうちの会社で依頼しているプログラマーでオブジェクト指向的な作りを
しているプログラマーが皆無だったのですが、もしかしたら私の指示が悪いの
かもしれません。やっぱり必要みたいなので、もう少し勉強してみます。
>>760 技術系の知識をある程度持っているディレクターは、
重宝されると思いますよ。技術者からも信頼されるし。
ただ、依頼しているプログラマーがそれだと。。。
>>760 >オブジェクト指向的な作りをしているプログラマーが皆無
なんつー会社だよw
フレームワークはともかく、オブジェクト指向なんて10数年前に最重要項目として位置づけられていたのに…
JavaやCの開発する時にどんなコードを書いているのか凄く気になるww
763 :
nobodyさん :2007/01/22(月) 18:41:48 ID:x9xZGXV7
PHPのO/Rマッパーの現在の主流は何なんでしょーか? DB::DataObject使ってるんですが、 「機能不足」「主流ではない」みたいな書き込みを見かけたので気になってます。 良かったら教えてくださいー。
764 :
756 :2007/01/22(月) 18:41:58 ID:???
>>761-762 個人・外注ともに依頼していますが、オブジェクト指向とかフレームワーク
に沿った作りをしているのは皆無でした。
データの受け取りもregister_globalがonの設定での作りだし。
だから、私にはそれが常識だと思い、2chで指摘されるまで
register_globalもoffにするものだとは思ってませんでした。
>>763 安心しろ!他の追従を許さないほどの主流だ!!
766 :
nobodyさん :2007/01/22(月) 18:48:06 ID:yHPtupAO
>>762 最近は、JavaやCが未経験なプログラマーも多いよ。
ちなみに、俺は、経験があるのはアセンブラーとphpだけだw
(Cもやってたけど、経験があるとは言えない程度だし)
>>766 アセンブラなんて大学の授業でしかやったことねーw
そーいやFortranも大学のときにやってたなw
今は、Javaが70%でC系が15%でPHPが5%であとその他。
Perlとかももう使わなくなってきたな。
768 :
nobodyさん :2007/01/22(月) 18:52:59 ID:x9xZGXV7
>>765 返事どうもです。
使ってて今のところ全然機能不足は感じないのですが、
もっといいのあるならそっち使ってみようかなと思ったっす。
もっと使い込んでみます。
769 :
nobodyさん :2007/01/22(月) 19:00:51 ID:wVC7HJOQ
すみません。PHP+GDでImagettftextを連続で使うと文字化けする事があるのです。 特定の文字と言う訳でも無く、何か原因があるのでしょうか?
770 :
nobodyさん :2007/01/22(月) 19:02:59 ID:uNp0p6nz
驚くかも知れんが、DreamWeaverが吐き出したPHPコードをそのまま採用する制作会社は 現実にあるんだよ。
>>767 確かにプログラマとしてまともに生きていくにはJavaマスターは絶対必須だな。
PHPも楽天が使ってるって事で案件増えてはいるけど、Webの主流はJavaだな。
Javaだと金稼げるしw
PHPって、そもそもオブジェクト指向プログラミングに 向いているという言語とは(今のところ)言えないでしょう? 仕事ならともかく、「これできない奴ってバカスww」とか押しつける奴は 変態だよ変態。まったくねぇ。
>>772 そうでもないぞ。PHP5はわりかしまとも。
つっても、フレームワークを組み合わせなきゃ意味ないけど。
PHPのスレで「Javaの方が良いよ」って会話になるとは・・・w
フレームワークとかオブジェクト指向とか、具体的にどうやればいいんでしょうか?
>>770 フォームから入力された文字列を、サニタイズしないところも結構あるくらいだ。
そのくらいのことでは驚かんぞ!w
778 :
771 :2007/01/22(月) 19:18:02 ID:???
>>774 個人ベースでやるには、Javaは手間がかかりすぎる。
圧倒的にPHPの方が上。
>>777 行ってきます。
どのくらい理解、または実現すれば身に付いたと言えますか?
>>775 みたいな質問した時点でもう無理だ
あきらめれ
>>779 参考書も見ずに、いろいろなWebシステムがスラスラかけるくらい。
あと、フッっと思いついた機能をなんの苦もなしに、サラッっと追加できるくらい。
>>779 小さなシステム(10人月程度)でいいから、
一から設計からテストまで完了させること。
四苦八苦しながらも、一から全てに関われば必ず見えてくるものがあるはず。
経験則から。
>>779 2chの質問スレで偉そうに答えたり、罵倒したり、
語りだしたりできるようになればおk
784 :
初心者 :2007/01/22(月) 19:39:11 ID:???
ホスティングで、php.iniの設定がsession save handlers files userになってる んですけど、セッションでログイン機能があるHPの場合、変更したほうがいいのでしょか?
あほーん
>>786 ∩ :・:∵
⊂、⌒ヽ∴: L/ ,r=''""゙゙゙li,
⊂( 。Д。)つ > 、、,,_ ,r!' ...::;il! ... ┏┓┏┳┓
V V ; Y⌒r!'゙゙´ `'ヾ;、, ..::::;r!'゙ ┏┛┗┻╋┛
グハッ ,i{゙‐'_,,_ :l}..::;r!゙ ┗┓┏┓┃
. ,r!'゙´ ´-ー‐‐==、;;;:.... :;l!:;r゙.. ┃┃┃┃ ┏┳┳┓
,rジ `~''=;;:;il!::'li ┗┛┗┛ ┗╋┛┃
. ill゙ .... .:;ll:::: ゙li ..┗━┛
..il' ' ' '‐‐===、;;;;;;;:.... .;;il!:: ,il!
..ll `"゙''l{::: ,,;r'゙
..'l! . . . . . . ::l}::;rll(,
'i, ' ' -=====‐ー《:::il::゙ヾ;、
゙i、 ::li:il:: ゙'\
゙li、 ..........,,ノ;i!:.... `' 、 ∧_∧
`'=、:::::;;、:、===''ジ゙'==-、、,,,__ `'(・∀・)
`~''''===''"゙´ ~`'''' ヽ ノつ
〜( ,,(~)
ヽ)
PHPを貶されると、まるで自分が貶されたかのような錯覚に陥る奴が多いんだね。 挙句の果てには、「僕はPHP以外の言語もできるのでDQNじゃありません」と言わんばかりの、DQNな発言する奴が出てくる始末。 誰もお前の自己紹介なんか聞いてねえっつーの。
例えばWEBデザイナーからHTMLだけ作ってきて それをシステム化する場合もテンプレートと動作ファイルを分けるの? そんな事するとあとからデザイナーが修正出来無くない?
>>789 その程度のWebデザは、即刻解雇。
今は、HTMLやCSS・JSだけができるWebデザなんてゴミだよ。
PHPやJSPの文法も分かってないと仕事にならない。
WEBデザイナーもプログラマーもそうだが、 あれもこれもできますっていうのは怪しいなぁ。 結局大したものが出来上がってこない印象がある。 メニューが100個もあるような食べ物屋より、 メニュー2,3個で勝負できる店の方が美味しいものだ。
>あれもこれもできますっていうのは怪しいなぁ。 プログラマに関しては当て嵌まる話ではないな
求人サイト見てると、PHPの技術も応募条件に入れている WEBデザイナーの募集って無いんだけど。
マニュアルに「ただし、PHP 5はオブジェクト指向言語ではありません。」て書いてあるやん・・
オブジェクト指向っぽく書ける言語です
>>793 PHPができない(プログラムかけないまでも読めない)奴は、採用試験には合格しません。
ヒアドキュメント内に定数って表示出来ないのでしょうか? define("ADMIN_DIR", realpath("../admin")); echo<<<EOF <a href="ADMIN_DIR">管理画面へ</a> EOF; みたいなことがやりたいのですが、そのまま文字で「ADMIN_DIR」が表示されます。
>>796 デザインの才が、あるかどうかを見るのが先だろ。
本職の才があれば、その程度のPHPの文法なんて、
会社で数日教えればすむことだろ?
>>797 ムリ。
そのソースから見るに、ファイルの内容を読み取って定数にすればいい。
そんな事をするくらいなら、parse_ini_fileを使って設定ファイルから読み込むかXML形式にしろ。
多分、キミのやりたい事はできる。
つか、ここには、PHPしかできない”自称”プログラマがたくさんいますねwww
PHPなんて一番簡単な言語だろ。
JavaやCができる奴ならPHPなんてものの数週間で完璧に使いこなせるレベルの言語だぞw
>>798 なんでそんなに食い下がってくるの?
今は、Webデザ志望者なんて星の数ほどいて、選び放題。
デザインの才能もあって、PHPやJSPの知識もある奴なんてゴロゴロいる。
そういう奴しか採用されないよ。一回、面接受けてみ。
×WEBデザイン能力 △WEBプログラミング能力 ◎コミュニケーション能力 ぶっちゃけこうです。面接する側ですが。
ですよねー
>>801 だろうね。
使い捨てのWebデザなんて、言われたとおりの仕事ができる事が最重要だしね。
あと、クライアントの想像している完成図を、コミュニケーションでいかに引き出し実体化するかが重要。
自分でゼロから創作する仕事なんてよっぽどのWebデザじゃなきゃできないしw
これは、WebデザだけじゃなくSEやPGにもいえることだけどね。
>>800 希望者が多いというだけで、選び放題じゃないだろ。
デザインで採りたいと思う人材なんて相当限られるが。
>>804 現場を知らないね。Webデザなんて今は使い捨て状態。
こいつはダメだ!次!って感じ。
じゃ、WEBディレクターが最強って事でいいの?
>>806 この業界は最強なんてない。
WebデザイナもSEもPGも…全部使い捨ての一労働者。
最強になりたければ他業界に池!
808 :
nobodyさん :2007/01/22(月) 21:57:21 ID:BrzhGU74
サニタイズされた文字列から、ある規則をもった文字列(例えば[
http:// ]から
始まる文字列とか...)をリンクアンカーに正規表現で置換えしたいのですが
サニタイズされているために [ & ][ < ][ > ] などが、うまく置き換えられなかったりします。
正規表現でマッチしたものを、そのまま '<a href="' . $matches . '">' . $url . '</a>' とかやっているので
置き換えしたものをサニタイズしちゃうと、<a>...</a>までサニタイズされてしまいます。
どうすればできるのでしょうか?
>>808 >サニタイズされているために [ & ][ < ][ > ] などが、うまく置き換えられなかったりします。
何をやりたいかよくわからんが、↑をうまい事やるのがプログラミングの腕だろ。
&amp;や&gt;&lt;に対して正規表現をかければ?
810 :
808 :2007/01/22(月) 22:59:29 ID:BrzhGU74
>>809 $str = str_replace('"', '"', $str);
とすることで解決しました。
ありがとうございました。
811 :
808 :2007/01/22(月) 23:02:17 ID:BrzhGU74
Ooooooooooooooooooooooooooooooooooooooops!! :-) $str = $str_replace('"', '"', $str);
なんか穴がありそう…
仕事の都合上PHP5.0.0を使用したいのですが、 本家のはリンクが切れているのか、 二日ほど前からDLを試していますが全く繋がりません。 もし、本家以外で5.0がDLできるミラーサイトなどがありましたら、教えていただけないでしょうか?
$aaa=array("項目A","Aの値","1/23"); $bbb=array("項目B","Bの値","1/24"); こういう配列があったとしてテーブルで [日付] [項目A] [項目B] 1/23 Aの値 1/24 Bの値 という表示にしたいのですが、組立方が全く分かりません・・。 そもそも上記のような表示は可能なのでしょうか?
816 :
nobodyさん :2007/01/23(火) 00:08:01 ID:sJ8gA2OL
PHP_OSで返す値の一覧表ってありますか? Win2Kの時はWINNTということだけ分かっています。
817 :
813 :2007/01/23(火) 00:08:40 ID:???
>>814 確かに落とせますね。
会社じゃウンともスンとも言わなかったんで、もしかしてセキュリティソフトか、なんかにひっかかってるのかも
他社との連携でPHP5以降を使うという仕様書はいただいたんですが、
5.2を使っても、大丈夫か?という質問メールに、まだ具体的に決まってないとかいう変なメールしか返ってこないんですよ
結局、5.2を使うとは思うんですが、念のためということで・・・
>>814 おいらの先日の案件なんて4.0.6だ!
819 :
nobodyさん :2007/01/23(火) 00:39:44 ID:Jof0MIkp
820 :
nobodyさん :2007/01/23(火) 00:43:25 ID:L8zAhTeP
趣味でPHPスクリプトを公開しております。 HP見た方からあるスクリプトをお金払うから作ってくれとメール頂きました。仕事としてやったことがないのでー私が蔵に商品を納品するまでの流れはどうしたらいいのでしょうか?発行する書類等、納品までの流れなどいろいろご指導お願いいたします。
法律とかめんどいけど法人になれよ
>>815 <table>
<tr><td>[日付]</td><td>[$aaa[0]]</td><td>[$bbb[0]]</td></tr>
<tr><td>$aaa[2]</td><td>$aaa[1]</td><td></td></tr>
<tr><td>$bbb[2]</td><td></td><td>$bbb[1]</td></tr>
</table>
文字列出力は適当に
>>822 すみません、、$aaaと$bbbの内容はファイルから読み込むのを想定して
おりますので、その時々で変わります。
だから、forかwhileで読み込む方法を考えているのですが
それで822さんのような表示が出来ないんです。
値があるのと無いのとがありますから。
<html> <head> <title>BrowserCheck</title> </head> <body> <?php // 日本語を許可しているか if (strstr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'ja')) { echo "日本語ブラウザをお使いですね\n" } else { echo "This site is available in Japanese only.\n" } ?> </body> </html> これっておかしいとこあります?エラー出るんですが Parse error: parse error, unexpected '}', expecting ',' or ';' in *** on line 9
>>823 何がしたいのか何となく予想できてきたけど
とりえあず、漠然とした内容ではなく、きちんと論理的に条件を出して質問してみ
>>825 一応雛形として組んだんだけど、おかしいとこが分からず
>>826 必要でしたっけ?そうならどこに付けるのか疑問なんだが
>>827 >>825 はどう見てもほかの人宛てだぞ。
「9行めで ',' か ';' が来ると思ってたとこへ、いきなり '}' なんて持って来るんじゃないわよ」
と言われてるんだから、その辺。つーか、セミコロンをどこに付けるのか疑問て。
830 :
815 :2007/01/23(火) 03:01:13 ID:???
>>825 $aaa=array("項目A","Aの値","1/23");
$bbb=array("項目B","Bの値","1/24");
上記の配列で説明しますと、配列の[0]に項目名が入り、[1]に値が
入るというものです。$aaaや$bbbというのは行に部分で、DB的に言うと
1レコードを指しています。
それで悩みなのが、普通はテーブルの列は固定名にするか
別ファイルにて項目名を決めるものですが、上記のように結果データ内に
項目名(列名)を加えても表示出来るのだろうか?っと思った次第です。
もしできるなら、列表示用のファイルが必要ない為いいかなと。
「DB的に言うと」せめて $aaa = array("Aの値", "", "1/23"); $bbb = array("", "Bの値", "1/24"); じゃないの?ループで回すんだったら $aaa を使いまわすんだろうし。 どうしてもその形式で配列にぶち込みたかったら $aaa[0] の中身で条件分岐かけて $aaa[1] の表示列を変えるというめんどくさいことをすれば期待どおりになると思う。 > もしできるなら、列表示用のファイルが必要ない為いいかなと。 ?
832 :
815 :2007/01/23(火) 03:30:08 ID:???
>>831 すみません。あとから考えたら変でしたね。。ようは↓な感じです。
data.txt内
"項目A","Aの値","1/23"
"項目B","Bの値","1/23"
$fp=file("data.txt");//読み込むとfp[0]には1行目が、fp[1]には2行目が入ります。
そして出力の仕方が分からないのですが表示としては
>>815 みたいに
出来ればと思います。
>>831 のように書くなら列名(項目名)が表示されません。
だいたいにしてデータ行に列名があるのがおかしいんだよ 1行目をヘッダー行にして "[日付]","[項目A]","[項目B]" "1/23,"Aの値","" "1/24,"","Bの値" のようにするべき。今のまま強引にやりくりしたところで後でつまるぞ
>>832 自分で取得方法が分からないならそれはそもそもデータ構造が悪いと思うよ
そっちを変えるか、今のままでもできないことはないから頑張れ
もしくは今どれだけできているか出してみるとよいかと
>>835 きみは
>>824 なの?
(´゚ω゚`)
PHPのオブジェクト指向にフレームワーク必須って上で話ていたけどさ どのフレームワーク使ってんの? Mojaviか?Ethnaか?
840 :
nobodyさん :2007/01/23(火) 10:51:33 ID:cx/YjiLk
PHPスクリプト上で、あるファイルの CRC32 の値を知る必要が出てきました。 crc32() だとファイルの内容を全て変数に読み込んでからでないと使えないため、相応しくありません(ファイルは数MB)。 cksum を外部コマンドとして呼び出すことも考えてみましたが、cksum は自分の求めている CRC32 とは違う CRC を計算するようで、使えません。 とりあえずとして、CRC32 を求めるコードは書いて、値も求まるようにはなったのですが、いかんせん遅くて・・・ イメージとしては crc32_file() みたいなことがやりたいのですが、いい方法は無いでしょうか? 求めたい CRC32 は、zip とかに使われる CRC32 です。
cksum -o 3の結果を16進数に変換してみるとか?
>>839 普通はSmarty+Flexyだろうな。
楽天のサイトも全てそれで作ってあるくらい実績あるし。
おいらは弱小零細なんで、フレームワークを使うほどの規模の仕事がこねえよ。 おまいらは、簡単なフォーム案件もフレームワークを使うの?
使わない。ってかそんな仕事受けない。そんな小さな仕事で利益出るのか?
>>843 フレームワークの利便性は、規模は関係ない。
そんなことも分からんようなら、君のレベルはたかが知れている。
846 :
840 :2007/01/23(火) 11:48:22 ID:???
>>841 動かそうとしてる環境の cksum には、-o オプションは無いっぽいです。
環境は Linux で、使えるコマンドは使って構わないのですが、新バージョンへの更新などは自由にできません。
新しいコマンドを自由に入れられない限り、やっぱスクリプトで計算ロジック書くしか無いんですよね・・・
crc32() で部分ごとに CRC を求めて、後でそれを組み合わせて全体の CRC を求める、なんて方法は無いですよね?
フレームワーク使ったことあるけど、面倒なもんばっかり。 普通にincludeしたほうが見やすいし、メンテもしやすいんだけどなぁ。 使いこなせばやっぱ楽なのかな。実感が全然沸かない。
>>844 半日くらい、ちこちことやって10万くらいかな。
小遣い稼ぎだね。
>>845 たかがしれてるから零細なんだけどさorz
連カキスマソ。 地方だからか上場している会社の仕事を見てもフレームワークなんて使ってるところ見たことないよ。 何かデザインを犠牲にした独自のガチガチフレームワークもどきは見たことあるけど。 使いこなしてる人、このソースと実行例を見とけとか、書籍などあったら教えてください。
新しくサイトを制作するに当たって、PHPにするかPerl にするかまよってます。両者一長一短あるとはおもうのですが、 友人に聞いたらPerlは残るけどPHPは滅びるといってました。 やっぱりPerlのほうが長い目で見た場合いいですかね?
>>850 PerlはJava+PHPに滅ぼされる。ってかもうすでに新規案件では壊滅状態。
PHPは、そのお手軽さで、これからも生き残る。
求人募集で雇用条件にPerlが入っている所もどんどん少なくなっている。
>>849 逆に俺は上場企業でフレームワークを使わない所を見たこと無いんだが・・・
>>848 凄く楽。とくにSmartyなんかは、自分で用意にプラグインが作れるから、
使い込めば込むほど楽になる。
楽天をはじめ会社規模の開発にSmartyが多く使われているのもプラグインが容易に組み込める為。
PHPのフレームワークが大規模向けとか面倒だって言っている奴は、使ったことあるのか?
普通にディレクトリをアップロードするだけじゃん。
>>851 が言っているようにSmartyなんかは、libディレクトリをアップロードしてキャッシュディレクトリを作るだけ。
どんなに小規模なプログラムでも、プログラムに統一性がでるから、使う価値は十分にある。
853 :
843 :2007/01/23(火) 12:21:42 ID:???
>>851 ,852
そうか。
今度試しに使ってみよう。
>>850 Perlは、UNIX系のモジュール開発にのみ生き残るな。
Webシステム開発などのプログラミング分野では、>851が言っているように壊滅状態。
大規模:Java
中・小規模:Ruby/PHP/.NET
この分野でPerlが生き残るすべは無い。
おーサンクス Smarty+Flexyか Smartyはフレームワークのカテゴリに入るのか 俺の中ではテンプラ用だったw Flexyはググって見る
856 :
850 :2007/01/23(火) 12:38:07 ID:???
ご意見ありがとうございます。 PHPでいきます^^
>>855 俺はSmarty+Mojaveがいいと思う。
メールとか掲示板とか簡単なフォームにまでフレームワーク使う必要はないでしょ フレームワークはいいところもあるけど学習コストやハマリコストも考えるべきだ。
俺はSmarty+独自フレームワーク。DBはPDO。 まだ、PHPのフレームワークは定番がないね。 Mojaviはなくなったと思ったら復活したり…。 Zendはなくなんないと思うけどw CakePHPもわりと注目されてるね。Railsタイプは苦手。
>>860 PDOってPear::DataObjectのこと?
>>862 echoやprintと同じでは?
俺はincludeもprintも()でくくってるな。
そっちの方が読みやすい気がするって理由で。
866 :
nobodyさん :2007/01/23(火) 15:29:35 ID:9lt2k7w3
$person=array("name"=>"unko"); こんなコード気持ち悪いよ。
867 :
nobodyさん :2007/01/23(火) 15:48:15 ID:Mj0BJ0W1
拡張子 php を html に変換する方法がありますが、拡張子を変える理由は 何なのでしょうか?セキュリティとか関係あるのですか?
PHPにセキュリティホール出たら狙い撃ちにされるっしょ。 .htmlだったらそれがHTMLかPHPかASPかJSPか簡単にはわからん。 あと、サイトをPHPからJSPに移行したときとかURL変更になってしまう。 (もちろんhogehoge.phpをhogehoge.jspに飛ばす、とかできるけど気持ち悪い)
869 :
nobodyさん :2007/01/23(火) 16:13:53 ID:ddBgseC2
>>867 > 拡張子 php を html に変換する方法がありますが
kwsk
php->htmlの変更はどうやってするんですか?
httpd.conf or .htaccess
>>868 気休め程度だけどね。でももちろんやっといた方がマシ。
そんな攻撃してくるようなスキル高いやつが、 拡張子だけで判断するとは思えないがなw
それより、セキュリティホールがあることを気にしろよ。
世の中にはzero day attackというものがございまして、 セキュリティに気をつけて的確に対処していたとしても、 なかなか防げないものもございます。
>>854 > 大規模:Java
> 中・小規模:Ruby/PHP/.NET
Rubyって何よ?釣りか?
新規開発だと、Javaが圧倒的だけど、
保守では、まだCOBOLが根強く残っている。早く消えて欲しい。
とりあえず、おまえらPHPだけの事について考えようぜ。 あれもこれもじゃしんどいだろ。 開発者側の考えではなく、それを利用する利用者側の立場でさ。 (もっとも、自分だけ使えれば良いという人は別だが)
878 :
nobodyさん :2007/01/23(火) 19:01:44 ID:UH5Ebjbs
mb_send_mail() でメール送信した場合なんですが、 qmail?が自動で付加する Message-ID を取得する方法はありますでしょうか? (送信前、または送信後でもOK) 使い方としては間違っていると思いますが、相手先は携帯メールの時 TO:相手メアド、FROM:自分メアド、BCC:自分メアド を入れ、 本文中にはMessage-ID等を含むURLを付加して そのリンクにアクセスすることで、メールにフラグを付けたりして開封確認をしようかなと。
おすすめのフレームワークってありますか?
おばぁちゃんが言っていた SEO的には動的に使われる.cgiや.phpより.htmや.htmlの方が良いって
>>882 おばあちゃんにmod_rewirte使えば解決するよ、って言っといて。
886 :
878 :2007/01/23(火) 20:25:13 ID:UH5Ebjbs
あのー・・・ フレームワークの話題で盛り上がってるとこ申し訳ないですが、 何か御教示などありましたら、宜しくお願いします(´・ω・`)
>>886 うるせぇ!!!それどころじゃぁねーんだよ!!
今はフレームワーク論争やってんだ!!!!
いいか?これはな!戦争なんだ!!!
887に同意 ココはくだすれだw
>>886 bccでてめーに送って、そのメールのヘッダーをほじくり返すってのはどうよ?
qmailにわたった時点で、phpからは知りようはないだろうし。
>>889 ってかさ、sendmailの設定の面倒さにかまけて、
新興勢力のqmailの軍門に下るのは技術者としては最悪だな。
え、新興勢力? qmailはたしかに開発開始時期はsendmailよりも新しいけど、 メンテのされなさ具合ではqmailははるかにレガシーというか時代遅れですよ。 sendmailはいまだにメンテされ続けているけど、 qmailはもう使っちゃいけない域にまできてますよ。 なわけで新興勢力なんて言葉には違和感あります。
892 :
nobodyさん :2007/01/23(火) 22:42:31 ID:WQNIOqeT
Fedora6にPHPをソースインストールしたんですが、 linpngのバージョンが古くなったので、 アップデートしたいと思ってます。 アップデートってどうすればいいんでしょう?
sendmail対抗はPostfixだろうがぁ!!
895 :
nobodyさん :2007/01/23(火) 22:50:25 ID:gX0utTYO
以下のように、Undefined indexやUndefined variableというエラーが出力されてしまいました。 Notice: Undefined variable: name in C:\www\php\diary\diary.php on line 298 Notice: Undefined index: _all in C:\www\php\diary\diary.php on line 286 Perlでいうところのstrictを使用した際のmyの不使用によるエラーかな?と思ったのですが・・・ なにせ、検索エンジンでエラー文を検索するとエラーが出力されているサイトがヒットするので解決策が見出せません^^; どなたか、解決策をご教示願います。
>>895 ソースがどうなっているかも分からずに回答できるエスパーが実在するとでも?
897 :
nobodyさん :2007/01/23(火) 22:53:19 ID:gX0utTYO
>>896 ご返信ありがとうございます。
このエラーがどのような場合に出力されるか、だけでも教えて頂けると幸いです。
>>896 オマエ、その程度なら、ソース見なくても分かるだろw
エラーがINFOレベルで出力しているから、宣言していない変数は全てエラーメッセージが出力されるんだろ。
900 :
nobodyさん :2007/01/23(火) 22:59:56 ID:gX0utTYO
>>899 ご返信ありがとうございます。
error_reportingで全てのエラーを出力するようにしていたようです。
実際に開発する場合にはerror_reportingの値はどのようにすべきですか?
現在ではE_ALLになっています。
901 :
nobodyさん :2007/01/23(火) 23:01:58 ID:gX0utTYO
の前に、普通に設計していてNoticeレベルのエラーが出力されることなんてあるんですか? それを出力しないように設定してもいいんですか?
902 :
nobodyさん :2007/01/23(火) 23:05:56 ID:TJC5Wx3g
訳あってWin鯖とLinux鯖を併用することになりました。 phpのソースはWin用・Linux用と2つ作成するのではなく、1つのphpファイルで なんらかの条件判断で文字コード変換(mb_convert_encoding)のコードを記述しようと思います。 どういう条件で判断すればいいですか? 又Win鯖でもsjisとEUCとを使い分けるかもしれないので、汎用性を持たせたものにしたいと思います。
ぐぐれ
904 :
nobodyさん :2007/01/23(火) 23:17:00 ID:AcnniOWC
データベース(EUC-JP)から持ってきたデータをUTF-8に変更して表示したいのですが、 $row = データベースから取得してきた文字列 echo $row; $row = mb_convert_encoding($row, "UTF-8", "EUC-JP"); echo $row; にしても、変換されず出力が同じです。 どのようにすればうまく変換できるのでしょうか?
907 :
904 :
2007/01/23(火) 23:40:53 ID:AcnniOWC とりあえずデータベースにUTF-8で保存することにより解決しました。