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

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

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

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

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0201nobodyさん2007/06/12(火) 15:42:25ID:???
>>200
素直にis_dir を使えば?
0202nobodyさん2007/06/12(火) 15:47:10ID:r99QbufC
>>201
ディレクトリがないときは作りたいのですが
作るとclosedirを使わないといけないのか? というのが質問の趣旨なんですけど
0203nobodyさん2007/06/12(火) 15:52:04ID:???
>>202
is_dir()を使うべき所でopendir()を使う必要がない。
mkdir()でディレクトリハンドルは開かない。
0204nobodyさん2007/06/12(火) 16:01:40ID:r99QbufC
これについて言いたいのは分かる
<?php
$dir = "/etc/php5/";

// 既知のディレクトリをオープンし、その内容を読み込みます。
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
}
closedir($dh);
}
}
?>

知りたいのはディレクトリが存在しないとき作成する方法
>>203
ディレクトリハンドルはopendirで開いてないか? という質問なんですが
0205nobodyさん2007/06/12(火) 16:05:31ID:???
┐(´ー`)┌ コイツワケワカンネ
0206nobodyさん2007/06/12(火) 16:09:02ID:???
>>204
開かない、falseが戻ってくる。つうかそこまでわかっているなら
ttp://jp.php.net/manual/ja/function.opendir.php

の戻り値をまず見てみろよ
0207nobodyさん2007/06/12(火) 16:12:06ID:r99QbufC
訳分からん質問投下してすまん
でもみんなサンクス
0208nobodyさん2007/06/12(火) 16:14:20ID:???
>>204
だから存在しなければ作るには
if(is_dir($dirpath)) mkdir($dirpath);
とするべきで、そのopendir()の使い方は規格外だから、
ディレクトリを閉じる閉じないで悩む必要はないと言ってるんだが。
存在するディレクトリにopendir()を使って閉じない場合は(変数に保持しなくても)
スクリプトの終了まで開きっぱなしになるがな。
02092082007/06/12(火) 16:19:17ID:???
おっと!が抜けた
if(is_dir($dirpath)) mkdir($dirpath);
 ↓
if(!is_dir($dirpath)) mkdir($dirpath);
な。
0210nobodyさん2007/06/12(火) 16:19:44ID:r99QbufC
>>208
把握
0211nobodyさん2007/06/12(火) 16:27:36ID:???
ちなみに
mkdir($dirpath, 0777, true);
ってやっても同じことができるけどね
0212nobodyさん2007/06/12(火) 16:43:05ID:???
>>211
それはパス中のディレクトリが存在していなくても全てのディレクトリを作るためのオプションで
ディレクトリが存在しないときだけ作るオプションではないが。
0213nobodyさん2007/06/12(火) 16:44:29ID:???
結局同じことが実現できるんだからいいんじゃないの?
0214nobodyさん2007/06/12(火) 16:57:59ID:???
>>213
全然同じことじゃない。
第3引数trueで行うのは作成先の上位ディレクトリが存在しない場合でもその上位ディレクトリを全て作ること。
作成するディレクトリ(第3引数trueでは最下層ディレクトリ)が存在する場合はどのみちエラーになる。
0215nobodyさん2007/06/12(火) 17:29:36ID:???
safe modeだと不具合出るしね
0216nobodyさん2007/06/12(火) 17:38:57ID:???
>>214
あースマソ
mkdir -p と同じ意味かと勘違いしてた
上位ディレクトリを作るかどうかは、ここではどっちでもいいと思うけど
2段階以上存在しないディレクトリ作るなら、is_dirでfalse返った後のmkdirも失敗するし
0217nobodyさん2007/06/12(火) 17:49:09ID:1K2o2XiZ
QuickFormでユーザー登録する部分を作っているんだけど
addRuleで以下の条件はどうやって記述すればいいですか
 項目usernameはDB内に重複してはいけない
 項目usernameはドット(.)を使用してはいけない
お願いします
0218nobodyさん2007/06/12(火) 19:17:34ID:???
まあ
if(!is_dir($path)) mkdir($path,0755,TRUE);
が最強ということだね。
0219nobodyさん2007/06/12(火) 21:24:26ID:???
>>217
>項目usernameはDB内に重複してはいけない
独自ruleをつくれ

>項目usernameはドット(.)を使用してはいけない
regex使え
0220nobodyさん2007/06/12(火) 21:45:49ID:???
>>218
先生!!
$pathが存在し かつ ディレクトリじゃない場合の対応が抜けてると思います
0221nobodyさん2007/06/12(火) 22:00:52ID:???
>>220
考えてみたが必要なくね?
dirってディレクトリが存在しなく、dirというファイルが存在する場合に
mkdirでdirというディレクトリ生成してもファイルには何も影響ないと思うんだが
0222nobodyさん2007/06/12(火) 22:11:40ID:???
>>220
厳密にいうと、そうかもしれんが、そもそもそういう状態になってしまっている段階で、

ソースの設置ミス or 予約領域の名前と同名のファイルがユーザ側で作成できてしまう
というバグにあたるから、この部分では不要に思えるけどね。
0223nobodyさん2007/06/12(火) 22:36:45ID:???
じゃあ、まあ
if(!file_exists($path)) mkdir..
をつかってみようか。
0224nobodyさん2007/06/12(火) 22:52:10ID:EnD/PO9k
windowsXP環境にて
ネットワーク上のクラスファイルをrequireしたいのですができません。
ネットワークドライブを貼ってみてもダメでした。
やり方をご存知でしたら教えて頂けませんか?
よろしくお願いします。
0225nobodyさん2007/06/12(火) 22:54:21ID:???
ネットワーク構成とソースをはりなさい
0226nobodyさん2007/06/12(火) 23:12:31ID:cXpAIvsz
phpの問題なのかどうか、どこの問題かどうかは分からないのですが、
スクリプトを実行すると、一日に何回かは、以下のエラーができます。

「 Internet Explorer ではこのページは表示できません
可能性のある原因:
インターネットに接続されていない。
Web サイトに問題が発生している。
アドレスに入力の間違いがある可能性がある。 」

ただ、すぐにリロードすれば正常に表示されるので、瞬間的におかしくなるんだと思います。
これって、どこがネックになっているのでしょうか?
宜しくお願いします。
0227nobodyさん2007/06/12(火) 23:17:07ID:???
>>226
>>225
0228nobodyさん2007/06/13(水) 00:43:26ID:???
>>200こんなくだらない質問に対してそこまで
熱く語れるお前らのレベルの低さに感動した。
0229nobodyさん2007/06/13(水) 00:47:17ID:LojRH6RJ
1、コマンドラインから php hoge.php
2、ブラウザから hoge.php をアクセス。

hoge.php

$fp = fopen( "http://hogehoge.ho.ge"; ,"r" );

1の場合は問題なく取得できるのですが、2の場合なぜか、 $fp が NULL
になります。なぜでしょうか?ちなみに、 hoge.php は 755 です。
0230nobodyさん2007/06/13(水) 01:17:34ID:???
javascriptで扱うクッキーとphpで扱うクッキーは同じものと考えてよいのでしょうか?

PHPSESSIDだけ特別で、これはセッションのキーを保存しておく特殊なクッキーと理解してるんですが。
0231nobodyさん2007/06/13(水) 01:32:41ID:???
>>230
cookieってものを全く理解していないなw

>PHPSESSIDだけ特別で、これはセッションのキーを保存しておく特殊なクッキーと理解してるんですが。

特殊でもなんでもないただのcookie
0232nobodyさん2007/06/13(水) 01:59:45ID:???
今日の回答者はレベルひくいなあwww
0233nobodyさん2007/06/13(水) 02:01:06ID:???
水戸線の415系(1500番台)は
小山〜小田林で停電しますか?
0234nobodyさん2007/06/13(水) 03:53:18ID:???
gobaku i'm sorry
0235nobodyさん2007/06/13(水) 03:58:01ID:???
non, non, gobaku.i'm happy.
0236nobodyさん2007/06/13(水) 04:02:17ID:???
>>233

for($ i=1500; $i<=1599; $i++ ){

if ($stop)  $j++

}

echo $k;
0237nobodyさん2007/06/13(水) 04:04:04ID:???
うわ ネタのつもりがすんげぇバカ晒してしまったw
寝ます
0238nobodyさん2007/06/13(水) 04:07:39ID:LXaS5HIA
いまおきてる奴だけで何か分担して作りませんか?
0239nobodyさん2007/06/13(水) 04:46:12ID:???
なにを
0240nobodyさん2007/06/13(水) 04:50:17ID:???
>>238
起きてるよ。あんまり作る気しないけど、何を作りたいのかとりあえず聞いてみる。
夜からずっとフォーム自動生成を作ってた。(本当ははやくsymfonyに移行したいんだけど。)
0241nobodyさん2007/06/13(水) 05:15:03ID:???
>>242が行ったものをつくります
0242nobodyさん2007/06/13(水) 05:21:49ID:???
各ページをデータベースに格納するwiki
0243nobodyさん2007/06/13(水) 05:30:50ID:???
>>だれか無料サーバかりて
0244nobodyさん2007/06/13(水) 05:41:39ID:???
>>242
MediaWikiのことか
0245nobodyさん2007/06/13(水) 08:47:17ID:???
おはようございます
0246nobodyさん2007/06/13(水) 08:48:39ID:???
ニートの皆さん!
もう寝る時間ですよ?w
02472242007/06/13(水) 10:15:40ID:6ZWl7qEz
>>225
Microsoft Windows NetworkでつながってるPC2台で
マシンAでクラスを置いてあるディレクトリを共有しネットワークドライブでZとしました。
マシンBからエクスプローラーで開ける状態です。
ここに対して
require_once('Z:\class\test.php');
のようにしたところ
failed to open stream: No such file or directory
となってしまいました。
一応
require_once('Z:\\class\\test.php');
ともしてみましたが同様のエラーでした。
ドライブが違うとダメとかってあるのでしょうか?

すいませんがよろしくお願いします。
0248nobodyさん2007/06/13(水) 10:16:46ID:6QXoFc4S
質問
PHPでIPアドレスから都道府県を抜き出すにはどうしたらいいでしょうか?
(わかる人だけレスください)
0249nobodyさん2007/06/13(水) 10:24:27ID:???
>>248
分かるけど、余計な一言が書いてあったから、教えねー
0250nobodyさん2007/06/13(水) 10:33:32ID:???
俺も知ってるwww
ウキョオオオオオオオオオオwww
分かるけど、余計な一言は痛かったなぁwwwwwwww
ギャハハハハwwwwwwww

>>247の質問も簡単wwwwww
すいません=×
すみません=○
日本語もわからないやつに答えられないなぁwwww
ギョエエエエエエエエエエエwwwww

>>249
おまえとは気が合いそうだ
プギャアアアアアアアアアアアアアアwww
0251nobodyさん2007/06/13(水) 10:59:33ID:???
>>247
セキュリティを適切に設定しろ。

PHPの実行ユーザーが、
そのリソースにアクセスできてないんだろ。
0252nobodyさん2007/06/13(水) 11:05:55ID:???
>>247
そのネットワークドライブがPHPから見えてるのか?

> マシンBからエクスプローラーで開ける状態です。 

・・・ってことはログオンユーザーでの確認しかしてないようだが、
SYSTEMとかのアカウントから
ちゃんとネットワークドライブが使えてるかを確認した方が良い。
0253nobodyさん2007/06/13(水) 13:30:10ID:???
>>248
あんたリアルでも人間関係上手くないだろ?w
0254nobodyさん2007/06/13(水) 13:54:45ID:???
>>248
市町村なら分かるのですが都道府県じゃないとだめですよね・・・無知でごめんなさい
02552482007/06/13(水) 14:00:06ID:6QXoFc4S
質問と関係ないことを書かれるのが嫌なので
「わかる人だけレスください」と書きました。
が、わからない人しかレスしてくれないとは・・・

そこまでして自分より下の人間を貶して優越感に浸りたいですか?
自分は質問者と言う弱い立場ですが、主張するところは主張します。
しかし卑怯な人間ほど、そこに漬け込んで上から目線で攻撃開始。
本当に嫌になります。

学校で聞きますので、もう知ってる人もスルーしてください。
では、ありがとうございました。失礼致します。
0256nobodyさん2007/06/13(水) 14:10:36ID:mWYwm7n0
>>253
2行目はともかく、3行目は分からなくもない
0257しょ初心者2007/06/13(水) 14:13:28ID:???
Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\admin\predailylog.php5:11) in C:\Program Files\xampp\htdocs\admin\predailylog.php5 on line 37

というようなエラーがでるのですが、なぜでしょうか?
0258nobodyさん2007/06/13(水) 14:15:39ID:???
>>257
ヘッダの前に何か出力してるから
あとコテハンもいいけどID出してね
0259nobodyさん2007/06/13(水) 14:15:56ID:???
>>257
ヘッダを2重に送ってるせい。
0260nobodyさん2007/06/13(水) 14:26:42ID:???
>>257
文字コードがUTF-8ならBOMをつけちゃったんじゃね?

この問題はテンプレの簡易FAQにいれるべき。
0261しょ初心者2007/06/13(水) 14:36:05ID:???
headerのまえに文字を出力してました。

IDの出し方わかんないです。

0262nobodyさん2007/06/13(水) 14:36:58ID:???
1すら読んでない,指摘されても読まないとは恐れ入った
0263nobodyさん2007/06/13(水) 16:04:38ID:???
>>247
httpd.confで

DocumentRoot "//192.168.1.5/public/hoge"

<Directory "//192.168.1.5/public/hoge">

みたいにしてみれ
0264nobodyさん2007/06/13(水) 16:08:22ID:???
>>257
呼び出しているソース内の、ファイル末尾の

?>
[改行]

の2行を削除しる
0265nobodyさん2007/06/13(水) 16:26:34ID:???
思い込み回答ニ連発
0266nobodyさん2007/06/13(水) 17:03:11ID:???
>>248は以後放置してください
0267nobodyさん2007/06/13(水) 17:14:11ID:???
>>266
おまえがさっきから一番相手にされてない
0268nobodyさん2007/06/13(水) 17:40:55ID:???
普通に放置の流れなのに蒸し返す>>266
0269nobodyさん2007/06/13(水) 18:05:25ID:???
>>263-264
これはひどすぎ
0270nobodyさん2007/06/13(水) 19:50:12ID:???
>>269
ヨSPと呼んであげましょう
0271ガチャ2007/06/13(水) 23:54:03ID:g8HoEir5
PHP初心者です。。。
今カレンダーを作っているんですが現在分からない点が一点ございまして

翌月のボタンをクリックしたら月と共に日の数を対応させることができません。例え
ば翌月をクリックしたら現在は6月なので7月になります。7月にすることは可能な
んですが(前回数を増す方法を勉強したので)それとともに日の数を変える方法がなか
なか思いつくことができません。


7月は31日にならなくてはいけないんですが。。。

もしよければ教えてください。

0272nobodyさん2007/06/14(木) 00:06:53ID:???
まずその気持ち悪い口調をやめてください。

んで、どんな関数を使ってますか?
どこまでアルゴリズムを考えたか示したほうが早いと思います。

日付関数のページは見ましたか?
あそこをじっくり見ればその手の問題の95%は解決しますよ。

具体的には、
http://jp.php.net/manual/ja/function.mktime.php
http://jp.php.net/manual/ja/function.checkdate.php
あたり使えるのではと思います。
0273ガチャ2007/06/14(木) 00:20:49ID:4k9QAJnX
>>272さん。
ありがとうございます。これで何とかわだかまりは解決しそうです。やっぱり
mktimeは関係があるみたいなんですね。

あとは参考にしていたサイトでif($year2!="" || $month2!="" || $day2!=""){
if($year2!=""){
というのがあったのですがダブルコーテーションの間に値がないのはどういう意味なんでしょうか?
0274nobodyさん2007/06/14(木) 00:21:15ID:yAVe3MoI
ちょっと説明が難しいのですが、
http://www.url.com/smk21sにアクセスすると
http://test.com/test..mp3
に転送されたりするようなことありますが、
phpで、
http://www.url.com/smk21sから
http://test.com/test..mp3を割り出す方法ってありますか?

http://www.url.com/smk21sは、htmlのrefreshなどを使ってるわけではありません。
0275nobodyさん2007/06/14(木) 00:36:24ID:???
>>274
HTTP300系のリダイレクトなら、HTTPのヘッダーを見れば分かる。
それを見るソフトもあるし、firefoxのプラグインもある。
0276nobodyさん2007/06/14(木) 00:38:46ID:???
>>274
httpのLocation:ヘッダを見る
0277nobodyさん2007/06/14(木) 00:44:47ID:yAVe3MoI
>>275
>>276
おお!すばらしい!できました!
ありがとうございました!
0278nobodyさん2007/06/14(木) 00:55:01ID:???
ダブルクォートとシングルクォートを使い分ける利点って何かあるの?
面倒だからダブルクォートで統一しちゃってもよくね?
良くないのであれば理由を教えてくれ
見分けやすいとかは無しの方向で
0279nobodyさん2007/06/14(木) 01:03:03ID:???
馬鹿もすなるPHPといふものを、ニートもしてみむとてするなり。
0280nobodyさん2007/06/14(木) 01:04:40ID:???
ttp://www.rubyist.net/~matz/20070604.html#p07

面白い議論をしているね。
0281nobodyさん2007/06/14(木) 01:04:43ID:???
古典は苦手なんです><
0282nobodyさん2007/06/14(木) 03:41:58ID:???
>>278
いいんじゃない。エスケープは面倒だけど。
0283nobodyさん2007/06/14(木) 04:15:28ID:nfV7pZUM
htmlentitiesで全角スペースは になってくれません。
何がおかしいですか?
0284nobodyさん2007/06/14(木) 04:16:17ID:nfV7pZUM
ごめんなさい、全角スペースが&nbsp;にならない、という意味です。
0285nobodyさん2007/06/14(木) 04:47:36ID:???
なるわけねえだろバカ
0286nobodyさん2007/06/14(木) 05:08:11ID:nfV7pZUM
うわーん。htmlentities()では全部なるって書いてたのに。
0287nobodyさん2007/06/14(木) 05:27:27ID:IpnP9dBS
PHPを使うのにもっとも適したOSはなんですか?
0288nobodyさん2007/06/14(木) 05:37:51ID:???
PHPだけに、MS Windows Vista。なんちゃって・・・
0289nobodyさん2007/06/14(木) 05:42:20ID:???
>>288
サブ!
0290nobodyさん2007/06/14(木) 06:08:34ID:???
>>284
つーか、&nbsp;は半角空白相当であって全角空白とは違うだろ。
そんなのに変換されちゃっても困らないか?
0291nobodyさん2007/06/14(木) 07:29:22ID:nfV7pZUM
>>290
そうなのですか。半角空白のhtmlentitiesも&nbsp;にならないんですが。
0292nobodyさん2007/06/14(木) 08:14:03ID:???
>>286
そんな釣りにもならねえ釣りしてんじゃねえよ!
0293nobodyさん2007/06/14(木) 08:24:44ID:???
>>291
公式のソースを100回読めばおまえの無知がよくわかってるんだが
わかったころには恥をかいてるだろうから勉強に慎むがいい
0294nobodyさん2007/06/14(木) 08:26:01ID:???
>>291
親切だからソースはってやる。
これでわからなかったらおまえのセンスはそんなもんだなw


$str = "A 'quote' is <b>bold</b>";

// 出力: A 'quote' is <b>bold</b>
echo htmlentities($str);

// 出力: A ?quote? is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
0295nobodyさん2007/06/14(木) 08:30:50ID:???
頑張って煽ったのに&gt;が変換されちゃうとか笑えるよね
0296nobodyさん2007/06/14(木) 08:56:06ID:nfV7pZUM
つまり、どういうことだ?
おれのセンスはないことは分かったが答えはわからん。
調べたところによると&nbsp;は確かにHTMLエンティティであることと、
htmlentities()という関数が、可能な限り引数をHTMLエンティティに
変換することは分かったがなぜ半角スペースは変換されないんだ???
0297nobodyさん2007/06/14(木) 09:02:09ID:???
???????????????????????
0298虚弱PHP2007/06/14(木) 09:22:47ID:???
>>296
http://www.php.net/manual/ja/function.get-html-translation-table.php
0299nobodyさん2007/06/14(木) 09:30:22ID:???
半角スペースと&nbsp;は別の文字ですよう
"nbsp 半角スペース"でぐぐるよろし
0300nobodyさん2007/06/14(木) 10:20:25ID:???
※htmぇんちちえs()の仕様です
0301nobodyさん2007/06/14(木) 10:29:19ID:Fv5UexAL
AESで暗号化されたデータがPOSTされてきて複合するのに
何かいい方法ありませんかね?

共用サーバーでmcrypt関数が使えなくてほかの手を調べて
いるのですが行き詰ってます。
■ このスレッドは過去ログ倉庫に格納されています