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

【PHP】ID出さなくても質問OKなスレ【初心者歓迎】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/02/03(火) 01:09:36ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0051nobodyさん2009/03/23(月) 10:51:14ID:???
..47
PHP ファイルダウンロード
でググレ貸す
0052472009/03/23(月) 10:53:13ID:???
寝て、起きていじったらすぐにできました
お騒がせしました
0053nobodyさん2009/03/23(月) 11:31:06ID:???
>>49
$date= '2009-04-01 08:40:00';
preg_match("/(\d{4})\D(\d\d?)\D(\d\d?)\s+(\d\d?):(\d\d?):(\d\d?)/s", $date, $d);
$d= localtime(60*30+mktime($d[4], $d[5], $d[6], $d[2], $d[3], $d[1]));
printf("%d-%02d-%02d %02d:%02d:%02d", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]);
0054nobodyさん2009/03/23(月) 11:40:21ID:???
>>53
長!!
確認してみます。ありがとうございます。
0055nobodyさん2009/03/23(月) 12:05:47ID:???
>>53
なにそのセンスもない無駄なコード
正規表現なんて使わんでもできる

>>49
今メシ食うから食べ終わったら書いてやるから待ってろ
0056nobodyさん2009/03/23(月) 12:49:22ID:???
マダー?
0057nobodyさん2009/03/23(月) 12:57:32ID:???
ほれ
date_default_timezone_set("Asia/Tokyo");

$time = 60*30;
$data = "2009-04-01 08:40:00";
$st = strtotime($data)+$time;
echo date('Y-m-d H:i:s',$st);
0058nobodyさん2009/03/23(月) 12:59:30ID:???
ウワショボw
0059nobodyさん2009/03/23(月) 13:01:29ID:???
難しくないことをわざわざ複雑に書く>>53=>>57さんどもっすw
0060nobodyさん2009/03/23(月) 13:05:48ID:???
>>49
echo date("Y-m-d H:i:s",(strtotime("2009-04-01 08:40:00") + 60*30));
0061nobodyさん2009/03/23(月) 13:08:23ID:???
別に複雑に書いたつもりはないけど、処理の過程が明確で日時の場合月日だけとか
時分秒だけとか副次的に利用することがおれの場合は多いからこう書くクセがついてるだけ
0062nobodyさん2009/03/23(月) 13:09:55ID:???
>>60
echo date( "Y-m-d H:i:s", strtotime( "2009-04-01 08:40:00 +30 min" ) );
0063nobodyさん2009/03/23(月) 15:08:52ID:???
>>61
そういう場合でも正規表現は使いません
0064nobodyさん2009/03/23(月) 15:10:08ID:???
おまえらすげーぞ
参考にしてみるわ。
0065nobodyさん2009/03/23(月) 15:11:15ID:???
そういう場合ってwwww
使えるなら使うのがプログラミングの基礎ですよ
甘いですね
0066nobodyさん2009/03/23(月) 15:23:21ID:???
お前は何を言ってるんだ
0067nobodyさん2009/03/23(月) 18:00:02ID:???
正規表現を覚えたてで何でも使いたい頃なんだよ多めに見てやれや
0068nobodyさん2009/03/23(月) 18:18:00ID:???
正規表現が理解できないゆとりが正規表現潰しに必死です
三項演算子が理解できないゆとりが(ry
できれば何でもいいんだよ
ちなみに俺は>>61じゃない
0069nobodyさん2009/03/23(月) 18:19:16ID:???
どっちが効率がいいのか明確なのに一名必死ですねw
0070nobodyさん2009/03/23(月) 18:23:25ID:???
どこがどう何が効率がいいの?
コードの短さだけを見て判断してるの?
0071nobodyさん2009/03/23(月) 18:23:42ID:???
ほんとだよなdateにフォーマット渡せば済むのにわざわざ正規表現使う意味がわからない
0072nobodyさん2009/03/23(月) 18:29:23ID:???
コーディングスタイルは人それぞれだろ
意味がわからないってwww
0073nobodyさん2009/03/23(月) 18:30:34ID:???
それコーディングスタイルとは言わないだろ
0074nobodyさん2009/03/23(月) 18:34:02ID:???
批判してるやつは自分が完璧だとでも言いたいのか?
本当に他人のコードを批判できるのは
言語開発側にいるハッカーや学者等一握りしかいない
全てのコードをアセンブラレベルで完璧に効率よく組むことができない限り
たかだか一部分の話題をとって他人を批判するもんじゃない
自分のコードがいかに効率的か完璧か自信があるか?
0075nobodyさん2009/03/23(月) 18:43:54ID:???
少なくとも正規表現よりは効率的だわ
0076nobodyさん2009/03/23(月) 18:51:40ID:???
んじゃ、そろそろどなたかベンチマークで決着つけてください。
0077nobodyさん2009/03/23(月) 18:54:52ID:???
あ〜あ正規表現クンが荒れてきたよwwwwwwwwwwwwww
0078nobodyさん2009/03/23(月) 19:01:15ID:???
頭の悪いやつばっかだな
0079nobodyさん2009/03/23(月) 19:05:23ID:???
>>53は正規表現が好きなんだから使えばいいんじゃないの
フォーマット変更するとき一々何か所も変更するのが苦にならないんだから
0080nobodyさん2009/03/23(月) 21:10:05ID:???
date_default_timezone_set('Asia/Tokyo');

$time[1]['start'] = microtime(true);
for($i=0;$i<10000;$i++) {
date("Y-m-d H:i:s",(strtotime("2009-04-01 08:40:00") + 1800));
}
$time[1]['end'] = microtime(true);


$time[0]['start'] = microtime(true);
for($i=0;$i<10000;$i++) {
$date= '2009-04-01 08:40:00';
preg_match("/(\d{4})\D(\d\d?)\D(\d\d?)\s+(\d\d?):(\d\d?):(\d\d?)/s", $date, $d);
$d= localtime(60*30+mktime($d[4], $d[5], $d[6], $d[2], $d[3], $d[1]));
printf("%d-%02d-%02d %02d:%02d:%02d", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]);
}
$time[0]['end'] = microtime(true);



