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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/05(日) 22:35:34ID:sf8bx52D
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/

過去スレは>>2
0353nobodyさん2006/02/13(月) 23:18:08ID:???
iniがお勧めだね。
DBもいいね。
PHPを書くのは少々面倒だね。
03543512006/02/13(月) 23:25:07ID:1JhTlLn3
>>352
実は、PHPファイルではなくてiniファイルなのでした|x・`)チラッ
と言っても、中身は<?php......?>て書いてあるので、
PHPファイルなのですが…。

parse_ini_file関数から、iniファイルの扱いについても
ちょっと調べてみまーす。
ありがとうございましたm(__)m
0355nobodyさん2006/02/13(月) 23:28:41ID:???
>>354
標準と全然違うファイル形式の拡張子をつけるのはどうかと…
PHPソース形式にするならせめて.inc辺りにしとけ
0356nobodyさん2006/02/13(月) 23:36:28ID:???
>>355
前々から気になってたんだけど、そのincってどういう意味?
includedってこと?
03573512006/02/13(月) 23:39:28ID:1JhTlLn3
>>355
そっか。
設定ファイルが.iniって言う知識しかなかったもんで(^-^;

そこら辺、初心者にもわかり易く書いてあるサイトとかって
何かありますかい??
0358nobodyさん2006/02/13(月) 23:47:22ID:???
>>357
iniはinitやinitializeの略。
windowsプログラミングしてみるといいかも。
0359nobodyさん2006/02/14(火) 00:41:28ID:???
解説書とかだとよくincにした例が多いけど、
あれはブラウザから中身が見えちゃうから、
見られたくないような場合phpにしたほうがいいよ。
パーミッションいじってもいいけどね。
まぁセキュリティ対策にはならないからどうでもいいっちゃいいんだけど。
0360nobodyさん2006/02/14(火) 00:54:50ID:???
>>356
だな。アセンブラ時代からの由緒正しき拡張子かw
>>359
iniファイルにしろincファイルにしろ設定ファイルをドキュメントルート以下に置く方が悪い。
0361nobodyさん2006/02/14(火) 01:23:29ID:???
.cf(または.cnf)派は、少数派ですか...
0362nobodyさん2006/02/14(火) 01:26:09ID:???
.cfg派も共闘を
0363nobodyさん2006/02/14(火) 01:48:24ID:???
というか、.inc.php使うだろ。
0364nobodyさん2006/02/14(火) 01:51:54ID:???
配列を指定の値で検索して、見つかったらそのキーを削除
って、array_searchしてunsetしかないの?
03653512006/02/14(火) 02:01:36ID:zk1lvDPH
一応、.inc.ini等は、.htaccessで見れないように制限してるけど、
無敵ではない?
0366nobodyさん2006/02/14(火) 02:09:05ID:???
ほんの些細なミスをしちゃうだけで巨大なセキュリティホールを作るような
トラップを自ら掘りまくるような行為は感心しないな。
0367nobodyさん2006/02/14(火) 02:12:11ID:???
>>366
どゆこと?
0368nobodyさん2006/02/14(火) 02:21:11ID:???
>>364
俺はarray_splice()使ってる
0369nobodyさん2006/02/14(火) 02:35:42ID:???
>>367
.htaccessやhttpd.confが間違って上書き、削除されてしまったり、
何ヶ月も経って元々の意図を忘れて別の目的のために設定を変えてしまったり、
Apacheのアップデート時に設定が効かなくなってしまってたりなど、
その程度の隠蔽設定がうっかり消失されてしまうようなケースは多々あり、
またそういうミスをしてる連中が世間にはごまんといるってことだ。
「自分はそんなアホなミスしないから」と思ってるならセキュリティとかは口に出さない方がいいぞ。
0370nobodyさん2006/02/14(火) 07:56:53ID:???
とはいえ実際そんな面倒臭いことをする人間ばかりではない。
以前Livedoorの.incが漏れたときもルートより上ではなかった。
なんというか、仕事を完璧にめざす者と、仕事を徹底的にさぼる者に別れている気がする。

そしてJavaサーブレットを使えばこの問題が簡単に解ける悲しさ。
0371nobodyさん2006/02/14(火) 09:20:26ID:???
完璧めざすっつーか、バグなんかもそうだけど
「ミスしやすいもの」と「しにくいもの」
「やってしまったときに気付きやすいもの」と「しにくいもの」
は確かにあって、その分別は必要だと思うのよね。
0372nobodyさん2006/02/14(火) 10:47:05ID:???
外部のライブラリーなんかを使わずに複数のPDFファイルを1つに結合する方法はないでしょうか?
0373nobodyさん2006/02/14(火) 10:55:43ID:???
>>372
自分でライブラリと同じようなスクリプトを書く
0374nobodyさん2006/02/14(火) 13:28:11ID:???
取得したIPアドレスの、例えば
212.112.227.217

212.112.227.xxx
みたいにするにはどうすればいいでしょうか?
0375nobodyさん2006/02/14(火) 13:39:01ID:???
>>374
正規表現で抽出置換
最後の.より後ろを削除し、xxxを追加
0376nobodyさん2006/02/14(火) 15:18:00ID:???
すんませんスレ違いを承知でちょっと教えてください
Mozilla/5.0 (Windows; U; Win 9x 4.90; ja-JP; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
これってOSなんですか?
0377nobodyさん2006/02/14(火) 15:26:30ID:???
ブラウザだろ
0378nobodyさん2006/02/14(火) 15:36:44ID:???
いあいあ「 (Windows; U; Win 9x 4.90; ja-JP; rv:1.7.10) 」この辺りでOS識別できませんか?
0379nobodyさん2006/02/14(火) 15:37:43ID:???
どうみたってWindows9xです。本当にありがとうございました。
0380nobodyさん2006/02/14(火) 15:38:32ID:???
おまえの質問の日本語が悪い。
「このUAから識別出来るOSって何ですか?」って感じで聞かないと。
「UAも知らないのかプギャー」な馬鹿に見えるぞ。


で、それぐぐれば答えはすぐ出るな。
0381nobodyさん2006/02/14(火) 15:39:20ID:???
本当にエスパーな質問多すぎだな。
Mozillaと先頭に出ててOSですか?
なんてきかれたら、誰でもブラウザと答える罠。
質問するならもっとわかりやすい質問しろ。
0382nobodyさん2006/02/14(火) 15:42:21ID:???
これってOSなにですか?
これってOSなのですか?
0383nobodyさん2006/02/14(火) 16:09:46ID:???
セッションってサーバーに保存するクッキーのような物と思っておけばいいんでしょうか?
0384nobodyさん2006/02/14(火) 16:23:57ID:???
わからないからって煽るのはよせよだからおまいら馬鹿にされるんだよ
0385nobodyさん2006/02/14(火) 16:27:59ID:???
クッキーは期限指定できるけどセッションは1回通信終えたらなくなるよ。
0386nobodyさん2006/02/14(火) 16:32:04ID:???
1回通信終えたら、っていう表現は微妙
0387nobodyさん2006/02/14(火) 16:34:37ID:???
微妙だな
0388nobodyさん2006/02/14(火) 16:58:21ID:???
>>385-387
大体の感じはつかめました
ありがとうございます
0389nobodyさん2006/02/14(火) 18:04:38ID:???
美乳だな
0390nobodyさん2006/02/14(火) 18:11:26ID:???
微乳だな
0391nobodyさん2006/02/14(火) 18:36:47ID:???
賓乳だな
0392nobodyさん2006/02/14(火) 18:44:56ID:???
牛乳だな
0393nobodyさん2006/02/14(火) 18:58:55ID:???
乳牛だな
0394nobodyさんNGNG
マニュアルに
マルチバイト文字列を扱うときは
mbstringモジュールをインストールしないとやばい
みたいなことが書いてあったんですが
いまいちなにがやばいのかわかりません。

具体的にどういうコードを入れると
問題が発生するのですか?
0395nobodyさん2006/02/14(火) 19:50:05ID:???
>>394
マルチバイト文字の入力を受け付けるプログラム
マルチバイト文字で検索を行うプログラム
マルチバイト文字の編集を行うプログラム
のいずれかで文字化けを起こす可能性が高いです。
0396nobodyさんNGNG
>>395
ありがとうございます。
split()とか試してみても問題なく処理されるから
なんでだろーなーと思って質問したんですが、

問題が起きなかった理由は、
どうも文字コードがISO-8859-*, EUC-JP, Shift_JIS
ならmbstringなしでも正常に動作するらしく、
私が試したのはEUC-JP, Shift_JISだけだったからっぽいです。
ということでISO-2022で試してみたら普通にエラーが出ました。
どうもすみませんでした。

EUC-JPで問題が起きないということは、
例えば掲示板などをを作るときに
内部コードとhttpヘッダとフォームタグの文字セットを
全部EUC-JPにすればmbstring無しでも
いけますかね?
0397nobodyさん2006/02/14(火) 21:27:40ID:???
>>396
Shift_JISだって問題になることは多い。
それはsplitで使った分割文字がたまたまShift_JISで問題の出ない文字だっただけだ。
0398nobodyさん2006/02/14(火) 21:28:43ID:???
EUCはその中では比較的問題の出にくいコードではある。
が、全く問題が出ないわけじゃない。
0399nobodyさんNGNG
あ、そうなんですか。
じゃあやっぱりmbstring入れなきゃやばいんですね。
どうもありがとうございました。
0400nobodyさん2006/02/14(火) 21:58:12ID:???
jcode.phpというのもある。
関係ないけど
0401nobodyさん2006/02/14(火) 22:08:05ID:???
自分で意識してマルチバイト対応の正規表現とか書いていけばmbstring無くても対応できるな。
関係ないけど
0402nobodyさん2006/02/14(火) 22:43:05ID:???
そういや%5Bの問題はどうなったんだ?
0403nobodyさん2006/02/14(火) 22:50:35ID:???
>>401
mbstring無しでマルチバイト対応の正規表現ってできるん?
0404nobodyさん2006/02/14(火) 22:59:12ID:???
>>403
使用する文字コードを特定すればできるよ。
mbstringみたいに設定でどれでも自動切換えみたいのはさすがにしんどい。
0405nobodyさん2006/02/14(火) 23:04:33ID:???
あー、もしかして地道に日本語文字をひたすら入力するの?
%x8Cとか
0406nobodyさん2006/02/14(火) 23:18:59ID:???
何をマッチングさせようとしてるんだ?そりゃ
0407nobodyさん2006/02/14(火) 23:20:50ID:???
例えば
/hoge/fuga/hunnu/2test
のような文章から
/hoge/fuga/hunnu(最後の/〜を抜いたもの)
hunnu(最後の/〜の直前の文字列)
2test(最後の/以降の文字列)
を一度に正規表現で抜き出したいのですが、どのようなコーディングをすればいいでしょうか?
"^(/?([a-zA-Z%])*)*([a-zA-Z%]*)"
として挫折しました。
直前に書いた"/^((\/[a-zA-Z]*))*$/"のが抽出率はいいようですが。
よろしくお願いします。
0408nobodyさん2006/02/14(火) 23:26:27ID:???
>>407
basename
dirname
pathinfo
関数じゃだめなの?
0409nobodyさん2006/02/14(火) 23:27:00ID:???
/hoge/fuga/hunnu/2testという文字列があるとして
・/2testを抜いたもの
・/2testの直前にある文字列
・2testのみ
を抽出したいという事です。

とても分かりづらく書いてすみません。
0410nobodyさん2006/02/14(火) 23:37:42ID:???
>>407
$str = "/hoge/fuga/hunnu/2test";
preg_match('<.*/([^/]+)/([^/]+)$>', $str, $match);
$str1 = $match[2];
$str2 = $match[1];
04114102006/02/14(火) 23:40:32ID:???
1つ目の抜き出しを忘れた
preg_match('<^(.*/([^/]+))/([^/]+)$>', $str, $match);
$str1 = $match[1];
$str2 = $match[2];
$str3 = $match[3];
0412nobodyさん2006/02/14(火) 23:49:28ID:???
>>408
ありがとうございます。
dirnameだとファイル名を含まないパスを返してくるので意図した内容にはならず、
ただこちらの存在を忘れていました。

>>411
神を見た。
いや、何度読んでも仕組みが分からない。
でも期待したものが返って来ます。
凄いです。なぞです。
いわゆるゴッドです。
0413nobodyさん2006/02/14(火) 23:55:57ID:???
書いてなかった私の責任ですが
/2testのみだと返って来ないみたいです。
0414nobodyさん2006/02/15(水) 00:01:49ID:???
preg_match('<^(.*/([^/]+))*/([^/]+)$>', $str, $match);
で/2testのようなものも回収できるようになりました。
<や>が全然分かりませんが、動くので>4100氏に感動してしまいます。
0415nobodyさん2006/02/15(水) 00:17:35ID:???
もういい加減ウザいかも知れませんが、改良できたので一応書いておきます。
/hoge/fuga/hunnu/
だと取得できなかったのですが、
'<^(.*/?([^/]+))*/([^/]+)?$>'
とする事で取得する事ができました。

>410氏ありがとうございました。
0416nobodyさん2006/02/15(水) 01:16:25ID:???
>>414
あー。<や>には大して意味ないよ。
普通、pregの正規表現は /〜/ って書くものだけど、
|〜| とか [〜] とかでも書けるってだけの話。
パス分解の正規表現を書くときは中身に / を多用するから
エスケープ面倒くさいんで別の記号で代用してるだけ。
0417nobodyさん2006/02/15(水) 02:51:07ID:NFe11LPg
PHP4で吐き出したデータをpdf化するにはどんな方法がありますか?
0418nobodyさん2006/02/15(水) 08:35:38ID:???
>>417
Excelで読み込んでAcrobat
0419nobodyさん2006/02/15(水) 08:37:21ID:???
>>417
wordに貼り付けてPDFメーカー
0420nobodyさん2006/02/15(水) 08:41:46ID:???
>>417
ブラウザからPDFプリント
0421nobodyさん2006/02/15(水) 09:04:35ID:???
>>417
PDFLIBだっけかなんか無料のやつ使ったことあるな。
0422nobodyさん2006/02/15(水) 09:11:12ID:???
>>421
吐き出したデータをまたPHPで読むの?
0423nobodyさん2006/02/15(水) 09:37:50ID:???
空気嫁
0424nobodyさん2006/02/15(水) 09:56:08ID:???
正規表現で括弧を入れ子にできるんだ.知らんかった.
その場合matchesに入るテキストはどういう順番になるの?
0425nobodyさん2006/02/15(水) 10:01:21ID:???
(1(2))(3)の順番だよ
0426nobodyさん2006/02/15(水) 10:24:46ID:???
括弧の最初の登場順と覚えればヨロシ。
0427nobodyさん2006/02/15(水) 11:04:03ID:???
>>421
PDFファイルとして吐き出す
0428nobodyさん2006/02/15(水) 11:13:07ID:???
>>374
"."でsplitするとかってダサい方法もあるけどね
0429nobodyさん2006/02/15(水) 12:06:02ID:???
メールのヘッダで
Date:
Two, 14 Feb 2006 8:38:50 -0480
という素晴らしいヘッダを送ってくるスパムがあるんですが、postgresにdateとして登録すると日付ではないと怒られます。

phpでも同じような正しい日付ではないと判断する関数は無いでしょうか?
0430nobodyさん2006/02/15(水) 12:37:40ID:???
>>429
strtotime():
0431nobodyさん2006/02/15(水) 13:06:54ID:???
ファイルをブラウザでアップロードするプログラムを書いているのですが、
ファイルの更新日時を取得するにはどうしたらよいのでしょうか
0432nobodyさん2006/02/15(水) 13:09:36ID:???
>>430
ありがとうございます、出来ました
下記のようにおかしな日付表現だと"-1"が帰ってきました。
----------------------------------------
$time = 'Two, 14 Feb 2006 8:38:50 -0480';
//$time = 'Wed, 15 Feb 2006 11:49:43 +0900';
$stime = strtotime($time);
print $stime . "<br>";
print date("(Y-m-d h:i:s)",$stime);
----------------------------------------

関数名が分かってマニュアル見てみるとそのまんまエラーの処理があって便利
http://php.s3.to/man/function.strtotime.html
0433nobodyさん2006/02/15(水) 13:20:22ID:???
>>431
stat
filemtime

別に宣伝じゃないけど
PHP5逆引き大全 500の極意
とかの逆引き出来る本買うと相当便利よ

phpのマニュアルは日本語検索する方法が分からないのよね・・
0434nobodyさん2006/02/15(水) 14:04:41ID:p2BDIAFN
niftyってphp設置できますよね?
0435nobodyさん2006/02/15(水) 14:05:12ID:???
>>433
日本語がダメなら英語で検索すればいいんじゃね?
0436nobodyさん2006/02/15(水) 14:43:57ID:???
>>435
まずは日本語のphpマニュアルが検索したいナリ
英語のマニュアル読むのは時間がかかるナリ
0437nobodyさん2006/02/15(水) 14:47:56ID:???
マリーアントワネットキター
0438nobodyさん2006/02/15(水) 14:48:31ID:???
>>432
PHP5.1.0からは-1じゃなくてfalseを返すようになってるので注意
04394312006/02/15(水) 15:08:53ID:???
>>433
やってみたのですが、どうもうまくいきません。アップロードした時刻が表示されてしまいます。
ポイントだけでもかまわないので、何かサンプルを示していただけないでしょうか?
0440nobodyさん2006/02/15(水) 15:31:24ID:???
>>439
元のローカルにあるファイルの情報を取得しようってか?
そりゃ、PHPだけじゃ無理だ
0441nobodyさん2006/02/15(水) 15:35:03ID:???
あの質問じゃあ、送信元の時刻のことだったなんてわからないよなw
0442nobodyさん2006/02/15(水) 15:35:27ID:???
>>439
clearstatcache
してないって落ちじゃなくて?
0443nobodyさん2006/02/15(水) 15:41:12ID:???
>>438
ありがとうございます、気をつけます
現在はphp4なので、またphp5に移ってDB登録の際にエラーが出たら考えます。

>>431
アップロードしてからの更新時刻についてだったら

clearstatcache();
print_r(stat('./dummy.txt'));

で出来てるようだけど
0444nobodyさん2006/02/15(水) 18:08:58ID:???
>>436
俺は日本語HTML版のマニュアルをダウンロードして、
なまずに食わせてるよ。
スゲー便利。
0445nobodyさん2006/02/15(水) 18:22:47ID:NFe11LPg
>>427
そうです。そのPDFとして吐き出すという処理を自動でさせたいのです。
ID・PASSなどでログインした会員ページで、例えば自分の登録状況をPDFとして出すとか。
0446nobodyさん2006/02/15(水) 18:32:04ID:???
>>445
PDFLIBはしらべたのかい?
0447nobodyさん2006/02/15(水) 20:43:29ID:???
php pdf ライブラリ でググればいろいろ引っ掛かるんじゃないかな。
上に出てきてないやつだと fpdfとかもあるな。
0448nobodyさん2006/02/15(水) 21:12:05ID:HBKFx6cq
php5.xの最新版をzipをダウンロードしてきたんですが、
sqliteは入っているのでしょうか?どこにもないんです。
phpinfoもみましたがそれらしき文字も見当たりません。
なにかインストールする作業が必要なんでしょうか?
どなたかご教授おねがいします。
0449nobodyさん2006/02/15(水) 21:36:07ID:???
いりません。
sqlite_open()すればインストールされているかどうか分かる
0450nobodyさん2006/02/15(水) 22:19:37ID:???
>>448
Win版しか知らないが、最新版なら作業が必要。
5.1から標準ではなくなった。ライブラリ化されたっぽい。
php.iniの適切な位置に
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
の3行を順番に記述するがよろし。
Linux版とかでも何らかの作業が必要と思われ。
0451nobodyさん2006/02/15(水) 23:48:30ID:yhYCj6u7
そうだっけ?
04524502006/02/16(木) 00:08:24ID:???
んー、Linux版とか扱わないので確証はないけど、
Win版で非標準(デフォで組み込まれていない)になって、Linux版で標準のままだったら不公平かとw
Win版に関しては間違いなく5.1.0ではデフォでは組み込まれなくなった。
5.0.4→5.1.0Ver.UP時にphp.iniを流用してたらSQLite動かず、原因究明にえらい苦労した。
■ このスレッドは過去ログ倉庫に格納されています