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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2012/06/21(木) 19:37:07.93ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0852nobodyさん2012/07/23(月) 10:21:23.37ID:???
>>851

class Rule {

static function yomekasu ( $resNum ) {
echo '>>' . $resNum . 'をよく読めカス';
}

}

Rule::yomekasu( 1 );
0853nobodyさん2012/07/23(月) 10:26:03.61ID:???
オブジェクト指向のおっさんが再び登場
0854nobodyさん2012/07/23(月) 10:32:29.46ID:???
phpはオブジェクト指向なんだぜ
0855nobodyさん2012/07/23(月) 10:59:34.31ID:???
mb_strlenとかってちゃんと文字コード指定しないとまともに動かないことあるんだな
10時間返せよボケ
0856nobodyさん2012/07/23(月) 11:32:27.55ID:???
>>850->>855
>>1
0857nobodyさん2012/07/23(月) 11:36:26.56ID:???
自治厨うざいですねw
0858nobodyさん2012/07/23(月) 11:44:31.45ID:???
>>856
俺もかよw
どれが俺とは言わないがw
0859nobodyさん2012/07/23(月) 12:11:37.06ID:???
またお前か
気に入らないなら自分でスレ建てろ
しばくぞカスども
0860nobodyさん2012/07/23(月) 12:47:21.60ID:???
立ててきた

【PHP】気軽にPHP質問スレ
http://kohada.2ch.net/test/read.cgi/php/1343015189/
0861nobodyさん2012/07/23(月) 13:46:37.63ID:???
>>856
ちゃんとレス番書けよ低脳
0862nobodyさん2012/07/23(月) 13:55:08.61ID:???
>>850-855
と書けばいいのに
>>850->>855
とか書くのはアホすぎる
0863nobodyさん2012/07/23(月) 14:59:23.71ID:???
>>860
GJ
0864nobodyさん2012/07/23(月) 16:27:26.21ID:SD0s76fa
できるだけ多くの情報量を持つことができかつ短くするには
どういった関数を使えばいいでしょうか?
圧縮・解凍系の物以外でお願いします(デフォルトでバンドルされてないので)
0865nobodyさん2012/07/23(月) 16:30:11.42ID:???
情報って何?
0866nobodyさん2012/07/23(月) 16:43:18.16ID:???
>>864
圧縮・解凍しかないよ
何らかの符号化(圧縮・暗号化)をして、あとで復号化(解凍・解読)するしかないから

ちなみに、
使う文字種を半角英数字のみに制限してなおかつ短くするならBASE64
元のデータの4/3倍程度のサイズになる

ただ短くするのならハッシュ関数系のMD5とかSHA-1
ハッシュ関数なので復号不可能
0867nobodyさん2012/07/23(月) 16:54:37.16ID:???
4/3倍 ?
0868nobodyさん2012/07/23(月) 16:56:59.97ID:???
>>867
そう。圧縮じゃないもん。
http://ja.wikipedia.org/wiki/Base64
0869nobodyさん2012/07/23(月) 17:46:51.98ID:???
単純な数字だけだったら、英数記号使って64進数に変換してみるとか…
0870nobodyさん2012/07/23(月) 17:50:21.36ID:???
大文字26字+小文字26字+数字10字=62字
足りないから記号2字を加えて64字

