【PHP】下らねぇ質問はここに書き込みやがれ 27
■ このスレッドは過去ログ倉庫に格納されています
00011様
2006/08/23(水) 00:54:52ID:uM5Jzzy0まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0570nobodyさん
2006/08/31(木) 03:06:37ID:???0571nobodyさん
2006/08/31(木) 03:55:32ID:???後者ならPGといってもらいたいな。
まぁ何が言いたいかよくわからないやつだが、
夏も終わりだし暖かい目で見守ってやろうじゃないの。
0572nobodyさん
2006/08/31(木) 04:05:57ID:???シャッチョサン、ニホンゴヘンデス
0573nobodyさん
2006/08/31(木) 04:29:48ID:???0574nobodyさん
2006/08/31(木) 04:54:38ID:???$べジータ=高等生物;
$phpぷろぐらま=$カカロット;
$C=$ベジータ
0575nobodyさん
2006/08/31(木) 05:02:04ID:???$a = array("aaa","bbb","ccc");
$a = implode("",$a);
echo $a;
とやった場合にaaabbbcccと思ったとおりには出てくれるのですが、
これはPHPの正常な機能なのでしょうか?
$a = implode("",$a);この行で、$aが自身ではなく、
1つ前の$a = array("aaa","bbb","ccc");を評価しているようですが、
本当にこんなんでいいのだろうか?と思ってしまって・・・
プログラムはPHPが始めてなのですが、これは他の言語でも正常なのでしょうか?
0576575
2006/08/31(木) 05:06:36ID:???ようするに、曖昧な気がしてならないのですが、
このような使い方は普通にするのでしょうか?
普通は別々の変数に分ける気がするのですが、
前者の$aを使わない予定なら、こういう使い方もありかなと思いまして。
0577nobodyさん
2006/08/31(木) 05:28:53ID:???>$aが自身ではなく、 1つ前の$a を評価しているようですが
当たり前だろ。
変数はなぜ「変数」という名前なのか、よく考えてみたまえ。
ただまあ、配列から配列でない変数にする場合は、
同じ変数名のままだとなんとなく気持ち悪いけどな。
0579nobodyさん
2006/08/31(木) 05:46:21ID:???PHPに限らずほとんどのプログラム言語でそういうもの。
$a = 式; の式の部分では1つ前の行までの状態を元に実行が行われ、
その結果が改めて $a = の部分で$aに格納され直すことで内容が更新される。
0580575
2006/08/31(木) 05:48:08ID:???>変数はなぜ「変数」という名前なのか、よく考えてみたまえ。
なるほど。理解できた気がします。
>ただまあ、配列から配列でない変数にする場合は、
>同じ変数名のままだとなんとなく気持ち悪いけどな。
ではこういうケースでは分けることにします。
どうも回答ありがとうございました。
0581575
2006/08/31(木) 05:49:28ID:???>PHPに限らずほとんどのプログラム言語でそういうもの。
これを聞いて安心しました。
PHPは曖昧だとか、よく他の掲示板で見るので、
こういうのがPHPの曖昧なとこかな?と勘違いしていました。
ご丁寧に説明していただきありがとうございます。
0582579
2006/08/31(木) 05:49:39ID:???型エラーを起こす場合があるので注意。
PHPでは$aとするだけであらゆるデータ型を格納可能なので、そういった融通のある使い方ができる。
0583nobodyさん
2006/08/31(木) 05:49:59ID:???> $aが自身ではなく、 1つ前の$a を評価しているようですが
ひょっとして、= を数学的な記号(左辺と右辺が同値)と勘違いしてないんだろうね?
ttp://jp.php.net/manual/ja/language.operators.assignment.php
> このような使い方は普通にするのでしょうか?
変数名に合った値なら、あり得る。
変数の数を減らすためだけに、流用するのは変だけど。
0584575
2006/08/31(木) 06:04:19ID:???>$aと下の$aがデータの形式が違う(この場合は配列とスカラー)ことで
>型エラーを起こす
ということは、将来他の言語も触ることを想定すると、
きっちり分けたほうが良さそうですね。
>>583
>ひょっとして、= を数学的な記号(左辺と右辺が同値)と勘違いしてないんだろうね?
仰る通り、勘違いしていたかもしれまん。
>変数の数を減らすためだけに、流用するのは変だけど。
変数の名前付けが下手で、よく他の変数名と似てしまうため、
悩んだ末に、減らそうと思ってしまいました。
他人にソースを見せるわけではないので、
別にどんな変数名でもいいんですよね…
ちょっと意識しすぎていました。
ということで、他の言語にも融通がきくように、
データ形式が違う場合はこのような使い方をしないように注意したいと思います。
その前にデータの形式を理解していないので、そこから勉強してきます。
ご丁寧にどうもありがとうございました。
0585nobodyさん
2006/08/31(木) 07:00:34ID:???0586nobodyさん
2006/08/31(木) 07:30:15ID:???配列戻りの関数でFALSEとか返されると、いちいち型チェックのコード挟まないと
変なとこで実行時エラーになっちゃうんだよなー。
0587nobodyさん
2006/08/31(木) 07:42:09ID:???$a[1] = "D";
0588nobodyさん
2006/08/31(木) 07:55:07ID:???俺も、PHPをちょっといじってからCをさわってみた。
どちらの言語も基本的には似ているので、Cを覚えるのにそんなには時間はかからなかった。
ただ、Cでは変数のデータ型を宣言して使う必要があったため、ちょっと面倒くさく感じた。
PHPでは特にデータ型を宣言する必要はない。
まあこういった曖昧さが万人受けする言語なんだとは思うけど。
あと、Cは毎回コンパイルしないと実行出来ないので、スムーズに開発が出来ないかな(初心者の考え?)。
まあ最終的にはPHPのようなインタプリタ言語だってコンパイルはしているけど、開発者が意識してコンパイラ通す必要が無い
ので、トライ&エラーによる開発が出来ると考えている。
0589nobodyさん
2006/08/31(木) 08:14:01ID:???開発用エディタのマクロに一発コンパイル→実行のコマンドを登録して使うんで、
ソース書く→その場でボタン一発でコンパイル即実行→エラーが出たらエディタがその行に自動ジャンプ
みたいな感じで、エディタ上で全部完結するんでトライ&エラーに関して特に面倒は感じないよ。
0590nobodyさん
2006/08/31(木) 09:12:05ID:Pu8F0f0KRSS(XML)をPHPにて表示するプログラムを作っています。
<?php
$xml = simplexml_load_file("http://weather.livedoor.com/forecast/rss/3.xml");
foreach($xml->channel->item as $item){
echo mb_convert_encoding($item->title, "Shift_JIS","auto")."<br>";
}
?>
上記は、ライブドアの天気予報を表示するもので、これは成功するのですが、
表示出来るXMLファイルと出来ないものがあります。
上記のソースには何が足りないのでしょうか?
0591nobodyさん
2006/08/31(木) 10:08:54ID:???PHPプログラマっておまえら m9(^皿^)プギャーーーーー
0592nobodyさん
2006/08/31(木) 10:30:55ID:???特性違うし。
入りやすい割りに(サーバーサイドで)できることが結構多い言語ってことでいいじゃん。
0593nobodyさん
2006/08/31(木) 11:07:25ID:???$A = array(2,4,6,7,8,10,1,3,5,7,9); //例えば10個の値の入った配列があります
asort($A); //値をソートします(キーはバラバラに並びます)
for($i=0; $i<5; $i++){next($A); } //任意の回数ポインタを進めます
このポインタが進んだ状態でN回、配列をループ処理しようと思います。
foreachが一番スマートに書けるのですがその場合ポインタは自動的に先頭へ戻されてしまいます。
やはりポインタを進めるのではなくarray_pop($A);のように削り取るべきでしょうか。
よろしくお願いします。
0594nobodyさん
2006/08/31(木) 11:09:00ID:???0595nobodyさん
2006/08/31(木) 11:13:09ID:DLfMY9o3in_search(int,$A)
0596nobodyさん
2006/08/31(木) 11:14:03ID:???0597nobodyさん
2006/08/31(木) 11:15:26ID:???PHPプログラマっておまえら レベルひっくぅーーー
m9(^皿^)プギャーーーーー
0598nobodyさん
2006/08/31(木) 11:22:26ID:???>>594
データベースのソート出力を作っていまいた。
例えば 名前、性別、誕生日 と各項目があって20件ずつの出力という感じです。
その過程で、誕生日でソートとやると誕生日が若い数字順に出力する感じです。
ですが、40件目からの誕生日が若い順の出力の場合どのようにして中間地点からループを始めようか悩んでおりました。
>>595-596
ということはポインタを進めて、
foreachで先頭からループさせてnextした値と同値があれば出力という分岐を作るということでしょうか。
変な質問してすみません。
0599nobodyさん
2006/08/31(木) 11:27:04ID:ED6qIG4m2. {
3. return echo '<p>' . $str . '</p>';
4. exit;
5. }
6.
7. my_func('TEST');
とかやると:
Parse error: syntax error, unexpected T_STRING [略] on line 7
となります。
パーサトークンがT_STRINGだったので、その行で文法エラーが無いか探してみましたが、どうてみも大丈夫なはずです。
なんで?
0600nobodyさん
2006/08/31(木) 11:31:56ID:???0602nobodyさん
2006/08/31(木) 11:34:08ID:???レスありがとうございます。
それが我ながらそう思うのですが、作成環境にDBが入っておらず(SQLiteも)
なんというかファイルからの読み込みで処理している状況です(効率が悪いのは重々承知です)。
DB環境の構築云々は検討中でしてphpでやる場合としてお願いしますm(_ _)m
0604599
2006/08/31(木) 11:35:37ID:ED6qIG4mデータベースのクエリでやらせたほうが簡単かと思うが。
とりあえずORDER とか LIMITを勉強するんだ!
>>600
大丈夫だと思いますが?
あ、それから my_func(1) のように文字列ではなく数値(INT)だとエラーでないや。
ますます謎。。
0606599
2006/08/31(木) 11:44:40ID:ED6qIG4mそれがこうしても同じエラーなんですよ。
function my_func( $str )
{
return array('hoge' => 'hogehoge', 'foo' => $str);
}
$bar = my_func('TEST');
0609nobodyさん
2006/08/31(木) 11:59:20ID:AfkjZNVX<body>の書式が<body background="hoge">となっているケースもあるので対応の仕方がわかりません。
0610599
2006/08/31(木) 12:13:34ID:ED6qIG4m詳しく書いちゃうとこんな感じ:
if (! isset($foo)) my_func ('エラーだよん');
↑ここで: Parse error: syntax error, unexpected T_STRING
0611nobodyさん
2006/08/31(木) 12:15:17ID:???まず、そのまんま「<body>から</body>までを抜き出す」正規表現は書けているのかい?
応用はその後だ。まずは自分の考えた正規表現を示せ。
0612nobodyさん
2006/08/31(木) 12:22:01ID:???---------------------------------
function my_func( $str )
{
return array('hoge' => 'hogehoge', 'foo' => $str);
}
$bar = my_func('TEST');
print_r($bar);
if(!isset($foo))
{
print_r(my_func('エラーだよん'));
}
---------------------------------
でひとまずエラーは出ない
これが動くか単体でテストして味噌
0613599
2006/08/31(木) 12:30:17ID:ED6qIG4mテストしてみたんだけど、文字列をダブルクオーテーションで括るとエラー出ないよ。
die()でも同じ:
die('Error') → Parse error: syntax error, unexpected T_STRING
die("Error") → エラーでない
こんなこと初めて。
何でだろう……、考えられる原因はある?
0614609
2006/08/31(木) 12:31:22ID:???一応やってはみてるんですが・・・
そうだ!
とりあえず<bodyから>まで抜けばいいんだ!
と思って spliti("<body.*>" , $src) ってやったらbody以前までがキレイに抜けました(;´Д`)
0616nobodyさん
2006/08/31(木) 12:36:07ID:???俺もそれ経験してる。
___________________↓文字列が引用符で囲まれてない
$date = date ('Y-m-d);
die ('ふにゃふにゃ') → 当然エラー
俺の場合はこうだった。
エラー行のちょっと前のコードを確認してみ
0617599
2006/08/31(木) 12:38:39ID:ED6qIG4mあ、マジだ・・・
PHPエラー教えてくれてデバックには便利なんだけど、直感的じゃないなぁ。
PHPエディタでも使うか。
本当にありがとうございました。
0618nobodyさん
2006/08/31(木) 12:42:15ID:???要するに >>612 で書かれてあったように、単体(現象が発生しない最小構成)で
検証スクリプトを試してなかったんだね。
はぁ… くだらね。
0619599
2006/08/31(木) 12:45:32ID:ED6qIG4mそうですね……
私は別にベタ書きというわけではないのですが、単体でテストはしていません。
職業プログラマでもないし、好きなようにコーディングしています。
やっぱり単体でテストしてから、次に全体のテスト……という順番でテスト
すれば効率がよいのかなぁ?
0620609
2006/08/31(木) 12:46:16ID:???$src2 = str_replace($body[0] , "" , $src);
$body = spliti("</html>" , $src2);
1行目で<body>以前を抜いて
2行目で<body>以前を消して
3行目で</body>以下を切り分ける
ってやったらできましたが・・・すごいムダのような・・・
0621nobodyさん
2006/08/31(木) 12:48:03ID:???まあ、きっと次からはPHPとかエディタのせいにしないで検証出来るようになるさ
あと質問しておいて人の話聞いて無いよな、最小で絞り込めば自分のミスだってすぐに気付くだろうに・・
0622nobodyさん
2006/08/31(木) 12:49:37ID:???違う。そういう意味じゃない。
>>612 に書かれているコード「だけ」(勿論 <?php ?> とかは必要だけど)を
書いた PHP スクリプトで確認しなかったのか? ってこと。
0623nobodyさん
2006/08/31(木) 12:50:53ID:???> やっぱり単体でテストしてから、次に全体のテスト……という順番でテスト
> すれば効率がよいのかなぁ?
そんなに大層なものじゃなくて、問題が発生したらそこだけ切り出してみればいい。
趣味だろうがなんだろうが自分で発見する手法を確立したほうがいい。
毎回誰かに聞くのもいいが色々無駄が多いでしょ。
0626nobodyさん
2006/08/31(木) 13:01:50ID:???0627nobodyさん
2006/08/31(木) 13:03:54ID:???どこだと頑張ると答えがもらえるんだ?
答えは自分で掴むもんだろう
というのも不親切なのでお前さんにはこれをやろう
ttp://www.forest.impress.co.jp/article/2005/08/10/okiniiri.html
っていうかまんま教えられても勉強にならへんよ
あとは関数について分からんとかまず何がしたいか質問してみれば?
って言ってると誰か答えてくれそうだけどね
0629609
2006/08/31(木) 13:29:17ID:???うん、まぁ、そうなんですけどね・・・
自分の求めるものの答えを見ながらリファレンス見て検算した方が覚えが早いから
答えももらっておきたいなぁ・・・という感じなんすけどダメですかね。
0630nobodyさん
2006/08/31(木) 13:42:23ID:???0631nobodyさん
2006/08/31(木) 13:48:19ID:???じゃ、どうぞ。
$pat=<<<__EOB__
<html>
<body>
<b>test</b>
</body>
</html>
__EOB__;
preg_match('/<body[^>]*>\n?(.*)<\/body>/ism', $pat, $matches);
print $matches[1];
抜けなどあるかもしれないけど、適当にどうにかして。
0632nobodyさん
2006/08/31(木) 13:55:19ID:???0634nobodyさん
2006/08/31(木) 14:10:29ID:???0635nobodyさん
2006/08/31(木) 14:11:19ID:???ってぐあいに呼び出したアイテムに順位の数字を1つずつ増やしていかせるにはどんな関数を
使うのですか?よろしく願います。
0636nobodyさん
2006/08/31(木) 14:13:17ID:???ありがとうございます。
>>631のはbodyタグが改行されてなかったらいくつか持ってかれるのかな・・・?
>>632のは最初の「>」で判定してるのだろか・・・
うぉー難しい・・・がんばって解読します。
0638nobodyさん
2006/08/31(木) 14:32:49ID:???まずID出せ
で具体的にどんな事をしようとしたときに、どんな問題があるのか教えれ
>>544じゃ駄目なら理由を教えれ
0641640
2006/08/31(木) 14:43:28ID:???0642nobodyさん
2006/08/31(木) 14:45:09ID:XWJf2v550644nobodyさん
2006/08/31(木) 14:55:24ID:???test=\%30
とかじゃ駄目なん?
使う用途よるけど
\0
ってプログラム側で認識出来ればいいんでしょ?
percent0にしておいて、置換するとかいくらでもあるのでは
0645640
2006/08/31(木) 15:00:59ID:???漏れは\0が欲しいのです。
さっき自己解決できたけど、
なんだかみんなよくわかりもしないのに回答してて腹が立ちます。
0646nobodyさん
2006/08/31(木) 15:01:11ID:???それじゃ駄目だろ。質問の意図を理解出来ていないね。
で、>>541 なんだけど、手元の環境で試したら \0 になんてならなかったよ。
addslashes がかかってるね。
0647635
2006/08/31(木) 15:04:19ID:???ってぐあいに呼び出したアイテムに順位の数字を1つずつ増やしていかせるにはどんな関数を
使うのですか?よろしく願います。
この質問あまりにも下らなさ過ぎますか?
0653nobodyさん
2006/08/31(木) 15:12:42ID:???おいおい。なんで俺に突っかかってるんだよ。
\0 の意味くらい分かってるっての。C で言うところの NULL だろ。
解決方法を書いたわけじゃないぞ。現象を書いただけだ。
0655nobodyさん
2006/08/31(木) 15:13:02ID:???だった
やっぱしっかりID出して、終息宣言なり出してくれないと荒れるな・・
0656nobodyさん
2006/08/31(木) 15:14:05ID:???0657494
2006/08/31(木) 15:14:08ID:yzWTAKQw細かくご説明頂き、大変感謝いたします。
さらにググっていたのですが、どうしても分からなかった為質問させてください。
概要仕様書、機能仕様書、詳細仕様書、UI仕様書、データフロー、etc..
少なくとも、開発するのに必要だと思われるものはどれでしょうか?
UI仕様書とUI設計書の違いを教えて下さい。
0658nobodyさん
2006/08/31(木) 15:19:13ID:???>概要仕様書、機能仕様書、詳細仕様書
これは必要。無いと作れない。
画面遷移とか、それぞれの画面で何をしてるかを書いたものも必要。
上の仕様書のどこかに入れることになると思うけど。
UI仕様書ってWeb(というかPHP)周りではあまり見ないような気がする。
Javaなら分かるけど。
というかいつまでもググってないで、
仕様書について書いた本とか雑誌とかがあるから
そっちを読んだ方が良い。
0659nobodyさん
2006/08/31(木) 15:20:09ID:???PL、SEの視点でいえば仕様書の種類はシステムの規模によります
UI仕様書とUI設計書は内容の深さ次第です
箇条書き+α程度はUI仕様書と認識します
UI設計書になるとUMLなどの俗に言う設計書っぽい図面が肉付けされます
PGの視点でいえば
概要仕様書(要件定義書)しか見ない場合が多いですw
機能仕様(性能要求書)、詳細設計書などはパラパラということもありまs
0662635
2006/08/31(木) 15:33:54ID:???.............
第<?=$rank?>位 ○○○
これであっさり解決しました。
0665nobodyさん
2006/08/31(木) 17:37:16ID:???↑相手してる奴も変なのに含むこと
0666nobodyさん
2006/08/31(木) 17:40:59ID:???$func = "hoge";
$this->$func();
という記述は問題ないでしょうか?
0667nobodyさん
2006/08/31(木) 17:52:16ID:???いろいろ制作サイトを除いても料金がまばらで基準がわかりません。
お仕事をされている方はどのようにして出していらっしゃいますか?
0669nobodyさん
2006/08/31(木) 18:07:16ID:???開発は人件費なので1円でも受注できるし、
でもできるだけ高い金額で受注したいし。
なので僕はまず相手の予算を聞きますねー。
で、予算もよくわからない場合は、
自分の日給×予定開発日数です。
漏れの場合、日給は37,500円で計算。
■ このスレッドは過去ログ倉庫に格納されています