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

このエントリーをはてなブックマークに追加
1nobodyさん
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
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
2nobodyさん:2007/01/10(水) 11:20:34 ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
【PHP】下らねぇ質問はここに書き込みやがれ 28
http://pc8.2ch.net/test/read.cgi/php/1157284868/
【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
3nobodyさん:2007/01/10(水) 11:20:50 ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

(以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
4nobodyさん:2007/01/10(水) 11:21:14 ID:???
関連スレ
注:昔は本スレ(PHP質問スレ)というのが別にあったけど、今はここが本スレです。

◆超初心者を自覚してる方ははこちらへどうぞ
くだすれPHP(超初心者用)2
http://pc10.2ch.net/test/read.cgi/php/1164617202/

◆その他
http://pc10.2ch.net/php/subback.html
PHP関連スレは非常に多いのでこの中でブラウザのCTRL+F等で「PHP」を検索!
5nobodyさん:2007/01/10(水) 11:21:34 ID:???
【簡易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プログラムとして実行された結果になる。
6nobodyさん:2007/01/10(水) 11:21:52 ID:???
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に保存?
 → 好きにしてください
7nobodyさん:2007/01/10(水) 11:22:12 ID:???
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
8nobodyさん:2007/01/10(水) 11:34:42 ID:???
企業に提出するポートフォリオを作ろうと思うのですが、
掲示板やブログのような簡単なものでもいいのでしょうか?
9nobodyさん:2007/01/10(水) 11:53:38 ID:YxQZDx6s
前スレがなくなりそうなので、こっちへの質問失礼します。

今作業しているプログラムを作った前の奴が、SQLに日付を入れるのに
varcharで20070101123000という形式で作ってしまいました。(愕然)

で、インターフェース部分で、人が分かりやすい様に、2007/1/1 12:30:00
という形式に変換したいんですが、strtotimeではできませんでした。
こういう時って、正規表現使うしかありませんかね?
10nobodyさん:2007/01/10(水) 12:01:09 ID:???
<?
$date = "20070101123000";
echo date("Y/m/d H:i:s",strtotime($date));
?>

これじゃダメなん?
11nobodyさん:2007/01/10(水) 13:15:16 ID:???
>>9
よくあるねぇ。一部上場している企業でもそんなんザラで作るSEいるよ。
なんのためにdateやtimestampがあるんだか。
何日前とか一発で計算出来るのにvarcharとかしてるせいで出来ないし。
スレ違いスマソ。
12nobodyさん:2007/01/10(水) 13:24:32 ID:???
mb_convert_encoding( $var, mb_internal_encoding(), mb_detect_order() );

これをすると$var内に十分な文字コードの判断要素が存在しない場合に
mb_convert_encoding のエラーが発生します。
mb_detect_order が空扱いされるようです。

それ自体は良いのですが、
そのまま mb_convert_encoding は 文字コードを変換してない文字列$var
を返してきます。

このエラーが出た場合は、強制的に EUC-JPに変換をしたいのですが、
良い方法はないでしょうか?
13nobodyさん:2007/01/10(水) 13:24:48 ID:???
正規表現ってPHPやC言語など、その言語によって使い方が異なるのでしょうか?
14nobodyさん:2007/01/10(水) 13:27:56 ID:???
>>12
$encode = @mb_convert_encoding( $var, mb_internal_encoding(), mb_detect_order() );
if($encode){

エラーの場合の処理

}
1514:2007/01/10(水) 13:29:01 ID:???
mb_convert_encodingが成功するとTRUE、失敗するとFALSEを返すので、
FALSE(失敗)が返ってきたときにEUC-JPに変換するようにすればいいんじゃないかな
16nobodyさん:2007/01/10(水) 13:50:23 ID:???
      / .,※,...-―:.:.:.:.:.:.:.:.:.:.:.:.:::ー-.、  \
    /  /,.:.:.:.:.:.:..:.:.:.:.:.:.:.:.:.:.:.:.:.:.::.:.:.:.:.:\※ヽ
    \ /:.:.:.::/:.:.:.::.:.:.:.:.:.:!:.!:.:.:.:.:.\::.:.:.:..:ヽ ',
     /:.:.:.:.:.:/.:.:.:.:.:.:.:../.;イ.:ト、.:.:.:.:.:.:ヽ.:.:.:.:.:ヽ
    ,':.:.:.:.:.:.:!.:.:.:.:.:.:.,:イ:/ ;:/ ヽ.:..:.:.:.:.!:.:.:.:.:.:.'※.
    !:.:.:.:.:.:.:|.:.:.:.:/.// //   \:.:.:.:.|:.:.:.:..:.:i
     |:.!:.:.:.:.:.|;∠..−'" 〃゛` ―--\:.!:.:..:.:.::,' }  下らねぇ質問はここに
    !ハ:.:.:.:.:.!   _,,  /   、_    /:.:.:./:/∧  書き込みやがれですっ
    i! \:.:.:\`=''"    `ー=''イ/:.ィ//:.:.
       }ヾ、_\   '      //´ /:.:.:.
       ト、※,.>-―…―--<7´※ /:.:.:.:.
       !:.r(´.._'' ¨´ ̄ ̄`¨r-┴ 、  /ユュ_:.:.
       /:.{ 〉ーュ__...::::::::::.r―_`ヽ〈 // {j:.:.
.     /:.:/{Y´,.-<:::::::::::::::`ー、` ノュ!_j⌒ーリ:.:.
17nobodyさん:2007/01/10(水) 14:20:01 ID:???
> if($encode){

if(!$encode){
じゃね?
18nobodyさん:2007/01/10(水) 14:25:49 ID:???
mb_internal_encoding() ? mb_internal_encoding() : 'EUC-JP';
19nobodyさん:2007/01/10(水) 17:35:07 ID:???
質問に答えてもらっておいて、お礼もないのか・・・
これじゃ答える側もこたえる気なくすよな
2012:2007/01/10(水) 18:45:38 ID:???
すいません、お礼がちゃんと書き込めてませんでした。

おかげで助かりました。
多謝!!!
21nobodyさん: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分 です。
2221です:2007/01/10(水) 19:53:14 ID:hNJDqrmd
質問2:print文の省略というのがうまくいきません・・・。
↓ころをやると
###############
現在の日時は <?=$now?> です。
###############
↓こうなります・・・。
現在の日時は です。

試しに↓こうすると
###############
現在の日時は<?php
print $now;
?> です
###############
↓こうなりました(相変わらず「年」だけ「・」になります。
現在の日時は2007・01月10日 07時50分 です。

大変お手数をおかけしますが、どなたか原因が解りました教えてください。
よろしくお願いします。
23nobodyさん:2007/01/10(水) 20:07:36 ID:???
>>22
文字コードの問題じゃね?
$nowには中身入ってんの?
24nobodyさん:2007/01/10(水) 20:11:43 ID:???
>>21
文字コードの問題

>>22
PHPの設定、または文字化けによるか
2521です:2007/01/10(水) 20:30:44 ID:hNJDqrmd
>>23 >>24
ありがとうございます。
$nowは↓これが入っています。
<?php
$now = date("Y年m月d日 h時i分");
?>

文字コードだと、iniファイルの設定がうまくいってないのでしょうか?
「年」だけ「・」になるってあるんですね・・・・・、
どこをいじればぃいのだろぅ・・。

あ!!ちなみにいま
print "年<BR>";
これやったらちゃんと「年」って出ました。

むぅ・・・
2624: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?>
2721です:2007/01/10(水) 20:57:47 ID:hNJDqrmd
>>26
まだ始めたてでよくわからないのですが、
こぴぺして実行したら
こう↓表示されました・・・
\n"; echo $d; ?>
28nobodyさん:2007/01/10(水) 21:00:00 ID:???
>>27
とりあえず君にはここで質問するよりもマニュアルをちゃんと読むことをお勧めする
29nobodyさん:2007/01/10(水) 21:20:05 ID:???
>>27
とりあえずPHPの文字コードどうしてるよ?
php.iniのmbstringのとこだ

>>28
マニュアル嫁厨はいなくていいよ
マニュアル読んでも理解できないことは多々ある
嫁と言うくらいなら読む部分のURLを貼ってやれ
3021です: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;
3121です:2007/01/10(水) 21:29:46 ID:hNJDqrmd
>>28
すんません;
でもでも、
↓これで「年」が「・」になるのは・・・とても不思議で・・・。
print "年<BR>"; ←これだとちゃんと「年」って出るのに・・・。PHP5.2.0ってバカなのかなぁ・・。


質問1:↓これを実行すると
#######################
<?php
print "現在の日時は " . date("Y年m月d日 h時i分") . " です。<BR>";
?>
#######################
32nobodyさん:2007/01/10(水) 21:47:28 ID:???
mb_convert_encoding()
33nobodyさん:2007/01/10(水) 21:53:06 ID:???
保存文字コードはShift_JISをやめろ、UTF-8とかEUC-JP
dateはマルチバイト対応してないので
Shift_JISで「年」は0x94 0x4E、「N」が0x4Eだから置き換えしてしまう
34nobodyさん:2007/01/10(水) 21:54:51 ID:???
始めたばっかりでエンコーディングの問題にぶつかるってラッキーだよな
35nobodyさん:2007/01/10(水) 22:27:02 ID:???
>>29
読む部分・・・最初から全部だな
36nobodyさん:2007/01/10(水) 22:56:17 ID:???
わかりにくい説明になってしまってすいませんが、

/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が取得されてしまいます。
3721です:2007/01/10(水) 23:07:57 ID:tu53/ebs
>>32

>>33
!!!
そうなんですね、テキストに書いてあった通りにしたのに・・・。
今日は勉強してるパソの前を離れてしまったので
明日やってみて結果報告しますね!!
ありがとうござぃます(●´∀`)ノ(ペコリ

>>34
そぅなんですか??
38nobodyさん:2007/01/10(水) 23:16:42 ID:???
>>36
日本語でOK
39nobodyさん:2007/01/10(水) 23:25:48 ID:???
>>37
dateが「N」で置換するようになったのはPHP 5.1.0からだから
たぶん使ってるテキストが古いんだろな
40前スレ991:2007/01/10(水) 23:32:23 ID:dQ2G34v1
これです。
・・・何のソースを出せばいいの?
YahooAPI弄ってたんだけど、
検索結果がでねぇ。
41nobodyさん:2007/01/10(水) 23:32:37 ID:???
d
42nobodyさん:2007/01/10(水) 23:33:32 ID:Svb1C9pT
ここにいる回答者の方々はphpでどういうプログラミングをしてきたか教えてください。
4340:2007/01/10(水) 23:42:53 ID:dQ2G34v1
できるだけ早くお答えがほしいです。
一応構成は、common.phpと(YJSearchExample.php)
の2ファイルです。
44nobodyさん:2007/01/10(水) 23:44:48 ID:???
>>43

「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
45nobodyさん:2007/01/11(木) 00:10:59 ID:uW7xEbZY
PHPのモジュールを作りたいんですけど
CとC++どちらがいいですか?
46nobodyさん:2007/01/11(木) 00:13:34 ID:???
>>45
HSP
47nobodyさん:2007/01/11(木) 00:15:30 ID:uW7xEbZY
いやいやHSPはCでできてるわけで、そこから作っても無駄だと思うんですが、
二次で生まれたものから作成するのはスピードの面とか・・・
48nobodyさん:2007/01/11(木) 00:16:27 ID:???
JSP
49nobodyさん:2007/01/11(木) 00:21:12 ID:uW7xEbZY
モジュールを作ったことがある人っていないんですかね?
0:45分にモジュールの新スレたてます。
50nobodyさん:2007/01/11(木) 01:46:57 ID:8lXV+y43
preg_match関数の使い方について質問させてください。
$strに、メール(ヘッダおよび本文)が格納されているとします。
メールの仕様では、ヘッダと本文の境界は「CR+LF」の空行だそうなので、
以下のような正規表現にて本文だけを抜き出せるかと思いましたが、うまく出来ません。
どこがいけないのでしょうか?
preg_match("/^\s*$([\s\S]*)/", $str, $body);
51nobodyさん:2007/01/11(木) 01:55:47 ID:JCcmSaAf
>>50
正規表現は別スレ池
52nobodyさん:2007/01/11(木) 01:59:48 ID:???
>>51
最近は別スレが無い罠。
53nobodyさん:2007/01/11(木) 02:38:19 ID:???
正規表現はこっち
http://pc10.2ch.net/tech/

>>1のURLはややこしいから次スレから消すべき。
>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
>・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
54nobodyさん:2007/01/11(木) 03:50:26 ID:???
2ちゃんねるみたいに
http://pc10.2ch.net/test/read.cgi/php/1168395610/1
みたいにレスを取得するプログラムを書きたいんですけど、
どうやって取得するのでしょうか?
getで取得しようとしてみたのですがa=1みたいにキーを設定しないとダメでした。
クエリーストリングで素得できるのかと思ったのですが、
ブラウザがディレクトリと認識してしまいnot foundのページがでてしまいます。
どなたかご教授お願いします。
55nobodyさん:2007/01/11(木) 04:00:15 ID:???
>>54
/test/read.cgiにあたるファイルを作って、それより後ろの部分は$_SERVER['PATH_INFO']。
もしくはmod_rewrite+REQUEST_URI等。
56nobodyさん:2007/01/11(木) 04:19:29 ID:???
>>55
ありがとうございます。
$_SERVER['PATH_INFO']を使ってみます。
57nobodyさん:2007/01/11(木) 04:28:26 ID:???
>>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以外はわかんね
58nobodyさん:2007/01/11(木) 04:44:10 ID:???
>>50
全然関係ないんだけど
自分だったら for 文で空行が出てくるまで読み捨て
とかやっちゃうな

今時の富豪的プログラミングとしては
正規表現を使うのかもしれんけど
59nobodyさん:2007/01/11(木) 04:49:14 ID:???
既に $str に入ってるから CRLF を検索するだけでいいか
60nobodyさん:2007/01/11(木) 05:18:27 ID:???
正規表現使わなくても
list($head,$body) = explode("\r\n\r\n", $str, 2);
でもいけるんじゃないかと
61nobodyさん:2007/01/11(木) 05:50:14 ID:???
2ちゃんねるの内部プログラムを真似て作った掲示板があるんですけど
著作権に引っかかりますか?
62nobodyさん:2007/01/11(木) 06:11:07 ID:???
>>61
内部プログラムっていうのが何かわからないが、
特許技術とかでもない限り、
一般的に掲示板なんて構造はどれも一緒なんだから、
問題はない。
63nobodyさん:2007/01/11(木) 07:17:30 ID:???
ifの条件判定で日本語(ななしさんの部分)を使うのはまずいでしょうか?
もし使うとしたらUTF-8のほうがいいですか?EUCやShift_JISではやめといたほうがいいのでしょうか?


if($_POST['name'] == "ななしさん"){
      省略
}
64nobodyさん:2007/01/11(木) 08:41:58 ID:???
>>63
Shift jisだと問題が起こる可能性があるがそれを理解して使っていれば問題ない
65nobodyさん:2007/01/11(木) 10:15:04 ID:???
メーメールフォームをつくってます。
テキストメールで送信する前にサニタイズしてタグ等がある場合は
無害化してからメール関数で送信するべきでしょうか?
66nobodyさん:2007/01/11(木) 11:53:26 ID:???
>>65
用途による。
6737:2007/01/11(木) 12:15:45 ID:???
>>38

外部phpファイルを読みこませるファイルのファイル名や親ディレクトリ名を取得するスクリプトを、
外部phpファイルにかけるかどうかということなんですが、伝わりますでしょうか?

ファイル名などを取得させるように外部phpファイルに書くと当然、外部phpファイルのファイル名が取得されてしまいますよね?
これを、外部phpを読み込ませたファイルのファイル名を取得したいのです。
6838:2007/01/11(木) 12:16:43 ID:???
すいません、名前間違えました

67は>>38が書きました
69nobodyさん:2007/01/11(木) 12:33:50 ID:???
>>67
ディレクトリは取得できる
大元のファイル名は環境変数からわかる
70nobodyさん:2007/01/11(木) 13:42:42 ID:???
>>36
こんな答えを望んでいないのを承知で書くが、
gaibu.phpをクラスとして定義し、
コンストラクタでパスを渡す
というのが設計としては正解だったりしないか。

もっと単純に、
読み込み元のスクリプトで変数を設定し、
読み込まれたファイルでは、その変数を読むとか。

とはいえ、出されている情報だけでは、
判断できないけどね。
71nobodyさん:2007/01/11(木) 14:49:44 ID:???
ttp://www.bnote.net/php/pear/mail_mime_01.shtml

こことまったく同じことやったら
特定のメール文章のときに文章が途中で途切れて送信されます。
色々テストしてみると、
$body = $mime->get($build_param);
この時点で、文章が途中からばっさり切られてるようです。

考えられる原因をどなたか教えてくださいませ orz
72nobodyさん:2007/01/11(木) 16:50:26 ID:???
>>71
どういう文章で切られてるかというのが分からんとなぁ。
たとえば、改行したところで切られるとか、改行が2回連続出たところで切られるとか
何文字目で切られるとか。
7371:2007/01/11(木) 16:54:15 ID:???
>>72
やっと今頃なんですが、
色々調べてみたらなんとなく分かってきました、
どうやら機種依存文字があると、その文字列以降が一切削除されているようです。
例えば機種依存文字、○の中に1、を書くとそれ以降は削除されてました。

機種依存文字をうまく変換するような関数ってあるでしょうか?
PCに詳しくない人ともやりとりするので
機種依存文字を0にするのは厳しそうです。
74nobodyさん:2007/01/11(木) 17:04:29 ID:???
>>73
「php 機種依存文字」でぐぐってみれ。
いっぱい出てくるちゅーねん。
7571:2007/01/11(木) 18:04:12 ID:???
ttp://plaza.rakuten.co.jp/freyr/diary/200602030001/

ここのを試してみたんですが、
空の文字列が返されるようです。
どこが悪いか分かりますか?
76nobodyさん:2007/01/11(木) 18:11:32 ID:???
自分で少しずつデバッグしてわからなかったら聞いてくれ。
どこが悪いか分かりますか?ではなく、
ここの部分が悪いんですが〜とちゃんと言えるようにしてきてくれ。
77nobodyさん:2007/01/11(木) 18:14:44 ID:???
76はスレタイも見えないようだ。頭悪そうだな
78nobodyさん:2007/01/11(木) 18:16:09 ID:???
このスレの存在意義ね〜〜〜
79nobodyさん:2007/01/11(木) 18:17:19 ID:???
このスレは76を称えるスレになりました
80nobodyさん:2007/01/11(木) 18:35:31 ID:???
>>71
$text = mb_convert_encoding($text, 'ISO-2022-JP', mb_detect_encoding($text));
これがいらん気がする。
81nobodyさん:2007/01/11(木) 19:33:21 ID:???
まあ確かに
大抵のMUAはShift_JISのメールも読めるだろうけど
昔気質の自分はISO-2022-JPであってほしいと思うな
82nobodyさん:2007/01/11(木) 19:34:30 ID:???
ポストされた内容をメールで送信しているんだぜ?

header(Location: 〜) ; // POST後のページに切り替え
html() ; // Location が効かなかったときの表示
flush() ;
mail() ; // メール送信

ポスト後のページ切り替えは
IE6 メール送信しないときは速い。送信するとワンテンポ遅れる。
Opera9 どっちも速い。
FireFox2 どっちも遅い。

できれば IE6 でも遅れないようにしたいさ。
なんか手はないか。
flush のところに ob_end_clean や ob_flush を入れても同じさ。
83nobodyさん:2007/01/11(木) 19:50:38 ID:???
session_set_save_handlerを実装したくて、試してみたのですが、
openハンドラーのところで、セッション保存パスが取得できませんでした。

原因を切り分けるために、session_save_path()を実行してみたのですが、
取得ができませんでした。サーバーの環境の問題かもしれませんが、
可能性として考えられる原因って分かりますか?
----
echo session_save_path();
session_start();
----
テスト環境
WindowsXP
PHP5
8437=67:2007/01/11(木) 20:08:10 ID:???
>>69さん
できるのですか!
単純にディレクトリ名取得させる書き方だと、うまくいかないのですが書き方か関数かご教授願えないでしょうか?

環境変数というのは、調べてやってみます。
phpinfo()
のなかに、使える関数があるのでしょうか。

>>70
読み込みもとのスクリプトで取得させるのはできるのですが、、ページを簡素にして全部共通で外部ファイルを使いたいので、外部化にこだわってます。
アドバイス頂いた設計は、ちょと難しくて、まだ把握できません・・・
85nobodyさん:2007/01/11(木) 20:48:54 ID:???
>>84
環境変数 php でぐぐろう
8621です:2007/01/11(木) 20:49:58 ID:6cjanMPr
>>39
途中報告です!
iniの設定をShift-JIS以外にして試してるのですが、
完全に文字化けしてしまいました・・なので、多分Apacheの設定??も
間違えてるんだと思います。

今、ネットであれこれ調べてチャレンジしてます!
クリアできたらまた報告しますね!

にしても設定するだけで難しい・・・。
87nobodyさん:2007/01/11(木) 20:53:34 ID:r9MspATb
メールを送ったとき、
送信先不明や着信許可していない時にデーモンから返されてくるエラーメールから
元々送った相手のメールアドレスを変数に取り出すには、どうしたらいいですか?
88nobodyさん:2007/01/11(木) 21:02:53 ID:???
>>86
全部utf-8に統一すれ
89nobodyさん:2007/01/11(木) 21:05:31 ID:???
>>87
それなんてスパム業者?
90nobodyさん:2007/01/11(木) 21:14:57 ID:r9MspATb
>>89
スパムじゃないです!主婦友のメーリングリストを作りたいんですが、携帯が主なので
機種変とか受信許可設定の未設定とかで、帰ってくることが多いので、
返ってきたメールアドレスは、データベースから消したりする処理をする為です!
私は、業者じゃないです!
91nobodyさん:2007/01/11(木) 21:17:56 ID:???
>>90
変えたら連絡を徹底させれば解決
92nobodyさん:2007/01/11(木) 21:21:48 ID:???
>>84
getcwd()
93nobodyさん:2007/01/11(木) 21:23:59 ID:r9MspATb
あの、それをしなくてもいいように、お尋ねしているのです。
私もググって見たのですが、メーリングリストのスクリプトについての解説が載っているページがなくて
ここにたどり着きました。
どなたか、ご存知の方、直接解説をしていただかなくても良いので
URLだけでも教えていただけませんか?
94nobodyさん:2007/01/11(木) 21:24:52 ID:???
>>93
それをしろ
95nobodyさん:2007/01/11(木) 21:25:41 ID:r9MspATb
96nobodyさん:2007/01/11(木) 21:28:20 ID:???
>>94
暇なガキはけーーーーーーーーーーん (゚∀゚)ニート!!!!!
97nobodyさん:2007/01/11(木) 21:33:23 ID:???
PHPでツリーメニューをHTMLの調子で使っても全く動作しないのですが
PHPでツリーメニューを使うにはどうしたらいいですか?
98nobodyさん:2007/01/11(木) 21:35:10 ID:???
ちなみにPHPでツリーメニューをHTMLの調子で使うというのは、
ソースに記述して動作させようとしてるということです
99nobodyさん:2007/01/11(木) 21:38:34 ID:???
>>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 を指定するため。
100nobodyさん:2007/01/11(木) 21:41:08 ID:???
>>97
あなたの言う「ツリーメニュー」とはどういうものを指すのですか?
101nobodyさん:2007/01/11(木) 21:44:12 ID:???
>>98
ツリーメニューって何?
102nobodyさん:2007/01/11(木) 22:01:50 ID:???
ttp://technique.eweb-design.com/0903_tm.html
すみません、こういう奴です
103nobodyさん:2007/01/11(木) 22:06:06 ID:???
>>102
ソースに書いたHTMLのツリーメニューってやつを見せて
104nobodyさん:2007/01/11(木) 22:22:05 ID:???
<?php
$str1 = <<< DOC_END1

HTMLのやつ

DOC_END1;

print $str1
?>

105nobodyさん:2007/01/11(木) 22:29:32 ID:???
JavaScriptで新しい画面を開くような実装をしているんですが、
その新しい画面から他の画面へ遷移させた途端、SessionIDが新しいのに
変わって、セッションが破棄されてしまいます。
session_destroyをしていないのに。。。

それが、同じ環境(OS、ブラウザ)でも起こる場合と起こらない場合があるのですが、
対処方法が全く分かりません。

原因をつきとめる方法でもいいので、アドバイスをお願いします。
106nobodyさん:2007/01/11(木) 22:47:32 ID:cEYa3q1p
WindowsサーバにImageMagickをインストールしたのですが、
PHPから操作する方法がわかりません
何かライブラリがあるのでしょうか?
107nobodyさん:2007/01/11(木) 23:16:49 ID:???
108nobodyさん:2007/01/11(木) 23:28:25 ID:???
>>90
PHPじゃないけど、そういう処理がfmlに含まれてる。
まさにエラーメールをはじくために。
Perlが分かるなら、その部分だけ取って来て流用すれば良い。
109nobodyさん:2007/01/11(木) 23:32:40 ID:???
phpmyadminのライブラリ使うとかありですか?
110nobodyさん:2007/01/12(金) 00:46:34 ID:MVKrQ9mz
>>105
Webサーバをロードバランシングしてると同様の
ことが起こるが。。。違うか。。
111nobodyさん:2007/01/12(金) 01:06:03 ID:21GIWcBS
print $str1
print $str2
print $str3
print $str4
print $str5

PHPの記述の一部にこのような命令があったとして
これの順番を入れ替えたい(例えば$str1と$str4)
(ちなみに変数の中身が変わるので、手書きで順番を変えるわけには行きません)
そのような場合にはどうすればいいでしょうか?
112nobodyさん:2007/01/12(金) 01:20:11 ID:???
設計を考え直しましょう
113nobodyさん:2007/01/12(金) 01:28:51 ID:???
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 ){
 ・
 ・
 ・

114nobodyさん:2007/01/12(金) 02:10:54 ID:???
せめて $str[] にならんのか
115nobodyさん:2007/01/12(金) 02:53:02 ID:???
>>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";
}
ってこと?
116nobodyさん:2007/01/12(金) 02:53:34 ID:???
ああ、改行要らんかった。まぁいいや
117nobodyさん:2007/01/12(金) 03:55:07 ID:???
ソースレベルでの変更が可能ならどうにでもすればいい。
すでに表示されてしまってるのをどうにかしたいなら、
JavaScriptでやるしかない。
118nobodyさん: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を書く必要があると思いますが、
そうではなくて、何度も読み込まない方法は無いでしょうか?
119nobodyさん:2007/01/12(金) 06:33:40 ID:???
requireは一度読んだファイルは二度と読まないはずだが。
http://jp.php.net/manual/ja/function.require.php
120nobodyさん:2007/01/12(金) 08:23:25 ID:???
>>119
それってrequire_onceじゃないのか?
http://jp.php.net/manual/ja/function.require-once.php
121nobodyさん:2007/01/12(金) 08:26:31 ID:???
>>90
空メールシステムと同じようにすればいいんじゃないの?
TELNETとかでサーバーの設定いじれないとムリだけど。

[email protected] がメルマガ配信のアドレスだとしたら、
[email protected]にメールが配信されたら、ooo.phpを起動して、エラーメッセージの記入してある本文を取り出す。
本文を取り出したら、正規表現でメールアドレスを取り出す。
エラーメッセージに[email protected]も含まれているので、それは除外する。
たいていが↓のように<>で囲まれてるから。
< [email protected] >
それをDBから削除すればいいだけじゃん。

mimeDecoderとか使ったら簡単にできるよ。
サーバーがいじれればね。
122nobodyさん:2007/01/12(金) 11:21:16 ID:???
>>118
<?php
require("admin_setting");

class Hogehoge{
  function test01(){
    echo $admin_name;
  }
  function test02(){
    echo $admin_text;
  }
}
?>
123nobodyさん:2007/01/12(金) 11:52:22 ID:???
>>122
クラスにしなくても
require("admin_setting");
をユーザ関数の外に出せばいいだけの希ガス
124nobodyさん:2007/01/12(金) 13:08:45 ID:qjLqWtKa
>>9です。遅レスすまそ

>>10
それじゃできないはずです。つうか、できませんでした。(php v4.4.4)
日付までならOKなんですが、時分秒が入ったらあきませんでした。

>>11
そうなんですよ!!!!(怒)
SQLを単なるデータの入れ物にしか使ってないんですよ。
flag(status)にvarchar(1)とか定義して(なんでやねん!!!)、
中身は数字が1〜9まで。(←お前、出直して来い!)
125nobodyさん:2007/01/12(金) 13:09:48 ID:qjLqWtKa
>>124
あ、結局ですね、正規表現で処理しました。(悩む時間がもったいなかったので)
126nobodyさん: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も同じチェックをしたい
}
}
127nobodyさん:2007/01/12(金) 14:04:05 ID:???
>>126
とりあえずhoge2の__constructの中で、parent::__construct()でも呼び出しとけば?
128118: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内に入れれば
表示されるのですが・・。
129nobodyさん:2007/01/12(金) 14:36:44 ID:???
admin_nameとかをglobal宣言しないと駄目なんじゃね?
130nobodyさん:2007/01/12(金) 14:37:12 ID:???
>>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);
マルチバイト対応してないのか。あぁ。
132nobodyさん:2007/01/12(金) 14:43:30 ID:???
>>130
これなら動きました。
自分はPHP5.1.4の環境でテストしていたのですが、
それで動かなかったんですね。

とはいえ一般のレン鯖はPHP4のところがほとんどですし、
自分もPHP5仕様にしたくないので、defineを使うか
素直にrequireをfunctionの数だけ用意するようにします。

ソースありがとうございました。
133nobodyさん:2007/01/12(金) 15:22:04 ID:???
指定配列の文字が要素配列に存在するかのチェックです
if(preg_match(array('a','b','c','d'), array('c', 'd'))) {
処理
}
こんな処理をしたいのですが、正規表現は使わないのでpreg_match以外で軽快な関数ありますでしょうか?
134nobodyさん:2007/01/12(金) 15:33:16 ID:h324r4IB
Xitamiを入れてPHP5.2のインストーラ版を入れました。
試しに動かしてみたのですが、echoやforループなどはまぁ普通に動いているのですが、file_get_contentsが機能していないようです。

こういう現象に心当たりのある方いたらアドバイスをお願いします。
135nobodyさん:2007/01/12(金) 15:38:30 ID:qKWjHdtb
>>133
in_array()
136nobodyさん:2007/01/12(金) 15:41:30 ID:???
>>134
機能していないってどういう状態
ファイルを読み込んでいないってこと?
返り値のエラーはどうなっているの
137134:2007/01/12(金) 15:44:54 ID:???
>>136

$a = file_get_contents("test.txt");
echo $a;

で結果は何も表示されません。
fileがないとかそういうエラーも出てません。
138nobodyさん:2007/01/12(金) 15:45:41 ID:???
>>135
せっくすべーりーまっちょでちゅヾ(@°ω°@)ノ
139133:2007/01/12(金) 15:56:31 ID:???
>>138
こいつなんなの?
よくいるみたいでけど

>>135さん
それだと1つでもマッチしているとTRUEになるんです…
すべてあっていた場合のみTRUEという関数は自作するしかないのでしょうか?
140nobodyさん:2007/01/12(金) 16:02:47 ID:???
生年月日を入力すると年齢が表示されるというものを作っています。

//今日の日付
$today=mktime();
//生年月日を結合
$birth=mktime(0,0,0,$_POST["moon"],$_POST["day"],$_POST["year"]);
$age=$today-$birth;
echo "あなたの現在の年齢は".date("Y",$age)."歳です";

フォームから自分の生年月日を入力して送信したら年齢が出るという
仕組みなのですが、上手くいきません。どこがおかしいのでしょうか?
141nobodyさん:2007/01/12(金) 16:16:27 ID:???
>>140
moonはおかしいだろmoonは
142nobodyさん:2007/01/12(金) 16:19:51 ID:???
わろす
day もおかしいな
143nobodyさん:2007/01/12(金) 16:22:37 ID:???
「月」だからmoonか。間違ってはいないなw
144nobodyさん:2007/01/12(金) 16:24:55 ID:???
WEB(DB兼(oracle))サーバー上のDBバックアップのバッチファイルを
php経由で叩こうとしてるのですが上手くいきません
セキュリティとか実行権限あたりかと思うんですが・・・
よろしくお願いします
145144: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は作成されるのは確認しました
146nobodyさん:2007/01/12(金) 16:33:14 ID:???
test.dmpが作成されるならうまくいってるじゃん
147nobodyさん:2007/01/12(金) 16:42:15 ID:???
>>142
dayはいいんじゃないの?dateだと年月日全部って感覚なんだけど。
違うかな。
さて、ヒントはmktimeやdateの有効範囲。
ロジックが間違ってます。
じゃどうするか。貴方が計算するように計算するんです。
148nobodyさん:2007/01/12(金) 16:44:07 ID:???
>>145
test.php経由だと上手くいかないんです
「dir」や「time」等の単純(?)なコマンドは引数も取得出来るのですが・・・
149nobodyさん:2007/01/12(金) 16:46:21 ID:???
>>148
パスが通ってないんじゃないの?

passthru("test.bat",$ret);

passthru("D:\test.bat",$ret);

みたいに絶対パスで指定してみれ。
150nobodyさん:2007/01/12(金) 17:57:38 ID:???
特定の文字がHTML内にはいっているとエラーになるのですがこれは何なのか分かりますでしょうか?

Smarty error: [in hoge.html line 19]: syntax error: unrecognized tag: 投票


この場合、「投票」という文字を消すと動作します
151nobodyさん:2007/01/12(金) 17:59:21 ID:???
>>150
tagに2byte charは使えない。
152nobodyさん:2007/01/12(金) 18:02:21 ID:???
Shift_JIS をやめる
153nobodyさん:2007/01/12(金) 18:18:13 ID:???
>>150
19行目全部貼り付けてよ。
前のタグを閉じてないとかそんなんだろ
154nobodyさん:2007/01/12(金) 18:23:58 ID:ixGVyEcV
PHPでディレクトリ内に.html等のファイルを作る事はできるのですが
ディレクトリを作成する方法はどうしたらいいですか?
155150:2007/01/12(金) 18:27:00 ID:???
>>150
たぶんこれが原因です…ありがとうごさいます。
Shift_JISまんどくせ〜
それでもShift_JISでやらなきゃいけない…鬱鬱
156nobodyさん:2007/01/12(金) 18:32:38 ID:???
>>154
mkdir
157nobodyさん:2007/01/12(金) 18:33:23 ID:???
mkdir()
158nobodyさん:2007/01/12(金) 18:35:38 ID:???
>>154
mkdirでいいんじゃないの?
159nobodyさん:2007/01/12(金) 18:36:32 ID:???
>>154
mkdir()
160nobodyさん:2007/01/12(金) 18:40:01 ID:???
>>137
echo じゃなくて var_dump で出力してみたらどうなるの
false が帰ってきていたら失敗だよ
161nobodyさん:2007/01/12(金) 18:40:32 ID:???
>>139
素直にループまわしてチェックする関数作ったら?
162nobodyさん:2007/01/12(金) 18:42:59 ID:???
>>155
Smarty、テンプレートのエンコードSJIS、
スクリプトエンコードSJISの組み合わせは地獄だよ

せめてスクリプトのエンコードはEUCとかにして、
プリフィルターとポストフィルターを使って
SJIS -> EUC -> SJIS にしたほうが楽
重いけどな
163150:2007/01/12(金) 18:44:46 ID:???
>>162
(携帯は)重かった話になんないっしょ!!ですって…
鬱・鬱・鬱…
164154:2007/01/12(金) 18:53:26 ID:ixGVyEcV
>>156 157 158 159
ありがとう!買った本に載ってなかったので
ググって挑戦してみます。
165nobodyさん:2007/01/12(金) 18:57:03 ID:???
>>162
画面 SJIS
ソース UTF-8
DB EUC-JP
だったけど、そんなに重くならなかったぞ。
166nobodyさん:2007/01/12(金) 19:27:40 ID:???
SmartyとかShift_JISの問題じゃなくてタグの書き方が悪かっただけでしょ?

× <日本語 value="bar">foo</日本語>
× <tag 日本語="bar">foo</tag>
○ <tag value="日本語">foo</tag>
○ <tag value="bar">日本語</tag>

基本だろ
167nobodyさん:2007/01/12(金) 19:34:45 ID:2nrbZFx0
PHPのメーリングリストの全文検索って、使用できない状態なのですか?

http://ns1.php.gr.jp/search.html
168nobodyさん:2007/01/12(金) 19:47:22 ID:???
いや、あれはテンプレがSJISだからおこるエラー
{literal}で囲んでごらん。
エラー消えるから
169nobodyさん:2007/01/12(金) 20:31:25 ID:???
imagejpeg()は、ファイルか、ブラウザにしか出力できないようですが、
変数に入れることはできないのでしょうか。
jpegイメージの実態を変数に代入したいです。
170nobodyさん:2007/01/12(金) 20:33:06 ID:???
>>169
参照渡し。
171nobodyさん:2007/01/12(金) 20:37:48 ID:???
>>170
すまん。ちょっとよくわからん。
どれに対して&使えばいいんだ?
172nobodyさん:2007/01/12(金) 20:44:47 ID:???
ob_start();
imagejpeg($img_res);
$image = ob_get_clean();
これじゃダメ?
173nobodyさん:2007/01/12(金) 20:49:29 ID:???
>>172
あーこれは分かりやすい。
174nobodyさん:2007/01/12(金) 20:55:00 ID:???
>>172
でけました。どうも。
175nobodyさん:2007/01/12(金) 20:56:09 ID:???
>>163
php は携帯で実行されるわけじゃないじゃない
176nobodyさん:2007/01/12(金) 21:39:44 ID:???
switch文で、caseの値を、複数(値が、a,b,dの場合とか)入れるにはどうしたらいいでしょうか?
177nobodyさん:2007/01/12(金) 21:43:25 ID:???
>>176
switch(test){
case a:
case b:
case d:
echo 'a b d';
break;
case c:
echo 'c';
}
178nobodyさん:2007/01/12(金) 21:49:43 ID:???
即レス
ThankS!
179nobodyさん:2007/01/12(金) 23:25:36 ID:UiMa0kdE
>>163
なんのことか知らんが、出力だけSJISにしとけばいいだけじゃね?
180nobodyさん:2007/01/13(土) 00:01:41 ID:LrFYrtf4
キーが不特定の、配列があります。
この配列から何でもいいから値を一つ返したいのですが、
いい方法はありませんか?

foreachを使えば返すことが出来るんですが、
一つだけとりだすなら、処理が無駄のような気がして・・・・
181nobodyさん:2007/01/13(土) 00:14:43 ID:???
>>180
current(),end(), prev(),reset() ,next()
好きなのを使え
182nobodyさん:2007/01/13(土) 00:17:30 ID:???
$HOGE=$ARR[mt_rand(0,count($ARR)-1)]
183nobodyさん:2007/01/13(土) 00:25:38 ID:???
function rand_array($arr)
{
    $key_list = array_keys($arr);
    return $arr[$key_list[mt_rand(0,count($key_list)-1)]];
}
184nobodyさん:2007/01/13(土) 00:29:14 ID:???
array_randっていうのがあるよ
http://jp2.php.net/manual/ja/function.array-rand.php
185nobodyさん:2007/01/13(土) 00:39:19 ID:???
あれ?マニュアルのURL構造が変わった?
http://www.php.net/manual/ja/
じゃアクセスできないな・・
186nobodyさん:2007/01/13(土) 00:47:49 ID:???
>>185
できるけど?
187nobodyさん:2007/01/13(土) 00:59:59 ID:???
あれ、ちょっと前まで出来なかったのに・・
188nobodyさん:2007/01/13(土) 01:02:33 ID:???
185 じゃないけど
昼くらいから見れなかった
www.php.net 全体が
189nobodyさん:2007/01/13(土) 01:14:25 ID:???
で、
>>180
はあまりの人気にビビって消えた?w
190nobodyさん:2007/01/13(土) 01:18:24 ID:???
191nobodyさん:2007/01/13(土) 02:42:01 ID:???

smartyで
ループ回数が10回以上だったら、iterationの値を表示しないようにしたいのですがどんな方法があるでしょうか?
{if {$smarty.section.loop.iteration} != 10}{$smarty.section.loop.iteration}{/if}
尚、ループは50回以上の場合もあるのでiterationの値だけを表示しないようにしたいのです
192115: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
193nobodyさん:2007/01/13(土) 06:22:47 ID:yY12RXL1
使い勝手のいいHTMLパーサーない?ただし、Pearはのぞく
194180:2007/01/13(土) 08:19:51 ID:???
>>181
>>182
>>183
>>184

ありがとうございます。早速使わせていただきます。
195nobodyさん:2007/01/13(土) 08:32:10 ID:???
ifの条件式で、変数が数字だった場合、
trueを返すというのは可能でしょうか?

それとも正規表現関数を使わなければ、
不可能なんでしょうか?
196nobodyさん:2007/01/13(土) 09:10:55 ID:Ymy8BY2c
携帯から自宅のPCのローカルホストにアクセスしてPHPファイルにアクセスしたいんですが何か良いアイデアございませんか?パソコンでインターネットにつないでないので、家で携帯からどうやってチェックしようか悩んでます。
197nobodyさん:2007/01/13(土) 09:16:31 ID:???
>>195
is_numeric
198nobodyさん:2007/01/13(土) 09:17:09 ID:???
199nobodyさん:2007/01/13(土) 09:17:40 ID:???
ネットにつながってないなら知るかw
200nobodyさん:2007/01/13(土) 09:24:43 ID:???
僕ハッカー
201nobodyさん:2007/01/13(土) 09:28:24 ID:???
>>196
apach入れないと無理だな
インターネットにつながないと無理だな

PHPファイルにアクセスしてもサーバーが建ってないと動かないよ。
202nobodyさん:2007/01/13(土) 09:30:44 ID:???
>>201
その前に、globalかどうかだな。
最近のプロバイダー、セキュリティーや有料サービスとの差別化で
privateがほとんどだし。
203nobodyさん:2007/01/13(土) 09:35:15 ID:Ymy8BY2c
apacheやPHPなどの動作環境は揃ってます。あとは携帯からPCにどうアクセスしたらいいのか悩んでます。赤外線でできるのか、ケーブルで接続したらできるのでしょうか?やっぱりネット繋いでないと無理ですよね?
204nobodyさん:2007/01/13(土) 09:39:44 ID:???
>>203
え?携帯から操作するのって、外出先からじゃないの?
205nobodyさん:2007/01/13(土) 09:40:01 ID:???
USBで接続してPCのファイル実行するアプリでも作ればいいんじゃね?
206nobodyさん:2007/01/13(土) 09:46:18 ID:Ymy8BY2c
今回の場所は自宅ないです。説明不足ですみません。いまからアプリ作ってためしてみます。
207nobodyさん:2007/01/13(土) 11:50:02 ID:???
>>197
ありがとうございます
208nobodyさん: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
という警告が出てしまいます。

これはどのようにすれば解決できるのでしょうか?
ご教授下さいませ。
209nobodyさん:2007/01/13(土) 15:57:31 ID:???
正規表現の勉強不足。専門スレッドへ。
210208:2007/01/13(土) 16:03:53 ID:???
了解しました、失礼しました。
211nobodyさん:2007/01/13(土) 16:52:15 ID:???
>>208
PHPが文字列リテラルをパースする際の難点と相俟って面倒なことになってるな。


"/\\\\\[/"
"/\\x5C\[/"
'/\x5C\[/'
212nobodyさん:2007/01/13(土) 16:55:39 ID:???
>>211
っていうか、このケースならpreg_replaceじゃなくて、str_replaceだろ。
213nobodyさん:2007/01/13(土) 19:14:55 ID:???
ケースってなんだよ。
早ければ早いほうを使えばいい。
214nobodyさん:2007/01/13(土) 19:33:45 ID:???
正規表現は遅いからね
215nobodyさん:2007/01/13(土) 20:06:03 ID:???
int型を作りたいのですが、できますでしょうか?

実際のコード
$a=1;
echo bin2hex($a);//とした時に01 00 00 00となってほしい

$a=chr(1).chr(0).chr(0).chr(0);
とすれば、希望のようになる事にはなるのですが256を越えた場合の処理が面倒で・・・

よろしくお願いします
216nobodyさん:2007/01/13(土) 20:19:09 ID:???
echo gettype($a); してみ
217nobodyさん:2007/01/13(土) 20:34:04 ID:???
str_padでやるしかない
218nobodyさん:2007/01/13(土) 20:40:10 ID:???
外部phpをincludeしようと 
<?php include("スクリプトアドレス/test.php"); ?>
と記述すると、

Warning: main(): Failed opening 'スクリプトアドレス/test.php' for inclusion (include_path='.;c:\php4\pear')
というエラーがでてしまいます。

なんとか解決策をご教授願えないでしょうか?
219nobodyさん:2007/01/13(土) 21:16:00 ID:FzAsO9U8
掲示板で投稿があったときにキャッシュ的にPHPコードと表示用HTMLが混ざった
phpファイルを書き出しているんだけど、たまにファイル更新が途中で切れて
エラーが出るんだよね
今は見つけたら管理画面から再構築する処理ができるようにしてあるけど、
あるファイルにPHPの構文エラーがないかチェックする方法ってないのかな?
220nobodyさん:2007/01/13(土) 21:24:45 ID:???
>>218
外部って別鯖かよ
そりゃ泥棒だな
221nobodyさん:2007/01/13(土) 22:03:56 ID:???
>>216-217
そうですか・・・ありがとうございました
222nobodyさん:2007/01/13(土) 23:06:58 ID:???
>>219
それって・。・
223nobodyさん:2007/01/13(土) 23:09:11 ID:???
>>219
PHP CLIのオプション付きでチェックできた希ガス
224nobodyさん:2007/01/13(土) 23:12:27 ID:???
>>219
shell から php のスクリプトを実行して出力の文字列にエラーが文字列が
含まれているかどうか確かめたら?

というか、そもそもの原因を突き止めたほうがいいぞ
それ何かおかしい
そんなもの自作で作るより素直にテンプレートエンジンを導入したほうが
良いと思うけどな
225nobodyさん:2007/01/13(土) 23:18:56 ID:???
今まで設定ファイルに直書きでやっていたプログラム達に
管理画面を作っていこうと思ってます。

fileで読み込んで、行毎に「設定名\t値\n」でテキストエディタで開いた時に
わかりやすくするか、全部タブで区切って、項目無しでいくか、どっちが良いでしょう?

PHPを書き出してrequireの方が変数そのまま使えて楽でしょうか?
PHPで書き出すと、書き出しが面倒なのかなとも思います。

管理画面作る場合は他の人はどうやってるのか知りたいです。
やり方による後のメンテの問題とかあったら教えてください。
226nobodyさん:2007/01/13(土) 23:23:55 ID:???
>>225
定数とか変数とか書いたPHPファイルをincludeすればいいんじゃないかな。

parse_ini_file()
ってのもあるよ
227225:2007/01/13(土) 23:26:30 ID:Xm9uu4fh
すみません下げてました。

>>219
携帯絵文字とか文字コードの違うPOSTで「<」が壊れるか
ファイルロック系じゃないでしょうか
228nobodyさん:2007/01/13(土) 23:30:49 ID:???
>>225
日本語とかが入らないのなら
ini形式が楽だとは思う。
parse_ini_file() で設定読み込めるし
229nobodyさん:2007/01/13(土) 23:33:06 ID:???
XMLとか。parse_iniの形式もええわな。pearのConfigでもええし。
yamlとかもあるけどPHPではあんまり聞かんわな
230225:2007/01/13(土) 23:37:35 ID:Xm9uu4fh
>>225
ありがとうございます。
そんなのあったんですね!
工夫を考える前にデフォルトの関数暗記した方がよさげですね。
231225:2007/01/13(土) 23:45:02 ID:???
あ〜もうだめぽ
何で自分にお礼言ってるんだ俺…

みなさんありがとうございます。
232nobodyさん:2007/01/14(日) 00:21:20 ID:???
/admin
index.php
/profile
profile.php
/function
config.php

こんな感じのファイル構造だとして、設定ファイル(config.php)を読み込むには
どういう風に書くのが理想なのでしょうか?(エラーが起きにくい

自分の場合は、index.phpから読み込むなら
requre_once("function/config.php"); としています。(つまり相対指定)
233nobodyさん:2007/01/14(日) 00:24:38 ID:???
なんだその分かりにくいディレクトリ表記は
234nobodyさん:2007/01/14(日) 01:07:28 ID:???
>>232
フォルダ構造が一つにまとまっていれば当然相対指定でいいんじゃない
235nobodyさん:2007/01/14(日) 04:04:24 ID:???
/*で広い範囲をコメントアウトしたいのですが
その範囲中にコメントアウトが記述されているので、
うまくコメントアウトできません。
コメントアウトをネストしたい時はどうすればいいですか?
236nobodyさん:2007/01/14(日) 04:19:54 ID:???
無理。
頻繁にそういう状況が発生するのなら、プログラムの書き方に問題があるんじゃないかな。
237nobodyさん:2007/01/14(日) 04:33:49 ID:???
よっぽどのことがない限りは/*は使うべきじゃない。あとで/*使えなくなるから。
俺はclassの説明文とかfunctionの説明文以外では使用しないようにしてる。
238nobodyさん:2007/01/14(日) 06:58:13 ID:???
>>235
バージョン管理システムの導入をおすすめする。
今からならSubversionがいいかと思う。

最初は取っつきにくいと思うが、
その犠牲を払っても有り余る恩恵が得られると思う。
239nobodyさん:2007/01/14(日) 08:30:07 ID:Q6oeoCn/
空メール送信機能を実現したいのですがxmailでは無理ですか?
240nobodyさん:2007/01/14(日) 09:35:11 ID:???
>>239
無理。qmailを使え。
241nobodyさん:2007/01/14(日) 10:44:33 ID:???
入力された文字の全角を半角に変える関数ってあるのでしょうか?
242nobodyさん:2007/01/14(日) 10:51:56 ID:???
mb_convert_kana
243nobodyさん:2007/01/14(日) 11:01:00 ID:???
携帯電話向けのスレから誘導されてきました。
ソフトバンク端末で着メロ(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にするには
どのように対応すればよいでしょうか。
244243:2007/01/14(日) 11:02:36 ID:8Jw775ys
↑質問者なのにsageてしまいました
245nobodyさん:2007/01/14(日) 11:03:38 ID:???
PATH_INFO使うって結論でてるじゃん
他にもmod_rewrite使うとか
246nobodyさん:2007/01/14(日) 11:04:24 ID:???
>>245
オマエ、誰に言っているの?
247241:2007/01/14(日) 11:06:26 ID:???
>>242
出来ました!ありがとうございました。
248243:2007/01/14(日) 11:09:57 ID:8Jw775ys
>>245
>>246
すいません、私が悪いんだと思います。
他スレで同じ質問したときに回答して頂いた
情報だったのですが、PATH INFO調べても
イマイチわからなくて、誘導されたスレでも
同じ質問してしまいました
249nobodyさん:2007/01/14(日) 11:12:28 ID:???
どうしてもダメならtest.phpにするしかないな
250nobodyさん:2007/01/14(日) 11:28:13 ID:???
セッションとクッキーってどう違うの?
251243:2007/01/14(日) 11:34:51 ID:8Jw775ys
PATH INFOを使ってうまくいきました
私の調べ方がダメダメだったようです
php.iniのPATH INFOが無効になっていることに
気づかなかったことが原因です

レスくれた人に感謝します
252nobodyさん:2007/01/14(日) 11:35:22 ID:???
配列を文字列として結合して返す
という関数はありませんか?

"$array[0] - $array[1] - $array[2]"

こんな感じに変数の間に"-"を間に挟んで、
文字列として返してほしいのですが・・・
253nobodyさん:2007/01/14(日) 11:38:34 ID:???
implode('-',$array);
254nobodyさん:2007/01/14(日) 11:48:40 ID:???
>>253
ありがとうございます
255nobodyさん:2007/01/14(日) 13:25:40 ID:Q6oeoCn/
ShiftJISでPHPファイルを作成するとき、ECHOなどで文字を出力せず、<?〜?>のそとにHTMLとしてだしとけばエスケープは必要ないですよね?
256218:2007/01/14(日) 13:41:20 ID:???
>>220
そんな器用な事はできんです。

外部っていうのは、別のphpファイルってことです。
なんと呼ぶのが適切かわかりませんが・・・
257nobodyさん:2007/01/14(日) 13:42:53 ID:???
>>218
フルパス
258nobodyさん:2007/01/14(日) 13:47:29 ID:???
>>256
スクリプトアドレス ってとこは実際にはどう書いてあるんだ?
259nobodyさん:2007/01/14(日) 13:50:55 ID:???
>>255
同じ
260218:2007/01/14(日) 14:07:19 ID:???
>>257-258
ありがと〜 フルパスでいけました。
php4なんたらってエラーだったのでphpプログラムの問題なのかとおもってしまいました。
Thanks

261nobodyさん:2007/01/14(日) 14:17:59 ID:???
基本的な動作のprintとかが出来るなら(つまりphpが動作してるなら)
基本的に設定か自分のプログラムの問題

phpは結構な商業サービスにも使用されている物だぞ
262nobodyさん:2007/01/14(日) 14:32:36 ID:???
商用に広く使われているが故に、バグやセキュリティホールや言語使用の甘さを叩かれるのもまたPHP
26321です:2007/01/14(日) 14:34:15 ID:qItO8NuR
>>99
できたー!!!嬉し過ぎます!!!
ありがとぅございます!!

えーっと、なんか色々勘違いしてiniもApacheもいじくりまわして
、もぅわけわかんなくなって泣きそうでした。
設定はその2つだけだったんですね;

何度もほんとにありがとうございました(ペコリ
よし!がんばって続き勉強しょう!
264nobodyさん:2007/01/14(日) 14:39:39 ID:???
>>262
そういう心配はもうちょっとレベルが上がってからじゃん?
今回の質問者のレベルで気にするより、マニュアルなり入門書を・・
265nobodyさん:2007/01/14(日) 14:43:38 ID:???
まぁ、PHP(ZendEngine)自体の秘孔をつく事はあんまり無いな。
突いたらついたでバグ報告して直してもらうなりパッチを寄贈するなりすりゃみんな幸せ。

include時に相対パスを使う時に注意しなければいけないのは、
ブラウザから呼び出された一番最初のPHPファイルからの相対パスになるって事だね。
どこが基準になってるかは、getcwd()で分かるよ。

・getcwd - main script(一番最初)のパス
・__FILE__ - このファイルそのもののパス
266nobodyさん:2007/01/14(日) 14:49:51 ID:???
getcwdで判定して相対パス使うくらい複雑になるなら、ディレクトリ構造をちゃんと整理して絶対パスのみ使うよう統一したほうが楽かもね。
267262:2007/01/14(日) 14:56:21 ID:???
>>264
あー、すまん。質問者に言ったわけじゃないよ。
268nobodyさん:2007/01/14(日) 15:34:14 ID:???
正直すまんかった!
269nobodyさん:2007/01/14(日) 16:45:06 ID:???
いやいや、俺もすまんかった
270竜平:2007/01/14(日) 17:17:17 ID:???
いやここは俺が
271nobodyさん:2007/01/14(日) 17:59:25 ID:???
Apache + PHP + MySQL の組み合わせで開発環境もサーバもWinとLinuxが混在する場合、
文字コードは何にしたらいいですか?
272nobodyさん:2007/01/14(日) 18:11:13 ID:???
utf-8 か euc-jp
273nobodyさん:2007/01/14(日) 18:16:11 ID:???
携帯サイトを作る場合、たとえばEUCで作ったら、PHP.iniにShiftジスで出力するようにしたら大丈夫ですか?
274nobodyさん:2007/01/14(日) 18:31:38 ID:???
>>273
携帯の絵文字はshift-jisの外字文字の領域にあって(つまりshift-jisとも言えない)、eucではそれを表現できない。
なのでそれを扱いたいのならそれに応じた処理を書かないと大丈夫とは言えない。
「携帯 euc shift-jis 絵文字」でググればその辺の事情と幾つかの対応策が見つかるよ。
275nobodyさん:2007/01/14(日) 18:32:25 ID:???
foreach ループって
途中で止める方法がないの?
276nobodyさん:2007/01/14(日) 18:38:52 ID:???
止めるつーか抜け出す事はできる。
-> break。confinueもセットで覚えるべし。
277nobodyさん:2007/01/14(日) 18:40:18 ID:???
>>276
ありがとうございます
278nobodyさん:2007/01/14(日) 18:55:54 ID:???
>>273>>274
っていうか、今の携帯はUTF-8で大丈夫だろ。
Shift-JISっていつの携帯だよw
279nobodyさん:2007/01/14(日) 18:59:44 ID:???
電池パック変えつつ何年も使う人もいるよ
280nobodyさん:2007/01/14(日) 19:02:56 ID:???
>>279
そういう奴もいるだろうけど、それはブラウザの対応と一緒。
PCサイトだって、マイナーなブラウザやversionまで対応しないだろ?
今更、NN4.7に対応しているところはほぼ皆無だしな。
281nobodyさん:2007/01/14(日) 19:20:16 ID:???
まだ切り捨てるには早いんじゃないかって話
282nobodyさん:2007/01/14(日) 20:11:46 ID:tkWQOn4V
$weekday = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜')[$weekday];

↑これは構文エラーが出るんですが、こういうのを上手く1行で処理する方法ってありませんか?
283nobodyさん:2007/01/14(日) 20:23:56 ID:???
何がしたいのか分からん
284nobodyさん:2007/01/14(日) 20:36:18 ID:???
$weekday = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜'); $weekday = $weekday[$weekday];
285nobodyさん:2007/01/14(日) 20:38:01 ID:???
> $weekday = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜'); $weekday = $weekday[$weekday];
ちょーwww
286nobodyさん:2007/01/14(日) 20:53:02 ID:???
>>284
の予想が当たっていたらエスパーだな
意味分からん、っていうか勝手に構文開発するなw
287nobodyさん:2007/01/14(日) 20:56:00 ID:???
0から6の数値を、日本語の曜日に変換したいんじゃないのかな。
288nobodyさん:2007/01/14(日) 21:02:05 ID:???
なるほど
$days=array(〜〜);
$today=$days[$n];
289nobodyさん:2007/01/14(日) 21:11:15 ID:tkWQOn4V
あーごめん。
$weekday = 0;//0〜6が入ってる。
$weekday = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜')[$weekday];
で、0=日曜、1=月曜って出力したいんだけど、意味が分かったかな?
290nobodyさん:2007/01/14(日) 21:12:53 ID:tkWQOn4V
>>287
そうそう。

$weekdayNum = 0;
$weekdayArray = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜');
$weekday = $weekdayArray[$weekdayNum];

を1行で書きたいんだけど。
291nobodyさん:2007/01/14(日) 21:28:06 ID:???
ええ、一行にこだわる時期もありました。
今となっては苦い思い出です。
292nobodyさん:2007/01/14(日) 21:35:46 ID:???
>>290
$weekday = array_search($weekdayNum, array('日曜','月曜','火曜','水曜','木曜','金曜','土曜'));
293nobodyさん:2007/01/14(日) 21:41:51 ID:???
>>290
Perlに行け。お前はPHP使うな。
294nobodyさん:2007/01/14(日) 22:01:22 ID:???
>>290
ソースのZend/zend_language_parser.yに、>282のように書ける規則を追加すればいいじゃないか。
295nobodyさん:2007/01/14(日) 22:50:28 ID:???
>>290
1行で書く意味が単なる自己満足ならやめとけ
君はもっと他に学ぶべきことがあるはずだ
296nobodyさん:2007/01/14(日) 23:28:59 ID:???
>>295
どうして一行で書いちゃダメかを、一行で説明シル
297nobodyさん:2007/01/14(日) 23:36:14 ID:???
読みやすいのが一番
298nobodyさん:2007/01/15(月) 00:11:11 ID:???
余計な変数を導入するよりもリテラルに演算子を適用して
一発で求められる方がずっと可読性高いんだがなあ。

変数が導入されると他で使われないかとか、
何処かで書き換えられるんじゃないかとか考慮する点が多くなる。

が、まあそれができないのなら仕方ないけどね。
299nobodyさん:2007/01/15(月) 01:17:10 ID:???
$weekday = toWeek($num);

function toWeek($num)
{
$week = array('日曜','月曜','火曜','水曜','木曜','金曜','土曜');
return $week[$num]
}
300nobodyさん:2007/01/15(月) 01:26:14 ID:???
読みやすさ。
普通は1行に色々処理が混ざってると読み難い。

後で曜日使おうと思った時の使いまわし。
sun mon tue…にしたいとか、デザイン切り分けたい時のやりやすさ。

IDE使えば変数の参照なんて勝手にしてくれる。
301nobodyさん:2007/01/15(月) 01:27:59 ID:???
>>298
ならswitch文で書いちゃえばいいんじゃないの?

> 変数が導入されると他で使われないかとか、
直後にunsetしちゃえば?

> 何処かで書き換えられるんじゃないかとか考慮する点が多くなる。
1行上で定義しているものをどこで書き換えるんだよ。
302nobodyさん:2007/01/15(月) 02:16:32 ID:MepRBIHy
特殊文字の質問です

※まず最初に、以下に書く「&」とは半角の&のことです。

@フォームのテキストボックスに ©&copy; と記入する。

AそれをPHPで受け取り ©&copy; とそのまま表示させたい。

B要するに、©&copy;を &copy;&amp;copy; に変換したい。

よろしくお願いします。
303nobodyさん:2007/01/15(月) 02:20:15 ID:???
で、何がうまくいってないんだ?
304nobodyさん:2007/01/15(月) 02:23:52 ID:???
そもそも©っていう記号文字をフォームに入力すること自体無理でしょう。
©を入力したいユーザー自身が&copy;って入力するもんだと思う。
サーバはそれをそのまま保存してそのまま表示すればいい。
305nobodyさん:2007/01/15(月) 03:15:48 ID:???
>そもそも©っていう記号文字をフォームに入力すること自体無理でしょう。
無理じゃないです↓
http://www.google.co.jp/search?hl=ja&q=%C2%A9&lr=
306nobodyさん:2007/01/15(月) 03:39:25 ID:???
それはクエリーに仕込んでフォームに*出力させてる*んじゃないのかと。

>>302が何をどうしたいのか、はっきりよくわかんないんだけど
「htmlspecialcharsに食わすと、全部&→&amp;変換されてしまうので困ってます」に見えた。
必要な個所だけ「&amp;→&」に戻しましょう、という話じゃないのかな。
307nobodyさん:2007/01/15(月) 03:45:30 ID:???
>>305
それはUTF-8に含まれてる「コピー(著作権)」の記号でしょう。
それでいいのならそれがリクエストされたら&copy;に変換してあげれば?
308302:2007/01/15(月) 04:11:48 ID:???
レスありがとうございます。
その、©©を©&copy;に変換してDBにぶち込みたいので
変換方法を教えてください。
309302:2007/01/15(月) 04:15:02 ID:???
あう、変換されてしまった。
>>308は間違いです。
©&copy;を&copy;&amp;copy;に変換したい。
です。
310306:2007/01/15(月) 04:19:30 ID:???
>>309
下2行だけでいいので読んでいただければ幸いです。
311302:2007/01/15(月) 04:36:49 ID:???
>>310
読みました。
htmlspecialcharsは使ってませんが、使うと全部&→&amp;変換されますね。

>必要な個所だけ「&amp;→&」に戻しましょう、という話じゃないのかな。
そうです。
312nobodyさん:2007/01/15(月) 04:40:46 ID:???
XML_RSSでATOMのパースってどうにか出来ないもんですかね
313nobodyさん:2007/01/15(月) 13:46:11 ID:674OVm6O
なんだか人生に疲れました…
314nobodyさん:2007/01/15(月) 13:54:49 ID:???
おれもー
315nobodyさん:2007/01/15(月) 14:48:27 ID:???
>>313-314
イ`
316nobodyさん:2007/01/15(月) 15:14:47 ID:???
317nobodyさん:2007/01/15(月) 15:21:13 ID:QZYdEtmo
DOMElementをHTML付で変数に入れたいんだけど、どうすればいい?
318nobodyさん:2007/01/15(月) 15:31:57 ID:674OVm6O
>>316携帯からなのでみれないっす…
319nobodyさん:2007/01/15(月) 15:39:09 ID:???
>>318
お爺さんに諭されているような, 2006/12/26
レビュアー:I "II" (神奈川県横浜市) - レビューをすべて見る
良くある人生訓的な本ですが、他のものと違って
まるで肉親の祖父に諭されているような感じを受ける一冊です。
親しみやすい文体が心地よいです
320nobodyさん:2007/01/15(月) 15:46:50 ID:???
if( $スレ違い ){ 帰れ(); }
321nobodyさん:2007/01/15(月) 15:49:00 ID:???
>>317
意味が分からないのは俺だけですか?
322nobodyさん:2007/01/15(月) 17:12:31 ID:???
>>317
その要素名をHTMLで使える要素名に置き換えて出力すればいいのでは?
323nobodyさん:2007/01/15(月) 17:58:43 ID:???
phpファイルをUTF-8で保存して1行目に
<?php header('Content-Type: text/html; charset=UTF-8') ?>
と書くとエラーが出ます。
エラー文:
Warning: Cannot modify header information - headers already sent by
なぜでしょうか?
324nobodyさん:2007/01/15(月) 18:00:42 ID:???
>>323
Warning行はほんとに1行目?
下のほうでまたheader関数呼んじゃってるんじゃないの?
325nobodyさん:2007/01/15(月) 18:11:18 ID:???
includeしてるんじゃないの
326nobodyさん:2007/01/15(月) 18:12:47 ID:???
BOMつきUTF-8なだけとか
327nobodyさん:2007/01/15(月) 18:13:07 ID:???
>>324
違うよ、バカ。
---------file head
あい う<?php header('Content-Type: text/html; charset=UTF-8') ?>
---------
header関数の前に文字列か何かを出力しているだろ。
328nobodyさん:2007/01/15(月) 18:15:53 ID:???
>>327
なんか変な設定してる? その程度だとバッファに収まってるから、
headerは間に合うんだけど。
329323: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

です。よろしくお願いしいます。
330nobodyさん:2007/01/15(月) 18:54:51 ID:???
うちだとエラー出んな
331nobodyさん:2007/01/15(月) 18:56:05 ID:???
そもそもセミコロンもないのにparseエラーにならないのが不思議。

<?php header( "Content-Type: text/html; charset=UTF-8" ); ?>
<html><body>TEST</body></html>

これでどうよ?
(ダブルクオートにしたのは俺の趣味)
332nobodyさん:2007/01/15(月) 18:57:49 ID:???
スクリプトの最後にはいらないんだけどね
まぁ323は付けたほうがいいと思うけど
あと俺予想では原因は>>326
333nobodyさん:2007/01/15(月) 18:57:55 ID:???
>>326が答えだよ
334323:2007/01/15(月) 19:04:08 ID:???
>>331
>これでどうよ?
だめでした

BOMつきUTF-8って何ですか?
335nobodyさん:2007/01/15(月) 19:06:44 ID:???
bomつきutf-8ファイルでのheaderによるリダイレクト
http://ml.php.gr.jp/pipermail/php-users/2002-December/012229.html
336323:2007/01/15(月) 19:13:06 ID:???
>>335
質問する前にそのページ読みましたが解決できませんでした。
ちなみにTeraPad使ってますのでBOM付きじゃないです・・・

337nobodyさん:2007/01/15(月) 19:16:59 ID:???
338nobodyさん:2007/01/15(月) 19:18:43 ID:???
>>336
原因切り分けるヒント:
1. EUC-JPで試してみる。
2. header関数だけにしてみる。
339338:2007/01/15(月) 19:27:26 ID:???
もしかして、サーバーで、そのファイルをmoreやって中身を見てみ。
文字化けして何か入っているじゃないかな?
340323:2007/01/15(月) 19:28:06 ID:???
>>338
header関数だけにしてみました
EUC-JPだとエラーなし
UTF-8だとエラーが出ます
341nobodyさん:2007/01/15(月) 19:29:45 ID:???
>>340
ファイルをアップして
342nobodyさん:2007/01/15(月) 19:29:54 ID:???
>>340
UTF-8N は?
343323:2007/01/15(月) 19:30:14 ID:???
知識不足ですみません。
サーバーで、そのファイルをmoreって何でしょうか?
344nobodyさん:2007/01/15(月) 19:30:59 ID:???
>>340
使ってるTeraPadさんがステータスバーに文字コードを表示してると思うけど
「UTF-8」って書かれてない?「UTF-8N」でなく。
345nobodyさん:2007/01/15(月) 19:31:32 ID:???
moreよりもodしたほうがはっきりするような。
346338:2007/01/15(月) 19:32:29 ID:???
>>343
おれも、Unix系詳しくないんだけど、テキストファイルを見るときの
コマンドのことだよ。
moreとかlessとかそんな名前だったような?悪い、そこは他の詳しい人に。
347323:2007/01/15(月) 19:32:47 ID:???
>>342
UTF-8Nで保存したときの出力結果
TESTL

UTF-8Nで保存したときの出力結果のソース
<html><body>TEST</body></html>L

エラーは出ませんが最後にLと言う文字が…
データベース(MySQL)への接続処理なんですが、関数化して呼び出すような使い方はできるでしょうか?

例 1. mysql_connect() の例
http://jp2.php.net/manual/ja/function.mysql-connect.php#AEN111881

データベースへの接続処理を行なわせて、任意の場所ですぐにmysql_query()を実行できるようにしたいのですが、先にデータベースへの接続を済ませておかないといけないので、どういう処理をすれば良いのだろうか?と思案しました。
http://jp2.php.net/manual/ja/function.mysql-query.php
349323:2007/01/15(月) 19:35:27 ID:???
>>344
ステータスバーには保存した文字コード(UTF-8)と書かれています
サーバーはローカルのWindowsです
apache2 php5 です
350nobodyさん:2007/01/15(月) 19:39:34 ID:???
>>348
まずPEARのMDB2とか使ってみるといいんじゃないかな?
351323:2007/01/15(月) 19:43:28 ID:???
>>342
あ,すみません。
UTF-8NではエラーなしでちゃんとTESTと表示できました。
UTF-8Nで保存しろってことでしょうか?
352nobodyさん:2007/01/15(月) 19:47:27 ID:???
353nobodyさん:2007/01/15(月) 19:48:43 ID:???
結局本命の>>326か、
354323:2007/01/15(月) 19:54:33 ID:???

UTF-8NってBOMなしのUTF-8って意味ですか?
知りませんでした。8Nで保存します。
ありがとうございました。
355nobodyさん:2007/01/15(月) 19:56:46 ID:???
早々に答えが出てるのにここまで引っ張る力
なかなかの釣り師w
356nobodyさん:2007/01/15(月) 20:11:25 ID:???
調べもせずに「TeraPad使ってますのでBOM付きじゃないです・・・」
と言っておいて「知りませんでした。」

素人の仕業じゃないなw
357nobodyさん:2007/01/15(月) 20:19:49 ID:N+fJDAIZ
Debianでapache2,PHP4です
ローカルIPアドレスって取得できますか?
192.168.1.10みたいなやつです(DHCPは使っていません)
よろしくお願いいたします
358nobodyさん:2007/01/15(月) 20:23:11 ID:???
>>357
ipconfig
$_SERVER
359323:2007/01/15(月) 20:34:26 ID:???
ただUTF-8Nを知らなかっただけです。ごめんなさい
googleで調べて、某サイトにTeraPadはBOM付じゃない。と書いてあったので。

>>355
>>356
本当にごめんなさい
360nobodyさん:2007/01/15(月) 20:48:10 ID:???
>>359
参考までに知りたいんだけど何処のサイト?
361323:2007/01/15(月) 20:53:30 ID:???
>>360
windows apache2 ローカルサイト(>>349にも書きました)
で遊んでるだけですけど。
参考になりましたでしょうか?
362nobodyさん:2007/01/15(月) 20:55:31 ID:???
TeraPadはBOM付じゃない。って書いてあったサイトのこと
363357:2007/01/15(月) 20:56:10 ID:N+fJDAIZ
>>358
即レスありがとうございました
$_SERVERは検索などしていたのですが、もうひとつ分からなくって。。
もう一度検索などしてみます

あとググり方でちょっと教えて欲しいのですが、
php ipconfig
でググると、phpで作成(拡張子が.php)されているページだとコンテンツ内にphpが含まれていなくても
ヒットしてしまう気がするのですが、これって回避する方法ないでしょうか?
364nobodyさん:2007/01/15(月) 20:58:42 ID:???
ごめんipconfigは嘘
365nobodyさん:2007/01/15(月) 21:29:42 ID:???
$_SERVER["SERVER_ADDR"]
366nobodyさん:2007/01/15(月) 21:35:44 ID:???
php -.php
367nobodyさん:2007/01/15(月) 21:46:25 ID:???
>>363
-filetype:php

しかしphpに詳しいサイトはphpである可能性がかなりあると思うんだが
368nobodyさん:2007/01/15(月) 22:32:27 ID:???
ちょっと某サイトで
---------------------------------------

上のプログラムだと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

となるんだけど仕様?
369nobodyさん:2007/01/15(月) 22:46:34 ID:???
370nobodyさん:2007/01/15(月) 22:50:33 ID:???
>>369
今初めてしったwwwwあり

マルチバイト取得するときはどうすればいいのかな?
371nobodyさん:2007/01/15(月) 23:20:55 ID:???
あくまで文字数じゃなくて1byteの取得だからmb_substr使うしかないと思うよ
372nobodyさん:2007/01/15(月) 23:28:03 ID:???
秀和システム刊「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()メソッドを実行しても帰ってくるインスタンスは同じものでした。
 で、一つになったのですが、複数の人間が同時にこのスクリプトにアクセスした場合、インスタンスは同一のものが渡されるのでしょうか?
 どなたか心やさしい方がいらっしゃったらご教授いただけると幸いです。
373nobodyさん:2007/01/15(月) 23:30:35 ID:???
>>372
staticだからまったく同じオブジェクトが使用されるよ。
逆に言えば複数アクセスで問題になるクラスの場合は使うべきではない。
374nobodyさん:2007/01/15(月) 23:37:04 ID:???
素早い回答ありがとうございました!!
なるほど。複数人がアクセスする場合も同じインスタンスなのですか。。。

//staticな変数が置かれるメモリってプロセスごとに違うのでしたっけ?
////そもそもPHPのプロセスはひとつでしたっけ…
//////あぁ・・・勉強不足だ私・・・
375nobodyさん: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)
ディレクトリの指定方法が間違ってるんでしょうか?
それとも権限等別の問題でしょうか?
376nobodyさん:2007/01/16(火) 01:23:47 ID:???
>>372
>>373
>>374

複数人アクセスってのは同じサイト(スクリプト)に全く別のブラウザからアクセスって事ですよね?
>>374で自身が言っている通り、インスタンスは全く別のはずですよ。
377nobodyさん:2007/01/16(火) 02:10:44 ID:???
んなバカな。同じインスタンスを使うからSingletonでしょ。
378nobodyさん:2007/01/16(火) 02:15:52 ID:???
そんな危ない仕様ならPHP5へは移行できんな
379nobodyさん:2007/01/16(火) 03:13:56 ID:???
なんか用語が通じてないと思うのだがwww
380372:2007/01/16(火) 03:14:02 ID:???
>>372です。

>>376さんのご質問に答えます。
複数人でのアクセスというのは同じスクリプトに別のPCや別のブラウザからアクセスされた場合を想定しております。staticなインスタンスがメモリにおかれるということなので、プロセスが一つなら複数人がアクセスしても同じインスタンスが使われそうです。
/*とはいっても私自身勉強不足なので本当に同じインスタンスなのかわかりませんが…*/

ただ、その場合はどのタイミングでstaticなインスタンスが破棄されるのかとか
いろいろと疑問はつきませんが・・・
あと、CGI版PHPとモジュール版で違うのかとか・・・
381nobodyさん:2007/01/16(火) 03:36:02 ID:???
>>380
PHPのstaticメンバは「プロセス毎にメモリに配置される」わけではなく、「PHPの実行毎に割り当てられる」ので、アクセス毎に別のオブジェクトになる。
ちなみに、プロセスがどうのこうの言ってるけど、アクセス毎に別プロセスにするかどうかは、Webサーバ依存。
まあ現実問題、Apacheはアクセス毎に別々のプロセスを生成してるけどね。
382372:2007/01/16(火) 04:29:04 ID:???
>>381
と、いうことは>>372に書いた例でも別のアクセスの場合は別のインスタンスが生成されるわけですね?
383nobodyさん:2007/01/16(火) 04:36:04 ID:???
>>382
そもそも複数ユーザからのアクセスで同じインスタンスを返す方法なんて存在しない。
384nobodyさん:2007/01/16(火) 04:43:09 ID:???
>>377
Singletonパターンってのは1つのプログラム内でどこで何度生成しても
全て同一のインスタンスを指す、というだけのものであって、
あくまで1アクセス内のみに適用されるものだよ。
385nobodyさん:2007/01/16(火) 04:53:02 ID:???
逆にすべてのユーザからアクセス可能なら逆にめんどいことになる
386nobodyさん:2007/01/16(火) 04:55:39 ID:???
>>385
プロセス間通信の真似事ができそうだw
387372:2007/01/16(火) 05:01:02 ID:???
なるほど、納得しました。
皆様のご親切な回答、ありがとうございました。
388nobodyさん:2007/01/16(火) 06:24:26 ID:MadsLSvn
file_get_contents($url);でたまに failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden になるんだけど、
どうやったら回避できる?
389nobodyさん:2007/01/16(火) 06:40:17 ID:???
>>388
403が出ないURLを指定すればいいんでない?
390nobodyさん:2007/01/16(火) 06:44:15 ID:???
あるデータに表示順序を保持させてユーザが自由に順序変更できるようにしたいのですが、どのような方法がありますでしょうか?

また、順序変更する際のデータのとり方がさっぱりなのです。

例)
1〜10のデータ順序をユーザが決定
 ⇒
順序をPHPに送る
 ⇒
データベースに順序を格納

この『順序をPHPに送る』際、どのように、ユーザが設定した順序と内部のユニークキーを結び付けるのか見当が付かないのです。

長文になりましたが宜しくお願い致します。
391nobodyさん:2007/01/16(火) 07:28:52 ID:MadsLSvn
>>389
いや、、たま〜に出るんだよ。5回に1回くらい。
392nobodyさん:2007/01/16(火) 07:36:28 ID:???
>>390
「順番」を表す数値を全部送信させたらいいんじゃない?
393nobodyさん:2007/01/16(火) 07:38:58 ID:???
>>391
そんな奇妙な現象が起こっているなら、もう少し発生条件をよく確認した上で、サーバ管理者にその不具合について問い合わせてくれ。
394nobodyさん:2007/01/16(火) 08:44:53 ID:???
-リストの文字
-リストの文字
-リストの文字



<ul>
<li>リストの文字</li>
<li>リストの文字</li>
<li>リストの文字</li>
</ul>

にする方法と元に戻す方法をよろしくお願いします。
スレ違いだったらすいません
395nobodyさん:2007/01/16(火) 09:13:01 ID:???
>>391
403の意味分かってる?いたって正常
396nobodyさん:2007/01/16(火) 11:37:48 ID:???
>>394
str_replace
397nobodyさん:2007/01/16(火) 11:45:57 ID:???
以下の症状に悩まされています。
しかも、再現性がなく原因が分からないので、困っています。
自作のphpに問題があるのか、サーバーに問題があるのか、
分からないのですが、このような症状の要因として、
どのようなことが考えられますか。

(症状) サーバーにリクエストすると、またに、画面が白くなります。
    もしくはブラウザのエラー画面(ページが表示できません?)が表示されます。
(再現性) 500リクエスト〜1000リクエストに一回程度。
     特定のスクリプトに依存せず
(サーバー) レンタルサーバー:xrea
(php) php5
(OS) Linux
398nobodyさん:2007/01/16(火) 12:25:54 ID:???
配列内を検索してヒットしたらその番号を出力するというのを作っています。
ですが、配列内を検索するのはarray_searchで出来るとして
どうやって検索した文字を出力するのか分かりません。。
何か良い関数などがあるのでしょうか?
399390: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内でうまく取得することができないです。
なにかコツはありますでしょうか?
400nobodyさん:2007/01/16(火) 12:51:48 ID:???
変数内の”を削除するにはどうしたらいいのでしょうか?
401nobodyさん:2007/01/16(火) 13:08:33 ID:???
str_replace($foo, '"', '');
402nobodyさん:2007/01/16(火) 13:10:13 ID:???
str_replace($foo, '”', '');
403nobodyさん:2007/01/16(火) 13:12:11 ID:???
>>398
検索した文字って何? それって、array_searchの第1引数じゃないの?
404nobodyさん:2007/01/16(火) 13:18:26 ID:???
>>398
$ary = (10,11,12);
$key = array_search(11, $ary);
echo $ary[$key];
405nobodyさん:2007/01/16(火) 13:24:21 ID:???
>>397
静的なHTMLでも鯖が忙しいときはそうなったりする。
サーバサイドスクリプトだとPOSTしたままで終わったり。

>>401-402
俺が使ってる str_replace と引数の順序が違うように見える。
406nobodyさん:2007/01/16(火) 13:27:49 ID:???
>>399
意味わかんね
foreachの前の部分も出せば?

<input type="text" name="<? echo $data->seq; ?>">
<input type="text" name="<? echo $data->seq; ?>">
は一行でいいんじゃないの?
407390: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']などで取る場合、非常にやっかいなのです
408nobodyさん:2007/01/16(火) 13:47:13 ID:???
>>407
<input type=" hidden " name="seq" value="23">
を使えば?

セッション使ったほうがセキュアだと思うけどさ。

409390:2007/01/16(火) 14:05:46 ID:???
>>408
それだとユーザが定義した順序が送られてこないと思うのですが…
恥ずかしながら無知なのでそれでユーザが定義した順序を取得する方法が思いつきません
度々すみませんがお願い致します
410nobodyさん:2007/01/16(火) 14:13:25 ID:???
ユーザに定義して欲しいのは order なんでしょ。unique key でなくて。
411nobodyさん:2007/01/16(火) 14:56:12 ID:???
プログラムはEUCなのですが、読み込むファイルはShift_JISの場合、
どうやって文字化けなしに読み込めばいいのでしょうか?

$data=file(mb_convert_encoding("test.csv","EUC-JP"));

とかしても駄目でした。
412nobodyさん:2007/01/16(火) 14:59:57 ID:???
まぁ、何かと突っ込みどころがあるんだがwww
413nobodyさん:2007/01/16(火) 15:11:34 ID:???
>>411
lol
414nobodyさん:2007/01/16(火) 15:13:20 ID:???
>>412
まずは一つ目どうぞ
415412:2007/01/16(火) 15:18:32 ID:???
一つ目。
file と mb_convert_encodingの処理順が逆。
416nobodyさん:2007/01/16(火) 15:34:25 ID:???
今、??人の閲覧者がいます
的なサンプルコード知ってる人いますか?

cgiは沢山あるのに…
417nobodyさん:2007/01/16(火) 15:40:15 ID:???
>>409
もう少し自分で考えるって事をしたら?
HTMLフォームとphpの基礎を学びなおしたほうがいい

まずフォームで必要な情報をまとめて表なりリストにしなさい
まとまったら自分で考えるか、ここにそのリストなり表を書いてみれば

>>407>>408の内容を合わせれば出来るんじゃね?
とにかくトライ&エラーしてみそ
418nobodyさん:2007/01/16(火) 15:47:35 ID:???
>>416
cgiでもサンプルになると思うが・・・
Cだろうが、perlだろうがrubyだろうがpythonだろうが、phpだろうが
419390:2007/01/16(火) 16:41:14 ID:???
>>417
リストにしてみます。
自分では1週間ほど考え抜いたのですが
効率的な方法がどうしても分からないのでまたお力お借りするかと思います。
スミマセンが宜しくお願いしますm(_ _)m
420nobodyさん:2007/01/16(火) 17:22:33 ID:???
>>418
じっくりとphpに直せばいいんですけど
phpしかしらないので…
また、phpならではの作り方もあるかもしれず
421390: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や名前を格納しておく
422長文すみません390:2007/01/16(火) 17:55:16 ID:???
続き
2.フォームで必要な情報
number =master_tblの何番のデータと連動しているか、知るため
seq =ユーザ定義の順序を取る
理想としては<input name="num1" value="1">
このようにnum(数字)でmaster_tbl内部の数値を送り、valueでユーザの順序を得るのがいいのかなぁとおも宇野ですが
これはかなり効率が悪いのです。。
423nobodyさん:2007/01/16(火) 18:03:17 ID:???
まぁ、大抵はテーブル設計時にキーと順序情報って別にするけどね。
424nobodyさん:2007/01/16(火) 18:05:53 ID:???
↑スマソ。seqとnumberと別にしてるね。忘れてくれ。
425nobodyさん:2007/01/16(火) 18:09:12 ID:???
usr_num_tbl に seq って必要なのか?
usr_seq と data_seq の二つユニークでいいんじゃね?
俺が理解してないだけか?
426nobodyさん:2007/01/16(火) 18:22:43 ID:???
JavascriptでPHPの処理が出来るのでしょうか?
例えば
if($test==""){
echo "testは空です";
}else{
echo $test;
}

というよくあるPHPの分岐があったとして、通常はフォームのボタンを押すなどして
$testに値を入れて判断しますが、それをJavascriptで出来るのかどうか
気になって質問しました。(もちろんJavascriptのスレでないのでソースなどは良いです)
427nobodyさん:2007/01/16(火) 18:33:10 ID:???
>>426
何がしたいかよくわからないがajaxかな
428426:2007/01/16(火) 18:53:54 ID:???
>>427
わかりずらくてすみません。
用はif内を表示する為には1アクション起こさなければ表示されませんが、
それをJavascriptで出来ないかと思いまして。
(フォームに値を入れたら表示されるなど)

それでやっぱりAjaxなんですね。とりあえず道が開けました。ありがとうございます。
429nobodyさん:2007/01/16(火) 19:11:49 ID:???
>>421-422
ここまでまとまってるのに何で出来ないんだろうね、不思議な個だ・・
多分フォームが余り理解できて無い?HTMLは得意?

では今出来ているフォームだけを晒してくださいな。
430長文すみません390:2007/01/16(火) 19:33:26 ID:???
>>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 />
431nobodyさん:2007/01/16(火) 19:35:28 ID:???
>>428
onchangeとか使えば?
432nobodyさん:2007/01/16(火) 19:36:59 ID:???
>>430
えーと、これだと正直読みにくいので表示後のHTMLだけのほうが嬉しい
433nobodyさん:2007/01/16(火) 19:40:23 ID:???
>>430
好みの問題かもしれないが、今の段階では細切れに<?php〜?>を多用するより、
ヒアドキュメントを使うなりしてソースの視認性を高めた方が良いかも。
434nobodyさん:2007/01/16(火) 19:41:18 ID:???
>>430
あとこの <? print "玄人にもオススメできない"; ?> を多用するの読みにくいしやめたほうがいいよ。

ttp://cai.cs.shinshu-u.ac.jp/sugsi/Lecture/php/php/6-print.html
にかいてあるヒアドキュメントを使いなさい。
435434:2007/01/16(火) 19:41:52 ID:???
>>433
めっさかぶった失礼
436長文すみません390:2007/01/16(火) 19:44:54 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のナンバーを入れていく感じです
437長文すみません390:2007/01/16(火) 19:48:15 ID:???
>>433-434
すみません。。。

普段は自作のテンプレート使ってますが、
自分にし
か理解できないと思うのでこんな書き方にしました。
ごめんなさい…
438nobodyさん:2007/01/16(火) 20:14:24 ID:???
自作のテンプレート??
それが作れて何故これが出来ないのだろう・・


<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番目
ってことじゃなくて?
439nobodyさん:2007/01/16(火) 20:25:20 ID:???
で$_POSTでforeachしたら解決じゃね?
440nobodyさん:2007/01/16(火) 20:31:06 ID:???
ひとまずこれで出来るだろ
これをまず理解すれ
サニタイズとかは自分で調べてね

<?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;
?>
441nobodyさん:2007/01/16(火) 21:44:37 ID:???
サニタイズいうな
442nobodyさん:2007/01/16(火) 21:55:07 ID:???
なんて言うたらええねん
443nobodyさん:2007/01/16(火) 21:58:57 ID:???
>>434の紹介したサイト、説明が間違ってる、誤字も多かった。
宣伝じゃないと思うけど見てて恥ずかしい。
444nobodyさん:2007/01/16(火) 22:26:42 ID:???
まぁ、大体分かればいいと思って適当にググッたんだけどな
445nobodyさん:2007/01/17(水) 04:04:07 ID:gVMvFP3J
指定したIDのDOMElementを削除するにはどうすればいい?
教えてくれ。
446nobodyさん:2007/01/17(水) 04:08:20 ID:???
>>445
>>317に相談すればいい。
447nobodyさん:2007/01/17(水) 04:43:36 ID:???
ソースも出さない馬鹿は放置汁。
448nobodyさん:2007/01/17(水) 11:26:57 ID:???
while (!feof($fp)) {
$buffer = fgets($fp);
echo $buffer;
}

ファイルポインタが次の行に進むタイミングって、fgetsが1行読み込んだ後ですか?
fgetsは1行読み込むと同時にファイルポインタを1行進めるっていう関数でおk?
449nobodyさん:2007/01/17(水) 11:27:29 ID:cKV9B/mv
あげ忘れ
450nobodyさん:2007/01/17(水) 11:47:13 ID:???
>>448
そうだろう
451nobodyさん:2007/01/17(水) 12:47:54 ID:???
ファイルポインタいうな
452nobodyさん:2007/01/17(水) 13:51:46 ID:???
ファイルカーソゥ♪
453nobodyさん:2007/01/17(水) 14:05:08 ID:???
functionに配列を適応することは出来ないのでしょうか?
例えば
$array=array("あああ","いいい",ううう"");
testFunc("$array");

function testFunc($array){
print_r($array);
}

としても表示されません。。
454nobodyさん:2007/01/17(水) 14:12:49 ID:???
>>453
実引数がおかしいぞ。ダブルコーテーションで囲まずやってみそ。
testFunc($array);
455nobodyさん:2007/01/17(水) 14:14:15 ID:???
>>454
出来ました!凡ミスだったんですね。。ありがとうございました。
456nobodyさん:2007/01/17(水) 14:22:26 ID:???
Arrayって表示されるんかな?それは
457nobodyさん:2007/01/17(水) 14:28:22 ID:???
外部変数の$_GETや$_POSTってあるじゃないですか
ちょっとうまくいかないので、質問させてください。

$method = GET;
$method = "_$method";
print_r($$method);

これはprint_r($_GET);と動作は同じです。
通常これで外部変数が取得できます。

しかしメソッドや関数ないで上記を動作させると、
なぜか$_GETの配列を返してくれません。

メソッドや関数内ではprint_r($_GET)で配列を返してくれるため、
理由がわかりません。どうしてなんでしょうか?
458nobodyさん:2007/01/17(水) 14:35:21 ID:???
>>457
ソース
459nobodyさん:2007/01/17(水) 14:35:27 ID:???
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("","りんご","みかん");
としたら「りんご みかん」と表示されます。どこかおかしいのでしょうか?
460nobodyさん:2007/01/17(水) 14:37:52 ID:???
ほんとだ、関数内だと出ないんだね
REQUEST使うか素直に分岐したら?
461nobodyさん:2007/01/17(水) 14:41:44 ID:???
>>459
1番目の要素が見つかったとき返ってくるキーが0だからじゃね
462459:2007/01/17(水) 14:46:11 ID:???
>>460-461
とりあえずあまり対策がわからないので、
表示の際は array_unshift($array2,"");
として空の要素を追加するようにしました。
463nobodyさん:2007/01/17(水) 14:51:36 ID:???
if(false !== array_search(...
464nobodyさん:2007/01/17(水) 14:52:22 ID:???
>>462
そうですか
465459:2007/01/17(水) 14:54:15 ID:???
>>463
こういう方法があったんですね!大変参考になりました。
こちらを使用します。ありがとうございました。
466457: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>";
467nobodyさん:2007/01/17(水) 16:09:30 ID:???
>>457
なんでそんなトリッキーなことしてるのかが分からん。
しかもGETは定数扱い(定数定義してないから文字列として扱われるけど)だし。
468nobodyさん:2007/01/17(水) 16:12:03 ID:???
初心者ほど色々試したくなるんだろう。
仕事でこんなんやってたらぶっ叩くわw
469457:2007/01/17(水) 16:51:21 ID:???
>>467
>>468

GETとPOST入れ替えるだけで、
外部変数が取得できると楽かなと
思っていたのもので・・・

>>460

REQUEST試してみたんですが、なんか変な
文字列が配列に入ってるので、
おっしゃるとおり、GETとPOST分岐してみます。

ありがとうございました。
470nobodyさん:2007/01/17(水) 16:53:14 ID:???
言っておくが、この板で質問している全員が
職業プログラマというわけではないからな。
471nobodyさん:2007/01/17(水) 16:56:47 ID:???
つーか「PHPが仕事」なんて、声を大にして言いたくないよね。
472nobodyさん:2007/01/17(水) 17:14:41 ID:???
foreach内でin_arrayしたいのですが
foreach($hoge as $key=>$var) {
if(in_array($var, $hoge)) 処理;
}
とすると全てクエリがtrueになってしまいます。
foreach内で1つの要素をとるにはどうしたらいいでしょうか?
473nobodyさん:2007/01/17(水) 17:22:31 ID:???
>>471
人の仕事を馬鹿にするような人間には言われたくないよね
474nobodyさん:2007/01/17(水) 17:24:48 ID:???
>>471
つーか、PHPとかCとか言語にこだわっている時点で...ry
475nobodyさん:2007/01/17(水) 17:28:16 ID:???
PHP"も"扱えてなんぼだろ
476nobodyさん:2007/01/17(水) 17:30:33 ID:???
>>472
そりゃあ配列から取り出した値がその配列に存在するのは当たり前だ
何がしたいん?
477nobodyさん:2007/01/17(水) 17:35:24 ID:???
>>476
あっ!!…そうか…
配列に同じ数が1つ以上入っていないチェックしたいのです
478nobodyさん:2007/01/17(水) 17:41:35 ID:???
>>477
in_array

マニュアルの関数一覧か逆引きとかを買う事をオススメする。
479nobodyさん:2007/01/17(水) 17:44:18 ID:???
array_count_values
とかもいいかもね
480nobodyさん:2007/01/17(水) 17:45:38 ID:???
>>471
煽ってやるからどんな言語だと声を大にできるのか言ってみ
481nobodyさん:2007/01/17(水) 17:59:34 ID:???
>>480
このスレを見ている人はこんなスレも見ています。(ver 0.20)
SOHOとかフリーとかで細々食えだした奴 十九人目 [Web制作]
Ads by Goooooogle Part73 [Web収入]
疲れた管理人の憩いの場 23 [同人]
Ads by Goooooogle Part72 [Web収入]
組み込みプログラマーこそ真の一流!その4 [プログラマー]

>>471は、「組み込みプログラマーこそ真の一流」と言いたいんだろ。プッw
482471:2007/01/17(水) 18:09:26 ID:???
どんだけ痛々しい反応だよ・・・もうちょっと自分の仕事に自信持てよ。
483軟式PHP:2007/01/17(水) 18:19:26 ID:???
どこが痛々しいのか俺には分からん。別にPHPを絶賛してるわけでもないし。
まぁ、言語論争は他でやってくださいな。
仕事で使ってる人はPHPは手軽にWebアプリを作れる一言語でしかないわけですので。
484nobodyさん:2007/01/17(水) 18:23:09 ID:???
「PHPも仕事」だろ。
だいたいPHPを生業としてるものは、
他の言語もできて当たり前。
485nobodyさん:2007/01/17(水) 18:43:08 ID:???
PHPで符号無視(0埋め)右シフトって無理でしょうか?
Javascriptで言うところの >>> が使いたいんです。
486nobodyさん:2007/01/17(水) 19:38:50 ID:???
PHPは符号無し整数をサポートしていないので無理。
どうしてもMSBを使わなきゃならないなら、工夫汁。
487nobodyさん:2007/01/17(水) 19:46:10 ID:???
>>477
チェックしてどうしたいかにもよるな
重複を取り除きたいならarray_unique()でいいし
488nobodyさん:2007/01/17(水) 21:28:42 ID:???
$time_start = microtime(true);
処理
$time_end = microtime(true);
$time = $time_end - $time_start;

この経過時間を計る処理なんですが、
結果で4.6014785766602E-05って、このE-05とかE-06はなんなんでしょうか?
早いのか遅いのかさっぱーり分かりません。。。
489nobodyさん:2007/01/17(水) 21:35:21 ID:???
>>488
浮動小数点表記。
490nobodyさん:2007/01/17(水) 21:46:45 ID:???
今までは編集画面に値を渡す時など
<a href="edit.php?id=<?=$id?>">編集する</a>

のリンクから次のページに値を渡し、echo $idなどで表示していたのですが、
違うサーバで試した時、それでは動きませんでした。

それで後に次ぎページで表示する際はecho $_REQUEST["id"]としないと
URL上の変数を表示出来ないみたいなのですが、
これはregist_globalがonになってないからですよね?

また、今後はecho $_REQUEST["id"]という書き方で統一した方が良いのでしょうか?
491nobodyさん:2007/01/17(水) 21:57:54 ID:???
regist_global は off が強く推奨されています
492nobodyさん:2007/01/17(水) 22:42:36 ID:???
>>490
その場合は$_GET['id']を使用することをお勧めする。
493nobodyさん:2007/01/17(水) 22:57:33 ID:???
>>492
わかりました。サーバを変更して初めて気づいたので
早速、プログラムのソース内全部書き替えます。

ありがとうございました。
494nobodyさん:2007/01/17(水) 23:19:31 ID:I/eWBx8l
浮動小数点てどんなときにつかうんですか?タイマーの精度がintよりもいいってことですか?それとも小数点を使うためにあるのでしょうか?
495nobodyさん:2007/01/17(水) 23:33:02 ID:gVMvFP3J
PHPでOOPできない奴いるの?
496nobodyさん:2007/01/17(水) 23:36:59 ID:???
>>494
一般論で言えば理系の演算で用いられる極端に小さい数値や極端に巨大な数値を表現するためにある。
小数点を表現するだけなら浮動小数点以外にも固定小数点という仕組みも世の中には存在する。
固定小数点では誤差という問題が発生しないが浮動小数点では常に誤差の問題に悩まされる。
COBOLなどの事務計算向け言語では固定小数点方式が用いられている。

しかしPHPには浮動小数点以外に小数点を表現する仕組みは標準では用意されていないので
浮動小数点=小数点を使うためにある、という理解でOK。
497nobodyさん:2007/01/17(水) 23:37:35 ID:???
>>495
そりゃいるだろ。
OOP専用の言語じゃないんだし。
498nobodyさん:2007/01/17(水) 23:39:37 ID:gVMvFP3J
>>497
そしたら、フレームワーク使えなくね?
499nobodyさん:2007/01/17(水) 23:50:02 ID:???
>>495
ページをパーツ毎に分離してincludeしてPHPってスゲーって使ってる奴もいるからな
500nobodyさん:2007/01/17(水) 23:53:25 ID:???
>>498
自分がプログラムを始めた頃を思い出してみれ。
OOPもFWも言葉すら知らなかっただろ?
501nobodyさん:2007/01/17(水) 23:54:22 ID:???
>>499          ____
             , -‐.:.:.:.:.:.:.:.:.:.:.:.:‐- 、
             /:.:..:.:.:.:.:.:.:.:.:.:.ヽ、:.:.:.:.:.ヽ
            /.:.:,r─-----─¬尸:.:.:.:.:.:l
         /.:.:/{-─、    _,─-尸:.:.:. ||
          | i{             |!:.:.:.:.::|:.| えっ、phpてそれ以上にスゲー事できんの!?!
          レー|  ◯      ◯ イ:.:/.:/.:|rァ
          { ハ! ' '        ' ' 'ノイィ介//')
         ト、j|   r‐--─‐、   に'// /
          ノ:ハ:.ヽ、 |/ ̄ ̄ }   /-イ/ 厶
      / ̄ ̄ `ヽ:.:.\───' イ川:/  { /
      /      \父_ー-‐ '´ /ノ.:.:/  | !
     / ヽ      〉 \   厶‐、/   lノ
    厂   \    /  {⌒>'´ ヽ\ イ
  /      \,-┴‐n<      \ヾ |
502485:2007/01/17(水) 23:56:35 ID:???
>>486 回答Thanks!
やっぱり無理なのか・・・頭が痛いです
他の言語を使うことを検討した方がいいのかなぁ
503nobodyさん:2007/01/18(木) 00:18:53 ID:u+PvmfUj
公式マニュアルを紙で欲しいのですが、
販売している所などございましたら教えていただけないでしょうか?
504nobodyさん:2007/01/18(木) 00:34:58 ID:???
>>503
PHPの公式マニュアル
http://www.php.net/manual/ja/
↑これと同じ内容の本は売ってないと思いますが、上記サイトのページを全部印刷したらいいんじゃないでしょうか?
全部印刷したら何ページくらいになるんだろう?

http://www.phppro.jp/phpmanual/
↑こんなサイトもありました。
PHPプロに頼んで本を出してもらえないですかね?
505nobodyさん:2007/01/18(木) 00:36:44 ID:???
>>502
符号無し右シフト自体はできなくても、全く同じ答を出すことはできるよ。
506nobodyさん:2007/01/18(木) 01:07:25 ID:???
最新情報が掲載されてるのが利点なのに製本なんて
507nobodyさん:2007/01/18(木) 01:07:52 ID:???
>>498
PHPはOOP専用じゃないしフレームワーク専用でもない。
508nobodyさん:2007/01/18(木) 01:12:03 ID:???
>>503
PHPのマニュアルは結構な頻度で更新してるから
できる限り紙媒体でなく本家を見るようにした方がいいよ。
509503:2007/01/18(木) 01:28:20 ID:???
レスありがとうございます _ _
>>504
それも考えたのですが、製本作業をしないと見づらそうなので。
>>506>>508
一度読み通すために紙媒体が欲しくて。。
無いようなので、製本サービスに依頼するか、電子ペーパーブックを検討してみようと思います。

ありがとうございました。
510:2007/01/18(木) 01:42:54 ID:QmQzu1gN
511nobodyさん:2007/01/18(木) 02:32:01 ID:???
PHPに慣れたいんじゃなくて、本家マニュアルの内容を一度に読む行為そのものが目的なのか?
512nobodyさん:2007/01/18(木) 02:43:03 ID:???
リファレンスマニュアルを頭から全部読んでざっと機能を把握するのは基本中の基本のはずだが。
513nobodyさん:2007/01/18(木) 03:11:54 ID:???
きっと山篭りで修行するんだろ。
インターネットが使えないから、仕方なく製本したいんだ。
514nobodyさん :2007/01/18(木) 03:17:34 ID:dfwRUKzs
IIS6.0(WindowsServer2003),MySQL

ASPとMySQLを連携させて、既にHPを作っています。
さらに機能を拡張させるため、PHPを導入しようと思いまして、
設定でISAPIフィルタに「php5isapi.dll」を読み込ませたのですが
それをすると元のHPが表示されなくなってしまいます。
原因が分かる方いましたら、よろしくお願いします。
515nobodyさん:2007/01/18(木) 03:24:14 ID:???
>>512
プログラミングでそういう基本はあんまり聞いた事が…
書いて覚えろよ
516nobodyさん:2007/01/18(木) 03:37:41 ID:???
>>515
そんなことしてたら言語の特徴やら機能の全体像を把握できない。
歯抜けの断片的な知識なんかより、2〜3日かけてリファレンスを
熟読して全体像を把握した方が断然早いし楽。

…素人さんなら別だけどね
517nobodyさん:2007/01/18(木) 03:38:04 ID:???
PHPはやたら標準装備の関数が多いのと、
同じ機能で複数のI/Fの関数があったりするんで
リファレンス全体に1度目を通しておくのは確かに基本。
書いて覚えようとすると知識が偏る。
518nobodyさん:2007/01/18(木) 03:41:27 ID:???
他の言語経験者で紙に印刷して2、3日ってえらい奇特だな
519nobodyさん:2007/01/18(木) 03:42:41 ID:???
素人さんじゃない人は何さんなの?
520nobodyさん:2007/01/18(木) 03:56:17 ID:???
>>503の質問のレベルからしたらおそらくプログラミング初心者だろ
いきなりリファレンス通読はやめといたほうがいいんじゃ
521nobodyさん:2007/01/18(木) 05:00:35 ID:???
初心者ならマニュアルじゃなくてチュートリアル系から始めろっちゅーとりある
522nobodyさん:2007/01/18(木) 07:03:33 ID:???
むしろ初心者は、
PHP4とふるいけど、基礎的なことはわかるから、
ttp://www.net-newbie.com/support/pdf2/
これでも読んどけと。
まぁ今となってはあまり書かない書きかたしてたりするんで、
マニュアルとあわせて読むと効果的。
523nobodyさん:2007/01/18(木) 10:49:38 ID:Ra9i1bGq
カレントURL(現在のURL)を取得して そのURLがhttpかhttpsかで条件分岐
したいんですが どうやってカレントURLを取得したらいいのかがわかりません
(PHP4.3.2)

何か良い方法をご存知の方 ご教授いただけると幸いです
524nobodyさん:2007/01/18(木) 11:55:14 ID:???
>>515
PHPとASPは相性悪いよ
525457:2007/01/18(木) 12:00:47 ID:???
POSTってフォームのsubmitボタンを使わなければ、
送信できないんでしょうか?
GET見たいにリンク形式では不可能ですか?
526nobodyさん:2007/01/18(木) 12:07:33 ID:???
それはGETだ
527nobodyさん:2007/01/18(木) 12:08:35 ID:???
フレームワーク、smartyをまったく使ったことのないけど、
それらを使うプロジェクトで即戦力になるかな
528nobodyさん:2007/01/18(木) 12:10:14 ID:???
>>525
PHPとは全く関係ないけど、JavaScriptで可能。
529457:2007/01/18(木) 12:13:30 ID:???
>>528
ありがとうございます
530nobodyさん:2007/01/18(木) 12:17:26 ID:???
>>523
$_SERVERの中身に全部入ってるよ
531nobodyさん:2007/01/18(木) 12:53:31 ID:???
hoge.comというサーバで、
http://hoge.com/a/b/c/d.html
というリクエストあったら、
hoge.com/index.php
実行して、「a/b/c/d.html」は変数として受け取りたいんだけど、
そういうことはPHPだけでは不可能ですか。
やっぱりサーバ設定しないとだめですよね。
サーバはindex.htmlと、index.phpを自動的に表示するようになってる。
532nobodyさん:2007/01/18(木) 12:59:49 ID:???
>>523
同じような質問
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1418972
http, https の $_SERVER を見比べて判別するしかないんじゃね?
533nobodyさん:2007/01/18(木) 13:03:02 ID:???
>>531
普通にできるんじゃね?
$SERVER['PATH_INFO']とか
534nobodyさん:2007/01/18(木) 13:16:17 ID:???
>>533
できないよ。普通に404not found。
http://example.com/index.php/a/b/c/d.html
ならできるけど。
>>531
mod_rewrite
535nobodyさん:2007/01/18(木) 13:24:35 ID:???
配列操作の質問なのですが、
$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、 みたいなかんじで取得できてもおかしくないとは思うのですが、どうにも見つからないもので。
536nobodyさん:2007/01/18(木) 13:25:50 ID:???
追記:本当のキーは 'b' → 'a' のような規則性があるわけではありません。一応。
537nobodyさん:2007/01/18(木) 14:01:26 ID:???
smartyの
section内で$hoge[$foo]みたいなことしたいのですが、どのようにやれば出来ますでしょうか?

{section name="val" loop=$data}
 {$hoge.$foo[val].name}
{/section}
でできませんでした…
538nobodyさん:2007/01/18(木) 14:27:03 ID:???
スマートリーなるほどを話は専門スレッドへどうぞ。なるべく専門スレを活性化させてください
539nobodyさん:2007/01/18(木) 15:08:23 ID:???
お、便利だなそれww
phpをhtmlとして表示とか、できそうだねw
偽装しまくろぅwww
540nobodyさん:2007/01/18(木) 15:10:16 ID:???
オートログインサイトを自鯖に作りたいと思っています。例えば

ヤフーオークション  ID / Pass   【ボタン】
楽天           ID / Pass   【ボタン】
イトレード証券     ID / Pass   【ボタン】

のようなフォームを作り【ボタン】を押すと、新たなブラウザ(タブ)が開き
Yahooオークションのページへ進み、IDとPassが自動で入力され、ログイン後の画面に進む

このようなスクリプトをこしらえたいのですが、どういうロジックで進めばいいか悩んでいます
fopenでYahooオークションのURLをひっぱり、ソースにIDとPass情報を追加させて、HTMLを表示させようとしたのですが無理でした・・・
皆様のご意見お願いします
541nobodyさん:2007/01/18(木) 15:23:17 ID:???
>>540
多分、無理
542nobodyさん:2007/01/18(木) 15:27:00 ID:???
>>540
フィッシング サイト?
543nobodyさん:2007/01/18(木) 15:30:53 ID:???
>>542
自分用です
実際、IDとPassはDBにMD5で格納してそれを呼び出す感じですが
どうにも既存サイトのIDとPass入力を自動化させるスクリプトが思いつかないのです
544523:2007/01/18(木) 15:31:09 ID:Ra9i1bGq
>>530
>>532
ご回答ありがとうございます
ちょっと予定とは異なりますが リンク元のURLを表す$_SERVER["HTTP_REFERER"]
を用いました
現在のURLではなかったため 結構大変でしたが 何とかできました
ありがとうございました!
545nobodyさん:2007/01/18(木) 16:03:06 ID:???
>>537
{$hoge.$foo.val.name}
とかでできんじゃない?
つかったことないけどw
546nobodyさん:2007/01/18(木) 17:02:37 ID:???
>>544
$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]
とかじゃだめなん?
547nobodyさん:2007/01/18(木) 17:21:05 ID:???
>>543
> 無理でした・・・
じゃ、何が無理なのか不明。

> IDとPassはDBにMD5で格納してそれを呼び出す感じ
MD5は復号できないから、なにをしたいのか全くわからん。
548nobodyさん:2007/01/18(木) 17:46:54 ID:???
>>544
referer は送ってこないクライアントもあるから
これを前提に設計しない方が
549nobodyさん:2007/01/18(木) 17:55:11 ID:???
>>547
>じゃ、何が無理なのか不明。
頭の中で描いてみたら、ソースにIDとPassを追加させて保存
保存されたHTMLってYahoo鯖にはないわけだから当然弾か
れるという結論になって無理と書きました

MD5はそうですね・・・そうですよねorz
どうしたもんだか、、、時間ばかり過ぎていく
550nobodyさん:2007/01/18(木) 18:02:35 ID:???
>>549
それらのサイトを見てはいないんだけど、
ログインのページにあるフォームをPOSTしてやるスクリプトじゃ駄目なの?
551nobodyさん:2007/01/18(木) 19:34:30 ID:???
>>535
実際の値とソース見ないと分かりにくいよ

foreach内で
continue;
break;
を工夫してみれば?
552nobodyさん:2007/01/18(木) 19:41:58 ID:YjXpax59
スレ違いだと思いますけどお願いします。

http://example.com/hogehoge/
というURLを
http://hogehoge.example.com/
でもアクセスできるようにするにはどうすればいいですか?

例)
http://example.com/hogehoge/http://hogehoge.example.com/
http://www.example.com/hogehoge/http://hogehoge.example.com/
553nobodyさん:2007/01/18(木) 19:42:52 ID:tMFu2Al5
フィッシングサイトいくない
554nobodyさん:2007/01/18(木) 19:45:42 ID:???
>>552
ヒント つmod_rewrite
555nobodyさん:2007/01/18(木) 19:47:53 ID:YjXpax59
>>554
有難うございます
.htaccessでできると思ってました^^;



・・・なのであきらめます
556nobodyさん:2007/01/18(木) 19:54:47 ID:???
apacheのモジュールでmod_rewriteが有効になっていて
.htaccessが使える環境であれば
mod_rewriteは.htaccessで出来るよ。
557nobodyさん:2007/01/18(木) 20:58:23 ID:???
DNSも設定する必要があるんじゃない?
558nobodyさん:2007/01/18(木) 21:15:01 ID:???
>>555 の 「.htaccessでできると思ってました^^;・・・なのであきらめます」というのは
「サブドメインの設定は.htacessで出来ると思っていたんだけど、出来ないから諦めるよ」っていうことかも。
559nobodyさん:2007/01/18(木) 21:57:20 ID:???
DNSの話だろ。スレ違い。
560nobodyさん:2007/01/18(木) 22:29:27 ID:98uytmcY
初心者ですが

はてなダイアリーみたいに
自動でキーワードリンクがつく
プログラムを作りたいんですけど
どう書けばいいですか?

仕組みがまったく想像できません。
561nobodyさん:2007/01/18(木) 22:37:53 ID:???
キーワードを探してリンクに置換すればいいじゃない
562nobodyさん:2007/01/18(木) 22:53:21 ID:98uytmcY
その仕組みがわかりません。
563nobodyさん:2007/01/18(木) 22:59:15 ID:???
おかえりください
564nobodyさん:2007/01/18(木) 23:01:13 ID:???
>>562
どこまで考えたか言ってくれればアドバイスできる
565nobodyさん:2007/01/18(木) 23:07:24 ID:???
簡単なスクリプト書いてやりたいけど携帯からだから、コード書くのツライな…
566nobodyさん:2007/01/18(木) 23:08:55 ID:???
どこまで考えたとか、ソースを示さないと丸投げだろ。
ここは一応プログラムを作る人のスレだし
567nobodyさん:2007/01/18(木) 23:23:08 ID:???
>>562
はてなのキーワードの仕組み
ttp://d.hatena.ne.jp/hatenadiary/20040205/1075960162
正規表現でごっそり処理して美味しく戴きます
568nobodyさん:2007/01/18(木) 23:35:49 ID:ZHXjE+dx
キーワードリンクに変えるだけなら簡単じゃん。

キーワードサーチしてあったらアンカーで囲って
URLにキーワードのクエリ入れればOK。

キーワード登録の仕組みと、キーワードに何でもかんでも登録できないように
制限を考えるのが面倒そうだ。

はてなは日記を何回も更新しないと、キーワードの記者には
なれないって仕組みで対処してる。

接続詞とか、1文字とか全部弾かないとダメだな。
じゃないと全部キーワードになっちまう。

後、キーワードリストの並び順を文字数が少ない順に一回ソートしないと
キーワードリンクの中にキーワードリンクが入っちまう。
でも実際は長いワードにマッチした方が実用的だ。
一回マッチしたらその中はマッチさせないとか必要になってくるのかな。
569nobodyさん:2007/01/18(木) 23:37:32 ID:???
keywordlist 落としてみたけど
正気の沙汰とは思えないサイズだ
はてなってやっぱスゲーな
570nobodyさん:2007/01/18(木) 23:46:48 ID:???
キーワードが100個とか程度だと単純な実装の力業で全単語を順に舐めればいいだろうけど、
これが数万とか数十万オーダーになったらどうなる?

あとキーワード中にたとえば「電話機」と「電話」ってのがあったとして、
どっちをマッチさせる? 通常最長の方だけど、どう管理する?

とか考え始めると一筋縄ではいかない。
はてなはすごいと思いますよ。
571nobodyさん:2007/01/19(金) 00:19:22 ID:???
リアルタイムでやらなきゃいいんじゃん?
投稿があってから、長い処理を経て、結果が保存されて
閲覧はその書き出されて固定されたデータとか。
1週間に一回くらい書き直していくとか。
572nobodyさん:2007/01/19(金) 00:31:43 ID:???
うん。まあ規模が大きくなったら、複数のマシンで手分けして処理するようにするとか、
文書と単語のハッシュを巨大なbitにマップして文書に
単語が含まれているかどうか単純なand演算だけでフィルタしたりとか(これはPHPでは面倒そう…)、
いろいろやりようはあると思う。

リアルタイムでやらなきゃいいってのも一つの手だけど、
どれくらいの頻度で文書が増えていくかにもよるよね。
573nobodyさん:2007/01/19(金) 00:41:07 ID:???
>>543
オレがやってたネトゲはホームページ上からログインして
メンバーページからクライアントプログラムを起動するんだが、
メンバーページまでのログイン処理をやってくれるjsスクリプトなら誰かが作ってくれてたよ
php関係ないからsage。
574560:2007/01/19(金) 01:53:53 ID:74ZAn3Ei
キーワードリンクは
初心者には無理っぽいので
あきらめます。

575nobodyさん:2007/01/19(金) 01:55:23 ID:???
>>540
file_get_contents使ってページの内容を読み込んで、
onloadされたらID/PWを入力してsubmitするJSをphpで仕込んで表示すれば良いんじゃね?
576nobodyさん:2007/01/19(金) 01:58:39 ID:???
>>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) を見つけられてもいいのにな。という話です。
577nobodyさん:2007/01/19(金) 02:37:09 ID:1l3/TpIO

私は、
http://otoku777.lxl.jp/
で、毎月30万以上は貰っています。

フリーメールでも登録(応募)できるしね。
まだ登録(応募)してない人はしたほうが良いよ。
http://otoku777.lxl.jp/
578nobodyさん:2007/01/19(金) 03:34:43 ID:/UQbmip1
検索ワード取得したいんですが、
専用の関数ってありますか?
579nobodyさん:2007/01/19(金) 03:35:29 ID:???
またお前か
580nobodyさん:2007/01/19(金) 03:49:35 ID:???
ハテナ社員による釣りがようやく終わったか…
581nobodyさん:2007/01/19(金) 05:18:43 ID:???
>>578
GoogleのDBに不正アクセスする。
っていうか常識的に考えて無理だとわかる質問はしないでくれよ。
582nobodyさん:2007/01/19(金) 07:28:19 ID:/UQbmip1
無理なの?
既存のアクセス解析ツールなんかだと
リファラと検索ワード取得できてるけど・・・。
583nobodyさん:2007/01/19(金) 07:36:57 ID:???
そこまでわかってるなら関数さがしてないで自分でつくれるだろ。
584nobodyさん:2007/01/19(金) 07:36:58 ID:???
>>582
専用関数はあるかどうかしらんが、その方面ならできるね。
GoogleだとエンコーディングはたしかUTF-8で、
それがリファラにURLエンコーディングされた形で渡ってくる(こともある)から、
そいつを記録しとけばいいんじゃないの。

とまあ、以上にちりばめたキーワードで適当にぐぐれば何かとヒントが出てくると思うよ。
585nobodyさん:2007/01/19(金) 08:24:43 ID:???
>>573
それです!!
どこかにサンプルコードないでしょうか><!!
586nobodyさん:2007/01/19(金) 08:37:34 ID:???
573もスレ違いっていってんじゃん
587nobodyさん:2007/01/19(金) 08:42:27 ID:???
>>586
そこをPHPコードでおねがいします!! ><
588nobodyさん:2007/01/19(金) 09:35:40 ID:???
ただ、フレームごしに処理すればいいんじゃないのか?
っていうか自分用ならSleipnirのスクリプトを書いた方が早いし簡単。
既存のものでAutoLoginとかあるし。
589nobodyさん:2007/01/19(金) 09:56:25 ID:???
>>588
いや、作りたいのです
そもそも、自動ログインの仕組みが知りたいのです><
590nobodyさん:2007/01/19(金) 09:57:24 ID:???
パスワードのvalue="12345"をvalue="*****"にするにはどうすればできる?
591nobodyさん:2007/01/19(金) 09:59:11 ID:???
>>590
type="password"
592nobodyさん:2007/01/19(金) 10:01:40 ID:???
>>591
画面上はそれで*になるけどソースを表示するとvalueの値が丸見えになるんだけど・・・
593nobodyさん:2007/01/19(金) 10:05:18 ID:???
値を****に変換してvalueにいれればいいじゃん。
ま、サーバーには「****」が送られるけどw
ソースを見る時だけ「****」で、値は「12345」を送るなんて都合のいい事は無理だがね。
594nobodyさん:2007/01/19(金) 10:07:42 ID:???
>>593
ツンデレktkr
595nobodyさん:2007/01/19(金) 10:19:47 ID:???
>>592
何が目的なのかさっぱりわからん。
画像公開したいけど、保存させたくない
っていう矛盾
596nobodyさん:2007/01/19(金) 10:22:43 ID:SA/XQFQX
最近PHPのメールフォームから
英文のスパムが来るようになりました
日本語を含む文章だけ送信できるように
改造したいのですが
どういう文章を追加したらよいか教えてください。
597nobodyさん:2007/01/19(金) 10:26:27 ID:???
>>596
厳密なものではないけど、正規表現で、ひらがなが一文字もない場合は
エラーとかでいいんじゃね?
598nobodyさん:2007/01/19(金) 10:28:18 ID:???
>>595
管理画面でいろんな人のIDやパスワードを保存してあるんだけど
べつの人の情報も見れるようにしてあるのでパスワードは見られたら
困るから*にしてばれないようにしたい。
599nobodyさん:2007/01/19(金) 10:30:37 ID:???
>>598
それ、別に表示させなければいいんじゃね?
600nobodyさん:2007/01/19(金) 10:31:38 ID:???
それもありだけどいまのままでいってパスワードを*にするのは無理?
601nobodyさん:2007/01/19(金) 10:33:39 ID:???
そんな頭の悪い質問を繰り返すなw
602nobodyさん:2007/01/19(金) 10:34:19 ID:???
>>600
基本的に、デフォルトで表示させたいなら無理。
逆に、なんのために***を表示させたいの?
603nobodyさん:2007/01/19(金) 10:38:03 ID:???
MySQLのダンプファイルをパースしてくれるクラスやライブラリはありませんか?
探すと小規模なものはいくつか見つかるんですが、一般的なものってあるんでしょうか?
604nobodyさん:2007/01/19(金) 10:41:10 ID:???
>>600
目的が分からん。
HTMLのソースにも入れない=送信不可能、になるわけだけど、データの送信は不要なの?
だったら単に<input type=text value="*****">でいいと思うけど。
いっそ<input>も使わず*****と直接書いちゃってもいいと思う。
605nobodyさん:2007/01/19(金) 10:42:49 ID:???
>>598
パスワードを暗号化(又はハッシュ化)しないで保存するのはセキュリティ的にNG…
というのが、定説。

なんでパスワードなんか表示する必要があるのかわからん。
しかも<input>タグで…。
606nobodyさん:2007/01/19(金) 10:46:03 ID:???
結論
あほすぎる
607nobodyさん:2007/01/19(金) 11:39:29 ID:???
あー、もしかして
[名前フォーム] | [パスワードフォーム]
で一覧表示していて、変更可能になっていて、空にしちゃうと
Submitするときに全部カラになっちゃうからデフォルトで入れたいとかエスパーしてみる。
608nobodyさん:2007/01/19(金) 12:03:12 ID:???
>>596
全角を含まない文字列なら
mb_strlen($str) != strlen($str)
でいける
609nobodyさん:2007/01/19(金) 12:08:13 ID:+33hGGFp
>>608
かっくい〜!
610nobodyさん:2007/01/19(金) 13:33:28 ID:???
わがままだね
611nobodyさん:2007/01/19(金) 14:19:25 ID:???
>>610
My Mother ?
612nobodyさん:2007/01/19(金) 14:32:04 ID:???
変数からキーのみを取り出すことって出来ますか?
613nobodyさん:2007/01/19(金) 14:41:44 ID:???
配列からキーのみを取り出すことなら出来るよ。
詳しくはマニュアルへ。
614nobodyさん:2007/01/19(金) 14:58:19 ID:???
$array = array(10, 100, 1000, 10000, 100000);
$int = 4789;

こんな感じのソースで、
$intに一番近い数字を配列の中から探し出したいのです(この場合1000)
そんなことを簡単に実現するような関数はありますか?
615nobodyさん:2007/01/19(金) 15:09:00 ID:???
>>613
ここ見なくていいよ君


>>612
key()
616nobodyさん:2007/01/19(金) 15:21:35 ID:???
>>614
標準関数は無いだろうな(私は知らない)
ループして、$intとの差を順番に比較していって
一番差の少ない値を求めるしかないんジャマイカ?
617nobodyさん:2007/01/19(金) 15:23:38 ID:???
>>615
なぜ?
618nobodyさん:2007/01/19(金) 15:25:11 ID:???
>>617
意地悪で不親切だから
せめて関連する関数くらいおしえてやれよ
619nobodyさん:2007/01/19(金) 15:30:53 ID:???
>>618
「配列」って一応キーワードを入れたつもりだったんだが。
関数名より、マニュアルトップページから検索出来る方がいいと思って。
620614:2007/01/19(金) 15:44:09 ID:???
>>616
どうもありがとうございます。
なさそうとのことなので、その方法でやってみたいと思います。
621616: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;

622nobodyさん:2007/01/19(金) 15:46:27 ID:???
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版は作れないものでしょうか?
623nobodyさん:2007/01/19(金) 15:55:08 ID:???
>>622
いい加減、サーバサイドとクライアントサイドの区別をつけよう。
624614:2007/01/19(金) 15:55:55 ID:???
>>621
わざわざ書いていただいてありがとうございます。
早速使わせていただきますー
625nobodyさん:2007/01/19(金) 15:57:16 ID:???
変数に意図的に型宣言することはできないのでしょうか?
626nobodyさん:2007/01/19(金) 16:01:00 ID:???
>>625
宣言はできないね。
キャストしてやることはできるけど。
627nobodyさん:2007/01/19(金) 16:01:58 ID:???
>>623
了解。やはり無理ですね。諦めました。お手数かけました(吊
628nobodyさん:2007/01/19(金) 16:09:03 ID:???
>>626
やっぱ無理ですか。
いつか型付けも実装してほしいなぁ。
629nobodyさん:2007/01/19(金) 16:19:52 ID:???
静的型付けが実装されるってことは、全部の変数に型宣言つけなきゃいけないってこと?
面倒くさくて嫌だなぁ。
630nobodyさん:2007/01/19(金) 17:00:32 ID:???
静的な型付けなんて、利用する場面がすくないからPHPでは
実装されないだろう
631nobodyさん:2007/01/19(金) 17:47:43 ID:???
利用する場面っていうか、静的型付けじゃないと気持ち悪い。
632nobodyさん:2007/01/19(金) 17:54:10 ID:P38t/vZn
静的型付けを出来るだけ意識して作ることは出来るんじゃね。

どうしても嫌ならjavaでもやればいいと思うが
633nobodyさん:2007/01/19(金) 18:07:08 ID:???
変数にそれらしく付けれ。
$iXXXX … 整数型
$strXXXX … 文字列型
など
634nobodyさん:2007/01/19(金) 18:23:09 ID:???
fsockopenで開いたソケットで「test」「guest」「pass」と個別のパケットで受信した場合に
「test」「guest」「pass」を分けて変数に入れたいのですが、どうすればよいでしょうか?
よろしくお願いします
635nobodyさん:2007/01/19(金) 21:48:04 ID:3c0iN0iL
DB.phpがincludeされません
ディストリはsuse10.0です。
よろしくお願いします。
636nobodyさん:2007/01/19(金) 22:06:44 ID:???
こちらこそよろしくお願い致します。
637nobodyさん:2007/01/19(金) 22:09:24 ID:???
>>635
よろ!
638nobodyさん:2007/01/19(金) 22:54:39 ID:XwzELT8l
最近、画像ファイルのアップロードでPHPを使おうと思ってるのですが、
HTMLフォームを利用しないでアップロードできないでしょうか?
(要するに、参照せずに自動的に任意のファイルをアップロードしたいのです。)
どうでしょう? 可能ですか?
639nobodyさん:2007/01/19(金) 22:59:28 ID:???
するとそのアップローダを置いた人は
ユーザの任意のファイルを自動で手に入れられる訳ですね。
640nobodyさん:2007/01/19(金) 23:00:30 ID:???
phpでウィルスは作れないだろw
641nobodyさん:2007/01/19(金) 23:06:06 ID:XwzELT8l
>>639 640
そうなっちゃいますね。。。
画像ファイルだけなんですけどね。取って来るのは。。。
無理ですね。。。はぁ。

やっぱ、素直にFTPとかで画像ファイル送るしかないんかな。
642nobodyさん:2007/01/19(金) 23:09:44 ID:???
>>639
変な質問してすみませんでした。。。
643nobodyさん:2007/01/19(金) 23:27:38 ID:3c0iN0iL
DB.phpがincludeされません
ディストリはsuse10.0です。
よろしく説明お願いします
644nobodyさん:2007/01/19(金) 23:35:32 ID:???
>>643
それだけじゃようわからないから
おちょくられているのがわからないのかwww
645nobodyさん:2007/01/19(金) 23:36:04 ID:???
>>641
はあ。。。何言ってるんだろうこの人。。。
色んな意味で無理だわ。。。はぁ。。。
646nobodyさん:2007/01/20(土) 00:07:20 ID:???
>>641
/(^o^)\ナンテコッタイ
647nobodyさん:2007/01/20(土) 01:12:42 ID:/6Q5JJje
>>644
同じプログラムをれんさばで動かしたら
動いたのでサーバー側の問題だと思います。
エラーメッセージはあとでアップするので
おねがいします
648nobodyさん:2007/01/20(土) 03:01:18 ID:???
にせものは、やめて、ください!(><)悲
649nobodyさん:2007/01/20(土) 05:56:41 ID:???
>>641
つActiveX
650nobodyさん:2007/01/20(土) 10:29:45 ID:+1gEJG5n
>>647
DB.php
って、PEARかな?
651nobodyさん:2007/01/20(土) 10:55:48 ID:???
PEARじゃありません。PHPのディレクトリに入ってるファイルです。
ここの方達で解決できないような難題だとしたら教えてgooで聞いてきます。
652nobodyさん:2007/01/20(土) 11:01:56 ID:???
PEARじゃありません。APPLEです。
653nobodyさん:2007/01/20(土) 11:20:11 ID:???
すみません。
PEARでもAPPLEでもなく
僕はCHERRYでした。><
654nobodyさん:2007/01/20(土) 11:54:39 ID:???
fopenでURLを読み込んでfgetsする時、fopen先のURLが
Shift-JISの場合、文字化けします。(元ファイルがEUC-JPの場合)

mb_convert_encodingを使うと思うのですが、どの部分でどう使えば
適応されるかわかりませんし、うまく行きませんでした。。
例えば下記のようなソースの場合、どうすればいいのでしょうか?

$fp=fopen("http://***.com");
$line=fgets($fp);
print_r($line);
655nobodyさん:2007/01/20(土) 11:59:13 ID:2R+sYSL0
クラスの中で $this->hoge() を呼び出すと、
派生クラスで hoge() がオーバーロードされたいた場合
派生クラスの方が呼び出されるんですか?
自分のクラスの中のメソッドを明示的に呼び出したいなら
self::hoge() とすべきですか?
656nobodyさん:2007/01/20(土) 12:15:33 ID:???
>>654
それぞれの関数が何をするかをちゃんと把握しな
>>655
やってみればすぐ分かるよ
657nobodyさん:2007/01/20(土) 12:31:50 ID:+1gEJG5n
>>651
PHPのディレクトリって、どこだ?
/usr/local/lib/php
とかだったら、PEARなんだがねw
658nobodyさん:2007/01/20(土) 12:39:30 ID:apT1PIiM
突然すみません、ADSServiceって何でしょうか・・・
Cドライブにいつの間にかADSServiceっていうテキストファイルが作られてました。
他にも似たようなファイルが3つくらいありました、スパイウェアか何かでしょうか、ものすごく怖いですTT
659nobodyさん:2007/01/20(土) 12:53:40 ID:apT1PIiM
板間違えましたm(. .)m
660nobodyさん:2007/01/20(土) 12:56:16 ID:???
アハハ、こやつめ!
661nobodyさん:2007/01/20(土) 16:25:17 ID:dyYgBfVX
はじめまして。
今日はじめて、phpをインストールして。
テストで、print("hello");
こんなかんたんな、出力をさせました。

そして、IEを終了させると、
"問題が発生したため、IEXPLORE.EXEを終了します。〜"
なんてのが現われます。
原因としては何が考えられますか?
すみません、こんな質問ですがお願いします。
662nobodyさん:2007/01/20(土) 16:30:43 ID:???
>>661
PHPは関係ないじゃん。
663nobodyさん:2007/01/20(土) 16:35:34 ID:dyYgBfVX
あ、そうなんですか?
糞初心者ですみません。
となると原因はなんなんでしょうか?
664nobodyさん:2007/01/20(土) 16:37:34 ID:???
>>663
あの〜〜、問題も何も「IEを終了させると、」だから、
「 "問題が発生したため、IEXPLORE.EXEを終了します。〜" 」
って出るのは普通だろ。それで終了しなかったら異常事態だが。
665nobodyさん:2007/01/20(土) 16:40:19 ID:???
file() で得た文字列はシングルクォートでくくったのと同様のようですが、
これをダブルクォートくくり相当にするか、シングルクォートでくくった文字列の中の変数名を
パースする方法はありますか?
666nobodyさん:2007/01/20(土) 16:42:33 ID:???
>>665
str_replaceでダブクォをシンクォでパースするとか。
667nobodyさん:2007/01/20(土) 16:45:51 ID:???
>>665
文字列をダブルクォートで括ってevalに渡す
668nobodyさん: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;
?>


あといろいろやってみましたがうまくいきませんでした。
先輩方、よろしくお願いします。
669nobodyさん:2007/01/20(土) 16:53:21 ID:???
urlencodeがあるじゃん
$_GETとかはデコードされたデータだから
670nobodyさん:2007/01/20(土) 16:59:26 ID:???
ゆとり言語の弊害ですなw
671nobodyさん:2007/01/20(土) 17:06:00 ID:???
>>663
IEが糞
だと思う

>>668
お前の先輩になったつもりは無い
print_r($_SERVER)
で所望のが出るような気がする
672668: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」と表示させるにはどうしたらいいでしょうか?
673nobodyさん:2007/01/20(土) 17:10:43 ID:???
>>672
>>671は読んだのか?
674nobodyさん:2007/01/20(土) 17:20:05 ID:???
>>672
>「a%27b%22c」と表示させたいので
>「a%27b%22c」と表示させるにはどうしたらいいでしょうか?
echo "a%27b%22c";
675668:2007/01/20(土) 17:29:40 ID:???
>>673
読みました。
よろしくお願いします。
676nobodyさん:2007/01/20(土) 17:37:20 ID:???
echo urldecode($word);してみ
677nobodyさん:2007/01/20(土) 17:39:06 ID:???
$word = "a%5C%27b%5C%22c";でな
678nobodyさん:2007/01/20(土) 17:39:21 ID:KP/kHuU7
質問です。
「PHPによるデザインパターン入門」を読みながらデザインパターンを勉強してるのですが、
シングルトンパターンを使った場合、どのレベルでただ一つのオブジェクトとして機能するのでしょうか?

例えば、「そのPHPの動いているパソコンでただ一つ」なのか、
それとも「いま接続しているユーザーのsessionの中でただ一つ」なのか?
それとも「いま実行してるファイル内においてただ一つ」なのか?

ご存知の方いらっしゃいましたら、お教え願います。
679668:2007/01/20(土) 19:18:33 ID:???
>>676>>677
urlencodeしたデータをurlencodeでしょうか?
それをやってもだめでした…
680nobodyさん:2007/01/20(土) 19:29:54 ID:???
>>678
上のほうに同じ質問が出てたよ
681nobodyさん:2007/01/20(土) 19:37:41 ID:???
>>679
urlencode($_GET["word"]);
682668:2007/01/20(土) 19:45:22 ID:???
>>681さん
>>672と同じ結果でした…
683nobodyさん:2007/01/20(土) 19:48:49 ID:???
decodeだろ
エンコードしたらデコード。これ定説
684nobodyさん:2007/01/20(土) 20:29:55 ID:???
簡潔に質問を書きます。
index.php?hoge=a%27b%22c
というURLのGETの変数hogeのデコードされてないデータ「a%27b%22c」をHTMLに表示させたい。
要するに「a%27b%22c」をHTMLに出力したい。

#他の質問でもそうですけどわからない人はレスしないでください
#こういうこと書きたくなかったけど鬱陶しいレスが多いので…
685nobodyさん:2007/01/20(土) 20:39:04 ID:???
>>684
この質問したのは
>>668だけど、それ以来ID出してないので多分ニセモノ

構わないように
686684:2007/01/20(土) 20:46:48 ID:???
>>685の言う通り
もう構わないでください。解決しました。
やはりというか、自分で調べたほうが勉強になりました。

しかし他の質問でもそうだけど、質問の意味も理解できずにレスするやつ鬱陶しいよね
687nobodyさん:2007/01/20(土) 23:45:10 ID:???
質問する方も答える方もそんなに頭良くないんだから文句言うな
688nobodyさん:2007/01/20(土) 23:46:10 ID:???
おれもその内の一人かよ!!
689nobodyさん:2007/01/21(日) 00:33:23 ID:???
>>686
やっと気付いたのか。憐れな奴。
690nobodyさん:2007/01/21(日) 06:18:46 ID:???
なんでクラスのメンバ変数はfinalとか付けて継承を止めることができるようになってないんだろう?
691nobodyさん:2007/01/21(日) 11:08:16 ID:Y0OZFz+S
PHPには、PerlにおけるCGI::Carp qw(fatalsToBrowser)のようなエラー出力関数はありますか?
あれば教えて頂けると幸いですm(_ _)m
692nobodyさん:2007/01/21(日) 12:11:17 ID:08MwJFVu
自宅winXPにアパッチ入れて、phpの勉強してたら
突然プログラムが実行されなくなりました
.phpを保存か開くか質問するダイアログがでます

何が原因でしょう?わかる方教えてください
ちゃんと動かなくなった時に動かしてたプログラムは
フォームに名前を入力して送信→同階層の.phpで受けて
送信した名前を表示するものです
その後はhello worldすら実行しなくなりました

助けてください、よろしくお願いします
693nobodyさん:2007/01/21(日) 12:16:47 ID:???
OSが壊れたな
694nobodyさん:2007/01/21(日) 12:24:22 ID:???
vistaにしないと直らない
695nobodyさん: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 #等と表示され目的のデータを取得できません
どのようにすれば取得できますか? 
696nobodyさん:2007/01/21(日) 13:16:54 ID:???
697nobodyさん:2007/01/21(日) 13:22:43 ID:7pzdx2CI
>>696
そこのテンプレート通りにやってもうまく行かないのですが・・・
698nobodyさん:2007/01/21(日) 13:24:34 ID:???
699nobodyさん:2007/01/21(日) 13:43:33 ID:???
>>697
やってないじゃん
fsockopen関数の返り値は何でしょう
つか本文嫁よ
700nobodyさん: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);
}
?>
でやってもうまく表示されないんです
701nobodyさん:2007/01/21(日) 13:59:33 ID:???
>>1or>>7参照
702695:2007/01/21(日) 14:04:56 ID:???
失礼しました
windowsXP sp2
PHP4.4.4
サーバは 04Webserver
です

>>700の通り行った結果→タイムアウト(ページが表示できません)
703nobodyさん:2007/01/21(日) 14:08:09 ID:???
俺はfsockopen詳しくないけど、とりえあず原因の切り分けしてみれば?
localhostに接続できてるのか、$fpは取れているのか、書き込みで失敗しているのか
704nobodyさん:2007/01/21(日) 14:25:08 ID:???
質問者がsageで書くなバカ
705nobodyさん:2007/01/21(日) 14:25:58 ID:???
>>692
httpd.confの中のphpに関する設定
706nobodyさん:2007/01/21(日) 14:26:45 ID:???
>>702
04WebはUDPに対応していない、別の鯖ソフトでやれば解決するぞ
707695:2007/01/21(日) 14:27:59 ID:???
>>703>>706
ありがとうございます
708nobodyさん:2007/01/21(日) 14:51:24 ID:08MwJFVu
>>705
ありがとうございます
ただ、おかしくなる前と今でhttpd.cofに変更を加えてないんです
同条件で動かなくなりました
まだ試してみますが、他の可能性についても気が向いたら教えてください
709nobodyさん:2007/01/21(日) 14:52:40 ID:xp0A917W
>>708
httpd.confが変更されてないことを確認した?
710nobodyさん:2007/01/21(日) 17:38:28 ID:Fae6i/Oz
$aaa = "<!--UNKO_START-->";

とするとき、正規表現を用いてUNKOを他の変数に代入することは出来ますか?

// Perlにおける↓のようなもの
$aaa =~ s/<!--(\w+)_START-->/$aaa/g; // $1にUNKOが代入される
711nobodyさん:2007/01/21(日) 17:48:15 ID:???
できます
712nobodyさん:2007/01/21(日) 17:50:02 ID:Fae6i/Oz
どのような記述で出来ますか?
713nobodyさん:2007/01/21(日) 17:56:07 ID:???
正規表現の記述で
714nobodyさん:2007/01/21(日) 18:10:44 ID:???
すみません。PHPというか、プログラミングのうまいやり方がわからず、質問させていただきます。
現在、データベースにcategoryというテーブルがあり、格納されているデータは、
手動で数字インデックスを0から順に連番で付与して格納する仕様にあります。

当然ですが、そのテーブルから一行データを削除すると、
通常、連番でなければならない数字インデックスが、削除したデータの数字が飛んでしまいます。

この飛んだ数字を埋める為に、その削除したデータ以降のデータの数字インデックスを
一つずつ繰り上げたいのですが、スマートなコーディングが思い浮かびません。

現状は、一度削除した後に、再度、全データをfindして、ループでまわしながら、
全てのデータに0から順にupdateをかけて、その場をしのいでいます。

サーバ負荷の面からも、コードの可読性の面からも凄く泥臭いやり方になっています。

このようなコーディングをする場合は、何かうまい方法がないものでしょうか?
みなさまのお知恵をお借りしたく書き込みさせていただきました。

なお、現在のプログラムは、直ぐに書き込みいたします。
715714: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);

}

宜しくお願いいたします。
716714:2007/01/21(日) 18:16:30 ID:???
すみません。
変に改行が入ってしまって、凄く読みにくくなりました。
申し訳ございません。
717nobodyさん:2007/01/21(日) 18:22:30 ID:???
普通、そういう連番は自動で振ります。
一行データを削除した場合は、番号が抜けたままにします。
718nobodyさん:2007/01/21(日) 18:26:14 ID:???
>>714
update category set num = num - 1 where 削除したやつ以降

つーか、その連番は本当に絶対必要な仕様なのか?
あるレコードに付与された番号が時とともに変化すること自体、かなりわかりにくいと思うんだけど。
719nobodyさん:2007/01/21(日) 18:27:12 ID:???
php じゃなくて db の設計の話じゃないの?

うちは実際は削除はしなくて
削除フラグ立てるだけにしてるけど
720714:2007/01/21(日) 18:29:13 ID:???
>>717
お返事ありがとうございます。
シリアルによる連番は、この数字インデックスとは別に付与されています。
この数字は、テーブル内の同じ型のデータ内の連番インデックスなのです。

以下のような感じになります、
・グループAのデータが0〜5まで、連番である。
・グループBのデータが0〜6まで、連番である。
・この2つのグループは、同じcategoryテーブルに格納されている。
・自動付与の連番は、別に存在して、それを触る事はできない。

宜しくお願いいたします。
721nobodyさん:2007/01/21(日) 18:32:37 ID:???
そこを連番にしなければならないという、
設計の方が悪いとしか言いようが無い…
722714:2007/01/21(日) 18:34:24 ID:???
>>718
ありがとうございます。
やはりそういう感じで回すしかないですね。
この連番は、DBの仕様であって、自分ではどうする事もできない、おかしな仕様です。

>>719
そうですね。元を辿れば、DBの設計の問題なんですが…
このデータは、頻繁に削除され入れ替わるものですので、削除フラグで保存しておくと、
かなり肥大してしまう恐れがあります。
723714:2007/01/21(日) 18:47:29 ID:???
書き忘れましたが、この連番インデックスは、互いに入れ替わる事もあります。
例えば、現在4のインデックスを持つデータが1のインデックスを付与され繰り上がり、
それ以降のデータは、順番に数字がずれていく感じです。

DBの設計の問題かな?とも思いますが、これらの仕様を満たす、
よりよい設計も思い浮かばず、泣き寝入り状態になっています。
724nobodyさん:2007/01/21(日) 18:52:26 ID:???
どうしても変えられないならSQLとPHPで頑張れば何とか
725714:2007/01/21(日) 18:56:51 ID:???
みなさん。ありがとうございました。
徹夜で頭をひねって、もっと簡潔なコーディングができるDBの仕様を考え、提案してみます。
726nobodyさん:2007/01/21(日) 19:18:52 ID:???
画面表示のときに連番を振ればいい。テーブルにもたせる必要はない。
と俺は考えるが。
727nobodyさん:2007/01/21(日) 19:55:13 ID:Fae6i/Oz
>>691をお願いします。
728nobodyさん:2007/01/21(日) 20:00:56 ID:???
くだ質ですが気になったので質問します。

最近、PHPで構築されたっぽいサイトを見るとURLが
ファイル名.php?m=Kjifsk&p=Fgfkif

みたいな形式のサイトが多いですよね?ファイルは1つでincludeして各動作を
読み込む?のかよくわかりませんが。perlっぽい使い方な気がして。
(OpenPNEとかそんな感じかも。)

それで、なぜそういう風に=以下に識別コードか何かを付けて動作させるような
形式になってきているのでしょうか?単にindex.phpとかform.phpとかではなく。
やっぱり、セキュリティに関連するのでしょうか?
729nobodyさん:2007/01/21(日) 20:13:31 ID:???
CMSを利用することが多くなったんじゃない?
730nobodyさん:2007/01/21(日) 20:29:24 ID:???
つ [デザインパターン J2EE フロントコントローラ ]
731647:2007/01/21(日) 20:32:37 ID:0sqXUt7p
647以降の書き込みは偽者です。
DB.phpの話ですがPEARのライブラリです。
これはレンサバでは問題なく動きます。

ブラウザにcookieを食わせたいんですが
ひとつのcookieに複数の値を設定する方法
(aaa=php&bbb=ohmygod  こんな形の一つのcookieを作る方法です。)
が分かりませんので
ご指導お願いします。
732728:2007/01/21(日) 20:49:11 ID:???
>>729-730
730さんの語句をググって見ましたが、なんとなくわかってきたかも。
要はファイル・機能のリクエスト(アクセス)を分散させると
それだけ負荷がかかりやすいから、1つにまとめてそこから
各部位を呼び出すようにコントロールすると言うことですね。

確かにその方が良いような気もするけど、開発している側としたら
どれがどのファイルか分かりづらくなる時もあるんですよね。。
それに単純に1ファイル毎に用意する方が使いやすいし。

とりあえずもう少し勉強します。ありがとうございました。
733nobodyさん:2007/01/21(日) 20:58:43 ID:???
>>732
お前は凄まじいくらいに時代を逆走してるなw
いまどき1ファイル毎に処理する所なんてあるのか?
MVCどころか、オブジェクト指向ですら完全無視かよww
734nobodyさん:2007/01/21(日) 21:17:26 ID:???
つ初心者
735nobodyさん:2007/01/21(日) 21:52:01 ID:???
headerを使って
http://exsample.com/index.php
に飛ばす際、
$_POST['hoge'] = 'foo';
という値を渡したいのですが可能でしょうか?
可能でしたらやり方等お教えください
お願いしますm(_ _)m
736nobodyさん:2007/01/21(日) 22:04:46 ID:???
737nobodyさん: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

こういうエラーがでるんですがどこを直せばいいでしょうか?
738nobodyさん:2007/01/21(日) 22:12:27 ID:???
require_once 'DB.php';

require_once '/home/hibinotatsuya/public/www/DB.php';

パスが通ってないんでしょう。
上記と違う場所に置いてるなら正しい場所を絶対パスで指し示してみること。
つーか、本名を2chに書き込まないでください
739765:2007/01/21(日) 22:13:00 ID:???
>>766さん
それだと
$_GET['hoge'] = 'foo';
にはなりますが$_POSTでは渡されません
740765: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;

}
こんな処理がしたいのです
741nobodyさん:2007/01/21(日) 22:19:46 ID:???
>>737
pear:DBが入ってないんじゃね?
742nobodyさん:2007/01/21(日) 22:25:00 ID:???
>>738
いや・・・あきらかにPEAR::DBだろ

>>737
そのレンタルサーバでPEAR::DBが使えない可能性が高いけど、
使える可能性があるとすれば、↓かな?
/usr/local/lib/php/DB/DB.php
743nobodyさん:2007/01/21(日) 22:44:59 ID:Fae6i/Oz
xmlファイルの種類がRSS1.0かRSS2.0かAtomかを判別するにはどうすれば良いですか?
744nobodyさん:2007/01/21(日) 22:48:56 ID:???
>>740
$_GETか$_REQUESTで取る。
それがどうしてもダメならheaderでは無理。
HTTP通信を実装してPOSTするしかない。
JavaにはHttpClientあるけどPHPにもそんなんあるのかね。
745nobodyさん:2007/01/21(日) 23:08:42 ID:xp0A917W
>>737
自分のテスト環境にあるPEARライブラリの入っているディレクトリを丸ごと
レンタルサーバーにうpする。
で、そのディレクトリを、include pathに追加する。
746nobodyさん:2007/01/21(日) 23:10:00 ID:???
>>737
ヒビノ タツヤくん!元気?
747nobodyさん:2007/01/21(日) 23:42:43 ID:???
>>737
若槻千夏に聞いてみたら?
748nobodyさん:2007/01/22(月) 01:08:55 ID:???
imagecopymergeで画像を合成しているのですが、
GIFアニメを合成した場合、最初のコマで止ってしまいます。
GIFアニメをそのまま動かすにはどうすれば良いのでしょうか?
749nobodyさん:2007/01/22(月) 01:17:17 ID:H0oVPkgd
定期いらねwwwww
http://58.188.237.103/iranai/
750749:2007/01/22(月) 01:26:28 ID:H0oVPkgd
誤爆サーセン
751nobodyさん:2007/01/22(月) 02:00:43 ID:???
>>748
GIFは特許の問題があるから、使うのはあまりオススメしないけど。
752nobodyさん:2007/01/22(月) 02:12:35 ID:???
>>751
gif の特許は 2004/6 に失効してます
753nobodyさん:2007/01/22(月) 02:15:54 ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
754nobodyさん:2007/01/22(月) 02:16:30 ID:???
うらぎりものの会社のつくったフォーマットなんて使う気になれない。PNGまんせー
755nobodyさん:2007/01/22(月) 12:10:32 ID:???
>>668
php.ini の magic_quote_gpc を off
>>678
2番目
756nobodyさん:2007/01/22(月) 18:20:28 ID:XtuQ8nwW
PHP5関連の書籍を見ているとオブジェクト指向とかフルコントローラとか
色々気にする必要があるのかと思い、現在作成しているシステムも
作り直した方が良いのか否か、本気で悩んでいます。

過去レスも見ると、同じような質問もあったりして、「常識」の部類みたいですが
みなさんもやはり「常識」だと思われているのでしょうか?
どうもクラスとかの使い方がよくわからなくて、まとめられないのですが、
見るサイトすべてオブジェクト指向っぽいので、このままでいいのかと悩みます。
757nobodyさん:2007/01/22(月) 18:23:29 ID:???
>>756
趣味でやってるなら、好きなようにすればいい。
だが、勉強という意味合いもこめて、開発しているなら、
有名所のフレームワークやオブジェクト指向型プログラミングは絶対必須!

これができないと、PHPを使えるなんて口が裂けてもいえるようなレベルではない。
758nobodyさん:2007/01/22(月) 18:27:09 ID:???
>>756
担当しているサイトは顧客のニーズによって、毎月機能追加・変更が行われいるので、
オブジェクト指向で作って正解だった思う。(元々Java技術者だったし)
現在のシステムが稼動実績があるなら、あえてつくり直す必要もないと思うけど、
拡張性がある程度要求されるシステムなら、オブジェクト指向も検討に値すると思うよ。
759nobodyさん:2007/01/22(月) 18:29:34 ID:???
>>756
その人のレベルにもよると思うから常識とまでは言わないけど…
フレームワークやオブジェクト指向は、一度作ってしまえば、拡張も修正も凄く楽になる。

最初は面倒だと思うだろうけど、後々の事を考えたら作り直す価値はあるかも。
760756:2007/01/22(月) 18:32:57 ID:???
>>757-758
かなりお詳しいご説明ありがとうございます。
仕事でやっておりまして、プログラミングは元々プログラマーがやるのですが、
自分はディレクション等をしているので、ある程度のプログラミング知識も
必要だと思い、最近PHPとMySQLであれこれやっています。

それでそこそこ作れるようになってきたのですが、どうもコピー・ペーストする
作業が多く、デザインが重複する箇所も多くて、デザインとの両立が難しいです。
だから調べていたらオブジェクト指向とかフレームワークとかの知識が必要
みたいで悩んでました。

これまでうちの会社で依頼しているプログラマーでオブジェクト指向的な作りを
しているプログラマーが皆無だったのですが、もしかしたら私の指示が悪いの
かもしれません。やっぱり必要みたいなので、もう少し勉強してみます。
761nobodyさん:2007/01/22(月) 18:37:10 ID:???
>>760
技術系の知識をある程度持っているディレクターは、
重宝されると思いますよ。技術者からも信頼されるし。
ただ、依頼しているプログラマーがそれだと。。。
762nobodyさん:2007/01/22(月) 18:38:47 ID:???
>>760
>オブジェクト指向的な作りをしているプログラマーが皆無

なんつー会社だよw
フレームワークはともかく、オブジェクト指向なんて10数年前に最重要項目として位置づけられていたのに…
JavaやCの開発する時にどんなコードを書いているのか凄く気になるww
763nobodyさん:2007/01/22(月) 18:41:48 ID:x9xZGXV7
PHPのO/Rマッパーの現在の主流は何なんでしょーか?
DB::DataObject使ってるんですが、
「機能不足」「主流ではない」みたいな書き込みを見かけたので気になってます。
良かったら教えてくださいー。
764756:2007/01/22(月) 18:41:58 ID:???
>>761-762
個人・外注ともに依頼していますが、オブジェクト指向とかフレームワーク
に沿った作りをしているのは皆無でした。
データの受け取りもregister_globalがonの設定での作りだし。

だから、私にはそれが常識だと思い、2chで指摘されるまで
register_globalもoffにするものだとは思ってませんでした。
765nobodyさん:2007/01/22(月) 18:42:38 ID:???
>>763
安心しろ!他の追従を許さないほどの主流だ!!
766nobodyさん:2007/01/22(月) 18:48:06 ID:yHPtupAO
>>762
最近は、JavaやCが未経験なプログラマーも多いよ。
ちなみに、俺は、経験があるのはアセンブラーとphpだけだw
(Cもやってたけど、経験があるとは言えない程度だし)
767nobodyさん:2007/01/22(月) 18:51:23 ID:???
>>766
アセンブラなんて大学の授業でしかやったことねーw
そーいやFortranも大学のときにやってたなw
今は、Javaが70%でC系が15%でPHPが5%であとその他。
Perlとかももう使わなくなってきたな。
768nobodyさん:2007/01/22(月) 18:52:59 ID:x9xZGXV7
>>765
返事どうもです。
使ってて今のところ全然機能不足は感じないのですが、
もっといいのあるならそっち使ってみようかなと思ったっす。
もっと使い込んでみます。
769nobodyさん:2007/01/22(月) 19:00:51 ID:wVC7HJOQ
すみません。PHP+GDでImagettftextを連続で使うと文字化けする事があるのです。
特定の文字と言う訳でも無く、何か原因があるのでしょうか?
770nobodyさん:2007/01/22(月) 19:02:59 ID:uNp0p6nz
驚くかも知れんが、DreamWeaverが吐き出したPHPコードをそのまま採用する制作会社は
現実にあるんだよ。
771nobodyさん:2007/01/22(月) 19:07:32 ID:???
>>767
確かにプログラマとしてまともに生きていくにはJavaマスターは絶対必須だな。
PHPも楽天が使ってるって事で案件増えてはいるけど、Webの主流はJavaだな。
Javaだと金稼げるしw
772nobodyさん:2007/01/22(月) 19:07:38 ID:???
PHPって、そもそもオブジェクト指向プログラミングに
向いているという言語とは(今のところ)言えないでしょう?

仕事ならともかく、「これできない奴ってバカスww」とか押しつける奴は
変態だよ変態。まったくねぇ。
773nobodyさん:2007/01/22(月) 19:09:43 ID:???
>>772
そうでもないぞ。PHP5はわりかしまとも。
つっても、フレームワークを組み合わせなきゃ意味ないけど。
774nobodyさん:2007/01/22(月) 19:11:30 ID:???
PHPのスレで「Javaの方が良いよ」って会話になるとは・・・w
775nobodyさん:2007/01/22(月) 19:12:05 ID:???
フレームワークとかオブジェクト指向とか、具体的にどうやればいいんでしょうか?
776nobodyさん:2007/01/22(月) 19:16:09 ID:???
>>770
フォームから入力された文字列を、サニタイズしないところも結構あるくらいだ。
そのくらいのことでは驚かんぞ!w
777nobodyさん:2007/01/22(月) 19:17:15 ID:???
>>775
本屋行ってこい!
778771:2007/01/22(月) 19:18:02 ID:???
>>774
個人ベースでやるには、Javaは手間がかかりすぎる。
圧倒的にPHPの方が上。
779nobodyさん:2007/01/22(月) 19:27:32 ID:???
>>777
行ってきます。
どのくらい理解、または実現すれば身に付いたと言えますか?
780nobodyさん:2007/01/22(月) 19:29:57 ID:???
>>775みたいな質問した時点でもう無理だ
あきらめれ
781nobodyさん:2007/01/22(月) 19:30:18 ID:???
>>779
参考書も見ずに、いろいろなWebシステムがスラスラかけるくらい。
あと、フッっと思いついた機能をなんの苦もなしに、サラッっと追加できるくらい。
782nobodyさん:2007/01/22(月) 19:31:55 ID:???
>>779
小さなシステム(10人月程度)でいいから、
一から設計からテストまで完了させること。
四苦八苦しながらも、一から全てに関われば必ず見えてくるものがあるはず。
経験則から。
783nobodyさん:2007/01/22(月) 19:33:16 ID:???
>>779
2chの質問スレで偉そうに答えたり、罵倒したり、
語りだしたりできるようになればおk
784初心者:2007/01/22(月) 19:39:11 ID:???
ホスティングで、php.iniの設定がsession save handlers  files userになってる
んですけど、セッションでログイン機能があるHPの場合、変更したほうがいいのでしょか?
785nobodyさん:2007/01/22(月) 19:41:47 ID:???
>>784
うん
786ぬるぽっぽ:2010/08/25(日) 00:43:55:2007/01/22(月) 19:42:07 ID:???
あほーん
787nobodyさん:2007/01/22(月) 19:43:08 ID:???
>>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!:....    `' 、  ∧_∧
   `'=、:::::;;、:、===''ジ゙'==-、、,,,__  `'(・∀・) 
     `~''''===''"゙´        ~`'''' ヽ   ノつ
                       〜( ,,(~)
                         ヽ)

788nobodyさん:2007/01/22(月) 20:27:01 ID:???
PHPを貶されると、まるで自分が貶されたかのような錯覚に陥る奴が多いんだね。
挙句の果てには、「僕はPHP以外の言語もできるのでDQNじゃありません」と言わんばかりの、DQNな発言する奴が出てくる始末。
誰もお前の自己紹介なんか聞いてねえっつーの。
789nobodyさん:2007/01/22(月) 20:28:08 ID:???
例えばWEBデザイナーからHTMLだけ作ってきて
それをシステム化する場合もテンプレートと動作ファイルを分けるの?
そんな事するとあとからデザイナーが修正出来無くない?
790nobodyさん:2007/01/22(月) 20:42:31 ID:???
>>789
その程度のWebデザは、即刻解雇。
今は、HTMLやCSS・JSだけができるWebデザなんてゴミだよ。
PHPやJSPの文法も分かってないと仕事にならない。
791nobodyさん:2007/01/22(月) 20:57:51 ID:???
WEBデザイナーもプログラマーもそうだが、
あれもこれもできますっていうのは怪しいなぁ。
結局大したものが出来上がってこない印象がある。

メニューが100個もあるような食べ物屋より、
メニュー2,3個で勝負できる店の方が美味しいものだ。
792nobodyさん:2007/01/22(月) 21:01:03 ID:???
>あれもこれもできますっていうのは怪しいなぁ。
プログラマに関しては当て嵌まる話ではないな
793nobodyさん:2007/01/22(月) 21:05:12 ID:???
求人サイト見てると、PHPの技術も応募条件に入れている
WEBデザイナーの募集って無いんだけど。
794nobodyさん:2007/01/22(月) 21:20:09 ID:???
マニュアルに「ただし、PHP 5はオブジェクト指向言語ではありません。」て書いてあるやん・・
795nobodyさん:2007/01/22(月) 21:32:15 ID:???
オブジェクト指向っぽく書ける言語です
796nobodyさん:2007/01/22(月) 21:35:14 ID:???
>>793
PHPができない(プログラムかけないまでも読めない)奴は、採用試験には合格しません。
797nobodyさん:2007/01/22(月) 21:38:33 ID:???
ヒアドキュメント内に定数って表示出来ないのでしょうか?
define("ADMIN_DIR", realpath("../admin"));

echo<<<EOF
<a href="ADMIN_DIR">管理画面へ</a>
EOF;

みたいなことがやりたいのですが、そのまま文字で「ADMIN_DIR」が表示されます。
798nobodyさん:2007/01/22(月) 21:40:59 ID:???
>>796
デザインの才が、あるかどうかを見るのが先だろ。
本職の才があれば、その程度のPHPの文法なんて、
会社で数日教えればすむことだろ?
799nobodyさん:2007/01/22(月) 21:44:06 ID:???
>>797
ムリ。
そのソースから見るに、ファイルの内容を読み取って定数にすればいい。
そんな事をするくらいなら、parse_ini_fileを使って設定ファイルから読み込むかXML形式にしろ。
多分、キミのやりたい事はできる。

つか、ここには、PHPしかできない”自称”プログラマがたくさんいますねwww
PHPなんて一番簡単な言語だろ。
JavaやCができる奴ならPHPなんてものの数週間で完璧に使いこなせるレベルの言語だぞw
800nobodyさん:2007/01/22(月) 21:45:21 ID:???
>>798
なんでそんなに食い下がってくるの?
今は、Webデザ志望者なんて星の数ほどいて、選び放題。
デザインの才能もあって、PHPやJSPの知識もある奴なんてゴロゴロいる。
そういう奴しか採用されないよ。一回、面接受けてみ。
801nobodyさん:2007/01/22(月) 21:48:52 ID:???
×WEBデザイン能力
△WEBプログラミング能力
◎コミュニケーション能力

ぶっちゃけこうです。面接する側ですが。
802nobodyさん:2007/01/22(月) 21:50:22 ID:???
ですよねー
803nobodyさん:2007/01/22(月) 21:51:32 ID:???
>>801
だろうね。
使い捨てのWebデザなんて、言われたとおりの仕事ができる事が最重要だしね。
あと、クライアントの想像している完成図を、コミュニケーションでいかに引き出し実体化するかが重要。

自分でゼロから創作する仕事なんてよっぽどのWebデザじゃなきゃできないしw
これは、WebデザだけじゃなくSEやPGにもいえることだけどね。
804nobodyさん:2007/01/22(月) 21:52:50 ID:???
>>800
希望者が多いというだけで、選び放題じゃないだろ。
デザインで採りたいと思う人材なんて相当限られるが。
805nobodyさん:2007/01/22(月) 21:54:18 ID:???
>>804
現場を知らないね。Webデザなんて今は使い捨て状態。
こいつはダメだ!次!って感じ。
806nobodyさん:2007/01/22(月) 21:55:34 ID:???
じゃ、WEBディレクターが最強って事でいいの?
807nobodyさん:2007/01/22(月) 21:57:15 ID:???
>>806
この業界は最強なんてない。
WebデザイナもSEもPGも…全部使い捨ての一労働者。
最強になりたければ他業界に池!
808nobodyさん:2007/01/22(月) 21:57:21 ID:BrzhGU74
サニタイズされた文字列から、ある規則をもった文字列(例えば[http://]から
始まる文字列とか...)をリンクアンカーに正規表現で置換えしたいのですが
サニタイズされているために [ & ][ < ][ > ] などが、うまく置き換えられなかったりします。

正規表現でマッチしたものを、そのまま '<a href="' . $matches . '">' . $url . '</a>' とかやっているので
置き換えしたものをサニタイズしちゃうと、<a>...</a>までサニタイズされてしまいます。

どうすればできるのでしょうか?
809nobodyさん:2007/01/22(月) 22:01:22 ID:???
>>808
>サニタイズされているために [ & ][ < ][ > ] などが、うまく置き換えられなかったりします。

何をやりたいかよくわからんが、↑をうまい事やるのがプログラミングの腕だろ。
&amp;や&gt;&lt;に対して正規表現をかければ?
810808:2007/01/22(月) 22:59:29 ID:BrzhGU74
>>809
$str = str_replace('"', '"', $str);

とすることで解決しました。
ありがとうございました。
811808:2007/01/22(月) 23:02:17 ID:BrzhGU74
Ooooooooooooooooooooooooooooooooooooooops!! :-)

$str = $str_replace('&quot;', '"', $str);
812nobodyさん:2007/01/22(月) 23:04:43 ID:???
なんか穴がありそう…
813nobodyさん:2007/01/22(月) 23:49:07 ID:???
仕事の都合上PHP5.0.0を使用したいのですが、
本家のはリンクが切れているのか、
二日ほど前からDLを試していますが全く繋がりません。
もし、本家以外で5.0がDLできるミラーサイトなどがありましたら、教えていただけないでしょうか?
814nobodyさん:2007/01/22(月) 23:54:00 ID:???
>>813
普通に落とせるが?
ttp://jp.php.net/releases/index.php
しかし、わざわざ穴が一杯の古いのを使う奴の気がしれん
815nobodyさん:2007/01/23(火) 00:00:30 ID:???
$aaa=array("項目A","Aの値","1/23");
$bbb=array("項目B","Bの値","1/24");

こういう配列があったとしてテーブルで
[日付] [項目A] [項目B]
1/23  Aの値
1/24        Bの値

という表示にしたいのですが、組立方が全く分かりません・・。
そもそも上記のような表示は可能なのでしょうか?
816nobodyさん:2007/01/23(火) 00:08:01 ID:sJ8gA2OL
PHP_OSで返す値の一覧表ってありますか?
Win2Kの時はWINNTということだけ分かっています。
817813:2007/01/23(火) 00:08:40 ID:???
>>814
確かに落とせますね。
会社じゃウンともスンとも言わなかったんで、もしかしてセキュリティソフトか、なんかにひっかかってるのかも
他社との連携でPHP5以降を使うという仕様書はいただいたんですが、
5.2を使っても、大丈夫か?という質問メールに、まだ具体的に決まってないとかいう変なメールしか返ってこないんですよ
結局、5.2を使うとは思うんですが、念のためということで・・・
818nobodyさん:2007/01/23(火) 00:10:06 ID:???
>>814
おいらの先日の案件なんて4.0.6だ!
819nobodyさん:2007/01/23(火) 00:39:44 ID:Jof0MIkp
やあ(´・ω・`) また逢ったね

本当にすまない こんな騒動になってしまって


でもね、ひとつだけ閉鎖をふせぐ方法があるんだ


http://game11.2ch.net/test/read.cgi/otoge/1167185144/


↑のスレに


「あっきーは書き込まないでください」
と書き込むんだ。

では健闘を祈るよ
820nobodyさん:2007/01/23(火) 00:43:25 ID:L8zAhTeP
趣味でPHPスクリプトを公開しております。
HP見た方からあるスクリプトをお金払うから作ってくれとメール頂きました。仕事としてやったことがないのでー私が蔵に商品を納品するまでの流れはどうしたらいいのでしょうか?発行する書類等、納品までの流れなどいろいろご指導お願いいたします。
821nobodyさん:2007/01/23(火) 01:15:06 ID:???
法律とかめんどいけど法人になれよ
822nobodyさん:2007/01/23(火) 01:46:15 ID:???
>>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>

文字列出力は適当に
823nobodyさん:2007/01/23(火) 02:31:01 ID:???
>>822
すみません、、$aaaと$bbbの内容はファイルから読み込むのを想定して
おりますので、その時々で変わります。
だから、forかwhileで読み込む方法を考えているのですが
それで822さんのような表示が出来ないんです。
値があるのと無いのとがありますから。
824nobodyさん:2007/01/23(火) 02:43:30 ID:???
<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
825nobodyさん:2007/01/23(火) 02:46:08 ID:???
>>823
何がしたいのか何となく予想できてきたけど
とりえあず、漠然とした内容ではなく、きちんと論理的に条件を出して質問してみ
826nobodyさん:2007/01/23(火) 02:48:26 ID:???
>>824
セミコロン付けてないから
827nobodyさん:2007/01/23(火) 02:50:10 ID:???
>>825
一応雛形として組んだんだけど、おかしいとこが分からず

>>826
必要でしたっけ?そうならどこに付けるのか疑問なんだが
828nobodyさん:2007/01/23(火) 02:54:20 ID:???
>>827
>>825はどう見てもほかの人宛てだぞ。

「9行めで ',' か ';' が来ると思ってたとこへ、いきなり '}' なんて持って来るんじゃないわよ」
と言われてるんだから、その辺。つーか、セミコロンをどこに付けるのか疑問て。
829nobodyさん:2007/01/23(火) 02:58:18 ID:???
>>828
ああ、なるほど
よくわかりましたありがとう。

>>825には間違いでしたね
830815: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レコードを指しています。

それで悩みなのが、普通はテーブルの列は固定名にするか
別ファイルにて項目名を決めるものですが、上記のように結果データ内に
項目名(列名)を加えても表示出来るのだろうか?っと思った次第です。

もしできるなら、列表示用のファイルが必要ない為いいかなと。
831nobodyさん:2007/01/23(火) 03:09:59 ID:???
「DB的に言うと」せめて

$aaa = array("Aの値", "", "1/23");
$bbb = array("", "Bの値", "1/24");

じゃないの?ループで回すんだったら $aaa を使いまわすんだろうし。

どうしてもその形式で配列にぶち込みたかったら $aaa[0] の中身で条件分岐かけて
$aaa[1] の表示列を変えるというめんどくさいことをすれば期待どおりになると思う。

> もしできるなら、列表示用のファイルが必要ない為いいかなと。
832815: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のように書くなら列名(項目名)が表示されません。
833nobodyさん:2007/01/23(火) 03:38:18 ID:???
>>829
私は826ですが828ではありません
834nobodyさん:2007/01/23(火) 03:38:47 ID:???
だいたいにしてデータ行に列名があるのがおかしいんだよ
1行目をヘッダー行にして

"[日付]","[項目A]","[項目B]"
"1/23,"Aの値",""
"1/24,"","Bの値"

のようにするべき。今のまま強引にやりくりしたところで後でつまるぞ
835nobodyさん:2007/01/23(火) 03:40:43 ID:???
>>833
そんなに感謝されたいの?ん?ん?
836nobodyさん:2007/01/23(火) 03:43:40 ID:???
>>832
自分で取得方法が分からないならそれはそもそもデータ構造が悪いと思うよ
そっちを変えるか、今のままでもできないことはないから頑張れ
もしくは今どれだけできているか出してみるとよいかと

>>835
きみは>>824なの?

837nobodyさん:2007/01/23(火) 03:45:37 ID:???
>>836
この俺が感謝してやるよ
チュッチュ
838nobodyさん:2007/01/23(火) 05:26:10 ID:???
(´゚ω゚`)
839nobodyさん:2007/01/23(火) 10:38:09 ID:???
PHPのオブジェクト指向にフレームワーク必須って上で話ていたけどさ
どのフレームワーク使ってんの?

Mojaviか?Ethnaか?

840nobodyさん:2007/01/23(火) 10:51:33 ID:cx/YjiLk
PHPスクリプト上で、あるファイルの CRC32 の値を知る必要が出てきました。
crc32() だとファイルの内容を全て変数に読み込んでからでないと使えないため、相応しくありません(ファイルは数MB)。
cksum を外部コマンドとして呼び出すことも考えてみましたが、cksum は自分の求めている CRC32 とは違う CRC を計算するようで、使えません。
とりあえずとして、CRC32 を求めるコードは書いて、値も求まるようにはなったのですが、いかんせん遅くて・・・
イメージとしては crc32_file() みたいなことがやりたいのですが、いい方法は無いでしょうか?
求めたい CRC32 は、zip とかに使われる CRC32 です。
841nobodyさん:2007/01/23(火) 11:09:03 ID:???
cksum -o 3の結果を16進数に変換してみるとか?
842nobodyさん:2007/01/23(火) 11:35:22 ID:???
>>839
普通はSmarty+Flexyだろうな。
楽天のサイトも全てそれで作ってあるくらい実績あるし。
843nobodyさん:2007/01/23(火) 11:39:40 ID:???
おいらは弱小零細なんで、フレームワークを使うほどの規模の仕事がこねえよ。
おまいらは、簡単なフォーム案件もフレームワークを使うの?
844nobodyさん:2007/01/23(火) 11:41:40 ID:???
使わない。ってかそんな仕事受けない。そんな小さな仕事で利益出るのか?
845nobodyさん:2007/01/23(火) 11:43:37 ID:???
>>843
フレームワークの利便性は、規模は関係ない。
そんなことも分からんようなら、君のレベルはたかが知れている。
846840:2007/01/23(火) 11:48:22 ID:???
>>841
動かそうとしてる環境の cksum には、-o オプションは無いっぽいです。
環境は Linux で、使えるコマンドは使って構わないのですが、新バージョンへの更新などは自由にできません。
新しいコマンドを自由に入れられない限り、やっぱスクリプトで計算ロジック書くしか無いんですよね・・・
crc32() で部分ごとに CRC を求めて、後でそれを組み合わせて全体の CRC を求める、なんて方法は無いですよね?
847nobodyさん:2007/01/23(火) 11:58:39 ID:???
フレームワーク使ったことあるけど、面倒なもんばっかり。
普通にincludeしたほうが見やすいし、メンテもしやすいんだけどなぁ。
使いこなせばやっぱ楽なのかな。実感が全然沸かない。
848nobodyさん:2007/01/23(火) 11:58:57 ID:???
>>844
半日くらい、ちこちことやって10万くらいかな。
小遣い稼ぎだね。

>>845
たかがしれてるから零細なんだけどさorz
849847(843じゃないよ):2007/01/23(火) 12:02:26 ID:???
連カキスマソ。
地方だからか上場している会社の仕事を見てもフレームワークなんて使ってるところ見たことないよ。
何かデザインを犠牲にした独自のガチガチフレームワークもどきは見たことあるけど。
使いこなしてる人、このソースと実行例を見とけとか、書籍などあったら教えてください。
850nobodyさん:2007/01/23(火) 12:04:00 ID:???
新しくサイトを制作するに当たって、PHPにするかPerl
にするかまよってます。両者一長一短あるとはおもうのですが、
友人に聞いたらPerlは残るけどPHPは滅びるといってました。

やっぱりPerlのほうが長い目で見た場合いいですかね?

851nobodyさん:2007/01/23(火) 12:14:23 ID:???
>>850
PerlはJava+PHPに滅ぼされる。ってかもうすでに新規案件では壊滅状態。
PHPは、そのお手軽さで、これからも生き残る。
求人募集で雇用条件にPerlが入っている所もどんどん少なくなっている。

>>849
逆に俺は上場企業でフレームワークを使わない所を見たこと無いんだが・・・

>>848
凄く楽。とくにSmartyなんかは、自分で用意にプラグインが作れるから、
使い込めば込むほど楽になる。
楽天をはじめ会社規模の開発にSmartyが多く使われているのもプラグインが容易に組み込める為。
852nobodyさん:2007/01/23(火) 12:18:27 ID:???
PHPのフレームワークが大規模向けとか面倒だって言っている奴は、使ったことあるのか?
普通にディレクトリをアップロードするだけじゃん。
>>851が言っているようにSmartyなんかは、libディレクトリをアップロードしてキャッシュディレクトリを作るだけ。
どんなに小規模なプログラムでも、プログラムに統一性がでるから、使う価値は十分にある。
853843:2007/01/23(火) 12:21:42 ID:???
>>851,852
そうか。
今度試しに使ってみよう。
854nobodyさん:2007/01/23(火) 12:29:04 ID:???
>>850
Perlは、UNIX系のモジュール開発にのみ生き残るな。
Webシステム開発などのプログラミング分野では、>851が言っているように壊滅状態。

大規模:Java
中・小規模:Ruby/PHP/.NET

この分野でPerlが生き残るすべは無い。
855nobodyさん:2007/01/23(火) 12:30:33 ID:???
おーサンクス
Smarty+Flexyか

Smartyはフレームワークのカテゴリに入るのか
俺の中ではテンプラ用だったw

Flexyはググって見る
856850:2007/01/23(火) 12:38:07 ID:???
ご意見ありがとうございます。

PHPでいきます^^
857nobodyさん:2007/01/23(火) 12:55:10 ID:???
>>855
俺はSmarty+Mojaveがいいと思う。
858nobodyさん:2007/01/23(火) 13:16:09 ID:???
メールとか掲示板とか簡単なフォームにまでフレームワーク使う必要はないでしょ
フレームワークはいいところもあるけど学習コストやハマリコストも考えるべきだ。
859nobodyさん:2007/01/23(火) 13:20:07 ID:???
860nobodyさん:2007/01/23(火) 13:27:28 ID:???
俺はSmarty+独自フレームワーク。DBはPDO。
まだ、PHPのフレームワークは定番がないね。
Mojaviはなくなったと思ったら復活したり…。
Zendはなくなんないと思うけどw
CakePHPもわりと注目されてるね。Railsタイプは苦手。
861nobodyさん:2007/01/23(火) 13:33:25 ID:???
>>860
PDOってPear::DataObjectのこと?
862nobodyさん:2007/01/23(火) 14:14:54 ID:???
> include() は特別な言語構造であるため、 引数の前後に括弧は不要です。
との事ですが、
include('hoge.inc.php');
require_once('hoge.inc.php');
といった例を見かけることがあります。
これは見た目とか気分の問題ですか?

>861
http://www.google.co.jp/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&num=50&q=PHP.Data.Objects
863nobodyさん:2007/01/23(火) 14:18:12 ID:???
>>862
echoやprintと同じでは?
俺はincludeもprintも()でくくってるな。
そっちの方が読みやすい気がするって理由で。
864nobodyさん:2007/01/23(火) 14:19:59 ID:???
865nobodyさん:2007/01/23(火) 14:29:04 ID:???
>>863
なるほど。ありがとう。
866nobodyさん:2007/01/23(火) 15:29:35 ID:9lt2k7w3
$person=array("name"=>"unko");

こんなコード気持ち悪いよ。
867nobodyさん:2007/01/23(火) 15:48:15 ID:Mj0BJ0W1
拡張子 php を html に変換する方法がありますが、拡張子を変える理由は
何なのでしょうか?セキュリティとか関係あるのですか?
868nobodyさん:2007/01/23(火) 16:07:11 ID:???
PHPにセキュリティホール出たら狙い撃ちにされるっしょ。
.htmlだったらそれがHTMLかPHPかASPかJSPか簡単にはわからん。

あと、サイトをPHPからJSPに移行したときとかURL変更になってしまう。
(もちろんhogehoge.phpをhogehoge.jspに飛ばす、とかできるけど気持ち悪い)
869nobodyさん:2007/01/23(火) 16:13:53 ID:ddBgseC2
>>867
> 拡張子 php を html に変換する方法がありますが

kwsk
870nobodyさん:2007/01/23(火) 16:14:39 ID:???
php->htmlの変更はどうやってするんですか?
871nobodyさん:2007/01/23(火) 16:16:52 ID:???
httpd.conf or .htaccess
872nobodyさん:2007/01/23(火) 16:21:57 ID:???
>>868
気休め程度だけどね。でももちろんやっといた方がマシ。
873nobodyさん:2007/01/23(火) 17:51:20 ID:???
そんな攻撃してくるようなスキル高いやつが、
拡張子だけで判断するとは思えないがなw
874nobodyさん:2007/01/23(火) 18:18:54 ID:???
それより、セキュリティホールがあることを気にしろよ。
875nobodyさん:2007/01/23(火) 18:41:56 ID:???
世の中にはzero day attackというものがございまして、
セキュリティに気をつけて的確に対処していたとしても、
なかなか防げないものもございます。
876nobodyさん:2007/01/23(火) 18:51:07 ID:???
>>854
> 大規模:Java
> 中・小規模:Ruby/PHP/.NET

Rubyって何よ?釣りか?

新規開発だと、Javaが圧倒的だけど、
保守では、まだCOBOLが根強く残っている。早く消えて欲しい。
877nobodyさん:2007/01/23(火) 18:55:24 ID:???
とりあえず、おまえらPHPだけの事について考えようぜ。
あれもこれもじゃしんどいだろ。
開発者側の考えではなく、それを利用する利用者側の立場でさ。
(もっとも、自分だけ使えれば良いという人は別だが)
878nobodyさん:2007/01/23(火) 19:01:44 ID:UH5Ebjbs
mb_send_mail() でメール送信した場合なんですが、
qmail?が自動で付加する Message-ID を取得する方法はありますでしょうか?
(送信前、または送信後でもOK)

使い方としては間違っていると思いますが、相手先は携帯メールの時
TO:相手メアド、FROM:自分メアド、BCC:自分メアド を入れ、
本文中にはMessage-ID等を含むURLを付加して
そのリンクにアクセスすることで、メールにフラグを付けたりして開封確認をしようかなと。
879nobodyさん:2007/01/23(火) 19:15:34 ID:???
おすすめのフレームワークってありますか?
880nobodyさん:2007/01/23(火) 19:21:25 ID:???
>>879
少し上のレスぐらい読めよ。カス
881nobodyさん:2007/01/23(火) 19:44:21 ID:???
話題性的には cakephp > symfony > zend framework > mojavi
軽いのがよければ guessworkとかいうやつ?知らんけど
その他国産がよければ ethnaやmaple?知らんけど
詳細は該当スレへ

【PHP】フレームワークについて語るスレ5【総合】
http://pc10.2ch.net/test/read.cgi/php/1159579507/

【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc10.2ch.net/test/read.cgi/php/1118799352/
882nobodyさん:2007/01/23(火) 19:47:54 ID:???
おばぁちゃんが言っていた
SEO的には動的に使われる.cgiや.phpより.htmや.htmlの方が良いって
883nobodyさん:2007/01/23(火) 19:54:32 ID:???
>>882
おばあちゃんにmod_rewirte使えば解決するよ、って言っといて。
884nobodyさん:2007/01/23(火) 20:14:34 ID:???
>>880
だから聞いてるんですが
885nobodyさん:2007/01/23(火) 20:15:08 ID:???
>>881
ありがとうございます
886878:2007/01/23(火) 20:25:13 ID:UH5Ebjbs
あのー・・・ フレームワークの話題で盛り上がってるとこ申し訳ないですが、
何か御教示などありましたら、宜しくお願いします(´・ω・`)
887nobodyさん:2007/01/23(火) 20:28:41 ID:???
>>886
うるせぇ!!!それどころじゃぁねーんだよ!!
今はフレームワーク論争やってんだ!!!!
いいか?これはな!戦争なんだ!!!
888nobodyさん:2007/01/23(火) 20:31:36 ID:???
887に同意
ココはくだすれだw
889nobodyさん:2007/01/23(火) 20:39:44 ID:???
>>886
bccでてめーに送って、そのメールのヘッダーをほじくり返すってのはどうよ?
qmailにわたった時点で、phpからは知りようはないだろうし。
890nobodyさん:2007/01/23(火) 20:55:29 ID:???
>>889
ってかさ、sendmailの設定の面倒さにかまけて、
新興勢力のqmailの軍門に下るのは技術者としては最悪だな。
891nobodyさん:2007/01/23(火) 22:07:35 ID:???
え、新興勢力? qmailはたしかに開発開始時期はsendmailよりも新しいけど、
メンテのされなさ具合ではqmailははるかにレガシーというか時代遅れですよ。

sendmailはいまだにメンテされ続けているけど、
qmailはもう使っちゃいけない域にまできてますよ。
なわけで新興勢力なんて言葉には違和感あります。
892nobodyさん:2007/01/23(火) 22:42:31 ID:WQNIOqeT
Fedora6にPHPをソースインストールしたんですが、
linpngのバージョンが古くなったので、
アップデートしたいと思ってます。

アップデートってどうすればいいんでしょう?
893nobodyさん:2007/01/23(火) 22:49:20 ID:???
sendmail対抗はPostfixだろうがぁ!!
894nobodyさん:2007/01/23(火) 22:50:19 ID:???
>>892
Fedora Core 総合スレッド Part 32
http://pc10.2ch.net/test/read.cgi/linux/1169012420/
895nobodyさん: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の不使用によるエラーかな?と思ったのですが・・・
なにせ、検索エンジンでエラー文を検索するとエラーが出力されているサイトがヒットするので解決策が見出せません^^;

どなたか、解決策をご教示願います。
896nobodyさん:2007/01/23(火) 22:51:36 ID:???
>>895
ソースがどうなっているかも分からずに回答できるエスパーが実在するとでも?
897nobodyさん:2007/01/23(火) 22:53:19 ID:gX0utTYO
>>896
ご返信ありがとうございます。
このエラーがどのような場合に出力されるか、だけでも教えて頂けると幸いです。
898nobodyさん:2007/01/23(火) 22:55:11 ID:???
>>897
英文そのまま
899nobodyさん:2007/01/23(火) 22:55:30 ID:???
>>896
オマエ、その程度なら、ソース見なくても分かるだろw
エラーがINFOレベルで出力しているから、宣言していない変数は全てエラーメッセージが出力されるんだろ。
900nobodyさん:2007/01/23(火) 22:59:56 ID:gX0utTYO
>>899
ご返信ありがとうございます。
error_reportingで全てのエラーを出力するようにしていたようです。
実際に開発する場合にはerror_reportingの値はどのようにすべきですか?
現在ではE_ALLになっています。
901nobodyさん:2007/01/23(火) 23:01:58 ID:gX0utTYO
の前に、普通に設計していてNoticeレベルのエラーが出力されることなんてあるんですか?
それを出力しないように設定してもいいんですか?
902nobodyさん:2007/01/23(火) 23:05:56 ID:TJC5Wx3g
訳あってWin鯖とLinux鯖を併用することになりました。
phpのソースはWin用・Linux用と2つ作成するのではなく、1つのphpファイルで
なんらかの条件判断で文字コード変換(mb_convert_encoding)のコードを記述しようと思います。

どういう条件で判断すればいいですか?
又Win鯖でもsjisとEUCとを使い分けるかもしれないので、汎用性を持たせたものにしたいと思います。
903nobodyさん:2007/01/23(火) 23:06:25 ID:???
ぐぐれ
904nobodyさん: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;

にしても、変換されず出力が同じです。
どのようにすればうまく変換できるのでしょうか?
905nobodyさん:2007/01/23(火) 23:30:44 ID:???
>>902
php_uname, PHP_OS
906nobodyさん:2007/01/23(火) 23:33:53 ID:???
>>901
まずマニュアル嫁。
http://jp.php.net/manual/ja/ref.errorfunc.php

普通にコーディングしていればE_ALLレベルでも何も出力されない。
ログの意味を理解したうえで不要だと思うなら勝手に消せばいい。
907904
とりあえずデータベースにUTF-8で保存することにより解決しました。