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

【PHP】下らねぇ質問はここに書き込みやがれ 57

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/10/22(月) 23:10:36ID:mIlonsko
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 56
http://pc11.2ch.net/test/read.cgi/php/1192092941/

◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0636nobodyさん2007/10/30(火) 17:50:37ID:???
ベストは知らないけどmb_convert_encoding使ってて困ったことはないかな
0637nobodyさん2007/10/30(火) 19:14:36ID:???
コンバートはmb_convert_encodingでFAだと思います(それ以外知らないし)
エンコード判定→変換の流れが、どうするのがいいのか分からないんですよねー
試しに文章を一文字区切りにして、一文字ずつ判定ルーチンにかけてみましたが
やはり誤判定する文字がありますね
0638nobodyさん2007/10/30(火) 19:15:06ID:???
mb_detect_encoding?
0639nobodyさん2007/10/30(火) 20:49:56ID:???
>>620
DWはWebオーサリングツールであってフレームワークじゃない。
フレームワークっていうのは簡単にいうと、
MVCモデルを実現するための仕組みのようなもの。
必要なデータベースを作り、簡素なModel View Controllerを記述することにより、
あとはフレームワークが複雑な処理をやってくれる。
たとえばCakePHPのチュートリアルにあるとおり、
数行のコードでBlogが作れるようになっているわけだ。
当然FWで作ったアプリケーションはFW上でしか動作しないので、
サーバにインストールする必要があるが、
実体はPHPなので、PHPが使えるサーバならPHPのFWは使えるということになる。
0640nobodyさん2007/10/30(火) 20:58:53ID:???
>>637
jcode.php
0641nobodyさん2007/10/30(火) 21:01:57ID:7j0uTXdo
変数名を付けたいのですが専門用語がわかりません。

$ipaddr = '192.168.0.1';
$subnet = '24';
$??? = '192.168.0.1/24';

$???は何にしたらいいでしょうか?
別になんでもいいのですが他人が見るのでちゃんとした名前にしたいです。
0642nobodyさん2007/10/30(火) 21:04:32ID:???
>>641
ipaddr_cidrじゃね
0643nobodyさん2007/10/30(火) 21:07:09ID:???
>>642
IPアドレスサイダーって聞いたことないけど、正式な名称ってなんだろ?
0644nobodyさん2007/10/30(火) 21:12:26ID:???
その記法のことをCIDRって言うんだよ
0645nobodyさん2007/10/30(火) 21:14:03ID:???
>639

>620 が言ってるのは FireWorks だと思うんだが…
(もっとも >620 の言う「DW が でてくるから」というのは どこだかわからんが)
0646nobodyさん2007/10/30(火) 21:16:44ID:???
>>641
$networkじゃね?
0647nobodyさん2007/10/30(火) 21:21:29ID:???
>>646
範囲広っ
0648nobodyさん2007/10/30(火) 21:26:16ID:???
>>647
じゃあ
$local_network
0649nobodyさん2007/10/30(火) 21:26:45ID:???
フレームワーク=MVCだと思ってるやつは勉強不足
0650nobodyさん2007/10/30(火) 21:29:26ID:???
cidr表記のipアドレスなんだから
ipaddr_cidrでいいだろ
何が不満なんだ
0651nobodyさん2007/10/30(火) 21:32:36ID:???
$aipi-adoresu
0652nobodyさん2007/10/30(火) 21:38:22ID:???
ipaddrつけなくてcidrで良いんじゃ
0653nobodyさん2007/10/30(火) 21:49:27ID:???
だからcidrは表記法だって。
0654nobodyさん2007/10/30(火) 21:57:09ID:???
結局何に使ってるかよるわけじゃん
ホストアドレスを問題にしてるなら>>648も捨てたもんじゃない
0655nobodyさん2007/10/30(火) 22:03:53ID:???
どーせローカル変数だろうから$wkでいいんじゃね?
0656nobodyさん2007/10/30(火) 22:15:39ID:???
正確にはlocal_networkだがnetworkで問題ない
だってネットワークだシナ
0657nobodyさん2007/10/30(火) 22:17:44ID:???
まあいいや、あとはこっちで

