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

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
02522472007/08/14(火) 17:29:48ID:gTawfVuS
>>250
ありがとうございます。
非常に参考になりました。
0253nobodyさん2007/08/14(火) 17:34:11ID:???
>>251
長くてすいません、要は、1つの<form></form>の中に
<input name="bt-mod" type="image" id="bt-mod" onmouseover="MM_swapImage('bt-mod','','../../common/images/bt-data_mod_on.gif',1)"
onmouseout="MM_swapImgRestore()" src="../../common/images/bt-data_mod.gif" alt="戻る" />
<input name="bt-od" type="image" id="bt-od" onmouseover="MM_swapImage('bt-od','','../../common/images/bt-order_on.gif',1)"
onmouseout="MM_swapImgRestore()" src="../../common/images/bt-order.gif" alt="進む" />
とボタンが2つあって片方は遷移先で値が取れるのに片方は値が取れないので、
何かこんな経験がある方がいたら…、と思いまして。
ロールオーバー画像の所為でやたら<input>が長くなってるんですが
昔は<input type="image">でロールオーバー何かできなかった気がしますが今は出来るんですね。
0254nobodyさん2007/08/14(火) 17:43:34ID:???
だからさ、
<form id="form1" name="form1" method="post" action="">
<table style="width:auto"><tr>
<td><input name="bt-mod" type="image" src="../../common/images/bt-data_mod.gif" id="bt-mod" alt="戻る" /></td>
<td><input name="bt-od" type="image" src="../../common/images/bt-order.gif" id="bt-od" alt="進む" /></td>
</tr></table></form>
<?php var_dump($_POST); ?>
を実行してみて座標が出るか試してみればいいじゃん。
出るならjavascriptやその他のコードの問題で、
出ないなら環境の問題かな、って予想つけられる。
0255nobodyさん2007/08/14(火) 17:45:48ID:???
一般化って、文章の分量減らすことじゃないぞ。
0256nobodyさん2007/08/14(火) 19:14:44ID:???
質問はタグを正規表現でタグを削るって書いてあるんだから
わかるやつだけ回答しろ
わからないやつはレスいらないから。マジでそういうの邪魔でしかない。
0257nobodyさん2007/08/14(火) 19:27:58ID:JRyEN1Pm
Xdebug、WinCacheGrindに慣れてないので間違っているかもしれませんが、
Xdebugと下記コードを使って、test.php, test.txt, mb_〜encoding の文字コードを合わせて
速度チェックをしてみた所、SJIS-win が一番速い結果になりました。
マルチバイト文字を検索する場合は SJIS-win で保存するのが良いのでしょうか?

mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
$body = file_get_contents('C:\usr\local\php\test.txt');
if (mb_eregi('はひふへほ', $body)) {}
0258nobodyさん2007/08/14(火) 20:00:01ID:???
>>256
無限ループって怖くね?
0259nobodyさん2007/08/14(火) 20:13:25ID:???
>>257
たいして変わらんだろ
0260nobodyさん2007/08/14(火) 20:43:17ID:???
こんな感じで結構違いました PHP4.4.7
mb_eregi で日本語を検索(検索対象文字列は日本語と英語の混合ページ)
対象は真ん中らへん
SJIS-win 2.66
EUC-JP 5.27
UTF-8 5.39