echo "<p>結果</p>";
$time[0]['kekka'] = $time[0]['end'] - $time[0]['start'];
$time[1]['kekka'] = $time[1]['end'] - $time[1]['start'];
echo "<pre>";
print_r($time);
echo "</pre>";
0081nobodyさん2009/03/23(月) 21:11:09ID:???
正規表現くんは黙ってろ
0082nobodyさん2009/03/23(月) 21:45:57ID:???
ただの検証コードを貼り付けてるだけなのに
少しでも難しそうなことが書いてるとこれだもんな
ほんと憐れだよ
理解できないほうこそ黙ってるべきだろ
0083nobodyさん2009/03/23(月) 22:00:50ID:???
お前この程度が限界なのか
0084nobodyさん2009/03/23(月) 22:11:55ID:???
正規表現使うのがかっこいいとかそういうノリだろ
そもそも質問に出てくるような用途で正規表現を使うことが勿体ない
0085nobodyさん2009/03/23(月) 22:12:46ID:???
>>82が質問の意図を理解してない証拠
0086nobodyさん2009/03/23(月) 22:45:24ID:???
すみません教えて頂きたい事があるのですが
php 5.1.4.4
apache 2.0.58.200で
basic認証が必要なページに対してsetcookieでID/PASSをセットして
認証済みにして表示させています。
ですが認証済みのページからword/excelのファイルリンクをクリックすると
なぜか認証のダイアログが表示されます。
jpegやpdf等に関しては認証が通っているページからのリンククリックなので
そのまま表示できますが、word/excelのファイルに関してだけが認証ダイアログが
表示されてしまいます、しかもキャンセルするとファイルの中身が表示できてしまいます。
word/excel/jpeg/pdfは全て同じbasic認証が必要なフォルダに入れております。
URL直叩きの場合は全てのファイルで認証画面が表示されます。
なぜjpeg/pdfはOKでword/excelがNGなのかがよく分かりません。
よろしくお願いします。
0087nobodyさん2009/03/24(火) 08:59:12ID:???
ここまで言われると昨日の荒らしも恥ずかしくてでてこれないべや
0088nobodyさん2009/03/24(火) 09:04:56ID:???
>>87
自覚してるならこないでよ
0089nobodyさん2009/03/24(火) 09:19:52ID:???
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   細けぇ事はいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /
0090nobodyさん2009/03/24(火) 11:32:15ID:???
普通に聞きたいんですけど
$date= '2009-04-01 08:40:00';
preg_match("/(\d{4})\D(\d\d?)\D(\d\d?)\s+(\d\d?):(\d\d?):(\d\d?)/s", $date, $d);
$d= localtime(60*30+mktime($d[4], $d[5], $d[6], $d[2], $d[3], $d[1]));
printf("%d-%02d-%02d %02d:%02d:%02d", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]);