Base64
08718642012/07/23(月) 18:03:57.29ID:SD0s76fa
レスありがとうございます
やっぱ圧縮以外によさそうなのはないですね
アルゴリズムは公開されてて
ユーザ関数としての実装ならいくつか見つかりましたのでそれを試してみます
0872nobodyさん2012/07/23(月) 21:13:55.03ID:zNnOSXz7
php+javascriptでAjaxをやってるのですが、
文字コードはutf8nと改行コードはCR+LFにしてますが、
改行コードってCR+LFでいいんですかね?
改行コードが違うとブラウザによっては表示されなかったりで
苦戦してます。
0873nobodyさん2012/07/23(月) 21:20:06.58ID:???
いいよ
0874nobodyさん2012/07/23(月) 21:23:46.77ID:???
ブラウザによって表示されないのは書き方が下手糞なだけだろ
0875nobodyさん2012/07/24(火) 00:19:16.75ID:???
php側でもjs側でもいいけど、置換とかしちゃえばいいんじゃね
エスケープついでにやればいいだけだし
08768722012/07/24(火) 00:34:10.23ID:2U8u549s
>>874
ローカル環境でグーグルクロームで表示されていた文字列が
レンタルサーバーにうpしてグーグルクロームでアクセスすると
文字列が表示されないという不具合でした。
調べてみると、改行コードと文字コードをいじったら直ったので
レンタルサーバー上とローカル環境では微妙に違うということです。
0877nobodyさん2012/07/24(火) 00:35:51.04ID:???
改行コード関係ねぇw
0878nobodyさん2012/07/24(火) 02:46:37.14ID:???
アップロード時に文字コード変わってたりして
ftpクライアントソフトの設定見直してみたら?
あとphp.iniとかかもね
0879nobodyさん2012/07/24(火) 03:03:11.32ID:???
php の charset がローカルと違ってたってのはよくある話だな
0880nobodyさん2012/07/24(火) 03:12:33.52ID:???
普通に出力するソース(html)でcharset指定してないんだろ
0881nobodyさん2012/07/24(火) 05:17:28.51ID:???
FTPのアスキーとバイナリの違いも分かってないんだろ
0882nobodyさん2012/07/24(火) 08:36:49.70ID:Q8gvke9w
strstrで探した文字列が見つからない場合、falseが返ってくるとマニュアルには書いてあるのに
うまく判定できないから調べたら、nullが返ってきていた

これ、どういうことでしょうか?普通のCentOS鯖のPHP5.3ですが
0883nobodyさん2012/07/24(火) 09:06:05.80ID:???
は?
nullはFLASEだろ
0884nobodyさん2012/07/24(火) 09:23:24.38ID:???
そりゃあPHPは糞言語だからな
0885nobodyさん2012/07/24(火) 10:22:16.86ID:hlu32Ihw
【OS名】CentOS
【PHPのバージョン】5.3
【質問内容】
for文で変数の末尾の数字を付けたいです。
例:
for ($i = 0; $i < count($ansArray); $i++) {
$this->ans$i = $ansArray[$i];
}
で、$this->ans0, $this->ans1, $this->ans2.....に代入したいのです。
この例のように書くとエラーとなるのですが、何か方法はないでしょうか?

0886nobodyさん2012/07/24(火) 10:29:59.90ID:???
eval("\$this->ans$i = \$ansArray[\$i];");
0887nobodyさん2012/07/24(火) 10:38:53.60ID:???
$this->{"ans".$i}= $ansArray[$i]; でしょ。
0888nobodyさん2012/07/24(火) 10:50:40.67ID:???
ansを配列にしろよw
0889nobodyさん2012/07/24(火) 11:40:43.47ID:???
>>888
それじゃ>>885の求める回答にはならないだろう
0890nobodyさん2012/07/24(火) 11:48:55.30ID:???
>>885
{}で、文字列を展開するやり方知ってる?
$a = 'hoge';
${$a} = 'moge';
echo $hoge;
--------------------
この結果が
--------------------
moge
0891nobodyさん2012/07/24(火) 11:51:22.84ID:???
>>890
Parse error: syntax error, unexpected T_DEC in - on line 5
0892nobodyさん2012/07/24(火) 11:51:31.15ID:???
そんな汚いコード辞めようぜ
0893nobodyさん2012/07/24(火) 11:52:08.91ID:???
だから、

$this -> {'ans'.$i} = $ansArray[$i];

でうまく行くと思う。
でもブレース展開しなくても、

$name = 'ans' . $i;
$this -> $name = $ansArray[$i];

