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

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

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

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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
07156702011/11/21(月) 20:02:04.04ID:???
PHPにはそういった組み込み関数は用意されていないんですね。やっぱり
ひとつの関数では無理で複数の関数を組み合わせるとかforeachを使うとか
になるんですね。どうもありがとうございました
0716nobodyさん2011/11/21(月) 20:03:35.67ID:???
>>712
え、そこから先がわからないと言っている?
0717nobodyさん2011/11/21(月) 20:06:55.30ID:???
1、日付型にして計算してるんだったら、
 DateTimeだったら 日を1とかにしといて  DateInterval('P1M') やら modify('+1 month')
 昔の方法だったら mktime( 0,0,0,$m+$i,1,$y)とか

2、 年と月を別の変数にして月足していって12超えたら年繰上げ
0718nobodyさん2011/11/21(月) 20:31:19.98ID:???
>>715
どうも言い回しが気になるんだけど、Javascriptにもそういった組み込み関数はないよ
0719nobodyさん2011/11/21(月) 20:32:24.70ID:372LMnzX
>>716
すまん。甘えたわ。後は調べればわかります。
ありがとうございました。
0720nobodyさん2011/11/21(月) 20:35:07.04ID:???
>>718
もちろんJavascriptとアホほど組み込み関数を用意しているPHPとは比較していません

0721nobodyさん2011/11/21(月) 20:39:50.46ID:???
似てるようで微妙に違う組み込み関数が探しきれないほどありますがjQuery.map()のような関数はないんですね
ってだけで他意はありません
0722nobodyさん2011/11/21(月) 20:42:24.85ID:???
array_filterで代用できない?

0723nobodyさん2011/11/21(月) 21:25:32.28ID:???
>>714
日数で足すな。月数を足してけ
やりかたはこの2ページ見ればできる
http://www.php.net/manual/ja/datetime.add.php
http://www.php.net/manual/ja/dateinterval.construct.php
0724nobodyさん2011/11/21(月) 21:26:41.28ID:???
>>722
既出
0725nobodyさん2011/11/21(月) 21:39:51.21ID:???
>>721
preg_filterは?
0726nobodyさん2011/11/21(月) 21:40:21.33ID:cDijwsFN
>>723
date_interval_create_from_date_string....

長い…
0727nobodyさん2011/11/21(月) 22:39:24.86ID:vmm+j8qy
Smarty2での質問です。

{foreach from=$hoge item=val}
{php}{/php}
{/foreach}

というテンプレートで、
{php}{/php}内でvalにアクセスするには
どう書けばいいですかね?
0728nobodyさん2011/11/21(月) 22:42:44.69ID:???
テンプレが読めませんかね?
0729nobodyさん2011/11/21(月) 22:50:27.82ID:???
{php}
print_r($this->get_template_vars('val'));
{/php}
スレ違い
0730nobodyさん2011/11/21(月) 23:17:35.15ID:???
まだ2使ってんのかよさっさと3にしろや
0731nobodyさん2011/11/22(火) 01:05:08.33ID:???
smartyのテンプレは無駄が多すぎるな
<?php foreach ($hoge as $val) : ?>
<?php echo $val; ?>
<?php endforeach; ?>
でええっちゅうに
0732nobodyさん2011/11/22(火) 01:29:26.20ID:???
foreachしか使わない初心者にはお似合いかもね
0733nobodyさん2011/11/22(火) 01:52:41.16ID:???
ZendFrameworkとSmartyの相性の悪さが異常だということをわかってくれない
0734nobodyさん2011/11/22(火) 07:49:03.06ID:???
シスうんこ居る?
0735nobodyさん2011/11/22(火) 08:51:45.91ID:???
スマーティ使ってて、
なんて便利なんだ!
とか
これ考えたやつすげえ!
とか
感じたことないんだが。
0736nobodyさん2011/11/22(火) 09:13:09.27ID:???
確かに。
<?php include("header.html");?>で済む話だな。
0737nobodyさん2011/11/22(火) 09:22:29.01ID:???
機能理解してない上にスレ違いの話を続けるバカか
0738nobodyさん2011/11/22(火) 10:55:24.01ID:???
制作とエンジニアの切り分けは楽になる。マジで。
ま、どのテンプレートエンジンもそうだけど、
PHPベタ書きよりはいい
0739nobodyさん2011/11/22(火) 12:55:43.29ID:spTidUMW
>>738
うん、だからスマーティを習得しようとしたとき、
スマーティに感動したというより
MVCに感動した
0740nobodyさん2011/11/22(火) 13:03:39.72ID:???
smartyはMVCでいうところのVだけだよね。
MとCは分離できてない。
0741nobodyさん2011/11/22(火) 13:07:08.85ID:OIOakh7V
馬鹿にも解りやすいように作ってあるんだから、
そうそう凄いって事はないだろ。

