トップページ⇒php
1001コメント287KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/09(土) 14:51:11ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/

◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
05875582008/02/19(火) 03:59:21ID:???
本来ならこう書くけどね

function str_sizeof($string) {
$string = "";
$string_count = 0;

$string = preg_split("`.`", $string);
$string_count = count($string)-1;
return $string_count;
}
05885582008/02/19(火) 04:00:51ID:???
間違えた
function str_sizeof($string) {

$string_count = 0;
$string = preg_split("`.`", $string);
$string_count = count($string)-1;
return $string_count;
}
0589nobodyさん2008/02/19(火) 04:32:57ID:???
しつこいわ。もう寝ろよ。
0590nobodyさん2008/02/19(火) 07:13:14ID:???
558に一票だ。
短く書いたら処理速度も速くなると勘違いする初心者が多くて困る。
0591nobodyさん2008/02/19(火) 07:20:51ID:???
>>586
$string = preg_split("`.`", $string);
$string = count($string)-1;
return $string;



$string = preg_split("`.`", $string);
return count($string) - 1 ;
05925312008/02/19(火) 07:35:36ID:???
>>566
すまん
スレだから短くしてただけで
普段はわかりやすい名前の変数に代入しまくりだよ
あと、>>556のコードはコピペだ
05935142008/02/19(火) 08:00:00ID:OsGt77+r
おはようございます。
0594nobodyさん2008/02/19(火) 08:27:59ID:???
どこに逝っても人間臭いスレはあるもんですね。
0595nobodyさん2008/02/19(火) 09:26:39ID:???
俺も558に1票だな
returnにはあんまり書きたくないな
0596nobodyさん2008/02/19(火) 10:15:05ID:???
荒らし頑張ってるなぁ。
0597nobodyさん2008/02/19(火) 10:27:12ID:???
PHPの変数への代入速度の遅さ知らないのかな?
ループ処理する場合は代入した方がはやいけどね。
0598nobodyさん2008/02/19(火) 10:38:21ID:???
そもそも難癖つけたいだけだからほっときなさい。
本当に仕事でやってる人がチームだの上司だのもっともらしい言葉使ってるけど出してる技術は低レベルだし
低脳土方、オナニーコード、他の方法全否定、暴言連発で仕事でやってる人の言葉じゃないのは丸わかりでしょ。
0599nobodyさん2008/02/19(火) 10:44:02ID:???
荒らし特有の連投と自演もだ。
0600nobodyさん2008/02/19(火) 11:02:23ID:???
558に加担するわけじゃないけど
returnにあれこれ長い処理してるコードは
あまりみないよ
ルールとして決まってるわけではないけど
returnのあとの処理は1関数(オブジェクト経由あり)、1変数が多いね
0601nobodyさん2008/02/19(火) 11:03:45ID:???
558の場合は言い分じゃなく完全に荒らし化してる言動や連投がまずいんだ。
0602nobodyさん2008/02/19(火) 11:07:29ID:???
で、可読性はともかく、負荷は軽くなるの?
0603nobodyさん2008/02/19(火) 11:11:56ID:???
変数を多様すればコードはみやすくなる

変数を使わないとコードはみにくい(関数の中に関数が深く入り込むコードになる)
↑
if文の中にif文が何個も深く入りこむコードと同じ。みにくい
0604nobodyさん2008/02/19(火) 11:13:03ID:???
>>602
当人も負荷の増加が小さいから無視していいと言ってるだろ。
逆に言えば、増えることはあっても減ることはない。
コードすべてに1行で済むのを5行10行と増やしてどうなるかは言うまでもないでしょう。
0605nobodyさん2008/02/19(火) 11:15:16ID:???
>>602
負荷と生産性どっちを優先するかは
プロジェクトによって違う

生産性の高いコードなら可読性
PHP使うくらいだから生産性の高いプロジェクトでコード書くことが多いだろう
0606nobodyさん2008/02/19(火) 11:20:11ID:???
新しくプロジェクト参加した人は可読性のいいコードがいいだろうな
解析時間が短縮される
毎度毎度、1行プログラミングに自己満足されるコードは勘弁
0607nobodyさん2008/02/19(火) 11:22:09ID:???
バグ探しも可読性が有利だよな
0608nobodyさん2008/02/19(火) 11:23:35ID:???
>>604,605

>>558
>count関数の中に関数いれるのは 処理が重くなる

って書いてあるけど、これは間違ってことでOK?
0609nobodyさん2008/02/19(火) 11:26:33ID:???
>>608
ループ処理のこといってるんじゃない?

for($i=0;$i<=count($a);$i++)
重い

