【PHP】下らねぇ質問はここに書き込みやがれ 46
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/12(土) 16:43:57ID:???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カテゴリ)の各スレで
0141nobodyさん
2007/05/14(月) 14:33:07ID:???0142nobodyさん
2007/05/14(月) 14:38:16ID:???というif文があるんですが、$valueが'flg'という文字列でも上記のif文がtrueになるのはなぜですか?
$ret[] = $value['table'] . '.' . $key;
という文がそのif文の中にはあるんですが、この部分の返り値が"f.hoge"となってます。
0143142
2007/05/14(月) 14:44:08ID:L2qcEQSyあと、たまに同じ値を比べてもFALSEな時があるんですが、
それもforeachブロック内です。
===で比べないとTRUEになりません。
なんかあるんでしょうか。
0144nobodyさん
2007/05/14(月) 14:51:14ID:???代入する場合は存在していなくても問題ない。
参照する場合は存在していないとNOTICEエラーが発生する。
(Undefined〜系、エラーレベルE_ALLじゃないと出ない。値的にはnullが返る。
それはそうとその通りだと$_GETは常にセットされてるし、配列なんだけど写しミス?
>>142
文字列型も配列型のように角括弧でバイト単位でアクセス出来る為。
ただしオフセットは数字以外は[0]と見なされて1byte目を参照することになる。
そのfはflgの先頭文字。
0145nobodyさん
2007/05/14(月) 15:16:58ID:???0146nobodyさん
2007/05/14(月) 15:21:02ID:???登録しないで視聴した場合、それなりの料金はIPから調査されてちゃんと後日請求されます
0147nobodyさん
2007/05/14(月) 16:09:05ID:k9XxZtyZどういうケースで使うのでしょうか?
カウンターでカウントするときに使用するぐらいはわかるのですが、
ブロック内が終わっても値を保持し続けるといっても、
具体的にどういうケースで使えばいいのかいまいち理解できません。
どういう所で使うのか、具体的なケースをいくつかあげていただけませんでしょうか?
0148nobodyさん
2007/05/14(月) 16:16:40ID:???0149nobodyさん
2007/05/14(月) 16:17:37ID:???0152nobodyさん
2007/05/14(月) 16:35:11ID:k9XxZtyZそうですか。
いくつか例をあげていただければ、共通項が見出せると思ったのですが、
頻繁に使うことはないとのことなので気にしないことにします。
0153nobodyさん
2007/05/14(月) 16:45:23ID:???他は特に使わないと困るって所があまり無い気がする。
0154nobodyさん
2007/05/14(月) 16:47:02ID:???楽して勉強しようとするな
0155nobodyさん
2007/05/14(月) 16:48:14ID:???0156nobodyさん
2007/05/14(月) 16:58:26ID:???そういう俺ルールを作るなボケ。
くだらねぇ質問ならなんでもいいんだよカス。
ていうかこの時間の回答者は煽ることしかできない低レベルな馬鹿ばっかりだな。
俺も含めて。
0157nobodyさん
2007/05/14(月) 17:00:26ID:???0158nobodyさん
2007/05/14(月) 17:08:22ID:???0159nobodyさん
2007/05/14(月) 17:09:21ID:byqD8Lza定数を定義するときは、constを使えばいいのでしょうか?
// メソッドのみにしか使えないとエラー
public static final $CONSTANT = "CONSTANT";
// これでいいのかな?
const CONSTANT = "CONSTANT";
0161nobodyさん
2007/05/14(月) 17:34:13ID:Gq/W6/hfhoge2の中には、inc.phpというファイルがあり、
main.phpから、inc.phpを呼び出しています。
そこで、main.phpから、inc.phpが置かれている、「hoge2」という値を取得したいんですが、どうしたらいいんでしょうか?
よろしくおねがいします。
0162161
2007/05/14(月) 17:36:08ID:Gq/W6/hf上の書き込みの、3行目、
X main.phpから、inc.phpを呼び出しています。
O inc.phpからmain.phpを呼び出しています。
ファイル名が逆のままですが、よろしくです。
0163nobodyさん
2007/05/14(月) 17:42:51ID:???0164nobodyさん
2007/05/14(月) 17:50:21ID:Gq/W6/hfどうもありがとうございます。
/php/hoge2 って感じで出力されるんですが、hoge2だけ(自分のいるディレクトリ名だけ)を取得したい場合の関数ってあります?
それとも、これを正規表現なりでいじって取るしかないんでしょうか。
何度もすいません。よろしくおねがいします。
0166nobodyさん
2007/05/14(月) 18:01:29ID:xEs1nUuBhttp://pc11.2ch.net/test/read.cgi/php/1168450843/86-
でpreg_replaceに関して質問していましたが話題が正規表現からズレてきましたので
こちらで質問させてください。
----------------------------------------------------------
90 :86:2007/05/14(月) 15:45:03 ID:???
後方置換する時に関数かましたくマニュアル眺めてたら「e修飾子」をみつけたのですが
>>87の「S修飾子」と同時に使おうと
$pattern = "/(.*?)<html_start>(.*)<html_end>(.*?)/se";
$replacement = "'\\2''\\1''\\3'";
こんなコードを書いてみた所
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Failed evaluating code:
といった感じで怒られます
修飾子2個は同時に使えないのでしょうか…?
----------------------------------------------------------
以上ですがまとめますと
「preg_replaceの修飾子を2個指定したい(eとs)時の正しい書式」
を教えてくださいまし。
0167nobodyさん
2007/05/14(月) 18:03:15ID:???0168nobodyさん
2007/05/14(月) 18:03:16ID:byqD8Lzaわからないなら答えなくていいですよ。
やはりPHPはユーザレベルも低いですね。
失望しました。
0169nobodyさん
2007/05/14(月) 18:04:09ID:???くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0170nobodyさん
2007/05/14(月) 18:05:03ID:Gq/W6/hfありがとうございます。解決しました!
ところで、もう1個疑問があるのですが、
a.phpでdefine("OUT", "out.html")と定義して、./hoge/b.phpをrequireで呼び出したとき、
b.phpでOUTに出力すると、b.phpのディレクトリにファイルができるのか、a.phpにファイルができるのか、よくわかりません。
今自分で、試してみると、a.phpのディレクトリに出力されたんですけど、
b.phpのディレクトリ上でout.htmlとして書き込んでいるのに、なぜ、a.phpのディレクトリにできちゃうんでしょうか?
requireの挙動がよく理解できない・・・。
0171nobodyさん
2007/05/14(月) 18:08:37ID:byqD8Lzaまさに私にぴったりですね。
でも過疎ってるので遠慮しときます。
本当に>>160みたいな害虫は死ねばいいのに。
答えられないけど何かいいたいやつの決まり文句は、
「マニュアル見れ」だよね。
0172nobodyさん
2007/05/14(月) 18:15:15ID:???GD2で、tiff画像を読み込みたいのですが、マニュアルにimagecreatefromtiffが見当たりません。
何かほかに方法はありますが?
0175172
2007/05/14(月) 18:17:51ID:N76OGPmpIDが出てませんでした。
ちなみに、海外サイトで次のような例があったのですが、動きませんでした。
$bild="einbildeben.tif";
Header("content-type: image/tiff");
$im = @readfile($bild);
return $im;
0176nobodyさん
2007/05/14(月) 18:20:45ID:N76OGPmpたびたびすみません。入れ違いでした。
環境は、OSX+MAMPで、PHPは5.16です。
0177nobodyさん
2007/05/14(月) 18:26:00ID:???0178nobodyさん
2007/05/14(月) 18:30:57ID:Gq/W6/hf0179nobodyさん
2007/05/14(月) 18:34:06ID:???$replacement が間違っていないか?
$replacement = "'\\2' . '\\1' . '\\3'";
じゃないの
0180166
2007/05/14(月) 18:40:16ID:???仰せの通り、
$replacement = "'\\2'.nl2br('\\1').'\\3'";
で通りました!
nl2brで囲んだ\\1がクオートで囲まれていなかったのが原因、というオチでした。
(・∀・)アリガ�d
0181nobodyさん
2007/05/14(月) 18:50:11ID:???もう少し落ち着け
// b.php
function b_write() {
// ファイル書き込む処理
}
// a.php
require('b.php');
define("OUT", "out.html");
b_write(OUT);
で、a.php のスクリプトをブラウザから動かしたってこと?
out.html は相対パス指定になっているから
スクリプトの実行されているカレントディレクトリを基本にして
パスを生成するのだから、当然
a.php があるディレクトリ + out.html という風に解釈
される
もしこうなら require の問題ではないぞ
0183nobodyさん
2007/05/14(月) 18:54:45ID:???requireは対象を実行させるわけじゃなく、対象を自分に組み込んで実行するから。
>>171
160じゃないがそのレベルじゃ解らないも何も無いだろ…。
オブジェクト定数の項に書いてあるし、
何より自分で答え書いてるんだから試せば終わりだし…。
ああ…釣りですか。
0184nobodyさん
2007/05/14(月) 19:56:37ID:???とやると、hoge2が消えるのは仕様でつか?
0185nobodyさん
2007/05/14(月) 19:59:57ID:???0186nobodyさん
2007/05/14(月) 20:25:56ID:???0187nobodyさん
2007/05/14(月) 20:37:25ID:/zb+oLLW0188nobodyさん
2007/05/14(月) 20:43:07ID:???変数展開が必要かどうかと中身に ' か " を含むかどうか。
どっちでもいい場合は、将来的に変数展開を追加する可能性があるかどうか。
もっぱら、配列キーの場合は ' で、それ以外は " にすることが多い。
0190nobodyさん
2007/05/14(月) 21:32:30ID:???0191nobodyさん
2007/05/14(月) 21:40:43ID:???0192nobodyさん
2007/05/14(月) 21:41:33ID:???0193nobodyさん
2007/05/14(月) 21:56:56ID:???変数の中身を表示したいときだけ→'
0194nobodyさん
2007/05/14(月) 21:59:31ID:???かといって''."\".''とかだと余計おかしいし。
ということで、最近は全部""でやってる。
0195nobodyさん
2007/05/14(月) 22:05:26ID:dsmo737wecho "";
?>
とすると、ソースで
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD>
<BODY></BODY></HTML>
と表示されるんだけど
これを消す関数のようなものありませんでしたっけ?
0196nobodyさん
2007/05/14(月) 22:13:26ID:???>エスケープするときだけ"\"で、他は''だと統一性があまりないよね。
統一性はあるだろ。統一性というのが変なら規則性はあるだろ。
0198nobodyさん
2007/05/14(月) 22:23:59ID:dsmo737wサンクス!
0199nobodyさん
2007/05/14(月) 22:26:38ID:???彡 ノW \从/V W \ ミ
( ノ | ノ \)
∩V 、、 | >V7
(eLL/ ̄ ̄\/ L/ ̄ ̄\┘/3)
(┗( )⌒( )┛/
~| \__/ | \__/ |~ / ̄ ̄ ̄ ̄ ̄ ̄
爻 < | ; 爻 < 君たち、どんどん質問をぶつけてくれたまえ23時までなら私がすべてに答えてしんぜよう
~爻 \_/ _, 爻~ \______
~爻__/⌒ ̄ ̄ ̄~~ヽ_ 爻~
/ ー ̄ ̄\_ ̄\
_一‘ < ̄ ̄\\\J
<\ ー ̄ ̄ヽ_ヽJ  ̄\_
\ _ニニニヽ ) ~\
\ _/⌒|\ ヽ_~~ ~⌒\_
__/~ V \_| ~\_
0200nobodyさん
2007/05/14(月) 22:28:31ID:dsmo737wPEAR使ったことないんだけどどうやって使うの?
0202nobodyさん
2007/05/14(月) 22:36:27ID:tsqMY0Kqif文にbreakを書いても抜け出せませんでした。
breakでは抜け出せないのでしょうか?
どなたかご教授お願いいたします。
for ($i=0; $i<5; $i++) {
if ($i == 3) {
$nissuu = $i;
break;
}
}
0204nobodyさん
2007/05/14(月) 22:38:44ID:???それはむずかしい質問だ。pearは楽をするために使うものである。
>>201
/ || :ヽ
┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::|::ヽ.__:):||(___ノ ::|::| │
|:|: .. :|| .. |:| │
:|: .. || ..|| < 日本語でおk
:\ [_ ̄] /::| │
:: |\|_|_|_|_/:::| \________
__| | / / :|___
0205nobodyさん
2007/05/14(月) 22:44:07ID:???別の問題では?
$nissuu = 0;
for ($i=0; $i<5; $i++) {
if ($i == 3) {
$nissuu = $i;
break;
}
}
print_r($nissuu); // 3
0207nobodyさん
2007/05/14(月) 23:14:34ID:tsqMY0Kq0208nobodyさん
2007/05/14(月) 23:36:25ID:???0209nobodyさん
2007/05/14(月) 23:48:47ID:dsmo737wfunction a(){
echo "a";
}
function b(){
$this->a();
}
}
x::b();
こうすると
Using $this when not in object context
というエラーが返ってきました。
b()からa()を呼び出すのはどうすれば良いのでしょうか?
0210nobodyさん
2007/05/14(月) 23:53:26ID:???0211nobodyさん
2007/05/14(月) 23:55:11ID:dsmo737w$obj = new x();
$obj->b();
で解決しました
0212nobodyさん
2007/05/15(火) 00:14:53ID:???0215nobodyさん
2007/05/15(火) 00:25:49ID:???0216nobodyさん
2007/05/15(火) 00:28:01ID:b/094IjkOrder deny,allow
Deny from All
と記述しているのに、アクセスできてしまいます。
httpd.confも
AccessFileName .htaccess
と指定しています。
なぜでしょう?
0217nobodyさん
2007/05/15(火) 00:33:53ID:zmGOBMeaempty($array)でいい?
0218nobodyさん
2007/05/15(火) 00:41:34ID:???0219nobodyさん
2007/05/15(火) 00:45:38ID:???それだと$arrayが0や""や"0"やNULLの場合も真が返る。
$arrayが空の配列の時のみ真にしたいなら
$array === array()
0221nobodyさん
2007/05/15(火) 00:51:05ID:???これもPHP的に空であるのでemptyが正解
0222nobodyさん
2007/05/15(火) 00:54:17ID:???0223nobodyさん
2007/05/15(火) 01:05:17ID:???http.confのディレクトリセクションのAllowoverrideディレクティブにLimitキーワードが指定されてるかどうか
確かめなさい。しかし、スレ違いだから返事はよろしい。
0225nobodyさん
2007/05/15(火) 01:16:58ID:???0226187
2007/05/15(火) 01:27:16ID:VFvSiaRRありがとうございます
0227nobodyさん
2007/05/15(火) 08:22:03ID:????/∵∴∵∴\?
?/∵∴∵∴∵∴\?
/∵∴∴,(・)(・)∴|?
|∵∵/ ?○ \|?
|∵?/ 三 | 三 | / ̄ ̄ ̄ ̄ ̄?
|∵?| __|__? | < てめえらさっさと起きろ!!?
?\| \_/ / \_____?
? ? ?\____/?
0228nobodyさん
2007/05/15(火) 10:09:00ID:7hthTDm5すいません、もう少し詳しく書きます。
アクセスしたファイル:index.php
index.php内でファイル名などを設定している。
(define("OUT", "out.html");)
index.phpが上のディレクトリにある、main.phpを呼び出す(require("../main.php");)。
main.phpから、同じディレクトリにあるwrite.phpを呼び出す。
main.phpから、write.phpにある、書き込み処理の関数を実行する。 write_hoge();
そうすると、index.phpがあるディレクトリにファイルができあがるんですが、
write.phpで、書き込み処理を行ってるので、write.phpがあるディレクトリにできあがると予想したんですが、
なぜ、こうなったんでしょうか?
write.phpにとってOUTとは、自分のディレクトリのout.htmlになりますよね?
それとも、書き込み処理をするファイルの位置は関係なく、定義したファイルの位置からのOUTと解釈されるんでしょうか?
0229nobodyさん
2007/05/15(火) 10:39:30ID:???requireやincludeは指定したファイルの内容を
埋め込むものと考えればいい
その場合main.phpやwreite.phpの内容は
index.phpに「埋め込まれる」ので
OUTに書き込む場合の相対パスは
main.phpやwreite.phpのパスに影響されない
0230nobodyさん
2007/05/15(火) 10:48:11ID:8bGiD1y7WinにXAMPPをインストールしようと思っておりますが、
常時ネットにも接続するためセキュリティーが不安です。
標準のProgram Files\XAMPP か
C:XAMPP か
それとも他のドライブに入れた方が良いのですかね?
ファイアウォールと.htaccessで拒否すれば、そこまで深く考える必要はないのでしょうか?
みなさん、どうしてますか?
0231nobodyさん
2007/05/15(火) 10:57:53ID:sdtp9zq7定数があればいいんだけどね。残念ながらない。
0234nobodyさん
2007/05/15(火) 11:32:57ID:???limit 0,1付けた方がいいですかね?
暗黙的に1つに限定されているから、パースのコストの方が高くつく?
0235nobodyさん
2007/05/15(火) 11:38:12ID:???気にするな
0236nobodyさん
2007/05/15(火) 11:53:31ID:b/094Ijk行
[1] 適当なデータ
[2] わかんない><;
[3] 123456789
[4] ABCDEFG
[5] こんにちは
[6] example.com
[7] Hoge Hoge
[8] Hello world
こういうデータで、
特定の行のみ削除する方法はないでしょうか?
一度、fileで展開してその行を削除し、書き換えるようなやり方ではなく、
行を削除するだけというのはできませんか?
0238nobodyさん
2007/05/15(火) 11:57:19ID:b/094Ijkサンクス
0239nobodyさん
2007/05/15(火) 11:57:29ID:???行の幅が固定長ならできるんだがな。
あとはfseekとかで、書き換える行以降のみを変更するってことならできなくもなさそうだ。
■ このスレッドは過去ログ倉庫に格納されています