【PHP】くだらねぇ質問はここに書き込みやがれpart7
■ このスレッドは過去ログ倉庫に格納されています
0001966
2005/07/12(火) 01:47:09ID:qOoYFCn7ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
立ってなかったんで>>970に近かった自分が勝手に立てちゃいました。
0233nobodyさん
2005/07/18(月) 23:58:39ID:Mt/K/zKfたとえばセッションIDとか。この場合、リンクタグを書く際にいちいち
<a href="〜/?sid=<?= $sid ?>">次のページへ</a>
のように書くか、関数かなにか作って
<?= generateLink("http://〜/", "次のページへ", $query) ?>
↓ 下のように出力される
<a href="http://〜/?sid=xxx&name=xxxx">次のページへ</a>
のように書くかのどちらかくらいしか思いつきません。
前者はいちいち書くのが面倒だし、書き忘れると大変です。
後者はデザイン担当の人が使い方を覚えるのを嫌がるのでできれば避けたいです。
皆さんはどちらを使ってますか。あるいは他のやり方で解決してたりしますか?
0235nobodyさん
2005/07/19(火) 02:50:03ID:???0236nobodyさん
2005/07/19(火) 03:20:15ID:???http://php.domain/get.php?hoge=a+b+c
でみたいにアクセスすると、表示されるのは
a b c
と + (プラス)が (空白)に置き換わるのは仕様??
マニュアルのどっかに書いてある?それとも RFC かしらん?
0237nobodyさん
2005/07/19(火) 03:45:17ID:???DOMDocument::loadXML()を使うんだ
>>236
PHPの仕様。URLデコード済みのデータが入る
0238nobodyさん
2005/07/19(火) 05:52:32ID:IezOVCMvいつもデータ型の決定やテーブルのレイアウトで悩みます。
データ型などを決定するにあたっての「原則」というか「常識」みたいなのはありますでしょうか?
リファレンスなどを見てもそれぞれのデータ型に関する教科書的な説明しかなくて、
もっと実用的に「実際にはこういうデータの時にこの型を使う」みたいなTipsを知りたいのですが、
そういうのをまとめたサイトもしくは書籍ってありませんでしょうか?
ド素人の状態から一人でゼロから学んで一人で開発してるので、
周りに誰にも質問できる人がいなくて困っております。。。
0239nobodyさん
2005/07/19(火) 06:00:58ID:???0240nobodyさん
2005/07/19(火) 07:05:03ID:???後々のことを考えると、DBの初期設計はかなり重要だぞ。
MySQLならPHPとの連携も深いしな。
まあ趣味程度のヤツならあまり気にしなくてもいいかもしれんが。
0241nobodyさん
2005/07/19(火) 07:10:19ID:UElzZYBi,/ __ _ ゛
/ /““ “” ヽ |
| / -━ ━.| |
| |. “” l “ .|.|
(ヽ | r ・・i. || / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
りリリ /=三t. | < その駄レス! 0円!!
|リノ. | ,、‐''""''、
| 、 ー- " ノ ,、‐゙ ',
. _,r''''''ー/ ”ー-- " ヽ ,、-'" j
/ 、 ,,,_ヾ ヽ───、;;;;;::.;、-'" ̄~~~゙゙゙" /
/ 、` ~ ~゙''''''''''"~´ ゙'ソ. ', ....::::::::::::/
./ ... ´ .::::;/ ゙、..... ........:::::::::::::::::::::/
'、:....:::::", .:;rj゙ ゙、;;;;::::::::::::::::::;;;;、-''゙ ビシィッ!
. ヽ;:::::"._ .:::i';/ ゙、 ゙、`~~~゙゙~ 、、、..,,_
. ヽ、;;;;;>、:::... ::::r' ゙、 ゙、:::::: ヽ
',:::::::::゙i'r、;:::::::!. ヽ ゙、 .::〉::::::.... }
. ',:: l:/;;;::゙'ーr゙、 ヽ ゙.、.:::::;/'ー 、、;;;;____;;::、-'"
}、 l:::::::~゙''''! i .........ヽ........:::::;r゙''"
| l::::::::::::::l .〉、;;;;;;::、-'rーi''゙
ノ i;;;;;;;;;;;;;j::::/;;;;;;;;ノ:.. |: j
0242nobodyさん
2005/07/19(火) 08:07:48ID:???逆に言えば教科書的な説明で十分なくらいしかルールがないと思った方がいいんでは。
ド素人がいきなりカッチリしたもの作ろうって方が間違いでしょう。
0243nobodyさん
2005/07/19(火) 08:18:32ID:???俺も同じ境遇だったから(一人で開発、ド素人でゼロからって点で)、かなり共感。
DBのレイアウトは最初とまどった記憶がある。
まーでも「DB レイアウト」とかキーワードにググればけっこうでるんじゃない?
あとはあんまり考えすぎないほうがいい。
DBの場合、運用し始めてからでは変更が加えづらい
ってのが気になると思うけど(実際そうだけどさ)、
まったく変更できないわけじゃないし、
気に食わなかったら最初からやり直せるのも自分だけでやってることの利点。
もしくは気に食わない部分をいかに少ない変更でやりくりするかってのも抑えるべきポイント。
特に一人でやってると、期限がないし、プッシュしてくれる人がいないから、
こだわり始めると立ち止まりがちになる。
それよりはちょっと思い切ってさっと進んだ方がいいものができる。
ある程度こだわるのも重要なことなんだけどな。
ガンガレ!
0244nobodyさん
2005/07/19(火) 08:36:23ID:???0245nobodyさん
2005/07/19(火) 08:46:16ID:???phpスレ的に言えることはパクれってことかな。
0246nobodyさん
2005/07/19(火) 11:23:54ID:???むしろ板違い
0247nobodyさん
2005/07/19(火) 17:34:07ID:QxSJ/3p1その2つで同じメソッドを宣言(抽象クラスでは抽象メソッドとして)するのはダメなのでしょうか?
またダメな場合どちらで宣言した方がいいのでしょうか?
0248nobodyさん
2005/07/19(火) 17:59:05ID:Kj4TO5G6どうでしょう?すんなりなじんでくれるでしょうか?
0249238
2005/07/19(火) 18:12:44ID:IezOVCMvありがとうございます。
そんなに気にしなくてもいいものなんでしょうか。。。
一人で開発してるとは言え、いちおう事業としてシステム提供しようと
思っていますので、スケーラビリティとかメンテナンスとかも考慮しなければ
いけないのかな、とかなり悶々と悩んでおります。
たとえば、ある数字(たとえば何かの通し番号)ひとつ格納するにしても、
「TINYINT」にしようか「SMALLINT」にしようか、それとも「VARCHAR」でいいのかな?とか…。
あるいは、数十文字程度しか入力されないであろう文字列用のフィールドでも、
念のために「TEXT」にしておこうかな…とか。たとえばVARCHAR(50)よりもTEXTにした場合、
領域が無駄に消費されるとか、レスポンスが悪くなるとかってあるのでしょうか?
効率が悪くなるとか・・・そういうの悩みはじめるともう尽きません。
0251nobodyさん
2005/07/19(火) 18:18:36ID:???心配するな。
その程度のことも判断できない、勉強もしない、勉強の仕方も判らないヤツが
作ったシステムに銭を払おうとは誰も思わん
0253nobodyさん
2005/07/19(火) 18:22:57ID:???そのお方はCOBOL以外の別の言語は知っているのかな。
知っているのなら、そう心配することはないと思う。
COBOLしか知らないのなら、そんな方は相手にせずに
アルバイトでも雇ったほうが効率はいいと思うよ。
0254238
2005/07/19(火) 18:32:09ID:IezOVCMvというか、もう第一弾で作ったシステムには既に数十社の顧客がおりますが…。
月商もあなたの給料の3〜4ヶ月分くらいはあると思います。
今のところシステムには特に問題は出てないですが、より良いものにしたいのです。
>>250
>WEBプログラミング@2ch掲示板
>Oracle, PostgreSQL, MySQL といったデータベースの話などをテーマにしています。
0255nobodyさん
2005/07/19(火) 18:37:43ID:???0256nobodyさん
2005/07/19(火) 18:40:47ID:???喪前は>>251か?ww
偉そうに上に立ったつもりが思わぬ反撃されて逆ギレするのはダセーよ(藁
>>238
とりあえずDB関連の本を何冊か読んでみろ。そんでもう一回質問しる。
0257nobodyさん
2005/07/19(火) 18:43:00ID:???0258軟式PHP
2005/07/19(火) 18:44:27ID:???0260nobodyさん
2005/07/19(火) 18:46:50ID:???うわ、2〜3年前の自分を見るようだ。
とりあえず、数値以外は
全 部 テ キ ス ト に し て お け
変に設計勉強してテーブル分けると自分でどうにもならなくなる。
困ったらフィールド追加で免れろ。
そんな感じで作った奴もトラブルなくちゃんと動いてるし、なによりメンテしやすい。零細企業が立派な決めごと作ってもしかたないのと一緒。
0261nobodyさん
2005/07/19(火) 18:48:58ID:kS82naWbUNIX/WindowsともにApache2.0.xでPHP4を実運用するなって旨の
文書を見つけた、これって今のVersionのApache2.0.x+PHP4.4でも
云えることなのかな?
#参考URL
http://php.s3.to/man/install.apache2.html
>"Apache 2.0とPHPの組み合わせを(Unix、Windows
>どちらのプラットフォームでも)実運用環境で使用しないでください。"
0262軟式PHP
2005/07/19(火) 18:52:49ID:???全部テキストってのは俺はしないけど、260の言うようにある程度冗長性を持たせて
データ型は作った方がいいと思われ。MySQLは途中で型変更出来るが
PostgreSQLなんかは途中で型変換出来ないので。
あと、最低限の正規化はやっといたほうがいいと思う。関数を作らないプログラムみたいに保守性・拡張性がガクンと落ちる。
0263nobodyさん
2005/07/19(火) 18:55:48ID:???つ[ http://allabout.co.jp/career/database/subject/msub_sekei.htm ]
0264軟式PHP
2005/07/19(火) 18:56:11ID:???一時的なカラムを作成して、そっちに一回移してホンニャカってやる。
0265軟式PHP
2005/07/19(火) 18:58:23ID:???http://www.php.net/manual/ja/install.unix.apache2.php
「PHP と Apache 2.0.x の互換性に関する注意: PHP の以下のバージョンは、Apache 2.0.x の最新版での動作が確認されています。 」
っていうところが参考になると思われる。
0267nobodyさん
2005/07/19(火) 19:01:56ID:???ソート時の辞書式・数値式やjoinする時の事を考えるとデータ型ってのはある程度決まってくる。
その上で、冗長なデータ排除や効率化のためのテーブルのレイアウト(てか、データベース設計、テーブル設計と言うかな)の話になってくる。
ここまでの話はPHPが関係する部分は無いから、専用板であるDB板が良いと思われ。
書籍スレもあったんじゃないかなぁ。
>>261
本家のマニュアルを読んでください。
0269nobodyさん
2005/07/19(火) 20:22:22ID:???このようにすると$aには<FONT size='2'>hoge</FONT>という文字列が格納
されるわけですが、
$aにサイズ2のhogeという文字列を格納したい場合、
(つまりHTMLを反映させた後の状態を格納したい場合)
どのようにすればいいのでしょうか?
ヒアドキュメント以外で方法はあるでしょうか?
0270nobodyさん
2005/07/19(火) 20:35:41ID:???0271nobodyさん
2005/07/19(火) 20:42:31ID:???サイズが2倍になったhogeを文字列に格納したいってことか?
であればムリ。ヒアドキュメントを使ってもムリ。
いったい、その文字列を格納して何をしたいんだ?
0272nobodyさん
2005/07/19(火) 20:49:27ID:???よく分かんないけど、文字列そのものとその属性値を分離したいってことなら、配列に格納するくらいしか無いんじゃないかな?
そいでもって、出力する時にhtmlとして整形する。
(下のようにsprintfなりヒアドキュメントなりテンプレートエンジンのフィルタなり。xslの方に飛びぬけるのもありか...)
$a = array('str'=>'hoge','size'=>2); // 文字列は'hoge'、属性値は2
echo sprintf("<font size='%d'>%s</font>",$a['size'],$a['str']); // <font>を使って、size=2
echo sprintf("<span style='font-size: %dem'>%s</span>",$a['size'],$a['str']); // <span>を使って font-size: 2em
0273nobodyさん
2005/07/19(火) 20:52:54ID:???0274nobodyさん
2005/07/19(火) 20:59:57ID:???0275nobodyさん
2005/07/19(火) 21:00:39ID:4ZlIiQSxmakeし直して入れてみたんだけど、なんか動かないっぽ。
0277nobodyさん
2005/07/19(火) 21:15:37ID:???どうも、動きました!
eAcceleratorをmakeしなおす時に、make cleanしてなかったためのようでした。
0278nobodyさん
2005/07/19(火) 21:42:38ID:4ZlIiQSx0279nobodyさん
2005/07/19(火) 21:53:53ID:???0280nobodyさん
2005/07/19(火) 22:13:06ID:???マニュアルのその記述はいまいち情報不足。
prefork MPMとかCGI版とApache2との組み合わせで問題はまず起きない。
worker MPMとかperchild MPMと組み合わせた時にまだまだ問題が多いので
実運用では使うなつうこと。prefork MPMでApache2運用つうのも
Apache2の本来の実力じゃないしね。
あと ttp://php.s3.to/ のマニュアルは古いから、余り参照すんな。
Googleでの検索では上位にくるけど。
0281nobodyさん
2005/07/19(火) 22:19:30ID:???とスペース区切りの文字列(フィールドの数は可変)をそれぞれ
$word[0]="aaa"
$word[1]="bbb"
$word[2]="ccc"
・
・
・
と別の変数に格納するのはどうすればよいのでしょうか?
$ketwordのフィールドの数が決まっていればsplitで切り出せるんですが、
可変するため、うまく切り出すことができません。
0283nobodyさん
2005/07/19(火) 22:31:28ID:???0284nobodyさん
2005/07/19(火) 22:31:32ID:???最後の方読んでなかったorz
正規表現使わないんだったら、splitよりexplodeの方が高速だよ。
普通に
$word = explode(' ', $keyword);
でいけるでしょ。
list($word[0], $word[1], ・・・) = split(' ', $keyword);
とかしてない?
0285nobodyさん
2005/07/19(火) 22:32:50ID:???>$ketwordのフィールドの数が決まっていればsplitで切り出せるんですが
splitの使い方間違っていないか?
0287nobodyさん
2005/07/19(火) 22:35:15ID:???コーディングしてるのでアドバイスいただけだらありがたいです。
今、ブログから更新通知Pingを受け取って新着エントリー一覧を表示する
プログラムを書いてます。
http://www.boundless-ocean.ne.jp/archives/000049.htmlあたりを参考に、
PEARのXML-RPC Serverを使ってブログのタイトルとURLを読み出すこと
はできました。
しかし、新しく作成されたエントリーのタイトルやURLをどうやって読み出せば
良いのか分からないのです。
普通のPingサイトだと(Myblog japanとか)個別にエントリーのタイトルとURL
も表示できているので、方法はあると思うんですが・・
よろしくお願いします。
0288281
2005/07/20(水) 02:03:20ID:???レスありがとうございます。
splitで切り出したフィールドの扱いを勘違いしていました。
フィールド数が可変の場合はcount()でフィールド数を取得すれば良かったんですね・・・
$word = explode(' ', $keyword);
$cnt = count($word);
$cnt = $cnt -1;
for ($i = 0; $i <= $cnt; $i++) {
$word[$i] の処理;
}
のような感じで出来ました。
0289287
2005/07/20(水) 02:21:48ID:???RDFを読み出して、新しく作成されたエントリーのタイトルやURLを取得することにしました。
スレ汚しすまそ。
0290238
2005/07/20(水) 05:13:11ID:nMj8v/eeご指導ありがとうございます。
では、とりあえずあまり深く考えずに冗長性を持たせた構造にして、
正規化(←この概念を忘れてました!ありがとう!)に気をつけてやってみます。
あまりシビアでコンパクトにしてのちのち身動き取れなくなって困るよりも、
余裕を持って適当(?)に作ったほうが「大は小を兼ねる」と考えちゃって良い…みたいですね。
0291nobodyさん
2005/07/20(水) 07:10:35ID:???誰も何も言わないからか、凄い気になるんだが。。。
>>238は
・PHP+MySQLでwebアプリを作ってるが、DBについての基礎知識や経験が無い
・ド素人の状態から一人で学んで一人で開発して周りに誰にも質問できる人がいない
にも関わらず
・第一弾で作ったシステムには既に数十社の顧客がいる
・月商も>>251の給料の3〜4ヶ月分くらいはある。
のんだよな?
結構突っ込みどころ満載な気がするんだが。。。そうでもないのか?
くだらねぇ質問スマソ
0296nobodyさん
2005/07/20(水) 11:12:39ID:???0297nobodyさん
2005/07/20(水) 11:16:54ID:???例えばkey=value1のときはfile1をincludeして、key=value2のときはfile2をincludeすると言うのはどうやるのでしょうか?
ページは変わってもサイトの一部分だけしか変える必要のないときなどに使いたいのですが実際にどうすれば良いのか分かりません。
0298nobodyさん
2005/07/20(水) 11:20:52ID:???switch ($_GET['key']) {
case 'value1': require_once('file1.inc.php'); break;
case 'value2': require_once('file2.inc.php');break;
…
}
0299nobodyさん
2005/07/20(水) 11:34:41ID:fiiwUfZg配列 $hairetu から「yahoo」という文字を検索し、見つかった配列番号(?)を取得
と言うのはどうやるんですか?$hairetu には1000行くらいあるとします。
0300nobodyさん
2005/07/20(水) 11:43:58ID:???0301nobodyさん
2005/07/20(水) 11:50:15ID:???0302nobodyさん
2005/07/20(水) 11:51:19ID:???あー!!array_search()ですか!!
あると思ったんだけどググっても見つからずに悩んでいました。
のどに詰まっていた納豆がスッキリ胃に入っていきました。トンクス
0303nobodyさん
2005/07/20(水) 12:06:50ID:AeK1ZPXKスキルは C COBOL VBA SQL 位しかないもので。
PHP以外にいろいろありますが、皆さんがPHPやってる理由を
聞かせて頂けるとありがたいのですが
0304nobodyさん
2005/07/20(水) 12:10:54ID:???0305nobodyさん
2005/07/20(水) 12:17:52ID:???あると思ったのならググらずにマニュアルの配列関数見ればいいのに
http://jp2.php.net/manual/ja/ref.array.php
0306nobodyさん
2005/07/20(水) 12:23:37ID:???それをファイルをincludeさせたい部分に書くだけですか?
なんだか色々調べててフレームワークとかセッションとか出てきたんですが、これらは関係ないのでしょうか?
0309299
2005/07/20(水) 14:10:38ID:fiiwUfZgarray_search() って完全一致じゃないと駄目なんですね。
部分一致でも検索できる方法ありますか?
例えば、hensu[10] = ヤフーショップ の場合に、 ヤフー だけの検索で引っかかって欲しいんです。
0312nobodyさん
2005/07/20(水) 15:10:47ID:???<form method='POST' action='hoge.php'>
<input type='image' name='kbn' value='1' src="hoge1.gif">
<input type='image' name='kbn' value='2' src="hoge2.gif">
</form>
という2つのイメージボタンを持ったフォームで
どっちのボタンがクリックされたかを'hoge.php'で取得するには
どうしたらよいでしょうか?
'hoge.php'で$_POST['kbn']がNULLになってしまうので困っています;
どうかお助けください。
0313nobodyさん
2005/07/20(水) 15:21:59ID:???なんかinput type='image'はvalueは無効みたいですね。
nameを変えて座標がやってくるかどうかで判断しなくちゃですね。
他にいい方法っありますか?
0315nobodyさん
2005/07/20(水) 15:24:26ID:???俺の環境ではちゃんと取得できた
var_dump($_POST);
で
array(3) {
["kbn_x"]=>
string(2) "47"
["kbn_y"]=>
string(2) "53"
["kbn"]=>
string(1) "1"
}
0316nobodyさん
2005/07/20(水) 15:24:42ID:???0317nobodyさん
2005/07/20(水) 15:25:22ID:???----------
<form method='POST'>
<input type='image' name='kbn' value='1' src="hoge1.gif">
<input type='image' name='kbn' value='2' src="hoge2.gif">
</form>
<?
echo $_POST['kbn']."<br>\n";
print_r($_POST);
?>
----------
0318nobodyさん
2005/07/20(水) 15:31:42ID:???IE6 + PHP5.0.4 ならNGだった
0319nobodyさん
2005/07/20(水) 15:38:30ID:???for($i=○;$i<=×;$i++){
echo $array[$i];
}
と言うループでやっていましたが、もっとスマートな方法ありますか?
0320nobodyさん
2005/07/20(水) 15:44:01ID:???あっそれもいいかも
でも、buttonってsubmitできましたっけ
onClick='javascript:this.submit()'すれば
いいと思うけど javascriptは使わないポリシーなので
申し訳ない。
自分の環境ではやっぱり
$_POST['kbn_x']はとれても$_POST['kbn']はとれません。
これってPHPの環境変数の設定の違いでしょうか?
申し遅れましたがPHPのVerは4.3.10なんですれど。
0322315
2005/07/20(水) 16:24:06ID:???IEだとだめじゃ
0323nobodyさん
2005/07/20(水) 16:28:36ID:???0324nobodyさん
2005/07/20(水) 16:31:53ID:???割と有名な問題だから検索すれば対策みつかるよ。
0325nobodyさん
2005/07/20(水) 17:00:43ID:???「x1xx」とか「,2dd」を「1」「2」にしたいです。
0328>>291
2005/07/20(水) 19:00:55ID:e5fXpd1fありがとう
0329nobodyさん
2005/07/20(水) 19:17:11ID:???「―ソЫ�\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭�x�x」
を送信すると$_POSTで取ったときに'\'(C5)が付いてくるのって
charsetを変えずにうまいこと解決するには
どのような対策がベストなのでしょうか?
0331nobodyさん
2005/07/20(水) 22:43:59ID:0VkkmhCLと言う様な記事に遭遇しました。、
header("Content-Type: text/html; charset=文字コード");
header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");
header("Last-Modified: ". gmdate("D, d M Y H:i:s"). " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
↑の文章で
「header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");」
この時間の意味は何でしょうか?
解説によって時間が異なったりします。
■ このスレッドは過去ログ倉庫に格納されています