mb_eregi で日本語以外を検索(検索対象文字列は同じ)
対象は一番最後
SJIS-win 7.4
EUC-JP 7.1
UTF-8 7.4
0261nobodyさん2007/08/14(火) 20:45:33ID:???
2.66とかって何なの?大体予測はつくけどこういう時は単位も正確に書いてよ
0262nobodyさん2007/08/14(火) 20:48:13ID:???
msです 忘れてました
0263nobodyさん2007/08/14(火) 20:49:00ID:???
はひふへほなんて調べるんだったらmb_strpos使え
0264nobodyさん2007/08/14(火) 20:55:06ID:???
いや、実際はもっとややこしい正規表現です
0265nobodyさん2007/08/14(火) 21:06:09ID:???
3msが惜しいと感じるならShift-JISにすればいいんじゃね
0266nobodyさん2007/08/14(火) 21:18:09ID:???
>>256
>>1
0267nobodyさん2007/08/14(火) 21:20:13ID:???
>>257
で、そのtest.txtの文字コードは?
0268nobodyさん2007/08/14(火) 21:29:35ID:???
何でこんなに速度差が出るんだろう
0269nobodyさん2007/08/14(火) 21:59:06ID:???
http://dbug.ospinto.com/
これ初めて知ったけど面白いね
0270nobodyさん2007/08/14(火) 23:40:37ID:???
>>266
そういうのあきた
0271nobodyさん2007/08/14(火) 23:41:07ID:???
>>270
>>1
0272nobodyさん2007/08/15(水) 00:33:29ID:0gBl3hm4
モジュール/CLIの各phpは、読み込むphp.iniを
どうやって決めてるのでしょうか?
0273nobodyさん2007/08/15(水) 00:38:26ID:???
>>272
コンパイルオプション
0274nobodyさん2007/08/15(水) 00:40:56ID:???
あ、cliは、引数指定可能
0275nobodyさん2007/08/15(水) 01:01:49ID:???
>>271
めんどうだからあぼ〜ん
0276nobodyさん2007/08/15(水) 01:03:39ID:???
>>273
ありがとうございます
libphp5.soや/usr/local/bin/phpに
静的な情報として書き込まれるという認識でよろしいでしょうか?
それを後から知るにはどうすればいいですか?
0277nobodyさん2007/08/15(水) 01:08:47ID:???
>>276
php -i | grep php.ini
モジュールならphpinfo();
0278nobodyさん2007/08/15(水) 01:34:41ID:???
リンクの作り方が分かりません

$a = image.jpg//ファイルの名前

http://localhost/ここに$aを代入して http://localhost/image.jpgに飛ばすリンク作りたいです

0279nobodyさん2007/08/15(水) 01:35:45ID:2T+vTVUL
age
0280nobodyさん2007/08/15(水) 01:37:05ID:???
>>277
ありがとうございました
0281nobodyさん2007/08/15(水) 01:40:43ID:???
>>278
文字列連結は.(ドット)です
0282nobodyさん2007/08/15(水) 01:58:10ID:???
PHPのextentionを格納するディレクトリ名が
no-debug-non-zts-20050922
なんですが、このディレクトリ名はどうやって決められているのでしょうか?
0283nobodyさん2007/08/15(水) 02:14:07ID:???
ただ単にPHP(extension含む)のバージョンでしょ。
ちがうバージョンをインスコしたときにちがうバージョンのextensionが上書きされたらまずいっしょ
02842822007/08/15(水) 02:15:31ID:???
php.iniの中でそう指定してるだけで
別にディレクトリ名は何でもいいようですね
ecceleratorを入れた時に、
何故かこういう名前のディレクトリが作られたようです
0285nobodyさん2007/08/15(水) 02:18:12ID:???
>>283
時間差でずれました
eacceleratorが問題だったのではなく
PHP側が作ったのでしょうか?
このあたりなんかややこしいですね
0286nobodyさん2007/08/15(水) 02:22:36ID:???
http://simplate.blogtribe.org/archive-200511.html
symplateの中の人のブログに

php extensionのデフォルトの置き場所も、
php-5.0.X系の/usr/local/lib/php/extensions/no-debug- non-zts-20041030から、
no-debug-non-zts-20050922に変わっています。