$a = count($a);
for($i=0;$i<=$a;$i++)
軽い
見やすい
0610nobodyさん2008/02/19(火) 11:27:31ID:???
どっちにしろコメント添えるなら >>591 で足りるな。
それに >>588 のコードが否定されてるんじゃなく「それもあり」という前提になってんのに
自分のだけを認めろと連投で大騒ぎする588自身が否定されてるだけだしな。
0611nobodyさん2008/02/19(火) 11:29:05ID:???
>>608
>>609だと毎回コールされるからね。
だから別に関数内にいれようがコール1回なら重くならない。
0612nobodyさん2008/02/19(火) 11:31:18ID:???
an httpdを使ってXP上でテストをしてるんですが
この時にgetenv('SERVER_NAME')を取得するとコンピュータ名が返るのは仕様ですか?
後、スクリプトのパス自身を取得したい場合は
"http://".getenv("SERVER_NAME").getenv("SCRIPT_NAME") でいい大丈夫でしょうか。
0613nobodyさん2008/02/19(火) 11:33:20ID:???
>>609
それは「count関数を何度も呼び出せば遅くなる」であって
「count関数の中に関数いれるのは 処理が重くなる 」からではないよね。

単に >>558が間違ってるだけなら、それで良いです。どうもありがと。
06145582008/02/19(火) 11:33:46ID:???
>>612
"http://"
なんで " でくくるんだよ!
'http' だろうが

"よりも’の方が早いんだよ
06156122008/02/19(火) 11:35:35ID:uMI3ux4S
>>614
それは今回の挙動に関係あるんですか?
0616nobodyさん2008/02/19(火) 11:37:03ID:???
>>615
聞く相手を見分けるのもプログラマとして必要な資質だと思う。
0617nobodyさん2008/02/19(火) 11:38:36ID:???
ループの中にcount入れても毎回コールされるなんてことはなくて別に重くならない
って結論前に出てなかったっけ?デジャブ?
処理を軽くする10の方法みたいなところで取り上げられてていろいろ突っ込み入って
結局有意な差は出ないってなってた気がするんだけど
06185582008/02/19(火) 11:38:36ID:???
>>615
俺の考えの何が正しくて間違いなのか
ここで書くとよくわかるからさ。それだけだ
06196172008/02/19(火) 11:40:44ID:???
ループの「条件の」中に だった
ループの「中身の」中に入れたら毎回コールされなきゃだ
0620nobodyさん2008/02/19(火) 11:41:43ID:???
>>619
条件文は毎回評価されないとおかしくないか?
0621nobodyさん2008/02/19(火) 11:42:23ID:???
>>618
それは今回の
0622nobodyさん2008/02/19(火) 11:44:07ID:???
条件の中にcount入れたら毎回コールされなきゃおかしいでしょ?
でも実際そんなにパフォーマンスは変わらん。何万回も回すなら別だけど。
0623nobodyさん2008/02/19(火) 11:47:56ID:???
コードの行数が長くなることが嫌なやつは
rubyの方がいいんじゃない
わかりやすい変数つかわなくても、いりくんだ関数も一目でわかるよ
06246172008/02/19(火) 11:52:50ID:???
12 PHP optimization tips - alex.moskalyuk
ttp://www.moskalyuk.com/blog/php-optimization-tips/1272
とその日本語訳がらみでツッコミ入ってた気がするんだよ。思い出せないけど。でも

パフォーマンスのためにPHPのfor文でcountを使うべきではない
ttp://paranoid.dip.jp/kaworu/2008-01-28-2.html
ってのも見つけたし俺の勘違いだったみたい
0625nobodyさん2008/02/19(火) 11:56:33ID:???
関数の中に関数がはいる言語使用がクソなんだ
rubyみたいに
関数.関数

で呼べれば見やすい
0626nobodyさん2008/02/19(火) 11:58:35ID:???
>>624
でなおしてこい!
おまえにPHPなんぞ使う資格はないわw
0627nobodyさん2008/02/19(火) 12:01:07ID:???
>>624
下のURLのやつ、個数が増えると何で差が少なくなるんだろうね。不思議。
$array[$i] で $i の値が大きくなるとアクセスが遅くなるのかな。
0628nobodyさん2008/02/19(火) 12:04:21ID:???
パフォーマンスのためにPHPのfor文でcountを使うべきではない
↑
常識
06296172008/02/19(火) 12:08:30ID:???
PHP Benchmark tests
http://www.php.lt/benchmark/phpbench.php
こっちだと事前に計算しておけば9倍速い ってなってるけどね
0630nobodyさん2008/02/19(火) 12:10:41ID:???
全角厨には言われたくないなw
0631nobodyさん2008/02/19(火) 12:24:36ID:???
>>612
$_SERVER見るのが定石。
とりあえず var_dump($_SERVER) してみれば

