【PHP】下らねぇ質問はID出して書き込みやがれ 133
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2014/04/19(土) 08:04:54.26ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 132
http://nozomi.2ch.net/test/read.cgi/php/1390166591/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0137nobodyさん
2014/04/29(火) 23:48:29.84ID:xGRovx+K【PHPのバージョン】5.5
【連携ソフトウェア】なし
【質問内容】
たとえば1000位ある配列に決まった文字列を結合(添付)する方法ありませんか?
for とかループを使わずに。
【例】 $a[0]="りんご";$a[1]="みかん"; 〜$a[999]="いちご"; の前に 文字列"果物"を結合
→ $a[0]="果物りんご";$a[1]="果物みかん" 〜;$a[999]="果物いちご";
0139138
2014/04/30(水) 00:09:17.38ID:???array_map(function($v) { return "果物".$v; }, $a);
0141137
2014/04/30(水) 02:42:35.49ID:JJA4pL11おお、array_mapですか!
大感謝!教えてくれてどうもありがとう!!(^O^)
0144nobodyさん
2014/04/30(水) 09:29:50.63ID:???個人的な理由でおま
0145nobodyさん
2014/04/30(水) 09:32:47.80ID:???そういった個人的な動機で今回頂いた>>139の回答はベストの回答でした
0146nobodyさん
2014/04/30(水) 09:34:23.31ID:JJA4pL110147nobodyさん
2014/04/30(水) 12:34:26.26ID:???まだ住み着いてるのか
0150nobodyさん
2014/04/30(水) 16:15:09.33ID:bhiAH83u遅くなってしまいましたが、ありがとうございます。
とりあえず>>13についてはローカルでしか行わないのでスルーしますが、何か良い方法があればそちらを使います…
PHPにCSPRNG(暗号論的擬似乱数生成器)は無いですか…またどうしても必要になったときに(代替案を教えてもらうため)質問します
2.は
>どういう小数か
例えば、
$min=0.001; $max=1;
と指定して、その間の乱数が出るようにしたいのです。出来れば関数にしたいのですが…
目的は説明しにくいのですが、精度はmt_rand()位のもので構わないです。
質問2は今聞きたいです、よろしくお願いします…
0151nobodyさん
2014/04/30(水) 16:17:33.77ID:bhiAH83uそしてありがとうございます
0153152
2014/04/30(水) 20:14:48.33ID:???こんな感じはどうだろうか。
function test_rand($min, $max) {
$i = pow(10, strlen($min) - 2);
return mt_rand($min * $i, $max * $i) / $i;
}
このままだったら$minが1以上だとダメだし、桁数が増えるとかなり不安。
というかstrlenの無理やりっぷりがかなりダメっぽいが使えないことはないはず(未検証)
0154nobodyさん
2014/04/30(水) 21:32:15.78ID:mmY1oCt0echo $data['hoge'];を繰り返すのと、
$Hoge = $data['hoge'];
echo $Hoge;を繰り返すのでは
ではどっちが効率がよく早いのですか?
0156nobodyさん
2014/05/01(木) 00:03:43.86ID:???0157nobodyさん
2014/05/01(木) 00:16:05.95ID:???どれも遅いです
これが最速です
class Data{
protected $data;
function __construct($data){
$this->data = $data;
}
protected getData($key){
return $this->data[$key];
}
class Hoge extend Data{}
$hoge = new Hoge($data);
echo $hoge->getData('hoge');
0158nobodyさん
2014/05/01(木) 04:00:50.45ID:???0159nobodyさん
2014/05/01(木) 07:56:42.77ID:???0160nobodyさん
2014/05/01(木) 10:41:59.40ID:???0161nobodyさん
2014/05/01(木) 11:21:41.98ID:???0163nobodyさん
2014/05/01(木) 14:59:09.46ID:rJxa+dp0変わらない
0164nobodyさん
2014/05/01(木) 15:19:40.23ID:???馬鹿は引っ込んでろよ
「早い」かどうかの質問なんだから文字数が少なく、
つまり、タイピングコストの低い後者だろ
0165nobodyさん
2014/05/01(木) 15:25:35.26ID:???0166nobodyさん
2014/05/01(木) 16:00:18.39ID:???こんな質問できるのは幼稚園児までだね
0167nobodyさん
2014/05/01(木) 16:08:07.62ID:???// \\
/( ●) (●)\ ねえ、ゆうにいちゃんちょっと聞きたいんだけど
/::::::⌒(__人__)⌒::::: \ 長い連想配列から、何回もデータを取り出す時、
| |r┬-| | echo $data['hoge'];を繰り返すのと、
\ `ー'´ / $Hoge = $data['hoge'];
/` ‐- __ - ‐‐ ´ \ echo $Hoge;を繰り返すのでは
/ .l _,,ヽ ___ 〉、 ではどっちが効率がよく早いの?
| l / ,' 3 `ヽーっ
ヒト- _ l ⊃ ⌒_つ おじさん達に聞いてもさっぱりわからないって言われてさ
. !__  ̄, ̄ `'ー-┬‐'''''" 「ゆうにいちゃんならパソコンの大先生だから聞いてこい」って。
L  ̄7┘l-─┬┘ ごめんね、こんな初歩的なこと聞いて。
ノ  ̄/ .! ̄ ヽ
└‐ '´ ` -┘
0168nobodyさん
2014/05/01(木) 16:11:27.03ID:???$start = microtime(true);
for ($i = 0; $i < $n; $i++) {
//do something
}
$end = microtime(true);
echo $end - $start;
0169nobodyさん
2014/05/01(木) 16:15:12.32ID:???ああ、底辺ペチパーはそれができないからまともにコードも読めないのか。
これは納得。
0170nobodyさん
2014/05/01(木) 16:32:08.88ID:???早い 後者
0171nobodyさん
2014/05/01(木) 17:16:06.08ID:???0172nobodyさん
2014/05/01(木) 17:22:12.14ID:???他人が作ったもので試す
http://net-beta.net/ubench/
0174nobodyさん
2014/05/01(木) 18:29:18.60ID:???0175nobodyさん
2014/05/01(木) 18:40:33.56ID:???効率重視ならRubyだろjk
0176nobodyさん
2014/05/01(木) 18:41:34.14ID:???0181nobodyさん
2014/05/01(木) 22:01:27.22ID:IVC8nsmp長音の「ー」、これまで変に置換されます。
文字コードはSJIS。文字コードをUTF-8にすれば大丈夫だと思うのですが、
SJISのまま対応することできますか?
0182nobodyさん
2014/05/01(木) 22:04:06.59ID:IVC8nsmp$value = str_replace('[', "", $value);
0183nobodyさん
2014/05/01(木) 22:55:44.35ID:???0184nobodyさん
2014/05/02(金) 00:08:13.50ID:ur7avpqc試していないのですが、
mb_strstr($value, "[")
で長音「ー」にヒットするので
mb対応でもだめみたいです
0185nobodyさん
2014/05/02(金) 00:13:36.91ID:???0186nobodyさん
2014/05/02(金) 00:17:04.58ID:???そもそもファイルをSJISにしとくのがおかしい
UTF-8保存してSJISで出力するようにしろ
0187nobodyさん
2014/05/02(金) 00:28:34.64ID:ur7avpqc>>186
レスありがとうございます。
とりあえず置換で対応して
UTF-8保存してSJIS出力にしてみます
0188nobodyさん
2014/05/02(金) 01:54:16.00ID:???mb_internal_encodingでSJIS(SJIS-winのほうが好ましい)指定してる?
指定してなくてmb関数系を使用する場合は、引数にencodingを指定しないと正しい結果は得られない。
そもそもこういう現象が起きてる理由分かってるかな?
[の文字コードがーに使われているからなんだけど。
だから>>185の回答は、[とー以外にもそういった現象が起きる可能性があるから意味が無い。
というかこの件に限らず、こういう時は他の文字列に変換するとか普通はやったらダメ。
絶対に使用されない文字列に変換するとかなら考えないことはないけど、「cho-on」って絶対に入力されない文字なの?
また>>186も意味が無い。
理由としては上に書いたのと同じで、[とー以外の文字でこういった事が起きる場合があるから。
というか個人的に言わせてもらうと、UTF-8が好ましいって言うだけならまだしも、SJISにしとくのがおかしいっていうのは単なる偏見。
内容によってはSJISでも良いよ。
0189nobodyさん
2014/05/02(金) 03:06:34.56ID:???偏見もクソあるか
デメリットだらけのSJISを使う必要はない
0190nobodyさん
2014/05/02(金) 03:24:42.72ID:ur7avpqcmb_internal_encodingはよく理解していませんでした
mb_strstrにencoding設定もしていなかったので正しく処理できていなかったと思います
参考になりました。ありがとうございます
0191nobodyさん
2014/05/02(金) 03:36:24.09ID:???mb_internal_encodingを設定することで
mb_strstr、mb_ereg_replaceで希望する処理になりました
ありがとうございます
>>189
5C問題で何度かエラーが出たことがあるので
UTF-8保存してSJISで出力に対応しようと思います
ありがとうございます
0192nobodyさん
2014/05/02(金) 04:29:58.32ID:qs7JG5q/ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。
ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。
ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。
ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。
ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。ひんがら目気色悪すぎこっち見んな死ね。
0193nobodyさん
2014/05/02(金) 11:19:50.80ID:???0194nobodyさん
2014/05/02(金) 14:00:12.59ID:???>理由としては上に書いたのと同じで、[とー以外の文字でこういった事が起きる場合があるから。
具体的にどの文字を指しているのかkwsk
0195nobodyさん
2014/05/02(金) 14:15:00.69ID:???つか、質問ならid出してくれ
0196nobodyさん
2014/05/02(金) 15:10:06.98ID:???utf-8のについてなんだけど
0197nobodyさん
2014/05/02(金) 15:16:36.39ID:???0198nobodyさん
2014/05/02(金) 16:53:49.64ID:???0200188
2014/05/02(金) 20:08:58.05ID:???>>186は本当にすまんかった。
以前UTF-16扱ってる時にでバグが出てたから勘違いしてた。
0201nobodyさん
2014/05/02(金) 20:27:24.10ID:???windows使うのがいかんのだろあが
で、UTF-8は何も問題なし?
0202nobodyさん
2014/05/02(金) 20:31:09.78ID:???なんでSJISだけそんなに食い付くの?
このスレで出てる回答の9割は嘘やいい加減な内容なのに。
基本的に質問者を騙して楽しむって暗黙の了解があるんだから水をさすなよ。
0203nobodyさん
2014/05/02(金) 20:36:57.02ID:???0204nobodyさん
2014/05/02(金) 22:32:39.44ID:???多分>>186は普段いないGW厨だろwたまたま来て覗いたけどそういう了解を知らないから間違った内容が目に入って思わず突っ込んだんだろw
0205nobodyさん
2014/05/03(土) 13:22:28.77ID:dwgODfUZ$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute(array($_GET['name']));
// プレースホルダは、値全体に対して使用しなければなりません
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(array("%$_GET[name]%"));
?>
↑これプリペアドステートメントの間違った使い方なんですが、
どっちが間違ってるんですか?
0206nobodyさん
2014/05/03(土) 13:34:58.30ID:dwgODfUZ追加で質問なんですが、
PDOのexecuteで配列で値を渡すのと、
bindParamで値を渡すのは何が違うんでしょうか?
あと静的プレースホルダと動的プレースホルダの違いを教えて下さい。
0207nobodyさん
2014/05/03(土) 13:41:51.51ID:???lmgtfy . com/?q=php+%E9%9D%99%E7%9A%84+%E5%8B%95%E7%9A%84+%E3%83%97%E3%83%AC%E3%83%BC%E3%82%B9%E3%83%9B%E3%83%AB%E3%83%80+%E9%81%95%E3%81%84
0208nobodyさん
2014/05/03(土) 16:05:22.50ID:???http://jp1.php.net/manual/ja/pdostatement.execute.php
http://jp1.php.net/manual/ja/pdostatement.bindvalue.php
http://jp1.php.net/manual/ja/pdostatement.bindparam.php
ついでにbindParamとbindValueの違い。
http://webmaster.chielog.com/php/133.html
http://www.atmarkit.co.jp/fsecurity/column/ueno/60.html
0209nobodyさん
2014/05/03(土) 16:56:02.72ID:dwgODfUZたぶんなんとなくわかりました
ありがとうございました
0210nobodyさん
2014/05/03(土) 17:07:55.71ID:???そんな記憶がある
0211nobodyさん
2014/05/03(土) 19:22:09.61ID:???0212nobodyさん
2014/05/03(土) 20:30:18.66ID:SAeP1+WOecho $data['hoge'];
でここまで白熱してくれるとは思わんかったぉ。
今は会員データをすべて一度変数にいれてるんだけど、
連想配列にすれば、一行で終わって簡単だから、
そっちにしようか迷ったわけですが、
後者今のままのほうがよさそうなので、今のままでいきやす。
どもでしたのでした。
0213nobodyさん
2014/05/03(土) 22:04:17.12ID:???<?php
$a = "10円";
$b = 10;
if ($a == $b) {
echo "一致します";
}else{
echo "一致しません";
}
?>
0214nobodyさん
2014/05/03(土) 22:11:57.25ID:???$a = "10円";
$b = 10;
if ($a === $b) {
echo "一致します";
}else{
echo "一致しません";
}
?>
0215nobodyさん
2014/05/03(土) 22:43:41.22ID:qufEmRhbありがとうございます
>>151のものはユーザーが入力した値を使えないし、
>>152だと1以上の値は使えない、だと痛いです…
とりあえず今すぐ作らなければいけないプログラムではないので、
時間があれば>>152のものを改造するなりどうしても分からなければ再度質問することにします。
それと、また聞きたい事がが出来てしまったのでまとまれば質問します、いつもすみません…
0217nobodyさん
2014/05/04(日) 12:51:19.54ID:SSVjx9p2乱数は基本のmd5とかshなんとかとかを適当にやって、
後はネットで検索するとランダムで英数字を作れる
サンプルが山ほどあるので、多くは桁数を指定できるので、
んで、基本の乱数にプラスでつければけっこう使える。
少数以下はなんに使うかわからないけど、
過激な重複がなければ、マイクロ秒をちびちびと
応用すれば、だいたい現場で使えるかと。
0218nobodyさん
2014/05/04(日) 16:22:19.43ID:???md5とかはハッシュ値を作るものであって乱数を決めるものじゃない。
ハッシュ値を出力するにしろ0-9a-fの範囲しか文字が存在しないから質問の回答としては不適切じゃね?
0219nobodyさん
2014/05/04(日) 17:25:16.70ID:i3JfacAa下の流れで処理するフォームを作りました。
1.送信フォーム
↓
2.確認画面
↓
3.送信完了
確認画面のエラー処理などで送信フォームに戻る処理をすると
参照したファイルがリセットされ「ファイルが選択されていません。」の状態に戻るのですが、
添付したファイルを維持するにはどうすればいいのでしょうか?
0222nobodyさん
2014/05/04(日) 18:44:10.10ID:i3JfacAaありがとうございます
0224nobodyさん
2014/05/04(日) 20:48:58.88ID:???0226nobodyさん
2014/05/04(日) 21:32:48.44ID:SSVjx9p2たしかに、会員サイトは長くやってるけど、
全部辞書とか見たりした独学でやってるんで、
プロっていうか企業のレベルは
わかりません。資格もないので。
現場っていうのは、まあ。そういうレベルではないけど
あるいみ実践なレベルです。
見方かえればごみかもしれません。はい。
0227nobodyさん
2014/05/04(日) 22:20:52.80ID:???0228nobodyさん
2014/05/04(日) 22:39:55.11ID:???乱数は基本のmd5とかを適用にやって現場で使えるかと。
ネットで検索するとサンプルが山ほどあるのでけっこう使える。
0229nobodyさん
2014/05/04(日) 22:45:25.19ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0230nobodyさん
2014/05/05(月) 04:28:54.11ID:???ネットで検索すると(略)サンプルが山ほどある
↑PHPでこれをやるとどうなるか分かってるならいいんだけど。
PHPをけなすいつもの人と勘違いしないで欲しいんだけど、ネットのサンプルのひどさは有名だろ
0232nobodyさん
2014/05/05(月) 12:39:07.88ID:???MD5は衝突を無視すると、与えた入力と一意に対応するので、
解析用の辞書が出回っており、入力が文字列や数列になっていると、
わりと簡単にクラックされるので、用途に注意。
とかかな。
■ このスレッドは過去ログ倉庫に格納されています