とありました。
バージョンが0.1以上変わる時に変えられるみたいですね
0287nobodyさん2007/08/15(水) 02:24:33ID:???
include_pathって複数のディレクトリを指定出来ますか?
0288nobodyさん2007/08/15(水) 02:26:04ID:???
できるお
0289nobodyさん2007/08/15(水) 02:33:00ID:???
>>287
Winなら ; で区切る
Unix系なら : で区切る
0290nobodyさん2007/08/15(水) 02:47:19ID:???
no-debug-non-ztsの数字は、
5.0系は20041030
5.1系は20050922
5.2系は20060613
のようです。
simplateの中の方によると、
このディレクトリが変わるごとにextensionの再コンパイルも必要とのことですが、
これはどんなextensionでもそうなのでしょうか?
0291nobodyさん2007/08/15(水) 04:07:52ID:???
Apacheのバージョンアップをした時にも
libphp5.so等の再コンパイルは必要でしょうか?
0292nobodyさん2007/08/15(水) 04:14:46ID:???
何で最近の質問者は全くID出さないようになっちゃったんかね
0293nobodyさん2007/08/15(水) 04:52:08ID:???
夏だから
02942912007/08/15(水) 06:47:19ID:???
いろいろ調べたところAPIが変わってなければokみたいですね
2.0→2.2はやばいけど
2.0.xx→2.0.xxならokみたいな感じでしょうか
0295nobodyさん2007/08/15(水) 08:53:47ID:???
ID出さないのは1日に何度も質問してるからですよ
0296nobodyさん2007/08/15(水) 11:23:50ID:???
if($testの文字列が10byteを超えていれば){

}
どうすればいいかな
0297nobodyさん2007/08/15(水) 11:32:01ID:???
>>296
if(strlen($test)>10){

}
0298nobodyさん2007/08/15(水) 11:37:27ID:???
>>297
ありがとうございます
0299nobodyさん2007/08/15(水) 12:56:15ID:H4J4ZPX3
cookieを名前"value"で値"hello"ってセットして

print_r($_COOKIE);

すると
Array( [PHPSESSID] => xxxx [value] => hello)

とちゃんと表示されるんだけど

$_COOKIE["value"]

じゃ何も表示されないんだ
でも

foreach($_COOKIE as $key => $value){
print $_COOKIE[$key];
}

だとhelloって表示されるんだ。

こんなことってあるのかね・・・
原因がさっぱりわからねえ

スペルミスとかの類ではないです
0300nobodyさん2007/08/15(水) 13:06:09ID:d7dcIP3f
ちょい質問なんですがビット演算子ってどういう時に使用するんでしょう??
使ってる人いますか?
0301nobodyさん2007/08/15(水) 13:13:54ID:???
>>299
>$_COOKIE["value"]
>じゃ何も表示されないんだ

まさか、$_COOKIE["value"] とだけ書いているわけではないですよね?

echo $_COOKIE['value'];
でも表示されない?
0302nobodyさん2007/08/15(水) 13:15:16ID:???
>>301
おっと失礼
それで何も表示されないです
0303nobodyさん2007/08/15(水) 13:20:11ID:???
質問者はID出してくれ。
コードを提示する場合はここで新しく書かずにコピペするようにしてくれ。

少しは回答者の立場になってくれ。
0304nobodyさん2007/08/15(水) 13:22:05ID:???
echo $_COOKIE['value'];

で表示されました
print $_COOKIE["value"];

で今までやってて、表示されずに
echo $_COOKIE['value'];

で表示されたら、再び
print $_COOKIE["value"];

