【PHP】下らねぇ質問はここに書き込みやがれ 56
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2007/10/11(木) 17:55:41ID:uObe69hrPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/
◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0002nobodyさん
2007/10/11(木) 17:58:19ID:???【PHP】下らねぇ質問はここに書き込みやがれ 54
http://pc11.2ch.net/test/read.cgi/php/1189309377/
【PHP】下らねぇ質問はここに書き込みやがれ 53
http://pc11.2ch.net/test/read.cgi/php/1188047468/
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
【PHP】下らねぇ質問はここに書き込みやがれ 51
http://pc11.2ch.net/test/read.cgi/php/1185521566/
【PHP】下らねぇ質問はここに書き込みやがれ 50
http://pc11.2ch.net/test/read.cgi/php/1184143801/
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/
【PHP】下らねぇ質問はここに書き込みやがれ 45 (※実質48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 47
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 46
http://pc11.2ch.net/test/read.cgi/php/1178955837/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1178955768/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
【PHP】下らねぇ質問はここに書き込みやがれ 44
http://pc11.2ch.net/test/read.cgi/php/1176364487/
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
【PHP】下らねぇ質問はここに書き込みやがれ 42
http://pc11.2ch.net/test/read.cgi/php/1174217841/
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
0003nobodyさん
2007/10/11(木) 18:01:01ID:???■本家マニュアル 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/
■CakePHP http://www.cakephp.org/
■Code Igniter http://www.codeigniter.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2007/10/11(木) 18:04:32ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
0005nobodyさん
2007/10/11(木) 18:07:38ID:???→ データベース板に誘導されるのが嫌なら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に保存?
→ 好きにしてください
23. もっと楽に開発したい。
→ フレームワークを使ってください
24. PHP用のフレームワークって何があるの?
→ 公式ならZend Framework、PHP4にも対応させるのならCakePHPかCode Igniter
0006nobodyさん
2007/10/11(木) 18:40:37ID:???,. -< ※ }} \
/ \ {{ ::.. \
/ / \ ※ 》 ::: \
// / l ヽ }} .:::: ::.. \
〃! ! / / // ヽ ※ 》::: :::.. ヽ
|| | || i| /// ! ゙, }}: _,,.. --─一>
|! | l! |l/-/─゙、 i 》 / | , '´
,..、 ヽヽ乂 | ,ニ,.--ァヽ、! ! 〃/ |/
〈rヘ,ゝ、 \ ノ .{リ!/ / ./ _」!´ |
('A`)7 ! く  ̄ __,ノ ノ ,」! |: ! 下らねぇ質問はここに書き込みやがれって
ノ( ヘヘ{ | ! _, ``ー‐ァ´ l「 |: l 言っておいたはずですぅ
r‐〉 |┐ `1 /※r┘. |: !
〈{rヘNヘj!ヲ ヽ-r一{ /{.:.:.:.: |:. i
〈ヾニニイコ ,⊥ニ|/ ゙、.:.:.. l:.:.. !
〈フしヘ_rV´| ,..イ / |rュ_,r‐-ヘ.:.:.. !:.:. ',
| |ヽ‐-< / /)},.イnニトつ: i.:.:.. ゙,
| ^i |ヽ`ヽ〃 ※ 〃_/( し' i.:. ゙、.:.:. ゙、
〈 | !l|. }} {{〈、r┘ l.:.: ゙、.:.:.. ヽ
ヽ | !! 〃 ※ }}/、フ| |.:.:. ヽ.:.:... ヽ
\ | ||. 〃 〃!V | |、.:.:.. ヽ.:.:.. ヽ
| |`ー一' || }} ※ {{/_l」 ,| |、ヽ.:.:.. ヽ:.:.:.. ヽ
! ! ∨/ | |{{ 〃┘ / ! |ヘ::ヽ.:.:.. ヽ:.:.:. \
| | / _,.ノ}} ※ }} / | ハ:.ヽ
0007nobodyさん
2007/10/11(木) 18:59:23ID:???10進浮動小数点数っていうの?そんなの
0008nobodyさん
2007/10/11(木) 19:55:32ID:???0009nobodyさん
2007/10/11(木) 20:01:36ID:???コンパイルオプションが必要じゃん。
PHPだけで作られたのってないの?
0010nobodyさん
2007/10/11(木) 20:53:22ID:???0011nobodyさん
2007/10/11(木) 21:06:33ID:???0012nobodyさん
2007/10/11(木) 21:10:35ID:???0013nobodyさん
2007/10/11(木) 21:13:48ID:???0014nobodyさん
2007/10/11(木) 22:24:14ID:Y4cbxz38中の人的には
どこまで心を許すかは場合によるけどな
0015nobodyさん
2007/10/11(木) 22:41:21ID:???0016nobodyさん
2007/10/11(木) 23:30:12ID:???構造は理解でき、フロムスクラッチから作った場合、相手のコピーライトははずしてもいいんですか?
0019nobodyさん
2007/10/12(金) 00:06:07ID:2uLJDe9D君を育ててくれたスクリプト制作者を足蹴にする行為
0020nobodyさん
2007/10/12(金) 00:08:38ID:???自分で作ってみようと思ったが、これは無理だwwww
0021nobodyさん
2007/10/12(金) 00:30:14ID:???法律的にはどうなのか全く知らないけど
オープンソースのスクリプト言語で著作権もコピーライトもくそもない気がする。
それほど独創的なコードがあるわけでもないし、
そんなもん主張されても、同じ処理をするものって
根本的な処理は基本的に似てくるんじゃないの?
アルゴリズムだって、例えばデザインパターンを使っていたって、偉大な先人のアイデアを
真似して、いただいて作ってるんしょ?
16のケースはもう原形をとどめていなさそうだし問題ないんじゃん?
あくまで法律は知らんけど・・
心情的に・・・
0022nobodyさん
2007/10/12(金) 00:33:06ID:???俺はウダウダ言うなら公開してんじゃねーよGPL教のクズがと思ってるけどな
0023nobodyさん
2007/10/12(金) 01:01:44ID:???そんなことPGオタクで経営感覚ゼロの人間には、ワケ分からんだろうけどなw
0024nobodyさん
2007/10/12(金) 01:03:50ID:???0025nobodyさん
2007/10/12(金) 01:04:46ID:???0026nobodyさん
2007/10/12(金) 01:12:13ID:???逆については検索でたくさんヒットするけど、上記はヒットしなかったので教えて下さい。
目的は特定のフォルダでのみ拡張子htmlでphpが動作しない環境を構築したい為です(大半のフォルダでは拡張子htmlでphpの実行を許可したいです)。
よろしくお願いします。
0027nobodyさん
2007/10/12(金) 01:29:53ID:???あとは.htaccessにphp実行不許可のオプションを書けば上書きされる
0029nobodyさん
2007/10/12(金) 03:16:18ID:???003026
2007/10/12(金) 09:09:50ID:???有難う御座いました
0031nobodyさん
2007/10/12(金) 10:50:50ID:???0032nobodyさん
2007/10/12(金) 10:54:13ID:???0034nobodyさん
2007/10/12(金) 13:02:38ID:SObbbYi1変数の中の「行」の数を数えたいのですが
特定の文字の出現回数を返すような関数
もしくは良くあるサンプルなどはあるのでしょうか?
0035nobodyさん
2007/10/12(金) 13:04:01ID:???型は?
配列ならcount($str)
改行区切りならcount(explode(array("\r\n","\r","\n"), $str))
0036nobodyさん
2007/10/12(金) 13:14:58ID:???>>35もありだが
STRING型なら普通はpreg_match_allで改行コードの
正規表現書いて使うと思う
0037nobodyさん
2007/10/12(金) 13:52:19ID:JDHSb9UChttp://xxx.example.com/でアクセスできるようにしたいのですが、
この質問はどこですればいいのでしたっけ?
0039nobodyさん
2007/10/12(金) 13:58:18ID:JDHSb9UCん〜、PHP関係じゃなくてApache関係で
htaccess使ってそういう方法があったんです。
http://xxx.example.com/自体のURLがもともと無効なんですけど、
何かの設定でhttp://example.com/xxx/をhttp://xxx.example.com/にできたんです
0040nobodyさん
2007/10/12(金) 14:01:22ID:???ないよw
そもそもHTTPレベルの話であって、ApacheはTCP/IPレベルの制御しかできない。
Apacheでそうなったというのは、ApacheのバグかルーターかDNSサーバーが異常をきたしていたとしか考えられない。
0041nobodyさん
2007/10/12(金) 14:03:52ID:JDHSb9UCどうやらURL直下しか無理みたいです。
サブドメインの設定はまた別で必要なのですね。
有難うございました。
0042nobodyさん
2007/10/12(金) 14:06:06ID:???つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
0044nobodyさん
2007/10/12(金) 14:33:18ID:???誰だよ、お前。答えたのは俺様だろうが。
それからツリー構造はDBでも出来るとかいってんじゃねーぞ。
DBとの接続処理も含めたパフォーマンスを考慮してメモリー上でツリー構造にすればいい、
って言っているのに、DBでも出来るとか、意味不明だよ。
もっと多角的な面からどの技術を使うのが最適解になるのか、よく考えろ。
0045nobodyさん
2007/10/12(金) 14:45:45ID:???0047nobodyさん
2007/10/12(金) 16:17:11ID:JDHSb9UC0050nobodyさん
2007/10/12(金) 16:32:39ID:JDHSb9UCサンクス
何か使い方が間違っていたみたいでした。
class Hogehoge {
public $aaa;
public $bbb;
}
$obj = new Hogehoge('xxx','xxx');
とすると、勝手に$objの中に
$obj['aaa'] = NULL
$obj['bbb'] = NULL
ができているのですが、仕様でしょうか?
また、unsetなどで削除しても大丈夫でしょうか?
0053nobodyさん
2007/10/12(金) 16:47:25ID:???PHPでのクラスの実装が連想配列みたいな仕組みになってるだけ。
$obj['aaa']がpublic $aaaの実体ってこった。
別にunsetしたきゃしてもいいが、メンバ変数を使えばまた再生成されるし、
メンバ変数に値を格納した状態でunsetしちゃったら値も消えちゃうぞ。
>>51
は?
0054nobodyさん
2007/10/12(金) 16:49:58ID:JDHSb9UC今>>51で頑張って探していたのですが、サッパリでした・・・
コンストラクトで最初にunsetしてから格納してみたところ大丈夫のようでした。
0056nobodyさん
2007/10/12(金) 16:58:45ID:JDHSb9UCpublic $lat;
public $lon;
function __construct ($lat = FALSE, $lon = FALSE)
{
unset($this->lat);
unset($this->lon);
$this->lat = $lat;
$this->lon = $lon;
このような感じで入れ替えてますが、まずいですかね・・・汗
0058nobodyさん
2007/10/12(金) 17:33:51ID:???public $lat;
public $lon;
↓
private $lat;
private $lon;
0059nobodyさん
2007/10/12(金) 19:16:36ID:???0060nobodyさん
2007/10/12(金) 23:20:32ID:cR3DAsP9echo Example();
echo PHP();
function Example(){
}
function PHP(){
}
}
このようにfunction内のfunctionをfuntionで呼び出すようなことはできないのでしょうか?
すごく簡単な内容なのですが、クラス化したほうが良いのでしょうか。
0061nobodyさん
2007/10/12(金) 23:37:49ID:???アドバイスを参考に書いてみましたが、結果はNGでした。
試した事は下記です。
httpd.confの記述(一部抜粋)
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
AddType application/x-httpd-php .php .html
/var/www/html/.htaccessの記述
AddType application/x-httpd-php .php
上記の記述では/var/www/html/test.htmlファイルでphpinfoが実行出来てしまいました。
そのため、上記のどこに問題があるか(多分>>27のphp実行不許可の記述の仕方だと思いますが)ご指定いただければと思います。
0063nobodyさん
2007/10/13(土) 01:23:48ID:???function内のfunctionをPHPにおいて呼び出すのはあまり意味がないのでは?
そのfunctionを外に出してもそんなに問題ないでしょう。
>>61
最初に許可しないでディレクトリごとにphpファイルとして解釈するものを加えればいいと思う。
.htaccessは重いので、なるべく使わないに越したことはないのですが。
0064nobodyさん
2007/10/13(土) 01:36:04ID:???無駄にOOでないクラス化するよりよっぽど有用
0065nobodyさん
2007/10/13(土) 01:59:08ID:???分かってない人が書いたら、関数内関数も(普通より余計に)スパゲッチーソースになるのでわ?
オブジェクト指向の思想を理解してるなら、素直にクラス化した方がいいと思う。
0066nobodyさん
2007/10/13(土) 04:49:24ID:???可能だけどfunctionの呼び出しより先に定義しなきゃ。
クラスはインスタンス→中身のメソッド定義全部実行→それからコンストラクタ実行
って順番で動くけど、そのHogeHoge()は頭から順に実行されるんだから。
あと、function内functionも1度定義した時点でグローバルな関数になることさえ
気をつければ別にそういう使い方はありだよ。
0067nobodyさん
2007/10/13(土) 04:52:41ID:???やってることはぶっちゃけ
if(条件) {
function a() {処理1}
} else {
function a() {処理2}
}
にHogeHogeって名前付けてるだけだと思うんだけどね、これ。
そういう意図でやってるなら別にクラス化するほどのもんでもない。
0068nobodyさん
2007/10/13(土) 07:28:36ID:JyEmfHgtPEARのXML_Serializerで、連想配列からXMLを出力するとき
一つのノードに複数の属性(Attribute)を設定して、XMLにシリアライズすると
設定した属性が、その属性の名前で昇順に並び変わって出力されてしまうのですが、
これを並び変わらないように設定することは出来ないでしょうか?
自分としては連想配列に代入した順番に出力されて欲しいのですが・・・・・・。
何か良い方法を知っていたら教えてください。
ちなみに環境はWindowsのxampp1.6.4です。
006968
2007/10/13(土) 07:42:44ID:???上のレスは思いっきりageてしまいました、すみません。
007068
2007/10/13(土) 07:48:20ID:???お騒がせしてすみませんでした。
007268
2007/10/13(土) 08:17:33ID:JyEmfHgt>>70
PEARのドキュメントに質問の答えとなるような項目があるということですか?
一応目を通してみたのですが、まだBeta版だからか、XML_Serializerに関しては完全なオプションのリストに記載すら無かったのですが・・・・・・
ほかに詳細な内容が載っている記事ということで
http://www.sitepoint.com/article/xml-php-pear-xml_serializer
あたりも読んでみたのですが、質問の答えとなるような記述は無かったように思います。
(読み逃しがあったらすみません。)
もし「昇順に並び替えない」という設定が無いまでも、何か良い問題の解消方法を知っている方が居れば
教えていただきたいと思っています。
恥ずかしながら自分では「出力されたXMLを文字列として処理し、該当箇所を全て並び替え」という、
かなり手間のかかりそうな方法くらいしか思いつかないもので・・・・・・
どうかよろしくお願いします。
0073nobodyさん
2007/10/13(土) 08:59:16ID:???0074nobodyさん
2007/10/13(土) 09:34:44ID:???XMLなんだから、順序に依存するような仕組みではだめだろ。
0075nobodyさん
2007/10/13(土) 09:46:33ID:HZ6cGKF0xamlスレってないのでしょうか?。
0076nobodyさん
2007/10/13(土) 09:57:05ID:???フォルダ数が多く1つのフォルダでのみ.htmlでphpの実行を許可しないようにしたい(それ以外のフォルダは.htmlでphpの実行を許可したい)です。
そのため>>26に書いたように、デフォルトでは.htmlでphpの実行を許可し、
特定のフォルダのみ.htmlでphpの実行を許可しないように出来れば一番作業量が少なく楽かなと思ったので質問しました。
最初に許可しないで.htaccessで制御出来る事は確認済みですが、
.htaccessを作らなければいけない量の多さに作業する事を躊躇している所です。
0077nobodyさん
2007/10/13(土) 10:29:00ID:???検索エンジン用に拡張子を選ぶという話は結構あるけど・・・
何がしたいのかよくわからない
PHPを記述しなければ良いだけのような気がするし第三者にアップロードさせるなら
その時点でチェックすれば良いだけの話
拡張子が同一である限り判別材料は必要でどちらにしても負荷はかかる
0078nobodyさん
2007/10/13(土) 11:14:13ID:Vu/tyyyNhttp://fanblogs.jp/snrpro/
0079nobodyさん
2007/10/13(土) 11:59:23ID:brAyXwH5どうやって、new DB()をしないでオブジェクト化しているのですか?
008079
2007/10/13(土) 12:09:56ID:brAyXwH5(果たして解決しているどうかも少しなぞですが)
if(!is_object($this)){
$obj = new Hoge();
}else{
$obj = $this;
unset($this);
}
return $obj;
0081nobodyさん
2007/10/13(土) 12:39:21ID:Qhys5rK+ログはファイルで管理したいと考えているのですが、
今考えてるのはログファイルを一日単位で分けようと考えてるのですが、
セーフモードの場合だとあらかじめファイルを用意しなければならないのがツライです。
ログファイルは一個で管理するのが妥当でしょうか?
0082nobodyさん
2007/10/13(土) 13:27:08ID:???まぁ、普通は分けるんじゃないの。
何でセーフモードを意識しなきゃいけなくなったのかがちと謎だけど、
日が変わる直前にcronで他のスクリプトとか使ってファイル生成させとけば?
一般に、ログ吐く側は単一ファイルにそのまま吐き続けさせといて
logrotateとか使ってファイル切り替えるもんだと思うけど。
0084nobodyさん
2007/10/13(土) 14:10:59ID:???開発環境での話です。
だから負荷は気にしてません
要は同じ階層のフォルダ内に
1. Aフォルダ(.htmlでphp実行可能)、この手のフォルダが複数あり
2. Bフォルダ(.htmlでphp実行不可能)、この手のフォルダは一つのみ
という環境を作りたいのですが、大多数が1に該当する以上、
1をデフォルトの動作とし、例外的な2に対し別途設定を施す事で環境を構築したいと思っています。
0085nobodyさん
2007/10/13(土) 14:15:40ID:???Apacheのモジュール版PHPでなら簡単にできるよ
動作させたくないディレクトリのhtaccessに
php_flag engine off
と書けば良い
>>80
「デザインパターン シングルトン」
をグーグルさんで検索してみると良い
0087nobodyさん
2007/10/13(土) 14:24:32ID:???>>>80
>「デザインパターン シングルトン」
前にもあったけど、phpはメモリーを共有できないから、
シングルトンは使えないよ。javaなら大丈夫だけどね。
0088nobodyさん
2007/10/13(土) 14:29:19ID:???0090nobodyさん
2007/10/13(土) 14:45:50ID:???規模のでかさにもよるが・・・
メモリ空間の共有も前ツリー構造の人が
メモリ空間共有用の関数がどれかを書いてたし・・・・
0091nobodyさん
2007/10/13(土) 14:47:06ID:???試してみましたが駄目でした。
多分モジュール版PHPを使用していないのだと思いますが、
モジュール版が何か分かりませんでした。
>>86
言っている意味が分からないのですが。
開発環境は1つのサーバーで行っています
一方外部公開用のサーバーは複数あります。
そしてそのうち一つのサーバーでは拡張子htmlでphpが使えません。
そのため、開発環境のデフォルトは拡張子htmlでphpを動作可能にし、
特定のフォルダのみ、外部公開用のサーバーの仕様にあわせ拡張子htmlでphpを動作不可能にしたいと思っています。
理由はこれが開発環境の変更点が最も少なく、外部公開用のサーバーにそのまま適用できると思われる為です。
0092nobodyさん
2007/10/13(土) 14:56:42ID:???> 多分モジュール版PHPを使用していないのだと思いますが、
> モジュール版が何か分かりませんでした。
.htaccessでPHPの設定をできるやつがモジュール版で一般的なPHPのこと。
それ以外はCGI版かコマンドライン版。
しかしengine offにしたら.htmlだけじゃなく.phpでもPHP実行できなくなるような…
> そしてそのうち一つのサーバーでは拡張子htmlでphpが使えません。
環境を実機と可能な限り合わせたい、という意図は分かるんだけど、
あくまで自分の開発環境の話なら、単に.htmlのファイルの中に
PHPコードを入れないだけでもいいんじゃないの?
他のユーザに使わせたくない、って話ならともかく。
それとも、PHPの実行をさせないだけで.html中にPHPコードは埋め込んじゃうの?
0093nobodyさん
2007/10/13(土) 15:07:41ID:???>そしてそのうち一つのサーバーでは拡張子htmlでphpが使えません。
中途半端な説明ばかりしているからややこしくなるんだ。
これに尽きるんだろ。
.htaccessが使えるなら.htaccessをトップディレクトリにおいけば良いだけ、
httpd.confが弄れるなら弄れば良いだけ。両方だめなら無理だから諦めろ。
意地でもやるなら拡張子とスクリプトの内容をまとめて書きかえれるような
ソフトを自作して書き換えるしかないだろう。
0094nobodyさん
2007/10/13(土) 15:08:18ID:???ありがとうございます。
となると私の環境はモジュール版のはずですが、何故phpが動いてしまうんだろう?
それと今回の件だけに限って言えば、そのフォルダでは拡張子php自体使用していないので、
特定のフォルダ直下ではphpが実行できなくなってもかまわないです。
後、本件の目的はミス防止の為です。
他の開発で使用したものを多数流用している為、phpが間違って混入してしまう可能性があるからです。
ご指摘のとおり、入れなければ良いのですが、上記のような過程で間違って入れてしまい、
それを本番に上げて始めて気づいてあわてると言うミスを未然に防ぐ環境を構築したいと思っています。
0095nobodyさん
2007/10/13(土) 15:14:22ID:???そのレンタルサーバーでは.htaccessが使用不可です。
またhttpd.confは弄れません。
ただし自分の開発環境はhttpd.confも.htaccessも使用可能です。
現状開発環境では、httpd.confで一時的に拡張子htmlでphpが実行出来ないようにし、
拡張子htmlでphpが実行できないといけないフォルダ毎に.htaccessを設置していますが、
可能であれば、httpd.confでは拡張子htmlでphpが実行出来るようにし、
特定のフォルダでのみ.htaccessで拡張子htmlでphpを実行できないようにするのが一番スマートかなと思いました。
0096nobodyさん
2007/10/13(土) 15:14:23ID:???web上で値を使う人がその都度変えてもいけるようなものが作りたいんだけど…
0097nobodyさん
2007/10/13(土) 15:14:27ID:???この辺が原因かも。
http://slashdot.jp/~elf2000/journal/105773
> なんてこった…apache2でphp_flagって使えないの?
> php_flag engine off
に対するコメント
> VirtualHostディレクティブ使ってません?
> 使ってたらその中にDirectoryディレクティブを書いてやらないと認識しないようです。
0102nobodyさん
2007/10/13(土) 15:31:23ID:???アクセスしないファイルが紛れ込めばどちらにしろわからない。
0104nobodyさん
2007/10/13(土) 15:42:40ID:???レスありがとうございます。
>>85の記述で(一応)思い通りの動作が出来ました。
理由は>>98でした
こちらのミスです。スイマセン。
今環境をいろいろ触っている中で、そのフォルダの.htaccess使えるようにするのを忘れてましたorz
ただ、>>92に記述されているように、engine offにすると.phpでもphpが実行できなくなりました。
今回はこれで大丈夫なのですが、このレンタルサーバーにメールフォームをつけたいとかの要望があると、
このままでは問題があるので、engine off以外の対応法があればそちらを適用してみたいと思います。
>>102
まあそうなんだけど、人間ミスするのは避けられないと思うから、可能性を低くする事だけはしておきたいと思ってね。
0105nobodyさん
2007/10/13(土) 15:48:08ID:???0107nobodyさん
2007/10/13(土) 15:53:19ID:???スレ違いをここまで粘りこむ自分勝手さにこれ以上付き合う事もないだろ。
0108nobodyさん
2007/10/13(土) 16:04:07ID:???*.phpの時以外はengin offにできるように書けばいいだけだよ
あとはapacheの設定のconfファイルの書き方だからスレ違い
0109nobodyさん
2007/10/13(土) 16:14:15ID:c/lxCBKk0110nobodyさん
2007/10/13(土) 16:15:31ID:Qhys5rK+ありがとうございます。いろんなレンタルサーバで動かせるようにしたいと思いまして、
ファイルをわけることにします。
0111nobodyさん
2007/10/13(土) 16:17:48ID:???すまん、すれ違いだったのね
これ以上の事は別スレ探して聞いてきます。
アドバイスいただいた皆さんどうもです。
0112nobodyさん
2007/10/13(土) 16:18:12ID:Qhys5rK+SSIを使わず、jsで取得したものをPHPに渡したいと思います。
しかし、jsで取得したデータをPHPに渡す方法がわかりません。
どなたかヒントをいただけないでしょうか?
0114nobodyさん
2007/10/13(土) 16:37:23ID:???<inpu type=hidden name="diplaysize">
みたいな送信フォームを仕込んどいて、これのvalueをJavaScriptで設定すれば
ページ送信時に現在の画面サイズを拾えるんじゃない?
フォームを使いたくない場合はJavaScriptでcookieに値を格納させて
それをPHPで取得する、って手もある。
0115nobodyさん
2007/10/13(土) 16:54:07ID:ZZVUcY03何分前なのかを取得したいのですが、どのようにしたら出来ますか?
0118115
2007/10/13(土) 17:21:38ID:ZZVUcY03explode使って配列にする方法しか思い浮かばないんですが・・
0121nobodyさん
2007/10/13(土) 17:51:46ID:???0122nobodyさん
2007/10/13(土) 17:54:19ID:???本に載ってませんでしたとかじゃないの?
0124nobodyさん
2007/10/13(土) 18:09:22ID:4PtcrD/Pこのようなロジックってどうでしょうか?
ローカルでテストしている分には大丈夫なのですが、
負荷がものすごくかかったときにどうなのかと思ってお聞きしました。
宜しくお願いします。
1. カウント書き込み部分
ユーザーがアクセスしてきたら、fopen($counter_file, "a");で開いて「*」をwriteして閉じる
2. カウンタ取得部分
$counter_fileのファイルサイズを取得して表示する。(byte数がカウント数)
0126nobodyさん
2007/10/13(土) 18:30:04ID:???確かに斬新だけど連続リロード対策は無し?
それと結局色々機能付けたくなるんじゃない?
純粋にカウンタだけならいいかもだけどそんな負荷かかるページなのか。
捕らぬ狸の皮算用じゃあ…
0127nobodyさん
2007/10/13(土) 18:33:57ID:???0128nobodyさん
2007/10/13(土) 18:35:58ID:???0129nobodyさん
2007/10/13(土) 18:42:50ID:???0130nobodyさん
2007/10/13(土) 18:42:58ID:???5000~1万とかいくとファイルに数字しか書いてなくても壊れる
カウント時に*を書いて閉じるというが
アクセスあるたびにファイルサイズでかくなって大変になるな
0131nobodyさん
2007/10/13(土) 18:44:51ID:4PtcrD/Pレスありがとうございます。
前は、DBに保存していたんですけど、1日に多い時で数十万PVの日もありまして、
そのような時に、DBのコネクションエラーが発生して困っていました。
htmlをキャッシュしたり工夫しているのですが、カウンターのところはどうしても
リアルタイムで処理しないといけないので、その部分もDBではなくファイルでと考えています。
壊れなければ連続リロードされてもいいです。
又、アクセス1回で1byteしか消費しないので、1日ごとに$counter_fileを変えて、
cronで一日一回、昨日の$counter_fileのサイズを別の集計ファイルに加算した後削除することで、
ディスクサイズを圧迫することなく、かつtotalのアクセス数も計算できるかなぁとも思っています。
最終的に、この追加書き込みのロジックでファイルが壊れないかが一番の心配です。
0132nobodyさん
2007/10/13(土) 18:47:38ID:???ファイルサイズは50MBだろ?
でかいっつっても大した問題じゃないんじゃ?
ファイルの中身を読み込むわけでもないし。
その程度のファイルサイズはログファイルでもよく見るぞ。
そんなんで困るほどちっこいHDDでもあるまい。
0133nobodyさん
2007/10/13(土) 18:48:24ID:???数十万ごときでコネクションエラーってインデックスはれてないとか
別の所に問題ありそうな気がするがな(鯖がしょぼいとか)
0135nobodyさん
2007/10/13(土) 18:49:57ID:???でもアクセスカウンタごときのためにサーバー増強とかありえねー。
0136nobodyさん
2007/10/13(土) 18:51:36ID:???最初にカウンター作った時(shellスクリプト)、
やりかたが良く判らなかったのでその方法でやった。"1"の羅列
特にファイルが飛ぶとかなかった(PHPだとどうかな)けど、
ファイル容量が当たり前だが肥大してきて、普通のロックタイプにしてしまった。
定期的に"差分"にすれば良いかもね。でもカウンターとか最近使わなくないか?
0137nobodyさん
2007/10/13(土) 19:47:17ID:???appendはOSが保証してくれるので安全。
当然ロックは不要。
集計するときは同時に他のが集計を始めないように他にロックファイル作るなりして排他処理をかけ、
まずrename(OS保証の安全な退避法になる)し、fstatのキャッシュをフラッシュしてからやること。
要はapacheログのローテーションと同じだからググれ
0138nobodyさん
2007/10/13(土) 20:10:31ID:???げっ! そんなに簡単に壊れるものなの?
計算してみたら素人考えだと結構余裕だと思うんだがダメ?
1日4000アクセス: 21.6秒に1回
1日5000アクセス: 17.28秒に1回
1日1万アクセス: 8.64秒に1回
1日数十万PVってスゴイですね>>131
0139nobodyさん
2007/10/13(土) 20:14:09ID:???ファイルロックが確りしてないとF5連打だけで壊れる事がありますよ
0140nobodyさん
2007/10/14(日) 01:24:53ID:???0141130
2007/10/14(日) 01:27:30ID:???うちのサイトは21時〜24時がアクセスの6割ぐらいを占めてる
プログラムあんま知らん頃だったとはいえ
flockとかかけても壊れたな・・・・
0142nobodyさん
2007/10/14(日) 01:54:06ID:???数字だけでも2〜3秒でダメですか。結構シビアですね。
Cを少し勉強した時シェアード(共有)メモリってのがあったけどPHPでも出来ない?
http://jp2.php.net/manual/ja/ref.shmop.php
ファイル扱うよりいいのかどうか判りませんが。
0143nobodyさん
2007/10/14(日) 02:18:24ID:???0146nobodyさん
2007/10/14(日) 02:51:14ID:TEnpd0OZfopen($filename, "a");
でファイルがなかった場合、作成されますか?
UIDがなんたらかんたらとマニュアルに書いてあったので不安です。
winサーバでは問題なく作成されたんですが、linuxではどうなんでしょうか?
0147nobodyさん
2007/10/14(日) 03:38:03ID:???0148nobodyさん
2007/10/14(日) 03:54:52ID:zCinDJDYパスワードをSESSIONで渡してるけどバレちゃいますか?
0149nobodyさん
2007/10/14(日) 04:02:37ID:???生のパスワードをやりとりしてたら盗聴可能
何のためのセッション変数だw
0150nobodyさん
2007/10/14(日) 04:52:42ID:???0151nobodyさん
2007/10/14(日) 08:41:50ID:???0152nobodyさん
2007/10/14(日) 09:10:35ID:???0153nobodyさん
2007/10/14(日) 10:13:40ID:???0154nobodyさん
2007/10/14(日) 10:18:30ID:???共有メモリでも結局ロックはしないといけないぞ。
それにファイルロックでも負荷が問題になって変な動きになる事はたぶんあんまりないはず。
ウェブアプリだと、いつ接続が切られて死ぬかもしれないから、
ロックファイルつくれば安心、ということはない。
ロックしたあと死ねばロックされっぱなしになる。
いつ死んでもいいようにするか、接続きられてもすぐに殺されないようにするか。
それでも生き死にはApache次第だから、ロックが変になる事はあり得る。
でもPHPのある共有サーバならデータベース位あるはずだから、
そっちを使った方がたぶん速くて強い、かつ設定に依存しないポータブルなものが出来ると思う。
0155nobodyさん
2007/10/14(日) 10:25:34ID:???カウンタ自体は1バイトアペンドでやっちゃっても良さそう。
0156131
2007/10/14(日) 10:36:00ID:U7e4W6gpファイルが壊れるのが一番心配だったのですが、
実際に同じことをやられていた人や、appendはOSが保証してくれるというので安心しました。
業務でやっているわけじゃないので、絶対に壊れてはダメというわけではないのですが、
さすがに毎日のように壊れていては話にならないので、試行錯誤中でした。
頂いたレスで、
> 要はapacheログのローテーションと同じだからググれ
とありましたが、このappendのロジックを思いついたのも、
毎日のapacheのアクセスログが何で破損しないんだろう、という点からでした。
ファイルのサイズも何GBもあっても一瞬で計算できるのも利点だと思います。
とりあえず、やり方で本番環境に乗せる予定です。
どうもありがとうございました。
0157nobodyさん
2007/10/14(日) 10:36:02ID:???データベースへの接続は負荷高いし。
俺も1バイトアペンドでいいんじゃないかと思ってきたw
1バイトアペンドで何が問題?
ファイルサイズ?
一日ごとにファイルわければ問題なし。
そして、過去の日付は、ファイルサイズによるカウンタ法から
数値を入れたファイルに変換すればいいだろう。
0158nobodyさん
2007/10/14(日) 10:49:09ID:???さすがに吹き出すだろうか?w
today.dat ・・・・ファイルサイズでカウントする
2007-10-13-12345.dat・・・アクセス数12345 ファイルサイズは0
2007-10-12-44444.dat・・・アクセス数44444 ファイルサイズは0
ってな感じで。いや、中身読むより早いかなぁと思って。
ここでひらめいた! ファイル名カウンタ法!
アクセスがあるたびに、ファイル名でカウンタする。つまり
77777.dat ・・・ 77777がアクセス数
で、アクセスがあればリネーム。
リネームが成功すればカウント成功。失敗すれば
他プロセスがカウントしていたということでリトライ。
0159nobodyさん
2007/10/14(日) 10:54:49ID:???更新にラグが出るんだっけ?
0160nobodyさん
2007/10/14(日) 12:30:32ID:TEnpd0OZそれともforでNoを作っていくものなんでしょうか?
0161nobodyさん
2007/10/14(日) 12:35:47ID:???ログに記録している人の方が多いいと思われ、Noと記事の内容の不一致が起きると
都合の悪い事も出てくるからね。
0162nobodyさん
2007/10/14(日) 12:46:10ID:???0163nobodyさん
2007/10/14(日) 12:49:51ID:rdw+jS+bflockは接続が途絶えれば解除されるような?
0164nobodyさん
2007/10/14(日) 12:50:59ID:???0165nobodyさん
2007/10/14(日) 12:52:11ID:???画像掲示板に連続投稿とか出来たら最高なんですけど。
0166nobodyさん
2007/10/14(日) 12:56:42ID:???0168nobodyさん
2007/10/14(日) 13:26:30ID:???2ちゃんねるに書き込むスクリプト。
0169nobodyさん
2007/10/14(日) 13:52:38ID:???0170nobodyさん
2007/10/14(日) 13:56:37ID:???0171nobodyさん
2007/10/14(日) 14:11:23ID:???0172nobodyさん
2007/10/14(日) 15:02:40ID:???しかしカウンタでDB使っている日とってそんなにいるのか・・・
カウントするだけなのによ
0173nobodyさん
2007/10/14(日) 15:03:30ID:???0174nobodyさん
2007/10/14(日) 15:22:09ID:???0175nobodyさん
2007/10/14(日) 15:42:30ID:???0177nobodyさん
2007/10/14(日) 17:41:50ID:???個人で純粋にTOPのPVだけ取りたい人はテキストベースの方が多いんじゃない?
仕事で組む場合100%DBに頼ってる
0178nobodyさん
2007/10/14(日) 17:45:07ID:???それは、独自のロジックを組んで問題になったら、責任が自分の所にくるけど、
DBでやってトラブったら、Oracleの営業を呼んで扱き下ろしてやれば良いという姑息な打算から???
0180nobodyさん
2007/10/14(日) 18:05:50ID:???http://game13.2ch.net/test/read.cgi/mmo/1191276517/
0181nobodyさん
2007/10/14(日) 18:56:39ID:???0183nobodyさん
2007/10/14(日) 20:07:50ID:???アクセスログをDBに放り込んで、解析結果のひとつとして
トップページのアクセスカウントとか得てるからじゃないの。
0184nobodyさん
2007/10/14(日) 20:21:43ID:???ttp://weblog.riok.net/2006/09/mcrypt.php
復号化した際、データの最後にゴミが残ってしまいます。
このゴミを取り除く方法はありますでしょうか?
0185nobodyさん
2007/10/14(日) 20:37:28ID:???0186nobodyさん
2007/10/14(日) 22:25:46ID:T+RuNK/v30個ほどある$_POST{"***"}をfunctionに入れて各スクリプトより使いたいんですが
function ($_POST){
$a = $_POST{"a"};
$b = $_POST{"b"};
$c = nl2br($_POST{"c"});
$d = round($_POST["d"});
〜
return true;
}
こういう風に書いたんですけど、returnで返って来ません。
return $a,$b,$c…っていう風に書くとエラー出ますし
return array($a,$b,$c…)って風に配列に入れる以外方法無いんでしょうか?
0187nobodyさん
2007/10/14(日) 22:31:27ID:???$a〜$dを初期化しといて
function hoge() {
global $a;
〜
global $d;
(処理)
return;
}
とすればいいんじゃないか?
ちなみに$_POSTは引数として与えなくてもスーパーグローバルだから。
0190nobodyさん
2007/10/14(日) 22:35:42ID:???0191nobodyさん
2007/10/14(日) 22:36:09ID:???調べてみます
Javascriptだとreturn[a,b,c,d]が効いたのに
なかなかPHPは難しいすねー
0192nobodyさん
2007/10/14(日) 22:37:34ID:???すりゃいいじゃん
0193nobodyさん
2007/10/14(日) 22:38:39ID:???最初から$arr['a']〜$arr['b']とかしといた方がまだマシだろうけどねw
0194nobodyさん
2007/10/14(日) 22:43:19ID:???return $a;
return $b;
return $c;
って書けば完璧じゃね?
0195nobodyさん
2007/10/14(日) 22:43:35ID:???0196nobodyさん
2007/10/14(日) 22:43:36ID:rdw+jS+bfunction hoge(&$a,&$b,&$c) {
$a=$_POST["a"];
$b=$_POST["b"];
$c=$_POST["c];
}
参照だろ
0197nobodyさん
2007/10/14(日) 22:44:49ID:???0198nobodyさん
2007/10/14(日) 22:46:14ID:???0199nobodyさん
2007/10/14(日) 22:48:15ID:???0200nobodyさん
2007/10/14(日) 22:48:56ID:???0202nobodyさん
2007/10/14(日) 22:50:05ID:???0203nobodyさん
2007/10/14(日) 22:51:54ID:???0205nobodyさん
2007/10/14(日) 23:17:05ID:???$a = $_POST["a"];
$b = $_POST["b"];
$c = $_POST["c"];
$d = $_POST["d"];
$e = $_POST["e"];
$f = $_POST["f"];
$g = $_POST["g"];
$h = $_POST["h"];
$i = $_POST["i"];
$j = $_POST["j"];
$k = $_POST["k"];
$l = $_POST["l"];
$m = $_POST["m"];
$n = $_POST["n"];
$o = $_POST["o"];
$p = $_POST["p"];
$q = $_POST["q"];
$r = $_POST["r"];
$s = $_POST["s"];
$t = $_POST["t"];
$u = $_POST["u"];
$v = $_POST["v"];
$w = $_POST["w"];
$x = $_POST["y"];
$y = $_POST["x"];
$z = $_POST["z"];
$a1 = $_POST["a1"];
$a2 = $_POST["a2"];
$a3 = $_POST["a3"];
$a4 = $_POST["a4"];
return true; }} # 30個の例。どう考えてもおかしいだろ。(行多すぎてここにしかコメント書けんw)
0206nobodyさん
2007/10/14(日) 23:18:20ID:???0207184
2007/10/14(日) 23:20:28ID:???アップしてきます
ありがとうございました。
ちなみにテンプレsage進行になってるんだけど、
やっぱりあげるべきだった?
0208nobodyさん
2007/10/14(日) 23:21:23ID:???0209nobodyさん
2007/10/14(日) 23:58:32ID:???return array($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,$q,$r,$s,$t,$u,$v,$w,$y,$x,$z,$a1,$a2,$a3,$a4);
これ↓はダメなの?(エラー?)
function hoge(){
$hash["a"] = $_POST["a"];
$hash["b"] = $_POST["b"];
(中略)
$hash["a4"] = $_POST["a4"];
return $hash;
}
0210nobodyさん
2007/10/15(月) 00:19:40ID:???馬鹿じゃねえのおまえら。
0211nobodyさん
2007/10/15(月) 00:36:06ID:???0212nobodyさん
2007/10/15(月) 00:37:32ID:???だったら最初から$_POSTのままでアクセスすりゃいいのでは…
どうしてもグローバル変数に入れたいってなら
function hoge() {
foreach($_POST as $k => $v) {
$GLOBALS[$k] = $_POST[$v];
}
}
とか。
つーかこれ、ぶっちゃけextract()でいいじゃん。
ま、上の関数ならちょっといじればキーに制限とかも加えられるけど。
0213nobodyさん
2007/10/15(月) 00:51:10ID:???0215nobodyさん
2007/10/15(月) 00:53:44ID:pvBXefedこんど新しいサービスを始めるってことで、会員登録ができるように
システムの変更を任されたのですが、ユーザーIDを漢字でも平仮名でも
いける様にしろと役員からの命令で作っているのですが、
こんな仕様で支障はないですか?
ユーザーIDに漢字を使った記憶が私自身無いので、違和感が多少あります。
普通にはあまりないけど、特に問題ないってことであれば良いとは思うんですが。
0216nobodyさん
2007/10/15(月) 01:21:30ID:???気持ちがいいとは思えないが、まぁいいんじゃない
それでいいなら
0217nobodyさん
2007/10/15(月) 01:22:02ID:???0218nobodyさん
2007/10/15(月) 01:24:27ID:???多分技術知らん役員が、指示してるんだから、言葉通りじゃなく意味を察してやればいい。
おそらく、IDっていうかニックネームくらいの意味合いでしょ。
実際のIDは別に数字で作っておけば仕様変更に耐えて拡張できるじゃない。
0219nobodyさん
2007/10/15(月) 01:37:38ID:???鬼子乙
0220nobodyさん
2007/10/15(月) 01:46:20ID:???0221nobodyさん
2007/10/15(月) 02:22:54ID:???0222nobodyさん
2007/10/15(月) 02:44:11ID:???これを
---------------------------------------
Date: Sun, 14 Oct 2007 17:40:56 GMT
Server: ***
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4486
Connection: close
Content-Type: text/html; charset=utf-8
200 OK
---------------------------------------
下記のようにしたい。
---------------------------------------
Date: Sun, 14 Oct 2007 17:36:23 GMT
Server: ***
Etag: f55e173eaf6d08418edc18ac4df2752d
Content-Type: text/html; charset=utf-8
200 OK
---------------------------------------
session_start();
するとついてしまうものですか?
0223nobodyさん
2007/10/15(月) 02:47:04ID:???0224nobodyさん
2007/10/15(月) 02:50:55ID:???0226nobodyさん
2007/10/15(月) 05:41:13ID:tolXaTNQという配列があったとして、配列の指定番号を
別の文字列に置き換えるには、どうしたらいいのでしょうか?
0227nobodyさん
2007/10/15(月) 05:57:15ID:rCD/KqUy<br>©
これを
%3Cbr%3E%26copy%3B
このようにcookieに保存させたい場合どのようにしたらいいですか?
0228227
2007/10/15(月) 06:04:35ID:rCD/KqUycookieに%3Cbr%3E%26copy%3Bを保存したのですがhtmlに表示するにはどうしたらいいですか?
htmlspecialcharsをやってみたのですが<br>だけ表示され、©が表示されません。
0229227
2007/10/15(月) 06:09:03ID:rCD/KqUyありがとうございました☆
0230227
2007/10/15(月) 06:23:10ID:rCD/KqUyまた別の問題でした><シクシク
0231nobodyさん
2007/10/15(月) 06:23:13ID:???まずはマニュアル見なよ
>>1のマニュアルで「配列」あたりで探してみな。
右上の検索窓で array で検索するのもいいかもね。
0233227
2007/10/15(月) 06:51:00ID:rCD/KqUyありがとう!
配列で検索したら解決しました☆
0234nobodyさん
2007/10/15(月) 08:29:23ID:rCD/KqUy0235435
2007/10/15(月) 09:12:11ID:???$array = array("別のkey1" => "あああ", "別のkey2" => "いいい", "別のkey3" => "ううう");
0236nobodyさん
2007/10/15(月) 09:40:03ID:???$valueに日本語が含まれていない場合の処理はどの様に書くんでしょうか?
ググってもMTのコメントスパムモジュールみたいな物しか載ってなくて…。
とりあえず
#半角英数字しか$valueに無い場合はエラー
if(!mb_ereg('[^0-9a-zA-Z]',$value){〜
って風に書いてますが、この場合空白文字や改行を含むと通ってしまいます。
0237nobodyさん
2007/10/15(月) 10:04:25ID:YXxNHMi3といちいちやるのがめんどうだ。。。
なんか関数や変数を参照する前にフックさせて、$this->と書かなくてもいいようにできないのかなぁ。
0238236
2007/10/15(月) 10:18:49ID:???if(preg_match("/^[!-~\r\n ]+$/",$value)){
これで行けそうな気がしましたが大丈夫かな…
0239nobodyさん
2007/10/15(月) 10:19:59ID:wektbLJ2setは値をセット、getは値を返すようにしているけど
値を書き換えるときはどんな名前をつけたほうがいいですか?
0240nobodyさん
2007/10/15(月) 10:22:15ID:???0242nobodyさん
2007/10/15(月) 10:33:16ID:wektbLJ2サンクス
setにしてみます。
changeにしようと思ったが思いとどまってよかった・・・
0243nobodyさん
2007/10/15(月) 15:59:36ID:???細かい正規表現を作れる奴の方が凄いよ
http抜出とか、人の見ても理解できないよ
ひらがな・カタカナ抽出とか
記号だけHITさせるなんて書けるやついる?
0244nobodyさん
2007/10/15(月) 16:02:41ID:???0245nobodyさん
2007/10/15(月) 16:03:05ID:???0246nobodyさん
2007/10/15(月) 16:10:55ID:???アドレスはURIの知識があれば書ける
平仮名片仮名記号は[]内に書いておけば事足りる
文字コードで範囲指定しても良いけど
正規表現で重要なのは表現したい対象を構成するデータパターンを把握する能力
アドレス抜き出しはURIの知識が無かったら書けない
パターンの最適解を求める話はしてないので念の為
0249nobodyさん
2007/10/15(月) 16:57:06ID:oAeMasT7コード座標が違うOS依存文字を強調表示にする
書き方がちんぷんかんぷんです
どういった手続きが良いんでしょうか?
なんでwinとmacで(1)とかVIとか場所が違うんでしょうね…
0250nobodyさん
2007/10/15(月) 17:00:25ID:???0251nobodyさん
2007/10/15(月) 17:00:30ID:???0252nobodyさん
2007/10/15(月) 17:25:05ID:oAeMasT7・添付する前に保存したものをブラウザで見る→ブラウザのユニコードで記号ok→イラレにコピペ→文字化けアッー
です。
もう警告表示つけて入力抑止しようかなと…
0253nobodyさん
2007/10/15(月) 17:28:36ID:xzfwn/e8・・・・
}
から
function 20(){
・・・・
}
0();
〜
20();
って書いて読んでるんですが何か楽な方法ないでしょうか。forがよく分からなくて・・
0254nobodyさん
2007/10/15(月) 17:30:58ID:???0257nobodyさん
2007/10/15(月) 18:07:58ID:xzfwn/e8あ。レスありがとう。先頭が数字なのは例のつもりでした。
実際は
sitemap0〜sitemap50とかです。
少ないし別に並べて書いてもいいかな。。。w
0259nobodyさん
2007/10/15(月) 18:21:41ID:???昨日30個の$_POSTの処理の質問出たけどそれの続き?
今度は30個の$_POSTを個別に関数で処理するとか
0260nobodyさん
2007/10/15(月) 18:22:47ID:???0261nobodyさん
2007/10/15(月) 18:30:49ID:???tplに組み込むソースをバイナリエディタで見る→おK
hoge.tplに組み込んでhoge.php表示→レイアウト崩れ
ソース見る→半角スペース入る(バイナリエディタだと文字化け)
って現象に悩まされてるんだが。
正:
<!DOCTYPE
現在:
\<!DOCTYPE
↑ここが文字化け(見た目は半角スペース)
原因不明です。誰か教えてください。
よろしくお願いします。
0262nobodyさん
2007/10/15(月) 18:32:44ID:???0263nobodyさん
2007/10/15(月) 18:34:48ID:???0265nobodyさん
2007/10/15(月) 18:37:59ID:xzfwn/e8>>258 可変関数などでぐぐってみます〜
>>259 自分じゃないですよ。サイトマップを半自動で作るようにしたいのです。
>>260 おかしいですよね・・・動的ページのサイトマップを自動で作りたいんだけど、
何か方法ないものかいろいろ試してるんですよ。
みんなどうやってサイトマップ作ってるんだろ。
0266nobodyさん
2007/10/15(月) 18:39:19ID:???0267nobodyさん
2007/10/15(月) 19:49:40ID:tolXaTNQ$array = array("あああ","いいい","ううう");
↓
$array = array("あああ","","ううう");
というように、連想配列ではなく、
配列の一部を変更出来る方法を教えていただければと思います。
0272nobodyさん
2007/10/15(月) 21:01:56ID:???生データ入れてる?
0273nobodyさん
2007/10/15(月) 21:19:19ID:???場面場面によって違う
0277nobodyさん
2007/10/15(月) 21:52:35ID:???0278nobodyさん
2007/10/15(月) 22:11:18ID:???0279nobodyさん
2007/10/15(月) 23:11:35ID:PdW9cMRB今現在CSVファイルのデータをもとにフリー検索できるようにしてるのですが、
サイズが膨大すぎて時々上手く作動しません。
データは $Data=file("datacsv"); こんな感じで読み込んでます。
そこで質問なんですが、特定の列だけを対象に読み込ませることは可能でしょうか?
例えばCSVのデータの縦列6行目の商品名のみを対象にとか
お願いします。
0281nobodyさん
2007/10/15(月) 23:18:35ID:???$array = split(',',$Data['5']);# 6列目
print $array[2];# 前から3番目に商品名が入ってるとして
こんなんでどう?
ていうか、サイズが膨大すぎて時々上手く動作しませんってのはおかしい
0282nobodyさん
2007/10/15(月) 23:21:34ID:???>>278使えば可逆できるみたいよ。
(mcryptのマニュアル見たけど難しくて理解できなかったけど)
掲示板の名前やメアドくらいなら生でもいいんじゃいの? またはhttps使うとか
md5はDB使ってて照合する場合(認証等)ならいいと思います。
0283nobodyさん
2007/10/15(月) 23:44:35ID:???特定列(行?)だけを対象ってのは関数自作しないとダメと思う。
$Data=file("datacsv")だとファイル丸ごと読み込んでるから重いんだと思う。
1行ごと読み込んで必要な列だけ別配列に移しファイル閉じてから配列ぶん回して検索すればどう?
0284279
2007/10/15(月) 23:54:30ID:???ありがとうございます。試してみましたが、なかなか上手くいきません・・・
スキル不足でしょうか・・
>283
そうなんです。ファイルが膨大なため上手く読み込めなくて文字化けしたり、挙動がたまにおきます。
問題はピンスポットで検索できず、余計なものまで読み込んでることにあります。
商品名だけ検索対象にしたいのですが・・・
おっしゃってることは理解できるのですが、関数が簡単に自作できないもんで・・・
0286nobodyさん
2007/10/16(火) 00:04:24ID:???ファイルが膨大ってどれぐらいのサイズ?
郵便局のH.P.で配布されてる郵便番号のデータ読み込んで
住所の一部から郵便番号とか、郵便番号から住所とか検索するの作ったけど
データファイルが10MB以上あるけどちゃんと動くよ?
差し支えなけりゃそのデータファイルうpよろ
プログラムに原因があるんじゃなくデータファイルに原因あるかも
0287nobodyさん
2007/10/16(火) 00:10:56ID:???0288nobodyさん
2007/10/16(火) 00:16:15ID:???0290283
2007/10/16(火) 00:26:41ID:???$csvfile = "data.csv";
$search_field = 6; # n番目の列を検索(1スタート)
$search_word = "xxx";
function search_csv($csvfile, $search_word, $search_field){
$row = 0;
$field = $search_field - 1 ;
$handle = fopen($csvfile, "r");
while (($data = fgetcsv($handle, 1000)) !== FALSE) {
if((strpos($data[$field],$search_word)) === true){ # 検索処理
$hit[$row++] = $data[$field];
}
}
return $hit;
}
実際の検索処理はstrposじゃダメだと思うけど。
もし検索対象列以外の情報も欲しいならその列番号を引数($field_id)にして
$hit[$row][0] = $data[$field_id - 1];
$hit[$row++][1] = $data[$field];
とでもして。
0291nobodyさん
2007/10/16(火) 00:37:31ID:???0292279
2007/10/16(火) 00:43:26ID:???ありがとうございます。
今日じっくり試してみます。
>>291
DBがベストですね。 CSVをmySQLにインポートしてから・・・ も最終的には
考えています。
みなさんありがとう。またきます。
0293nobodyさん
2007/10/16(火) 00:51:29ID:???>>CSVをmySQLにインポートしてから・・・ も最終的には考えています。
処理重いなら最初に考えてくれ
そしたら対象列のみの検索関数なんていらないのに。(DB使えない事情あるのかと思ってたよ)
0294nobodyさん
2007/10/16(火) 12:42:40ID:???頂いたアドバイスは大して役に立たなかったのですが、
自分でその後色々試してみてできるようになりました。
ただ、アドバイス頂いたことをキッカケで解決の糸口になったので、
その点については感謝します。どうもありがとうございました。
0295nobodyさん
2007/10/16(火) 13:00:30ID:???, - ,----、
(U( )
| |∨T∨
(__)_) お役に立てなくて本当に申し訳ありませんでした。
0296nobodyさん
2007/10/16(火) 13:03:14ID:???/ ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
./ / | もう来るなよ!>>294
/ / \ / ̄ ̄ ̄
/ /  ̄|/ ̄ ̄ ̄ ̄| ウワアアン!
./ / , -つ \
/ / `Д´) ./__ノ  ̄∨ ̄ ̄ ̄ ̄
/ \ / / ⊂_ヽ、
.| へ/ / .\\
| レ' /、二つ \ ( `Д´)
| /. . > ⌒ヽ
/ / / へ \
/ / / / \\
/ / レ ノ ヽ_つ
/ ノ / /
_/ / / /|
ノ / ( ( 、
⊂ -' | |、 \
. | / \ ⌒l
| | ) /
ノ ) し'
(_/
0297nobodyさん
2007/10/16(火) 13:10:49ID:???>自分でその後色々試してみてできるようになりました。
>
>ただ、アドバイス頂いたことをキッカケで解決の糸口になったので、
>その点については感謝します。どうもありがとうございました。
なにこの糞厨房?
自分の技術のなさとやりたいことを伝える能力のなさを棚に上げて何言ってんの?
0298nobodyさん
2007/10/16(火) 13:47:35ID:???は?何、キモイレスしてんの?
ワザワザ時間を使ってお礼のレスを書いているのに、お前こそ何様?
そもそも、お前がアドバイスしてくれた本人じゃないだろ。
お前が消えろ。
0299nobodyさん
2007/10/16(火) 13:57:58ID:???0301nobodyさん
2007/10/16(火) 14:00:27ID:???ここは気持ちの綺麗な初心者がくだらねえ質問を書くスレであって、くだらねえ性格の持ち主が来る場所じゃない
よって、お前はもう来るなよ!
0302nobodyさん
2007/10/16(火) 14:44:20ID:???では大して役に立たなかったアドバイスをした私(>>283,290)から一言、
/ ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
./ / | もう来るなよ!>>294 >>298
/ / \ / ̄ ̄ ̄
/ /  ̄|/ ̄ ̄ ̄ ̄| ウワアアン!
./ / , -つ \
/ / `Д?) ./__ノ  ̄? ̄ ̄ ̄ ̄
/ \ / / ?_ヽ、
.| へ/ / .\\
| レ' /、二つ \ ( `Д?)
| /. . > ⌒ヽ
/ / / へ \
/ / / / \\
/ / レ ノ ヽ_つ
/ ノ / /
_/ / / /|
ノ / ( ( 、
? -' | |、 \
. | / \ ⌒l
| | ) /
ノ ) し'
(_/
0303nobodyさん
2007/10/16(火) 14:53:41ID:???/:::::::::::::::::::::::::::::::::::::::\〜プーン
|:::::::::::::;;;;;;|_|_|_|_|〜プーン
|;;;;;;;;;;ノ∪ \,) ,,/ ヽ〜
|::( 6∪ ー─◎─◎ )〜
|ノ (∵∴ ( o o)∴)〜
| ∪< ∵∵ 3 ∵> <は?何、キモイレスしてんの?
\ ⌒ ノ_____
\_____/ | | ̄ ̄\ \
___/ \ | | | ̄ ̄|
|:::::::/ \___ | \| | |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/ | ̄ ̄ ̄ ̄| 〔 ̄ ̄〕
顔真っ赤な>>298氏
0304nobodyさん
2007/10/16(火) 16:08:57ID:6XgRK9plを
都道府県
市区町村
○○丁目
○番地
のように解析するようなライブラリとかありませんか?
0305nobodyさん
2007/10/16(火) 16:10:33ID:???クラスでmysqlを使うときに
$this->mysqli->query("show tables")
みたいに書いても動かないんですけど
やっぱり->が二つ以上あるのはだめなんですか?
クラスでmysql使うにはどうしたらいいんでしょうか?
やっぱり、手続き型ですか?
0306305
2007/10/16(火) 16:12:44ID:???自己解決しました。
0307nobodyさん
2007/10/16(火) 16:16:36ID:???変更フォーム画面にアクセスした時、
既に登録されているデータをフォーム内に配置したいと思っています。
テキストボックスの値やテキストエリアの値は変数をそのまま出力するだけで簡単でしたが、
セレクトメニューの項目の場合、皆さんはどういう風に登録値を当て嵌めてますか?
0308305
2007/10/16(火) 16:17:07ID:???0309307
2007/10/16(火) 16:19:13ID:???解決しました。
0313nobodyさん
2007/10/16(火) 17:31:08ID:HcNoY8tx$func = 'Test';
$this->'user'.$func.'Warp'();
こんな形で
userTestWarpファンクションを通過させたいのですがうまく行きません。
どのような書き方でうまく動作するでしょうか?
宜しくお願いします
0314nobodyさん
2007/10/16(火) 17:34:15ID:6XgRK9plそうなのですか、すみませんでした。
住所を検索して位置情報を取得したいのですが、
Geocoding使う以外に何か方法はないものかと思っていたら
国土交通省に各住所と位置情報のデータベースがあったので、
そこから検索しようと思い入力された住所を解析しようと思いました。
0315nobodyさん
2007/10/16(火) 17:36:57ID:???$this->{'user'.$func.'Warp'}();
$this->{"user{$func}Warp"}();
など。
0317nobodyさん
2007/10/16(火) 17:42:49ID:???という意思表示とみなされます。
0318nobodyさん
2007/10/16(火) 17:45:25ID:???0319nobodyさん
2007/10/16(火) 17:56:42ID:???ID出さずに自滅するのは質問者の勝手、ってことにすれば
喧嘩は質問者とその騙りだけで閉じて回答者は参加しなくなるから。
0320nobodyさん
2007/10/16(火) 18:40:10ID:NYdItq6K皇后についてはどうでしょうか?
例えば、天皇皇后が終戦記念日の祝典に出たときに、
皇后が何もお言葉を述べなかったのは、
戦没者を不当に軽視するもので、精神的な苦痛を受けたとして、
皇后を被告に民事裁判を申し立てることはできますか?
0321nobodyさん
2007/10/16(火) 18:41:33ID:???0322nobodyさん
2007/10/16(火) 18:41:56ID:???0323nobodyさん
2007/10/16(火) 18:43:35ID:???0324320
2007/10/16(火) 18:44:51ID:NYdItq6K0326nobodyさん
2007/10/16(火) 18:57:31ID:CHj8ujM0setcookieを配列の数実行したらいいのでしょうか?
0327nobodyさん
2007/10/16(火) 19:09:25ID:???0328nobodyさん
2007/10/16(火) 21:27:56ID:CHj8ujM0$b = '山本';
これをシリアライズしてcookieに保存する方法をおしえてください。
0329nobodyさん
2007/10/16(火) 21:33:25ID:???0331nobodyさん
2007/10/16(火) 22:32:03ID:opvWCKV/リソースを一工程で連想配列として扱う方法はありますか?
0333nobodyさん
2007/10/16(火) 23:50:39ID:opvWCKV/返ってきた結果を色々弄るのにリソースより配列にする
方が楽なので(今は自作関数で処理してます)。
0334nobodyさん
2007/10/17(水) 00:10:09ID:???0337nobodyさん
2007/10/17(水) 01:41:10ID:???とするべき所を
$tmp = NULL;
と間違って初期化してしまったために、
array_pushのコードの箇所でエラーが発生して、今日業務が止まってしまったのですが、
素直に上司に報告したところ、笑って許してくれました。
これも普段からの人徳からなのかもしれない。
普通の人だったら首になってもおかしくないですから。
0338nobodyさん
2007/10/17(水) 01:48:29ID:???0339nobodyさん
2007/10/17(水) 02:09:07ID:???0340nobodyさん
2007/10/17(水) 07:48:12ID:pDVA8Q4Wにしたところ、PHPの関数ファイルなどがすべて文字化けしました。
こういう用途の場合、どうやって文字化け回避したらよいのでしょうか?
一括で出来る方法を教えて下さい。
(ちなみに、サーバもEUCです)
0342340
2007/10/17(水) 07:58:09ID:???表示ページ→Shift-JIS
関数ファイル→EUC-JP
で、表示ページにrequireで関数ファイルを読み込んでいるのですが、
どの部分に変換すればいいのでしょうか?
また、mb_convart_encodingではないですよね?
0344nobodyさん
2007/10/17(水) 08:51:53ID:???0346nobodyさん
2007/10/17(水) 11:00:32ID:Y8aoqXAI指定したファイルのmd5を取得したくて下のようにしました
しかし ./test.jpg が渡されていてファイルのmd5が取得できませんでした
$target = "./test.jpg";
$md5_name = md5($target);
print "md5 $md5_name";
次にこのようにしてファイルを読み込ませて、それを元にmd5を得ようと思いましたが
でてきた結果が空白でこれも失敗しました
$target = file("./test.jpg");
$md5_name = md5($target);
print "md5 $md5_name";
ファイルのmd5はどうやったら取得できるのでしょうか?
0348nobodyさん
2007/10/17(水) 11:14:29ID:Y8aoqXAIhttp://jp.php.net/manual/ja/function.md5.php
ここですよね?
文字列からのは理解できましたがファイルからのが理解できなかったんです
0349nobodyさん
2007/10/17(水) 11:18:29ID:???あるいは左の関数一覧を見れ
0350nobodyさん
2007/10/17(水) 11:26:48ID:Y8aoqXAIうほっ、関数あったw
ありがとうございました
0351nobodyさん
2007/10/17(水) 12:00:23ID:???0352nobodyさん
2007/10/17(水) 17:21:33ID:???マニュアル見れ坊しね
0353nobodyさん
2007/10/17(水) 17:26:54ID:Y7gFjXGGjsのヒストリーバックや、ブラウザのバックを使うと
修正しようと戻ると、入力欄が空白になる場合があります。
毎回ならわかるのですが、何故なんでしょう?
ヒストリーバックなボタンは使わず
hiddenで変数を埋め込んだ方がいいのでしょうか?
0354nobodyさん
2007/10/17(水) 18:07:47ID:???0355nobodyさん
2007/10/17(水) 18:16:25ID:???$a[0][0] = 1;
$a[0][1] = 2;
$a[0][2] = 1;
という多次元配列を作っておいて、
$a[0][0] の値と $a[0][2] の値を if 文で比較処理したいと思っています。
そこで
if ( $a[0][0] == $a[0][2] ) {
処理内容
}
と書いても評価してくれません。
そこで「{$a[0][0]}」のように波括弧で囲まないと
希望の挙動にならないのかとも思ったのですが、
if ( {$a[0][0]} == {$a[0][2]} ){ ……
とすると文法エラーになってしまいます。
if の条件文の中で、直接に多次元配列の値を比較するには
どのようにすればいいのでしょうか?
よろしくご教示ください。
0356nobodyさん
2007/10/17(水) 18:18:12ID:???ブラウザの一時メモリキャッシュが残ってるかどうかじゃないのかな。
ヒストリーバックに頼るのは良くないと思うよ。
>>354
セッションは簡単だけど2画面開かれたときにおかしな挙動になることもあるからTPOで。
0357nobodyさん
2007/10/17(水) 18:20:15ID:???$a[0][0] = 1;
$a[0][1] = 2;
$a[0][2] = 1;
if ( $a[0][0] == $a[0][2] ) {
echo "一致した\n";
}
実行結果:
一致した
普通に動いてると思うんだが確認方法をどっか間違ってないか?
0358nobodyさん
2007/10/17(水) 18:58:54ID:???0359355
2007/10/17(水) 19:01:12ID:???すみません。おっしゃっられた通り、確認方法を間違えていました。
きちんと動作します。
わざわざ検証していただいてありがとうございました。
// ああ、こんなことに3時間も悩んで、俺はバカだ orz
0360nobodyさん
2007/10/17(水) 19:10:49ID:Y7gFjXGGありがとうございます。
hiddenで対応しました。今まで入力項目が少なくて
校正のない者ばかりだったので気が付きませんでした。
そして新たに発覚したのが送信者、本分内の旧字の名前が?に化けるのですが…
UTF-8→ISO-2022-JP MINE→アウトルック
どの時点でおかしくなっているのでしょうか…
0362nobodyさん
2007/10/17(水) 19:40:39ID:bsL4C361登録用ページ(A.php)と、登録したものを表示するページ(B.php)と、
リンク先を確認&表示するページ(C.php)の3つがあります。(2chのime.nuのようなもの)
A.phpでURLをエンコードしたものをデータにいれ、
C.phpにGETでエンコード済みURLを渡すリンクをB.phpに表示し、、
C.phpで、受け取ったエンコード済みURLをデコードしたものを表示しようと思っています。
携帯対応のページなのでリファラが使えないので、
C.phpでのXSS対策の1つとして、
GETで受け取ったデータがエンコード済みのURLかどうかをチェックしたいのですが、
何か良い方法ありませんでしょうか?
それともう1つ質問なんですが、
URL登録が日本語ドメインだった場合、文字コードを考えないといけなくなるので面倒になります。
日本語ドメイン(2バイト文字ドメイン)自体使ってる人はあまりいないと思うのですが、
切り捨てるべきだと思いますか?
0363nobodyさん
2007/10/17(水) 19:57:19ID:???SESSION使えば解決な気がしなくもない
0364362
2007/10/17(水) 20:33:44ID:bsL4C361レスありがとうございます。
セッションは使ったことないので思いつきませんでした。
今からセッションについて調べてみたいと思います。
0365nobodyさん
2007/10/17(水) 21:30:56ID:???0367nobodyさん
2007/10/17(水) 22:39:24ID:DjVZ7nbdPHPで、ログファイルを開き、特定の文字列が含まれる
行番号を取得したいと考えています。
以下の記述で、サイズの小さいログファイルでは
正常に行番号が取得出来ましたが、ログファイルが大きくなると
ファイルの読み込み自体が出来ていないようでした。
fopen関数で大きなサイズのファイルを扱うにはどのようにすれば
良いでしょうか。よろしくお願いいたします。
$file = fopen("log", "r");
$i = 1;
while( $i < 10000 ) {
$line[$i] = fgets($file);
if ($line[$i] == $str) {
$start = $i;
} else {
}
if ($line[$i] == $str2) {
$end = $i;
} else {
}
$i++;
}
0368nobodyさん
2007/10/17(水) 22:44:08ID:???> $line[$i] = fgets($file);
これを
$line = fgets($file);
に変える。
1行ずつ読み込みながら処理の終わった行はどんどん捨てていけば
途中でメモリが足りなくなるようなことにはならない。
0369nobodyさん
2007/10/17(水) 23:16:33ID:???0371nobodyさん
2007/10/17(水) 23:38:56ID:???0372nobodyさん
2007/10/17(水) 23:48:11ID:???大きいファイルの処理は>>368の通りだけどいろいろ意味不明な個所が…
・else文は不要
・while($i < 10000)よりwhile(!feof($file))。10行のファイルでも10000回まわす気?
・$line[$i]==$str だと完全一致のみ。しかも改行文字削除してないから多分一致しない
・特定文字列を含む行が複数ある場合は最後の行しか残らない
0373nobodyさん
2007/10/17(水) 23:50:33ID:???0374nobodyさん
2007/10/18(木) 00:26:18ID:eHdvp5u00375nobodyさん
2007/10/18(木) 00:41:45ID:???0376nobodyさん
2007/10/18(木) 00:43:57ID:???「ログファイルを開き、特定の文字列が含まれる行番号を取得」する
プログラムを自分で書いた方が早いなw
0377nobodyさん
2007/10/18(木) 00:48:49ID:???他人のことだから、あれだけど、そういう驕り昂ぶった態度が、
日本信号のような事故を招くんだよ。気をつけてね。
0378nobodyさん
2007/10/18(木) 00:50:24ID:vC0YRi3Pおまえ、なにをひとりで偉そうなんだ?
0380nobodyさん
2007/10/18(木) 00:52:49ID:???0381nobodyさん
2007/10/18(木) 00:54:58ID:???いや別に偉そうに言っているわけじゃないよ。
ただ、この業界、悦に入っている奴が多く独善的に失敗するまで気付かない、
いや失敗しても人のせいにして自己防衛に徹する人が多いから、
アドバイスをしただけだよ。大失敗する前に気付こうね。
0384nobodyさん
2007/10/18(木) 01:05:27ID:???まぁ、まだ若いから耳に痛いことを受け入れがたいんだろうね。
俺もそんな時代があったからね。失敗して自らを省みるときがあったら、またおいで。
0385nobodyさん
2007/10/18(木) 01:23:20ID:???まずは鏡を見ろ
周りの同僚はその鏡に映っている勘違い野郎に困り果てているんだ
先輩のお前ならどうしたらいいと思う?
0386nobodyさん
2007/10/18(木) 01:40:20ID:???そうやって、すぐ攻撃的になるのが若いんだよ。
歳が若いというより脳が若いといった方が正確かもしれないが。
もっと冷静に自分を見つめ直しなさいね。秋の夜長、考える時間はいくらだってあるぞ(笑)
0387nobodyさん
2007/10/18(木) 01:46:37ID:???0388nobodyさん
2007/10/18(木) 01:59:05ID:???亀父ってインパルス堤下にソクーリだよな
0389nobodyさん
2007/10/18(木) 01:59:57ID:???http://headlines.yahoo.co.jp/hl?a=20071017-00000139-jij-bus_all
0390nobodyさん
2007/10/18(木) 02:10:50ID:???0391nobodyさん
2007/10/18(木) 02:19:39ID:fFRrKZqA<?php
echo "<a href'".$_SERVER['script_name']."?food=apple'>好きな食べ物はりんごです</a>";
echo $_GET['?'];
?>
0392nobodyさん
2007/10/18(木) 02:21:35ID:???0393nobodyさん
2007/10/18(木) 02:25:26ID:???すげえレベル低そうな専門 or DQN大学だな
0394nobodyさん
2007/10/18(木) 02:33:25ID:???話はそれからだ
0395nobodyさん
2007/10/18(木) 02:34:31ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>391
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0396nobodyさん
2007/10/18(木) 02:37:42ID:???俺も英語の大学だったがCの初歩やらされたし似たようなもんだと思うが。
で本題だが、宿題をきくんじゃねーよ。
0397nobodyさん
2007/10/18(木) 02:40:58ID:hsdJKY1+もともとそういうためにclassはあるんでしょうか?
オブジェクト指向は知らないんですがclassでglobalみたいなことができる程度の知識はあります。
$hoge;
function Hoge() {
global $hoge;
}
class Hoge {
0398397
2007/10/18(木) 02:42:01ID:hsdJKY1+class Hoge {
var $hoge;
function Hoge() {
$this->hoge;
}
}
こんなかんじですよね?
0399391
2007/10/18(木) 02:55:24ID:fFRrKZqAaction
script_name
food
apple
などです。。
まだ入門の授業で初歩的な事とは思うのですが…。先生が不親切なんでサッパリです。
どうぞ宜しくお願いします。
0401nobodyさん
2007/10/18(木) 03:09:55ID:???深夜に変な粘着が住み着いているんじゃねーか。
それもいつも決まった2人か3人のキモいやつだと思うんだが。
0402nobodyさん
2007/10/18(木) 03:18:26ID:???>>400の言ってる通りなんだけどエスケープ処理とかちゃんとやらないと。
というかそもそもhtmlがおかしいし・・・
<?php
echo "<a href=\"{$_SERVER['PHP_SELF']}?food=apple\">好きな食べ物はりんごです</a>\n";
echo $_GET['food'];
?>
見るからにviewなので、こういうのはhtmlに埋め込んで書くのがわかりやすい。
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?food=apple">好きな食べ物はりんごです</a>
<p><?echo $_GET['food']; ?></p>
このスクリプト名がhoge.phpだとすると、やっていることは、
<a href="hoge.php?food=apple">好きな食べ物はりんごです</a>
これをクリックすると、hoge.phpにGETメソッドで変数foodにappleという値を入れたのが送信される
これは$_GET['food'] = "apple"と表すことが出来る。
0403nobodyさん
2007/10/18(木) 03:29:33ID:9nEaD6jD何か簡単な方法ないでしょうか。
0404nobodyさん
2007/10/18(木) 03:30:46ID:???>もともとそういうためにclassはあるんでしょうか?
違います
>globalを使いたくないのですが、そのためだけにclassを使うのはおかしいですか?
何をどう使うかは君の自由だが、忠告しておくなら「無意味だからやめとけ」
0406nobodyさん
2007/10/18(木) 04:45:13ID:???レスありがとうございます。
書き込み前に、headerだけ送ってみたのですがうまくいかず
ttp://www.avoidnote.com/archives/2005/07/modified_since.php
を参考にさせてもらったのですが、
HTTP headerで確認すると、最初はIf-Modified-Since: xxxxx GMT
と出るようになりました。キャッシュ後は、HTTP/1.x 304 Not Modified になってます。これでいいのかな?w
実はサイトも動的なのですが、rssも動的で
ttp://feedanalyzer.com/
で見るとIf-Modified-Sinceがどうたらこうたら言われてたので作業してました。
お騒がせしました。
0407nobodyさん
2007/10/18(木) 05:19:55ID:9nEaD6jDキャッシュ後もHTTP/1.x 200 OK
となってます。うん。。
0408nobodyさん
2007/10/18(木) 06:05:37ID:4uVZrR94いつも$_SESSIONに、当たり前のように保存しているのですが、
トランザクション単位でセッションって保証されているのでしょうか?
たとえば、セッション変数をAとBを設定しても、
取り出すときに、Aだけ取り出せないとかありますか?
セッションも実体はファイルで実装されていたような気がするのですが、
もしそうだとすると、ファイルが壊れたときなどのときに、
トランザクション内で不整合が生じる場合もありえるのかと思いました。
phpに限ったことではないのですが、今回高額の金額を扱うシステムなので、
少し不安です。ご教授お願い致します。
0409408
2007/10/18(木) 06:34:50ID:4uVZrR94例えば、A画面からB画面へ遷移する場合に、
A画面から送られたデータを
$_SESSION["A"]="a";
$_SESSION["B"]="b";
とMODELクラスでセットした後、
B画面を表示するときにVIEWクラスで、
$x = $_SESSION["A"];
$y = $_SESSION["B"];
とセッションから取り出したときに、
$yは"b"と入っているのに、$xは""だったみたいなことってありますでしょうか?
というのが質問の趣旨です。
もし、その可能性があるとすると、トランザクション単位で全ての変数の有効性をチェックしてから
でないと、取得した値を使うのはまずいのかなぁと思っています。
宜しくお願いします。
0410nobodyさん
2007/10/18(木) 06:51:24ID:+ZcK0GoEif ( id > 2147483647 ) // エラー
0411nobodyさん
2007/10/18(木) 08:24:26ID:???そうやって、スルーできないのが年寄りなんだよ。
歳がいってるというより頭が固いといった方が正確かもしれないが。
もっと冷静に自分を見つめ直しなさいね。先は短いから、考える時間ももう少ないぞ(笑)
#冷静さを装っているけど、ぜんぜん冷静じゃない>>386(笑)
0412nobodyさん
2007/10/18(木) 09:06:26ID:dUvBQY0o使用したいのですがどのようにしたらいいのでしょうか?
PHPは4.4.7を使用しています
以下現状
class test{
function test(){
}
function output(){
ob_start("collback");
echo "おはよう。<!--{aaa}-->";
ob_end_flush();
}
function collback($buffer){
$ary1 = "<!--{aaa}-->";
$ary2 = "フェルプス君";
return str_replace($ary1,$ary2,$buffer);
}
}
$hage = new output();
$hoge->output();
0413nobodyさん
2007/10/18(木) 09:33:06ID:???function test(){}
function output() {
ob_start(array($this, "collback"));
echo "おはよう。<!--{aaa}-->";
ob_end_flush();
}
function collback($buffer) {
$ary1 = "<!--{aaa}-->";
$ary2 = "フェルプス君";
return str_replace($ary1,$ary2,$buffer);
}
}
$hoge = new test();
$hoge->output();
0414nobodyさん
2007/10/18(木) 09:53:40ID:dUvBQY0oできました
ありがとうございます
0416403
2007/10/18(木) 10:37:17ID:9nEaD6jDttp://www.avoidnote.com/archives/2005/07/modified_since.php
でIf-Modified-Sinceが使えるように追加したのですが、
session を使ってるのですが、なんどブラウザーをリロードしても304が返ってこず200のままです。
//session_start(); としみると、304が返ってくるのですが。
sessionを使ってると仕方ないのでしょうか?
idは変数です。$idです。間違えました。
1以上の整数が入るはずなのです。
MySQLのInteger型になってるです。
autoincrementされるのです。
0418nobodyさん
2007/10/18(木) 11:34:35ID:mbbw0WwDtestlogという200行のデータが書き込まれたログファイルがあります。
$start = 20;と、$end = 50;という変数をあらかじめ設定し、
testlogの20行目から50行目までの内容を、printlogという別ファイルに
保存するには、どのようにすれば良いでしょうか。
0419nobodyさん
2007/10/18(木) 11:48:12ID:vnSZjWJQフォームで入力されたテキストボックスの値を
送信後も残すにはどうすればいいでしょう?
運用はテキストボックスのキーワードで、あるデータを検索して、
そのテキストボックスの下に、結果を表示するようにしています。
絞込みが必要になると何度も検索するのですが、
テキストボックス内の文字が毎回消えてしまうのが不便です。
テキストボックスの値を受け取ったPHPから
テキストボックスに書き出せればよいと思うのですが、
方法がわかりません。
0421nobodyさん
2007/10/18(木) 11:53:30ID:???200行読込んで20〜50行だけを別ファイルに書出せばいいんじゃね
その内容の質問で何を答えて欲しいのかと・・
>>419
>テキストボックスの値を受け取ったPHPから
<input type="text" name="hoge" value="受取った値" />
でいいんじゃね
難しく考えるな 思ったようにやってみる これ大事
0422419
2007/10/18(木) 12:16:39ID:???即答ありがとうございます。
a.phpファイルの構成はこうなってます。
<form action="a.php" ---
<input type="text" name="key" size="20" value=” ??? ”> ← ??? に $_POST["key"] を入れる方法はうまくいきません。
</form>
<?php
← この中でなにかせよということでしょうか?
?>
0423nobodyさん
2007/10/18(木) 12:27:27ID:???><input type="text" name="key" size="20" value=” ??? ”> ← ??? に $_POST["key"] を入れる方法はうまくいきません。
<input type="text" name="key" size="20" value=” <? echo $_POST["key"]; ?>”>
次からはマニュアル嫁よ
0424nobodyさん
2007/10/18(木) 12:36:12ID:???文字化けの解消について質問です。
テンプレート使ってて、テンプレートに渡す為に全ての変数を
配列で一括して一つの変数に収めているのですが、
携帯用に文字コードを一括でSJISに変換すると
一部分だけ(他はちゃんと変換されている)変換されなくて困ってます。
仕方ないので、foreach使って中身を一つずつ変換・・・とか、
一度あえてEUCにしてから変換・・・とかもやってみたのですが、
その部分だけがどうしても文字化けしています。
どうしたら解消できるでしょうか?
0425424
2007/10/18(木) 12:37:46ID:???0428nobodyさん
2007/10/18(木) 13:01:45ID:???$fin = @fopen("testlog", "r");
$fout = @fopen("printlog", "w");
$start = 20;
$end = 50;
$n = 1;
while (!feof($fin)) {
$line = fgets($fin);
if($n >= $start && $n <= $end)
fwrite($fout,$line);
$n++;
}
fclose($fin);
fclose($fout);
0429nobodyさん
2007/10/18(木) 14:04:16ID:pYJCyy1zFrom: ・・・・
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
こういうヘッダのようなものが付加されるんですが、いったいどうしてでしょうか?
0430nobodyさん
2007/10/18(木) 14:08:07ID:???自動的に付加されるようにmb_sendmailがそうなってるんじゃね?
嫌なら「mail()」使え、設定も自分でな
0431nobodyさん
2007/10/18(木) 14:18:04ID:pYJCyy1zヘッダとして付加してくれるならありがたいんですが、
メールの本文に出力されてしまってるんですよ・・・。
こういうものなんですか??
0433nobodyさん
2007/10/18(木) 14:23:06ID:???違うと思うぞ
mb_send_mail に一致する日本語のページ 約 9,360 件中 1 - 30 件目 (0.28 秒)
0434nobodyさん
2007/10/18(木) 14:23:35ID:???の$bodyと$headerの間のカンマがドットになってたりしない?
0435nobodyさん
2007/10/18(木) 14:32:20ID:pYJCyy1zToに改行が含まれてて、それが原因みたいでしたorz
0436403
2007/10/18(木) 15:31:29ID:9nEaD6jD0437397
2007/10/18(木) 15:32:10ID:hsdJKY1+遅くなりましたがレスありがとうございます。
globalは使わないほうがいいと(スパゲティになったり外部から書き換えられる危険性があるとかなんとか)
いくつかのページで書いていたのですが、
それでもglobal(もしくは$GLOBALS)は普通に使われているものなのでしょうか?
外部から書き換えられないといえばOOPのカプセル化という言葉が思いつくのですが、
それでclassを使ったほうがいいのではないかな?と自分の中では思ってました。(OOP知らないんですけどね・・)
0438nobodyさん
2007/10/18(木) 15:46:45ID:???0439nobodyさん
2007/10/18(木) 15:51:14ID:OvH6obTW$iが50文字以上場合のときに処理する場合はifでしてますけど、
switchですることは可能でしょうか?
switch ($i){
case ($iが50以上の場合): break;
default:
}
この場合、caseで比較するときは、===のみの比較なんですか?
0440nobodyさん
2007/10/18(木) 16:15:13ID:???==と同じ
>>436
あてずっぽで答えてあれなのだが
session.cache_limiterあたりが影響してるんじゃ?
0441nobodyさん
2007/10/18(木) 16:20:45ID:???何をしたいんだか何をいってるんだかよくわからない
とりあえずifでできることは基本的にswitchでもできる
===ってのは型の比較まで行う演算子
$iが50文字っていうのが謎
switchの中では50以上の場合と書いてるし
文字列の長さ(strlen)なのか数値なのかはっきりしてほしい
0442nobodyさん
2007/10/18(木) 16:36:17ID:???0443nobodyさん
2007/10/18(木) 16:38:01ID:???0445nobodyさん
2007/10/18(木) 17:15:34ID:ELaqevO/シングルクォート→? とエスケープして
$value = strtr( $value, array_flip( get_html_translation_table( HTML_SPECIALCHARS, ENT_QUOTES) ));
その後、戻す処理は ?→'
シングルクォートだけ取り残されてしまうのですが
なぜ039 39と違う表記にズレているのでしょうか?
php4環境で、元に戻す方法がおかしいでしょうか?
0446nobodyさん
2007/10/18(木) 17:15:55ID:???俺も気になったのでやってみたらデキタ
$dispMode = 0;
if (isset($_GET['mode'])) {
$dispMode = intval($_GET['mode']);
}
switch ($dispMode) {
case (10 < $dispMode) :
echo '10ue';
break;
case 5:
echo '5';
break;
default:
echo 'oth';
break;
}
0447nobodyさん
2007/10/18(木) 17:16:44ID:ELaqevO/シングルクォート→&#039;
戻す対象
&#39;→'
0448nobodyさん
2007/10/18(木) 17:38:20ID:???0449nobodyさん
2007/10/18(木) 17:47:09ID:???0450nobodyさん
2007/10/18(木) 18:05:45ID:???0451nobodyさん
2007/10/18(木) 18:46:24ID:???むむ、確かに動くな。
こんな仕様あったんだっけ。
foreach(array(1,2,3,4,5,6,7,8,9,10) as $dispMode) {
echo "$dispMode: ";
switch($dispMode) {
case (5 > $dispMode) :
echo "0-4\n";
break;
case (5 < $dispMode && $dispMode < 10) :
echo "6-10\n";
break;
case 5:
echo "5\n";
break;
default:
echo "other\n";
break;
}
}
実行結果:
1: 0-4
2: 0-4
3: 0-4
4: 0-4
5: 5
6: 6-10
7: 6-10
8: 6-10
9: 6-10
10: other
0452nobodyさん
2007/10/18(木) 18:52:27ID:???0453nobodyさん
2007/10/18(木) 20:02:58ID:???0456nobodyさん
2007/10/18(木) 22:01:11ID:???■[javascript]switch文のcaseは色々なものが書ける
http://d.hatena.ne.jp/ofk/20070627/1182919776
0459nobodyさん
2007/10/18(木) 22:06:51ID:???なんでこのスレって人を見下げたようなレスをする奴がわいて来るんだろうな?
0460nobodyさん
2007/10/18(木) 22:07:48ID:???0462nobodyさん
2007/10/18(木) 22:11:10ID:???0465nobodyさん
2007/10/18(木) 22:13:22ID:???クラスのことを教えたら、
そんなものつかったら可読性が下がるとか
言い出すコボラーですか?w
どんな構文でも適切に使えばいいだけの話でしょう。
0466nobodyさん
2007/10/18(木) 22:15:35ID:???行かないしw
だから、君はまた俺のレスを見ることになるよ。
ぐちぐちいうなよ? お前が消える以外に見ない方法なんて無いんだからw
0468nobodyさん
2007/10/18(木) 22:18:09ID:???0469nobodyさん
2007/10/18(木) 22:19:14ID:???他の言語でこんな書き方して
「動きません」とか「エラーになるんですけど」とか
言われたら正直泣いちゃうかも
0470nobodyさん
2007/10/18(木) 22:19:24ID:???それは、おまえの教えかたがヘタクソなんだよw
人に理解してもらえないからってボロクソに言う前に、
お前がクラスを理解するほうが先なんじゃね?
0471nobodyさん
2007/10/18(木) 22:21:00ID:???>他の言語でこんな書き方して
>「動きません」とか「エラーになるんですけど」とか
まさに>>468がそんな感じだな
定数しか書けないことを知って、だから○○はクソなんだ、とか言いそうw
0472nobodyさん
2007/10/18(木) 22:21:08ID:???あー、あなたのレスは実は、
PHPとあと一つ(?)の言語しか知らずに
「PHPが普通じゃない!」といったら
実は他にもそういう言語があって、
恥をかいたやつを笑っているんだな?w
0473nobodyさん
2007/10/18(木) 22:22:18ID:???メジャーなところでCやJavaやったことある人間なら痛感してるだろ
ここでPHPを執拗に擁護してるのはPHPしかやったことないだけちゃうんかと
0475nobodyさん
2007/10/18(木) 22:23:10ID:???0476nobodyさん
2007/10/18(木) 22:23:25ID:???まあ、現実は、他にも使える言語があるのに、
「だからPHPはクソなんだ。」と言っているやつが
いまここで恥かいているんだけどなw
0478nobodyさん
2007/10/18(木) 22:25:33ID:???うん、クソとは書いてないね。
同じような事言っているがw
453 名前:nobodyさん[sage] 投稿日:2007/10/18(木) 20:02:58 ID:???
まぁPHPは適当ですから普通じゃないことが普通なんです
455 名前:nobodyさん[sage] 投稿日:2007/10/18(木) 21:55:26 ID:???
>>451
PHPって気持ち悪いなー
0479nobodyさん
2007/10/18(木) 22:25:33ID:???なんで他の言語使うときにそういう質問したらだめなんだ?
不便で融通が利かない他の言語が悪いんだろ。
0483nobodyさん
2007/10/18(木) 22:29:23ID:???switchのところの変数って意味がないよね
0486nobodyさん
2007/10/18(木) 22:35:13ID:???手元のコンパイラで確かめてみた-> C & C++
case 2-1:
こういう書き方でも判定してるね
0488nobodyさん
2007/10/18(木) 22:41:22ID:???お前馬鹿か?
↓これのswitchのカッコの所をtrue/falseに切り替えて実行してみろ。
foreach(array(1,2,3,4,5,6,7,8,9,10) as $dispMode) {
echo "$dispMode: ";
switch(true) {
case (5 > $dispMode) :
echo "OK\n";
break;
default:
echo "\n";
}
}
caseに定数だけではなく、式が使用できることの何が悪いんだが、
0489nobodyさん
2007/10/18(木) 22:52:59ID:???言語なんて所詮道具なのにな
0492nobodyさん
2007/10/18(木) 22:57:53ID:???言語構造自体がスパゲティーになる
PHPはあれもこれもとC,Perl,Javaからとってきた感じで
それらのユーザに合わせるため関数名が違うだけで
同じ挙動するものとかがいくつかあったりで統一性がなかったり
0496nobodyさん
2007/10/18(木) 23:02:11ID:???なぜ、ifがあるのにswitchがあるか?
それはswitchのほうが見通しがいい場合があるから。
ここまでヒント言えばわかるだろ?
0497nobodyさん
2007/10/18(木) 23:04:52ID:???caseのあとに、定数だけじゃなくて、
文字列や関数を書きたくなったことあると思うんだがねぇ?
まだまだだな。
0498nobodyさん
2007/10/18(木) 23:06:07ID:???例がうかばないから、ヒントとかいって誤魔化しにかかりましたw
switch-caseは同じ変数との比較が多い場合に、ifより見通しがいいからだろ
例が出せないなら消えろよw
0501nobodyさん
2007/10/18(木) 23:09:03ID:???0503nobodyさん
2007/10/18(木) 23:10:09ID:???数値が2の場合、
数値が3の場合、
数値が4の場合、
数値が5〜10の場合、
数値が11〜20の場合、
数値が21の場合、
数値が22の場合、
俺ならswitch使いたくなるな。
0504nobodyさん
2007/10/18(木) 23:10:25ID:???0505nobodyさん
2007/10/18(木) 23:12:52ID:???http://blog.zuzara.com/2006/06/14/85/
0506nobodyさん
2007/10/18(木) 23:13:12ID:???その代償として様々な決まりというか制限がある。
範囲指定しての多岐分岐なんて人間には普通の表現。PHPやJSなどは人間に合わせてるからそれが出来るとか。
スレチだが勉強中のRubyでしてみたら不等式はダメだが別の方法でOKだった(ちなみに浮動小数点でもOK)。
(1..10).each {|dm|
print "#{dm}: "
case dm
when 5
puts "5"
when 0...5
puts "0-4 (0 <= dm < 5)"
when 5...10
puts "6-10 (5 < dm < 10)"
else
puts "other"
end
}
実行結果:
1: 0-4 (0 <= dm < 5)
2: 0-4 (0 <= dm < 5)
3: 0-4 (0 <= dm < 5)
4: 0-4 (0 <= dm < 5)
5: 5
6: 6-10 (5 < dm < 10)
7: 6-10 (5 < dm < 10)
8: 6-10 (5 < dm < 10)
9: 6-10 (5 < dm < 10)
10: other
0507nobodyさん
2007/10/18(木) 23:13:28ID:???0509nobodyさん
2007/10/18(木) 23:16:47ID:???そうそう。
この問題は本質的には、
caseの後に数値定数しか指定できないか、
(数値定数+文字列しか指定できないか、)
数値や文字列を含めた式すべてを指定できるかという話でしかない。
わざわざ数値や文字列に限定する必要は無いだろう。
その結果式として扱えるものならなんでも指定できる。
そういうことでしかない。
ちょっと詳しくなった程度のやつが、変だ変だというほど
変な仕様ではない。現にJavaScriptでも使える。
0510nobodyさん
2007/10/18(木) 23:17:34ID:???0511nobodyさん
2007/10/18(木) 23:18:31ID:???たいてい中途半端な知識しか
持ち合わせていない罠。
0512nobodyさん
2007/10/18(木) 23:20:08ID:???それは「ひとつの変数に対して何かと比較する」という意味で文法が一貫してるよね
phpの場合は、caseの中にぜんぜん関係ない変数が比較対象として持ち込めるのがねー
0513nobodyさん
2007/10/18(木) 23:20:23ID:???ほんと餓鬼ばっか
0514nobodyさん
2007/10/18(木) 23:21:06ID:???自分が嫌なら使わなければすむこと
0515nobodyさん
2007/10/18(木) 23:21:28ID:???NOVAが明日まで給料日の支払を延ばしたということは、
もしかして、いよいよ明日がNOVAのXデーっていうことも考えられるかな?
0516nobodyさん
2007/10/18(木) 23:22:17ID:???} elseif ( b() == null ) {
} elseif ( c() == null ) {
} elseif ( d() == null ) {
}
俺なら、== null は一度しか書きたくないな。
うん。switchつかう。
switch(null) {
case a() :
case b() :
case c() :
case d() :
}
0518nobodyさん
2007/10/18(木) 23:24:17ID:???> phpの場合は、caseの中にぜんぜん関係ない変数が比較対象として持ち込めるのがねー
ばーかばーか。関係ない変数? それが比較対象?
caseに中に式を入れられるって事でしかないんだよ。
難しくかんがえんなw
0522nobodyさん
2007/10/18(木) 23:28:27ID:???0523nobodyさん
2007/10/18(木) 23:31:00ID:???俺は>488が適切に使える例を希望した(>>494)が結局出てないようだが。
switchにtrue/falseを指定する例ってどこに出てたっけ?w
0524nobodyさん
2007/10/18(木) 23:31:06ID:???そうやって、すぐ攻撃的になるのが若いんだよ。
歳が若いというより脳が若いといった方が正確かもしれないが。
もっと冷静に自分を見つめ直しなさいね。秋の夜長、考える時間はいくらだってあるぞ(笑)
0525nobodyさん
2007/10/18(木) 23:31:26ID:???0529nobodyさん
2007/10/18(木) 23:36:55ID:???>まるで、それ以外の例はあるが
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
結局、>>488の例は、ヒントで誤魔化して出せなかったんだろw
0530nobodyさん
2007/10/18(木) 23:38:09ID:???確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
これで終了じゃんw
0532nobodyさん
2007/10/18(木) 23:40:02ID:???>phpの場合は、caseの中にぜんぜん関係ない変数が比較対象として持ち込めるのがねー
じゃあ持ち込めるのが、何なのよ
0533nobodyさん
2007/10/18(木) 23:41:13ID:???どっか逝ってくれ
0535nobodyさん
2007/10/18(木) 23:54:25ID:???{
case "PHP Only":
print "この人、地雷かも…";
break;
default:
print "セーフティじゃね?";
}
こういう構図にさえならなければ、どうでもいいよ
0536nobodyさん
2007/10/18(木) 23:54:36ID:???>>483
>>そもそもcaseに条件式が書いてたら、
>>switchのところの変数って意味がないよね
が原因だろ?
case (5 > $dispMode) のような範囲指定(条件式)や
case is_float($test) みたいな関数使わざるを得ないこともあれば、単純に
case 5 のようなそのものズバリの場合もあるんだからswitchの場所に変数あってもいいでしょ。
仮に全てが条件式でもswitchに変数あった方が何を分岐させたいのかわかりやすいじゃん。
0541nobodyさん
2007/10/19(金) 00:05:22ID:???式なら式でいいけど、その式に渡される値はあくまで
switch(変数)で指定した変数であって欲しいと思わん?
switch()部分と無関係な内容のcaseは読みにくいでしょ。
0542nobodyさん
2007/10/19(金) 00:05:48ID:???俺も範囲指定はしたくなることあるな
こんな風に書くのめんどくせー
switch($dispMode) {
case 0:
case 1:
case 2:
case 3:
case 4:
echo "0-4\n";
break;
case 6:
case 7:
case 8:
case 9:
case 10:
echo "6-10\n";
break;
case 5:
echo "5\n";
break;
default:
echo "other\n";
break;
}
0543nobodyさん
2007/10/19(金) 00:06:31ID:???何色にも染まっていない無垢なままの方が良いケースもある
中途半端な知識の実装は邪魔なばかりか邪悪でさえある
0546nobodyさん
2007/10/19(金) 00:13:19ID:???Rubyだと横に並べれます
case dispMode
when 0,1,2,3,4
puts "0-4"
when 6,7,8,9,10
puts "6-10"
when 5
puts "5"
else
puts "other"
end
0547nobodyさん
2007/10/19(金) 00:34:26ID:???0549nobodyさん
2007/10/19(金) 01:04:04ID:???0550nobodyさん
2007/10/19(金) 01:23:00ID:ftfft438ここのスレの住民総動員して代わりにやってもらうことは可能ですか?
課題は、全部で7種類あるんで、自分は1種類はやるんで、
残りの6種類やって欲しいんですけど。
0551nobodyさん
2007/10/19(金) 01:26:01ID:ftfft438phpと他の3つ以上のweb系言語を比較して、各言語の特性を分析考察し、
その特徴が最も分かるコードを各50行から100行までで簡潔に示せ。
0552nobodyさん
2007/10/19(金) 01:30:54ID:ftfft438phpの例外処理の機構と、例外処理に対する留意点を体系化して論じよ。
0553nobodyさん
2007/10/19(金) 01:33:02ID:???0554nobodyさん
2007/10/19(金) 01:33:28ID:???可能かどうかまだ返信すらしてないのに勝手に始めないで下さい。
それで本題ですがそういったことはここではできませんのでお引取り下さい。
0555nobodyさん
2007/10/19(金) 01:36:42ID:ftfft438ちょwwwwww使えねーこのスレ!!!
市ね!!!!!!!!!!!!!!!
0556nobodyさん
2007/10/19(金) 01:42:12ID:???話はそれからだ
0557nobodyさん
2007/10/19(金) 01:45:59ID:???0558nobodyさん
2007/10/19(金) 01:57:34ID:???0559nobodyさん
2007/10/19(金) 02:02:01ID:???0563nobodyさん
2007/10/19(金) 02:23:47ID:ftfft438では、お言葉に甘えさせて頂きます。
3番目。
phpの主なバージョンの変遷について、当時のwebの背景に触れつつ論じよ。
0564nobodyさん
2007/10/19(金) 02:25:03ID:???0565nobodyさん
2007/10/19(金) 02:27:40ID:ftfft438phpが初心者に対して敷居が低いと言われる理由を説明し、同時にその副作用について論じよ。
0566nobodyさん
2007/10/19(金) 02:31:13ID:ftfft438俺のこれです!ぐぐったら、それらしいのがあった
プログラムの実装に当たって、変更管理をする必要性について論ぜよ。
0567nobodyさん
2007/10/19(金) 02:31:53ID:???0568nobodyさん
2007/10/19(金) 02:33:56ID:ftfft4380569nobodyさん
2007/10/19(金) 02:35:11ID:Xylg84BY中卒ヒキニートの僕には無理でっすwwwwwwwwwwwwww
0570nobodyさん
2007/10/19(金) 02:35:22ID:ftfft438これの丸写し。
http://www.atmarkit.co.jp/farc/rensai/config03/config03.html
0571nobodyさん
2007/10/19(金) 02:37:47ID:???0573nobodyさん
2007/10/19(金) 02:43:12ID:ftfft438高2の情報Bでやってます。
中間テストが来週月曜日からなのにやってられないっす。
0574nobodyさん
2007/10/19(金) 02:52:01ID:ftfft438これ最近のお気に入り。
で、のこり3つは、これ。
phpのモジュール版とCGI版との違いを説明し、運用上のリスク管理の相違点ついて述べよ。
実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。
0575nobodyさん
2007/10/19(金) 02:57:59ID:Xylg84BYゆとりの俺でもこれは分かりそう・・!でもググれば見つかるだろうな!
0576561
2007/10/19(金) 02:59:14ID:???先生がキモイやつだって事が容易に想像付くわ。
こんな宿題やんなくていいよ。
高校生はもっと遊んどけ。
0577nobodyさん
2007/10/19(金) 03:12:14ID:ftfft438おいおいおい!!!!!
答えは?????????????????
0578nobodyさん
2007/10/19(金) 03:12:20ID:???それとも夏休みの宿題か?
0579nobodyさん
2007/10/19(金) 03:17:53ID:ftfft438授業でやってないよ。授業を聞いていれば、応用力で分かるはずだ、って言っている。
授業も教科書は殆ど使わずに、先生が書いた分厚い著書を使って説明するから、復習がやっと。
予習なんて出来ねーよ。
0580nobodyさん
2007/10/19(金) 03:21:18ID:???0581nobodyさん
2007/10/19(金) 03:21:52ID:???ここはお前の宿題をみんながやるスレじゃねーんだよ
別スレ立ててやれよこの糞餓鬼
0582nobodyさん
2007/10/19(金) 03:23:30ID:???高校の授業でPHPに関連した課題が出るわけがない
教育向けの言語ではないし専門的にやるのは専門学校のみ
大学でもPHPは授業としては普通やらない
0583nobodyさん
2007/10/19(金) 03:23:59ID:???偉そうに聞いていいスレに池クズ
0584nobodyさん
2007/10/19(金) 03:25:04ID:???http://pc11.2ch.net/test/read.cgi/php/1158647441/
0585nobodyさん
2007/10/19(金) 03:30:31ID:ftfft438やっぱ、マジ使えねー奴らばっか。中卒の集まりじゃねーの。
0586nobodyさん
2007/10/19(金) 03:32:51ID:Xylg84BY俺は分からないから答えられない訳なんだけどさ、分かるけど答えないって奴って
結構いると思うぜ?俺も分かる質問全部に答えてる訳じゃないしな。
0587nobodyさん
2007/10/19(金) 03:46:27ID:???じゃあ授業での先生の話を基にすれば分かるだろ。
0588nobodyさん
2007/10/19(金) 04:19:10ID:???別に使えなくても中卒でもいいからとっとと消えろカス
0589nobodyさん
2007/10/19(金) 04:26:03ID:???0590nobodyさん
2007/10/19(金) 04:38:15ID:R8rHP9Yl.rdfをphpで作ってるのですが、
//xxx.php
$html = '<p>あるひあるひ<span>おじいさんと</span>・・・・いきました</p>';
@include_once("../xxx.php");
$site_rdf = <<<_EOD_
<item rdf:about="$url">
<title>$contents_title</title>
<link>$url</link>
<description>$html</description>
<dc:date>$lastupdate</dc:date>
</item>
_EOD_;
ブラウザーでxxx.phpは問題なく表示しています。
しかしヒアドキュメント内の$html 以外は取得できてるのですが$htmlが取得出来ません。
そこで<description>$html</description>を
<description><![CDATA[<? echo $html; ?>]]></description>
とすればよさそうなのですが、ヒアドキュメント内なので出来ないし
何かいい方法ないでしょうか?最終的にはsubstrを使って部分的に取得しようと思ってます。
0592nobodyさん
2007/10/19(金) 08:40:54ID:???phpをろくに理解してなさそうだなw
0593nobodyさん
2007/10/19(金) 09:08:24ID:???0594nobodyさん
2007/10/19(金) 09:16:06ID:???近頃のガッコはphp教えるのか
0595nobodyさん
2007/10/19(金) 09:58:31ID:???>実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
>phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。
高専でもやんねーぞこんなの
相当キてる狂死だな
0597nobodyさん
2007/10/19(金) 10:35:47ID:???0598nobodyさん
2007/10/19(金) 10:38:58ID:???>実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
>phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。
三つまとめて答えると
客のレベルとニーズと納期と金次第
これ以上も無ければこれ以下もないと思うが…
0599nobodyさん
2007/10/19(金) 10:43:23ID:???0600nobodyさん
2007/10/19(金) 10:56:41ID:???>授業も教科書は殆ど使わずに、先生が書いた分厚い著書を使って説明するから
日本の法律に定める高等学校だとしたら、この時点で教師失格だな
大学じゃあるまいに、検定済み教科書を使うことが法律で決まっている
0601nobodyさん
2007/10/19(金) 10:59:39ID:???「客のレベル」はちょっと違うだろ
技術的なことを知っている客は多くないから、
どっちかというとSEが客に提案しないといけない
0602nobodyさん
2007/10/19(金) 11:30:51ID:???0604nobodyさん
2007/10/19(金) 12:14:25ID:???0605nobodyさん
2007/10/19(金) 13:00:51ID:???0606nobodyさん
2007/10/19(金) 13:08:02ID:r5ngcnDV状況は…
LAN内の「192.168.1.2」に、CentOS5 + Apache + PHP5.1.6を起動。
同じく「192.168.1.3」に、CentOS5 + MySQL5.0.22を起動。
…で、「192.168.1.2」上で、以下のPHPを記述し実行。
<?php
$con = mysql_connect("192.168.1.3", "root", "xxx");
if ($con) {
echo "MySQLに接続しました";
} else {
die("MySQLに接続できませんでした");
}
?>
で、実行してみると「MySQLに接続できませんでした」と出力されます。
「192.168.1.2」にMySQLを立ち上げていた時は問題なかったのですが…。
"localhost"のところを、"192.168.1.3"にするだけじゃ、ダメなんでしょうか?
0607nobodyさん
2007/10/19(金) 13:13:13ID:???ポート開いてる?
0608nobodyさん
2007/10/19(金) 13:18:19ID:???ローカル内で実行してますから、ポートは関係ないでしょう。
もちろんポート空けて、外から実行しても同じく接続できません。
0609nobodyさん
2007/10/19(金) 13:25:06ID:???そもそも192.168.1.3のサーバ自体のポートは空いてるのか?
俺はMySQLを知らんけど、MySQL自体がアクセスをはじいていないか?
>>607が言っていることからこのくらいの連想ができないようじゃやめといたほうがいいぞ
0610nobodyさん
2007/10/19(金) 13:28:30ID:???phpでやる以前に他のPCから操作できるのかを先に確認したほうがいい
0611nobodyさん
2007/10/19(金) 14:02:21ID:???原因になりそうな事はたくさんあるから問題切り分けましょう。
ローカルで接続してもlocalhostや127.0.0.1はOKでも192.168.1.2でダメなことある。
MySQL側のポート、DBやOSの各種アクセス制限、Apacheの実行ユーザの問題…
>>606のソースだとPHPからのエラーメッセージ出力されないのだっけ?
出力されないなら
<?php mysql_connect("192.168.1.3", "root", "xxx"); ?>
だけで実行してエラーみるとか。
・apacheのログみる
・192.168.1.3でmysqlコマンドをホスト指定して実行(localhost,192.168.1.3)
・192.168.1.2でmysqlコマンドを実行
・192.168.1.2でphpスクリプトをコマンドライン実行
ほかに何かあったっけ?
0612nobodyさん
2007/10/19(金) 14:04:46ID:???PCを投げ捨てる
2階の窓から飛び降りる
0613nobodyさん
2007/10/19(金) 14:36:40ID:???LAN内であってもhosts.allowとかで開けてやらんといけない場合とかあるけどな。
コマンドラインのmysqlクライアントで接続できるかどうかをまず確認すべき。
それで繋がらないならDB板池。
0614nobodyさん
2007/10/19(金) 14:56:38ID:???mysql側ではじいてるんじゃないか
my.cnf
bind-address
0615nobodyさん
2007/10/19(金) 15:27:56ID:???test.php
┗test←フォルダ
┗test.bat
PHPは、exec("test/test.bat");
と書いてるのですが何が悪いのでしょうか?
0616606
2007/10/19(金) 15:30:45ID:???とりあえず、192.168.1.3(MySQLが稼動中)上で…
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'xxx';
mysql > SELECT user,host,password FROM mysql.user;
+------+----------------------+------------------+
| user | host | password |
+------+----------------------+------------------+
| root | 192.168.1.2 | xxxxxxxxxxxxxxxx |
+------+----------------------+------------------+
…という具合に確認もしてから、192.168.1.2(Apache+PHP稼動中)上で…
$ mysql -u root -p -h 192.168.1.3
mysql >
…おっ!192.168.1.2から192.168.1.3のMySQLを操作できるようにはなりましたよ。
でも、まだ>>606のコードを実行すると「MySQLに接続できませんでした」と出力されます。
(MySQLは、上記のユーザー追加作業後にrestart済みです)
う〜む…
0618606
2007/10/19(金) 15:36:40ID:???助かりました。
0619nobodyさん
2007/10/19(金) 15:44:59ID:???>>606のコードで上手く接続できたのかな?
オメデト。
ただrootユーザって192.168.1.2のrootのこと? だとヤバくね?
0620nobodyさん
2007/10/19(金) 15:54:36ID:???0622nobodyさん
2007/10/19(金) 16:05:26ID:???Windowsならexecのユーザノート見れ
Linuxならセーフモードかかってるならcgiで動かさないと無理
0623nobodyさん
2007/10/19(金) 16:25:38ID:KOAwsoaiログファイルをfile関数で読み込むとき、ログファイルが存在しなかった場合、
エラーになりますよね。
そこで、@でエラーを出力しないって方法と、is_fileで存在チェックを置く方法、
どちらが正攻法でしょうか?
0624nobodyさん
2007/10/19(金) 16:27:53ID:???ちゃんとファイルがあるか確認すべき
0625nobodyさん
2007/10/19(金) 16:36:09ID:???エラーを出さない書き方を心がけます
0626nobodyさん
2007/10/19(金) 16:36:43ID:???0630nobodyさん
2007/10/19(金) 16:55:27ID:???例外は想定外なことがあったときの処理機構
0631nobodyさん
2007/10/19(金) 17:15:02ID:T1qgNKd7引数で渡したもの全てエンコードしてくれるんでしょうか?
なぜか本文以外が文字化けしてしまうんですが・・・
0632nobodyさん
2007/10/19(金) 17:22:04ID:???0633nobodyさん
2007/10/19(金) 17:23:01ID:???is_fileの判別だけでは不十分。
ロックされて読み取りできない場合でもtrueを返すし、本当にその時読み取りできても、fileを呼ぶ時には削除されているかもしれない。
読み取りエラーと、ファイルの存在がない場合を区別する必要がなく、エラーをログに取る必要がないなら、
$data = @file('foo.log');
if ($data === FALSE) { echo '読み取り失敗'; }
else { do something }
>>631
mb_internal_encodingとmb_languageを設定
0634nobodyさん
2007/10/19(金) 17:24:00ID:???0635nobodyさん
2007/10/19(金) 17:37:25ID:???誰だよ、前に"で囲むとか教えた奴
0639nobodyさん
2007/10/19(金) 17:45:07ID:???0641nobodyさん
2007/10/19(金) 18:03:23ID:TMxSN4fU0642nobodyさん
2007/10/19(金) 18:03:57ID:???まずはマニュアルに目を通そうぜ
・To句 -> 自動的にはエンコードしない
・ヘッダ、本文 -> エンコードする
但しだ、ヘッダに含むFrom句を 俺だよ<me@example.local> の様にした場合
"俺だよ"の部分はそのままじゃ化けるからな
正しいかどうかは別として"俺だよ"の部分をMIMEエンコードで逃げとく
0643nobodyさん
2007/10/19(金) 18:05:00ID:TMxSN4fUMySQLの「居酒屋」という文字の「居」だけ検索できなくって・・・
「安い居酒屋があります!」→「居酒屋」→ノーヒット
「安い居酒屋があります!」→「屋」→ヒット
「安い居酒屋があります!」→「酒屋」→ヒット
「安い居酒屋があります!」→「居酒」→ノーヒット
「安い居酒屋があります!」→「居」→ノーヒット
0644nobodyさん
2007/10/19(金) 18:10:36ID:???0646nobodyさん
2007/10/19(金) 18:16:01ID:???またファビョって粘着されるのかと思うと・・。
0648643
2007/10/19(金) 18:18:50ID:TMxSN4fU0649nobodyさん
2007/10/19(金) 18:19:36ID:T1qgNKd7mb_encode_mimeheader()使っても文字化けしちゃいました。
謎の文字列っぽいのが、???????????になってしまった。(2回エンコードされたかんじ)
0652nobodyさん
2007/10/19(金) 18:27:49ID:TMxSN4fU有難う御座います
MySQLスレにいってきます
0653nobodyさん
2007/10/19(金) 18:28:48ID:???使ってみました、できませんでした、じゃ何もわからない
mb_encode_mimeheaderというキーワードがあるんだから、
ぐぐってサンプルになりそうな解説を探すべき
0654nobodyさん
2007/10/19(金) 18:44:16ID:???0655nobodyさん
2007/10/19(金) 18:46:04ID:???自分の手の内を明かさないのは死んだお爺ちゃんの遺言かな?
まずはどういう処理をして駄目だったのか表に晒そうよ
そうじゃないと他人には何が原因なのかわからない
0656nobodyさん
2007/10/19(金) 18:47:03ID:???0657nobodyさん
2007/10/19(金) 19:03:17ID:???http://example.com/index.php/controller_name
として、$_SERVER['PATH_INFO']からcontroller名取得してクラス生成してるんだけど、
index.php/ってやっているからか、1個下の階層として認識されちゃうんだよな。
index.phpを基準にデザインしたHTMLの画像が表示されなくなった。解決法plz
0659nobodyさん
2007/10/19(金) 19:23:29ID:???お前程度のレベルのやつが作るなw
ほかのフレームワークを使って勉強しろ。
0660nobodyさん
2007/10/19(金) 19:26:04ID:???まあ作った本人以外、誰も使わんだろうけど。
0661nobodyさん
2007/10/19(金) 19:26:13ID:???0662nobodyさん
2007/10/19(金) 19:41:00ID:???会社で使うぐらいだぜ
PHPじゃないけど
0663nobodyさん
2007/10/19(金) 20:34:22ID:xPmGrIJ2あるブログの新着記事が投稿されたら、そのタイトルと日付を
自サイトのトップページにIFRAMEで新着情報のスペースを作り
自動で反映されるようにしているのですが、「dc:date」の中の
日付だけを表示させたいのですが、行き詰っています。
↓がrssv.phpというファイルをいただいて、今の状態です。
−−−−−−−−−−−−−−−−−−−−−−−−−−
A;
$num = ($_GET['n']) ? $_GET['n'] : count($r->getItems());
for ($i=0; $i<$num; $i++) {
$val = $r->getItems();
$title = mb_convert_encoding(strip_tags($val[$i]['title']), $code, "UTF-8,EUC-JP,SJIS");
$link = htmlspecialchars($val[$i]['link']);
$date = $val[$i]['dc:date'];
// 内容
echo <<<B
<tr bgcolor="#ffffff"><td><small>
$date<br>
<a href="$link" target=_new>$title</a><br>
$desc
</small></td></tr>
B;
}
//フッタ
echo <<<C
−−−−−−−−−−−−−−−−−−−−−−−−−−
0665663
2007/10/19(金) 20:39:31ID:xPmGrIJ2とすればできるというのを見つけましたが、できませんでした。。
phpなのでsubstrというものを使って設定すれば・・と思いましたが
↑662の中にどう記述すればできるのか・・行き詰ってます。
どうすれば、<dc:date>の日付部分だけを表示させることができるの
でしょうか?どうぞよろしくお願い致します。
0666663
2007/10/19(金) 20:46:26ID:xPmGrIJ2早速のレスありがとうございます。
var_dump($val); というものを記述すれば可能なんですか?
↑のどこに記述すればいいのでしょうか?ぜひ教えてください!
0667nobodyさん
2007/10/19(金) 20:52:29ID:X7lKhvjyvar_dump()はデバッグ手法であって解決策じゃないよ
0669nobodyさん
2007/10/19(金) 20:57:43ID:???実行しようともしないような人には無理だ。
0670nobodyさん
2007/10/19(金) 21:00:18ID:???スクリプト作ってくれっていってるような質問だろうし放置でおk
0671nobodyさん
2007/10/19(金) 21:13:24ID:38gaNyWe0672663
2007/10/19(金) 21:23:52ID:???書き方なんか勘で弄くってるだけで、全然分かってないっす
php入門から始めます。。。
0673nobodyさん
2007/10/19(金) 21:31:59ID:???0675nobodyさん
2007/10/19(金) 21:33:37ID:???0676nobodyさん
2007/10/19(金) 21:34:10ID:???もっと経験積んでる人は肝心な部分を特定してその場所のみ貼り付ける
あと、自分で試してみたことも書くのが普通ぐらい
0677663
2007/10/19(金) 21:37:39ID:???知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
と思ってました。。実際に、今回以外にphpを自分で書くこと
なんか恐らく二度とないでしょうし・・
ただ単にdc:dateの日付だけを表示させることって大変なんですね。。
もう拘らずに、全て表示で自分を納得させます。お騒がせしました。。
0678nobodyさん
2007/10/19(金) 21:41:31ID:???0680nobodyさん
2007/10/19(金) 21:44:43ID:???0683nobodyさん
2007/10/19(金) 21:58:51ID:???>知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
>と思ってました。。実際に、今回以外にphpを自分で書くこと
なんの根拠も無しにこう思えちゃうのが素晴らしいと言うか
頭のネジが2, 3本外れていると言うか
0684nobodyさん
2007/10/19(金) 22:01:01ID:???スレタイを死守すべくエスパーしてみる>俺
$date = $val[$i]['dc:date'];
の後に、
$data = substr($data, 0, 10);
みたいなことやればいいんじゃね?
0685nobodyさん
2007/10/19(金) 22:03:46ID:???どうしようもない奴しかいねーのかよw 俺には難しくて分かりませんって素直に言えばいいのにww
0687nobodyさん
2007/10/19(金) 22:06:45ID:???0689nobodyさん
2007/10/19(金) 22:15:07ID:???0690nobodyさん
2007/10/19(金) 22:16:54ID:???0691nobodyさん
2007/10/19(金) 22:20:10ID:???実際、アホしか紛れ込んでこないだろ
・"エラーになりました", "動きません"
なんて言って欲しいんだ?「で?」って言って欲しいのか?
・スクリプトの欠片貼り付けて"どこ直せばいいですか"
一体ナニ喰わせてるんだ?それだけで何をわかれと?
0692nobodyさん
2007/10/19(金) 22:22:33ID:???0693nobodyさん
2007/10/19(金) 22:28:49ID:???煽りすぎるのは逆効果だぞ
淡々とやればいいじゃん
0694nobodyさん
2007/10/19(金) 22:28:54ID:???対象のブログのRSSのURLをはっつけるか、
それがいやならどのブログサービスの種類(ライブドアとか)・どのブログツール(MovableTypeとか)をつかってるのか書けば
もれなく書いてみてもいい。
0696nobodyさん
2007/10/19(金) 22:32:06ID:???要するに>>663は文字列の一部を抽出したいだけなんだから、サンプル示せばいいだけのこと。
毎度ダラダラよくやるよなホントw
0697nobodyさん
2007/10/19(金) 22:46:40ID:???ファイルをShift-Jisでしか更新できないんで新しいソフトを買おうと思うんだが
PHPを使う上でお勧めなのはどれだろう?
0698nobodyさん
2007/10/19(金) 22:49:40ID:???0699nobodyさん
2007/10/19(金) 22:49:59ID:???0700nobodyさん
2007/10/19(金) 22:52:53ID:???htmlとphpは切り離して考えろ
デバッグ機能があるIDEでも使え
0701nobodyさん
2007/10/19(金) 22:54:18ID:???PHPエディタ
http://phpspot.net/php/phpeditor.html
0702nobodyさん
2007/10/19(金) 22:55:58ID:???0703663
2007/10/19(金) 22:58:26ID:???おおおーーーー!!できました!マジでありがとうございます!!
なんだか騒ぎの元になっちゃってるな・・失礼こきました。
0704nobodyさん
2007/10/19(金) 23:00:56ID:???0705nobodyさん
2007/10/19(金) 23:04:12ID:???0706nobodyさん
2007/10/19(金) 23:10:35ID:???0707nobodyさん
2007/10/19(金) 23:45:41ID:64rGyn5nコーディングに関することではないんですが、phpのCGIモードと
モジュールモードというのはどう違うんでしょう?
レンタルサーバを借りる上で、CGIモードはokだけどモジュールモードでの
利用ができないサーバがあり、どのような不都合になるのか知りたくて質問しました。
普段はwinXPにapache2 php5で自宅でテストしてる程度なんですが、
モードというのは意識していません。 何か出来なくなる処理があるんでしょうか?
0708nobodyさん
2007/10/20(土) 00:12:43ID:KSBr51Dvtrim(strip_tags((substr($main_txt,0,300)), '<p>'));
としてhtml文章を取得してるのですが、
途中にタグとかあると文字列の最後が ? になる場合があるので
($main_txt,0,300) の300を調整してますが、調整しないで最後の ? となってしまった部分を
削除って出来ないもでしょうか?
それと、取得した文字列にstrip_tagsの残骸のような感じで、空白が出来るのですが、その空白も削除したいのですが。
0709nobodyさん
2007/10/20(土) 00:14:31ID:???0710nobodyさん
2007/10/20(土) 00:31:03ID:POR/JvMA0712nobodyさん
2007/10/20(土) 01:05:50ID:pJAmMZYu$ua = $_SERVER["HTTP_USER_AGENT"];
header("Content-type: image/gif");
if(!strtr($ua,"Opera")){
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
}else{
$dd = imagecreatefromgif("bc.gif");
imagegif($dd);
}
?>
uaにoperaが含まれる人はad.gifを、それ以外はbc.gifを表示させるために、このようなスクリプトを書いたのですが、
html上に貼っても直接アクセスしても画像が表示されません。設置サーバーはxreaです。エラーなどは吐かず、
「リンクの切れた画像を貼っている」状態と同じ表示になります(IEでいうバッテン印)
ちなみにif文を書かずに直接
header("Content-type: image/gif");
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
だけ記述した場合はまともに作動するので、GDなどの問題ではないと思います(詳しくはわかりませんが・・・)
説明下手ですいません、原因わかる方いたらよろしくおねがいします。
0714nobodyさん
2007/10/20(土) 01:19:03ID:???strtrはstrposにするかeregとかpreg_matchにした方が良い
strtrは置換用
もう1個余計なこと言うと
if句の中でimagegifとか呼んでるけど
$img = 'ad.gif';
if (strpos($ua,'Opera') == false) {
$img = 'bc.gif';
}
$dd = imagecreatefromgif($img);
imagegif($dd);
こんな感じの方がすっきりする
0715nobodyさん
2007/10/20(土) 01:19:24ID:???直接というのはこのphpファイルに直接、ということですよね?
その場合も同様にバッテン印です。
ad.gif bc.gifに直接、ということでしたら正常に表示されます
?>消しましたがダメでした。
ためしに
if(!strtr($ua,"Opera")){
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
}else{
echo "あいうえお";
}
このように書き換えてみたのですが、これでuaにOperaが含まれてなくても"あいうえお"ではなく画像を出力しようとしてしまうようです。
うーん、なんでだろう
0717nobodyさん
2007/10/20(土) 01:26:10ID:???あ、これで書き直したら直りました!ありがとうございます!!
原因はよくわかんないけど、
>if句の中でimagegifとか呼んでるけど
これがまずかったんでしょうかね・・・
すっきりという意味でも、
独学でプログラム始めたばかりで、自分で見ても無駄の多いコードだなぁ…とは思うんですが、そう簡単に矯正できなくて…
こうしたことを教えていただくと実に勉強になります。
本当にありがとうございました。
0718nobodyさん
2007/10/20(土) 01:30:05ID:???>>if句の中でimagegifとか呼んでるけど
>これがまずかったんでしょうかね・・・
こういうのが原因では無い
これは書き方だけ
多分なんらかの文字列とかが出力されて
出力された画像ファイルが壊れてたんじゃないかなと思う
0719nobodyさん
2007/10/20(土) 04:32:47ID:???・文字列が含まれるかを判定したいはず
strtr()は見つかった文字列を別の文字列に置き換える関数だわ
・関数の使い方に誤りがある
strtr($ua,"Opera") 引数が足りないよ Warning:出るよ
きっとレンタル屋さんが display_errors = off で運営してるから
エラーや警告を確認できないんだろうね
・関数の戻り値は常に false である
使い方に誤りがあるから $ua に何を突っ込もうが結果は常に false のみ
ゆえに if文の判定は true の否定だから常に 真 のみ
まずは何が誤りであるかを自分で認識する力をつけないと成長しないよ?
0720nobodyさん
2007/10/20(土) 04:43:38ID:???のを放置したままのWebサイトに出くわすことがあって萎え…
0721nobodyさん
2007/10/20(土) 04:57:51ID:???if文でこんにちはを出力する処理を何通りも書いて練習してる
0722nobodyさん
2007/10/20(土) 05:00:27ID:???0723nobodyさん
2007/10/20(土) 05:24:39ID:???もしくは、不注意な人。
0724nobodyさん
2007/10/20(土) 05:52:03ID:???0725nobodyさん
2007/10/20(土) 09:35:20ID:???0726nobodyさん
2007/10/20(土) 09:40:01ID:???うちの会社では自販機のつり銭のロジックを書かせるのが、
入社試験で必ず出している。まずは基本だから、それをまずやってみればいい。
意外に難しくて、正答率は20%以下。
0728nobodyさん
2007/10/20(土) 10:39:25ID:???if文の練習をする題材としてなら、改題してこんな感じかな。
投入金額と購入金額からつり銭の枚数を計算しないさい。
かな。
条件としては、つり銭の枚数は最小限の枚数にすること。
投入金額は10円単位で1000円まで。
つり銭につかう硬貨・紙幣は、10円、50円、100円、500円、1000円。
function get_tsurisen($tonyu_kingaku, $konyu_kingaku) {
$tsurisen_maisu = NULL;
// つり銭ロジック
return $tsurisen_maisu;
}
0729nobodyさん
2007/10/20(土) 11:17:12ID:2lqi/a9OCall to undefined function mb_convert_encoding()と出たのです
この場合いったいどうすればいいでしょうか
0730nobodyさん
2007/10/20(土) 11:37:29ID:???phpのconfigureのオプションにmbstringが入ってないと思われる
オプションをつけてphpを再コンパイルする
>>728
ロジックの主な部分でif文いらないんだが
$tsurisen_maisu = array();
$tsurisen_maisu['1000'] = floor($tsuri/1000);
$tsuri = $tsuri%1000;
$tsurisen_maisu['500'] = floor($tsuri/500);
$tsuri = $tsuri%500;
$tsurisen_maisu['100'] = floor($tsuri/100);
$tsuri = $tsuri%100;
$tsurisen_maisu['50'] = floor($tsuri/50);
$tsuri = $tsuri%50;
$tsurisen_maisu['10'] = floor($tsuri/10);
$tsuri = $tsuri%10;
0731nobodyさん
2007/10/20(土) 11:38:50ID:2lqi/a9Oありがとうございます
0732nobodyさん
2007/10/20(土) 11:56:43ID:???>>ロジックの主な部分でif文いらないんだが
偽造硬貨対策 >>if文
if(is_gizocoin($tonyu_kingaku)){
tuuhoo(110);
} else {
// つり銭ロジック
}
0734nobodyさん
2007/10/20(土) 13:17:01ID:???なので再インストールしたいのですが、@CMSのデータベース名やテーブル接頭語はどう設定すればいいのでしょうか?
大変困っています。
0735nobodyさん
2007/10/20(土) 13:21:52ID:???0736nobodyさん
2007/10/20(土) 13:27:18ID:???ぎぞこいん ぎぞコイン ぎぞうコイン OK!把握した!偽造コインか!
とんゆ_きんがく (きんがくは金額だな) とんゆ金額 とにゅ金額 とうにゅう金額 OK(略)
つうほお (これまでの試練で読めるようになった俺にはチョロイぜ!) つうほう 通報だな!
110 (´・ω・`) 通報というからには、110のはずだがここで引数があるのには理由がある筈だ。。
そうか、通報先を電話番号で指定するんだな! でも、0から始まる場合は数値扱いでいいのか。。。
0738nobodyさん
2007/10/20(土) 13:34:13ID:???多分アンカミスだとは思うが
730みたいなコード書く奴は実際にいるよ
ただ後で修正する時大変だなーと
思うことしばしばあるけど・・・
0739nobodyさん
2007/10/20(土) 14:19:30ID:0NCrF6x5無視していいですか?というより出さないかきかたはあるんでしょうか?
0741nobodyさん
2007/10/20(土) 14:26:19ID:???作ってみた
改行上限で読みにくくはなってる
class Turi {
var $coinMapDef = array(1000,500,100,50,10);
var $coinMap = array();
var $turiCoinMap = array();
function Turi($coinMap = null) {
$this->coinMap = $this->coinMapDef;
if (is_array($coinMap) == true) {$this->coinMap = $coinMap;}
}
function calc($inMoney, $buyPrice) {
$turi = $inMoney - $buyPrice;
if ($turi < 0) {return false;}
elseif ($turi === 0) {return array();}
$this->getEachCoinCount($turi);
return $this->turiCoinMap;
}
function getEachCoinCount($money) {
$turiCoin = $this->getEachCoin($money);
if ($turiCoin === false) {return;}
$count = floor($money / $turiCoin);
$this->turiCoinMap[$turiCoin] = $count;
$nokoriMoney = $money - $count * $turiCoin;
$this->getEachCoinCount($nokoriMoney);
}
function getEachCoin($money) {
foreach ($this->coinMap as $value)
if ($value <= $money) {return $value;}
return false;
}
}
0742nobodyさん
2007/10/20(土) 14:29:14ID:???<?php
$hoge = $_GET['hoge']
こんな感じにいきなり書いてるからNOTICEが出る
理由はGETでhogeが投げられてもいないのに値を取得しようとしてるから
こういう場合は必ず値がセットされてるか確認してから入れる
if (isset($_GET['hoge'])) {
$hoge = $_GET['hoge'];
}
0743739
2007/10/20(土) 14:34:43ID:0NCrF6x5どうもご丁寧にありがとうございます。
納得いきました。
これからはそのような書き方にします。
0744nobodyさん
2007/10/20(土) 14:51:53ID:???== trueは冗長だろ
0746nobodyさん
2007/10/20(土) 15:06:12ID:???0747nobodyさん
2007/10/20(土) 15:06:45ID:???0748nobodyさん
2007/10/20(土) 15:30:01ID:???0749nobodyさん
2007/10/20(土) 15:46:53ID:???過去に自分で書いたものすら読めないほど退化してるから
0750nobodyさん
2007/10/20(土) 15:48:52ID:???0751nobodyさん
2007/10/20(土) 17:06:17ID:???0752nobodyさん
2007/10/20(土) 17:25:49ID:???ろくなコード書けないんだろう
自分じゃソースすら晒せないんだからwww
0753nobodyさん
2007/10/20(土) 17:28:01ID:???0754nobodyさん
2007/10/20(土) 17:30:43ID:???0755nobodyさん
2007/10/20(土) 17:35:43ID:???はっきり言ってアフォ
0756nobodyさん
2007/10/20(土) 17:58:13ID:???お前のほうがよほどお察しだろ
読みにくいからイラネっていってるだけだし歪曲するなよヴォケ
読みにくいっていうのは正論
仕事でも三項演算子なんて使わん
0758nobodyさん
2007/10/20(土) 18:06:42ID:???0759757
2007/10/20(土) 18:07:43ID:???0760nobodyさん
2007/10/20(土) 18:09:42ID:???0761nobodyさん
2007/10/20(土) 18:10:50ID:???後々生まれるわけわからんこと主張する変なアホが出てくるんだ
コーディング規約で使わないことになってる三項演算子をかっこいいと思ってるらしく
何で使わないんですかね?
チームで開発するんだから可読性考えるのは当たり前
え?可読性よくないですか?わかりやすいと思うけどな
とか俺様に意見する駆け出しがふえるんだよヴォケ
ここは初心者スレであると同時に未来の実務PGが生まれる可能性がある場所なんだから
余計なこと教え込むな
入ってきたときこっちが矯正するのに無駄な時間がかかる
0762nobodyさん
2007/10/20(土) 18:12:30ID:???0763nobodyさん
2007/10/20(土) 18:15:26ID:???挙動が気になる関数ってあるじゃん
mb_send_mail()とかmb_send_mail()とかmb_send_mail()とか
0765nobodyさん
2007/10/20(土) 18:21:52ID:???>(is_array($coinMap) == true)
>== trueは冗長だろ
冗長だけど、おれもそう書くよ。可読性が向上する。
俺の場合は、== TRUEって書くけどな。
0766nobodyさん
2007/10/20(土) 18:24:26ID:???俺は目は通さない
通した所で動作が変とかあったとしても
phpのコミッタでないから修正できないし
それにローカルだけ修正とか変更したら
バージョンアップ毎に書き換えないといけないから
inとoutとどういう動作をするかの仕様が解れば
それにあわせて作ってる
0767nobodyさん
2007/10/20(土) 18:39:10ID:???pearのソースは見ても、わざわざPHPのCのソースまで見る人は少ない気が・・・理由は概ね766と同じ
>>765
俺の場合 ture false が必ず返ってくることが約束されてる組込み関数は冗長だと思うので書かない派かな
だけど if ($fp) { とか if ($db) { みたいな書き方は気分的に好きになれない
0768nobodyさん
2007/10/20(土) 18:47:13ID:???>俺の場合 ture false が必ず返ってくることが約束されてる組込み関数は冗長だと思うので書かない派かな
組み込み関数は書かないが、逆に自作の関数だったら書くってことか?
大量のコードの中で瞬時に組み込みか自作か分かりにくい場合もあるし、
そもそも区別する意味がない気がする。
コーディング規約として、制御文の条件判定の際はTRUE又はFALSEを明示すること。って決めた方がすっきりすると思うけど。
0769nobodyさん
2007/10/20(土) 18:53:04ID:???//false時の処理
}
と書く奴がいるが、
if ($isCorrect == true) {
//true時は処理をしない
} else {
//false時の処理
}
と書くようにな!!
0770nobodyさん
2007/10/20(土) 18:59:06ID:???「自分はこうです」「私はこう思います」で留めておいたほうがいい気がする
0772nobodyさん
2007/10/20(土) 19:08:52ID:???0778nobodyさん
2007/10/20(土) 20:19:05ID:???日本語のニュアンスの違い
「レベルの低さ」と言うと「低い」ことを臭わせているけど、
「レベルの高さ」と言うと>>773が思っているように「高い」ことを匂わせることもあるけど、
「縦・横・高さ」と同じで、高い・低いを想像させない中立的な言い方でもある
0779nobodyさん
2007/10/20(土) 20:38:58ID:???日本語が変になった
日本語のニュアンスの違い
「レベルの低さ」と言うと「低い」ことを臭わせているが、
「レベルの高さ」と言うと>>773が思っているように「高い」ことを匂わせることもあるけど、
「縦・横・高さ」と同じで、高い・低いを想像させない中立的な言い方でもある
0780nobodyさん
2007/10/20(土) 20:41:31ID:???0782nobodyさん
2007/10/20(土) 20:59:39ID:???再帰がめずらしくて使ってみたかったのか?w
末尾再帰にするくらいならループにすべきところ
つり銭がないときのチェックはあるのに
$inMoneyに10円未満があったときは無視して正常に返すのかw
しかし、なんでこう難しくつくろうとするのかね・・・
あと>>741が悪いんじゃないけど、
private,public,protectedのついてないクラスってほとんど意味ないよね
0783nobodyさん
2007/10/20(土) 21:14:20ID:???そうやってむきになってどうでもいいレスにレス返すから
レベルがどうたらといわれるんだよ
ほんと君みたいなやつは消えてくれていい
0787nobodyさん
2007/10/20(土) 21:23:14ID:???phpのソースってメンバとかメソッドにアクセス修飾子がついてないクラスをよく見かけるんだよ
Log4phpもそうだったような気がする
0791nobodyさん
2007/10/20(土) 21:31:28ID:???0794nobodyさん
2007/10/20(土) 21:36:23ID:???こんなんどうでしょうか?
function get_tsurisen($tonyu_kingaku, $konyu_kingaku) {
$tsurisen_maisu = 0;
$list = array(1000, 500, 100, 50, 10);
$tsuri = $tonyu_kingaku - $konyu_kingaku;
for ($i = 0; $i < count($list); ++$i) {
while ($tsuri >= $list[$i]) {
$tsurisen_maisu++;
$tsuri -= $list[$i];
}
}
return $tsurisen_maisu;
}
0797nobodyさん
2007/10/20(土) 21:43:03ID:???0798nobodyさん
2007/10/20(土) 21:44:02ID:???function get_tsurisen($tonyu_kingaku, $konyu_kingaku) {
$tsurisen_maisu = null;
$list = array(1000, 500, 100, 50, 10);
$tsuri = $tonyu_kingaku - $konyu_kingaku;
for ($i = 0; $i < count($list); ++$i) {
$tsurisen_maisu[$list[$i]] = 0;
while ($tsuri >= $list[$i]) {
$tsurisen_maisu[$list[$i]]++;
$tsuri -= $list[$i];
}
}
return $tsurisen_maisu;
}
0800nobodyさん
2007/10/20(土) 21:50:48ID:???あとは$tsuri <0とかチェックをいれたら終わりかな
while文をつかわないで>>730にある商と剰余に置き換えたほうがすっきりする
あと小さいことだけど、毎回count($list)呼び出されるのは嫌なので
$list_cnt = count($list);
for ($i = 0; $i < $list_cnt; ++$i) {
にする
0801nobodyさん
2007/10/20(土) 22:00:07ID:???0802nobodyさん
2007/10/20(土) 22:01:10ID:???0で返すのか、それともNULL、それとも投入金額分だけ返すのか?
0804nobodyさん
2007/10/20(土) 22:04:09ID:???投入された金の妥当性とか
買える金額が範囲内なのかを判断するのって変じゃないか?
それは外部ですべきだと思うんだが
もし変な値でつり銭出そうとするなら
それは例外処理にすべきと思う
0806nobodyさん
2007/10/20(土) 22:07:35ID:???0807nobodyさん
2007/10/20(土) 22:08:23ID:???外部からメソッドに入ってくる値の妥当性を検査するのは、そのメソッドの仕事
そういう検査していない値を信用して使うのは危ない
エラーを戻り値で対応するのかエラーで対応するのかはプログラミングの規約とかに依る
0809nobodyさん
2007/10/20(土) 22:09:54ID:???数値を返すところで、0で返すのはまずいだろ。
それじゃ、正常処理か異常処理か分からなくなる。つまり、隠れたバグの原因になる。
0812nobodyさん
2007/10/20(土) 22:17:13ID:???f()==falseでは確かにまずいので、0とfalseを厳密に区別するために
f()===falseにするしかないな
(f()は数値を返すメソッド)
http://php.benscom.com/manual/ja/types.comparisons.php
0813nobodyさん
2007/10/20(土) 22:23:46ID:???・購入金額は0円以上
・最低単位は10円であり1円単位の端数は無い
・購入金額は投入金額と等しいかそれ以下
購入キャンセルによる返金は親が面倒見る
0815nobodyさん
2007/10/20(土) 23:40:56ID:???定義はあえて緩くしてるんだろ
その方が実力を測れるじゃねーか
0817sage
2007/10/21(日) 00:43:39ID:???phpの初期設定ファイルであるpnp.iniが見つかりません。
このファイルは、無い場合は自分で作るのでしょうか?
自分で作る場合は、インストールしたディレクトリと同じ場所におけばよいのでしょうか?
環境情報は、以下の通りです。
・OSは、5.4
・PHPは、5.2
よろしくお願いししす。
0818nobodyさん
2007/10/21(日) 01:03:52ID:???1.意見をPOSTで送る
2.確認画面で確認
3.それから書込
2.の時点でhtmlspecialchars を入れており確認画面のソースは
<input type="hidden" name="contents" value="&lt;img src=&quot;&quot;&gt;">
(全角にしております)
でここからが問題。
こいつをまた送信すると$_POST['contents']の中身が元の「<img src="">」に
なっちゃうのはなんででしょうか?
$_POST['contents']="&lt;img src=&quot;&quot;&gt;" にならないの??
0819nobodyさん
2007/10/21(日) 01:10:23ID:???<? phpinfo(); ?> でファイル作りブラウザからでもコマンドライン実行でも見れば載ってない?
大体自分でOSインスコしたならfindとか使えないのか?
0820nobodyさん
2007/10/21(日) 01:19:58ID:???再送信で何故元に戻るかは知らないけど確認画面にhidden入れない方がいいと思う。
確認画面は表示用のみにして、送信内容(1の意見)自体はセッション関数に入れて3でそれを書き込んだ方がいい
0821nobodyさん
2007/10/21(日) 01:34:05ID:???慣れないOS使うからだよ
デフォルトのファイル名はphp.ini-dist
これをcpしてphp.iniにリネームしたのを同じ場所に置く
locatedb更新して検索してください
0823nobodyさん
2007/10/21(日) 03:47:36ID:???0824818
2007/10/21(日) 03:54:49ID:???$strForm = <<<EOF
<form method=POST action={$_SERVER['PHP_SELF']}>
{$_POST['hoge']}
<input type=submit value="ok">
<input type=hidden name=hoge value="&lt;"> ←掲示板対策で&大文字 &lt;=<
</form>
EOF;
echo $strForm;
これを動かすと「&lt;」ではなく「<」が表示された。
これ以上はスレ違いの気がするので最後に質問。
特殊文字を HTMLエンティティした場合、それを送信しちゃうと自動的に元に戻るってこと?
0825nobodyさん
2007/10/21(日) 03:57:50ID:???0826nobodyさん
2007/10/21(日) 04:00:43ID:???0827818
2007/10/21(日) 04:06:00ID:???>>なんのためにエンティティ化するんだ
ウハ! もっともなご意見(^^;
確認画面ですので入力したデータがそのまま表示されてもいい気がするんですが。
でも2ちゃんの確認画面もちゃんとエンティティ化してますよね。
そこらへんどうなんでしょ?
0828nobodyさん
2007/10/21(日) 04:14:05ID:???確認画面に入力したデータを書き込むんだ。
0829nobodyさん
2007/10/21(日) 04:49:54ID:???portsからぶち込んだ場合は/usr/local/etcにphp.ini-recommendedとphp.ini-distがある
いづれかをphp.iniとしてコピー
野良makeならphpのマニュアルに沿って解凍ディレクトリ下のphp.ini-recommendedか
php.ini-distをphp.iniとして/usr/local/libにコピー
推奨はphp.ini-recommendedなんだけどエラーメッセージ吐かなかったりと不自由するかも
しれないのでテスト環境ではphp.ini-distを利用するのがいいかも
0830nobodyさん
2007/10/21(日) 09:59:43ID:???2chで書き込み試したら確かにエンティティ化してhidden使ってるね
セッション使わないのは鯖負荷軽減のため?
ただ普通は、
ユーザが入力(最初)
↓
入力データをセッション変数へ保存
表示用にエンティティ化してHTML出力
↓
ユーザが確認し書き込みボタン押す
↓
セッション変数に保存したものをファイルやDBへ保存
(勿論DB用にエスケープする)
hiddenだろうがテキストエリアに入った文字列だろうがHTML出力する分はすべてHTMLエンティティするのは当然。
問題視してるのは書き込むデータをhiddenで送り返してまたそれを受け取りDB登録しようとしてる点。
0831nobodyさん
2007/10/21(日) 10:17:27ID:???0832nobodyさん
2007/10/21(日) 10:23:29ID:???0833nobodyさん
2007/10/21(日) 10:38:03ID:???0834nobodyさん
2007/10/21(日) 12:10:29ID:k0cThTxSsakuraサーバーのPHPがPHP 4.2.2で
php 5.2.4ではclass内でのrequire_once等の使用ができるのに
php 4.2.2だとつかえないみたいなんですけど
これはそういうものなんですか?
includeでも同じでした;;
なにか他に取り込む方法ってないですか?
0835nobodyさん
2007/10/21(日) 12:19:55ID:???0836PHPでパスワード付きExcelファイルを読み込みたい
2007/10/21(日) 13:11:20ID:SzVd/yWpそのマシンにはExcelがインストールされておらず、
Excelファイルには、Excelのパスワードがかかっています。
で、そのExcelファイルをバッチ処理か何かで読み込みたいと考えています。
Perlだと、Win32::OLEかSpreadsheet::ParseExcelを使って読み込むそうですが、
前者はExcelがインストールされていないtダメですし、
後者はパスワードで保護されたExcelには対応していないんだそうです。
そこで、PHPを使おうと思っています。
ここで質問です。
調べたところによると、PHPでは、PHPExcelを使うと思うのですが、
パスワード付きのExcelは読み込めるのでしょうか?
あるいは、ほかに簡単に読み込める方法があれば、教えてください。
よろしくお願いします。
0838nobodyさん
2007/10/21(日) 15:16:08ID:???0841nobodyさん
2007/10/21(日) 17:41:02ID:KqyRsNL6住所録みたいなツールを作って、データを登録するとします。
で、DB側ではid(自動インクリメント)を持たせてるとして、
たった今登録したデータのidを拾いたいときってどうしたらいいんですか?
phpから実行するsql文で最新のデータのidを拾えばいいと思ったんですが、
複数人から同じテーブルに次々書き込みがあった場合、自分の書き込み後に
他人が登録したデータを拾ってしまうということはないでしょうか?
0844836
2007/10/21(日) 18:38:11ID:???0846nobodyさん
2007/10/21(日) 18:59:57ID:???「送信しました(2ちゃんだと『書き込みました』)」というページを表示するじゃないですか。
この際にブラウザーで戻れなくする方法ってないですかね?
何がしたいかというと二重送信を防ぎたいわけですが
チェック用のファイルを用意して防ぐようにもします。
ですがブラウザーそのものが戻らないようにできないもんですかね?
header("Location :http://example.com")でいけるかと思ったんですがダメでした…
アドバイスを。
0847nobodyさん
2007/10/21(日) 19:05:00ID:???0848nobodyさん
2007/10/21(日) 19:07:21ID:???>二重送信を防ぎたい
ぐぐればやり方はいくつか載ってるよ
ただクライアント側で何とかしようとするのは感心しない
やるならサーバ側
このへんの理由もぐぐれば書いてある
0849nobodyさん
2007/10/21(日) 19:13:54ID:???セッションに前いたページを覚えさせておいて
戻ったページで正しい遷移でなければ、前いたページにリダイレクトとか。
0851846
2007/10/21(日) 19:40:55ID:???>ただクライアント側で何とかしようとするのは感心しない
>やるならサーバ側
そそ、書くの忘れていた。
クライアント側、たとえばJavaScriptとかでするんじゃなくて
サーバー側で処理をしたいんですよね。
「PHP 二重送信 防止」ぐらいでググッてるんですが
『クライアントサイドのスクリプトで二重送信を防止するのは難しい』
とか言われている俺ガイルww
0852846
2007/10/21(日) 19:45:54ID:???回答ありがとうございました。
0853846
2007/10/21(日) 19:51:46ID:???ちょ!必死に探しているのに詐称すんのやめて(つд`;)
つーか解決法がみつからない。
(ページの間に別のphpファイルを挟んで実行・header処理している人がいて感動)
ここって前まで上げてID表示していなかったっけ?
荒らされたんかな?
0854nobodyさん
2007/10/21(日) 19:53:39ID:???0855nobodyさん
2007/10/21(日) 19:58:07ID:???0857846
2007/10/21(日) 20:34:37ID:???ちょっと待て!お前誰だよw
まぁ解決方法が見つからないのは本当なんだけどさ…。
もう少しググッてみたいと思います!
偽者が出てきたのでもう書き込まないようにします。迷惑かけてごめんなさい!
0858846
2007/10/21(日) 20:36:02ID:???0860846
2007/10/21(日) 20:41:49ID:???どうすれば良いですか?
0861846
2007/10/21(日) 20:41:56ID:???0862nobodyさん
2007/10/21(日) 20:45:25ID:???0863nobodyさん
2007/10/21(日) 20:58:29ID:???0864nobodyさん
2007/10/21(日) 21:07:02ID:???0865nobodyさん
2007/10/21(日) 21:10:16ID:???ブラウザーのボタン制御は無理だろ?
0866nobodyさん
2007/10/21(日) 21:12:26ID:???脱線し過ぎるのはアレだけど
0867836
2007/10/21(日) 21:26:20ID:SzVd/yWp>>839
OpenOfficeでパス付きExcelが開けるのは知っていますが、
手で開くのではく、自動処理(バッチ処理等)で読み込みたいと考えています。
OOoでそういう使い方ができるのでしょうか?
0868nobodyさん
2007/10/21(日) 21:43:50ID:???送信元画面をPOSTで生成しとくとか。
いっそ送信元画面にJavaScript仕込んどいて送信完了時に
発行したCookieを発見したら強制Locationかけちゃうとかw
0870nobodyさん
2007/10/21(日) 22:25:47ID:MevNDFNfPHPの日付関数はunixタイムスタンプを使うので
2038年?以降のカレンダーは表示できなくなります。
unixタイムスタンプ問題を回避してカレンダーを作るには
どうすればいいですか?
0872nobodyさん
2007/10/21(日) 22:47:48ID:???まあ送信とか戻るのはユーザが行うことだからWebサーバで禁止できることじゃないとおもうけど。
期限切れで表示できないのとかあるね。
どうやっているのか知らないけど。
送信してしまった対策として一定時間内のIPや内容のハッシュでも記録しておいて
同じのがあったら無視するとか。
しつこい書き込みはIPを2chみたいにバーボンにするとか。
0873nobodyさん
2007/10/21(日) 23:52:14ID:mLa5/CiAどんな流れで作ればいいんでしょ。
0874nobodyさん
2007/10/21(日) 23:55:29ID:???↓
RSS出力
0877nobodyさん
2007/10/22(月) 00:11:31ID:???0878nobodyさん
2007/10/22(月) 00:17:27ID:???そういう直接的な注意は不粋というものだ
どんな質問にも答えることはできる
質問者が気づくかどうかは知らんけど
0880nobodyさん
2007/10/22(月) 01:31:08ID:???0881nobodyさん
2007/10/22(月) 01:34:58ID:???0882nobodyさん
2007/10/22(月) 01:41:18ID:b3zF2Ui70884nobodyさん
2007/10/22(月) 01:55:22ID:???以前に別の人間が質問して叩かれた内容と類似してるんじゃねえの
それだけ質問の内容が快く思われていないんだと思う
0885nobodyさん
2007/10/22(月) 02:08:22ID:???0886nobodyさん
2007/10/22(月) 02:35:00ID:byAZxbU80887nobodyさん
2007/10/22(月) 02:58:01ID:???うる覚えなので間違ってるかも知れんが、DBを使って回避みたいなのを本で読んだ記憶がある。
time関数の範囲より広いんだと。
たしかpostgresのシーラカンス本
0888nobodyさん
2007/10/22(月) 04:48:06ID:b3zF2Ui7スレが落ちないようにたまに質問してやるだけって感じだし。
どうせ回答者もぐぐって答えさがしてんだし。
0889nobodyさん
2007/10/22(月) 04:55:36ID:???これ組み込んだらいいんじゃね
PHPで出来たブログシステム結構あるけどどうやってんだろうな
0890nobodyさん
2007/10/22(月) 04:55:37ID:???皆もっと寛大な心を持たないかい。
0892nobodyさん
2007/10/22(月) 05:25:37ID:???0893nobodyさん
2007/10/22(月) 06:59:37ID:???質問を投げる奴を寛大な心で迎え入れるコミュニティは存在しない
それに気づかない奴がバカなんだよ
0897nobodyさん
2007/10/22(月) 10:18:58ID:???0898nobodyさん
2007/10/22(月) 13:33:32ID:fwkYbUt6PHPマニュアルでは、Nullバイトは \0 としていますが、
僕の環境では、 %00 しかNullバイトとして認識しません。
バージョンによって違うんでしょうか?
0899nobodyさん
2007/10/22(月) 13:35:36ID:???元記事:
http://phpspot.org/blog/archives/2007/10/php_84.html
指摘関連記事:
http://labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-bad-regex.html
http://labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-issue.html
http://labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-final.html
0901nobodyさん
2007/10/22(月) 13:52:09ID:???秋元面倒くさい奴だな
と思ったがphpspotも若干アフィ厨なのでどっちもどっちか
phpspotは記事の邪魔になるような広告はどけろよ
0902nobodyさん
2007/10/22(月) 13:57:42ID:???アドセンスなどは広めに「そんなつもりじゃないのについクリックしちゃったよ」
的なところに置く
phpspotって結構叩かれてたんだな・・・
0906nobodyさん
2007/10/22(月) 14:41:57ID:wYjDaOJpecho $random;
出力「1317099188」
randって何桁まで可能なんですか?
0909nobodyさん
2007/10/22(月) 14:50:44ID:???著者間戦争か
0910nobodyさん
2007/10/22(月) 14:52:40ID:???あの規模のサイトでコメントやメールをまともにチェックしてたら身がもたないだろうに、それを強要するってよっぽど寂しがり屋だろ。
0912nobodyさん
2007/10/22(月) 15:05:14ID:???1969年とかになったりする
有名どころのブログでも2038年問題の対応はまだみたいね
0914nobodyさん
2007/10/22(月) 15:28:05ID:???そう思ってたのに予想外に使われてしまった例は多々あるよ。
2000年問題のときなんてアホか!って思うくらい多かったし。
みんな「15〜20年もしたら絶対にリプレースされるから」を前提に作ってるのなw
まぁ、Webアプリはコンピュータのシステムとしては極端に短命の部類だとは思うが、
移植や他システムとの連携などでライブラリやデータだけがいつまでも
生き残ってしまうケースは思ってる以上にあるものだ。
そして「処理が簡単で速度的にも有利」とか言って日時をdatetime型でなく
UNIXタイムでDBに保存してたシステムなんかが軒並み死ぬんだなw
0915nobodyさん
2007/10/22(月) 15:29:45ID:ElA0RlAx0917nobodyさん
2007/10/22(月) 15:41:12ID:tvXYQA/L以下のようにすると効率が悪いので他に効率的な方法がありましたらお願い致します
$hoge = array(NULL,NULL,NULL,NULL,NULL…);
0921nobodyさん
2007/10/22(月) 15:49:56ID:???社会人失格だなw
0922nobodyさん
2007/10/22(月) 16:20:16ID:???0923nobodyさん
2007/10/22(月) 16:21:25ID:???0924nobodyさん
2007/10/22(月) 16:25:29ID:???ネットには間違った情報が氾濫してるのが当たり前なのに
いちいち記事にしてスルーできないなんて糞だなこいつ
0925nobodyさん
2007/10/22(月) 16:31:15ID:???見えます!サイボウズのオフィスで
銀縁メガネにツルピカおでこが青筋たてて因縁つけてる様子が見えます!
0926nobodyさん
2007/10/22(月) 16:32:38ID:???関係者混ざってるだろ
どっちもどっちでおk
0927nobodyさん
2007/10/22(月) 16:32:45ID:KptdLAsS.fowardの設定をしているところです。とりあえずメールの転送設定をして
動かしてみましたが、問題無く動いている様です。
これから.fowardとphpの連結をしたいと思うのですが、.forward側にはどの
様に記述をすれば良いでしょうか?全くの素人で申し訳ありませんが、
ご教授頂けたら幸いです。
0930nobodyさん
2007/10/22(月) 16:50:22ID:???>>1
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
(´-`).。oO(spam業者だったらヤダなぁ…)
0931nobodyさん
2007/10/22(月) 16:56:57ID:???0932nobodyさん
2007/10/22(月) 16:58:09ID:KptdLAsSご返事ありがとうございます。
条件等についてですが、上から回された話でして、正確に細かい所までは
分らないのですが、Linuxサーバーで、「mygets」というレンタルサーバー
の様です。とりあえず.forwardの動作確認はできました。
とりあえず動かすPHPの方はネットで見つけたのですが、.forwardとの
連結方法が分からない状態です…。つまりは.forward側に記述する
書き方が分らない…という感じです。
とりあえずサーバー内にmail.phpという物を置き、そちらにアクセスする
方法を模索中です。ネットで拾った書き方は以下の通りです。
"| /var/vhosts/ドメイン/httpdocs/mail.php"
この様な状態ですが、ご教授頂けたら幸いです…。
0933nobodyさん
2007/10/22(月) 17:01:08ID:KptdLAsS飲食店のメール会員サービスとして利用するそうです。
迷惑メールの部類に入るのかどうか分かりませんが…
0935nobodyさん
2007/10/22(月) 17:36:34ID:BX8wBWnfwikipediaを参考にして以下のようにコーディングしました
http://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A7%E3%83%A9%E3%83%BC%E3%81%AE%E5%85%AC%E5%BC%8F
コードはwikipediaほとんどそのままですが
今日の曜日を表示すると2になります
なぜでしょう??
function getDayOfTheWeekByZeller ($year,$month,$day)
{
if ( $month < 3 ) {
$year--;
$month = 12+$month;
}
return (5 * $year / 4 - $year / 100 + $year / 400 + (26 * $month + 16) / 10 + $day) % 7;
}
echo getDayOfTheWeekByZeller(2007,10,22);
0936nobodyさん
2007/10/22(月) 17:44:15ID:???forward側は特に問題ないよ
php側はphp://stdinをfile_get_contentsとか使って取得する
>>935
wikiに答え書いてるし
0:土曜〜
0939nobodyさん
2007/10/22(月) 17:53:40ID:KptdLAsSご返事ありがとうございます。
.forward側は問題無いんですね。
では、この記述でメールを送れば転送されるんですね?
そうなると問題はPHP側の記述ですね。
一番最初の行に「.forward」からの引き継ぎみたいな文章が必要となる
と思うのですが、先ほどの「httpdocs」の直下に置いた場合、どの様な
記述をすれば良いのでしょうか?
その他PHPの部分に関しては、ネットでサンプルデータを拾って来ました
ので、そちらを流用すれば行けそうな感じです。
お手数ですがまたご教授頂けたら幸いです。
0940あほです
2007/10/22(月) 18:15:58ID:OgOtQ7oPWindows環境では同じ記述で動作していましたが、
FC6(Linux)で同一の環境を整備したのですが上手く表示ができません。
環境は以下の通りです。
Linux FC6 最新
MySQL5 5.0.27-1.fc6
PHP5 5.1.6-3.7.5c6
Apache2 httpd-2.2.6-1.FC6
症状としてはコマンドで実行[php ./xxx.php]した時には、
htmlが正しく生成されているようですが、IE上では表示結果が変わってしまい、
データベースの項目は上手く出力されますが、
肝心のデータが表示結果から失われてしまいます。
どなたかわかる方ご教授願います。
0942935
2007/10/22(月) 18:19:12ID:BX8wBWnfecho getDayOfTheWeekByZeller(2007,10,31);
echo getDayOfTheWeekByZeller(2007,11,1);
これが両方とも4=水曜日になってしまいます
本来は11/1は木曜日です
一体どういうことでしょうか
0943935
2007/10/22(月) 18:40:07ID:???return ( intval(5 * $year / 4) - intval($year / 100) + intval($year / 400) + intval((26 * $month + 16) / 10) + $day ) % 7;
これでokでした
0944nobodyさん
2007/10/22(月) 18:51:19ID:???return round(5 * $year / 4 - $year / 100 + $year / 400 + (26 * $month + 16) / 10 + $day) % 7;
0946nobodyさん
2007/10/22(月) 19:00:11ID:???お前ら、その頃まで生きていないだろw
生きていたって、それまで現役でやっているわけがない。
その頃にはウランPCが開発されて、目が回って大変だよ。
端的にいえば、PCが開発されていないのにもう月に行きましたって言っているようなものだろw
0948nobodyさん
2007/10/22(月) 19:08:41ID:na0g6V2m$sql = "SELECT * FROM namelist order by date";
$result = mysql_query($sql)
or die ("error");
こういう構文がある時、$sqlの結果が0だとすると「error」という文字が表示されると思ったんですが
何も表示されません。(エラー出力無し、真っ白です)
dieをexit("error");に変更しても、
if (!$result) {print "error";}に変更しても
やはり真っ白のままです。何故でしょうか?
(ちなみにデータが1つ以上存在する時はちゃんとデータ表示されます)
0949nobodyさん
2007/10/22(月) 19:11:30ID:byAZxbU82000年問題をクリアした者達の驕りがこれほどの惨事を生むとは・・・
0950nobodyさん
2007/10/22(月) 19:11:33ID:???【スクープ】コンピュータの“西暦2038年問題”発生、早くも日本を揺るがす
http://itpro.nikkeibp.co.jp/free/NC/NEWS/20040202/139212/
2038年問題による影響はすでに広く報道されている。
1月11日に23行の銀行でATM(現金自動預払機)が一部の取引で
正常に利用できなくなったトラブルの原因が、この2038年問題に
よるものだった。
0951nobodyさん
2007/10/22(月) 19:16:10ID:byAZxbU8>「error」という文字が表示されると思ったんですが
思い違い
0952nobodyさん
2007/10/22(月) 19:20:23ID:???http://jp.php.net/mysql_query
0953nobodyさん
2007/10/22(月) 19:21:18ID:???0954nobodyさん
2007/10/22(月) 19:22:07ID:???if (!$result)でも駄目なんですよね
検索結果があっても無くてもFALSEを返さないのかな…
0956nobodyさん
2007/10/22(月) 19:31:45ID:???件数0の時にエラーを出したいだけなんですが
0957nobodyさん
2007/10/22(月) 19:33:03ID:???0958nobodyさん
2007/10/22(月) 19:35:07ID:???了解しました
0959nobodyさん
2007/10/22(月) 19:36:09ID:???0960948
2007/10/22(月) 19:37:00ID:???0962nobodyさん
2007/10/22(月) 19:39:52ID:???0963nobodyさん
2007/10/22(月) 19:40:41ID:???0964nobodyさん
2007/10/22(月) 19:41:45ID:???0965nobodyさん
2007/10/22(月) 19:47:18ID:???0967nobodyさん
2007/10/22(月) 19:53:30ID:???表示されると思った
表示される
表示
0968nobodyさん
2007/10/22(月) 19:54:01ID:???この時間は馬鹿しか居ない様だから俺様が回答して差し上げるか。
>>948
件数ゼロならerrorを出せばいいだけだよな
mysql_num_rows使え
$result = mysql_query($sql);
$check = mysql_num_rows($result);
if (!$check) {echo "error";}
これでおk
0969nobodyさん
2007/10/22(月) 19:56:23ID:na0g6V2mありがとうございます!!天才!!
この時間帯って分かる人いなくて駄目ですね
質問に答える気が無いなら書かなきゃいいのに…
0972nobodyさん
2007/10/22(月) 20:07:01ID:???0973nobodyさん
2007/10/22(月) 20:07:37ID:???booleanのFALSEと0を同一視しているオマエがよっぽど駄目だろ
てめえの無能さ棚上げして煽りいれてんじゃねえよ
0974nobodyさん
2007/10/22(月) 20:11:03ID:???0件という結果返ってるんだから
エラーが出ないのは当たり前
0978 ◆giJXvJWspA
2007/10/22(月) 20:23:47ID:iYvEuZ2m$str = "fortmat:a1&format:a2&format:a3";
$str = preg_replace('@format:(.*?)"@i', kansu($1) , $str);
function kansu($s){
return htmlspecialchars($s);
}
?>
このような感じで$strの文字列をpreg_replaceでマッチさせて置き換えさせたいわけなのですが、
マッチした$1を関数に渡して返り値を置換文字列に利用することはできないでしょうか?
やりたい例としてここではhtmlspecialcharsの値を返す適当な関数を利用するようにしています。
preg_replaceには拘っていません、マッチさせた部分を関数に渡して部分的に置換できれば良いのです。
わかったかもしれない方、是非是非アドバイスをお願いします。
0979nobodyさん
2007/10/22(月) 20:31:39ID:???ユーザーからテキストボックスに入力してもらい
空欄で区切り、複数のタグを登録する機能を付けたいのですが
なかなかうまくいきません
1.タグは5個まで
2.ひとつのタグは10文字以内
誰か教えてくれ('(ω)') ウェーン!
0980nobodyさん
2007/10/22(月) 20:33:10ID:???0982nobodyさん
2007/10/22(月) 20:37:03ID:???分割したできた配列を
煮るなり焼くなりすればいいんじゃ
0984nobodyさん
2007/10/22(月) 20:44:45ID:???0985nobodyさん
2007/10/22(月) 20:47:32ID:???$tag = split(" +", $_POST["taglist"]);
if(count($tag) > 5) {
echo "タグは5個まで!";
exit;
}
foreach($tag as $t) {
if(strlen($t) > 10) {
echo "タグは10文字まで!";
ecit;
}
}
あと何がいるのよ。
0986nobodyさん
2007/10/22(月) 21:00:32ID:???>>979
>>空欄で区切り、複数のタグを登録する機能を付けたいのですが
だから「登録する機能」がほしいだろ
DB登録とか既登録タグとの重複チェックとかいろいろ
0987nobodyさん
2007/10/22(月) 21:12:39ID:???0989nobodyさん
2007/10/22(月) 21:19:15ID:???どのような手段が考えられますでしょうか。
0990nobodyさん
2007/10/22(月) 21:19:55ID:???0991989
2007/10/22(月) 21:20:03ID:zemvneS70992nobodyさん
2007/10/22(月) 21:20:12ID:???空欄で区切るところがなかなかうまく動作しません...
>>区切り文字で分割(split)して
ここでユーザがやたら空白を入れたり、先頭から空白を入れられると
うまく処理できマスン!
0993nobodyさん
2007/10/22(月) 21:20:46ID:???0994nobodyさん
2007/10/22(月) 21:37:22ID:???インクールド先のファイルに、変数そのものが書いてあるかを確認するのって何かあるのでしょうか?
0995nobodyさん
2007/10/22(月) 21:44:05ID:???ならそう書けばいいのに。
PHP環境ないので推定で書いてスマン
先頭空白はtrimで取り除けない?
連続空白は置換で1つの空白に。
全角空白でsplit,trimできないなら置換で半角空白に。
その上で空白でスプリットすればどうでしょう?
0996nobodyさん
2007/10/22(月) 21:47:44ID:???んじゃ>>985の内容を
> $tag = split(" +", $_POST["taglist"]);
のとこを
$tag = split(" +", trim($_POST["taglist"]));
にすりゃいいんじゃないかと。
1000nobodyさん
2007/10/22(月) 22:01:56ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。