【PHP】下らねぇ質問はID出して書き込みやがれ 125
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/01/09(水) 22:31:43.73ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 124
http://kohada.2ch.net/test/read.cgi/php/1353402165/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0011nobodyさん
2013/01/10(木) 15:45:09.95ID:Q0AhsWkA更新するたびに、だいぶ数字が違う。
あんまり変わらない予感。
何回か更新するとだいぶ違う数字になっちゃう。
手間だけなのか。golbal書き直すのもあれだし、
golbalだけでいいかな。
global30個VS配列1つにin30個
どっちが早いのだ。難しい。
0012nobodyさん
2013/01/10(木) 16:15:39.37ID:???他の要因(変数の数)が関わるけれども、
変数の数が減るのはスピードが上がる話、配列のインデックス参照はさしたることではない。
大して変わらんとしたら、どっちがいいか分かってるならそっちにすべき。
0013nobodyさん
2013/01/10(木) 17:44:55.91ID:Q0AhsWkAこんな感じで100個入れていけば、
今のglobal $DB_Set_NameX100;
$DB_Set_Name = "abc";X100
よりはわかりやすいかなーとは思ったのですが、
いかんせん辞書のみで構造の基礎飛ばして、
作ってたので、迷ってしまいました。
>配列のインデックス参照はさしたることではない
なら配列の方が綺麗ですね。。。
うーん。迷う。
0014nobodyさん
2013/01/10(木) 18:03:10.70ID:Q0AhsWkA中央制御室みたいなとこだから、
配列でスマートに記述したほうがいいかな?
定数も考えたのだけど、小回りきかないのでやめたんです。
一般的にはどっち使うのだろう。
global大量羅列で作ったりしてる人っているのかな。
周りにパソコンする人いないので、
ちんぷんかんぷんです。すんません。
一応重いと感じたことはないですが、
さらに開発して変数増えてくることも考えると、
早い時期に手打ったほうがいいのかな。
優柔不断ですごく迷ってます。
0015nobodyさん
2013/01/10(木) 18:10:28.95ID:???0016nobodyさん
2013/01/10(木) 18:32:13.39ID:Q0AhsWkA今デフォルトセットを読んでるのですが、
配列はありますね。
globalは見つからないです。
$hogehoge = array();
この辺の設定が配列くさい。
説明が英語でわからないけど。。。
今後半へ。配列多し。
後半と思ったら500行目で上段だった。
というか配列多いわ。みんな配列で作るのですね。
globalでファイルを検索したら本文には1つも出ない。
関数にも見えないし、どうやって反映してるんだろう。
ただ変数と配列は半々くらいでした。
0017nobodyさん
2013/01/10(木) 18:33:22.38ID:Q0AhsWkA0018nobodyさん
2013/01/10(木) 19:10:27.63ID:Q0AhsWkAglobal $DB_Setting;
$DB_Setting['name']="abc";
$DB_Setting['table1']="abc";
$DB_Setting['table2']="abc";
$DB_Setting['table3']="abc";
$DB_Setting['url']="abc";
global $HP_Setting;
$HP_Setting['moji']="utf8";
$HP_Setting['url']="url";
$HP_Setting['color']="#fff";
$HP_Setting['user']="abc";
こんな感じで配列使ってるとこはないかな。
やっぱり変かな?この使い方。
例えばユーザー情報を配列に入れちゃったら、
読み込む時、名前だけみたいのに、
それ以外の諸情報も全部毎回読み込むのかなと
創造するとそこが違和感を感じる。
0019nobodyさん
2013/01/10(木) 19:34:18.13ID:???ー ー │┼ 七 ヽ. ニ|ニ ーフ /Τヽ
、_ 、_ │.d、 (j `j Cト、 /ヽ_ し' ノ
、
| ̄| 三 ̄| 巾_|三 | ¨. ┼ i | ニ|ニ ┼┼ /
| ̄| □| ̄ | |乂 し' や (工メ ノ Cト、 l__ 人_ノ
 ̄  ̄
,,,..、,, 、
∠__人 )
\ / j(a (゚)V
日X 帳 ( ゚_/)dVレi
/ \ ,、 _fL__,ゝー二-ゝ、ノ
)`チ ( `ヽー1___ 〔
j ガ ( 丿 ,、``´ヽ,
) ウ l´ _>,、/ `-、ノっ
`vヽ( ゙-'´
0020nobodyさん
2013/01/10(木) 19:43:17.73ID:???というわけでお前の糞日記はこれで終了
0021nobodyさん
2013/01/10(木) 19:51:11.88ID:Q0AhsWkA0022nobodyさん
2013/01/10(木) 20:00:12.00ID:Q0AhsWkA設定で悩むと肝心のコンテンツの開発に
集中できなくなって困ってた。どもでした。
不具合が出たというわけでもなく、メンバーから
クレームがきたわけではないので、しばらくこれでいきます。
でわ。
0023nobodyさん
2013/01/10(木) 21:11:26.06ID:???0024nobodyさん
2013/01/10(木) 21:44:47.46ID:???0025nobodyさん
2013/01/10(木) 22:11:44.67ID:???0026nobodyさん
2013/01/10(木) 22:27:47.78ID:Ts2rKIpx冒頭部分としては、これでよろしいのでしょうか?
if(ctype_digit($_GET['id']))
{
$id = (int)$_GET['id'];
$id = intval($detail_id);
0027nobodyさん
2013/01/10(木) 22:42:34.73ID:???ctype_digitだと03、04とか8進数も通すみたいだから
filter_var($_GET['id'],FILTER_VALIDATE_INT)
とかにしてみたら?
0028nobodyさん
2013/01/10(木) 22:56:48.66ID:Ts2rKIpxありがとうございました。
まさにぴったりの関数ですね
早速書き換えてきます。
0029nobodyさん
2013/01/11(金) 01:03:24.16ID:dYhYFnWWttp://www.youtube.com/watch?v=N4VSbI37y7w
0030nobodyさん
2013/01/11(金) 05:55:41.20ID:???0031nobodyさん
2013/01/11(金) 21:16:35.41ID:lTNOIOlN$a = array(1, 2, 3);
$b = array_shift($a);
$c = array_shift($a);
このようにした時$bには1が$cには2が入ってるんでしょうか?
0032nobodyさん
2013/01/11(金) 21:19:41.58ID:2YcqRiQ6ものすごい根本的なことを勘違いしてた。
一年も開発してて気づかなかった。
ずっと安定稼動で気にしなかったわけだけど、
ファンクションに入れなければ
宣言しなくても読み込まれるのですね。(笑)
ログイン制限をどこにでもまた途中にでも
気楽に入れられるようにファンクションに入れてて、
その他すべてもファンクションしてて、
DB設定とかもファンクションに入れてたから
気づかなかった。とりあえず重くなったり
不具合なければ今のままでいくけど、
それならいろいろと選択肢が単純にある感じ。
お騒がせしました。おらアホなのです。
0033nobodyさん
2013/01/11(金) 21:24:23.63ID:2YcqRiQ6おらもわからないけど
printかvar_dumpで表示すればわかると思います。
0034nobodyさん
2013/01/11(金) 21:26:17.73ID:???グローバル変数とスコープの関係を調べてこい
0035nobodyさん
2013/01/11(金) 21:27:50.93ID:2YcqRiQ6会員サイト運営してるんだけど、
どうも作りたいものが先にでてきて、
それから辞書見て作ってるんで、
ごてごてになっちゃう。
ちょこちょこ勉強も平行していきます。
長文ばっか、どもでした。
0036nobodyさん
2013/01/11(金) 21:30:04.79ID:???渡してるのは配列の参照
つまり配列の状態は保持されてるので
>>31の通り
0037nobodyさん
2013/01/11(金) 22:21:56.54ID:???ありがとうございました。
もう一つ追加で質問です。すみません。
配列を使い回したいのでリセットしたいのですが($aは配列です)
unset($a)
$a = array();
と
$a = null;
$a = array();
はどちらが適切なのでしょうか?
というより、これはリセットの手段として正しいのでしょうか?
0038nobodyさん
2013/01/11(金) 23:26:19.59ID:???って感じで新しい配列をそのまま入れちゃっておk
条件によっては何も入らない&後から条件で追加するってなら
$a = array();
nullにするかarrayにするかはその後の処理次第
変数宣言は簡単に言えばメモリを確保することで
この場合同じメモリアドレスを使うのでunset(メモリ開放)して宣言しなおす必要はない
最初に確保したメモリ量を超える場合(型が違うとか)は必要だけど
PHPではそんなことを考える必要もないので問題ない
0040nobodyさん
2013/01/12(土) 01:22:52.08ID:???0041nobodyさん
2013/01/12(土) 15:33:02.10ID:OB32EAfxメッセージを送信できるってマニュアルには書いてあるけど、送信されません
どういう原因が考えられますか?
sendmailやpostfixが関係あるんですか?
0042nobodyさん
2013/01/12(土) 18:09:23.28ID:???0043nobodyさん
2013/01/12(土) 18:22:56.59ID:???0044nobodyさん
2013/01/12(土) 18:23:19.93ID:???004542
2013/01/12(土) 18:28:36.24ID:???0047きら ◆Kira.u9zNc
2013/01/12(土) 18:36:24.33ID:oAgEWwm0【PHPのバージョン】5.3.18
【連携ソフトウェア】VertrigoServ 2.29(MySQL等)
【質問内容】
PHPでMySQLのフィールド(フィールド名:money/データ型:INTやDATE)の多い順や小さい順にソートして
while ($row = mysql_fetch_assoc($result)) {
print($row['id']);
print($row['money']);
}
みたいなコードで表示する方法無いですか?
0048nobodyさん
2013/01/12(土) 18:37:19.99ID:???0050nobodyさん
2013/01/12(土) 18:39:30.49ID:???そら関係あるでしょうね
mail関数で送れれば送れると思う
http://jp1.php.net/manual/ja/mail.requirements.php
0051きら ◆Kira.u9zNc
2013/01/12(土) 18:43:14.47ID:oAgEWwm0aaa 1
bbb 9
ccc 5
みたいなみたいなデーターベースです
0052nobodyさん
2013/01/12(土) 18:44:41.60ID:???0053nobodyさん
2013/01/12(土) 20:21:00.77ID:???0054nobodyさん
2013/01/12(土) 20:32:38.52ID:???0055nobodyさん
2013/01/12(土) 22:17:18.46ID:???0056nobodyさん
2013/01/12(土) 22:28:22.75ID:???ttp://unkode-mania.net/view/50a1018a61fd523468000000
マイルールって怖いよね。
0057nobodyさん
2013/01/12(土) 23:58:56.38ID:???0059nobodyさん
2013/01/13(日) 15:22:07.47ID:PIyVXOgtもしここじゃマズかったら誘導お願いします。
PDOStatement の
fetch()だと行を一つずつで
fetchAll()だと全部取り出してしまいますが
指定された行だけを取り出すという事は出来ないでしょうか?
(出来れば次に取り出す時にはその行の次になると更にうれしい。要するに移動も兼ねてる)
PHPの普通の関数だとそういうのがあったと思うのですが。
0061nobodyさん
2013/01/13(日) 15:30:12.13ID:PIyVXOgtいやそれがですねー
出来ればSQL文の指定じゃないやつがいいんですよね。
PDOはムリなんでしょうか?
ムリならSQL文で妥協したいと思います…
0063nobodyさん
2013/01/13(日) 15:35:13.00ID:PIyVXOgt実はPEARで書いてたDBの書き換えをやってるんですが
元のPEARでの処理が、前述のスクリプトで行指定して移動という
コードが膨大にあって、他の部分もそれの影響を受けそうなところが多々あるので
出来るだけ元のコードに近いやり方で書きたいんです。
どこでどんなバグが出るかわかんないので… すいません。
0064nobodyさん
2013/01/13(日) 15:36:28.71ID:bbYKJaNpis_cachedメソッドって該当テンプレートファイルの有効なキャッシュがあるかを調べますが、
displayメソッドを実行する際にもそのキャッシュのチェックをして、キャッシュがあればそのキャッシュを表示、
なければ再生成してくれますよね?
displayメソッドだけで全部やってくれると思うんですが、
このis_cachedって何のために使うんですか?
0065nobodyさん
2013/01/13(日) 15:37:36.87ID:???今やってるのが妥協や
0067nobodyさん
2013/01/13(日) 15:40:25.25ID:PIyVXOgtそれはそうですね…(汗)
ただ自分のような未熟者がヘタに弄るとあぶないので
出来るだけオリジナルのコードに近いやり方で書き換えたいんです。
熟達者ならSQLで処理させた方がいいんでしょうが(汗)
PDOでは行移動は無理なんでしょうかね?
0068nobodyさん
2013/01/13(日) 15:42:53.59ID:???0069nobodyさん
2013/01/13(日) 15:47:13.11ID:PIyVXOgt最初から書けばそうなのかもしれないんですが
元のコードの書き換えなのでPDOで行指定できるなら
[PEAR]
$rs->fetchRow(DB_FETCHMODE_ASSOC, $rownum);
↓
[PDO]
$stmt->????????(PDO::FETCH_ASSOC, $rownum)
みたいな感じで置き換えるだけで済みそうなので。
出来ないでしょうか?
0070nobodyさん
2013/01/13(日) 16:02:15.68ID:bbYKJaNp何か忘れてますか?
0072nobodyさん
2013/01/13(日) 16:34:39.71ID:PIyVXOgt$r = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 5);
var_dump($r);
こんな感じでやってみましたが
最初の行しか取得出来ないようです…
やり方あってますか?
0075nobodyさん
2013/01/14(月) 02:34:41.98ID:???MDB2はまだ現役だよね?
0076nobodyさん
2013/01/14(月) 15:54:09.43ID:t7cxFpsBそれはまた新たにインスコしないといけないんですよね?
出来ればインスコなしで使えるやつで書き換えたいんです。
>>75
それが…
サーバー移転したら続けてDBにアクセスする時に
たまにDBエラーが生じるようになってしまいまして…
DBが選択されてないってエラーなんですが…
でも接続時に選択してるししかも毎回SQL発行時にも
DB選択もしてみたんですが時たまやっぱりエラーが出てしまって。
再現性も難しくて検証も面倒なのでいっそ書き換えたいと思ってるんです。
しかも使ってるのはPEARの中でも古いDBクラスで…(MDB2じゃないやつ)
サーバ移転前はこんなエラーなかったんですけどね…
0077nobodyさん
2013/01/14(月) 16:04:33.07ID:???間違いが激減する
0078nobodyさん
2013/01/14(月) 16:16:03.64ID:???0079nobodyさん
2013/01/14(月) 16:16:28.48ID:t7cxFpsBこれからは自作のクラスで軽くラップして実装することにします。
0080nobodyさん
2013/01/14(月) 20:05:33.43ID:TkOQENrF参照渡しのときは、呼び出し側はアンパサンドつけずに渡して、関数側にだけアンパサンドつけますよね?
これは配列を参照渡しするときでも一緒ですか?
array_walkで配列を参照渡ししたんですが、中身が書き換えられてなかったので質問させていただきました。
よろしくお願い致します。
0081nobodyさん
2013/01/14(月) 20:14:44.50ID:???詳しくはマニュアルに書いてあると思うが
0082nobodyさん
2013/01/14(月) 20:31:22.28ID:TkOQENrFで、ググっても原因がわからなかったので、実験に実験を重ねついに原因を突き止めました。
配列をarray_walkの第三引数に参照渡しした場合、array_walkで指定した関数内で配列内の値を変更しても、
その変更が反映されないことがわかりました。
なのでforeachを使って関数を個別にループして呼んで解決させました。
array_walkってクソ関数ですね。
php5.4からの不具合かもしれませんが。
とにかくクソクソクソ
俺の3時間返せよボケ
皆さんもお気をつけください。
ありがとうございました。
0083nobodyさん
2013/01/14(月) 20:43:27.03ID:???第三引数は参照渡しじゃないだろ
何を言ってるんだ?
0084nobodyさん
2013/01/14(月) 20:50:13.65ID:???0085nobodyさん
2013/01/14(月) 20:54:43.91ID:???その三時間も無駄にはならんよ
0086nobodyさん
2013/01/14(月) 21:32:36.44ID:TkOQENrF説明には第三の引数として指定できるって書いてるじゃないですか
参照は指定できまへんって書いておくべき
>>84
説明に書いてないほうが悪い
>>85
ありがとう
ごめんなさい
0088nobodyさん
2013/01/14(月) 22:05:33.58ID:???0089nobodyさん
2013/01/14(月) 22:07:00.13ID:TkOQENrFこれだけ見りゃ普通に引数として使えるって思うよな
参照は使えませんって書くべき
0092nobodyさん
2013/01/14(月) 22:28:53.21ID:???0093nobodyさん
2013/01/14(月) 22:53:19.98ID:???http://php.net/manual/en/language.references.pass.php
And as of PHP 5.4.0, call-time pass-by-reference was removed, so using it will raise a fatal error.
call-tyme pass-by-referenceはdeprecatedだったけど
5.4.0からはFatalになった
array_walkの第三引数が参照渡し不可なのに
そこから呼び出される関数に参照が来るわけないだろ
「説明に書いてないほうが悪い」って・・・
必要な情報はマニュアルに書いてある
理解力が足りないほうが悪いだろ
0094nobodyさん
2013/01/14(月) 22:55:53.96ID:???> 参照は指定できまへんって書いておくべき
一応補足すると
bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )
mixed $userdata に "&" がついてないってことは
「参照は指定できまへん」って書いてあるのと同じ
array &$array には "&" がついてるだろ
0097nobodyさん
2013/01/14(月) 23:20:38.73ID:TkOQENrFえ?
そういう意味だったの?
そりゃ知りまへんかったなぁ
わしが悪いわ
皆さんすいませんでした
0098nobodyさん
2013/01/14(月) 23:23:25.29ID:???0100nobodyさん
2013/01/14(月) 23:42:09.71ID:???0106nobodyさん
2013/01/15(火) 00:04:56.67ID:???0107nobodyさん
2013/01/15(火) 00:06:03.02ID:???自分が知ってることを知らないやつを叩きまくり
うちの会社にも一人だけいるけどな
0108nobodyさん
2013/01/15(火) 00:25:26.86ID:???0109nobodyさん
2013/01/15(火) 00:26:14.55ID:???自分が理解不足なのに「クソ関数」とか
「説明が悪い」とか言ってるから叩かれるんだよ
0110nobodyさん
2013/01/15(火) 00:29:27.31ID:???PHP5.4以降ではアンパサンドつけて渡した場合はfatalエラーが出るようです。
で、ググっても原因がわからなかったので、実験に実験を重ねついに原因を突き止めました。
配列をarray_walkの第三引数に参照渡しした場合、array_walkで指定した関数内で配列内の値を変更しても、
その変更が反映されないことがわかりました。
なのでforeachを使って関数を個別にループして呼んで解決させました。
array_walkってクソ関数ですね。
php5.4からの不具合かもしれませんが。
とにかくクソクソクソ
俺の3時間返せよボケ
皆さんもお気をつけください。
ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています