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

【PHP】下らねぇ質問はID出して書き込みやがれ 90

■ このスレッドは過去ログ倉庫に格納されています
00012009/11/14(土) 17:31:22ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 89
http://pc11.2ch.net/test/read.cgi/php/1255263534/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0302nobodyさん2009/11/23(月) 11:52:41ID:???
>>297
publicなメソッドから、privateなメソッド(メンバ関数)呼べたら気持ち悪いって…
publicなメソッドから、privateなフィールド(メンバ変数)扱えたら気持ち悪いか?
0303nobodyさん2009/11/23(月) 12:01:54ID:???
誰か>>297のブログに間違いを指摘できる池沼はいないのか?
0304nobodyさん2009/11/23(月) 13:22:53ID:???
> private 宣言されたメンバーには、そのメンバーを定義したクラスからのみアクセスできます。
0305nobodyさん2009/11/23(月) 13:52:45ID:???
「どの言語を使うのか」
ではなく
「何を作るのか」

が重要なんでは無かろうか
0306nobodyさん2009/11/23(月) 14:46:21ID:i4rNMi7t
2009年1月1日
2009年1月2日
2009年1月3日
・・・・・・・
というリストがあり、
これを
20090101
20090102
20090103
というように直したいと考えています

正規表現を用いて、2009 1 1 という感じで分割して
月数と日数の部分が1ケタだったら、先頭に0をつける(2009 01 01)
この方法が思いついたのですが、
これより簡単な方法があれば教えてほしいです
0307nobodyさん2009/11/23(月) 14:53:55ID:???
一旦タイムスタンプにして
date関数通しなおす
0308nobodyさん2009/11/23(月) 14:58:18ID:???
>月数と日数の部分が1ケタだったら、

とりあえず左側に0をつけて、右から2文字を切り出すというのではどう?
あるいはm[0]="01"・・・のような配列を用意しておいて、読み込む。

簡単だから処理が速いとは限らないけどね。
0309nobodyさん2009/11/23(月) 15:08:21ID:???
正規表現クンの出番ですよ〜
0310nobodyさん2009/11/23(月) 15:14:56ID:???
function sentouni_zero_tsukeru($str = null) {
$str = preg_replace('/[^0-9]/', '-', $str);
$uts = strtotime($str);
return date('Ymd', $uts);
}

ためしとらん
0311nobodyさん2009/11/23(月) 15:16:31ID:???
結局正規表現か
0312nobodyさん2009/11/23(月) 15:17:59ID:???
年月日で入ってくる以上正規表現使うだろ
いやなら
sscanfつかえば
0313nobodyさん2009/11/23(月) 15:18:50ID:???
sscanfでいいじゃん
0314nobodyさん2009/11/23(月) 15:19:51ID:???
$d = "2009年1月1日";
list($year, $month, $day) = sscanf($d, "%d年%d月%d日");
echo sprintf("%d%02d%02d", $year, $month, $day);
0315nobodyさん2009/11/23(月) 15:22:15ID:???
正規表現君 本日の名言

「年月日で入ってくる以上正規表現使うだろ」
0316nobodyさん2009/11/23(月) 15:25:31ID:???
別にまちがっちゃいねーし
正規表現なりのパターンマッチが必要だろ
312にsscanfも書いてんだし

無能はされ
0317nobodyさん2009/11/23(月) 15:28:21ID:???
年月日を削除すりゃ1行で済むのに
0318nobodyさん2009/11/23(月) 15:28:36ID:???
分割後、sprintf("%4d%2d%2d",$year,$mon$day)
0319nobodyさん2009/11/23(月) 15:35:12ID:rXJjujSh
フレームワークやテンプレートはどういう状況の時に必要になるものでしょうか?
0320nobodyさん2009/11/23(月) 15:40:02ID:???
就職したとき
0321nobodyさん2009/11/23(月) 15:40:52ID:???
>>320
日本語で尾k
0322nobodyさん2009/11/23(月) 15:42:23ID:???
バカには必要ありません。
0323nobodyさん2009/11/23(月) 15:49:37ID:???
>>319
フレームワークだ
すなわち

  _____
