【PHP】下らねぇ質問はID出して書き込みやがれ 97
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/07/23(金) 06:24:51ID:3G71fl8i過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
前
【PHP】下らねぇ質問はID出して書き込みやがれ 96
http://pc11.2ch.net/test/read.cgi/php/1275032024/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0336nobodyさん
2010/08/24(火) 19:03:15ID:???ttp://pear.php.net/manual/ja/package.database.mdb2.intro-execute.php
0338nobodyさん
2010/08/24(火) 20:58:55ID:???マニュアルサイトを参考にし、以下のコードを書いてみたのですが
executeを実行し取得された結果セットより
実際にデータを参照したい場合にはどの様な記述をすれば良いのでしょうか?
★コード
$types = array('integer');
$sql = "SELECT E_ID , E_NAME FROM TB_TEST WHERE E_ID = :e_id";
$sth = $mdb2->prepare($sql, $types);
$data = array('e_id' => 1);
$affectedRows = $sth->execute($data); // ←ここから先の記述方法が不明
次の記述で値の取得を行う事が出来るかと思い
試してみたのですが旨く行きません。
また、クエリの実行後に複数行が返った来た場合には、
for each 文を使うと予想されるのですがそちらの記述方法も不明です。
どうかご指導をお願い致します。
$affectedRows['E_ID']
$affectedRows['E_NAME']
0339nobodyさん
2010/08/24(火) 21:18:18ID:???0340nobodyさん
2010/08/24(火) 22:20:29ID:bkJGDZ0S【PHPのバージョン】5.3
【質問内容】
phpをインストールしたんですが、サイトにアクセスすると、phpファイルのダウンロードが始まってしまいます。
どの辺を見直せば直るんでしょうか?
お願いします。
0341nobodyさん
2010/08/24(火) 22:27:14ID:???apache経由でアクセスしてるならapache
//home/user/hoge.php
こんな感じでアクセスしてるならapacheとかいれないと無理
0342nobodyさん
2010/08/24(火) 23:55:19ID:???/etc/apache2/mods-available/php5.conf
で
<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/www/webroot>
php_admin_value engine Off
</Directory>
</IfModule>
</IfModule>
という設定がはいってるんですが、なぜかだめっぽいです。
a2enmod でphp5はちゃんと有効にしてはいるんですが。
0343nobodyさん
2010/08/25(水) 00:44:45ID:???/homeより下の階層にあるwebrootじゃphpは動かんな
php_admin_value engine Off
これ書くと特定階層でphp実行できなくする事ができる
http://jp.php.net/manual/ja/apache.configuration.php#ini.engine
0344nobodyさん
2010/08/25(水) 01:31:14ID:???apacheはちゃんと起動してますか?
僕の環境(Ubuntu9.10)だと
sudo /etc/init.d/apache2 start
のように端末から起動してます。
0345nobodyさん
2010/08/25(水) 07:45:20ID:HG+GI0Yh0346nobodyさん
2010/08/25(水) 07:48:33ID:HG+GI0Yh間違えました
連想配列です
二列のcsv を一次元の連想配列にする方法です
よろしくお願いします
0347nobodyさん
2010/08/25(水) 08:13:51ID:???ではだめなの?
0348nobodyさん
2010/08/25(水) 10:31:14ID:ajT8n1be2列目が値
って事なのかい?
0349nobodyさん
2010/08/25(水) 11:31:53ID:+buHcWsK次の様なステップ数(行数)の異なるスクリプトファイルに対して
同じ処理を行うfunctionを挿入する場合、
行数の少ない B.php の方がA.phpに挿入した場合と比べて速いのでしょか?
A.php ⇒ 20,000 ステップ
B.php ⇒ 1,000 ステップ
それとも、function内での処理が全く同じあれば
挿入先のスクリプトファイルのステップ数が幾らであるか
というのは関係無いのでしょうか?
0350nobodyさん
2010/08/25(水) 11:55:19ID:???0352nobodyさん
2010/08/25(水) 12:17:08ID:???0353nobodyさん
2010/08/25(水) 12:19:45ID:???なことは往々にあると思います
0354nobodyさん
2010/08/25(水) 12:36:08ID:???うーんあとあとのメンテナンスのしやすさを鑑みると可読性だな
0355nobodyさん
2010/08/25(水) 12:36:28ID:???どこで時間を食ってるかを的確に測定して効果のありそうな所に
重点的に手を入れないとたいてい無駄な努力に終わるな。
0356nobodyさん
2010/08/25(水) 12:37:40ID:???2chの規制時の避難所として3chつーのがあるよね?
だがその3chについてどうしても気になる点がある。
3ch管理人が飽きた可能性は十分にあるとは思うけど、
次を想定した場合、どちらもで不思議なんだよね。
(A)生きてると仮定した場合
⇒自腹で鯖代を払っている事になる。
普通に考えて飽きて更新しないのならとっくに閉鎖した方が金も掛からない筈なのになぜ?
(B)死んでいると仮定した場合
⇒死んでいるのに鯖代は誰が払っているのか?
ずっと不思議でしょうがない。オレの中では都市伝説と化している。
0357nobodyさん
2010/08/25(水) 12:44:40ID:???0358nobodyさん
2010/08/25(水) 12:54:55ID:???0359nobodyさん
2010/08/25(水) 13:06:31ID:???死んだなら口座とか止められるのでは?→自宅で白骨化。
0360nobodyさん
2010/08/25(水) 13:38:47ID:HG+GI0Yhfile 関数で取得して
foreach でその関数を配列に入れていくんですか?
>>348
そういうことです
というか設定ファイルを読み込みたいんです
0361nobodyさん
2010/08/25(水) 13:51:44ID:???0363nobodyさん
2010/08/25(水) 13:54:23ID:???最近高齢者で流行ってるでしょ
0364nobodyさん
2010/08/25(水) 14:04:36ID:???レンタル鯖の金は誰が出してるのか・・・?
疑問だ・・・
0365nobodyさん
2010/08/25(水) 14:08:57ID:???0366nobodyさん
2010/08/25(水) 14:32:24ID:HG+GI0Yhうぉぉぉこれめっちゃ便利
ありがとうございます
0368nobodyさん
2010/08/25(水) 15:30:57ID:???XMLファイルを保存する際に文字コードを指定したのですが
以下のコードではどうしても変換されせん。
引数の指定を色々変えて試しているのですが、一向に何も変化がありません。
どこに問題があるのか、アドバイスをいただけると助かります。
$data = file_get_contents('http://twitter.com/statuses/user_timeline/44791521.rss');
$data = mb_convert_encoding($data, "utf-8", "sjis");
file_put_contents('log.xml', $data);
0369nobodyさん
2010/08/25(水) 15:50:12ID:???文字コードの変換必要あるの?
0370nobodyさん
2010/08/25(水) 16:12:16ID:???0371nobodyさん
2010/08/25(水) 16:18:51ID:???mb_convert_encoding($str, 'UTF-8', 'HTML-ENTITIES'); かなぁ。
0373nobodyさん
2010/08/25(水) 19:15:18ID:???0374nobodyさん
2010/08/26(木) 12:08:35ID:???http://code.google.com/p/php-excel-reader/
これ、関数の結果の値はセルから取り出せないようなのですが、
取りだす方法は無いのでしょうか?
0375nobodyさん
2010/08/26(木) 13:16:07ID:???(行き着けのスレが過疎りまくって返答がありません。)
マンションの管理組合招集の封筒が届き指定された期限迄には
参加の有無を管理人に出さなくてはならなかったんだけど、
しばくら忘れてました。
そしたら数日したら、私のメールアドレスを知る筈が無い管理人から
宛先 : mansion_kanrinin@hudousan.co.jp
送信元 : mansion_kanrinin@hudousan.co.jp
という風に私のメールアドレスが指定されていないにも
関わらず「***参加の有無をご連絡下さい。」といった旨のメールが届きました。
なぜ、この様にメールアドレスが送信元と同じにも関わらず
私の元にメールが届いたのでしょうか?
もしかして、マンションの管理人にクラッキングされてる!???
0376nobodyさん
2010/08/26(木) 13:26:14ID:???単にBCCであなたのアドレスに配信しているだけなんじゃないかと思うんだけど、
意味を取り違えてますかね?
互いに面識の無い相手に一斉に配信する場合、BCCに各メールアドレスを入れて、
TOにも何か入れないといけないので自分自身を入れて一斉配信する、というのは
普通によく使う手段なのでそれかと。
0377nobodyさん
2010/08/26(木) 13:28:39ID:???> そしたら数日したら、私のメールアドレスを知る筈が無い管理人から
これはちょっとわからない。
マニアックな管理人がパケットをスニッフィングしてるとしても、
そんなことして手に入れたアドレスに公的なメールを配信することは
無いと思うので、既にあなたが管理人にアドレスを教えていたのでは
無いでしょうか。もしくはあなたの家族とか。
0378nobodyさん
2010/08/26(木) 14:13:22ID:???私のメールアドレスをマンションの管理人が知らず、
また、受信したメールアドレスの宛先は送信元と同じにも
関わらず私のWindowsメールへメールが届いていたので不思議なのです。
【届いたメールの形式】
宛先 : mansion_kanrinin@hudousan.co.jp
送信元 : mansion_kanrinin@hudousan.co.jp
【これなら理解出来る形式】
宛先 : my_mail_address@my.home.co.jp
送信元 : mansion_kanrinin@hudousan.co.jp
うーん、BCCどうたらというでちょっと気になった事がありますが、
もしかしたらマンションに入居した頃にメールアドレスを書いたかも・・・
0380nobodyさん
2010/08/26(木) 14:17:41ID:???貴方でも可能です。 さてスレ違いなのでこの辺で
0381nobodyさん
2010/08/26(木) 15:11:32ID:???どういう風にすればできますか?
>あて先欄に表示されるのがそれでも貴方に送ることは出来ます。
最後にこれだけお教え下さい。
0382nobodyさん
2010/08/26(木) 15:16:16ID:???だから使ってるメールソフトのスレっぽい所で聞いてください
0383nobodyさん
2010/08/26(木) 15:17:28ID:???>>376さんが言ってるようにBCC。
BCCのやり方はメーラー次第。
BCCすら知らないのなら、こっちいったほうがいい
http://hibari.2ch.net/pcqa/
0384nobodyさん
2010/08/26(木) 15:41:19ID:8YbqyEw3って意味ならBCCでは無理じゃね?
入居者に貸与されるメールアドレスでPOPサーバーの運用も管理会社が行っているなら可能
0385nobodyさん
2010/08/26(木) 15:51:42ID:???To : マンション管理人のメアド
From : マンション管理人のメアド
BCC : マンション住民の人達のメアド(>>375氏のメアド含む)
って事だと思うよ
で、>>380-381は 単にToに表示されてないメアドへメール送信という
意味だと思うのでBCCでいいかと
何にせよスレ違いだな。
0387nobodyさん
2010/08/26(木) 16:24:00ID:ldK5AnTQPHPUNITを使っているのですが、依存関係のオブジェクトのテストハーネスが書けません。
class A{
public function hoge(){
$obj=new B();
$value=$obj->fuga();
//$valueに対するなんらかの処理
return $value;
}
}
みたいなコードの時に、オブジェクトBのモックを用意して、
Aに対してテストしたいのですが、オブジェクトA側でコンストラクタや、
メソッドからオブジェクトBのインスタンスを受け取っていないので、
モックオブジェクトに入れ替えできません。
どうやって書くのが普通なんでしょうか?
0388nobodyさん
2010/08/26(木) 16:58:59ID:T8D7cHt2どうかをチェックする関数を作りました。
そして、次の様に2回連続してそのfunctionをコールしたところ
2回目でなぜかエラーが発生してしまいます。
どうすれば連続実行してもこの様なエラーが出なくなりますでしょうか?
<< コード >>
$p_val = "aaa";
$i = TestClass::CheckIsExists($p_val); // ← 成功
$p_val = "bbb";
$i = TestClass::CheckIsExists($p_val); // ← 失敗(※)
static public function CheckIsExists( $p_val )
{
//〜略〜
//※SELECT 〜 を実行してレコードが存在するかどうかのチェック処理
$mdb2->commit();
$mdb2->disconnect();
}
<< エラーメッセージ >>
※Call to a member function prepare() on a non-object
0389nobodyさん
2010/08/26(木) 17:09:09ID:s6AS28G2redirect($url);
でリダイレクトできるけど、
php5.2.5ではできない?
0390nobodyさん
2010/08/26(木) 17:10:14ID:???0391nobodyさん
2010/08/26(木) 17:16:00ID:T8D7cHt2略にはちゃんと DB接続 ⇒ クエリの発行 というお決まりコードを入れてます。
調べてみたところ どうも2回目の実行時に $mdb2 が Invalid expression になっていました。
0392nobodyさん
2010/08/26(木) 17:42:07ID:???レベルで接続して使い捨てってのはあまり感心しないな。規模が小さい
それでも動くけどね。
0393391
2010/08/26(木) 18:14:42ID:T8D7cHt2どうも DB接続部分を外出しにしているのですが ( db_con.php )
2回目の関数のコール時にこの部分が読み込まれない事が原因の様です。
static public function CheckIsExists( $p_val )
{
//DB接続用外部スクリプトの読込み
include_once ( "db_con.php "); // ←2回目の関数のコール時にこの中が読み込まれない
// 〜 略 〜
}
外部ファイルを連続で読み込もうと
include_once では無く、 include を指定すると cannnot redeclare エラーが出てしまうのですが
このエラーを出さない様にして、外部スクリプトを連続で読み込むにはどうすれば良いでしょうか?
0394nobodyさん
2010/08/26(木) 18:26:39ID:???0395nobodyさん
2010/08/26(木) 18:29:34ID:i8uPcobC可読性をあげるためだけに処理を一部関数化して外出ししてしまう、
ということを考えているのですが、可読性をあげるためだけに関数化、
外部ファイル化をおこなうというのは普通にあることなのでしょうか?
そのへん、他人のソースを見たことが無いのでよくわからなくて・・・。
0396nobodyさん
2010/08/26(木) 18:29:46ID:T8D7cHt2作りは悪いかもしれませんが
どうしても目前のこれを何とか解決したいです。
どうすれば、
同一の外部スクリプトを連続してコールすることが出来る様になりますか?
0397nobodyさん
2010/08/26(木) 18:34:03ID:???多分インクルードしてるファイルで関数かクラス定義してるんで、2回読み込まれると
グローバルで関数を2回定義するんで エラーになるから、複数回読んじゃだめ。
include_once ( "db_con.php "); そのクラスの外にだしても動くんじゃね?
全部見ないとちゃんと回答出来んけど。
0398nobodyさん
2010/08/26(木) 18:42:46ID:???0399nobodyさん
2010/08/26(木) 18:46:01ID:???0400nobodyさん
2010/08/26(木) 18:47:44ID:8YbqyEw3include_once は外部ファイルを読み込もうとした際にすでに読み込まれていたら再読込はしない
include だと同じ関数を再度定義しようとするから既に存在しているからエラーとなる
>>395
ファイルが長くなるのが嫌だとかで考えていたら>>391みたいな事になったりする
0401nobodyさん
2010/08/26(木) 18:50:22ID:T8D7cHt2外出しにしてる db_con.php の中身なんですが、
実行環境が
ローカル(Windows)
サーバ(Linux)
となっており、ローカルとサーバとでDB接続文字列等が異なる為に
db_con.php の中で、いずれの環境で実行されているかを判定し、
DB接続文字列を生成した上でDB接続を行う様にしています。
外出にしている部分を関数の中に直接記述したところ問題無く
functionの連続実行をする事が出来ました。
これまでは、DB接続文字列をサーバへアップロードする場合に書換えていたのですが、
毎度アップロードする際に修正するのは大変なのでスクリプト内で分岐させる様に変更しました。
0402nobodyさん
2010/08/26(木) 18:50:42ID:???の両方が含まれていて、何かの定義をしているところは2回読み込むとエラー
になるのだが、db接続は毎回行いたいという、あちらを立てればこちらが立たず
な状況と見た。
あまりに作りが悪すぎるので全部捨てて作り直したほうがいいと思うが
どうしてもというならその2つを分離して別ファイルにすればなんとかなる
んじゃないかな。汚いけど。
0403nobodyさん
2010/08/26(木) 18:52:05ID:???0404nobodyさん
2010/08/26(木) 19:01:58ID:???というURLなら、$_GET['var']で取得出来ますが、
http://mypage.com?aaaaa
のようなURLから、aaaaaの部分を取得する術はありますか?
0405nobodyさん
2010/08/26(木) 19:10:25ID:???ならできるけど
0406nobodyさん
2010/08/26(木) 19:13:11ID:???同じか
$p = explode('/', $_SERVER['PATH_INFO']);
$p[1] に aaaaa って入ってると思う
0407nobodyさん
2010/08/26(木) 19:15:13ID:???$_SERVER['QUERY_STRING'] に aaaaaaa って入ってる
0409404
2010/08/26(木) 19:19:38ID:???QUERY_STRINGってのもあるんですね。
ありがとうございます。
0410nobodyさん
2010/08/27(金) 16:45:01ID:1VS1YiRM0411nobodyさん
2010/08/27(金) 16:56:03ID:???0412nobodyさん
2010/08/27(金) 16:58:36ID:1VS1YiRM分かってますよ^^
もしかして、Smartyしか知らないんですか?
0413nobodyさん
2010/08/27(金) 17:06:24ID:???Twig
Smartyの何が気にくわないのか(それとも単にSmarty以外が知りたいだけなのか)
を書くとレスがつきやすいかもしれない
あとSmarty3で結構変わってるみたいだからsmarty2使ってるなら3も試した方がいいかも。
0414nobodyさん
2010/08/27(金) 17:12:22ID:???Smartyってこれ流行ってるのか?
これ使うと何か素人がソース見た時に「PGのレベル低!誰でもできそう」
とか思われそうなので出来る限り使いたくない。
0417nobodyさん
2010/08/27(金) 17:32:00ID:???0418nobodyさん
2010/08/27(金) 17:33:11ID:???玄人「プッ」
0419nobodyさん
2010/08/27(金) 17:37:58ID:???素人にどう思われようが良いだろうがw
仕事だとPHP(Smarty/Zend Framework)というのは昔からよく見る
>>417
逆にフレームワーク使ってると、さらにsmartyまで使うのは面倒ってならないか?
viewは素のPHPの場合が多いよ俺は
0420nobodyさん
2010/08/27(金) 17:42:10ID:???0421nobodyさん
2010/08/27(金) 17:42:43ID:???・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0422nobodyさん
2010/08/27(金) 17:43:21ID:???他人が「見る気もしない」ソースにしとくと色々安全なのさ。
勿論社内で使う奴だけだけど。
俺が辞めた後に入った奴は悲惨だと思う。
勿論コメントも全部消してある。
0423nobodyさん
2010/08/27(金) 17:58:38ID:???0425nobodyさん
2010/08/27(金) 18:01:23ID:???0426nobodyさん
2010/08/27(金) 18:06:53ID:???出来る限りそういうの消えるようにしてるな
0427nobodyさん
2010/08/27(金) 18:18:15ID:???0428nobodyさん
2010/08/27(金) 18:20:57ID:???0429nobodyさん
2010/08/27(金) 18:46:13ID:mDlhgxIhフルHDモニタで開発していればさほど問題は無いが、モバイルPCで開発やってる
時なんかは死ねる。
これってもしかしてテキストエディタで書いてるから悪い、とかそういう問題かな?
いや、そもそもEclipseとかPHPプラグインがどれほど便利なのかとか、使ったこと
無いから全然知らないんだが。
0430nobodyさん
2010/08/27(金) 18:54:20ID:???* ディレクトリ構成がプログラマの名前
* 関数の頭にプログラマの名前が付く
* バージョン管理システムを使わないまたはVisual SourceSafe
* コミットは朝しろ,帰る前にするなと言う
* 手動でビルドテストしなければならない
* オレオレコンテナしか信じない
* ハッシュは遅いから使うべきでないと言う
* 「よくわからんから」多重継承は禁止すべきとか言う
* 正規表現を使うよりCで書いたほうが速いと言う
* クラスがわからないのでクラスを使ってくれない
* 1つのソースコードが10,000行でも気にしない
http://gihyo.jp/dev/clip/01/orangenews/vol58/0007
0432nobodyさん
2010/08/27(金) 18:57:32ID:???自分のphpソースを確認してみたけど、横長で死ねるようなとこは見当たらなかった。
横900pxぐらいの領域だけど、ほとんどが700〜800ぐらいに収まってたよ。
0433nobodyさん
2010/08/27(金) 19:04:18ID:???きっといろいろ問題が見つかるのではあるまいか
個人的にはこの書き方が嫌いで
$untarakantara = array(1,
/*ここのインデントをタブやらスペースやらで調整*/ 2,
/*ここのインデントをタブやらスペースやらで調整*/ 3);
この書き方をオススメしたい
$untarakantara = array(/*ここで改行*/
/*タブひとつ*/ 1,
/*タブひとつ*/ 2,
/*タブひとつ*/ 3,
);
0434nobodyさん
2010/08/27(金) 19:04:20ID:???可読性のためにZendとか大抵のコーディング規約で80文字を目安に改行するようになっている
これはシェルの文字数が横80文字だった名残。
テキストエディタでも80文字で改行される設定になってることが多いのはそのため。
要はコーディング規約の通りに書いていけば見やすいコードになる
0435nobodyさん
2010/08/27(金) 19:41:54ID:???人力整形は時間の無駄。
0436nobodyさん
2010/08/27(金) 19:48:28ID:???■ このスレッドは過去ログ倉庫に格納されています