【PHP】下らねぇ質問はID出して書き込みやがれ 109
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/07/28(木) 06:53:37.45ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 108
http://hibari.2ch.net/test/read.cgi/php/1309599473/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0583nobodyさん
2011/08/16(火) 19:24:12.07ID:???$$name
0585nobodyさん
2011/08/16(火) 19:33:36.02ID:3xMYGdVH>>583さん、$name = $chk.$a:
$$name
の$$nameはどうなっているのでしょうか?
使い方がよくわかりません。すみません
0586571
2011/08/16(火) 20:04:00.62ID:???結局、みんなそういうスタンスだから、スタンダードなものがないんだなw
CakePHP向けとかはあるんだけどなあ。
まあ、自分がなにか作って公開するかな。
0587nobodyさん
2011/08/16(火) 20:14:40.68ID:???ライブラリまだー????
0589nobodyさん
2011/08/16(火) 20:54:23.98ID:???{ }を[ ]に変えるだけでおk
0590nobodyさん
2011/08/16(火) 20:56:45.32ID:???$a = '1ban';
$chk1ban = 'これが表示されます。';
$name = $chk.$a:
echo $$name;
0591nobodyさん
2011/08/16(火) 21:00:04.15ID:???0592nobodyさん
2011/08/16(火) 21:14:33.18ID:???$chk1ban = 'これが表示されます。';
↓
$label1ban = 'これが表示されます。';
0593nobodyさん
2011/08/16(火) 22:04:37.30ID:IjmFjSTm281220100908001.jpgをアップロードすると281220100908001.jpg
が画像の名前が変更されるアップロードされます。
同じ名前の画像だと上書きされていきます。
アップロードした画像の名前を変えるにはどうするのですか?
以下の変更点を教えて下さい
<?php
//ファイルの取り出し
$file_name=$_FILES['filename']['name'];
//ファイルMIME)タイプの取り出し
$file_type=$_FILES['filename']['type'];
//一時ファイル名の取り出し
$temp_name=$_FILES['filename']['tmp_name'];
// 保存先のディレクトリ
$dir = 'uploads/';
// 保存先のファイル名
$upload_name = $dir.$file_name;
// JPEG形式、GIF形式のファイルをアップロードする
if(($file_type =='image/jpeg') || ($file_type =='image/pjpeg')){
// アップロード(移動)
$result = move_uploaded_file($temp_name, $upload_name);//これがないと失敗
echo ($result)?'■アップロード成功':'■アップロード失敗';
} else {
// JPEG形式、GIF形式以外のファイルはアップロードしない
echo '■JPEG形式またはGIF形式の画像をアップロードしてください。';
}
?>
<br>
<img src="<?php echo $upload_name; ?>">
0595nobodyさん
2011/08/16(火) 22:15:06.71ID:???ファイル名_連番?_拡張子みたいな形にすりゃいいんじゃない?
0596nobodyさん
2011/08/16(火) 22:23:30.59ID:???0597nobodyさん
2011/08/16(火) 22:56:08.13ID:IjmFjSTm0598nobodyさん
2011/08/16(火) 23:16:46.04ID:???0599nobodyさん
2011/08/17(水) 00:22:46.32ID:RjW3mnLQ$data=array();$data["1"]="あ";$data["2"]="い";$data["3"]="う";
$matches=array();
preg_replace_callback('/([0-9]+)/',function($str){$matches[]=$str;return $data[$str];},"1-2-3");
という、値から数値を取り出してコールバック関数に渡しているのですが
このコールバック関数に
・マッチした文字列以外の値(この例では$data)を渡したい
・return以外の値を返したい($matchesに入れたい)のです
グローバル関数にすればいいのですが、出来ればグローバル関数は汚したくないです。
0600nobodyさん
2011/08/17(水) 00:27:50.86ID:???0601nobodyさん
2011/08/17(水) 00:33:33.03ID:???0602nobodyさん
2011/08/17(水) 00:34:35.47ID:???0603nobodyさん
2011/08/17(水) 00:40:25.40ID:RjW3mnLQえーと、もっと細かく書くと
function syori($hoge){
$data=array();$data["1"]="あ";$data["2"]="い";$data["3"]="う";
$matches=array();
$kekka["k"]=preg_replace_callback('/([0-9]+)/',function($str){$matches[]=$str;return $data[$str];},"1-2-3");
$kekka["r"]=$matches;
return $kekka;
}
$result=syori("1-2-3");
こんな感じです。
この状態だとグローバルにはdataもmatchesもkekkaも出てないですよね
でもdataとmatchesは機能してくれません。多分kekka[k]は"--"、matchesは空白になるのかな。
dataとmatchesをグローバルにすれば出来るけどグローバルにはしたくない という事です。
0604nobodyさん
2011/08/17(水) 00:54:48.13ID:???レベルたけえな
とりあえずどういう値を入れたらどういう結果が欲しいのかね
0605nobodyさん
2011/08/17(水) 01:11:26.91ID:RjW3mnLQfunction syori($hoge){
$data=array();$data["1"]="あ";$data["2"]="い";$data["3"]="う";
$matches=array();
$kekka["k"]=preg_replace_callback('/([0-9]+)/',function($str){$matches[]=$str;return $data[$str];},"1-2-3");
$kekka["r"]=$matches;
return $kekka;
}
$result=syori("1-2-3");
において、$dataと$matchesがグローバルだった場合は
$resultが
$result["k"]="あ-い-う";
$result["r"]=array("1","2","3");
となって欲しいです。
つまり
function($str){$matches[]=$str;return $data[$str];}
の中の$matchesと$dataをどうにかしてこの無名関数の外に出し入れしたい。という事です
0607。
2011/08/17(水) 01:19:36.59ID:???$data=array();$data["1"]="あ";$data["2"]="い";$data["3"]="う";
$matches=array();
$kekka["k"]=preg_replace_callback('/([0-9]+)/',function($str) use (&$matches,&$data){$matches=$str;return $data[$str[1]];},"1-2-3");
$kekka["r"]=$matches;
return $kekka;
}
$result=syori("1-2-3");
print_r( $result );
0608nobodyさん
2011/08/17(水) 01:21:49.80ID:???0609。
2011/08/17(水) 01:22:17.01ID:???$kekka["k"]=preg_replace_callback('/([0-9]+)/',function($str) use (&$matches,&$data){$matches[]=$str[1];return $data[$str[1]];},"1-2-3");
0610nobodyさん
2011/08/17(水) 01:52:08.64ID:RjW3mnLQuse、そういうのもあるのか!
いやマジで感謝です。phpの仕様だから無理だろうなあーとあきらめ半分でしたけどマジで出来るとは
0611nobodyさん
2011/08/17(水) 03:13:27.87ID:???0612nobodyさん
2011/08/17(水) 03:26:03.60ID:???0613nobodyさん
2011/08/17(水) 05:59:18.51ID:???クロージャの所にはちゃんと載ってる
http://www.php.net/manual/ja/functions.anonymous.php
0614nobodyさん
2011/08/17(水) 08:27:01.61ID:???0615nobodyさん
2011/08/17(水) 08:46:37.07ID:???0616nobodyさん
2011/08/17(水) 19:18:23.17ID:QGqYmGAbhttp://www.example.com/
とかあった場合、最後のスラッシュだけを取り除くにはどうしたら良いでしょうか?
0617nobodyさん
2011/08/17(水) 19:43:11.94ID:???まぁ、だからといって、外の変数にクロージャからアクセス出来たらこれまた変な事になるんだが。
>>616
substr($url, -1, 1)とか、rtrim($url, '/')とか?
dirnameでもできそうな気もする
0618nobodyさん
2011/08/17(水) 19:55:27.38ID:???こう言った方法もある
0619nobodyさん
2011/08/17(水) 20:04:26.82ID:QGqYmGAbあ、できれば正規表現でお願いします
0620nobodyさん
2011/08/17(水) 20:10:47.06ID:???プロならpurse_url
0621nobodyさん
2011/08/17(水) 20:16:11.14ID:???最後のスラッシュだけ省きたいのであれば
preg_replace('#/$#',''"http~略")
でいいけどこんなことの為だけに正規表現使うの?
>>620
purse_urlは要件満たしてないだろw
そして無駄な処理が入るわけだからそれを選択する理由は無い
0622nobodyさん
2011/08/17(水) 20:16:38.63ID:???ほんと>>620は尊敬に値するぜ!
>>619
正規表現って、使い方分かって言っておるん?
^(.+)/$
0623nobodyさん
2011/08/17(水) 20:20:37.91ID:QGqYmGAb$url = preg_replace("/\/$/","",$url);
答えてくれた人ありがとうございます。
>>621
ちなみにその#って何ですか?
正規表現を使う理由は、やっぱこういうのって正規表現を使ったほうが良いと思うんですよ。
PHP独自の関数なんていつ使えなくなるかわかりませんし。4から5になって使えなくなった関数もたくさんありますし。
0624nobodyさん
2011/08/17(水) 20:21:19.68ID:???0625nobodyさん
2011/08/17(水) 20:23:01.64ID:QGqYmGAb正規表現は使いまわしできますし。
0626nobodyさん
2011/08/17(水) 20:28:37.05ID:???まぁ、正規表現に慣れる為に、なんでもかんでも正規表現、って道は無くもないとは思う。
普通に文字列処理の関数で出来るんならそっちでやった方がコスト的にもいいが。
0627nobodyさん
2011/08/17(水) 20:30:49.73ID:???0628nobodyさん
2011/08/17(水) 20:34:37.36ID:???そう/の替りに使ってる
PHPの正規表現はセパレータが変えれるから
正規表現を読みやすくする為に変えてる
0629nobodyさん
2011/08/17(水) 22:13:23.78ID:???売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
http://tinyurl. com/43xmk7m
http://tinyurl. com/3mopkfy
0630nobodyさん
2011/08/17(水) 22:37:42.79ID:XqGbAqdG「1日、1回、100ゴールドの給料をやる」
ってアルゴリズムにした場合、
サーバーをずーっと起動しっぱなしで運用するなら、
毎日、夜中の00:00に、そのプログラムを走らせるように
cronとか、タスクスケジューラを組んでおけばそれで済む話だが、
お出かけするときはサーバーの電源も落とす。
てな感じの運営ポリシーだと、サーバーの電源を落としたまま
3日たってしまって、給料の支払いが3日分、たまってしまう。
この場合はどう処理すればいいのか。
なんかのキューに入れておいて、サーバーを起動しで、
最後に給料を振り込んだ日時をテキストファイルに記録しておいて、
今の日時をみて、24時間以上経っていたら、3回分を一度にまとめてふりこむ。
こんな感じの実装でいいのか。
0631nobodyさん
2011/08/17(水) 22:40:41.39ID:???0633nobodyさん
2011/08/17(水) 22:57:54.41ID:XqGbAqdGもっとくわしく。
0634nobodyさん
2011/08/17(水) 23:05:56.64ID:???> 最後に給料を振り込んだ日時をテキストファイルに記録しておいて、
> 今の日時をみて、24時間以上経っていたら、3回分を一度にまとめてふりこむ。
この処理を毎日0時に実行すればいいじゃん。3回分じゃなくて経過日数分だけどな。
あとそういう情報の記録はDB使え
0635nobodyさん
2011/08/17(水) 23:17:26.83ID:???0636nobodyさん
2011/08/17(水) 23:28:02.22ID:???一言いわせてくれ
ぷーすURLってなんだよばーか
0638nobodyさん
2011/08/18(木) 00:45:24.05ID:???0639nobodyさん
2011/08/18(木) 00:50:57.62ID:???基礎給与 = (今日の日付 - 開始の日付 ) * 日給額 で都度計算。
使った額だけ記録しとけ
0640nobodyさん
2011/08/18(木) 01:27:28.35ID:E4ylRXF2暗号化できて不可逆なパスワードのハッシュ化をしたいと思っています。
何がいいでしょうか?
今までcryptを使っていましたが危険らしいので他の方法を考えています。
0641nobodyさん
2011/08/18(木) 01:37:20.81ID:???0642nobodyさん
2011/08/18(木) 01:45:22.12ID:???0643nobodyさん
2011/08/18(木) 02:23:31.86ID:???0644nobodyさん
2011/08/18(木) 02:46:28.50ID:???ただ>>640はハッシュ化したものを
さらに復号化可能なアルゴリズムで暗号化したいと聞こえる
やりたいことがいまいち謎
0645nobodyさん
2011/08/18(木) 03:43:47.67ID:???意地悪なことを言わないで教えて下さい。
暗号化できて不可逆なパスワードのハッシュ化をしたいだけです。
0646nobodyさん
2011/08/18(木) 03:57:20.28ID:???0647nobodyさん
2011/08/18(木) 04:23:15.02ID:???http://stackoverflow.com/questions/4291862/what-is-the-most-secure-hashing-method-php
http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords
0648nobodyさん
2011/08/18(木) 05:25:25.87ID:wM+XEC3JアクセスしてきたユーザのIPアドレスから居住地を判定するライブラリみたいなものって
ありますか?
0649nobodyさん
2011/08/18(木) 05:27:56.97ID:???0650nobodyさん
2011/08/18(木) 05:32:42.76ID:???たまに誤差が発生するけど町名までは確実に取れる
0651nobodyさん
2011/08/18(木) 07:58:08.14ID:wM+XEC3Jおお、すみませんが教えてください
グーグルの奴を使ってみたんですが、なんか上手く動いてくれません
0652nobodyさん
2011/08/18(木) 08:16:29.03ID:???こっちだって元手が掛かってるんだ
0653nobodyさん
2011/08/18(木) 08:53:20.61ID:???素直に解釈すると>>644の言うとおり「やりたい事が謎」としか言えん。
もう少し、それぞれの言葉の意味をよく理解してから質問しなおすのがいいんじゃね?
0654nobodyさん
2011/08/18(木) 09:22:14.68ID:???>>650
IPの仕組的に、町名まで確実にとれるというのはありえない。
自分の使ってるIPだと都道府県すら違って出る。
0655nobodyさん
2011/08/18(木) 09:33:15.94ID:???判別できないわけではないかも?プロバイダ側も個人情報をわざわざ開示しないだろうから非公開
になっているだけでそれで地域が特定できないとは言い切れない。
ハッシュはユニークでは無いからそのキーでしか一致しない代物ではないので絶対に安全かって
言うとそうでもない。少なくともユニークな暗号よりも総当たりされた場合のリスクは高い。
内部犯行を嫌うハッシュか、外部犯行を嫌うユニークかだから好きな方を選べば良い。
0656nobodyさん
2011/08/18(木) 09:38:21.52ID:???あるお客さんで全国の拠点どこでも同じとこになるって文句があった。
インターネットには本社からしかつながってなかったという・・・
パスワードならハッシュがユニークでなくとも別にいいのでは。 使い方の問題。
同じパスワードを使ってる人は、DBに保管されてる暗号化されたパスワードってのは同じなわけで。
0657nobodyさん
2011/08/18(木) 09:39:41.10ID:???そういう事ならMD5とかsha1だろな。
どっちも脆弱性が報告されてるが。
意味も分からんのに心配してるだけなら、とりあえずストレッチしときゃぁいいだろ
0658nobodyさん
2011/08/18(木) 09:40:14.87ID:???0659nobodyさん
2011/08/18(木) 09:46:34.92ID:???0660nobodyさん
2011/08/18(木) 09:47:47.60ID:???0661nobodyさん
2011/08/18(木) 10:00:56.07ID:???0662nobodyさん
2011/08/18(木) 10:12:54.19ID:???で、アルゴリズムをsha256かsha512にしろ
0663nobodyさん
2011/08/18(木) 10:26:22.37ID:???$val = array("Body" => array("BooksBookSearch" =>
array("Items" =>
array( "Item" =>
array( "aaa" => "bbb"),array( "ccc" => "ddd"),array( "eee" => "fff")
)));
json_encode()でJSONは
{"Body":{"Title":{"Items":{"Item":{"aaa":"bbb"},"0":{"ccc":"ddd"},"1":{"eee":"fff"}}}}}
このように生成されます。
実際は、
{"Body":{"Title":{"Items":{"Item":[{"aaa":"bbb"},{"ccc":"ddd"},{"eee":"fff"}]}}}}
の形式で生成したいのですが、どう配列を組めばよいのでしょうか。
0664663
2011/08/18(木) 10:28:26.52ID:5rc0bZA4○ $val = array("Body" => array("Title" =>
でした。
0665nobodyさん
2011/08/18(木) 10:36:06.36ID:???つまり、やりたい形をjson_decode()にでも突っ込んでみる
0666nobodyさん
2011/08/18(木) 10:42:43.24ID:???おそらくデータファイルを外部から叩いてページに表示するJSあたりがあるのではないかと
0668nobodyさん
2011/08/18(木) 10:50:20.95ID:???0670nobodyさん
2011/08/18(木) 10:51:40.10ID:???MD5はもちろん、SHA256もやめとけって書いてある
0671nobodyさん
2011/08/18(木) 10:52:32.96ID:???コピペじゃなくて入力してたから違った
Item => array(
array("aa"=>"bbb")
とせずに
Item => array("aa"=>"bbb")
としてるから違う結果になる
0672663
2011/08/18(木) 10:52:36.63ID:???json_decode() と var_dump を試してきます。
0673663
2011/08/18(木) 10:56:27.62ID:???>>668さんのarray() が抜けてるというのはそういうことか。
array()の構造がもう一個要るのか・・・難しい。
みなさんありがとう
0674nobodyさん
2011/08/18(木) 11:09:36.40ID:8kZPbcbMまだ>>582の問題が解決できません。
どのようにすればいいでしょうか?
できれば書き換えて示していただけると助かります。
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
if($value == $row['seq']){
$chk{$row['seq']} = 'checked'; }
}
<?php
$result = $mysqli->query("SELECT * FROM tbShopmenuCategory ORDER BY seq ");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $chk{$row['seq']} ?>> <?php echo $row[category]; ?>
<?php
}
?>
0675663
2011/08/18(木) 11:14:57.69ID:???<?php
$chk1 = "aaa";
$chk2 = "bbb";
echo "${'chk' . '1'}";
echo "${'chk' . '2'}";
?>
こういうこと?
0676nobodyさん
2011/08/18(木) 11:24:43.73ID:???0677nobodyさん
2011/08/18(木) 11:35:10.47ID:8kZPbcbMwhile ($row = $result->fetch_array(MYSQLI_ASSOC)) {
if($value == $row[seq]){
$chk[$row[seq]] = 'checked'
}
}
<?php
$result = $mysqli->query("SELECT * FROM tbShopmenuCategory ORDER BY seq ");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $chk[$row[seq]] ?>>
<?php
}
$result->close();
?>
このように{ }を[ ]に変えてやったりもしたのですが駄目でした。
0678nobodyさん
2011/08/18(木) 11:41:06.96ID:???http://masha.maakikaku.jp/2008/03/php.php
0679nobodyさん
2011/08/18(木) 11:46:12.79ID:???0680nobodyさん
2011/08/18(木) 11:47:23.10ID:???それに質問きたら別の方法教えてやれよw
>>677
どうだめなのか書け
エラーが出てダメならエラーも書け
ショートオープンタグが使えても使うな
<?= → <?php
0681nobodyさん
2011/08/18(木) 12:03:47.97ID:???■ このスレッドは過去ログ倉庫に格納されています