クラス名・変数名に迷ったら書き込むスレ。Part11
http://pc11.2ch.net/test/read.cgi/tech/1191250784/
0658nobodyさん2007/10/30(火) 22:18:49ID:???
変数名とかまよったらこっちへ・・・
http://pc11.2ch.net/test/read.cgi/tech/1191250784/l50
0659nobodyさん2007/10/30(火) 22:19:12ID:???
>>658
m9
0660nobodyさん2007/10/30(火) 22:19:26ID:???
(´・ω・`)
0661nobodyさん2007/10/30(火) 22:29:31ID:???
>>645
なるほどFireWorksか。気づかなかった。

>>649
開発性・生産性・拡張性に優れているものを作ろうとすると自然とMVCになるわけで、
=ではないが実際FWのほとんどがそういったものであるのは事実。
よく説明にある、フレームワーク=土台といっても、全く知らない人間には意味不明だから、
わかりやすく説明するために簡素化しすぎたのは悪かったけどな。
0662nobodyさん2007/10/30(火) 22:31:32ID:???
192.168.0.1 -> internet address or inet
24 -> netmask (0xffff00 のことでしょ)
192.168.0.1/24 -> network address or cidr address
06636412007/10/30(火) 22:44:56ID:???
192.168.0.1 -> IPA
24 -> SNM
192.168.0.1/24 -> NWA

ども!これに決めました。
文句があると思うけどSKN!!
0664nobodyさん2007/10/30(火) 22:46:15ID:???
192.168.0.1/24
こんなの存在しないだろ
192.168.0.0/24ならわかるが
0665nobodyさん2007/10/30(火) 23:02:40ID:???
>>664
どうせマスクしたらいっしょだろうが
0666nobodyさん2007/10/30(火) 23:43:22ID:???
>>664
それは、いわゆるブロードキャストアドレスってやつで、
そのアドレスに向けて打つと、そのネットワークに繋がっている
全てのルーターに到達する。スレチだから、詳しくはネットワーク関係の板でも聞け。
0667nobodyさん2007/10/30(火) 23:45:02ID:???
>>664
TCP/IP勉強white!!
0668nobodyさん2007/10/30(火) 23:45:08ID:???
0はブロードキャストアドレスとは少し違うよ
0669nobodyさん2007/10/30(火) 23:47:31ID:???
少し?全然別物だろ
0670nobodyさん2007/10/30(火) 23:54:32ID:???
お前らも実習でつながらないLanケーブル作ったよな
0671nobodyさん2007/10/31(水) 00:06:37ID:???
>>670
なんかリンクアップしないと思ったらお前のせいか。
0672nobodyさん2007/10/31(水) 00:06:54ID:???
ブロードキャストアドレス、ぐぐったら全然違うしw
ウソつきばっかだな
0673nobodyさん2007/10/31(水) 00:23:01ID:???
>>666
久々に凄いデタラメを見た
0674nobodyさん2007/10/31(水) 00:25:07ID:???
>>670
あるあるw
しらんぷりで放置されたのが溜まってる
0675nobodyさん2007/10/31(水) 00:38:45ID:???
お前らなんの話してるの?
難しくてわからない
0676nobodyさん2007/10/31(水) 00:54:02ID:???
>>675
ブロードウェイに出ているキャストのアドレスはどこかを熱く語っているんだよ。
0677nobodyさん2007/10/31(水) 00:57:17ID:???
さすがに192.168.0.1/24のbroadcastと言ったら192.168.0.255なんでネタですよね。
そもそも192.168.0.1/24はCIDRアドレスの簡易表記法=アドレス/プレフィックス長なわけで。
(プレフィックス長=ネットワーク部のビット数)
プレフィックス長を省略して192.168.0.1と表記した場合はホストアドレスとしての解釈。
0678nobodyさん2007/10/31(水) 01:00:34ID:???
どうこう言うより自分とこのルーティングテーブル見るのが手っ取り早い
0679nobodyさん2007/10/31(水) 04:54:27ID:???
会員システムを作っているのですが、
ログイン済みかどうかの判断は

1. ID/PASSWORDをセッションで持ち歩いて移動毎にチェック
2. 一度認証クリアしたらIDのみセッションに入れて、移動毎にIDセッション持ってるか確認
どっちが良いでしょうか?

1の方が安全な気がうっすらとはしますが。
0680nobodyさん2007/10/31(水) 04:56:58ID:???
パスワードをセッション変数に入れる必要がどこにあるのか、逆に聞いてみたい。
0681nobodyさん2007/10/31(水) 05:46:51ID:???
>>679
IDとPWもどちらもいれるなバカ
0682nobodyさん2007/10/31(水) 06:47:01ID:jWccZHnt
配布スクリプトにコードに「echo "はじめまして";」というのを書いてます。
これはユーザーが書き換えることを想定して、htmlspecialcharsをかませるべきでしょうか?
0683nobodyさん2007/10/31(水) 06:48:37ID:???
書き換えなくても通せ
0684nobodyさん2007/10/31(水) 06:54:27ID:???
>>679
ログインフラグたてりゃいいじゃない
0685nobodyさん2007/10/31(水) 07:03:30ID:???
>>635
俺は決めうち
表示エンコードで返ってくるものとしてそもそも変換していない
ダミーパラメーターは聞いたことはあるからそんなに珍しくはないだろう
0686nobodyさん2007/10/31(水) 07:27:03ID:???
>>683
自称回答者おつかれ
0687nobodyさん2007/10/31(水) 10:10:47ID:F/XuAcDL
//すでに格納済みのほかのファイル更新日
$xxx_date

$page[] = '../aaa/';
$page[] = '../bbb/';
それぞれのディレクトリーにはページファイルが入ってます。それを
foreach($page as $key =>$value){

$pdata = explode("." , $value);
$lastupdate = @date("Y-m-d\TH:i:s\+09:00", @filemtime("..".$pdata[2].".php"));

echo $lastupdate;
}
としてファイルの更新時間などを取得してるのですが、$lastupdateで取得したそれぞれの更新日と
$xxx_dateを比較して最新のものを返すにはこの後どうすればいいんでしょうか。
0688nobodyさん2007/10/31(水) 10:21:50ID:F/XuAcDL
>>687
なにか違うものを貼り付けてました

foreach($dirurl as $key =>$value){
$dirurl = $value;

$dir = @opendir($dirurl);

while($file = readdir($dir)) {

if (!is_dir($file)){

$pdata = explode("." , $dirurl.$file);
$lastupdate = @date("Y-m-d\TH:i:s\+09:00",@filemtime("../".$pdata[2].".php"));

echo $lastupdate;
}
}
closedir($dir);
}
です(;´д⊂)
0689nobodyさん2007/10/31(水) 12:26:20ID:wHbETa3h
非常にくだらいないミスだと思うんだけど
$Nextmonth = date("Y年m月",mktime(0, 0, 0, date("m")+1, date("d"), date("Y")));
echo $Nextmonth;

これで何故か2007/12になる…。
期待した表示は11月なんですが、おかしい所指摘してくださいまし。
もっと簡易な書き方があったらそれも欲しいです
(´・ω・`)
0690nobodyさん2007/10/31(水) 12:36:09ID:???
>>689
考えずにレスすると、+1しないでEchoするとどうなる?
0691nobodyさん2007/10/31(水) 12:36:30ID:???
>>689
今日が10月31日で、月+1にすると11月31日で
11月は30日までしかないから12月1日扱いになる。
日まで指定する必要なし。
0692nobodyさん2007/10/31(水) 12:37:08ID:???
>>689
そら+1してんだから明日でしょ。
今日11/31だよ。
0693nobodyさん2007/10/31(水) 12:38:50ID:???
>>692
未来人乙
0694nobodyさん2007/10/31(水) 12:40:02ID:???
なんでこんな低レベルな質問に間違い回答続出なんだw
0695nobodyさん2007/10/31(水) 12:49:05ID:???
>>693
あれ?
0696nobodyさん2007/10/31(水) 12:50:04ID:???
phpで稼げる日払いのお仕事ありませんか〜?;;
0697nobodyさん2007/10/31(水) 12:50:18ID:wHbETa3h
>>690〜>>694
�d、ほんと下らない事ですません
おめいらにはホントに頭が下がるよ
0698nobodyさん2007/10/31(水) 13:43:41ID:???
>>696
週払いなら
0699nobodyさん2007/10/31(水) 13:45:38ID:G97Omn6y
すんません、PHPでEXCELファイルを扱いたいんですけど、いいライブラリありますか?
現在はEXCEL_REVISEを使わせてもらってるんですけど、数式の追加が出来ないんですよね。
環境はCentOS5.0+PHP5.1.6です。
0700nobodyさん2007/10/31(水) 13:52:17ID:???
>>699さんはふだんはlinuxでメールチェックとか2ちゃんみてますか?
0701nobodyさん2007/10/31(水) 14:14:57ID:???
>>700
見てないですね。
0702nobodyさん2007/10/31(水) 14:37:29ID:Xq7d8XJi
[Dir]┬ index.php
   .├ hogehoge.php
   .├ example.php
   .└ . htaccess

ディレクトリの中の各PHPに同じファイルをインクルードさせたいのですが、
全てのPHPファイルに「require_once("/path/include.php");」
を書くと、読み込むファイルのパスが変わった場合など変更するのが大変です。

. htaccessで全ての*.phpに同じ一行を記述するようなことはできませんか?
(記述というか、同じ動作を与えることです。)
0703nobodyさん2007/10/31(水) 14:52:34ID:???
出来るがその方針が気に入らない
0704nobodyさん2007/10/31(水) 14:55:16ID:???
>>702
むしろphp.iniのinclude_pathは、その様な目的の為に利用できるんじゃないかと思うが?
0705nobodyさん2007/10/31(水) 14:56:56ID:Xq7d8XJi
>>704
なるほど!
include_pathも考えてみたのですが、これって複数のパスを指定できるのですね
その方法で試してみます、ありがとうございました。
0706nobodyさん2007/10/31(水) 14:58:34ID:???
まずマニュアルを読もうぜ…
たしかインストールマニュアルのPEARのインクルードが云々って所に書いてあったはず
07076872007/10/31(水) 15:01:41ID:F/XuAcDL
だれか居ませんか
>>687 分かる人。
0708nobodyさん2007/10/31(水) 15:04:30ID:???
>>707
記号を全部抜いて数字の羅列にして比較したら
0709nobodyさん2007/10/31(水) 15:06:52ID:Xq7d8XJi
include_pathって読み込んで、そのままスクリプトを実行してくれるのでしょうか?

htaccess
php_value include_path ".;C:\xampp\htdocs\Project\test\inc\conf.php"

inc/conf.php
<?
$x = 10;
echo "aa";
?>

index.php
<?
echo $x;
?>

index.phpを実行すると白紙になります。
conf.phpを読み込んでくれていないということですよね。
require_once()では同じパスで正常に読み込んでくれました。
phpinfo()で見てみるとinclude_pathもしっかり書き換わっていました。
0710nobodyさん2007/10/31(水) 15:21:24ID:???
xxx_dateの構造が分からんの比較できるわけないだろ!
喧嘩うってんのかてめえ!
0711nobodyさん2007/10/31(水) 15:22:49ID:???
>>709
検索パスを書き換えるだけだよ
0712nobodyさん2007/10/31(水) 15:25:02ID:Xq7d8XJi
>>711
なるほど!
つまり、require_once()は直書きしないといけないのですね。
ありがとうございます。
0713nobodyさん2007/10/31(水) 15:30:37ID:???
htaccess
php_value include_path ".;C:\xampp\htdocs\Project\test\inc"

index.php
<?
require "conf.php"; # パスから探して読み込み
echo $x;
?>

けど設定ファイルは相対パスで指定しといて、相対関係は固定したほうがいいと思うよ
ほんで conf.php 内にパス用の定数をあれこれつくる
0714nobodyさん2007/10/31(水) 15:38:57ID:KNyfjI5Y
include($_GET['file'] . '.tpl');

この状況で、NULLバイト後ろにくっつける以外に'.tpl'を無視できる方法ってないかな?'
0715nobodyさん2007/10/31(水) 15:46:40ID:???
スキームつけてクエリ化する、とか。
0716nobodyさん2007/10/31(水) 16:07:24ID:KNyfjI5Y
>>715
どういうこと?
0717nobodyさん2007/10/31(水) 16:12:58ID:???
>>698
週払いでもいいんです。雇ってください〜
0718nobodyさん2007/10/31(水) 16:20:10ID:???
>>717
スキルは?
0719nobodyさん2007/10/31(水) 16:32:47ID:???
>>714
ハッキングでもするのか
0720nobodyさん2007/10/31(水) 16:43:09ID:???
php5.3か6ためしてる方ってもういる?
0721nobodyさん2007/10/31(水) 16:49:17ID:???
>>717
月払いのところにいかない理由がわからん
すぐやめたいから?
0722nobodyさん2007/10/31(水) 18:03:18ID:???
>>687>>707
質問の日本語の意味が分からないんだけど、
> $lastupdateで取得したそれぞれの更新日と$xxx_dateを比較して最新のものを返す
ってのは
「$xxx_dateより新しい$lastupdateを全部返す」
のか
「$lastupdateの中で1番新しいものを返す」
のか
「$lastupdateの中で1番新しいものが$xxx_dateよりも新しかったら返す」
のか、
どれが正解?
0723nobodyさん2007/10/31(水) 18:26:51ID:/4czZymM
ログのとり方について質問です。

