【PHP】下らねぇ質問はここに書き込みやがれpart16
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/05(日) 22:35:34ID:sf8bx52Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【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
0322nobodyさん
2006/02/13(月) 14:21:49ID:???0324nobodyさん
2006/02/13(月) 14:25:53ID:???trim -- 文字列の先頭および末尾にある〜
http://php.s3.to/man/function.trim.html
0326nobodyさん
2006/02/13(月) 15:16:17ID:???long型のカラムに対して64Kバイト以上の文字列を
バインドしてinsertすると
ORA-01480: STRバインド値に終了のNULLがありません
とでてしまいます。
php側では普通の変数を使用してstrlenで文字数を取得しても
正しく文字数は取得できています。
これはoracleとphp、どちらが悪いのでしょうか?
また、何が原因なのでしょうか。
ちなみに
oracle関数【推奨されません】
の関数を使用しています。
0327nobodyさん
2006/02/13(月) 15:22:16ID:???recentが新着ということで他のimap関数にも敏感に反応してしまうのが原因だったみたいです
seenフラグで管理するようにしたら問題なく動作しました
0328nobodyさん
2006/02/13(月) 15:31:00ID:???とすると、一つ目が%5Fになってしまうのですがこれはバグでしょうか?
OSはWinXP ProSP1、鯖はAnHTTPD、PHP5を使ってます。
こちらのサイトではきちんと認識しているようです。
ttp://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D
0330nobodyさん
2006/02/13(月) 16:39:06ID:???それ、本スレでも見た気がする。
http://pc8.2ch.net/test/read.cgi/php/1136276300/761-764
なんだろこれ。バグ?
0331nobodyさん
2006/02/13(月) 16:42:29ID:???0332nobodyさん
2006/02/13(月) 18:17:35ID:???MySQLのバージョンは、4.1.16と5.0.16で試しました(PHPの再インストール)。
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$db = new PDO($dsn, $user, $password);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
var_dump($db->query('SELECT * FROM testtable'));
} catch (PDOException $e) {
print $e->getMessage();
}
とした時、Connectではエラーが出ていないのに、queryの結果は
falseが返ってきます。どのような正しいSQLでも必ずfalseです。
Connectのエラーを拾えてないのかな?と思い、わざと間違った
hostにすると、エラーは正常にprintされました。
試しに、mysqli関数でConnectし、同様のSQL文を発行すると
期待値が返ってきます。
エラーが出ないのでどうして良いかわかりません・・・。
postgresの方は今の所問題ないのに・・・。
0333nobodyさん
2006/02/13(月) 19:00:58ID:???前スレによると仕様だそうです。
俺はバグだと思うけどな。
971 名前: nobodyさん 2006/02/05(日) 17:52:09 ID:???
既出か分からないけど、
トップーページと入力すると
本来ならば%83g%83b%83v%83y%81[%83WのはずなのにPHPは%83g%83b%83v%83y%81_%83Wと受け取ってしまう。
[となるべく部分が_になってしまう。
[[[とすると_[[と受け取るので最初の[のみ誤認してしまうようです。
これの対処はどのようにすればいいでしょうか?
973 名前: nobodyさん 2006/02/05(日) 18:03:33 ID:???
>>971ですが状況が分かりづらくてすみません
>トップーページと入力すると
というのはURLに入力という意味で
『http://.../index.php?トップページ』
としたときです。
このように入力した後 echo key ($GET); とするとトップペ\ジとなります。
それと、環境はPHP5を使用しています。
OSはWindowsXP SP1でAN HTTPDとApacheの両方で同様の誤動作を確認しています。
情報足らずで失礼しました、
引き続き対処の程を教えていただけるようお願いします。
975 名前: nobodyさん 2006/02/05(日) 18:25:21 ID:???
>>973
それで理由が分かったよ。
それ、PHPの仕様。マニュアル嫁。
0334nobodyさん
2006/02/13(月) 19:07:47ID:???unixで使うスクリプトを作ってるんだけどこの場合はLFにすべき?
0335nobodyさん
2006/02/13(月) 19:12:28ID:???エラー文どおりNULL文字が最後に入ってないんじゃない?
LONG型のカルマについては無知でスマンけど、
対象の文字を "1234567890\0" のように\0(NUL/NULL文字)で締めてみて。
0337nobodyさん
2006/02/13(月) 19:17:43ID:???LFでもCR+LFでも大丈夫じゃないかな。
大抵の"\n"は\n|\r|\r\nを自動で読んでくれるはずだろうから、unixで\r\nやっても平気じゃないかな。
PC-UNIXじゃなくてマジもんのunixならLFのがいいだろうけど。
0338nobodyさん
2006/02/13(月) 19:30:15ID:???CLIスクリプトならLFにすべき。
Webで呼び出すならほとんどの場合はどっちでもいい。
ただし
$string = "aaaa
bbbbb";
とか
$string = <<<TXT
aaaaa
bbbbbb
TXT;
みたいにソースの改行=データの改行みたいな真似してるなら
データの要求に準じるべき。
0339332
2006/02/13(月) 19:30:53ID:???MySQLのユーザのパーミッションということでしょうか?
それなら、mysql関数、mysqli関数で試して期待値が返ってきた
ので問題無いと思っています。
phpinfo()の結果を見ても、POD_MYSQLの項目がきちんと出てきてはいるのですけど・・・。
現状仕方ないのでMDB2を使おうと思ってます。
が、今度はドキュメントがあまり見つからない&英語がわからないので、
浅い使い方しかわからず困ってしまいました(苦笑
0340nobodyさん
2006/02/13(月) 19:50:29ID:5OEO9gPeやっぱり正規表現でpreg_splitでしょうか?
ばかなので正規表現書けませんでした。
レンサバがphp4なので、str_splitは無しの方向でお願いします。
0341nobodyさん
2006/02/13(月) 19:54:34ID:???0343nobodyさん
2006/02/13(月) 20:48:20ID:???マルチバイト文字列関数
http://www.php.net/manual/ja/ref.mbstring.php
文字列関数
http://jp.php.net/manual/ja/ref.strings.php
マニュアルくらい見る癖をつけると、
後々役に立ちますよ
0345nobodyさん
2006/02/13(月) 21:43:36ID:???期待値が返って来たって事は少なくともreadは許可になってるんだろうけどwriteは許可されてるのかな。
他のサーバーでは失敗(というかあんにょい感じ)するか試して見た?
ためしにDebianか、HDDに入れるの面倒ならKNOPPIX(CD-Linux)で自鯖立てて試して見るといいかも。
これらはapt-getで簡単にmysqlなどなど入れられるので便利。
調べてみたら、初めからMySQL/PHPが使えるように設定してあるKNOPPIXもあるようです。
http://pcweb.mycom.co.jp/column/yetanother/010/
0348nobodyさん
2006/02/13(月) 22:03:01ID:???10個から20個にする時とか画面を眺めながら.を打ち続ける様を想像して更にワラタ
0349nobodyさん
2006/02/13(月) 22:17:53ID:???どうすればいいでしょうか?
0351nobodyさん
2006/02/13(月) 22:57:25ID:1JhTlLn3データの書込み、表示などの一通りの動きは出来るようになりました。
次に、環境設定(1ページに何件表示等)もweb上で出来るようにと考えているのですが、
現段階ではPHPファイルに
$bbs_Cnt = 10; //bbs1ページには10件表示
のように書いていて、
fopenなどでPHPファイル自体を読み込み上書きなどをしようと思ってますが、
通常はどんな風にするものなのでしょうか?
このような値もDBに格納するべきなのでしょうか?
0352nobodyさん
2006/02/13(月) 23:14:44ID:???DBに格納でもいいでしょうし、
iniファイルを使ってもいいでしょう。
個人的にすきなのはiniファイルですね。
PHPにはparse_ini_file関数が用意されてますし。
あくまで個人的な意見ですけど。
PHPファイル自体を直接読み書きよりは
融通が利くかと思います。
0353nobodyさん
2006/02/13(月) 23:18:08ID:???DBもいいね。
PHPを書くのは少々面倒だね。
0354351
2006/02/13(月) 23:25:07ID:1JhTlLn3実は、PHPファイルではなくてiniファイルなのでした|x・`)チラッ
と言っても、中身は<?php......?>て書いてあるので、
PHPファイルなのですが…。
parse_ini_file関数から、iniファイルの扱いについても
ちょっと調べてみまーす。
ありがとうございましたm(__)m
0355nobodyさん
2006/02/13(月) 23:28:41ID:???標準と全然違うファイル形式の拡張子をつけるのはどうかと…
PHPソース形式にするならせめて.inc辺りにしとけ
0357351
2006/02/13(月) 23:39:28ID:1JhTlLn3そっか。
設定ファイルが.iniって言う知識しかなかったもんで(^-^;
そこら辺、初心者にもわかり易く書いてあるサイトとかって
何かありますかい??
0359nobodyさん
2006/02/14(火) 00:41:28ID:???あれはブラウザから中身が見えちゃうから、
見られたくないような場合phpにしたほうがいいよ。
パーミッションいじってもいいけどね。
まぁセキュリティ対策にはならないからどうでもいいっちゃいいんだけど。
0360nobodyさん
2006/02/14(火) 00:54:50ID:???だな。アセンブラ時代からの由緒正しき拡張子かw
>>359
iniファイルにしろincファイルにしろ設定ファイルをドキュメントルート以下に置く方が悪い。
0361nobodyさん
2006/02/14(火) 01:23:29ID:???0362nobodyさん
2006/02/14(火) 01:26:09ID:???0363nobodyさん
2006/02/14(火) 01:48:24ID:???0364nobodyさん
2006/02/14(火) 01:51:54ID:???って、array_searchしてunsetしかないの?
0365351
2006/02/14(火) 02:01:36ID:zk1lvDPH無敵ではない?
0366nobodyさん
2006/02/14(火) 02:09:05ID:???トラップを自ら掘りまくるような行為は感心しないな。
0369nobodyさん
2006/02/14(火) 02:35:42ID:???.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:???0374nobodyさん
2006/02/14(火) 13:28:11ID:???212.112.227.217
を
212.112.227.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:???0379nobodyさん
2006/02/14(火) 15:37:43ID:???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なのですか?
0383nobodyさん
2006/02/14(火) 16:09:46ID:???0384nobodyさん
2006/02/14(火) 16:23:57ID:???0385nobodyさん
2006/02/14(火) 16:27:59ID:???0386nobodyさん
2006/02/14(火) 16:32:04ID:???0387nobodyさん
2006/02/14(火) 16:34:37ID:???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:???マルチバイト文字の入力を受け付けるプログラム
マルチバイト文字で検索を行うプログラム
マルチバイト文字の編集を行うプログラム
のいずれかで文字化けを起こす可能性が高いです。
0396nobodyさん
NGNGありがとうございます。
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:???Shift_JISだって問題になることは多い。
それはsplitで使った分割文字がたまたまShift_JISで問題の出ない文字だっただけだ。
0398nobodyさん
2006/02/14(火) 21:28:43ID:???が、全く問題が出ないわけじゃない。
0399nobodyさん
NGNGじゃあやっぱりmbstring入れなきゃやばいんですね。
どうもありがとうございました。
0400nobodyさん
2006/02/14(火) 21:58:12ID:???関係ないけど
0401nobodyさん
2006/02/14(火) 22:08:05ID:???関係ないけど
0402nobodyさん
2006/02/14(火) 22:43:05ID:???0404nobodyさん
2006/02/14(火) 22:59:12ID:???使用する文字コードを特定すればできるよ。
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]*))*$/"のが抽出率はいいようですが。
よろしくお願いします。
0409nobodyさん
2006/02/14(火) 23:27:00ID:???・/2testを抜いたもの
・/2testの直前にある文字列
・2testのみ
を抽出したいという事です。
とても分かりづらく書いてすみません。
0410nobodyさん
2006/02/14(火) 23:37:42ID:???$str = "/hoge/fuga/hunnu/2test";
preg_match('<.*/([^/]+)/([^/]+)$>', $str, $match);
$str1 = $match[2];
$str2 = $match[1];
0411410
2006/02/14(火) 23:40:32ID:???preg_match('<^(.*/([^/]+))/([^/]+)$>', $str, $match);
$str1 = $match[1];
$str2 = $match[2];
$str3 = $match[3];
0412nobodyさん
2006/02/14(火) 23:49:28ID:???ありがとうございます。
dirnameだとファイル名を含まないパスを返してくるので意図した内容にはならず、
ただこちらの存在を忘れていました。
>>411
神を見た。
いや、何度読んでも仕組みが分からない。
でも期待したものが返って来ます。
凄いです。なぞです。
いわゆるゴッドです。
0413nobodyさん
2006/02/14(火) 23:55:57ID:???/2testのみだと返って来ないみたいです。
0414nobodyさん
2006/02/15(水) 00:01:49ID:???で/2testのようなものも回収できるようになりました。
<や>が全然分かりませんが、動くので>4100氏に感動してしまいます。
0415nobodyさん
2006/02/15(水) 00:17:35ID:???/hoge/fuga/hunnu/
だと取得できなかったのですが、
'<^(.*/?([^/]+))*/([^/]+)?$>'
とする事で取得する事ができました。
>410氏ありがとうございました。
0416nobodyさん
2006/02/15(水) 01:16:25ID:???あー。<や>には大して意味ないよ。
普通、pregの正規表現は /〜/ って書くものだけど、
|〜| とか [〜] とかでも書けるってだけの話。
パス分解の正規表現を書くときは中身に / を多用するから
エスケープ面倒くさいんで別の記号で代用してるだけ。
0417nobodyさん
2006/02/15(水) 02:51:07ID:NFe11LPg■ このスレッドは過去ログ倉庫に格納されています