http://jp.php.net/manual/ja/reserved.variables.php#reserved.variables.server

0632nobodyさん2008/02/19(火) 12:41:50ID:???
>>628
えっ?
PHPってそんな情けない言語なの?

それじゃMatzが糞言語というのも理解できるなぁw
0633nobodyさん2008/02/19(火) 12:46:21ID:???
ていうかこんな低級な議論をしている言語ってPHPくらいだよね。冗談抜きにしてさ。
0634nobodyさん2008/02/19(火) 12:48:50ID:???
もう完全にスレ違いだしそろそろ落ちつけ。
0635nobodyさん2008/02/19(火) 12:54:42ID:???
PHP使ってるヤツは自分が正しいと思ってる。
0636nobodyさん2008/02/19(火) 12:55:03ID:???
>>635
参考になる
0637nobodyさん2008/02/19(火) 12:56:50ID:???
>>633
PHPはそれなりに好きだが同意。
0638nobodyさん2008/02/19(火) 14:25:30ID:rf+/c0h3
$uho = array("アルファベット","ひらがな","漢字");
$uho[0] = array("A","B","C");

print $uho[0][1];//B

のように現在記載していますが

$uho = array("アルファベット","ひらがな","漢字");
$uho[0][] = "A";
$uho[0][] = "B";
$uho[0][] = "C";

print $uho[0][0];

のように記述したいのですが何も出力されません。
何か他に記述法はありますか?
0639nobodyさん2008/02/19(火) 14:30:52ID:???
>>638
>$uho = array("アルファベット","ひらがな","漢字");
の意味がよくわからんけど

$uho[0] = array();
$uho[0][] = "A";
$uho[0][] = "B";
$uho[0][] = "C";

print $uho[0][0];
ではだめなん?
0640nobodyさん2008/02/19(火) 14:33:55ID:???
>>638
ini_set('display_errors', 'on');
$uho = array("アルファベット","ひらがな","漢字"); 
$uho[0][] = "A"; 
$uho[0][] = "B"; 
$uho[0][] = "C"; 
print $uho[0][0]; 
0641nobodyさん2008/02/19(火) 14:39:24ID:???
無視するのが正解だろ
低級な議論を持ち出す奴は中の人が低レベルということでFA出ている
0642nobodyさん2008/02/19(火) 14:41:09ID:???
まだいたのか。
06435142008/02/19(火) 14:44:42ID:OsGt77+r
どうも。プログラミング暦2日目です。

