トップページphp
1001コメント290KB

【PHP】下らねぇ質問はID出して書き込みやがれ 115

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/01/20(金) 05:43:23.62ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 114
http://kohada.2ch.net/test/read.cgi/php/1325437405/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0417nobodyさん2012/02/06(月) 00:37:45.04ID:O5qz7xhM
>>416
どのくらい古いとアウトですか?
0418nobodyさん2012/02/06(月) 01:00:04.26ID:???
ちょっと古い
http://symple.jp/113.html
0419nobodyさん2012/02/06(月) 01:06:28.25ID:O5qz7xhM
>>418
ありがとうございます。
よくわかってないんですが、最初からwordpress使えば
スマホ、携帯サイトも簡単にできちゃうんですかねえ?
0420nobodyさん2012/02/06(月) 02:39:19.20ID:poXN+WMF
PHPを実行しているサーバーがMacか、環境変数などから自動的に判断するいい方法ってありますか?
Windowsは分かりやすいんですが、macとlinuxの切り分けが難しい。
0421nobodyさん2012/02/06(月) 02:41:27.00ID:???
>>420
http://php.net/manual/ja/function.php-uname.php
0422nobodyさん2012/02/06(月) 22:53:18.01ID:C3dZcj35
最近PHP始めたんですが、Smartyってフレームワークはマニアックなんでしょうか?
0423nobodyさん2012/02/06(月) 23:13:44.85ID:???
質問にならない質問はご遠慮下さい
0424nobodyさん2012/02/07(火) 01:32:37.59ID:???
>>422
まじめ話アブノーマルだと個人的には思う
デザイナーとの仕事が分担できてない環境下だと
結局プログラマがHTMLに仕込んだりしてただただしんどいだけ
0425nobodyさん2012/02/07(火) 03:38:23.51ID:???
フレームワークじゃないよって突っ込むところじゃないのか?
0426nobodyさん2012/02/07(火) 13:10:03.09ID:???
【OS名】CentOS
【PHPのバージョン】6.0
【連携ソフトウェア】MySQL
【質問内容】
PHPからselect * INTO OUTFILE を行うと文字化けしてしまいます。
DBもスクリプトもUTF8で統一しているのですが、どのあたりから調査すればいいのか検討がつきません。
文字化け解消についてアドバイスいただけないでしょうか。
0427nobodyさん2012/02/07(火) 21:05:42.57ID:???
>>426
>>1
0428nobodyさん2012/02/07(火) 23:02:38.45ID:???
>>426
コンソール立ち上げて直接入れろそれ位
0429nobodyさん2012/02/07(火) 23:53:37.99ID:+mH02aFr
>>424
デザイナーさんとの仕事分担ってどんな感じなんですか?
現状、デザイナーさんがデザインして、ファイルをもらい、
自分がそこにPHPのコードを埋め込んでいく感じですが、
普通の現場だとどうしてるんですかね。
0430nobodyさん2012/02/08(水) 01:08:26.67ID:???
ようするにテンプレートが何かという質問だろそれ
smartyスレにでもいけよ
0431nobodyさん2012/02/08(水) 02:44:51.80ID:???
スクリプト使えないデザイナーってなに?絵描きさんみたいなもんか
0432 忍法帖【Lv=9,xxxP】 2012/02/08(水) 03:13:14.01ID:???
readfile()でダウンロードさせたいんですが
うまくダウンロードするウィンドウがでるときと
readfile()で読み込んだファイルの内容が出力されるときがあります
どうしてこのようになるのかわかりません
説明不足だと思いますがエスパーの方いたらお願いします
0433nobodyさん2012/02/08(水) 03:58:08.72ID:???
gzipだから
0434nobodyさん2012/02/08(水) 03:59:26.28ID:???
>>432
header('Content-Type: application/octet-stream');
0435nobodyさん2012/02/08(水) 10:22:32.40ID:3EF2N74K
クッキーについてお尋ねします。

setcookie("TestCookie", "something", time()+3600);

