【PHP】下らねぇ質問はここに書き込みやがれ 69
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2008/05/27(火) 18:04:33ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0903nobodyさん
2008/06/23(月) 17:42:21ID:???すいませんでした。
0904nobodyさん
2008/06/23(月) 19:03:04ID:???次のプロジェクトでSQLSERVERに接続する必要が出て
再コンパイルが必要ということに行き着いたのですが、今までやったことが無く
いまいち実態がつかめていません。
php.iniやその他各種設定は保持されたままなのかといった、事後の影響が
どう出てしまうのか想像できず、怖くて踏み切れない状態です。
このあたりのことを詳細に解説してくれるようなサイトや書籍等はございますでしょうか。
0906nobodyさん
2008/06/23(月) 19:55:18ID:???>JavaScript経由無しでHTMLヘッダからPOSTって投げられるんでしょうか?
当たり前でしょ(;^ω^)
>JavaScript.phpの内容はPHPで書き出しているんですが
だから、Javascript.phpじゃなくて、外部jsそのものをPHP化できないの?って言ってる。
そしたらPHP間の通信だから、何でもできるだろ。
PHP→JSだとPOST受け渡しにAJAX使ったり多少技術力が必要になる局面もある。
つか、なんでも聞く前に調べろよ。
>>900
>>902は全く参考にならん。クソスレ。
はっきり言って要望の良書は少ない。
とりあえず、スーパーサンプルと活用編の2冊買えばいいんじゃね?
正直、PHPは簡単だから、わざわざ本買わなくても、
配布されてるやつをマニュアル片手に読み解けば、
半月でそれなりにはなれる。
>>904
なんで再コンパイルが必要なの?
php.iniの修正くらいで、普通、必要ないよ。
0907nobodyさん
2008/06/23(月) 19:56:26ID:???0909852
2008/06/23(月) 20:32:19ID:???> だから、Javascript.phpじゃなくて、外部jsそのものをPHP化できないの?って言ってる。
> そしたらPHP間の通信だから、何でもできるだろ。
説明に誤解があったようですが、外部jsそのものをPHP化しています。
その「何でも」を伺いたいです。
宜しくお願い致します。
0910nobodyさん
2008/06/23(月) 20:33:29ID:???0911age
2008/06/23(月) 20:37:48ID:DyP7tiX7PHPというよか正規表現の質問になってしまうかもですが
次のコードの出力が「aaa777aaaa」になります。
自分の予想だと「aaa777aaaa888」になると思ったのですが…。
888が入らないは正常でしょうか?
$string='11aaa1222333444555666777aaaa888';
$pattern = '/(a*)(.*?)(7*)/';
$replacement = '${1}${3}';
echo preg_replace($pattern, $replacement, $string);
0912nobodyさん
2008/06/23(月) 20:39:37ID:???なら、本当に何でもできるじゃん。POSTだろうが、他のあらゆる手段だろうが。
それとも、呼び出し側は静的なHTMLファイルなの?
なら、呼び出し側もPHPにしちゃえば?
0913nobodyさん
2008/06/23(月) 20:51:55ID:???とりあえず、jsのおいてあるディレクトリに、mod_rewriteで、書き換えるようにするのは?
<script type="text/javascript" src="hoge_hoge.js"></script>
.htaccessの中身-------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.+?)_(.+?)\.js js.php?val1=$1&val2=$2 [L]
</IfModule>
とか。そんな感じで。
0915nobodyさん
2008/06/23(月) 21:18:08ID:???preg_replaceは、その正規表現にマッチする全てを置換するので、
何個も複合して、置換繰り返してると思われる。
preg_match_all($pattern, $string, $r);
echo "<pre>";
print_r($r);
echo "</pre>";
を見てみれば、なにやら不穏なことになっているのが分かると思う。
0916nobodyさん
2008/06/24(火) 00:01:36ID:xMpVBPQkどうしたらいいでしょうか?
$testAry = array('dog'=>5, 'cat'=>10, 'rat'=>15);
となっているとして、'dog'の位置(0)を返す方法を考えてます
調べたんですが一発で引き出せる関数があるんでしょうか?
なかったらどうしたらいいでしょう。キーはユニークです、重複しません。
アドバイスお願いします。
0917nobodyさん
2008/06/24(火) 00:15:21ID:???0918nobodyさん
2008/06/24(火) 00:22:50ID:???当 た り 前 だ w w w
array_search('dog', array_keys( $testAry ) );
0920nobodyさん
2008/06/24(火) 03:33:24ID:???分かりやすく書くと
$testAry = array();
$testAry['dog'] = 5;
$testAry['dog'] = 10;
print $testAry['dog']; // 10
0921nobodyさん
2008/06/24(火) 03:35:28ID:???0922nobodyさん
2008/06/24(火) 05:37:00ID:???$array[0] = 1 と、$array[0] = 5 は共存しない。
当たり前だよね。連想配列のKEYというのは、数字の添え字を文字に置き換えただけ。
つまり、上記と同様に、
$array['dog'] = 1 と、$array['dog'] = 5 は共存しない。
正直、>>919レベルの質問は初心者スレに書いてくれと毎回思う。
はっきり言うけど、邪魔。ちなみに俺は、>>918。
0923nobodyさん
2008/06/24(火) 05:51:34ID:???0924904
2008/06/24(火) 10:45:20ID:???mssqlの接続について調べたら、どこも再コンパイルするようにと書いてあったからなんですよ。
肝心の再コンパイルについてのことを詳しく書いてる場所が無かったので相談に乗っていただこうと
こちらに書かせていただきました。
0925nobodyさん
2008/06/24(火) 11:09:18ID:???0926nobodyさん
2008/06/24(火) 11:11:23ID:???心配ならバックアップ取るなり別マシンでやってみるなりすれば。
0927898
2008/06/24(火) 11:12:24ID:ayMy4FEX0928nobodyさん
2008/06/24(火) 11:16:51ID:???0929911
2008/06/24(火) 11:44:04ID:tF7holEsecho "<pre>";
print_r($r);
echo "</pre>";
の出力は下記のようになりました
なんで項目が44個ずつなのかワカラナイ…
*適宜改行してあります
*本文長杉出たので2回連投します
0930911
2008/06/24(火) 11:44:36ID:tF7holEs[0]=>Array([0]=>[1]=>1[2]=>[3]=>1[4]=>aaa[5]=>[6]=>1[7]=>[8]=>2[9]=>[10]=>2
[11]=>[12]=>2[13]=>[14]=>3[15]=>[16]=>3[17]=>[18]=>3[19]=>[20]=>4[21]=>
[22]=>4[23]=>[24]=>4[25]=>[26]=>5[27]=>[28]=>5[29]=>[30]=>5[31]=>[32]=>6
[33]=>[34]=>6[35]=>[36]=>6777[37]=>aaaa[38]=>[39]=>8[40]=>[41]=>8[42]=>[43]=>8[44]=>)
[1]=>Array([0]=>[1]=>[2]=>[3]=>[4]=>aaa[5]=>[6]=>[7]=>[8]=>[9]=>[10]=>[11]=>[12]=>
[13]=>[14]=>[15]=>[16]=>[17]=>[18]=>[19]=>[20]=>[21]=>[22]=>[23]=>[24]=>[25]=>
[26]=>[27]=>[28]=>[29]=>[30]=>[31]=>[32]=>[33]=>[34]=>[35]=>[36]=>[37]=>aaaa
[38]=>[39]=>[40]=>[41]=>[42]=>[43]=>[44]=>)
[2]=>Array([0]=>[1]=>1[2]=>[3]=>1[4]=>[5]=>[6]=>1[7]=>[8]=>2[9]=>[10]=>2[11]=>
[12]=>2[13]=>[14]=>3[15]=>[16]=>3[17]=>[18]=>3[19]=>[20]=>4[21]=>[22]=>4[23]=>
[24]=>4[25]=>[26]=>5[27]=>[28]=>5[29]=>[30]=>5[31]=>[32]=>6[33]=>[34]=>6[35]=>
[36]=>6[37]=>[38]=>[39]=>8[40]=>[41]=>8[42]=>[43]=>8[44]=>)
[3]=>Array([0]=>[1]=>[2]=>[3]=>[4]=>[5]=>[6]=>[7]=>[8]=>[9]=>[10]=>[11]=>[12]=>
[13]=>[14]=>[15]=>[16]=>[17]=>[18]=>[19]=>[20]=>[21]=>[22]=>[23]=>[24]=>[25]=>
[26]=>[27]=>[28]=>[29]=>[30]=>[31]=>[32]=>[33]=>[34]=>[35]=>[36]=>777[37]=>
[38]=>[39]=>[40]=>[41]=>[42]=>[43]=>[44]=>))
0931nobodyさん
2008/06/24(火) 11:45:45ID:???0932nobodyさん
2008/06/24(火) 11:57:07ID:???0933nobodyさん
2008/06/24(火) 12:05:54ID:???0934911
2008/06/24(火) 12:12:26ID:tF7holEs申し訳ない…
>>933
ちょっとスッキリ
[0] => Array
(
[0] => 1
[1] => 1
[2] => aaa1
[3] => 2
[4] => 2
[5] => 2
[6] => 3
[7] => 3
[8] => 3
[9] => 4
[10] => 4
[11] => 4
[12] => 5
[13] => 5
[14] => 5
[15] => 6
[16] => 6
[17] => 6777
[18] => aaaa8
[19] => 8
[20] => 8
0936nobodyさん
2008/06/24(火) 14:23:14ID:bfjplt45レンタル鯖にGD用のTrueTypeフォントがインストールされているのか?
↓
サポートに問い合わせ
↓
回答来たけどよく分からん
↓
俺無知乙
↓
色々ググって調べる
↓
phpinfoの./configure欄に--with-freetype-dir=/usr/localとあることが判明
↓
これって使えないの? ←いまここ
という感じで、もう一度サポートに
・/usr/local 以下のフォント一覧の表示方法(もしくは一覧そのもの)
を聞けばいいのでしょうか? それと、このフォントはCGIでも使えるのでしょうか?
ちなみに俺が最初にした質問は
>GDライブラリを使おうと思っていて、enabledであることを確認しました。
>そこで、恐らく幾つかのフォント(特にTrueTypeなどのアウトラインフォント)を
>フォローしていると思うのですが、フォントがインストールされているパスと
>フォントファイル名一覧を教えていただけないでしょうか。よろしくお願いいたします
こんな感じで、それに対する回答は各種パスやらバージョンやらPerlモジュール検索の仕方なんかで、結局フォントの在り処が分からなかったので放置してます
0937nobodyさん
2008/06/24(火) 14:40:10ID:???別にOSにインストールする必要は無い。
無かったら自分でファイル用意すりゃいいだけ。
フリーの日本語フォントもあるからそれで試したら。
0938nobodyさん
2008/06/24(火) 14:40:45ID:???0939nobodyさん
2008/06/24(火) 15:05:13ID:???通常サーバでフォントが必要になることはほとんどないと思うから
そういう但し書きが無い限りフォントは無いと思うよ。
フリーなやつ探したり、自分で買ったやつを自分の場所に置いて使うんじゃないかな。
0940936
2008/06/24(火) 15:10:48ID:bfjplt45その発想は無かった。
自分のPCにインストールして、TTFファイルをコピペして鯖に置けばいいのかな。
とにかく、ありがとう。
0941936
2008/06/24(火) 15:15:40ID:bfjplt45>freetype-dir はライブラリの置き場所指定するだけだし
/usr/local なんてどう考えてもおかしいと思ってたけど、そういうことだったのか。
丁寧な補足に感謝。
0942hoge-php-users
2008/06/24(火) 17:10:26ID:???出たいのですが、最初は雰囲気になれるために聞いているだけでいたいですorz...
過去にこういった集まりに出た方、いらっしゃいましたらご教示お願いいたします。m(_ _)m
0943nobodyさん
2008/06/24(火) 17:35:22ID:XKNDO3RBあまりよく理解していません。
echoするときに$ary[20]という変数名を使いたくない場合、
メモリを節約する(変数のコピーをしない?)にはこれでいいですか?
$ary[20]; //大きなデータ
function foo(&$ary[20]) {
//なんらかの処理
}
foo($ary[20]);
$data =& $ary[20];
echo $data;
0944シャープ
2008/06/24(火) 18:00:29ID:22rywXeuディレクトリにあるファイルで、
testから始まるファイルをすべて削除するには、どうすればよいのでしょうか?
そんなことは可能でしょうか?
0945hoge-php-users
2008/06/24(火) 18:34:02ID:???それでOKです。
メモリを節約する目的で使うのが適当か、はベンチマークとってください。
>>944さん
確か
`rm test/test*`
でできたはず
違っていたら大変なので問題ないところでテストしてください。
0946hoge-php-users
2008/06/24(火) 18:38:54ID:???`rm -rf test/test*`
レンタルサーバとかでは使えないかも…
0948943
2008/06/24(火) 19:31:24ID:XKNDO3RBありがとうございます。
安心しました。
0949nobodyさん
2008/06/24(火) 19:33:23ID:???http://jp.php.net/rmdir
の下の方にあるユーザーからのコメントを参考にすると良いよ
>>945
それはただ単にシステムコールしてるだけだろ
0950nobodyさん
2008/06/24(火) 19:57:50ID:???それをシステムコールとは言わん
0952nobodyさん
2008/06/24(火) 20:35:11ID:ED0kh2wU...
}
上のような感じで、関数の引数のデフォルト値に変数を指定できません。
どうしても実現したいのですが、下のような感じにしないとダメですか(ノ_<。)
function hoge( $foo = NULL ) {
global $bar;
if( is_null( $foo ) ) $foo = $bar;
...
}
0953シャープ
2008/06/24(火) 20:35:39ID:22rywXeu僕は、ファイルをマッチして、ループで削除を繰り返すと考えていたのですが、そのようなことはどうすればできますか?
0954nobodyさん
2008/06/24(火) 20:42:33ID:???後出しうぜー
http://www.php.net/manual/ja/function.opendir.php
http://www.php.net/manual/ja/control-structures.while.php
http://www.php.net/manual/ja/function.preg-match.php
http://www.php.net/manual/ja/function.unlink.php
あとは自力で。
0955nobodyさん
2008/06/24(火) 20:54:56ID:???マニュアル読まない房うぜー
http://www.php.net/manual/ja/functions.arguments.php
あとは自力で。
0959952
2008/06/24(火) 21:30:05ID:???ちゃんと読んでいます。
>デフォルト値は、定数式である必要があり、 (例えば) 変数やクラスのメンバーであってはなりません。
デフォルト値に変数をそのまま使えないということも理解しています。
だから、>>952に自分なりの回避案を記載し、「この方向で最適でしょうか?」と質問しているのです。
>>958
意味が分かりません。
0961952
2008/06/24(火) 21:43:58ID:???>>960
参照渡しでなく、値渡しをするだけであり、
関数外へグローバル変数への影響は一切与えませんので、
問題はないと理解していますが、使ってはいけない理由を教えて下さい。
0962nobodyさん
2008/06/24(火) 21:45:23ID:???アドバイスくれっつーからしただけだ。
まともな返答が欲しけりゃまともな質問者になれ。1も読んでないくせに減らず口叩くな。
0963nobodyさん
2008/06/24(火) 21:51:33ID:???「デフォルト引数値に変数を使う方法はありませんか」としか
思えない俺には、まともなご返答をする資格はないな
0964nobodyさん
2008/06/24(火) 21:51:45ID:???相談「引数のデフォルト値にグローバル変数を値渡ししたい」
アドバイス「グローバル変数なんて使うな」
これはアドバイスとは言わない。
つか、>>962みたいなのしかいないならいいや。
自分よりレベルが下の人間の回答は役に立たない。
0965nobodyさん
2008/06/24(火) 22:04:50ID:???それをどうしても実現しなきゃならん理由って何なの?
普通に組んでたらそんな事ってほぼ無いと思うんだが・・・
define('HOGE','aiueo');
function aaa($a = HOGE) {
echo $a;
}
aaa();
こんな感じでやったら?
0966nobodyさん
2008/06/24(火) 22:08:43ID:???function ($arg) {
extract($arg);
print $foo;
}
0967nobodyさん
2008/06/24(火) 22:10:42ID:???値渡ししたい変数というのは、
配布するスクリプトでユーザーが設定するコンフィグ変数なのです。
ですので、>>965氏のおっしゃるように、
実際は定数として扱うのが正しいのですが、
定数の書き方にしてしまうと、
PHPを知らない対象ユーザーが、間違えた書き方をしてしまう可能性が出てくるのです。
0968nobodyさん
2008/06/24(火) 22:21:46ID:???if (is_null( $foo)) $foo = $GLOBALS['bar'];
...
}
0970nobodyさん
2008/06/24(火) 22:58:15ID:???0972nobodyさん
2008/06/24(火) 23:14:26ID:???設定ファイルにしてパースしろよって思う
0975nobodyさん
2008/06/25(水) 00:14:41ID:???グローバル変数は変らない
ユーザの書き換えミスを心配するなら値チェックするフォームが妥当だと思う
is_null使う所なのか? とか全体的に違和感の有る書き方だけど
0976nobodyさん
2008/06/25(水) 00:34:40ID:???あぁ、そうだったんだ。参照渡しとかあんまりやらないから知らなかった。
ユーザ情報がなんたらとかバリデーションかますとかだったら、クラスでやったほうがいいんでないの。
とか、そういう方向性は。
0977nobodyさん
2008/06/25(水) 00:40:05ID:???グローバル関数に関してはこういうもんだから、別個にVBでも何でも良いから
ファイル書きかえる実行ファイル用意して設定を入れたphpファイル作らせて
からアップロードなりさせたら良いんじゃないの。
気になることがユーザの間違いなら対処方法としてはそれで良いんじゃねのかと
コードから自己顕示欲が漂う
0978nobodyさん
2008/06/25(水) 03:15:16ID:???そうせざるを得ないなら設計が悪い。
それでも自分のコードを押し通したいなら、別に悪コードではないから自己責任で。
0980nobodyさん
2008/06/25(水) 03:45:25ID:???これってメモリ余計に食うしバグの原因になりやすい変数でしょ
大嫌い
0982nobodyさん
2008/06/25(水) 04:03:18ID:???>相談「引数のデフォルト値にグローバル変数を値渡ししたい」
>アドバイス「グローバル変数なんて使うな」
>
>これはアドバイスとは言わない。
>つか、>>962みたいなのしかいないならいいや。
>自分よりレベルが下の人間の回答は役に立たない。
なんだこりゃ・・・親切もいいところだろ。
0983nobodyさん
2008/06/25(水) 04:12:22ID:???でも今は、なるべくローカル変数を使う傾向になってるよ
global変数はセキュリティ的にもバグ的にもチームで分担作業するにしても
あまりよくない変数です
0984nobodyさん
2008/06/25(水) 04:17:02ID:???こんな関数つくらないといけなくなるような設計が
そもそもおかしいというかw
なんでそんな関数必要になるの?マジ不思議
0985nobodyさん
2008/06/25(水) 05:21:37ID:???0986nobodyさん
2008/06/25(水) 07:59:25ID:uulTChwWセッション変数には、まったく無頓着であるということ。
セッション変数もグローバル変数と同等。
セッション変数に、あちらこちらのクラスでたくさんデータを詰め込んでいる
システムをあちらこちらでみる。
しかも、セッション変数が重複することによるバグの原因(運用で発見されることもある)
メモリーでセッションを管理している場合は、メモリーパンクでサーバーが炎上。D
0988nobodyさん
2008/06/25(水) 10:22:36ID:???http://pc11.2ch.net/test/read.cgi/php/1214356448/
次スレ
0989nobodyさん
2008/06/25(水) 10:28:23ID:???どうせモバイルAdSenseだろ。
デフォルトコードから自分でローカル変数に書き換えて作り直せよ。
0990nobodyさん
2008/06/25(水) 14:52:56ID:???グローバル変数にものすごく敏感な人が100人いるとして
セッション変数にはまったく無頓着な人は何人くらい?
0991nobodyさん
2008/06/25(水) 15:09:12ID:???0992nobodyさん
2008/06/25(水) 15:26:59ID:???0993nobodyさん
2008/06/26(木) 14:30:34ID:j2dBQxrb0994nobodyさん
2008/06/26(木) 14:32:16ID:???0995nobodyさん
2008/06/26(木) 15:16:39ID:???3割強
0996nobodyさん
2008/06/26(木) 15:33:03ID:???わざわざ関数の最初でglobal 変数名なんて
やらないといけないのだ物。
ローカル変数は何も宣言しなくても使えるのに。
Perlなんか逆に、何もつけなければグローバル変数。
ローカル変数を使うときには、my 変数名ってやるんだぜ?
0997nobodyさん
2008/06/26(木) 16:54:12ID:???0998nobodyさん
2008/06/26(木) 17:12:40ID:???0999nobodyさん
2008/06/26(木) 17:14:57ID:???【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
1000nobodyさん
2008/06/26(木) 17:16:00ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。