【PHP】下らねぇ質問はID出して書き込みやがれ 115
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/01/20(金) 05:43:23.62ID:???過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0268nobodyさん
2012/01/31(火) 19:54:53.86ID:???0269nobodyさん
2012/01/31(火) 19:55:15.20ID:???0270nobodyさん
2012/01/31(火) 20:29:05.34ID:???すみません、PHPの部分に気づいていませんでした
該当スレのほうに移動します
>>267
ありがとうございます
少し調べてみると、かなりいい感じだったのでよく調べて検討してみようと思います
0271nobodyさん
2012/02/01(水) 00:34:48.86ID:???ちょっとこれ↓を作ってみようと思うんだけど、
http://www.pixiv.net/member_illust.php?mode=medium&illust_id=24745244
どういう構造にしようかな。
ローカルタイムを取得して、
上と下に2行に分けて表示するだけでいいかな。
0273nobodyさん
2012/02/01(水) 04:18:59.21ID:???質問も回答もOpenIDで編集できるんで適してると思うんですが
0275nobodyさん
2012/02/01(水) 06:41:01.44ID:???0277nobodyさん
2012/02/01(水) 07:26:17.86ID:???0278nobodyさん
2012/02/01(水) 07:32:28.84ID:???0279nobodyさん
2012/02/01(水) 07:43:18.42ID:???完成すると http://qa.lifesciencedb.jp/
0280nobodyさん
2012/02/01(水) 11:16:30.88ID:IMdwWgiD$person= array("のび太","ジャイアン","スネ夫");
$music = array("ハーモニカ","太鼓","バイオリン");
$fruits = ("みかん","りんご","メロン");
こういう配列に、「のび太、、バナナ(変更)」とか「しずか、ピアノ、いちご(追加)」
「スネ夫、引越(削除)」というデータを受け取って更新しようと思います。
それで自分の考えた処理の流れは間違っている感じがするのですが、
どうしたらいいのでしょうか。
つづく
0281nobodyさん
2012/02/01(水) 11:17:38.56ID:IMdwWgiDfor ( $i = 0; $i < count($person); $i++ ){
if ( $person[$i] === $_POST["person"] ){ // すでに登録があるとき
if ( $_POST["hikkoshi"] == 1 ){ // 削除 (配列に入れない)
$shori = $person[$i] . "を削除しました";
} else { // 変更
array_push($person2, $person[$i]);
array_push($music2, $_POST["music"]);
array_push($fruits2, $_POST["fruits"]);
$shori = $person[$i] . "を変更しました";
}
} else { // 新規
array_push($person2, $_POST["person"]);
array_push($music2, $_POST["music"]);
array_push($fruits2, $_POST["fruits"]);
$shori = $person[$i] . "を追加しました";
}
}
$person = $person2; $music = $music2; $fruits = $fruits2;
echo $shori;
つづく
0282nobodyさん
2012/02/01(水) 11:19:36.40ID:IMdwWgiDエラーをだせない。
※ そもそもforループを、配列の人数の数で回したら、新規の人(現在の
人数プラス1)のときに、ループを脱出してしまう?
考えているうちにどんどんわからなくなってしまって・・・。よろしくお願いします。
0283nobodyさん
2012/02/01(水) 11:32:29.85ID:???//あるとき
} else {
//ないとき
}
0284nobodyさん
2012/02/01(水) 11:38:34.36ID:IMdwWgiDありがとうございます。
でも、if ( isset( $person[ $_POST["person"] ] ) で調べたら、全部
あるとき になりそう。
0285nobodyさん
2012/02/01(水) 11:40:42.09ID:IMdwWgiD配列 person の中に、$_POST["person"] があるかどうかを
調べてるんですね。
0286nobodyさん
2012/02/01(水) 11:49:25.84ID:IMdwWgiDif( 引越し ){
配列に入れない
} else {
配列にいれる
}
} else {
if( 引越し ){
エラー
} else {
追加
}
}
こんな感じでいいんでしょうか。
0287nobodyさん
2012/02/01(水) 11:56:49.09ID:???まずやってみればいいんじゃないでしょうか。
0288nobodyさん
2012/02/01(水) 12:07:53.27ID:IMdwWgiDそうですね。似た処理を繰り返してしまうようですが、やってみます。
ありがとうございました。
0289nobodyさん
2012/02/01(水) 13:36:51.57ID:???http://manual.xwd.jp/function.array-search.html
>>283
$personのキーはインデックスしかないようだよ
0290nobodyさん
2012/02/01(水) 14:22:33.02ID:0PT+5Q34以下のtest1のようなクラスの書き方を今までしてきたのですが、
偉い人の書いたクラスやここ最近のフレームワークなんかのクラスを
眺めているとtest2のような書き方をよく目にするんですがどう言った
ご利益があるんでしょうか?
class test1{
function __construct($str="") {
self::test1($str);
}
function test1($str){
echo $str."\n";
}
}
new test1("hoge");
class test2{
function __construct($str="") {
echo $str."\n";
}
function gc($str){
return new test2($str);
}
}
test2::gc("hage");
0291nobodyさん
2012/02/01(水) 14:46:30.12ID:???デザインパターン入門本でもあさるといい
0292280
2012/02/01(水) 15:27:21.00ID:IMdwWgiDarray_searchという関数もあるんですね。
もしこれを使うとしたら、こんな感じになるのでしょうか。すごくすっきり!
ありがとうございます。(動くかどうか、これからやってみます。)
0293280
2012/02/01(水) 15:29:02.25ID:IMdwWgiDif( 引越し ){
$key = array_search( $_POST["person"] , $person );
if( $key ){
unset ( person[$key] );
unset ( music[$key] );
unset ( fruits[$key] );
$shori = $_POST["person"] . "は、引越ししました";
} else {
die( "そんな人はいません" );
}
}
if ( isset( $person[ $_POST["person"] ] ) {
//あるとき
$key = array_search( $_POST["person"] , $person );
$music[$key] = $_POST["music"];
$fruits[$key] = $_POST["fruits"];
$shori = $_POST["person"] . "を変更しました";
} else {
//ないとき
array_push( $person, $_POST["person"] );
array_push( $music, $_POST["music"] );
array_push( $fruits, $_POST["fruits"] );
$shori = $_POST["person"] . "を追加しました";
}
echo $shori;
0294nobodyさん
2012/02/01(水) 15:31:55.30ID:???0295nobodyさん
2012/02/01(水) 15:52:50.73ID:0PT+5Q34デザインパターンのシングルトンって言うんですね
調べてみます。ありがとうございました。
0296動きました!
2012/02/01(水) 16:08:24.79ID:IMdwWgiD$key = array_search( $_POST["person"] , $person );
if( $key ){
unset ( $person[$key] );
unset ( $music[$key] );
unset ( $fruits[$key] );
$shori = $_POST["person"] . "は、引越ししました";
} else {
die( "そんな人はいません" );
}
} else {
if (array_search( $_POST["person"] , $person)) {
//あるとき
$key = array_search( $_POST["person"] , $person );
if($_POST["music"]) { $music[$key] = $_POST["music"];}
if($_POST["fruits"]) { $fruits[$key] = $_POST["fruits"];}
$shori = $_POST["person"] . "を変更しました";
} else {
//ないとき
array_push( $person, $_POST["person"] );
array_push( $music, $_POST["music"] );
array_push( $fruits, $_POST["fruits"] );
$shori = $_POST["person"] . "を追加しました";
}
}
echo $shori."<hr>";
for ($i=0; $i<count($person);$i++){
echo $person[$i]." は ".$music[$i]." を嗜み ".$fruits[$i]." がスキです<br>";
}
0297280
2012/02/01(水) 16:09:34.76ID:IMdwWgiD>>293ではポロポロミスがあったので、動いたものを貼っておきます。
ありがとうございました。
0298ああ、タブが orz 書き直しました
2012/02/01(水) 16:12:44.52ID:IMdwWgiD$key = array_search( $_POST["person"] , $person );
if( $key ){
unset ( $person[$key] );
unset ( $music[$key] );
unset ( $fruits[$key] );
$shori = $_POST["person"] . "は、引越ししました";
} else {
die( "そんな人はいません" );
}
} else {
if (array_search( $_POST["person"] , $person)) {
//あるとき
$key = array_search( $_POST["person"] , $person );
if($_POST["music"]) { $music[$key] = $_POST["music"];}
if($_POST["fruits"]) { $fruits[$key] = $_POST["fruits"];}
$shori = $_POST["person"] . "を変更しました";
} else {
//ないとき
array_push( $person, $_POST["person"] );
array_push( $music, $_POST["music"] );
array_push( $fruits, $_POST["fruits"] );
$shori = $_POST["person"] . "を追加しました";
}
}
echo $shori."<hr>";
for ($i=0; $i<count($person);$i++){
echo $person[$i]." は ".$music[$i]." を嗜み ".$fruits[$i]." がスキです<br>";
}
0299nobodyさん
2012/02/01(水) 16:22:03.39ID:???$key = array_search( $_POST["person"] , $person );
if(引越し){
if($key)foreach($name as $val)unset($$name[$key])
else die("そんな人はいません");
$shori=$_POST["person"]."は、引っ越しました";
}
if($key)foreach($name as $val)$$val[$key]=$_POST[$val];
else foreach($name as $val)$$val[]=$_POST[$val];
$shori=$_POST["person"]."を".($key)?"変更":"追加"."しました";
edho $shori;
俺が書くならこんな感じかな
特別に書いたわけじゃなくて普段からこんな感じで
0300nobodyさん
2012/02/01(水) 16:28:54.51ID:???じゃなくてunset($$val[$key])か
0301nobodyさん
2012/02/01(水) 17:53:41.04ID:???0303nobodyさん
2012/02/01(水) 19:48:25.00ID:???0304nobodyさん
2012/02/01(水) 19:49:29.66ID:???0306nobodyさん
2012/02/01(水) 19:59:04.52ID:???0307nobodyさん
2012/02/01(水) 20:08:36.44ID:???理由を教えてくれると嬉しいです。
0308nobodyさん
2012/02/01(水) 20:10:09.75ID:???要件的に名前がユニークっぽいし、後続のコードもそれが前提みたいだから
$arr['のびた'] = array('music' => '鼻歌', 'fruits' => 'きんつば');
って入れといたほうが楽じゃね?ってことなんだけど。
0309nobodyさん
2012/02/01(水) 20:22:44.52ID:???ifの括弧省略するなってことなんだけど
スペースがなくて読みづらいところ大杉ってことなんだけど
日本語を変数名に使うなってことなんだけど
0311nobodyさん
2012/02/01(水) 20:34:47.13ID:???0312nobodyさん
2012/02/01(水) 20:39:55.52ID:???0313nobodyさん
2012/02/01(水) 20:43:05.99ID:???0314nobodyさん
2012/02/01(水) 20:46:32.31ID:???0315nobodyさん
2012/02/01(水) 20:49:20.80ID:q9L1uqO/なんとか消えるようにしたいのですが、とりあえず一番最初の部分を挙げると
//
$csv_dir = './';
$csv_file_name = 'data.csv';
$disp_size = 100;
$item_index = 'ID,Name,URL,Data';
$csv_file_name = $csv_dir. $csv_file_name;
if ($_REQUEST['submit'] == "add_exec") {$msg = AddNewData($csv_file_name);}
elseif ($_REQUEST['submit'] == "edit_exec") {$msg = Editdata($csv_file_name, $item_index);}
elseif ($_REQUEST['submit'] == "delete") {$msg = DeleteData($csv_file_name, $item_index);}
elseif ($_REQUEST['submit'] == "direct_edit_exec") {$msg = DirectEditdata($csv_file_name);}
elseif ($_REQUEST['submit'] == "backup") {$msg = BackupData($csv_file_name, $csv_dir);}
$data = file($csv_file_name);
$index = 0;
$all_size = sizeof($data);
if (sizeof($data) > $disp_size) {
$index = floor(sizeof($data) / $disp_size);
}
if ($item_index) {
$data = array_reverse($data);
array_push($data, $item_index . "\n");
$data = array_reverse($data);
}
らへんがダメっていってるみたいです
よろしくお願いします
0318nobodyさん
2012/02/01(水) 21:06:06.74ID:???0321nobodyさん
2012/02/01(水) 21:21:27.32ID:???0322nobodyさん
2012/02/01(水) 21:28:55.03ID:???0325nobodyさん
2012/02/02(木) 04:31:23.55ID:???0326nobodyさん
2012/02/02(木) 06:11:51.40ID:???0327nobodyさん
2012/02/02(木) 06:12:47.32ID:???0328nobodyさん
2012/02/02(木) 09:49:16.50ID:???配列の要素の中にも配列をいれられるの?知らなかったー。
>>308のきんつばをとりだすときにはどうするの?
0329nobodyさん
2012/02/02(木) 10:11:46.89ID:???0331nobodyさん
2012/02/02(木) 10:30:05.55ID:???ったく
0332nobodyさん
2012/02/02(木) 12:57:50.80ID:???0333nobodyさん
2012/02/02(木) 13:03:12.77ID:???0334nobodyさん
2012/02/02(木) 14:04:18.61ID:???一通りの基礎はできたので時間分けをしようとしたところでハマりました
//基本のポスト構造
if(date("i") <= 3){
$response = $eb->postRandom("data.php");
}
$response = $eb->reply(8,"reply.php","reply_pattern.php");
の上に、
//昼用ポスト構造
if(date("G") == 12) || (date("G") == 13) || (date("G") == 14)
else if(date("i") <= 3){
$response = $eb->postRandom("hiru_data.php");
}
$response = $eb->reply(8,"hiru_reply.php","hiru_reply_pattern.php");
を置いてみたんだが、手動で実行すると500エラーが出ます
昼用ポスト構造を削除して、基本ポスト構造のみにすると、手動でもCronからでも動くのですが
他のif構造を作って置いても、やはり置いた時点で駄目
そろそろ心が折れそうですorz 誰か助けて…
0335nobodyさん
2012/02/02(木) 14:05:09.37ID:F8NQ2fKh0336nobodyさん
2012/02/02(木) 14:14:59.05ID:???・サポセンじゃないのよ非標準ライブラリは作者にお聞き
0337nobodyさん
2012/02/02(木) 14:24:13.17ID:???0338nobodyさん
2012/02/02(木) 14:35:54.74ID:F8NQ2fKhすまん、マジモンの初心者なんだ
もう少しここで勉強させて
>>337
コピペで修正してみましたが同じ結果でした
何が原因なんだろう…
0339nobodyさん
2012/02/02(木) 14:57:00.77ID:???何はともあれエラーが見られるようになってなきゃ話にならん
レンタルサーバーでやってるならエラーログについて問い合わせる
0340nobodyさん
2012/02/02(木) 15:12:43.50ID:???わかった、ありがとう
サーバーに問い合わせて、もう少しがんばってみるよ
またお世話になるかもしれないので、そのときはよろしくお願いします
0341nobodyさん
2012/02/02(木) 15:13:11.77ID:F8NQ2fKh0342nobodyさん
2012/02/02(木) 15:15:50.78ID:???レンサバで開発するなドアホウ
0343nobodyさん
2012/02/02(木) 19:25:40.59ID:ZbQr3Kg2このお姉さんかわいい。
ひげのおっさんがphpをdisっている。
でも意味が分からない。
phpのバージョンでエラーがでるなら直せばいいし、
フレームワークも自社で決めればいいのに。
phpはごちゃごちゃしてわからないからrubyでというのはおかしくない?
もっといえばjavaでいいじゃん。と思ってしまうのだが、
たまたまこの人がrubyが好きだからじゃね。と思ってしまうのだが
0344nobodyさん
2012/02/02(木) 19:27:17.90ID:ZbQr3Kg2僕の考え間違っている?
0345nobodyさん
2012/02/02(木) 21:28:02.82ID:???ruby ヒゲ PHPでぃすってる
といえばruby開発者の松本か?
あいつはスルーしていい
0346nobodyさん
2012/02/02(木) 22:12:30.69ID:???あまり見かけませんが
0348nobodyさん
2012/02/02(木) 22:17:25.59ID:???いやだよ〜〜〜んm9(^Д^)
0349nobodyさん
2012/02/03(金) 00:06:20.70ID:???0350nobodyさん
2012/02/03(金) 00:17:17.09ID:???金の無駄
0352nobodyさん
2012/02/03(金) 03:55:18.51ID:JJuGjQNC受験勉強に集中するって言って掲示板を閉鎖しました。
0353nobodyさん
2012/02/03(金) 05:13:17.43ID:q+s48ZyT0354nobodyさん
2012/02/03(金) 05:54:27.38ID:???0355330
2012/02/03(金) 11:44:01.78ID:QL2/ase/ついでに報告しますと、>>298 で、
$key = array_search( $_POST["person"] , $person );
のところ、配列の0番目がPOSTされると、$keyが 0 になって、その次の
if文のelseの方にいっちゃいました (´・ω・`) で if( $key===FALSE ) みたいな
判定をすることにして、無事うまくうごきました。
みなさん、どうもありがとうございました!
0356nobodyさん
2012/02/03(金) 18:22:41.42ID:yTXNQKBGディレクトリに存在するファイルを検索している時に、濁音のファイルを探していると一致しません。
これを変換する関数ってありますか?
(sjis-winのutf-8-macみたいな)
<?php
//UTF-8のスクリプト
$file_name = ファイル名を取り出す関数();
if( $file_name == 'ダウンロード' ){
// OK
}else{
// NG
}
0357nobodyさん
2012/02/03(金) 18:32:02.29ID:???0360nobodyさん
2012/02/03(金) 19:31:47.22ID:???http://php.net/manual/ja/class.normalizer.php
0362nobodyさん
2012/02/03(金) 19:59:09.41ID:yTXNQKBGありがとうございます。pearですか。
自分しか使わない場合はこれでいいんですが、配布のことを考えると微妙ですね。
>>360
ありがとうございます。しかし5.3以上なんですね。
pearでどうやってるか調べてみます。
無理そうなら5.3以上は正しく動作するという方向にします。
0363nobodyさん
2012/02/03(金) 20:08:49.47ID:???0364nobodyさん
2012/02/03(金) 20:09:29.69ID:???0365nobodyさん
2012/02/03(金) 20:19:07.72ID:???0366nobodyさん
2012/02/03(金) 20:26:52.05ID:???根本の対策じゃなくて、macのファイルの濁音の問題だけでいいなら
http://labs.unoh.net/2007/09/unicode-on-mac.html
みたいにやればいいわけで
それだ
ありがとう
■ このスレッドは過去ログ倉庫に格納されています