でOK。こっちの方が見通しはいいと思う。
0894nobodyさん2012/07/24(火) 11:56:01.93ID:???
>>882
なにを使ってnullが返ってきていると判断したんだ?
そのソース晒せ。
あと883は無視しとけ。falseとnullは別もんだから。
0895nobodyさん2012/07/24(火) 11:57:09.03ID:???
>>882
いや、false が返ってくるよ。
もう一度確かめてみ?
0896nobodyさん2012/07/24(火) 12:01:03.90ID:???
>>891
お前な、どこからどこまでコピペしてんだよwww
0897nobodyさん2012/07/24(火) 12:07:57.18ID:???
nullとfalseは条件式では同じ意味を持つからどーでもいい
0898nobodyさん2012/07/24(火) 12:10:20.93ID:???
>>897は、マニュアル読み直してこい。
0899nobodyさん2012/07/24(火) 12:12:17.55ID:???
> php -r 'var_dump(strstr("abc", "def"));'
bool(false)
false返ってるね。
FALSEは予約語じゃないと何度言えば・・・
0900nobodyさん2012/07/24(火) 12:15:32.35ID:???
いやstrstrの戻り値がnullだろうがfalseだろうが何を気にする必要があるんだよ
どうせ検索文字列があるかないかを判定するだけだろ?
どっちみち条件式ではfalse扱いなんだから気にするこたーねーよ
0901nobodyさん2012/07/24(火) 12:18:33.78ID:???
>>900
どんな比較演算子で書いているんだ?
0902nobodyさん2012/07/24(火) 12:21:09.39ID:???
んなもんびっくりマークつけるかつけないだけで十分だろうが
0903nobodyさん2012/07/24(火) 12:30:48.49ID:???
有無のチェックだけなら
if ( strstr($mail, "@") )
でいいけど strposだと
if ( strpos($mail, "@") !== FALSE )
ってしないと駄目ってやつだな。
0904nobodyさん2012/07/24(火) 13:25:38.04ID:???
おなかすいた
0905nobodyさん2012/07/24(火) 13:26:47.17ID:???
ディレクトリを開いてファイル一覧を使う処理も同様
0906nobodyさん2012/07/24(火) 13:41:28.99ID:???
>>903
if文の中で真偽値を比較するのって間抜けだと思う
0907nobodyさん2012/07/24(火) 13:51:04.97ID:???
え?
0908nobodyさん2012/07/24(火) 13:51:57.66ID:???
間抜けなのはphp使ってる人の方だから
0909nobodyさん2012/07/24(火) 14:10:26.33ID:???
Perlだと
opendir(D,".");
@files = readdir D;
closedir D;
foreach (@file) {
 print "$_\n";
}

PHPだと
$dh = opendir(".");
while (($file = readdir($dh)) !== false) {
 echo "$file\n";
}
closedir($dh);