これの利点ってなんですか?
0091nobodyさん2009/03/24(火) 11:39:05ID:???
$date= <<<EOT
2009-04-01
08:40:00
EOT;

目的のデータが↑みたいな厄介なフォーマットだった場合、ちょこちょこ改変して使えるってことじゃね?
0092nobodyさん2009/03/24(火) 12:34:03ID:???
>>91
改行含んでるだけでどこが厄介なんだよ??
改行含んでても正規表現は使わなくてもできるよ?


改行を含ませて出力したいなら
echo date("Y-m-d\tH:i:s",(strtotime("2009-04-01 08:40:00") + 1800));
0093nobodyさん2009/03/24(火) 12:36:33ID:???
↑の\tは\nの書き間違いね


改行を含んだ日付を使う場合
$t = "2009-04-01

08:40:00";

echo date("Y-m-dH:i:s",(strtotime($t) + 1800));


改行を含んだ日付を使い、出力も改行させる場合
$t = "2009-04-01

08:40:00";

echo date("Y-m-d\nH:i:s",(strtotime($t) + 1800));
0094nobodyさん2009/03/24(火) 12:40:16ID:???
あんまり正規表現さんをいじめるなよw
顔真っ赤にして荒らされるぞw
0095nobodyさん2009/03/24(火) 12:48:47ID:???
荒らしてるのはお前だけだろ・・・
どっか逝けよ
0096nobodyさん2009/03/24(火) 12:51:16ID:???
>>90
正規表現にはこうやって性格の悪いやつを引き寄せるパワーがある
0097nobodyさん2009/03/24(火) 13:42:14ID:???
そもそも正規表現を使うことでもないのに使ってるからちょっと言われてたんだろ
もういいよ
0098nobodyさん2009/03/24(火) 15:35:31ID:???
悪かったな俺の質問でこんなんになって。
ところで質問なんですけど、
$arr = array("りんご", "みかん", "ブドウ", "", "スイカ");
$arr = str_replace("", "パイナップル", $arr);
print_r($arr);
希望の値を出力しません。
空の値に文字列を置換する方法教えてください。
0099nobodyさん2009/03/24(火) 15:41:10ID:???
つまりこういうことか
「こんにちは」を出力するのにこんなことするってことか

$array = array("あ",・・・"ん");//あ〜んを配列に格納
$hello = $array[9].$array[46],$array[21],$array[16],$array[25];
printf("[%s]\n",$hello);
0100982009/03/24(火) 15:45:53ID:???
>>99?
出力結果でパイナップルが入りません。
Array ( [0] => りんご [1] => みかん [2] => ブドウ [3] => [4] => スイカ )
0101nobodyさん2009/03/24(火) 16:01:28ID:???
a、すまん99は>>97にね
0102nobodyさん2009/03/24(火) 16:03:27ID:???
>>98
ついでに答えとくと希望の値って何なのか書かないとエスパー回答待ちになりますよ
0103982009/03/24(火) 16:11:26ID:???
理想は
[3] => パイナップルです。
Array ( [0] => りんご [1] => みかん [2] => ブドウ [3] => [4] => スイカ )
0104nobodyさん2009/03/24(火) 16:17:56ID:???
空文字は引っかかりません
0105nobodyさん2009/03/24(火) 16:19:22ID:???
preg_replaceを使用してこう書けばできる
$s = "/^$/";
$r = "パイナップル";
$a = array("りんご","みかん","ブドウ","","スイカ");