$stop_word=array('ボケ','死ね','馬鹿');
$num=count($stop_word);
for($i=0;$i<$num;$i++){
if(strstr($message,$stop_word[$i])==true){
print("禁止語が含まれています。");
exit;

上から4行目のstrstrってのが何の働きをするのか理解できません。
マニュアルを見たら 文字列が最初に現れる位置を見つける なんのことやらさっぱり
よろしくお願いします。
0644nobodyさん2008/02/19(火) 15:19:37ID:???
>>643
>文字列が最初に現れる位置を見つける
これは多分書いた人がstrposの説明と混同してる。

print strstr('親馬鹿子馬鹿', '馬鹿');
で帰ってくるのは「馬鹿子馬鹿」。1つめの馬鹿が見つかった位置以降の文字列を返してる。
つまり「最初に現れた位置以降の文字列を返す」のがstrstrの機能。
これで禁止ワードがあったときに strstr($message,$stop_word[$i])==true が真になる。

文字列発見するだけならstposのがいいけどまあそれはあとでいい。
0645nobodyさん2008/02/19(火) 15:23:28ID:???
>643がわからないのは
文字列==ture
という比較の不思議さじゃないかと推測
0646nobodyさん2008/02/19(火) 15:24:19ID:???
マニュアルをもっとよく読め 返り値で何返すか等
日本語の説明をしろってことならしねよ
0647nobodyさん2008/02/19(火) 15:32:26ID:???
>>645
確かに真偽値は最初は混乱するわな。

FALSEになるのは何も代入されてない変数、空文字列、文字の0、数字の0あたりかな。
TRUEがその逆。何か代入されていて、中身が0ではなく、空文字列でもない。
つってもいきなり始めたらわからんよなー

>>646
おつかれさん。
0648nobodyさん2008/02/19(火) 15:48:05ID:???
テーブルの表示をさせる場合と、編集させる場合でいちいち別のコード書きたくないんだけど
この辺楽に構築できる方法ありませんか?
smartyとか持ってそうなんだけど見つからない。
06496382008/02/19(火) 15:53:16ID:rf+/c0h3
ちなみにPHP5です。

>>639
複数行ログがあるファイルから一度のループでアルファベット、漢字、ひらがなのデータを分類するスクリプトを作成しています。
書いていただいた方法では駄目でした。

>>640
エラーは出ませんでした。念のためarray_pushを利用してみましたがやはり駄目でした。
06506382008/02/19(火) 16:09:29ID:rf+/c0h3
すいません、>>639で試したら解決していました。
お騒がせしました。
ありがとうございました。
0651nobodyさん2008/02/19(火) 16:12:48ID:???
そりゃそうだろう。
>$uho = array("アルファベット","ひらがな","漢字");
これじゃ $uho[0] は "アルファベット" っていう文字列型なのにそれを配列として扱おうとしてんだし
$uho[0] を配列として定義しないと通らんよ。
06526382008/02/19(火) 16:17:14ID:rf+/c0h3
>>651
勉強になりました。
$uho = array("1","2","3")のように数字だけの場合は動いてしまっていたので勘違いしていました。
0653nobodyさん2008/02/19(火) 17:11:42ID:p5AS/DW/
今、PHP5の勉強をしています。
SQLiteからデータベースのテーブルを呼び出すところで、参考にしている書籍の
スクリプトの書き方がわからなかったので、教えていただけませんか?
下の、3行目なのですが、
$rs=sqlite_query("SELECT * FROM schedule ORDER BY s_date",$db);
では、駄目なのでしょうか?
ORDER BY のあと、何故にクエリが2つも(s_date,s_time)あるのか不思議に思いました。

<?php
$db=sqlite_open("schedule.sqlite",0666,$err);
$rs=sqlite_query("SELECT * FROM schedule ORDER BY s_date,s_time",$db);
?>
<h1 style="background:#cccccc">簡易スケジュール帳</h1>
<table border="1">
<tr>
<th>日付</th><th>時刻</th><th>予定名</th><th>備考</th><th>削除</th>
</tr>
<?php while($row=sqlite_fetch_array($rs)){ ?>
<tr>
<td><?php print($row['s_date']); ?></td>
<td><?php print($row['s_time']); ?></td>
<td><?php print($row['title']); ?></td>
<td><?php print($row['memo']); ?></td>
<td><input type="button" value="削除" onclick="location.href='schedule_delete.php?sid=<?php print($row['sid']); ?>'" /></td>
</tr>
<?php
}
sqlite_close($db);
?>
</table>
0654nobodyさん2008/02/19(火) 17:16:40ID:???
あとはDB板で聞いて。
http://www.net-newbie.com/sqlite/lang.html#select
0655nobodyさん2008/02/19(火) 17:16:48ID:???
そりゃ日付が同じなら時刻順に並べたいからだろ
0656nobodyさん2008/02/19(火) 17:19:47ID:???
http://www.accessclub.jp/sql/10.html
06576532008/02/19(火) 17:20:09ID:p5AS/DW/
>>654
失礼しました。
PHP5に付随する質問でしたので、こちらでよいものと思っていました。

>>655
早速のご回答ありがとうございます。
sort的と言っては、まずいかもしれませんが
優先度を決める為の書き方なのですね!参考になりました。
06586532008/02/19(火) 17:23:01ID:p5AS/DW/
>>656
即レス、感謝です。
ありがとうございました。今後の参考になります!
0659nobodyさん2008/02/19(火) 17:47:17ID:???
>>653 すごいソースだなw本を代えた方がいいよw
0660nobodyさん2008/02/19(火) 18:31:10ID:???
こういうソースみるとイライラしてきて壁殴りそうにならない?
0661nobodyさん2008/02/19(火) 18:42:06ID:UiHW3K4+
ttp://www.harikonotora.net/

こういった画像掲示板サイトはどう作ればいいのでしょうか?
HTMLとCSSのみでは、このようなサイトの製作は難しいと思います。

掲示板に画像を投稿するシステムや
こういったサイトに最適なサーバなどありましたら教えてください。

よろしくおねがいします
0662nobodyさん2008/02/19(火) 18:46:19ID:bsmDlf5I
>>661 てかニコ動に似てるサイトだな
0663nobodyさん2008/02/19(火) 18:58:52ID:???
>>661
ここに載せるということは、もう既にPHPで作ると決めてるということですか?
0664nobodyさん2008/02/19(火) 19:01:10ID:???
僕に恋した君の気持ちをPHPで書いてください。
0665nobodyさん2008/02/19(火) 19:04:56ID:UiHW3K4+
>>663

お返事ありがとうございます。
PHPまたはCGIで製作しようと考えております。

HTML、CSSは一通り理解しているのですがPHPに関しては無知に等しいです

アドバイス等、いただけると幸いです
0666nobodyさん2008/02/19(火) 19:05:26ID:???
ニコ動ってPHPなの?
0667nobodyさん2008/02/19(火) 19:08:38ID:???
>>665
相当なやる気があるなら作れるだろうけど
普通の人がHTMLとCSSは一通り、PHPは無知な状態から作れるものではない。
手ごろなWebアプリ作成から始めることをお勧めするよ
0668nobodyさん2008/02/19(火) 19:08:40ID:???
>>665
皆無ですか。
そんな貴方に私から出来るアドバイスは、少なくともシステム部分に関しては
システム屋へ外注なさるのが早いかと存じます。
0669nobodyさん2008/02/19(火) 19:09:04ID:???
include_path = ".;c:/php/includes;c:/php/pear"

インクルードパスのc:/php/pearに存在するふぁいるのなかでも
インストールしたpear関連のファイル(DB.phpとかMail.php)だけ読み込めないんだけど
この現象何が原因なのでしょうか
0670nobodyさん2008/02/19(火) 19:17:19ID:???
>>666
だろ けっこPHPの事例として引き合いに出されるし
0671nobodyさん2008/02/19(火) 20:10:49ID:???
もっとスキルの高い解答者が欲しいよなぁここ・・・
初心者〜中級者入り口手度のやつしかいねぇ・・・
0672nobodyさん2008/02/19(火) 20:13:45ID:???
そうだな。俺の質問もスルーされたし。
0673nobodyさん2008/02/19(火) 20:16:40ID:???
で、おまえは誰?
0674nobodyさん2008/02/19(火) 20:18:52ID:???
そもそもそんな高いスキル持ってる奴はこんなとここないだろ
0675nobodyさん2008/02/19(火) 21:22:43ID:???
PHP歴8年ですが。。。
ただいまCakePHP慣れきたとこで
symfonyに覚えてます
フレームワーク乱立のおかげで覚えること沢山で困ります
昔はそんなに覚えることなかったのにな
0676nobodyさん2008/02/19(火) 21:54:59ID:???
>>671
スキルの高い解決方法を頼む
0677nobodyさん2008/02/19(火) 22:01:09ID:???
> 昔はそんなに覚えることなかったのにな
PHPに限らないが、

覚えることが少ない言語は
自分で作らないといけないものが多く、

覚えることが多い言語は
自分で作らないといけないところが少ない。
0678nobodyさん2008/02/19(火) 22:27:37ID:bDEijUku
Perlからモジュール版のPHPに移ってきたのですが、
Perlと比べてパーミッションを気にする必要がないようですが、
普段のphpファイルのパーミッションはいくつに設定しておいた方が宜しいでしょうか?
とりあえず、現在は全て777に設定しています。
宜しくお願いします。
0679nobodyさん2008/02/19(火) 22:27:42ID:???
自分で作るから覚える分が少なくて済むが、
既製品で済む場合はそれの使い方覚えないといかんからな。
0680nobodyさん2008/02/19(火) 22:42:39ID:???
>>678
そのままでいいよ。644とか。
phpを通してファイルに書き込むなどといったことをするときは、
当然そのファイルを666とかにしないといけないけど。
0681nobodyさん2008/02/19(火) 23:01:36ID:???
>>669
普通に
include 'DB.php';
とかしてもincludeできないって事?


>>671
ここにスキル高い質問なんて無いだろ
0682nobodyさん2008/02/19(火) 23:37:20ID:???
なんってたってスレタイが「下らねぇ質問はここに書きこみやがれ」だからな。
0683nobodyさん2008/02/19(火) 23:48:52ID:???
ていうか自分がそういう回答者になればいいだけだろ
0684nobodyさん2008/02/20(水) 00:34:07ID:???
質問が無いのにどう回答しろというのだw
0685nobodyさん2008/02/20(水) 00:45:40ID:???
以上、下らねぇ回答の見本です
0686nobodyさん2008/02/20(水) 01:29:19ID:mRMNoFj0
まさに「下らねぇ質問」です。
前から疑問に思ってた事です。

「PHP」の正式名称は「PHP: Hypertext Preprocessor」
つまり「PHP」は「PHP: Hypertext Preprocessor」の略語ですよね。

でも正式名称である「PHP: Hypertext Preprocessor」の先頭にも略語の「PHP」の文字がありますよね。
じゃあこの先頭の「PHP」はさらに正式名称があるわけですか?
■ このスレッドは過去ログ倉庫に格納されています