【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カテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0504軟式PHP
2006/08/30(水) 17:52:08ID:???スパムの温床になるので、指定したアドレスが存在するかどうかは応答しなくなったサーバーが多くなったので
送信して確かめるしかないね。
0505nobodyさん
2006/08/30(水) 18:05:19ID:???0507nobodyさん
2006/08/30(水) 18:12:36ID:QW9pyzd4それが、
echo $width;
echo $height;
をスクリプトの途中に入れても、何も出力されないんです。
前後に<br />をつけてみたり、<span></span>をつけてみたりすると、<br />や<span></span>だけ
出力されます。
>>503
スミマセン、見当たりませんでした。
探し方が悪いようなのでもう少し探してみます…
0508nobodyさん
2006/08/30(水) 18:19:04ID:???$hogeにその配列を入れるのはどのようなやり方(関数)が最適でしょうか?
例
$hoge = array(
'0'=>array('hoge','foo','yahoo'),
'1'=>array('foo','gahoo','doon','zoon'),
'2'=>array('too','qoo','echo','zoon'),
);
こんな配列があったとき、
fooという値がある配列をそっくりそのまま$hoge2へ移したいのですが
0509nobodyさん
2006/08/30(水) 18:19:14ID:???var_dump(getimagesize($tmp));
してみた?
0515494
2006/08/30(水) 18:40:58ID:F9+d4VtVUI(ユーザインターフェイス)設計書とはどんなものなのでしょうか?
0516nobodyさん
2006/08/30(水) 18:59:02ID:???$func = "hoge";
$this->$func();
という記述は問題ないでしょうか?
0518林
2006/08/30(水) 19:04:27ID:???ページャーすべてうまくいきました。 ありがとうございました^^
ついでに今 全○件中 ○〜○件表示 っていうのもなんとかできました。
昨日PHPのこと知っていろいろと模索しながらやりましたが、
いろいろできるんですね。
もう何冊も読破した人で、これはよかったという本があれば教えてください。
明日、本屋いってきます。
それと、これでメシ食おうなんておもってませんw
0519513
2006/08/30(水) 19:09:30ID:???スクリプト見せてもらわないとなんともいえませんのでメールください。
手間にもよりますが1000円とかではたぶん無理です
0520nobodyさん
2006/08/30(水) 19:43:32ID:nBzkjiOS例えば、同じ書き込み内容を20時と20時10分にわけて送信すると行った感じです。
最初の送信をして10分立ってからもう一度送信するというような。
0521下らねぇ質問ですが、、、
2006/08/30(水) 19:45:34ID:???これをSQLなどのデータベースに移行するのは難しいのでしょうか?
むずかしいのなら業者に頼みますが、個人でもできる程度ならがんばりたいのですが・・・
0522軟式PHP
2006/08/30(水) 19:51:19ID:???素直にcron使ったほうがよさそう。
>>521
難しくない。データベースの種類を書いてないのでアドバイスしようがないが
大抵のDBにはインポート機能がついてる。PHPの質問じゃない気がするんだが…。
0523nobodyさん
2006/08/30(水) 19:54:13ID:???> >>486さん、詳しく説明して頂いて感謝致します
本職コンサルじゃないんで「多分そんな感じ」程度です。
> 1つのwebサイトなら納期1〜2ヶ月で計30万〜150万くらいが相場なのですかね?
あくまで推測です。コンサル自体の相場と作業分量と人的労力からこんなもん?と計算しただけ。
実際のとこはホントのコンサルに見積もってもらってください。
> 要求定義書、基本設計仕様書、詳細設計仕様書、運用マニュアル、保守マニュアル、運用データ統計表
いずれも「そのもの」の形の書類は無いです。これは大雑把にカテゴリ分けしただけで、
実際はそれぞれが複数の書類によって構成されることになると思います。
例えば基本設計の仕様書については、プログラムやDBテーブルなどの基本仕様書の他、
ページ遷移図、状態遷移図など多数の資料が添付されていないとダメでしょう。
運用データの統計は、1日のアクセス量、ピーク時のアクセス量、回線転送量、
1アクセス毎のCPU負荷、DBの総データ数、クエリー発行数など、実際の運用から
分かっているデータを統計して資料化しないといかんでしょう、ってことです。
アクセス量に関しては要求定義の中にも「当初見積もり」と「将来的な推定値」が
汲まれてなければいけないと思いますが、その上で実際の運用時のデータも必要です。
そこまでちゃんと資料化してないと「改変も考慮したレベルで仕様が把握されている」とは言えないと思います。
ま、通常のコンサルのやってる「システム再構築の前半部分の手順」そのものだと思うので
見積もり予測はそこから算出しています。
0524nobodyさん
2006/08/30(水) 19:58:32ID:1H+VLBSI出来なくはないが激しく迷惑
0525nobodyさん
2006/08/30(水) 20:00:30ID:???一般的にはcronで定期的にPHPを実行→指定時間なら送信
って作り方をする。
タイマーみたいなマネをするとそのPHPが10分ずっと動きっぱなしになってしまうので大迷惑。
0528nobodyさん
2006/08/30(水) 20:31:34ID:???youTUBEみたいなのつくって欲しいです。 おいくら?
0529nobodyさん
2006/08/30(水) 20:48:20ID:???0531nobodyさん
2006/08/30(水) 21:24:45ID:???0533nobodyさん
2006/08/30(水) 22:06:18ID:???どうすれば効率がよいですか?
今は$cntと$startと$endを作って
for($cnt=0;$date=mysql_fetch_object($hoge);$cnt++){
if($cnt>=$start && $cnt<=$end){・・・・・・・・・
こんな風にやってcntがstartからendまで表示させるようにしてるんですが
もっとよさそうな書き方があると思いまして
0534nobodyさん
2006/08/30(水) 22:19:41ID:VJ9Gj9KK0535nobodyさん
2006/08/30(水) 22:21:09ID:1H+VLBSIどうせSQLを使うならSQL側で処理する方が良いですよ
検索結果からの順番ならLIMITでも使ってくださいな
0536nobodyさん
2006/08/30(水) 22:21:32ID:???0537nobodyさん
2006/08/30(水) 22:28:26ID:???0539nobodyさん
2006/08/30(水) 22:55:46ID:H9L03cAN使ってるローカル変数のリストを取得することはできますか?
func(){
$hoge = 1;
$fuga = 2;
(処理)
}
処理を行うと、hogeとfugaを取得するような感じです。
0540nobodyさん
2006/08/30(水) 23:08:40ID:???0541nobodyさん
2006/08/30(水) 23:33:30ID:3wkmyd6Ltest.php?test=%00 と呼び出すと、\0 と表示されるのです。
別の言い方をすると、
<?= urlencode( $_GET['test'] ) ?> というプログラムで、
test.php?test=%00 と呼び出すと、%00 ではなく %5C0 と表示されるのです。
何とかならないでしょうか。
0542nobodyさん
2006/08/30(水) 23:37:51ID:UvEI8vY7と書かれていますが、本屋さんに売っているphpの入門書どおりのphpのインストールしたやつと
何がちがうんですか?
0544nobodyさん
2006/08/30(水) 23:44:05ID:???それはそうです。0x00はnull文字ですから¥0 が返されます。
0が欲しいなら test.php?test=%30 で呼び出さないと。
0546542
2006/08/30(水) 23:48:07ID:???ちょっと調べてみましたけどいまいちわかりません。
あんまり使わない関数だらけなので、メールフォームや掲示板スクリプトなら気にすることもないですよね。
http://php.s3.to/man/features.safe-mode.functions.html
0547516
2006/08/30(水) 23:52:29ID:???0548nobodyさん
2006/08/30(水) 23:53:05ID:???もしくは引数でURLエンコードされた文字列を渡した場合、
展開しないで変数に入れる方法はアルでしょうか?
urldecodeで自前で展開すれば大丈夫なのです。
>>546 ファイル操作しなければ大丈夫です
0549nobodyさん
2006/08/30(水) 23:53:15ID:???IPでいいんじゃないの?
ある一定の短い期間に、同じIPから偶然別々の人が
その投票システムで投票する確率なんてかなり低いと思う。
0551nobodyさん
2006/08/31(木) 00:04:28ID:???0552516
2006/08/31(木) 00:06:53ID:???なんか基本を勘違いしてました。
0553nobodyさん
2006/08/31(木) 00:24:08ID:???0555nobodyさん
2006/08/31(木) 01:30:13ID:???ただ、クッキーはブラウザでクリアして再投稿を繰り返せるからこれもどうかと思うけどね。
実際によくやられるし、これ。
こういう端末識別って難しいよ…
0556nobodyさん
2006/08/31(木) 01:37:17ID:???いっその事会員制にするって手もあるな。
ユーザID(メルアドでもOK)+パスワードで認証。
これが今のところ確実な方法じゃない?
でも、ユーザ登録の部分を作る手間と登録させるユーザの手間、そして
同じユーザが別のメルアドで登録してきたら防ぎようが無いという諸刃の剣
0557nobodyさん
2006/08/31(木) 01:43:59ID:???0561557
2006/08/31(木) 02:26:38ID:???0564nobodyさん
2006/08/31(木) 02:40:06ID:???言語はどんどん廃れていくだろうな。余程の速度を求められるシステム以外では
意味がないだろう。
おっと!インタプリタだってコンパイルしてるじゃんプギャーなんて突っ込みは無しだぜ!
0565nobodyさん
2006/08/31(木) 02:50:03ID:???しょぼいからとかダサイからとかで、
下級言語とかそういうニュアンスじゃないぞ?
簡単に言えば、より人間がより理解しにくい言語を下級言語というんだ。
つまり人間が理解できないような難しい言語ほど下級言語なんだよ。
よく覚えときな。
0567nobodyさん
2006/08/31(木) 03:00:32ID:sPSpAFNcどちらを使っても機能はまったく同じなのでしょうか?
0568nobodyさん
2006/08/31(木) 03:00:39ID:???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
■ このスレッドは過去ログ倉庫に格納されています