アクセス集中しそうなアンケートで、csvを追記したいのですが

lockファイルのロック→書き込み対象のロック→解除→解除

のよくある二段構えでは不十分でしょうか?
実際一回だけ消えた事はありしまた…

SQLなど使わずに、よい保存法はありますか?
0724nobodyさん2007/10/31(水) 18:37:04ID:???
すみません。Smarty初心者なんですが、PHPファイルは本に書いてある通り
EUC-JPで保存しました。HTMLファイルはShift_JISで保存しました。

そうしたら、アクセスしたら文字化けしたので、HTMLファイルもEUC-JP
にしたら治ったんですが、やはりHTMLファイルもEUC-JPでなければならない
ということですか?PHPのinternalencodingはEUC-JPとしています。

教えてください。
0725nobodyさん2007/10/31(水) 18:38:57ID:???
>>723
なんでSQLとかいうかDBにしないのか謎
0726nobodyさん2007/10/31(水) 18:44:05ID:???
>>724
yse
日本語で文字コードの混在は化ける
0727nobodyさん2007/10/31(水) 18:49:43ID:???
>>723
そんなOSは投げ捨てろ
07286872007/10/31(水) 18:58:22ID:F/XuAcDL
>>708 >>710 >>722 レスありがとうございます。
$xxx_date = getlastmod();です。
>>688で取得した各ファイルの内もっとも更新時間の早いファイルの更新時間と
$xxx_date とを比較したいのです。
0729nobodyさん2007/10/31(水) 19:06:55ID:???
rNote(0.9.7.5)というBlogツールを使用しているのですが
近頃コメントスパムが増えてきたので、KCAPTCHAによる認証を通そうと考えたのですが
PHPはまるでわからないのでお手上げ状態です。

entries/writeback.skin に
 <img src="PATH-TO-THIS-SCRIPT?<?php echo session_name()?>=<?php echo session_id()?>">
 <input type="text" name="keystring">
を追記し、CAPTCHA画像を呼び出すところまではできたのですが
肝心要の本体側(rnote.php)のどこに何を書き込めばよいのかがどうにもわかりません。

親切な方、お時間のある方、どうかお助けを……

rNote
ttp://rinn.e-site.jp/rnote/
KCAPTCHA
ttp://freshmeat.net/projects/kcaptcha/
0730nobodyさん2007/10/31(水) 19:22:01ID:???
>>718
作ったもの(ソースとかドキュメント)提示してもらった方が早くね
0731nobodyさん2007/10/31(水) 19:22:16ID:???
>>687
getlastmodとfilemtimeは両方とも
UNIXタイムスタンプなので
そのまま比較すればいいよ

foreach($dirurl as $key =>$value){
    $dirurl = $value;

    $dir = @opendir($dirurl);

    $lastFileMtime = 0;
    while($file = readdir($dir)) {

        if (is_file($file) == false){
            continue;
        }
        $pdata = explode("." , $dirurl.$file);

        if  ($lastFileMtime < filemtime("../".$pdata[2].".php")) {
            $lastFileMtime = filemtime("../".$pdata[2].".php");
        }
    }
    closedir($dir);
}

$xxx_date = getlastmod();
if ($xxx_date < $lastFileMtime) {
    echo 'なんたらかんたら';
}
0732nobodyさん2007/10/31(水) 19:33:40ID:5PiA8qbK
>>725
やっぱりSQL使わないと駄目ですかねぇ
なるべくhtmlとlogファイルだけで手狭にしたいんですが
0733nobodyさん2007/10/31(水) 19:40:36ID:???
まともにロックできないんだからDB使えよ
07346872007/10/31(水) 19:44:14ID:F/XuAcDL
>>731
早速ありがとうございます。
これから仕事なので帰宅したらやってみます。

こういうのがぱっと書けるように早くなりたい(;´д⊂)
何度も書き込み失礼しました。
0735nobodyさん2007/10/31(水) 19:44:15ID:???
まあロジックが駄目で壊れるならともかく「消える」だしなあ
負荷テストしたって再現困難だろうな
0736nobodyさん2007/10/31(水) 20:01:54ID:???
>>732
もし"DBMSの管理めんどくせ"で避けてるんならSQLite2使ってみたら?標準装備だし
SQLを解釈するISAMって感覚で、素のファイルを扱うより楽だと思うけどね
■ このスレッドは過去ログ倉庫に格納されています