で、クッキーをセットしているのですが、firefoxのアドオン View Cookies1.10.3 で見ると
Expires が Session になっています。ブラウザを閉じると全部消えます。
どんな間違いが考えられますか?
04364352012/02/08(水) 10:26:44.75ID:3EF2N74K
セッションスタートすると、そちらで上書きされてしまうってこともありますか?
04374352012/02/08(水) 10:30:54.77ID:3EF2N74K
すみません、解決しました。
ブラウザの設定の問題でした。
0438nobodyさん2012/02/08(水) 16:44:06.52ID:vfdEsjRW
Smartyスレが見当たらない(消えた?)のでこちらで・・・

Smartyで外部ファイルを読み込む場合、テンプレートとして読み込む(include等)と
変数割り当て等の解析が必要ない場合でもコンパイルされて、
外部ファイルが(別プログラムによって)変更された場合などには、再コンパイルするコードが必要になってしまいます。
Smarty内でこれを解決する(解析不要でただ読み込む)ことって可能でしょうか。

単純にPHPスクリプトで読み込んで変数に割り当てる方法でも対応できますが、
Smarty内からの関数呼び出しで他のテンプレートと同じように扱えればと思いまして・・
0439nobodyさん2012/02/08(水) 17:59:23.48ID:2t5iqwD7
マルチタスク(スレッド)の勉強をしているのですが、
curl系の関数を使う方法しかないんですかね?
curlだとURL指定で並列実行になりますが、
URLから実行せず、絶対パスで指定できたらと思っています。

curl以外の方法かライブラリがあれば教えてください。
04404392012/02/08(水) 18:24:02.84ID:2t5iqwD7
自己レスです。fsockopen使う方法で出来ました。
簡単なので、こちらの方法で行きます。
0441nobodyさん2012/02/08(水) 18:54:52.14ID:???
PHPでマルチスレッドの話になるとすぐcurlってなってるけど、
平行してWebリソースにアクセスすることとマルチスレッドが同義であるという理解が広まってんのかな
0442nobodyさん2012/02/08(水) 19:06:03.75ID:???
>>438
fetch
0443nobodyさん2012/02/08(水) 20:27:56.40ID:???
>>441
じゃ、どうするのが良いの?
0444nobodyさん2012/02/08(水) 20:54:21.52ID:???
>>443
何をするのに?
0445nobodyさん2012/02/08(水) 20:59:17.10ID:???
>>444
いや、マルチスレッドの話だろ?
0446nobodyさん2012/02/08(水) 21:04:25.70ID:???
アスペ注意
0447nobodyさん2012/02/08(水) 21:22:54.15ID:???
アスペの意味を分かってないかわいそうな奴
0448nobodyさん2012/02/08(水) 21:29:29.38ID:???
お前のことなんて分かりたくもないよw
0449nobodyさん2012/02/08(水) 21:33:05.09ID:???
>>448
アスペ乙w
0450nobodyさん2012/02/08(水) 22:12:19.41ID:skUmVjLK
>>444
こええ。わざとだよね?
0451nobodyさん2012/02/08(水) 22:48:45.68ID:???
前も誰かが言ってただろ

PHPはマルチスレッドに対応していない
curlで出来るのはマルチスレッドモドキだって
0452nobodyさん2012/02/08(水) 22:51:01.40ID:???
マルチスレッドキモイに見えた
0453nobodyさん2012/02/08(水) 23:44:16.03ID:???
マルチタスクとマルチスレッドを混同する人、多いね。
0454nobodyさん2012/02/09(木) 01:41:30.50ID:???
多い?
混同してるのは質問者だけじゃん
0455nobodyさん2012/02/09(木) 02:47:23.28ID:???
ググったら混同している人が多いから、=多いという解釈でも良いと思う
0456nobodyさん2012/02/09(木) 02:54:23.71ID:???
>>445,450
ん?並列処理を行うことが目的なの?
目的によって手段を変えるのは当たり前なんだから>>444は別におかしくないだろ
0457nobodyさん2012/02/09(木) 02:56:55.02ID:???
>>441が言っている
「並列処理=並列してWebリソースにアクセスすること」
って考えしかないからそうなるのかな。
それが目的ならcurlでいいんじゃね、とは思うけれど。
04584382012/02/09(木) 09:29:47.73ID:vkcl0tGl
>>442
ありがとうございます。万事うまくいきましたー
0459nobodyさん2012/02/09(木) 10:48:15.39ID:/qdirMi/
PHPerの常識