$kekka = preg_replace($s,$r,$a);
print_r($kekka);
0106982009/03/24(火) 16:43:15ID:???
なるほど確認してみます。
ありがとうございます。
0107nobodyさん2009/03/24(火) 18:57:54ID:???
>>90
日付が/区切りでも、扱えるようにしてるんじゃないの。
0108nobodyさん2009/03/24(火) 19:14:04ID:???
自分で書いてみたけど正規表現でなくてもいいみたい
う〜ん、やっぱ標準関数で用意されてるものを使ったほうが開発効率も保守性も速度もいいみたいですね
$dt[0] = "2009-04-01 08:40:00";
$dt[1] = "2009/04/01 08:40:00";

function date($d) {
return date("Y-m-d H:i:s",strtotime($d));
}

echo "<p>".date($dt[0])."</p>";
echo "<p>".date($dt[1])."</p>";
0109nobodyさん2009/03/24(火) 19:27:48ID:???
正規表現覚えたてのプログラミング初心者相手にみんなパネェっすねw
プログラミング歴が上がればどういうときにどんなコード書けばいいのか分かるようになるんだからそっとしてやろうぜw
0110nobodyさん2009/03/24(火) 20:10:52ID:???
習得度が高かろうと低かろうとどうでもいいが
初心者なのに人の意見に耳を傾けないで根拠も無く自分が正しいと思ってるからだめなんだろ
0111nobodyさん2009/03/24(火) 20:16:04ID:???
煽ってる阿呆は1人なんだからもう放置しようぜ・・・
0112nobodyさん2009/03/24(火) 20:18:24ID:???
1人ってどれ?
0113nobodyさん2009/03/24(火) 20:20:17ID:???
自覚がないんですね
0114nobodyさん2009/03/24(火) 21:02:38ID:???
90のコードに嫉妬
0115982009/03/25(水) 09:31:58ID:???
90のコード
dばっかとか意味わかんないし。
イミプーでうすぁ。
0116nobodyさん2009/03/25(水) 10:04:26ID:???
あえて言いたい
>>90のコードはネタだろ
つられてんじゃねえよw
0117nobodyさん2009/03/27(金) 04:02:52ID:???
未定義のプロパティーはnullですが
これは規定と考えていいのでしょうか?
0118nobodyさん2009/03/27(金) 04:16:33ID:Xi9/JJ4U
DBなどすべてUTF-8で構築しております。
そのうえで、xmlWriter()をつかって「EUC-JP」で
XMLを書き出したいのですがどうしたらよいのでしょうか?
単にstartDocumentでEUC-JPを指定するだけでエンコードを変更できるのでしょうか?
Firefoxでは表示され、safariだとエラーになってしまいます。

$writer = new xmlWriter();
$writer->openMemory();
$writer->startDocument('1.0', 'EUC-JP');
$writer->startElement('root');
(略)
$writer->endElement();
$writer->endDocument();
return simplexml_load_string($writer->outputMemory(TRUE));

ちなみに各Directiveの値もメモしておきます。
mbstring.http_input auto
mbstring.http_output pass
mbstring.internal_encoding UTF-8
mbstring.script_encoding no value
0119nobodyさん2009/03/29(日) 00:44:35ID:???
ライブラリとかクラスファイルとか、
他のファイルを読み込むときは可読性からスクリプトの最初で読み込みたいんだけど、
ある条件下でしか使わないようなファイルをスクリプトの途中で読み込みたいときはどうしてる?
0120nobodyさん2009/03/29(日) 00:55:11ID:???
スクリプトの途中で読み込む
0121nobodyさん2009/03/29(日) 04:16:40ID:0MM+niTd
118について、気になっているオレガイル。
0122nobodyさん2009/03/29(日) 13:45:03ID:???
テーブル設計とかわけがわかりません。
楽天・DMMなどを見ても全くその構造がわかりません
どうしたら こういう構造について強くなれるでしょうか
おすすめの書籍やページなどあればお願いします
php中級者です
0123nobodyさん2009/03/29(日) 13:48:49ID:???
つ教科書
01241222009/03/29(日) 13:51:43ID:???
>>123
どの教科書ですか?
教えて下さい。当方PHPしかやったことないですが
アルゴリムズなど こういうWEBのアルゴリズムについて
良い本とかページ無いですか
0125nobodyさん2009/03/29(日) 14:14:14ID:???
調べろよ
01261222009/03/29(日) 14:19:21ID:???
わからないんです 早くして
0127nobodyさん2009/03/29(日) 14:19:46ID:???
調べろよ
01281222009/03/29(日) 14:21:20ID:???
早くしてください
0129nobodyさん2009/03/31(火) 11:33:31ID:???
正規表現くんがいま調べてるから黙って待ってろ
0130nobodyさん2009/04/03(金) 15:49:42ID:???
$_login->authorize(); だけでどうして ユーザ認証ができるんですか?
0131nobodyさん2009/04/03(金) 15:52:26ID:???
authorizeメソッドにユーザ認証機能が実装されてるからだろ
0132nobodyさん2009/04/03(金) 18:35:49ID:???
authorizeメソッドって何?
ぐぐってもわからない
0133nobodyさん2009/04/03(金) 19:00:10ID:???
public function authorizeで定義したメソッド
0134nobodyさん2009/04/03(金) 19:29:21ID:???
ん、その定義しましたってのはどこのファイル見たらわかるの?
0135nobodyさん2009/04/03(金) 19:37:04ID:???
PHPマニュアルでauthorizeで検索しても出てこない・・
0136nobodyさん2009/04/03(金) 19:49:54ID:???
ないもんは出てこない仕様です
0137nobodyさん2009/04/03(金) 19:52:46ID:???
$_login->authorize();
これ 変数_login > authorize(); に見えるんだよな
0138nobodyさん2009/04/03(金) 19:54:20ID:???
あぁそうか ユーザー定義関数だからないのかな
ただこのフォルダのスクリプトの中にどこにも
function authorize() {
  処理に必要なプログラム
  }