|      |
|      |
|      | 
|____|
03243062009/11/23(月) 15:56:08ID:i4rNMi7t
ありがとうございました
0325nobodyさん2009/11/23(月) 16:09:17ID:???
312 名前: nobodyさん [sage] 投稿日: 2009/11/23(月) 15:17:59 ID:???
年月日で入ってくる以上正規表現使うだろ
いやなら
sscanfつかえば

恥ずかしいwwww
0326nobodyさん2009/11/23(月) 16:14:22ID:???
そうだねー恥ずかしいねー^^
ハイ次
0327nobodyさん2009/11/23(月) 16:31:30ID:???
低レベル回答者はこのスレ来んなよwww
0328nobodyさん2009/11/23(月) 16:33:42ID:???
PHPは嫌われているから他の言語支持者が荒らしにくるんですよ〜
懇親会で「たまにphpのスレで暴れてる」と言ってた某パーラーさん見てますか?
0329nobodyさん2009/11/23(月) 17:35:17ID:???
>>297
遅レスだが、定義したクラスから呼ぶんだから、問題なかろう。
そもそも
$child->addChild(new Child());
の時、Super::addChild()の中の$thisのクラスはChildだ。
0330nobodyさん2009/11/23(月) 17:37:05ID:???
Rubyのほうが優れてるんですかね?
0331nobodyさん2009/11/23(月) 17:46:31ID:???
しるか屑
0332nobodyさん2009/11/23(月) 18:21:20ID:YeA+xhX1
ブラウザからtextboxに入力したデータを
指定したファイルの指定した部分に書き換えることは可能ですか?


何がしたいのかというと、コマンドライン実行部分をユーザが、自由に変えられるようにしたいので
フォームに入力したコマンドラインを、指定したファイルのコマンドライン実行部分に書き換えができればいいです
もちろんコマンドラインなのでlinuxだとrm -rf *みたいなのもやられますが、そういうことをするユーザはいないという前提です


何かこうしたほうがいいみたいな対案があればよろしくお願いします
0333nobodyさん2009/11/23(月) 18:23:38ID:???
できる

ハイ次
0334nobodyさん2009/11/23(月) 18:23:48ID:???
そういえば、初期のApacheのCGIのサンプルに
そういうバックドアみたいなのがあって、
すごい勢いでアタックが来たっけな・・・
0335nobodyさん2009/11/23(月) 19:26:29ID:???
何か最近、ここのスレ荒さが際立ってきたな
やっぱID出さんでもスレがないと駄目だな・・・
0336nobodyさん2009/11/23(月) 21:58:11ID:???
「下らねぇ質問と偉そうな回答はID出して書き込みやがれ」っていうスレがあれば解決
0337nobodyさん2009/11/23(月) 23:08:55ID:???
回答以外の煽りもID出してもらおう。
0338nobodyさん2009/11/24(火) 03:29:04ID:???
わざわざ荒らしてるのはID出さないほうから流れてきたやつなのはガチ
わざわざ分離してやったのに早く新スレたてて巣へ帰れ
03391082009/11/24(火) 04:15:27ID:???
プログラム系自宅サーバー系の荒れは昔より酷くなってるな
何でだろう
0340nobodyさん2009/11/24(火) 04:27:35ID:???
ここんとこ規制でやっと書き込めて憂さ晴らししてんだろ
場所をわきまえろといった感じだが
まぁ変な質問者も回答者もスルーすればよい
頑張ってるのは1.2人しかいないんだから
0341nobodyさん2009/11/24(火) 09:28:37ID:???
>>339
お前みたいな低レベル質問者が増えたからじゃね?
0342nobodyさん2009/11/24(火) 10:18:45ID:???
>>338
違う、個人的な私怨。
0343nobodyさん2009/11/24(火) 10:23:05ID:???
PHPスレを代表するユーザー

正規表現クン
OCNくん
ちんぴらくん
文字列分割君
0344nobodyさん2009/11/24(火) 10:29:23ID:???
ほんと、以前のように住み分けしないとこの荒さは鼻に付くな
「PHPは俺が伝授してやる」とか何とかのスレがあったが、あのレベルになってしまってるよ
まぁ、同一人物じゃないかとは思うが・・・
質問が、荒れた雑談のせいで通らなくなるケースもあるからね
0345nobodyさん2009/11/24(火) 10:32:15ID:???
>>343
いちいちそういう事書くなよ。余計つけあがるだけだろ。
0346nobodyさん2009/11/24(火) 11:39:22ID:9u891mXW
どなたか助けてください。
会員制のサイトを個人のプログラマー製作してもらったのですが、
行方不明になり修正を頼めなくなりました。
登録用メールアドレスですが、@の前にハイフンがついていると
新規登録できずに"メールアドレスが異常です"とエラーがでます。
これを登録できるように修正したいのですが
ファイルを見ていると、下記の部分かなあと
思うんですが、どのように修正すれば良いでしょうか。