マルチタスク=マルチスレッド
0460nobodyさん2012/02/09(木) 11:01:18.23ID:mqFxDq28
【OS名】OS問わず?
【PHPのバージョン】PHP5以降
【質問内容】

変数の未定義を注意されるので、自作のスクリプトで使用している変数・配列を
$value = NULL; で全て初期化していますが、関数によっては初期化しても勝手に未定義に戻されてしまうようです。
例えば以下のようなparse_urlがそのひとつなのですが、皆さんはどのように処理してますか?関数から得た値は全部isset等でチェックしています?それともerror_reportingを変えて無視してますでしょうか?
正直なところ、スクリプト内で使用されている関数を通した変数全部チェックするのはとても大変なのでそこまですべきか悩み中です。
php -l phpスクリプト ではチェックしてくれないですよね?

parse_urlを使ったスクリプト例
<?php

error_reporting(E_ALL);

$a = NULL;
$a['host'] = NULL;

$a = parse_url("www.google.com");

if ($a === false) print "parse_url is false\n";

print $a['host']."\n";

?>

実行結果
Notice: Undefined index: host in /home/test/test.php on line 12
0461nobodyさん2012/02/09(木) 11:16:27.50ID:???
$a = NULL;
$a['host'] = NULL;
で、上の行は意味が無いし、
$a = parse_url("www.google.com");
で上の2行が意味なしになるのですが、分かります?
04624602012/02/09(木) 11:19:34.68ID:???
>>461
はい。値が上書きされてしまうので意味なしになるだろうとは思いました。
こういう場合、一般的にどう対応されているのかなー と思いまして。
0463nobodyさん2012/02/09(木) 11:26:51.20ID:???
isset( $a['host'] ) でチェックかな。

あと、そもそものNotice: が出るのは、 
parse_urlの仕様では、'host'が必ず含まれるわけではないからだね。
初期化の話じゃないのよ。

http://php.net/manual/ja/function.parse-url.php
でhostが出るような例をみるといーよ。
0464nobodyさん2012/02/09(木) 11:48:50.45ID:???
本当にくだらない質問なんだけど、皆は
<?php の次の行はインデントする派? しない派?
04654602012/02/09(木) 11:56:22.30ID:???
>>463
回答ありがとうございます。
やはり、怪しい関数は全て割り出してissetでチェックですかねー。

parse_urlでは'host'を使うなら'host'をissetでチェックして
セットされているか確認する必要がありそうですね。
上記の例では'path'にwww.google.comが入るみたいですね。
0466nobodyさん2012/02/09(木) 12:06:12.88ID:vkcl0tGl
>>462
頻繁にではないけど、もともとの$aを初期値としてセットしといて
関数の戻り値を$aにマージするようなコードを書くことはあるよ。
$a = array('host'=>null); // 初期値
if (($b = parse_url('...')) !== false) {
$a = $b + $a; // or $a = array_merge($a, $b);
}
04674602012/02/09(木) 12:52:42.76ID:???
>>466
なるほど。そういう方法もあるわけですね。
0468nobodyさん2012/02/09(木) 14:13:49.01ID:???
>>464
しない
0469nobodyさん2012/02/09(木) 15:55:27.21ID:???
>>464
したことないなぁ。
0470nobodyさん2012/02/09(木) 18:16:16.58ID:???
>>464
俺はしてる。
大した理由なんて無いよ、ただ何となく、見た目の問題。
0471nobodyさん2012/02/09(木) 19:45:03.31ID:???
netbeansをデフォルトの設定で使ってるけどしてないな。
0472nobodyさん2012/02/10(金) 00:34:21.63ID:???
>>464
してない
0473nobodyさん2012/02/10(金) 01:21:29.34ID:???
>>464
ないわー
0474nobodyさん2012/02/10(金) 01:24:38.27ID:???
やっぱしないほうが多数なのか。
俺もそうしよう。 回答有難う
0475nobodyさん2012/02/10(金) 01:31:09.96ID:???
>>461
そんなことするなら
if(empty($a) && isset($a['host'])){
echo $a['host']."\n";
}else{
echo "parse_url is false\n";
}