PHPはfalseと比較してる部分が特にダサい
09108852012/07/24(火) 14:46:28.78ID:hlu32Ihw
>>886,887,890,893
みなさんありがとう。
見通しのよさの点で、893さんの手法でいきます。
勉強になりました。ありがとうございました。
0911nobodyさん2012/07/24(火) 15:35:42.40ID:???
>>909
DirectoryIterator
0912nobodyさん2012/07/24(火) 16:49:17.69ID:???
booleanしか入りようがないなら、比較せんでもいいんだけどねぇ…。
0913nobodyさん2012/07/24(火) 17:01:19.20ID:???
例えば「0」というファイル名があったらそこでループが終わる
0914nobodyさん2012/07/24(火) 17:02:12.16ID:???
if (!strstr('abc0', '0')) {
echo 'boolへのキャストが糞';
}
0915nobodyさん2012/07/24(火) 18:09:13.06ID:???
キャストじゃないしw
0916nobodyさん2012/07/24(火) 20:32:52.38ID:???
キャストだしw
0917nobodyさん2012/07/24(火) 20:36:28.43ID:???
キャストじゃないしw
0918nobodyさん2012/07/24(火) 20:43:29.27ID:???
キャストだしw
0919nobodyさん2012/07/24(火) 20:46:01.62ID:???
キャリストだしw
0920nobodyさん2012/07/24(火) 20:46:50.24ID:???
キャリストじゃないしw
0921nobodyさん2012/07/24(火) 21:37:51.66ID:???
キリストだしw
0922nobodyさん2012/07/24(火) 21:49:20.28ID:???
キリストじゃないしw
0923nobodyさん2012/07/24(火) 23:20:48.95ID:???
学校ないし家庭もないし
0924nobodyさん2012/07/24(火) 23:22:50.97ID:???
テレビもなければラジオもない
0925nobodyさん2012/07/24(火) 23:23:40.14ID:???
職もない
0926nobodyさん2012/07/25(水) 00:25:31.36ID:???
試験も何にもないしw
0927nobodyさん2012/07/25(水) 00:33:07.37ID:???
あるしw
0928nobodyさん2012/07/25(水) 01:11:31.29ID:???
おかしーし
0929nobodyさん2012/07/25(水) 02:08:39.04ID:???
型変換=キャストだと思ってんの?これだから底辺プログラマは・・・
0930nobodyさん2012/07/25(水) 02:16:37.67ID:???
頂点プログラマだしw
0931nobodyさん2012/07/25(水) 02:24:12.13ID:???
キャスト【cast】プログラミングで、あるデータ型の値を別のデータ型に変換することをキャスト(型変換)という。
wwwwwwww
0932nobodyさん2012/07/25(水) 02:26:24.81ID:???
暗黙的な型変換はキャストとは言わんよ
0933nobodyさん2012/07/25(水) 02:33:18.18ID:???
いずれにしてもフォンノイマンの呪縛から逃れられていない点で
世界中のプログラマは十把一絡げ
0934nobodyさん2012/07/25(水) 05:13:19.80ID:???
おまい達観してるな。
0935nobodyさん2012/07/25(水) 05:51:00.85ID:???
さすが40代
0936nobodyさん2012/07/25(水) 09:39:47.42ID:???
PHPでtieみたいなことはできるの?
0937nobodyさん2012/07/25(水) 09:47:06.82ID:???
>>936
http://perl-cgi.net/function/tie/
0938nobodyさん2012/07/25(水) 10:45:23.99ID:3no0iqfW
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL
【質問内容】メッセージと画像をSQLに格納しています、これらを取り出して1つのウェブページでメッセージと画像の両方を表示する事は出来ますか?
出来る場合はどのように実現するか、または参考ページを教えて頂けると助かります。
0939nobodyさん2012/07/25(水) 10:52:12.36ID:???
>>938
できる
メッセージと、画像のURLを、HTML形式で出力する
0940nobodyさん2012/07/25(水) 10:54:01.56ID:???
>>939
意味がよくわかりません、もう少し具体的に教えてもらえませんか?
0941nobodyさん2012/07/25(水) 10:55:25.49ID:???
php mysql blobでググる
0942nobodyさん2012/07/25(水) 10:55:54.53ID:???
>>937
Pelrではできるよね。うん。
0943nobodyさん2012/07/25(水) 11:08:42.26ID:???
>>941
メッセージ表示用とは別で画像読み込み用のPHPが必要って事ですか?
表示用PHPひとつで両方表示は出来ないって事ですかね?
0944nobodyさん2012/07/25(水) 11:13:09.01ID:???
ブラウザはHTMLのテキストと画像データをいっぺんにもらえないだろ
0945nobodyさん2012/07/25(水) 11:13:37.13ID:???
>>943
HTMLを出力しなさいって話
文字列と画像の両方が表示されるページくらい見たことあるだろう?
0946nobodyさん2012/07/25(水) 11:17:52.47ID:???
画像ってDBに入れるのとパスだけ管理するのと
どっちがいいのだろう
0947nobodyさん2012/07/25(水) 11:19:48.18ID:???
そりゃ状況によるでしょ。
検索対象にならないから入ってても意味無いが
バラバラだと管理が面倒な場合もあるし。
0948nobodyさん2012/07/25(水) 11:21:07.33ID:???
個人的にはパス管理のほうが楽だと思うけど
トランザクション処理が面倒か
0949nobodyさん2012/07/25(水) 11:37:12.90ID:???
高解像度の画像をデータベースに入れるとデータベースのサイズが激増する
0950nobodyさん2012/07/25(水) 11:52:59.08ID:???
超頑張れば出来るんじゃん?
ドット単位で色解釈してbackground-colorで1ピクセルずつ指定していけばw
誰がやるかボケレベルだけど

>>949
コマンド一撃でバックアップできるのは魅力なんだけどね。
0951nobodyさん2012/07/25(水) 11:56:07.11ID:???
クエリにかかる時間が延びないのなら別にいいけど
レス数が950を超えています。1000を超えると書き込みができなくなります。