テンプレートエンジンでこれはすごいとかあるの?
0742nobodyさん2011/11/22(火) 13:57:42.44ID:???
>>741
結局、制作と開発の分離だけだとは思ってる。
複数人開発でも、ひとりでも、その部分は相当楽になった。
<?php ってかくか、{って書くかで、HTMLソースの見やすさは全然違うけどな。
ま、そこは慣れか。
0743nobodyさん2011/11/22(火) 14:11:52.71ID:???
smartyは全然賢くないところが問題だ
ただのオーバヘッド発生源
0744nobodyさん2011/11/22(火) 14:27:17.60ID:64j3oBDQ
EC2でAmazon Linuxを使ってますが、PHPを使う度に
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/json.so' - /usr/lib64/php/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown on line 0
と警告が出ます。
直し方を教えて下さい
0745nobodyさん2011/11/22(火) 14:40:40.14ID:???
参考になれば
http://d.hatena.ne.jp/jksy/20110128/1296227136
コレで治るかは分からんが
0746nobodyさん2011/11/22(火) 16:02:57.23ID:64j3oBDQ
PHP全部入れ直したら直った
最新のPHPを入れた後に、pecl install jsonをするとおかしくなるようだ
PHPのセットアップに昔作ったスクリプトを使ったのが敗因か
0747nobodyさん2011/11/22(火) 17:01:49.19ID:???
関数で値(配列)を作って
関数から別の関数に値を渡して
その関数で渡された値を処理して、また別の関数に渡して・・
としていると、今関数に渡された値(配列)にどのようなデータ、配列のキーが入っているのかが分からなくなる事がよくあります
こういう状態を防ぐのによい方法がありましたら教えて欲しいです。
0748nobodyさん2011/11/22(火) 17:06:41.84ID:???
>>1
0749nobodyさん2011/11/22(火) 17:36:21.47ID:???
>>747
そんなあなたはクラスを覚えなさい
0750nobodyさん2011/11/22(火) 17:41:38.13ID:???
求めてるものかどうかは分からんが、リファレンスを使う
よけいにややこしくなる可能性も大w
0751nobodyさん2011/11/22(火) 18:12:58.70ID:???
一般的には常識とされている普遍的なテーマ、例えば
 真実は一つだけ
 怒りは自然な感情
 戦争・テロは無くならない
 死刑には殺人の抑止力がある
 虐められる側にも虐めの原因がある
 自己チューな人間ほど自己愛が強い
などの命題の間違いとその論拠を解説
義務教育では絶対教えない最新合理主義哲学
   感情自己責任論
0752nobodyさん2011/11/22(火) 18:19:13.97ID:???
ねこをなでたら爪でひっかかれた
まで読んだ
0753nobodyさん2011/11/22(火) 18:25:47.38ID:/8xSqwNz
現在日時の年、月を除いたタイムスタンプをミリ秒単位でほしいです。
ex.現在の時間が2011/11/22 18;24;30なら22日18;24;30のミリ秒のタイムスタンプがほしいです。
どのようにすればよいでしょうか?
0754nobodyさん2011/11/22(火) 18:36:13.34ID:t9MFvl4K
ミリ秒 php でググるくらいの努力してみ?
microtimeかなんかがすぐ出てくる
07557532011/11/22(火) 18:42:27.85ID:/8xSqwNz
調べ始めはmicrotimeとmktime を組み合わせたらいけるような気がしてやってたんですが、以下で詰まっています。

ceil(microtime(true)*1000); で年月含めたタイムスタンプ(ミリ秒)
を取った後年月以外の値を0にした タイムスタンプ(ミリ秒)を用意して 前式から引き算で
目的の年月を含まないタイムスタンプ(ミリ秒)を取得しようとしてました。

しかし年月以外の値を0にした タイムスタンプ(ミリ秒)の取得ができません。
mktime(0, 0, 0, date("n"), 0); で 年月以外の値を0にした タイムスタンプ(秒)
なら取れるのですが、ミリ秒ではとり方がわからないです。
0756nobodyさん2011/11/22(火) 18:54:25.87ID:???
>>753
すいません日本語を整理して分りやすく説明してください
0757nobodyさん2011/11/22(火) 18:56:59.35ID:???
>>755
float()使って差とれば
07587532011/11/22(火) 19:01:51.25ID:/8xSqwNz
すみません。整理します。
まずほしいタイムスタンプは、現在日時より年、月を除いたタイムスタンプです。
年月を含めたタイムスタンプだと桁数の関係上不都合があります


ex.1970年1月1日午前0時のタイムスタンプ(ミリ秒)が
102241660710だとします。
ほしいタイムスタンプはこのタイムスタンプから
1970年1月0日0時のタイムスタンプを除いた値です。
1970年1月0日0時のタイムスタンプが102240000000だとすると
求めるタイムスタンプは102241660710-102240000000=1660710です。

0759nobodyさん2011/11/22(火) 19:15:26.51ID:???
>>757で取得したミリ秒を足せばいいんじゃない
07607532011/11/22(火) 19:19:02.13ID:/8xSqwNz
すみません。floatで目的の値を取る方法がわかりません。
式で書いていただけませんか?お願いします。
0761nobodyさん2011/11/22(火) 19:30:59.53ID:???
ごめんfloorだった
0762nobodyさん2011/11/22(火) 19:32:17.62ID:???
1970年1月1日 0:00のタイムスタンプは0です。 そこからの秒数ですから。
桁数の問題で下駄履かせるなら、もっと最近じゃないと

桁数の問題として 何桁にしたいの?
数値が秒なんだから 7桁  9999999 までにしたいとして も 115日しか取れないよ?
0763nobodyさん2011/11/22(火) 19:33:24.23ID:???
現在日時より年、月を除いたタイムスタンプ

↑これ意味がよく分かりません
0764nobodyさん2011/11/22(火) 19:35:04.85ID:/8xSqwNz
桁数は10桁です。10に足りない場合は左詰めで0を加えて10桁にします。
よろしくお願いします。
0765nobodyさん2011/11/22(火) 19:42:35.73ID:/8xSqwNz
>>761
$date = floor(microtime(true)*1000) - floor(mktime(0, 0, 0, date("n"), 0)/1000);
ですか?
ありがとうございます。試してみます。
0766nobodyさん2011/11/22(火) 19:53:12.40ID:???
$mtime = microtime(true);
$time = floor($mtime);
$date = mktime(date('H', $time), date('i', $time), date('s', $time), 1, date('d', $time), 1970);

echo ceil(($date + $mtime - $time) * 1000);

こうじゃね多分
0767nobodyさん2011/11/22(火) 20:01:05.46ID:???
>>765
現在時刻から 0時0分0秒の0月の同日  つまり先月の同じ日(一ヶ月まえですらない)を引いてて意味分かんない数値になってるし。

みんなが出してくれた式の意味分かんないんじゃない?

0768nobodyさん2011/11/22(火) 20:10:41.90ID:???
>>767
× 0時0分0秒の0月の同日  つまり先月の同じ日
○ 0時0分0秒の0月の同日  つまり昨年12月の同じ日

mktime(0, 0, 0, date("n"), 0)は
× 0時0分0秒の0月の同日
○ 0時0分0秒の同月の0日  つまり先月末
0769nobodyさん2011/11/22(火) 20:11:36.29ID:???
何これ頭コンガラガルわ
0770nobodyさん2011/11/22(火) 20:24:31.09ID:???
つまり、その日の始まりのタイムスタンプを出せばいいだけってことなんだよな?
0771nobodyさん2011/11/22(火) 20:27:10.56ID:???
その月の始まりからのタイムスタンプをミリ秒でってことだと思うよ
0772nobodyさん2011/11/22(火) 20:29:05.97ID:/8xSqwNz
>>771
その通りです。説明していただきありがとうございました。
>>765ではだめでした。。すみませんがご教授ください
0773nobodyさん2011/11/22(火) 20:38:41.35ID:???
>>772
両者とも整数部の単位は秒
$milli_sec = ceil((microtime(true) - mktime(0, 0, 0, date('n'), 0)) * 1000);
0774nobodyさん2011/11/22(火) 20:40:07.47ID:???
>>772
>>766は?
0775nobodyさん2011/11/22(火) 20:53:22.39ID:???
>>773
date_default_timezone_set('UTC');
$milli_sec = ceil((microtime(true) - mktime(0, 0, 0, date('n'), 1)) * 1000);

じゃない?
07767532011/11/22(火) 20:58:18.67ID:/8xSqwNz
>>766,775さんの式でできていました。
ありがとうございました!
0777nobodyさん2011/11/22(火) 23:36:59.19ID:L81haohX
komodo editが上級者向けって本当ですか?
ttp://demo.phpbeginners.net/setup2/editor/
0778nobodyさん2011/11/22(火) 23:56:27.54ID:???
>>777
コドモ向けだろ?













って返信欲しかったんだよな?ダヨナ?
0779nobodyさん2011/11/23(水) 00:33:07.96ID:???
leap time セットしたらphpのmake testでtest failerおおすぎなんだけど
閏秒は無視したほうが良いのだろうか?
0780nobodyさん2011/11/23(水) 03:46:05.98ID:???
>>777
一応破線は引いてあるけど非推奨にEclipseがあるのは理解できない。
0781nobodyさん2011/11/23(水) 03:53:16.90ID:???
>>777
男は黙ってvimだよな
0782nobodyさん2011/11/23(水) 04:00:07.99ID:???
>>781
viは出すな。Emacsとの宗教戦争になるwww
0783nobodyさん2011/11/23(水) 06:59:51.55ID:???
vim使うと最後に改行ついちゃうじゃん、なんて言われたことがあるよ。
うん、ファイルだからね、と返したらハテナついてたけどめんどくさいからほっといた
0784nobodyさん2011/11/23(水) 09:00:34.23ID:???
男は黙ってedline
0785nobodyさん2011/11/23(水) 09:54:41.56ID:???
たまに環境設定してない状況でedが起動してしまうことあるな
ありゃ混乱するw
0786nobodyさん2011/11/23(水) 10:41:12.32ID:dmtpqfj9
nanoだろ普通

>>780
初心者向けとしてNGなら納得はできるな
0787nobodyさん2011/11/23(水) 10:45:27.92ID:pg1I2OrG
windows + apache2.2 + php5.3で
localhost/以下はモジュールで動かせました
localhost/cgi-bin/以下はcgiとして動作するようにしたいのですが
ruby,python,perlは動くのですがphpだとソースコードがそのまま表示されたりページを開くたびにソースコード自体がダウンロードされたりします
マニュアルやら検索でヒットしたページの通りにやってますが上手く来ません
モジュールとCGIを両方使う正しいapacheの設定方法を教えて下さい
0788nobodyさん2011/11/23(水) 10:52:46.68ID:dmtpqfj9
スレチ
0789nobodyさん2011/11/23(水) 11:22:02.38ID:???
var_dump(strpos('(',"123()"));
falseになるんだけどどうしたらマッチするようになりますか?
0790nobodyさん2011/11/23(水) 11:24:55.01ID:???
>>787
CGIで動作させるためには拡張子をCGI扱いにするかファイルの拡張子をCGIに変更しないと無理ですよ。
またはディレクトリ毎に設定するか。
あとは自力でどうぞ!
0791nobodyさん2011/11/23(水) 11:26:47.32ID:???
>>789
あ、引数反対かw
0792nobodyさん2011/11/23(水) 13:35:17.80ID:pg1I2OrG
>>790
そのへんはマニュアルや検索で十分見て試したので知ってます
0793nobodyさん2011/11/23(水) 13:49:45.09ID:???
>>792
どっちか行ってこいPHP関係ない

Apache統合スレ 11 (HTTPServer以外も含む)
http://hibari.2ch.net/test/read.cgi/mysv/1286137109/
Apache関連 Part11
http://hibari.2ch.net/test/read.cgi/unix/1222729860/
0794nobodyさん2011/11/23(水) 13:55:13.49ID:???
>マニュアルやら検索でヒットしたページ
の内容書かないから、
こっちが答えても片っぱしから知ってますと言われるだけだし
答えるだけ無駄な気がするw
0795nobodyさん2011/11/23(水) 14:40:47.62ID:???
XAMPP使いがたむろってるスレで聞いても答えられる奴なんていねえよ
0796nobodyさん2011/11/23(水) 14:44:51.23ID:???
だいたい、そのソースがcgiなのかphpなのかを
鯖から見てどうやって判別するんだよって話だな
0797nobodyさん2011/11/23(水) 14:56:29.71ID:???
>>796
手軽なのはやっぱり拡張子でわける方法だよね。
試したこと無いけど,htaccessでAddTypeで切り替える?

>>786
>初心者向けとしてNGなら納得はできるな
でもそれ上級者とかプロ向けとかも書かれている。
そのプロ向けのZendStudioなんてプロ向けと言うよりキワモノ向けの気がする。
0798nobodyさん2011/11/23(水) 14:59:02.30ID:???
みなさんってデバッカは何使っている?
Zend Debbuger?xdebug?

自分は現在はxdebugを利用している。
0799nobodyさん2011/11/23(水) 15:17:05.82ID:???
>>421
$data = file("対象ファイル");
foreach ($data as $line) {
  echo rtrim($line) . "\n";
}

いまさらだけどね。
最速かどうかはわからん。
0800nobodyさん2011/11/23(水) 15:25:54.18ID:???
hahaha

$a="〜";
$b=file($a,FILE_IGNORE_NEW_LINES);
$c=implode("\n", $b);
0801nobodyさん2011/11/23(水) 15:32:10.45ID:???
>>798
var_dump();
echo 'passed check point ?'; // ? は適当な数字
だけですましてる。
0802nobodyさん2011/11/23(水) 15:39:10.42ID:???
FILE_IGNORE_NEW_LINESか、覚えとこ。
0803nobodyさん2011/11/23(水) 15:53:08.82ID:???
>>801
Xdebug使ってみなよ。
var_dump()をものすごく綺麗に生成して表示してくれるから。
0804nobodyさん2011/11/23(水) 19:33:34.32ID:???
【OS名】windows 7 32-bit
【PHPのバージョン】5.3.8 (XAMPP 1.7.7)
【連携ソフトウェア】MySQL
【質問内容】
基本的なことですが、
PHPで生成されるウェブサイトを表示したユーザーには
PHPのソースが見えることはありませんか?
障害発生時でも見えませんか?

言うまでもありませんが、変数名やデータベース名などが見えると
セキュリティ上まずいので。
08058042011/11/23(水) 19:34:03.70ID:9QlOj3Cf
age忘れていました。
0806nobodyさん2011/11/23(水) 20:18:11.71ID:???
>>804
人為的ミス、サーバーのアップデート時とかCGIだとパーミッション設定ミスなどで
ソースが見れたケースは過去に何度か経験あるので絶対に見れないとは言わない。
それよりもエラー表示を隠し忘れていて情報晒しているサイトならよくみかけるw
08078042011/11/23(水) 20:53:18.61ID:9QlOj3Cf
>>804
ミスやセキュリティホールは仕方ないですね。
仕様では「見えない」と承知しました。
ありがとうございます。
0808nobodyさん2011/11/23(水) 21:21:22.49ID:???
ちょw
そんな仕様ない
「見えない」ように鯖で設定しないとダメ
0809nobodyさん2011/11/23(水) 21:29:56.02ID:???
>>804
見えたらまずいようなものはドキュメントルートに置くなっ!!!!!!!!!!!
08108042011/11/23(水) 21:34:21.21ID:9QlOj3Cf
>>809 >>808
hoge.php
で生成されたページを表示したいが、ソースは見せたくないときは
hoge.phpを見えない場所に置いてページを表示させるには
どのようにするのが適切でしょうか。
0811nobodyさん2011/11/23(水) 21:42:14.31ID:???
>>810
フレームワーク使う
0812nobodyさん2011/11/23(水) 21:43:23.90ID:???
禅問答のように思えているのかもしれないけど、
公開ディレクトリにあるスクリプトは非公開ディレクトリのスクリプトを読み込むことができるので。
0813nobodyさん2011/11/23(水) 21:45:24.00ID:???
>>808>>809もセキュリティー側に関してはド素人だと言うことがよくわかりますね。
問題は人為的なミスなどって考えないのかな?

それと
>見えたらまずいようなものはドキュメントルートに置くなっ!!!!!!!!!!!
レンタルサーバによってはそのFTPで接続できるのがそのドキュメントルート以下って事もあることを理解できないのかな?
08148042011/11/23(水) 21:50:51.45ID:9QlOj3Cf
>>812
hoge.phpから../mienai/mienai.phpを実行すればいいわけですね。

>>811
すみません。ピンとこないので精進します。

>>813
そういう仕様のサーバもありそうですね。
■ このスレッドは過去ログ倉庫に格納されています