でいいんじゃ?
0476nobodyさん2012/02/10(金) 12:33:14.85ID:LrusZM1c
バグがでるのは仕方が無いことだと思うのですが、
バグを最小限に押さえるのに良い方法ってありますか。
0477nobodyさん2012/02/10(金) 13:33:19.68ID:???
>>476
書く前によく考える
0478nobodyさん2012/02/10(金) 14:16:48.87ID:LrusZM1c
>>477
考えて考えて、
とりあえず書いてみて 
でも、ゆわれるまで気づきません。

0479nobodyさん2012/02/10(金) 14:46:01.17ID:???
>>476 圧縮バッグ
0480nobodyさん2012/02/10(金) 15:08:52.50ID:???
超低レベルの質問で恐縮です。

配列の中身が
Array
という文字列で出力されてしまうのですが、これはどうしてでしょうか?
0481nobodyさん2012/02/10(金) 15:09:31.57ID:???
中身が配列じゃないの?
0482nobodyさん2012/02/10(金) 15:30:01.53ID:???
>>481
そのとおりでした。
ありがとうございます。
m(__)m
0483nobodyさん2012/02/10(金) 16:29:00.81ID:LrusZM1c
http://d.hatena.ne.jp/tt_clown/20111025/ng_programmer
当てはまりすぎるんですが、ヤバイですか?
0484nobodyさん2012/02/10(金) 17:21:29.90ID:???
いえ、キミはプログラマではないのでヤバくないです
0485nobodyさん2012/02/10(金) 18:45:58.39ID:e8YNZNTF
>>483
プログラマと呼べるレベルじゃないのにほとんど当てはまらなかった
0486nobodyさん2012/02/10(金) 19:26:49.48ID:???
>>483
これ面白いな。GJ
0487nobodyさん2012/02/10(金) 19:30:17.25ID:???
逆に、こういうのを経験してこなかったプログラマ使い物にならん気もするけどな。
0488nobodyさん2012/02/10(金) 19:42:29.54ID:???
>変数名が女の名前
これおまいらもやってるのか?www
0489nobodyさん2012/02/10(金) 21:44:07.87ID:2T73dJDE
関数がFALSEを返すのFALSEはfalseと定義されてるけど、
FALSEがfalseではなくなるかもしれないから
FALSEであることを期待してfalseと比較なんかしちゃってると
痛い目に遭いますよという事で良いですよね?
0490nobodyさん2012/02/10(金) 21:49:35.75ID:???
http://php.net/manual/ja/function.strpos.php

ぜんぜん違う。
0491nobodyさん2012/02/10(金) 21:49:43.60ID:???
>>489
falseと比較するときはFALSEを書くべきなんじゃまいか?
0492nobodyさん2012/02/10(金) 22:45:10.70ID:2T73dJDE
あーわかった。
zend_constants.c上ではTRUE, FALSE, NULLと全部大文字で
定数に登録しようとしてるけど、大文字小文字は無視してるから
小文字に変換されて登録されてて、zend_compile.cで使う時も
小文字に変換し直してハッシュから定数を引っ張り出すだけだったw
0493nobodyさん2012/02/10(金) 22:47:02.97ID:???
FALSEとfalseが違うものだと思ってたの?
0494nobodyさん2012/02/10(金) 23:47:10.19ID:???
ところでFALSE って、なんて読んでる?
フォールス?フォルス?フォールズ?

うちじゃ、ホルスw って読んでる人が一番多いようなw
0495nobodyさん2012/02/11(土) 00:28:43.74ID:???
フォルス一択
0496nobodyさん2012/02/11(土) 02:22:50.24ID:nzSgga7d
フォルス
0497nobodyさん2012/02/11(土) 13:25:30.90ID:dnJZM8FP
すみません、ここが適当でなければ誘導をお願いします。

Mac OS XのXAMPP環境にpeclでmemcacheをインストールしたのですが、有効になりません。
php.iniにはextension="memcache.so"が追加されています。(自動で追加されていた)

試しに、pecl install mongoしてみたら、こちらは問題なく有効になりました。(phpinfo()で確認)