がないんだよね
0139nobodyさん2009/04/03(金) 20:04:13ID:???
あるよ
関数じゃなくてメソッドだけどね
0140nobodyさん2009/04/03(金) 20:42:39ID:???
おおお さらに深くgrepしたら出てきた

$_login->authorize(); // ユーザ認証

ん、これって自動的にauthorizeメソッド検索してできるんだ〜
0141nobodyさん2009/04/03(金) 20:43:38ID:???
どんだけ浅くgrepしてんだYO
0142nobodyさん2009/04/03(金) 20:45:13ID:???
いやそれ定義じゃなくて実行じゃん
0143nobodyさん2009/04/03(金) 21:15:32ID:???
$_login->が何を表してるかがわからない
authorize(); はpublic function authorize(){}を探しそこにフォーカスを動かすって事かな
0144nobodyさん2009/04/03(金) 21:58:00ID:???
全然ちゃうわ
0145nobodyさん2009/04/03(金) 22:14:41ID:???
せめてググッタラわかるようなキーワードを教えてくれ
0146nobodyさん2009/04/03(金) 22:21:35ID:???
つ公式マニュアル
0147nobodyさん2009/04/03(金) 22:53:39ID:???
そろそろ俺に答えられそうな質問を出してくれないかな
0148nobodyさん2009/04/04(土) 00:13:38ID:???
そうなんだ・・・すまん
0149nobodyさん2009/04/04(土) 00:14:31ID:???
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1124846266
知恵袋で質問してみた
0150nobodyさん2009/04/04(土) 08:28:29ID:???
質問です。

CentOS5.2 + Apache 2.2.3 + PHP5.1.6という環境で
趣味のホームページ作りをしています。

ドキュメントルート /var/www/html/ 直下にPHPフレームワーク(CakePHP)を
インストールするとウェルカムページ(スタートページ)も問題なく表示されますが、

Virtualhost 機能を使用し、/var/www/html/TEST/ をバーチャルホスト
のドキュメントルートしてウェルカムページを表示すると、なぜかエラーが出ます。
エラーの内容
Warning: touch() [function.touch]: Utime failed: Operation not permitted in /var/www/html/TEST/cake/libs/file.php on line 130

いろいろ調べるとパーミッションがらみの問題であるとのことなので、
chmod -R 777 /var なんていう無茶なことをやってみましたが、それでも
改善しません。

ちなみに、上記の問題はWindows上のxamppで同様のVirtualhostを設定した場合は
再現しません。

何かご存知の方はいらっしゃいませんでしょうか?
0151nobodyさん2009/04/04(土) 08:34:47ID:???
ご存知だったけど忘れたな
なんかカラクリがあったのは確かだ
■ このスレッドは過去ログ倉庫に格納されています