トップページ⇒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分以内に立たない場合、宣言してから立てたい人が立てること。
0002nobodyさん2009/02/03(火) 01:10:22ID:???
姉妹スレ

【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
↑
こちらはIDだして質問するスレ
0003nobodyさん2009/02/03(火) 01:11:28ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

(以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん2009/02/03(火) 01:47:19ID:???
なんで次立ててんだ、カス。
0005nobodyさん2009/02/03(火) 02:49:21ID:???
>>1
乙
0006nobodyさん2009/02/03(火) 06:31:37ID:???
そもそも2chはそれぞれの板の趣旨に沿って、
既にある程度は知識・経験を持っている者同士が話を
深めていくところなのであって、初心者の質問は板においてはオマケに過ぎない。

手間も費用もかけずにタダで知識をゲットしようなんて甘い、
初心者の質問は無視されても仕方が無い。それが2chの基本。

でも、
「2chの人達ならばこの問題を解決してくれるかもしれない」
と思って2chを訪れる善意の人たちのために、
多くの板ではあくまでも 《 厚意で 》 質問専用スレを用意している。
なのに、
「質問スレだと解答が遅い」
「単発スレのほうがレスが早く着く」
などのふざけた理由で単発スレを立てるヴァカが引きも切らない。

もし、単発スレにいちいち解答していたとしたら、
勘違い厨房が
「やっぱり単発スレの方がすばやく解答をもらえるじゃないか」
と感じて毎日毎日10個も20個も単発質問スレが立ってしまい、
5分前に立った似たような単発スレすらも見付けられないだろう。
そもそもこういう自己中なヴァカは過去ログなんか絶対チェックしない。

そのうちに板内はその手の単発質問スレで埋め尽くされてしまうだろう。
そうなればパート●●とか続いている名シリーズ・スレすらもどんどんDAT落ちしてしまうだろう。
と言う事ぐらい、5秒も考えれば分かりそうなもんだ。
0007nobodyさん2009/02/03(火) 09:54:59ID:???
なんでこんなスレをたてたんだ?
0008nobodyさん2009/02/12(木) 16:02:45ID:+X3aCOfr
「Eclipse + PDT」を使ってる方いましたら質問です。

プロジェクトを追加したところ、htmlやjavascriptまでシンタックスエラーをチェックしてしまい、
「問題」「警告」の欄が溢れています。

これはなんとか除外できないものなのでしょうか。
0009nobodyさん2009/02/14(土) 18:31:28ID:???
簡単な書き込みで下記のようにしていますがすぐに壊れてしまいます。
(各行最大4文字で最大500行、DBは使わない。)

$text="aaa"."\n";
$data = file("example.txt");
$fp = fopen("example.txt","a+b");
if(flock($fp, LOCK_EX)){
ftruncate($fp, 0);
fwrite($fp,$text);
$i = 0;
foreach ($data as $value) {
fwrite($fp,$value);
$i++;
}
fclose($fp);

簡単に壊れないようにするにはどうすれば良いでしょうか。
0010nobodyさん2009/02/14(土) 18:35:11ID:???
このスレは重複スレなので削除対象です
質問は本スレでどうぞ
0011nobodyさん2009/02/14(土) 18:50:14ID:???
>>9
同壊れるか分からないが。。
ロックは適当に

$data = "aaa"."\n".file_get_contents("example.txt");
$fp = fopen("example.txt","wb");
fputs($fp,$data);
fclose($fp);
0012nobodyさん2009/02/14(土) 19:10:38ID:???
>>9
ありがとうございます。上記の物とこれで様子を見てみます。
$data = "aaa"."\n".file_get_contents("example.txt");
file_put_contents("example.txt", $data, LOCK_EX);


もう一つ質問なのですが、テキストファイルよりも
DATファイルとかの方が強いのでしょうか。
0013nobodyさん2009/02/14(土) 19:39:23ID:???
ロックかけるときはロック専用ファイルを用意してそれをロックすることをおすすめする。
0014nobodyさん2009/02/23(月) 03:44:50ID:???
$hoge = 1;
if($hoge){
〜〜〜


$hoge = true;
if($hoge){
〜〜〜


どちらの方がいいのでしょうか
0015nobodyさん2009/02/23(月) 04:06:31ID:???
いいの基準は?
0016nobodyさん2009/02/23(月) 09:48:03ID:???
どっちもif文成立するからif文無くていい
0017nobodyさん2009/02/25(水) 03:04:58ID:???
他言語は正規表現を一旦コンパイルして変数に持っておけますが
PHPでそういうことできませんか?
ループ中で使うと毎回コンパイルされるのはもったいないと思うんですが
0018nobodyさん2009/03/08(日) 08:30:54ID:???
if(preg_match('/^[a-z]+$/',$A)){
$AA=$A;
}
if(preg_match('/^[a-z]+$/',$B)){
$BB=$B;
}
を何度も書くのと



if(Match($A)){
$AA=$A;
}
if(Match($B)){
$BB=$B;
}
function Match($ZZ){
return preg_match('/^[a-z]+$/',$ZZ);
}
と書くのではどちらが一般的でしょうか?
0019nobodyさん2009/03/08(日) 08:31:43ID:???
どっちも一般的でない
0020nobodyさん2009/03/08(日) 08:38:06ID:???
ありがとうございます。
他に方法が思いつかないので
よろしければヒントを教えて下さい。
0021nobodyさん2009/03/08(日) 08:47:16ID:???
3度以上書くならctype_alpha && ctype_lowerを関数定義ぐらいでいいと思うが
0022nobodyさん2009/03/08(日) 09:29:38ID:???
ありがとうございました。私の環境で
ctype_alpha && ctype_lowerとpreg_match('/^[a-z]+$/’,$text)
が同じ動作かどうか調べてみます。
0023nobodyさん2009/03/08(日) 11:22:29ID:???
デリミタに/使ってんじゃねえよ
括弧使えよクズ
何で括弧使うか理由も調べてこい史ね
0024nobodyさん2009/03/08(日) 11:49:44ID:???
>>23
氏ね
0025nobodyさん2009/03/08(日) 12:17:56ID:???
>>22=>>24
0026nobodyさん2009/03/08(日) 12:21:22ID:???
そうです
0027nobodyさん2009/03/08(日) 12:48:13ID:???
IP出し質問スレ誰か立ててくれんかね
規制中でなければ自分でたてるんだが
0028fusian‎asan2009/03/08(日) 12:51:12ID:???
これっすか?
0029nobodyさん2009/03/08(日) 13:16:11ID:???
まちがえたぜIPじゃなくてIDな
スレ82をだれかたのむ
0030nobodyさん2009/03/08(日) 13:41:16ID:???
ツールの入力欄に%2F{$}って半角で入れるとエラーになるぞ。
0031nobodyさん2009/03/08(日) 14:05:10ID:???
>>30
日本語でおk
0032nobodyさん2009/03/08(日) 14:58:34ID:???
>>27
立ててみるよ
0033322009/03/08(日) 15:00:29ID:???
すまん、ダメだった
0034nobodyさん2009/03/08(日) 15:01:58ID:???
そりゃそうさ
このスレが本スレだし
0035nobodyさん2009/03/08(日) 15:07:03ID:???
>>34
おまえはこのスレができた意味を知らない人だよね
0036nobodyさん2009/03/08(日) 20:53:24ID:???
難癖つけ太郎の唯一の棲家だしなw

0037nobodyさん2009/03/08(日) 20:55:19ID:???
>難癖つけ太郎
何時の時代のセンスだ
0038nobodyさん2009/03/08(日) 22:11:27ID:???
日本語のみは拒否ってどうすればいい?
0039nobodyさん2009/03/08(日) 22:22:19ID:???
正規表現
0040nobodyさん2009/03/08(日) 22:25:50ID:???
UTF-8だと日本語と中国語の区別難しいぞ
0041nobodyさん2009/03/08(日) 22:31:50ID:???
日本語のみは拒否ってどういう状況だ
0042nobodyさん2009/03/08(日) 22:40:07ID:???
エスパーしてやると半角英数字だけ通せば日本語は省けます
0043nobodyさん2009/03/08(日) 23:25:07ID:???
いえ、中国語と韓国語とアラビア語は通してください
0044nobodyさん2009/03/08(日) 23:34:15ID:???
SJISです。
今はstrstrとin_arrayを使ってる。(完璧ではない)

拒否 おはよう          
拒否 愛さん   
     
許可 goodmorning
許可 goodmorning愛さん
許可 goodmorning愛さん:D
0045nobodyさん2009/03/09(月) 00:05:08ID:???
if( ereg( "^[a-z][0-9]", $str ) )
0046nobodyさん2009/03/09(月) 15:18:28ID:???
>>37
>>36
0047nobodyさん2009/03/23(月) 00:42:35ID:???
初心者です。
いろんなサイトで探しても分からなかったので質問します。

web上の『http://****************.jpg』というURLから
jpgファイルを読み込んで保存したいのですが方法が分かりません。

教えていただけませんか?
0048nobodyさん2009/03/23(月) 09:16:05ID:???
ieでそのurlにアクセスしたら
右クリック > 対象をファイルに保存
でおk
0049nobodyさん2009/03/23(月) 10:24:31ID:8ptTuCbS
2009-04-01 08:40:00
↑の時間の30分後を取得する方法。
0050472009/03/23(月) 10:36:20ID:???
PHPで行いたいのです
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にね
■ このスレッドは過去ログ倉庫に格納されています