【PHP】下らねぇ質問はここに書き込みやがれ 32
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/11/06(月) 22:07:16ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
【前スレ】
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しない)
・ サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0142nobodyさん
2006/11/08(水) 22:07:43ID:???DB使う利点が分からないならあえて使う必要もないかと
0143nobodyさん
2006/11/08(水) 22:10:30ID:???0144138
2006/11/08(水) 22:19:37ID:???Mysqlを使いたいと思っておりますが10万件を超えると運用に耐え難いと聞きました。
アンケート件数がたくさんあるので10万は軽く超えてしまいます。
この場合、アンケート枚にデータファイルを別々に作成、さらに時間毎にデータをわけて記録
することでMysqlでデータをすべて記録するよりも早いかと考えております。
この考えは間違っておりますでしょうか?
0145nobodyさん
2006/11/08(水) 22:26:00ID:???0146nobodyさん
2006/11/08(水) 22:26:19ID:???0152145
2006/11/08(水) 22:34:47ID:???0153nobodyさん
2006/11/08(水) 22:38:59ID:???0154nobodyさん
2006/11/08(水) 22:45:31ID:???01551
2006/11/08(水) 22:59:23ID:???|
∩___∩ |
| ノ _, ,_ ヽ (( | プラプラ
/ ● ● | (=)
| ( _●_) ミ _ (⌒) J ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0156nobodyさん
2006/11/08(水) 23:27:24ID:???0157nobodyさん
2006/11/08(水) 23:32:27ID:???こっちでやれ
http://pc8.2ch.net/test/read.cgi/php/1158647441/l50
0158nobodyさん
2006/11/08(水) 23:37:37ID:???0159nobodyさん
2006/11/08(水) 23:54:09ID:???開発者の習熟度とか好みとか必要な機能で選べばヨロシ
0160nobodyさん
2006/11/08(水) 23:54:42ID:???もう寝るwっうぇw
0161nobodyさん
2006/11/09(木) 00:06:04ID:???1:PHPの書き出しを、 <?php ?> にするのと <? ?>にするのとあまり変わりないのですが、
<phpとした方が良いのでしょうか?それとも関係ないのでしょうか?
2:printとechoとともに表示されますが、どちらで書いた方がいいのでしょうか?
自分の場合は混雑しています。
3:requireとrewuire_onceって特に違いありませんよね?
リファレンスも見たのですが、実用を考えるとどうした方が良いのかな?
っと思い、質問した次第です。
0162nobodyさん
2006/11/09(木) 00:19:08ID:???10万件超えると耐え難いってのは検索速度が遅くなるから、って話。
で、その理屈で言えばファイルの場合は1万件以下ですでに遅くて耐え難いです。
ファイルで分割ができるならDBでもテーブル分けちゃえば解決するよ。
0163nobodyさん
2006/11/09(木) 00:24:43ID:???1.機能としては何も変わらないです。
問題は<?hoge ?>ってのを使う仕組みはPHP以外にもあるってことで(XMLなど)
そういう別の仕組みを併用する場合に<? ?>では誤動作して困るので<?php ?>が推奨されてます。
その辺をちゃんと踏まえて、問題ないのが分かってるんであれば<? ?>も便利だと思います。
2.一緒です。書き慣れた方を使えばいいでしょう。
それが両方あるのは、他の言語で慣れた方を使えるようにという配慮です。
3.onceが付くと多重読み込みを防止できます。何度も繰り返して読み込みたい場合以外は
誤動作防止・処理速度高速化のためにもonceの方を使うのが推奨されます。
例えば a.php と b.php でそれぞれ c.inc を読み込むようにしていた場合に、
a.php で b.php を読み込むような処理にしても c.inc が2度読み込まれるのを防げます。
0164nobodyさん
2006/11/09(木) 00:36:15ID:???デーモンでは無理みたいです。
CD−Rに焼かないと駄目みたいなのですが、普通に焼くだけでは動きませんでした。
どのように焼けば起動しますか?
ど素人ですが、ご教授宜しくお願いします。
0165nobodyさん
2006/11/09(木) 00:39:00ID:???2については下記を読めとマニュアルにあるわけだが。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
0168161
2006/11/09(木) 01:18:59ID:???ありがとうございます。非常に納得しました。
とりあえず、1については<?php?>で書くようにします。(少なくとも1行目は)
また、3についても意味が分かりました。
きちんとご説明いただきありがとうございました。
0169nobodyさん
2006/11/09(木) 01:23:09ID:???http://itpro.nikkeibp.co.jp/article/COLUMN/20051128/225271/
0172nobodyさん
2006/11/09(木) 04:42:44ID:???0173nobodyさん
2006/11/09(木) 05:08:44ID:???0174nobodyさん
2006/11/09(木) 05:56:01ID:???体感的に爆発的に変わるものじゃないでしょ。
PHPと他の言語を比べてもそれは言える話だけどね。
0175nobodyさん
2006/11/09(木) 06:06:59ID:???変数処理の速度とループの速度の性能差は体感レベルで分かるくらい差が出るよ。
マシン性能のおかげで違いなんて出ないとか言ってるのはちゃんとベンチ取ってないか単なる詭弁だとオモウ
0176nobodyさん
2006/11/09(木) 06:18:48ID:???説明させんじゃねえ、市ね
0177nobodyさん
2006/11/09(木) 06:20:19ID:???それに比べればゴミみたいなもんだったが、今じゃアプリの速度=体感速度だしな。
0180nobodyさん
2006/11/09(木) 07:13:06ID:???PHP5.1.4 4.3sec
PHP5.2.0 4.1sec
5.2で少し速くなってた(Win32 Apache2.0 PenD 3.0GHz)
0181180
2006/11/09(木) 07:25:50ID:???http://www.thinkit.co.jp/cert/compare/2/2/2.htm
PHP4.4.4をダウンロードしてテストしたら9.2secでした
結果
PHP5.2>PHP5.1>>PHP4.4
0183nobodyさん
2006/11/09(木) 09:35:31ID:???0184nobodyさん
2006/11/09(木) 10:25:37ID:???中身のファイルをすべて削除するスクリプトってない?
0185nobodyさん
2006/11/09(木) 10:27:48ID:???0186nobodyさん
2006/11/09(木) 11:05:58ID:???現在のページのファイルって、どのように取得したら良いのでしょうか?
$_SERVER["REQUEST_URI"]からファイルを抽出できそうですが、
index.htmlを省略された場合とかダメですよね。
0187nobodyさん
2006/11/09(木) 11:17:59ID:???0190nobodyさん
2006/11/09(木) 11:35:43ID:???態態PHPで書く理由が分からん
0191nobodyさん
2006/11/09(木) 12:17:59ID:???多分それ本人じゃないから
0192nobodyさん
2006/11/09(木) 12:19:58ID:???basename($_SERVER['SCRIPT_FILENAME']);
を使おうと思うんですがどうでしょう?
0193nobodyさん
2006/11/09(木) 12:34:34ID:???0194nobodyさん
2006/11/09(木) 14:15:41ID:???ベンチをとって、勝ったの負けたの騒いでるキモヲタは全員氏んどけ。
そんな無意味なベンチはパソコンオタクのオナニー趣味でしかない。
0195nobodyさん
2006/11/09(木) 14:20:14ID:???0198nobodyさん
2006/11/09(木) 16:05:22ID:???<ahref="profile.html">プロフィール</a>
<ahref="inquiry.html">お問い合わせ</a>
上記のタグがtemplete.phpに記述されているとします。
これを配列に代入して<?=$templete[$i]?>で表示するようにしたいのですが、
templete.phpのソース内にコードを追記せずに実現したいのです。
つまり、hyoji.phpに<?=$templete[$i]?>(forで$iを表示する)を記述して
表示出来るような。
フォームから配列に代入して表示するのは出来るのですが、
そうじゃない方法はどうすればいいかと思い、質問しました。
0201198
2006/11/09(木) 16:37:25ID:???ちょっと説明づらいのですが、1つのファイルから特定のソースを配列に
代入して表示したい、と言うことです。
例えば、>>198のタグがtemplete.phpに記述されているとします。
表示用のhyouji.phpには
<?php
for($i=0;$i<$max_array;$i++){
echo "$templete[$i]"."<br>";
}
?>
というようなソースが入っていて、これをブラウザで表示すると
トップページ
プロフィール
お問い合わせ
と表示されればいいのです。上記のコードではforで回しているので
順番に表示されますが、
<?=$temple[0]?><?=$temple[2]?><?=$temple[1]?>
こういう風に書いていくと、表示位置も入れ替えられるので、便利だと思いまして。
0202nobodyさん
2006/11/09(木) 16:47:36ID:???まあ好きにすればいいけどさぁ
0203nobodyさん
2006/11/09(木) 17:07:00ID:???0204nobodyさん
2006/11/09(木) 17:08:30ID:???templete.phpを
index.html,トップページ
profile,プロフィール
inquiry.html,お問い合わせ
として、
$template = file('templete.php'); foreach($template as $line){
$items = explode(",", $line);
echo "<a href=\"{$items[0]}\">{$items[1]}</A>";
}
とか。
0205204
2006/11/09(木) 17:09:59ID:???templete.phpは
index.html,トップページ
profile.html,プロフィール
inquiry.html,お問い合わせ
の間違え
0206198
2006/11/09(木) 17:11:55ID:???例えば別ファイルにすると、ファイル数が増えるのと
余計なタグが入っていた場合、正常に表示されなくなりますよね?
fileで読み込むと>>198のソースだけなら良いのですが、その後を考えると
反応的ではないと思ったんです。なので
$templete[]="<ahref="index.html">トップページ</a> ";
こういう風に入ってくれれば出力しやすいし、出力する場所も選べるので
便利なのですが、いまいちソースの組立が上手くいかなくて。。
0207206
2006/11/09(木) 17:12:30ID:???0209nobodyさん
2006/11/09(木) 17:25:20ID:???ヽ(・∀ ・)ノ
(( ノ( )ヽ ))
< >
0210nobodyさん
2006/11/09(木) 20:52:53ID:???他の人は逆に外に出すべきだと考えると思うぞ。
表示内容を変えるたびにコードをいじるほうが不自然。
余計なタグ云々なんて、いくらでも整形できるだろうが...。
0212nobodyさん
2006/11/09(木) 21:58:04ID:???実際に運用してみると、変わりそうで変わらないこと、結構あるよ。
先々のことをよく考えて固定で作った方がわかりやすいし、簡単だよ。
汎用的に作ればかっこいいけどさ。
ファミコン対パソコンみたいなもんだよ。
0213nobodyさん
2006/11/09(木) 22:33:03ID:???0214nobodyさん
2006/11/09(木) 22:58:24ID:W4pI1qAG0215nobodyさん
2006/11/09(木) 23:05:30ID:???PHPマニュアルのdateのところよ〜く見てみて。
答えが載ってるから(リンク先のmktimeも熟読してね)
0216nobodyさん
2006/11/09(木) 23:09:17ID:W4pI1qAG探してるけど見つからないから聞いてるのに・・・いけず・・・
0217nobodyさん
2006/11/09(木) 23:10:22ID:W4pI1qAG0219nobodyさん
2006/11/09(木) 23:23:10ID:W92sr8u2htmlのソースを書き出したテキストファイルからの特定語句の
抜き出しについてお聞きしたいことがあります。
$kensaku="[ァ-ヴー][ァ-ヴー・]+|[a-zA-Z0-9\.\-\s]*[a-zA-Z][a-zA-Z0-0\.\-\s]*";
$fp=fopen("source.txt","r");
$fr=fread($fp,filesize("source.txt"));
$str="$fr";
$word = array();
while(1){
$kensaku2 = mb_ereg("$kensaku",$str,$match);
if($kensaku2 == FALSE){
break;
}else {
$match = $match[0];
array_push($word, $match);
}
$pos = strpos($str, $match);
$str = substr($str, $pos+$kensaku2);
}
print_r($word);
fclose($fp);
とすると、ソース内のカタカナやアルファベットの語句は抜き出せるのですが・・
title="IPアドレス" class=crosslink
title="Internet Protocol Address" class=crosslink
上記のように、 ソースに含まれる title=" " class=crosslinkの" "の中
の語句のみを抽出したいのですが、うまくいきません。
どのようにすれば良いでしょうか?
0220nobodyさん
2006/11/09(木) 23:23:52ID:???0221nobodyさん
2006/11/09(木) 23:25:19ID:W4pI1qAG$date = 20060101;
echo date('Y/m/d H:i:s', strtotime($date));
echo '<hr>';
echo date('Y/m/d H:i:s', mktime(0,0,0,date('d',strtotime($date))+40,date('m',strtotime($date)),date('Y',strtotime($date))));
0222nobodyさん
2006/11/09(木) 23:25:58ID:???preg_match('/title="([^"]*)"/', $str, $match)
echo $match[1];
0223nobodyさん
2006/11/09(木) 23:30:45ID:???これで$dayには20070110が格納されるよ
dateは日付の整合性チェックをしてくれないけど
mktimeはしっかり者だからちゃんとチェックしてくれる
ちなみにPHPって感じの変数名も使えるのな
0224219
2006/11/09(木) 23:45:08ID:W92sr8u2いえ、title=" "ではなく、title=" "のあとに「class=crosslink」が
くる部分・・title=" " class=crosslink の" "の語句のみを取得した
いのです。そこでつまずいておりまして。。。
0225nobodyさん
2006/11/09(木) 23:50:14ID:???対象文字列は何で、結果何が取り出せてればいいんだ
0226nobodyさん
2006/11/10(金) 00:02:59ID:???じゃあ
preg_match('/title="([^"]*)" class=crosslink/', $str, $match)
echo $match[1];
でいいんでは。
0227219
2006/11/10(金) 00:12:09ID:0rGbXNdx状態で、" "の中身だけが欲しいのです。
0228nobodyさん
2006/11/10(金) 00:17:16ID:???0229nobodyさん
2006/11/10(金) 00:19:04ID:???0230nobodyさん
2006/11/10(金) 00:25:43ID:???0231219
2006/11/10(金) 00:26:22ID:0rGbXNdxpreg_match('/([^"]*)/', $word, $match);
みたいな感じで、さらに検索をかければ良いのでしょうか?
0232nobodyさん
2006/11/10(金) 00:28:13ID:???0233nobodyさん
2006/11/10(金) 00:29:55ID:LNYLSoFr「プライマリーキーを定義すべきです」
と編集、削除ボタンが「?」になるのですが、原因は何なんでしょうか?
0236nobodyさん
2006/11/10(金) 00:39:41ID:???4桁など桁数を指定して生成するにはどうしたらいいのでしょうか?
0238219
2006/11/10(金) 00:42:26ID:0rGbXNdx実行しましたよ。Array ( [0] => title="IPアドレス" class=crosslink[1] =>・・
しかし、こうなってしまいました。。。
0240nobodyさん
2006/11/10(金) 00:58:24ID:9aG6gw2rあ、親切な方だ。ありがとうございます!
0241219
2006/11/10(金) 01:10:33ID:0rGbXNdxわざとなんてことはないですよ。
echo $match[1]; で出力しようとすると何も表示されないのです。
それで、print_r($word); で出力しています。
0242nobodyさん
2006/11/10(金) 01:13:52ID:???なんか環境がおかしいんじゃないの?
$str = ' title="IPアドレス" class=crosslink ';
preg_match('/title="([^"]*)" class=crosslink/', $str, $match);
echo $match[1];
で結果が
IPアドレス
■ このスレッドは過去ログ倉庫に格納されています