でも表示されるようになりました
何がなんだか分かりません・・・(ノд`)゜・。
0305nobodyさん2007/08/15(水) 13:23:41ID:???
>>300
最たる例はビットフラグとかかな。
0306nobodyさん2007/08/15(水) 13:29:10ID:mG1HWMPN
聞きたいんだけどさ、アップローダーのアップされたファイルって
webのrootより上の階層に保存できないのかな?
よくナントカファイルが流出したってニュース聞くたびに疑問だったんだけどさ
0307nobodyさん2007/08/15(水) 13:47:24ID:???
>>306
>保存
できる
>流出
root云々と直接関係しない

>>304
ID出せよ
0308nobodyさん2007/08/15(水) 13:50:27ID:???
>>306
フォルダの権限を緩和すればいくらでもできる
0309nobodyさん2007/08/15(水) 13:57:59ID:???
>>308
>フォルダの権限を緩和すればいくらでもできる
いくらでも出来ねーだろ。マウントサイズを越えて保存することは無理。
0310nobodyさん2007/08/15(水) 14:05:41ID:???
>>309
そんなところツッコンでもしかたないかと
0311nobodyさん2007/08/15(水) 14:07:02ID:???
>>310
すまん。脱いで詫びる
http://thumb2.uploda.org/file/uporg963415.jpg
0312nobodyさん2007/08/15(水) 14:08:50ID:???
>>311
アタシも脱いでワビるわ
http://www.vipper.net/vip307740.jpg
0313nobodyさん2007/08/15(水) 15:37:36ID:gxFf8K1o
掲示板まがいなものを作っていてHTMLタグを入れられたくないので
strip_tagsでストリップにしてしていたのですが
テストを行なってみたところ (>_<) みたいな顔文字を入れたら
(>_ 以降が消されてしまいました
そこで先にエンティティ化してみたのですが
これだとHTMLタグも残ってしまいます(当たり前ですが・・・)
このような場合どのように処理したら良いんでしょうか?
0314nobodyさん2007/08/15(水) 15:40:06ID:???
>>304
本当は、

>まさか、$_COOKIE["value"] とだけ書いているわけではないですよね?

これが正解だったんでしょ?
0315nobodyさん2007/08/15(水) 15:41:44ID:???
>>313
なんのために消すのか理解してる?
0316nobodyさん2007/08/15(水) 15:43:05ID:???
>>313
まじかよ。strip_tags使えないな。
タグかどうか判定してからじゃなくって問答無用に置換するんだな…
0317nobodyさん2007/08/15(水) 15:44:50ID:???
タグかどうかの判定が<以降という仕様な訳なんだが。
0318nobodyさん2007/08/15(水) 15:48:12ID:???
だから正規表現があるんだろ
0319nobodyさん2007/08/15(水) 15:48:57ID:gxFf8K1o
>>315
理解したうえで既存のものから修正してテストしたらそうなりました

>>317
仕様という事は対策なしという事でしょうか?
0320nobodyさん2007/08/15(水) 15:49:08ID:???
>>317
だからその仕様がクソじゃん
<font color=red> (>_<) </font>
こんな感じだったらタグだけ無効化するべきだろ

>>313
正規表現とかで
>のあとの>は>に置換、<のまえの<は<に置換してから
strip_tagsして、最後に>と<を元に戻すとか。
0321nobodyさん2007/08/15(水) 15:53:24ID:???
>>319
エンティティ化って何だか理解してる?
0322nobodyさん2007/08/15(水) 15:54:55ID:???
>>314
突っ込んでやるなよw
0323nobodyさん2007/08/15(水) 15:59:18ID:gxFf8K1o
>>320
確かに正規表現の置き換えしかなさそうですね
先に正規表現使って
>のあとの>は&lt;に置換、<のまえの&gt;はに置換してから
0324nobodyさん2007/08/15(水) 16:00:16ID:???
>>320
>だからその仕様がクソじゃん

>タグかどうか判定してからじゃなくって
って言ってたから「ちゃんとは判定してますよ」って返しただけなんだが
0325nobodyさん2007/08/15(水) 16:00:38ID:???
>>321
むしろそれは、偉そうで分ってない320の方に
言ってやったほうがいいんじゃないの?
0326nobodyさん2007/08/15(水) 16:00:51ID:gxFf8K1o
途中で送信してしまった

とりあえず必要な部分だけ置き換えるようにします
ありがとうございます

>>321
理解してます?
0327nobodyさん2007/08/15(水) 16:00:57ID:???
「ちゃんと判定はしてますよ」だった
0328nobodyさん2007/08/15(水) 16:03:41ID:???
>>323
何度も遠回りな質問して悪いんだけど、何のためにHTMLタグを消すんだ?
XSSを防ぐためだろ?
だったらstrip_tagsとか正規表現とか迂遠で余計な負荷がかかる方法もいいとこだろ。
0329nobodyさん2007/08/15(水) 16:05:08ID:???
>>326
何そのレス?
0330nobodyさん2007/08/15(水) 16:05:31ID:???
なんでXSS限定なのか分からん
0331nobodyさん2007/08/15(水) 16:07:21ID:???
なんで限定と判断したのかが意味不明
313を読んでそれ以外に何を考えてるのかも意味不明
0332nobodyさん2007/08/15(水) 16:09:01ID:???
>>324
ちゃんと判定してないだろ。問答無用に置き換えるだけなら
str_replace( "<", "<", str_replace( ">", ">", $hoge ) );
でいいじゃん。
「strip_tags」っていうぐらいだからタグだけ取り除いてくれるのを期待するでしょ普通。
0333nobodyさん2007/08/15(水) 16:10:31ID:???
置換されてしまった

str_replace( "<", "<", str_replace( ">", ">", $hoge ) );
↓
str_replace( "<", "&lt;", str_replace( ">", "&gt;", $hoge ) );
0334nobodyさん2007/08/15(水) 16:10:36ID:???
htmlspecialcharsでいいじゃん
ユーザが入力したとおりに表示しろよ
0335nobodyさん2007/08/15(水) 16:23:50ID:???
>>334
俺もそう思う
0336nobodyさん2007/08/15(水) 16:28:55ID:???
>>331

>>328
>XSSを防ぐためだろ?
限定してんじゃねーかよ。

>313を読んでそれ以外に何を考えてるのかも意味不明
他にScript Insertionとかあるだろボケカス。
しかも不明なのは"意味"じゃないだろ低学歴。
0337nobodyさん2007/08/15(水) 16:30:15ID:???
BBSやカウンタやアクセス解析など小規模なスクリプトで
DBを使用せずにテキストファイルにデータを記録していくにあたって、
データのサーチ、追加、更新、区切り文字などに関する
考え方・方法論などを解説した文献やサイトで何かいいのってないでしょうか。
0338nobodyさん2007/08/15(水) 16:31:42ID:???
htmlspecialcharsかまして;gtとかで判断して痴漢すりゃいいだろ
0339nobodyさん2007/08/15(水) 17:12:06ID:dxRKCLNb
現在の時刻を1/1000秒単位で取得したいんですが、何か方法あります?
0340nobodyさん2007/08/15(水) 17:14:10ID:dxRKCLNb
自己解決しますた
0341nobodyさん2007/08/15(水) 17:18:27ID:???
>>339-340
2分4秒の間に何があったのか
0342nobodyさん2007/08/15(水) 17:19:25ID:dxRKCLNb
いや、自分で調べたら解決しただけ
0343nobodyさん2007/08/15(水) 17:23:44ID:???
オライリーのPHPセキュリティ本にも
strip_tagsとかつかってんじゃねーぞ、htmlspecialchars使うだろふつう
と言うようなことが書いてある。
0344nobodyさん2007/08/15(水) 17:26:16ID:???
>>336
まぁまぁ、とりあえず知障で言葉遣い最悪な役立たずは死ねよ^^
0345nobodyさん2007/08/15(水) 17:44:07ID:NF1lbgTi
MDB2でWHERE句で
WHERE column1 IN (?)
みたくINの中にプレイスホルダーを使いたいんですが、
実装する方法はありますか?
個数が可変だと、IN (?, ?, ?, ?) じゃ無理なので。
0346nobodyさん2007/08/15(水) 17:59:46ID:kCRKlUkC
『あいうえお』
を
あいうえお
にしたいんですがどの関数を使えば一番いいでしょうか?
0347sage2007/08/15(水) 18:01:18ID:???
strposとsubstr組み合わせて使っとけ
0348nobodyさん2007/08/15(水) 18:09:12ID:???
str_replace
0349nobodyさん2007/08/15(水) 18:15:01ID:uX1Nde21
lannd.toでふたば系のPHPを使いたいのですが
パーミッションが644や666で動きませんでした
いくつにしたら動くか教えて下さい
0350nobodyさん2007/08/15(水) 18:38:41ID:???
それはパミッションの問題ではない。
0351nobodyさん2007/08/15(水) 18:41:51ID:CLR6/mbd
指定ファイルの改行コードをCR+LF であれば LF に変換する
プログラムを作成したいのですが、
何か簡単な方法はないでしょうか?

str_replace あたりを使って
---------------------------------------------
$var = file_get_contents($file_path);
$var = str_replace("\r\n", "\n", $var);
file_put_contents($file_path, $var);
---------------------------------------------

だけで良いんでしょうか?
ぱっとテスト動作させた感じはうまくいっているようなんですが、
これだと〜〜のときにうまくいかないよ、
などの情報があったらご教授おながいします。
0352nobodyさん2007/08/15(水) 18:50:18ID:???
>>351
改行コードの統一という意味なら
$var = file_get_contents($file_path);
$var = str_replace("\r\n", "\r", $var);
$var = str_replace("\r", "\n", $var);
file_put_contents($file_path, $var);
のほうがベターだと思う
■ このスレッドは過去ログ倉庫に格納されています