何が原因か分かりますでしょうか?
0498nobodyさん2012/02/11(土) 13:46:54.27ID:???
>>497
初心者はXAMPP使うな
0499nobodyさん2012/02/11(土) 14:06:29.61ID:dnJZM8FP
すいません、初心者じゃないんで、XAMPP使います。
0500nobodyさん2012/02/11(土) 14:15:29.85ID:???
じゃ好きにしてくれ
0501nobodyさん2012/02/11(土) 14:49:26.56ID:???
>>497
vimwareでも買ってcentosでも入れて勉強した方が良いと思うな
0502nobodyさん2012/02/11(土) 15:08:08.04ID:???
逆ギレくっど
0503nobodyさん2012/02/11(土) 15:12:31.66ID:???
>>494
ファルセ
0504nobodyさん2012/02/11(土) 15:15:21.43ID:dnJZM8FP
>>501
vimwareって何ですか?
0505nobodyさん2012/02/11(土) 15:32:18.38ID:???
>>504
書き間違えって奴だ
0506nobodyさん2012/02/11(土) 15:55:57.42ID:dnJZM8FP
あー書き間違いですか。
じゃぁ、CentOSってくだりも書き間違いかな?
CentOSはpeclでインストールするよりyumの方がいいから。
0507nobodyさん2012/02/11(土) 17:30:38.33ID:???
有効になっていないことをどう確認したのかと、パスの通ったところにsoがあるのかを確認したらどうか。
0508nobodyさん2012/02/11(土) 18:05:45.75ID:???
超くだ質ですが、英語の変数名・関数名だと長くなる場合、どうしてますk?

「設立日」の値を保存する変数があったとして、
$establishment_day → 英語変換
$est_day → 短縮
$setsuritsu → ローマ字

などに出来ますが、長すぎると読みづらいし、
短縮文字だとわかりづらい場合があります。
(messageをmsgにするなど、一般的な短縮文字ならわかるのですが・・・

みなさんはどうしてますか?
05095082012/02/11(土) 18:06:06.37ID:bam167aq
sageてました・・・
0510nobodyさん2012/02/11(土) 18:11:09.41ID:dnJZM8FP
>>507
有意義なレスありがとうございます。
phpinfo();とclass_exists('Memcache');で確認しました。

XAMPP for Mac OS X のextensionは、以下のディレクトリに入ります。
/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626/

上記に、pecl install memcache した memcache.so がインストールされています。
これが有効にならなくて悩んでいます。

試しに、pecl install mongo した mongo.so (phpinfo()で有効になっている)を
_mongo.so にリネームすると、無効になるので、このパスで合っているはず。

0511nobodyさん2012/02/11(土) 18:15:17.70ID:dnJZM8FP
>>508
あまり一般的な短縮名でなければ、長いままにしておきます。
一々仕様書やコメントを読まなければいけないのは、他人に不便だと思うので。

長い関数名や変数名はスペルミスや覚えられないという問題もあると思いますが、
入力補完してくれるエディターを使えばいいと思います。
0512nobodyさん2012/02/11(土) 18:35:54.65ID:dnJZM8FP
あ、わかったかも。
PHPのコンパイルオプションに、--enable-memcacheが付いてないからかな?
0513nobodyさん2012/02/11(土) 19:08:10.33ID:F655tJI8
>>508
俺なら$e_day
05145072012/02/11(土) 19:10:56.25ID:???
>>512
> Newer PHP versions don't have a --enable-memcache options; simply installing the PECL package will be enough... so to be absolutely clear, you WON'T have to recompile PHP to use memcache.
ってのを見たので、configureのオプションにあるならつけないとだめかも
0515nobodyさん2012/02/11(土) 19:20:50.28ID:???
>>513
俺もたぶんそうする。

ちなみに今使ってる変数名
$t_name
$t_t_name
$r_name

入力補完もあるし、他の人が読むことを考えると、
もっとわかりやすい方がいいんだろうけど。
0516nobodyさん2012/02/11(土) 20:08:28.77ID:???
コメントに変数の正式な意味を書いておけばよさそう
■ このスレッドは過去ログ倉庫に格納されています