$mailmach = "([[:alnum:]_\-\.]+)(\?|@)([[:alnum:]_\-]+\.[[:alnum:]_\-\.]+)";
if (checkMultiBitesString($_REQUEST['mailaddress'])) {
$error_mes .= '全角文字は使用出来ません<br />';
} else if (!eregi($mailmach,$_REQUEST['mailaddress'])) {
$error_mes .= 'メールアドレスの形式が異常です<br />';
0347nobodyさん2009/11/24(火) 11:41:03ID:???
一切触れなければいいだけ、完スルーが鉄則
まあこのレスも鉄則に反してるけど許して
0348nobodyさん2009/11/24(火) 11:55:28ID:???
>>346
@の前の「\-」を消せばok
0349nobodyさん2009/11/24(火) 12:09:04ID:9u891mXW
>>348
ご回答ありがとうございます。
ド素人ですいません、@の前の「\-」↓のようにするってことでしょうか。

$mailmach = "([[:alnum:]_\.]+)(\?|@)([[:alnum:]_\-]+\.[[:alnum:]_\-\.]+)";
0350nobodyさん2009/11/24(火) 12:43:36ID:???
「(それが正しいなら)どんなメアドの形式でも」にマッチする正規表現を書くのは
とても困難だと聞いたことがあるな。
無理せず地道にチェックする関数を、別のプログラマに書いてもらった方が
先々にも良いんじゃないかな。
0351nobodyさん2009/11/24(火) 12:44:12ID:???
それにしてもきめえ正規表現だな
0352nobodyさん2009/11/24(火) 12:44:59ID:???
mailmachって何だろう、メールマッハ?
0353nobodyさん2009/11/24(火) 12:50:21ID:???
RFC完全準拠のチェックなんてしても無駄
プロバイダメールもYahooもGoogleもRFCに準拠したメール作れないし
マイナーなメールなんて荒らし目的なんだから一般的なチェックだけしてりゃいいんだよ
0354nobodyさん2009/11/24(火) 13:01:36ID:???
byteの複数形ってbitesなんかよ、とかもな >>352
0355nobodyさん2009/11/24(火) 13:12:14ID:t2/f6k4N
simple_xml_load_fileでXMLを取得し、部分の値を変更して
xmlで再度保存したいのですが
simple_xml_load_fileの逆の関数ってないですか?
また、ない場合どのように保存すれば良いのでしょうか。
0356nobodyさん2009/11/24(火) 13:14:21ID:???
SBがメールの正規表現をややこしくしてる件について
0357nobodyさん2009/11/24(火) 13:20:49ID:???
>>349
その回答は間違ってるので無視して
というか元の正規表現が @unko@example.com@ でも受け付ける程うんこ
symfonyのバリデータからパクってきたので置き換えてね

} else if (!preg_match('/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i', $_REQUEST['mailaddress'])) {
$error_mes .= 'メールアドレスの形式が異常です<br />';

>>355
http://jp.php.net/manual/ja/simplexmlelement.asXML.php
0358nobodyさん2009/11/24(火) 13:23:10ID:t2/f6k4N
>>357
ありがとうございます!
これPEAR?
0359nobodyさん2009/11/24(火) 13:30:27ID:???
imagecreatefromjpegの使用でURLを指定しているのですが
サービス(サービスA)をおいているサーバーのURLを指定すると失敗します。

サービスAでサービスAのURLを指定→失敗
サービスAでサービスBのURLを指定→成功
ローカルからサービスAのURLを指定→成功
ローカルからサービスBのURLを指定→成功

尚、allow_url_fopenは有効になっています。
なぜかAからAの場合だけ失敗します。

何か原因が考えられるでしょうか?
03603592009/11/24(火) 13:47:00ID:???
すいません書き込む場所を間違えました
ここは池沼が多いのでプログラム板で聞きます
0361nobodyさん2009/11/24(火) 14:17:36ID:???
そうだね。でも君のほうがちしょうだね
03623492009/11/24(火) 14:19:48ID:???
>>357
池沼はだまってろ
>>348
ありがとうございますできました。
0363nobodyさん2009/11/24(火) 14:32:04ID:???
また正規表現クンが荒らしてるのか
0364nobodyさん2009/11/24(火) 15:49:37ID:???
>>362
えー、ホントにそれでいいの?  エラーが出るってのも変な話な上に でたらめなアドレス+正しいアドレスでも通っちゃうような
変なチェックだよ? -とったら、通るわけ無いのに。 
この場合はどーでもいいけど、eregiとかで返り値0のときもあるんでその書き方やめようよ。
0365nobodyさん2009/11/24(火) 15:54:07ID:fu2efFAP
APCなどのアクセラレータとmemcacheを両方使用するのは可能でしょうか?
検索してみたのですが、APCとmemcacheの比較ページなどがでてきて、競合しているような感じでした。

memcacheは一部のSQL結果を複数台にキャッシュしておくのに使おうと思っています。
0366nobodyさん2009/11/24(火) 15:54:18ID:???
>>348=>>362
0367nobodyさん2009/11/24(火) 16:05:10ID:9u891mXW
>>359
ありがとうございました。
ただ、構文エラーが出てしまいます。。。

0368nobodyさん2009/11/24(火) 16:14:08ID:9u891mXW
>>364
なんか偽物がでてきてややこしくなってますね。
362の方が偽物です。
0369nobodyさん2009/11/24(火) 16:17:25ID:???
本物とか偽物とかどうでもいいから池沼同士仲良くやれよ
0370nobodyさん2009/11/24(火) 16:43:14ID:???
でもそんなのかんけぇねぇ、はい
0371nobodyさん2009/11/24(火) 16:45:25ID:???
オッ
0372nobodyさん2009/11/24(火) 16:48:07ID:???
ッパ
03733572009/11/24(火) 17:10:04ID:6BE8AIaE


>>358
SimpleXMLの組み込みクラス
http://jp.php.net/manual/ja/book.simplexml.php

>>365

memcacheはmemcachedサーバのクライアント
APCは共有メモリを使うだけ…だよね?嘘言ってたらごめん

>>368
ID出てるから分かってるよ。>>1の通り相手はしないでくれ

修正前 } else if (!eregi($mailmach,$_REQUEST['mailaddress'])) {
修正後 } else if (!preg_match('/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i', $_REQUEST['mailaddress'])) {
これだけで構文エラー出ちゃう?そうならエラー内容を省かず書いて下さい
0374nobodyさん2009/11/24(火) 17:20:11ID:???
373 :357:2009/11/24(火) 17:10:04 ID:6BE8AIaE


ちょっと違うw
0375nobodyさん2009/11/24(火) 19:34:03ID:lkrJ2WGJ
pearのDBパッケージは業務で耐えられますか?
0376nobodyさん2009/11/24(火) 19:38:39ID:t2/f6k4N
MDB2つかえよ
0377nobodyさん2009/11/24(火) 19:52:31ID:???
急に態度がでかくなったww
0378nobodyさん2009/11/24(火) 19:55:04ID:xR1IV2Mw
>>227
まさかそんな理由で処理が止まっていたとは…予想外でした…
とりあえず、69の部分を減らす努力をしてみて、無理そうであれば配列に置き換えたプログラムを作成してみようと思います。
ありがとうございました。
0379nobodyさん2009/11/24(火) 20:00:54ID:???
>>376
よお
0380nobodyさん2009/11/24(火) 21:11:16ID:???
>>375
昔はPEAR::DBをみな使ってたから、普通に業務でも使われてる。
ネットスーパーのトップ5に入るシステムはpear::DBだよ。

でも今から開発するならmdb2やpdoにしたほうがいい。
マニュアルにも
「This package has been superseded. Please use MDB2 for new projects. 」
とあるしね。
0381nobodyさん2009/11/24(火) 21:26:09ID:???
正規表現クンってID出さないほうの登場キャラクターだろ?
OCNとちんぴらは俺が初心者にPHPを(ryの登場キャラクターだろ?
スレ跨いで持ち込まないでくれるかな
巣へおかえりくださいまし
0382nobodyさん2009/11/24(火) 21:37:15ID:???
>>375
これからやるならPEAR::DBはもう保守のみだから後継のMDB2を使った方がいいよ。
もしくはPDO。速度的にはPDOが一番みたいだからね。
0383nobodyさん2009/11/24(火) 22:09:40ID:???
PDOは今はPHPに標準でついてるから使ってる
0384nobodyさん2009/11/24(火) 22:12:46ID:???
MDB2っていうのはスクリプトですか?
0385nobodyさん2009/11/24(火) 22:55:06ID:???
>>384
pearだよ

Manual :: MDB2
http://pear.php.net/manual/ja/package.database.mdb2.php
0386368です2009/11/24(火) 23:03:36ID:cyQ946/c
>>373
エラーでませんでした。
メチャメチャ感謝しております。
今度はあなたのような知識も人格も素晴らしい人に
作ってもらいたいです。
本当にありがとうございました。
0387nobodyさん2009/11/24(火) 23:36:19ID:???
>>385
ありがとうございます
0388nobodyさん2009/11/25(水) 00:24:35ID:???
ID出さないスレの幕が終わったか
これでID隠蔽厨がこちらの聖域に攻めてくるってことか
0389nobodyさん2009/11/25(水) 00:30:07ID:???
質問者より、無意味にイライラした回答者と質問も回答もせずにひたすら煽る奴が問題
0390nobodyさん2009/11/25(水) 00:31:00ID:???
自己紹介乙
0391nobodyさん2009/11/25(水) 00:35:01ID:???
ID出さないスレが終わる前からこのスレはもともとこんな調子じゃん。
全員ID表示にしないと改善しないよ。
0392nobodyさん2009/11/25(水) 01:02:54ID:???
>>389=355
0393nobodyさん2009/11/25(水) 05:13:10ID:???
回線切って繋ぎなおすだけで変わるIDに依存するのもどうかと
0394nobodyさん2009/11/25(水) 05:48:37ID:???
匿名だからスルーするしかない
煽り耐性つけようぜ
0395nobodyさん2009/11/25(水) 09:37:13ID:24OMfQgX
win vista apache2.2でphp5.2から5.3.1にしたら、
phpスクリプトがそのまま(でもないですが)処理されず表示されます。
htmlソースでみると、phpスクリプトそのまんま表示されています。

5.2のときは問題なかったのですが。
どこを確認すればいいでしょうか?
0396nobodyさん2009/11/25(水) 10:16:29ID:???
>>388
だから誰かが別スレ作らなきゃ荒れたままになってしまう
0397nobodyさん2009/11/25(水) 10:41:07ID:HdHoonJ/
どうしてこうなるのかよくわからないので教えてください。
計算から出した答えの小数点以下を切り捨てするのですが、floorを使っています。
3000の58%、つまり3000*0.58をfloorで切り捨てています。
3000*0.58は1740となるので、小数点以下はないのですが、floorをかけると1739となってしまいます。
floor(3000*0.58)が1739となるのです。
試しにfloor(1740)とすると、ちゃんと1740と返ってきます。
どうしてこういう現象が起こるのでしょうか?
小数点切り捨てはfloorではなく、(int)nで行ったほうがいいのでしょうか?
0398nobodyさん2009/11/25(水) 10:48:50ID:???
そりゃあれだ基本情報とるとき勉強したな
丸め誤差とか桁おちとかそのへんのキーワードで調べてみるといいかもしれん
0399nobodyさん2009/11/25(水) 10:52:09ID:???
丸め誤差はround関数つかってくだはい
0400nobodyさん2009/11/25(水) 21:22:00ID:7eSRtgQB
指定したファイルの属性(読み取り専用/隠しファイル)を取得できる関数はありませんか?
ファイルはローカル上のスクリプトと同じディレクトリにあります。
OSはWindowsです。
04014002009/11/25(水) 21:44:42ID:7eSRtgQB
すみません、事故解決してしまいました。
読み取り専用かどうかはis_writable()、隠しファイルかどうかはfileperms()
で見れば良かったんですね・・・迂闊でした
■ このスレッドは過去ログ倉庫に格納されています