【PHP】下らねぇ質問はここに書き込みやがれ 46
まず読め→【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カテゴリ)の各スレで
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
7 :
nobodyさん :2007/05/12(土) 16:53:14 ID:uqNjkBgI
上書きされたくない配列のクラス内属性があるのですが constには配列が記述できないですよね。 何かいい方法はないでしょうか?
アクセサ経由で使用させる
_,, ─=ニ二 ̄ "'- 、 _,..-'''"__ ※ `"'- 、 \ />゙⌒ヽ ̄ ̄ ̄"'- 、 ※ \. \ / ./ : :\ : :\ : : \ ∨ \ . / / : :ハ : :\ : : ヘ ※ ∨ _〆) / : :i : i: : :ト、 : : ヘ : :ヘ. | イ__/ / : :i : : /,イ イ: :ト、\__,: :∧ : : :| ※゙|.八 l l : : :l_ // ル゙i: :ノィr‐─< 〉: :.,' .l: : \ l l. : :tノ.厶イ ル゙ (て刀ア.,': :./ ※ .l: : \ |∧ : :∨ (てカ` ゞ―゙ /: :/ .ト、 : : \ . ゝ : : \.ゞ┘ , ////,.イ ※ l: \ : : \ 下らねぇ質問は . `(>┬-ゝ// r 、 个 ∧.: : \ : : '., ここに書き込みやがれですぅ . ) 人.X゙\ `‐' / .| ※ /.: :',: : \: : l /./ : : )゙※/゙テ=r‐ャ<.___人. /: : ',: : \: : l /./ : :/ /゙f .〉〉刀, 〉 〕 `X乃ミY)∧: : \/ /./ : :/./_「| Y| /\ ∧ ヘ\  ̄ハ.: : \ /./ : : ,イ 辷竺ミY .∧ 》 ∧ノ 〉 \. l.: : ヘ . /./., -'"/ノ 廴_辷竺ミ乃ゝノ∧ノ / ※ / |.: : : : ', /./ / ./^''^''廴___) ∧ノ 〈 〈 l: : : : l . / ※ / Y / 人^''^''^∨ノ∠_.', ', l',.: : : : |
>>1 乙
ところで失敗したゴミスレはどうすんの?
普通は、スレ番間違ってても、先にたった奴から消費するもんだが
>>10 ・「先に立ってる向こうが本スレ、ここは重複」で向こうを46として使う。(通常、これ)
保守なんかしなくてもこっちも落ちないだろうから、ここが将来の47に。
・放置して沈める。現状のままレスが一定数つかなければ即死判定で消える。
たぶん誰かが書くので生き延びる。
・削除整理に持って行ってみる。スレタイや 1 の文言がアレすぎる事例なら
住民合意次第で後から立ったほうを本スレ扱いしてもらえる場合もあったと思う。
どれか。つーか、番号の変え忘れだけでなんで重複が立ってるんだ。
linuxのfedoraスレは重複しまくりだけど削除人に無視されてるよw
最近このいたの過疎化が急激にすすんできた
休日は人すくないお 職場から書き込んでる人が多いんじゃない?
幾ら試してもダメだったんで質問。 (postで文字列・行番号を送信) textからファイルを1行ずつ配列に突っ込む、 配列の指定された行に文字列代入、(この時改行を突っ込む) その後ファイルに出力。 とやってるんだけど、どうしてもpostで受け取ったところに改行が入らない。 \r\n、\n、\r、CRLF、0xA、0x0D全部ダメでした。 改行を入れるのに良い方法があればご教授宜しくお願いします。 ※環境:windowsXP proSP2 IE6 XAMPP2.3 ※状況としては、DB使えない鯖でDB的な事がやりたい。 で、1つずつファイルを用意して、1行で1つのパラメータとして管理。行番号でIDとしてやってみた。
> (postで文字列・行番号を送信) > textからファイルを1行ずつ配列に突っ込む、 > 配列の指定された行に文字列代入、(この時改行を突っ込む) > その後ファイルに出力。 この説明を自分で読んでどう思う、あとIDな
意味ワカンネ ソース晒せ
>>16 こういうこと?
【1】 管理画面的なページからファイルに書き込みたい文字列と行番号を送信
【2】 【1】の文字列と行番号を受け取ったプログラムが受け取った文字列をファイルに書き込み
だよな?
で、ファイルの書き込む位置として【1】から受け取った行番号を使うんだよな?
>>16 ちゃんと文字列に改行つけられてないんだろ?
$fp = fopen ("/unnko/file.txt");
fputs ($fp, $_POST['文字列' . "\r\n"]);
fclose($fp);
コレでもだめ?
21 :
20 :2007/05/12(土) 23:42:32 ID:???
よく見たらIDだしてないじゃないかお前 氏ね!俺氏ね!
ID出さないは食い逃げですよ
ID出したら負けと思ってます
24 :
nobodyさん :2007/05/13(日) 01:17:52 ID:bVkJL6kZ
ApacheモジュールのPHPって 仮にあるユーザが10秒かかる処理をリクエストしたとき その10秒間は他のユーザがアクセスしても無応答になるの?
>>24 apacheが別スッドレ起動するはずだから大丈夫
26 :
nobodyさん :2007/05/13(日) 01:40:06 ID:EaEIAfe4
空メのシステムを作りたいんだけど、 お勧めのレン鯖ってないかな? これはメール鯖借りるだけでもできたっけ?
27 :
nobodyさん :2007/05/13(日) 02:01:55 ID:bVkJL6kZ
>>25 確か自分で高負荷のかかる処理をさせたときは待たされた記憶があるんですが
その判定って何でやってるんですか?IPアドレス?セッション?
質問です。 手元の本見てると、 class xxxx { private $_name; function getName(){return $this->_name;} function setName($namae){$this->_name = $namae;} } って言うのがあるんですが、 この$_name の「_」には何か特別な意味があるんですか? $nameとする場合と意味が違うんでしょうか?
>>28 private変数を明示的にするための過去の遺産かと
32 :
nobodyさん :2007/05/13(日) 02:08:54 ID:EaEIAfe4
>>27 それはシステム自体(つまりサーバ全体)自体が負荷が
高くて処理が遅くなってたんじゃないのかな?
PHP自体はIPとかセッションじゃなくてリクエスト単位で
アパチェがスッドレ立ててるはずだよ
>>31 thisって関数じゃないだろ。
クラスのとこ見たほうがいいと思うよ。
$thisって実行してるクラスってことでいいんだよな?
いいえ。全然違います。 メンバ変数のことです。
37 :
ぷぅ :2007/05/13(日) 03:11:20 ID:eYzfHo38
携帯の前略のプログなんですが、ある人のりあるのページをみたら、背景と文字が真っ黒で絵文字のみ浮き上がり読めなくなってしまいました。読める様になる方法ってありますか?教えて下さい。
>>39 分からないなら少なくともマニュアルのクラスの項読むといいぞ
>>41 クラスのどこ読めばいいの?
$thisがインスタンスとだけ言われちゃどういう意図でいったのか意味が伝わらない。
全部
普通に考えて$thisはインスタンスだろwwwwwwww このスレのレベルの低さが伺えるなw
メンバ変数であるわけないのに、そう言っちゃって突っ込まれたから 顔が真っ赤になって書き込みを続けているというだけの話だろうね
公式マニュアルはOOP入門書じゃないし、 そのへんの一般常識がごっそり抜けてる奴が結構居ると思うよ。
常識というより、どっかからサンプルソースもってきて、 表示された=動いたーうごかないー、みたいなやつにありがちだ。 意味もわからずDBを入れるわ、クラス使うわ
PHPのクラスとオブジェクトのページすら読まずに語ってたのか・・・ 恐ろしや・・・
49 :
nobodyさん :2007/05/13(日) 12:27:00 ID:/gq+so5C
50 :
nobodyさん :2007/05/13(日) 12:33:10 ID:EaEIAfe4
>>49 メールが送られてきたらPHPを実行する みたいな感じ
mb_send_mail('
[email protected] ','至急','なぁ、おまえんとこのサーバってメールが送られてきたらPHPを実行できんのか?それだったら借りたる');
仕組み次第で出来るぞ・・
開発環境によると思うが、 .forward ファイルを編集して fopen('php://stdin', 'r'); で受け取ればいい
postfixを使った場合のソースをもっと詳しくおながい
ググレ腐るほど転がってる
ここに転がしてよ!バカ!
57 :
nobodyさん :2007/05/13(日) 17:17:10 ID:JyhsaAbc
質問させてください。 /proc 0 0 0 0% /proc ↑のようなデータがあります。 この行の"0%"のみを抜き出して表示させたいのですが、 以下のようなスクリプトを実行すると、 何も表示されません。0=無として動いているようです。 $a = 0; $hairetu = explode(" ", "$proc"); // ↑の$procに「/proc 0 0 0 0% /proc」の内容が入ってます。 while( $a < 34 ) { if ( ereg("%", $hairetu[$a]) ) { $str = "$hairetu[$a]"; } $a++; } print "$str<br>"; // ↑ここで何も表示されない 分かりにくくて申し訳ありませんが、対処方法を教えてください。
sendmail呼べばおk。
>>57 $str = preg_replace('/.*? (¥d+)%.*/', "$1", $proc);
>>57 $a = 0;
$hairetu = explode(" ", "/proc 0 0 0 0% /proc");
while( $a < 34 ) {
if ( ereg("%", $hairetu[$a]) ) {
$str = "$hairetu[$a]";
}
$a++;
}
print "$str<br>";
で出てくるけど
>>57 糞ロジックだし、記法かなりあやしいところあるけど、別に間違ってないよ。
別の原因だな。
62 :
nobodyさん :2007/05/13(日) 22:04:51 ID:w30SUErw
phpで指定した何年何月のカレンダーを組み込み関数なしで表示させたいが いまいちソースが予想付かない、どういう組み方すればいいかなんとかご教授 お願いできませんでしょうか。スレ違いならそっちいくんでスレ指定おねがいします。 初めて1か月だがプログラミング向いてないんかな・・・。
なぜ組み込み関数無しで?
できるわけねえだろクズ。 もしやるとしたら正しい日付のフォーマットを自分で作るしかねえんだよ!
ガタガタいってるとそろそろ反撃しますよ回答者ども おれは62じゃないから、念のため。
66 :
62 :2007/05/13(日) 22:59:48 ID:???
>>63 いやそういう指定受けたもので。
>>64 でもやらなきゃならんのですよ。
ううむ・・。基本日数は1800年の1月1日が水曜日って事ぐらいしか・・
その理由をかけよ
>>66 1800年の1月1日から、求める月の最初の日付まで何日間経ったか数えて、
それを7で割ったあまりで1日の曜日を求めて、ってことになりますね。
閏年は4で割り切れる年、ただし100で割り切れない年である、しかし400で割り切れる年はやはり閏年である、という事実を使って日数を求めればよいです。
組み込み関数無しでどうやって出力するんだ
プログラムのロジックを考えるのが趣味ならべつだが、車輪の再開発なんて無駄
73 :
66 :2007/05/13(日) 23:21:39 ID:w30SUErw
>>67 残念だが無理
>>68 わかりました、それをヒントに考えてみます。
>>70 フロチャートから書いてる段階だからまだ入力してないんだ・・。
>>71 説明不足でした、正確には日付関数系をなし。
なんとか頑張ってみます、ありがとうございました。
無理ワロタ
できないことはないが、ソースがふえるだけ 学校の宿題だろ
どうせ宿題かなんかだろ。 スルーしろよ。
どんな用件なんだいったい? 謎は深まるばかりだな
大学板でこの質問貼り付けて聞きまわって調査してくる
>>73 要求仕様の理解がおかしいんじゃないのか?
カレンダー関数と、標準関数としての日付関数と取り違えてないか?
>>73 フローチャートでもいいから見せろよ
どの段階で詰まってるのか分からないと答えようが無いだろ
81 :
nobodyさん :2007/05/13(日) 23:37:33 ID:Abz7uB+8
ウィンドウズでPHP5をインストールしたのですが アパッチを起動してPHPが動きません PHP4を設定する資料は沢山あっても5の資料が無いので教えてください
>>81 公式マニュアルに分かりやすく確実な解説があるよ〜〜〜
83 :
nobodyさん :2007/05/13(日) 23:41:09 ID:Abz7uB+8
あるスクリプトで、sleep 10;という命令を使おうと思ってます。 そこで、停止している10秒間に、10、9、8、7、、、と カウントダウンを表示させたいのですが、どのように記述すれば 良いでしょうか
>>85 こんなんじゃダメか?
for ($i = 10; $i >= 0; $i--) {
printf("\r%2d", $i);
sleep(1);
}
駄目に決まってるじゃん。CLI標準出力じゃあるまいし
89 :
nobodyさん :2007/05/14(月) 00:56:58 ID:5a5f7yKw
>>50 Thx!なるほど。バッチで実行してもいいんじゃね?phpでpopアクセスするやつ作って。
91 :
nobodyさん :2007/05/14(月) 01:07:06 ID:anxZlOK/
$iyear=2007; $imoon=5; function leap($year){ $count=0; $count += floor($year/4); $count -= floor($year/100); $count += floor($year/400); return $count; } $leap = leap($iyear)-leap(1800+(($imoon>2)?-1:0)); echo "leap=$leap\n"; $moon = array(0,31,28,31,30,31,30,31,31,30,31,30,31); $day = ($iyear-1800)*365 + $leap; for($i=1; $i<$imoon; $i++) $day+=$moon[$i]; echo "day=$day\n"; $dotw=($day+3)%7; echo "dotw=$dotw\n"; for($i=0; $i<$dotw; $i++) echo " "; for($i=1; $i<=$moon[$imoon]; $i++){ printf("%2d ",$i); if(!(($i+$dotw)%7)) echo "\n"; }
IDだしてないやつに回答した奴が被害にあいますた
そうですか。頭悪いね。
94 :
nobodyさん :2007/05/14(月) 01:14:51 ID:w1xXl1JO
httpd.exe: Syntax error on line 115 of C:/Program Files/Apache Software Foundati on/Apache2.2/conf/httpd.conf: Cannot load C:/php/php5apache2.dll into server: \x 8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8 c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B Note the errors or messages above, and press the <ESC> key to exit. 27... C:/php/php5apache2.dllはあるのにこう言われます 何故ですか
95 :
nobodyさん :2007/05/14(月) 01:15:34 ID:w1xXl1JO
>>94 はウィンドウズXPでアパッチを起動した時のエラーメッセージです
96 :
nobodyさん :2007/05/14(月) 01:16:34 ID:dsmo737w
>>95 エラーメッセージ答えてもエラー内容わからないと解決しなくね?
>>94 httpd.confの115行目でsyntax errorだって。
なんでapache2.2なのにphp5apache2.dllを呼ぶんだよバカ。 apache2,2用のdllを呼んでからでなおしてこいやボンクラ
( ・ω・)
101 :
nobodyさん :2007/05/14(月) 01:37:31 ID:Rgccl4HD
$str1 = "/AAA/BBB/CCC"; $str2 = "/BBB/CCC/DDD"; から共通部分の"/BBB/CCC"だけを抜き取るにはどうしたらいいの?
マニュアルの配列を扱う関数ページはもちろんみたんだろうな?
103 :
nobodyさん :2007/05/14(月) 01:53:13 ID:w1xXl1JO
>>99 どうもありがとう
おかげでエラーは出なくなりました
でもまだテスト用のスクリプト動かすとエラーが出ます
たとえば
<? phpinfo() ?>
だけのphpファイルを開くと
Parse error: syntax error, unexpected '@' in C:\Pr 略 est\phpinfo.php on line 2
になります
他のスクリプトの内容でも同じエラーです
質問厨ですいません
unexpected '@' といわれるのは、たいがい全角スペースが変なとこに入ってるときだな。
105 :
nobodyさん :2007/05/14(月) 01:57:06 ID:w1xXl1JO
>>104 その通りでした
ありがとうございました
PHPのフレームワークはいつになったらデファクトスタンダードゥが決まるんだろな
口は悪いけど面倒見がいい回答者がそろうインターネットですね
>91 こゆの見ると、己の才能の無さに凹むわ
関数でできることを書くのは自己まんにしかみえないよ
>>109 確かにそれはそうだ。
でも出来るけどやらないのと出来ないからやらないでは
全然意味合いが違ってくると思うんだ。
111 :
101 :2007/05/14(月) 02:21:50 ID:Rgccl4HD
>>101 共通部分があらかじめ分かってるか否かによる
113 :
101 :2007/05/14(月) 03:04:28 ID:Rgccl4HD
$str1 = "/AAA/BBB/CCC"; $str2 = "/BBB/CCC/DDD"; $temp = end(explode("/", $str1)); $pattern = "`^(.*{$temp})`"; preg_match($pattern, $str2, $match); echo $match[1]; 自分で書いたのはこんな感じなんだけどなんかたまたま動いてるだけな気がするんです "/"で分割したから$str1が"/"で終わっちゃうと当然思い通りには動作しないし。 $str1はファイルの絶対パス、すなわち"/"で終わらないって条件下ならこれでいいのかな やりたいことをうまく説明できてなくてすまん
最後に/を含なまいようにrtrimで削除すればいい話だろ 難しく考えすぎるな。楽をしろ
115 :
nobodyさん :2007/05/14(月) 05:38:18 ID:Qx50SkdA
あるスクリプトで、sleep 10;という命令を使おうと思ってます。 そこで、停止している10秒間に、10、9、8、7、、、と カウントダウンを表示させたいのですが、どのように記述すれば 良いでしょうか
>>115 CLIならループで。
Webならクライアント側のJavaScriptで。
必要ならばセッション張って。
それ以前に仕様を見直したほうが無難。
117 :
nobodyさん :2007/05/14(月) 06:46:28 ID:Qx50SkdA
>>116 WEBでやりたいと思ってます
なるほど。JavaScriptかぁ・・・
例えば、10秒のGifアニメを張るとかもアリでしょうか?
>それ以前に仕様を見直したほうが無難。
どういう点がマズイ仕様でしょうか
>あるスクリプトで、sleep 10;という命令を使おうと思ってます。 ・・・・・・。
>>117 サーバー側での10秒後がクライアント側でも10秒後とは限らない
>>117 サーバー資源を10秒も食いっぱなしにすんなよ。
JavaScriptで10秒timerかけて、10秒後にサーバーに再アクセス、が妥当じゃないの?
GIFアニメの再生速度はマシンパワーに依存するから「10秒の」ってのは作れないと思う。
これもJavaScriptで1秒間隔で別の画像に次々切り替えるとかにすれば。
くだらねぇな <script type="text/javascript"> onload = function () { var counter = document.getElementById("counter"); var n = 10; (function () { counter.innerHTML = n; if (n-- > 0) setTimeout(arguments.callee, 1000); else counter.innerHTML = "ぬるぽ"; })(); } </script> <span id="counter"></span>
122 :
nobodyさん :2007/05/14(月) 11:35:48 ID:dsmo737w
imapで、メールの本文や日時、メールアドレスは見れるのですが、 タイトルが見ることができません。 何かタイトルを見る方法はないのでしょうか? あと、メールアドレスが偽装で送られてきた場合は、 この関数ではそれを見破る(?)ことはできるのでしょうか?
124 :
nobodyさん :2007/05/14(月) 11:56:04 ID:dsmo737w
>>123 @メールのタイトルを取得する方法
Aメールアドレスが偽装されている部分はどうなるの?
です
>>124 1. ヘッダを取得する関数があるような気はしませんか。
2. ヘッダを取得する関数があるような気はしませんか。
何を以って偽装とするのかわかんないけど
複数プロバと契約しててSMTP1つで片づけてる人も「偽装」?
126 :
nobodyさん :2007/05/14(月) 12:08:59 ID:dsmo737w
>>125 あー
mb_send_mailなのでヘッダーで自分のメールアドレスを指定してたりすると偽装?
わっかんねwwwwww
headerに
[subject] => =?ISO-2022-JP?B?GyRCJCokUiQ1IXkbKEI=?=
ってりましたが、これですか、どもです
こんな形の文字化け初めてみました
メールアドレスはいくらでも偽装かのうだけど 発信元サーバー情報は取得できるよ。
128 :
nobodyさん :2007/05/14(月) 12:44:30 ID:dsmo737w
>>127 message_idの項目のことですかね?
=?ISO-2022-JP?B?GyRCJCokUiQ1IXkbKEI=?=
↑文字化けしてますけど、どうやって戻すのでしょう?
mb_convert_encoding($str, "utf-8","iso-2022-jp")
mb_convert_encoding($str, "utf-8","auto")
試しましたが元に戻りません・・・
タイトルにサーバー情報が入ってる分けないだろバカ
130 :
nobodyさん :2007/05/14(月) 12:51:48 ID:dsmo737w
>>128 mb_decode_mimeheader
ていうかそんなのも分からずメール関連やろうなんて無謀だから諦めた方が…
まずはメールのプロトコルとかヘッダーとか理解したほうがいいよ
>>128 それは文字化けではない
BASE64エンコード
元に戻すならデコード
関数探せばあるよ
133 :
nobodyさん :2007/05/14(月) 13:09:19 ID:dsmo737w
>>131 なるほど!urlencodeみたいなものですね
134 :
nobodyさん :2007/05/14(月) 13:27:38 ID:fBoB1LaJ
すみません。書籍を読んで勉強中なんですが。疑問におもったので教えてください。 最初にif文で$_GETで受け取るべき値があれば受け取り変数$nameに入れるとします。受け取る値がない場合はもちろん受け取りません。 そしてTEXTBOX(<input type="text">)に$_GETで得た値をデフォルトで入れます。$_GETで受け取らない場合は textboxはデフォルトでは空白です。 それを実現するには、 本によると<input type="text" value="<? echo $name; ?>">となっています。 最初のif文では if(isset($_GET)) { $name=$_GET; } としています。要するに$_GETが空白の場合は$nameは使用しません。 その場合、<input type="text" value="<? echo $name; ?>">での$name使用は エラーにならないんですか?C言語だといきなり今まで使用していない変数(値も代入されていない)を使うとエラーになるんですが。。 PHPでは、エラーもなく通るんですか? たしか、なにかの本ではこのような状況のとき、厳密にはエラーになるときもあるとかいてありました。
>>134 中身がない場合は、空のデータが出力される
136 :
134 :2007/05/14(月) 13:35:37 ID:fBoB1LaJ
>>135 どうもありがとうございます。中身がない場合は空のデータなんですね。
ということは<input type="text" value="">となるんですね。
ありがとうございました。
どうしても心配なら $name = "value=\"".$_GET."\""; <input type="text"<? echo $name; ?>> にすればいいかもしれんね
普通の配列だと $array[0]['type'] で見れるけど simplexmlloadだと、 配列の中身見るとき$xml->type;だよね
139 :
虚弱PHP :2007/05/14(月) 13:56:21 ID:???
>>134 質問は↓でいいのかな?
> C言語だといきなり今まで使用していない変数(値も代入されていない)を使うとエラーになるんですが。。
> PHPでは、エラーもなく通るんですか?
そういうもんです。
スクリプト系の言語ではわりと普通のことだと思います。
NOTICEも表示するようにしとけば、NOTICEは起きると思いますよ。
140 :
nobodyさん :2007/05/14(月) 14:14:35 ID:5a5f7yKw
E_ALLなら宣言してない変数使うとエラー出なかったっけか?
foreachのなかで if ( isset( $value['table'])) というif文があるんですが、$valueが'flg'という文字列でも上記のif文がtrueになるのはなぜですか? $ret[] = $value['table'] . '.' . $key; という文がそのif文の中にはあるんですが、この部分の返り値が"f.hoge"となってます。
143 :
142 :2007/05/14(月) 14:44:08 ID:L2qcEQSy
PHPのバージョンは 5.1.6です あと、たまに同じ値を比べてもFALSEな時があるんですが、 それもforeachブロック内です。 ===で比べないとTRUEになりません。 なんかあるんでしょうか。
>>134 代入する場合は存在していなくても問題ない。
参照する場合は存在していないとNOTICEエラーが発生する。
(Undefined〜系、エラーレベルE_ALLじゃないと出ない。値的にはnullが返る。
それはそうとその通りだと$_GETは常にセットされてるし、配列なんだけど写しミス?
>>142 文字列型も配列型のように角括弧でバイト単位でアクセス出来る為。
ただしオフセットは数字以外は[0]と見なされて1byte目を参照することになる。
そのfはflgの先頭文字。
youtubeって会員登録無料でしょうか?
有料です。 登録しないで視聴した場合、それなりの料金はIPから調査されてちゃんと後日請求されます
147 :
nobodyさん :2007/05/14(月) 16:09:05 ID:k9XxZtyZ
static変数やメソッドというものは、 どういうケースで使うのでしょうか? カウンターでカウントするときに使用するぐらいはわかるのですが、 ブロック内が終わっても値を保持し続けるといっても、 具体的にどういうケースで使えばいいのかいまいち理解できません。 どういう所で使うのか、具体的なケースをいくつかあげていただけませんでしょうか?
なんで貴様のために具体的なケースを、しかもいくつもあげ(ry
しかもカウントする処理でわざわざつかうなよw
>>147 思いつかなければ、別に使う必要はない
具体的な例を挙げるほど頻繁に使うことはない
>>147 貴様に教えられることはマニュアルを極めてから出直して来い
152 :
nobodyさん :2007/05/14(月) 16:35:11 ID:k9XxZtyZ
>>150 そうですか。
いくつか例をあげていただければ、共通項が見出せると思ったのですが、
頻繁に使うことはないとのことなので気にしないことにします。
良く使うのはstaticなインスタンスを作成するときぐらいかな。 他は特に使わないと困るって所があまり無い気がする。
ここは新しいことを覚えるというより、わからないことを教えてもらうスレだろ 楽して勉強しようとするな
新しいことを覚えるのも楽しいよ。
>>154 そういう俺ルールを作るなボケ。
くだらねぇ質問ならなんでもいいんだよカス。
ていうかこの時間の回答者は煽ることしかできない低レベルな馬鹿ばっかりだな。
俺も含めて。
俺はまじめに答えたぞ
おれもまじめに質問したぜ!
159 :
nobodyさん :2007/05/14(月) 17:09:21 ID:byqD8Lza
メンバ変数にfinal修飾子を使えないようですが、 定数を定義するときは、constを使えばいいのでしょうか? // メソッドのみにしか使えないとエラー public static final $CONSTANT = "CONSTANT"; // これでいいのかな? const CONSTANT = "CONSTANT";
161 :
nobodyさん :2007/05/14(月) 17:34:13 ID:Gq/W6/hf
hogeというディレクトリの中にhoge2というディレクトリと、main.phpというPHPファイルがあるとします。 hoge2の中には、inc.phpというファイルがあり、 main.phpから、inc.phpを呼び出しています。 そこで、main.phpから、inc.phpが置かれている、「hoge2」という値を取得したいんですが、どうしたらいいんでしょうか? よろしくおねがいします。
162 :
161 :2007/05/14(月) 17:36:08 ID:Gq/W6/hf
すいません、逆でした。 上の書き込みの、3行目、 X main.phpから、inc.phpを呼び出しています。 O inc.phpからmain.phpを呼び出しています。 ファイル名が逆のままですが、よろしくです。
dirname
164 :
nobodyさん :2007/05/14(月) 17:50:21 ID:Gq/W6/hf
>>163 どうもありがとうございます。
/php/hoge2 って感じで出力されるんですが、hoge2だけ(自分のいるディレクトリ名だけ)を取得したい場合の関数ってあります?
それとも、これを正規表現なりでいじって取るしかないんでしょうか。
何度もすいません。よろしくおねがいします。
>>164 list(,,$dir) = split('/',"/php/hoge2");
166 :
nobodyさん :2007/05/14(月) 18:01:29 ID:xEs1nUuB
正規表現道場
http://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)時の正しい書式」
を教えてくださいまし。
おれがこたえてやるからあと20分まってくれ
168 :
nobodyさん :2007/05/14(月) 18:03:16 ID:byqD8Lza
>>160 わからないなら答えなくていいですよ。
やはりPHPはユーザレベルも低いですね。
失望しました。
170 :
nobodyさん :2007/05/14(月) 18:05:03 ID:Gq/W6/hf
>>165 ありがとうございます。解決しました!
ところで、もう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の挙動がよく理解できない・・・。
171 :
nobodyさん :2007/05/14(月) 18:08:37 ID:byqD8Lza
>>169 まさに私にぴったりですね。
でも過疎ってるので遠慮しときます。
本当に
>>160 みたいな害虫は死ねばいいのに。
答えられないけど何かいいたいやつの決まり文句は、
「マニュアル見れ」だよね。
質問です。 GD2で、tiff画像を読み込みたいのですが、マニュアルにimagecreatefromtiffが見当たりません。 何かほかに方法はありますが?
175 :
172 :2007/05/14(月) 18:17:51 ID:N76OGPmp
すみません。 IDが出てませんでした。 ちなみに、海外サイトで次のような例があったのですが、動きませんでした。 $bild="einbildeben.tif"; Header("content-type: image/tiff"); $im = @readfile($bild); return $im;
176 :
nobodyさん :2007/05/14(月) 18:20:45 ID:N76OGPmp
>173 たびたびすみません。入れ違いでした。 環境は、OSX+MAMPで、PHPは5.16です。
gd関係ないやん
178 :
nobodyさん :2007/05/14(月) 18:30:57 ID:Gq/W6/hf
>>166 $replacement が間違っていないか?
$replacement = "'\\2' . '\\1' . '\\3'";
じゃないの
180 :
166 :2007/05/14(月) 18:40:16 ID:???
>>179 仰せの通り、
$replacement = "'\\2'.nl2br('\\1').'\\3'";
で通りました!
nl2brで囲んだ\\1がクオートで囲まれていなかったのが原因、というオチでした。
(・∀・)アリガd
>>178 もう少し落ち着け
// 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 の問題ではないぞ
>>170 requireは対象を実行させるわけじゃなく、対象を自分に組み込んで実行するから。
>>171 160じゃないがそのレベルじゃ解らないも何も無いだろ…。
オブジェクト定数の項に書いてあるし、
何より自分で答え書いてるんだから試せば終わりだし…。
ああ…釣りですか。
echo urldecode('test.php?hoge&hoge2'); とやると、hoge2が消えるのは仕様でつか?
ごめんなさいでつ。ブラウザの表示の問題でつた
よかったw
187 :
nobodyさん :2007/05/14(月) 20:37:25 ID:/zb+oLLW
" と ' の使い分けって、みなさんどんな規則作ってやってますか?
>>187 変数展開が必要かどうかと中身に ' か " を含むかどうか。
どっちでもいい場合は、将来的に変数展開を追加する可能性があるかどうか。
もっぱら、配列キーの場合は ' で、それ以外は " にすることが多い。
>>187 基本的にJava風に、1文字の場合はシングル。それ以外はダブル。
意味が違うから基本的にシングル。'もエスケープ。
同じく。ダブルを使うときって、まずない。
あ、"\n"とかね、そういうときぐらいは使うか。
"で統一してる 変数の中身を表示したいときだけ→'
エスケープするときだけ"\"で、他は''だと統一性があまりないよね。 かといって''."\".''とかだと余計おかしいし。 ということで、最近は全部""でやってる。
195 :
nobodyさん :2007/05/14(月) 22:05:26 ID:dsmo737w
<? echo ""; ?> とすると、ソースで <!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> と表示されるんだけど これを消す関数のようなものありませんでしたっけ?
>>194 >エスケープするときだけ"\"で、他は''だと統一性があまりないよね。
統一性はあるだろ。統一性というのが変なら規則性はあるだろ。
>>195 それはブラウザが勝手に表示してるだけ。
ブラウザによってソースが違うから気にする事はない。
198 :
nobodyさん :2007/05/14(月) 22:23:59 ID:dsmo737w
ノ ∧ /) ∧ 彡 ノW \从/V W \ ミ ( ノ | ノ \) ∩V 、、 | >V7 (eLL/ ̄ ̄\/ L/ ̄ ̄\┘/3) (┗( )⌒( )┛/ ~| \__/ | \__/ |~ / ̄ ̄ ̄ ̄ ̄ ̄ 爻 < | ; 爻 < 君たち、どんどん質問をぶつけてくれたまえ23時までなら私がすべてに答えてしんぜよう ~爻 \_/ _, 爻~ \______ ~爻__/⌒ ̄ ̄ ̄~~ヽ_ 爻~ / ー ̄ ̄\_ ̄\ _一‘ < ̄ ̄\\\J <\ ー ̄ ̄ヽ_ヽJ  ̄\_ \ _ニニニヽ ) ~\ \ _/⌒|\ ヽ_~~ ~⌒\_ __/~ V \_| ~\_
200 :
nobodyさん :2007/05/14(月) 22:28:31 ID:dsmo737w
>>199 PEAR使ったことないんだけどどうやって使うの?
>>199 ジュワワワジュワワ、
ジュワジュワジュジュワワワワワ?
202 :
nobodyさん :2007/05/14(月) 22:36:27 ID:tsqMY0Kq
for文の中でif文を書きまして、if文の処理でtrueだったらforを抜け出したいのですが、 if文にbreakを書いても抜け出せませんでした。 breakでは抜け出せないのでしょうか? どなたかご教授お願いいたします。 for ($i=0; $i<5; $i++) { if ($i == 3) { $nissuu = $i; break; } }
>>199 質問:
>てしんぜよう
> ~爻
ここのところに字が食い込んで痛くないですか?
>>200 それはむずかしい質問だ。pearは楽をするために使うものである。
>>201 / || :ヽ
┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::|::ヽ.__:):||(___ノ ::|::| │
|:|: .. :|| .. |:| │
:|: .. || ..|| < 日本語でおk
:\ [_ ̄] /::| │
:: |\|_|_|_|_/:::| \________
__| | / / :|___
>>202 別の問題では?
$nissuu = 0;
for ($i=0; $i<5; $i++) {
if ($i == 3) {
$nissuu = $i;
break;
}
}
print_r($nissuu); // 3
>>202 ちゃんと抜ける
というか、そのスクリプト動かしてみた?
207 :
nobodyさん :2007/05/14(月) 23:14:34 ID:tsqMY0Kq
すいません、2ちゃんに書き写したら動きましたw
ないない
209 :
nobodyさん :2007/05/14(月) 23:48:47 ID:dsmo737w
class x{ function a(){ echo "a"; } function b(){ $this->a(); } } x::b(); こうすると Using $this when not in object context というエラーが返ってきました。 b()からa()を呼び出すのはどうすれば良いのでしょうか?
publicつかえ
211 :
nobodyさん :2007/05/14(月) 23:55:11 ID:dsmo737w
publicを使っても同じでした $obj = new x(); $obj->b(); で解決しました
インスタンス作れ、が正解
>>211 a()メソッドにpublicつけてだめだったの?
>>210 ,213
恥晒しだからやめてくれ。
public function b(){
self::a();
}
なんだかねw
216 :
nobodyさん :2007/05/15(火) 00:28:01 ID:b/094Ijk
.htaccessについての質問なんですが、 Order deny,allow Deny from All と記述しているのに、アクセスできてしまいます。 httpd.confも AccessFileName .htaccess と指定しています。 なぜでしょう?
217 :
nobodyさん :2007/05/15(火) 00:33:53 ID:zmGOBMea
配列が空かどうかチェックする関数とか制御文てある? empty($array)でいい?
うん
>>217 それだと$arrayが0や""や"0"やNULLの場合も真が返る。
$arrayが空の配列の時のみ真にしたいなら
$array === array()
220 :
nobodyさん :2007/05/15(火) 00:46:41 ID:zmGOBMea
>$arrayが0や""や"0"やNULLの場合 これもPHP的に空であるのでemptyが正解
( ´_ゝ`)
>>216 http.confのディレクトリセクションのAllowoverrideディレクティブにLimitキーワードが指定されてるかどうか
確かめなさい。しかし、スレ違いだから返事はよろしい。
基礎ですよ^^;
226 :
187 :2007/05/15(火) 01:27:16 ID:VFvSiaRR
多くの方の意見を聞けて参考になりました ありがとうございます
____? ?/∵∴∵∴\? ?/∵∴∵∴∵∴\? /∵∴∴,(・)(・)∴|? |∵∵/ ?○ \|? |∵?/ 三 | 三 | / ̄ ̄ ̄ ̄ ̄? |∵?| __|__? | < てめえらさっさと起きろ!!? ?\| \_/ / \_____? ? ? ?\____/?
228 :
nobodyさん :2007/05/15(火) 10:09:00 ID:7hthTDm5
>>181 すいません、もう少し詳しく書きます。
アクセスしたファイル: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と解釈されるんでしょうか?
>>228 requireやincludeは指定したファイルの内容を
埋め込むものと考えればいい
その場合main.phpやwreite.phpの内容は
index.phpに「埋め込まれる」ので
OUTに書き込む場合の相対パスは
main.phpやwreite.phpのパスに影響されない
230 :
nobodyさん :2007/05/15(火) 10:48:11 ID:8bGiD1y7
該当するスレッドが見あたらないため、こちらで質問することをお許しを。 WinにXAMPPをインストールしようと思っておりますが、 常時ネットにも接続するためセキュリティーが不安です。 標準のProgram Files\XAMPP か C:XAMPP か それとも他のドライブに入れた方が良いのですかね? ファイアウォールと.htaccessで拒否すれば、そこまで深く考える必要はないのでしょうか? みなさん、どうしてますか?
231 :
nobodyさん :2007/05/15(火) 10:57:53 ID:sdtp9zq7
require/include/loadされて実行中のファイル位置を確保する 定数があればいいんだけどね。残念ながらない。
>>229 わかりやすい解説ありがとうございました。
DBからプライマリキーでselectするとき、 limit 0,1付けた方がいいですかね? 暗黙的に1つに限定されているから、パースのコストの方が高くつく?
どちらも非常に微々たるもの 気にするな
236 :
nobodyさん :2007/05/15(火) 11:53:31 ID:b/094Ijk
data.logというファイルがあり 行 [1] 適当なデータ [2] わかんない><; [3] 123456789 [4] ABCDEFG [5] こんにちは [6] example.com [7] Hoge Hoge [8] Hello world こういうデータで、 特定の行のみ削除する方法はないでしょうか? 一度、fileで展開してその行を削除し、書き換えるようなやり方ではなく、 行を削除するだけというのはできませんか?
238 :
nobodyさん :2007/05/15(火) 11:57:19 ID:b/094Ijk
>>236 行の幅が固定長ならできるんだがな。
あとはfseekとかで、書き換える行以降のみを変更するってことならできなくもなさそうだ。
fileでいいじゃん。 富豪プログラミングしようぜ。
データベースを覚えるともう手放せません
プログラムがすごく簡単になりました
>>236 とかdelete一発です
242 :
nobodyさん :2007/05/15(火) 12:36:05 ID:i5vBSj25
むやみにDELETEするのはどうかとおもうがな コスト的にもね
sage忘れた
消したい時にdeleteしないで何するんだよ
DELETE以前に、フラグで処理するかどうか考えるもんだ普通は
状態カラムでもつけて削除済みのフラグを立てておく。
>>244 >>245-246 が言いたい事言ってくれてるよ。
DELETEをする事によって起こるコストとバグあった時の危険度を考えると
DELETEをむやみに流すってのはどうかと思うんだ
248 :
nobodyさん :2007/05/15(火) 14:08:20 ID:b/094Ijk
class&function管理したいのですが、 皆どんなソフトでやってます? classとfunction増えすぎてファイルがわけわかんなくなってきたwww
普段はEclipseだけど、客観化するにはphpdocでdocument作るよ
250 :
nobodyさん :2007/05/15(火) 14:25:33 ID:b/094Ijk
>>249 サンクス
とりあえずPHPエディタをダウソしてみたところ、
クラスやfunctionが管理できそうなので、
これを使ってみようと思います。
(各クラス、functionにコメントをつけることができればベストなんですが・・・)
俺はIDEの類は使わずにとことんやってるぜい。 そうすると、わかんなくならないようにするために、設計に力が入るようになる。
253 :
nobodyさん :2007/05/15(火) 14:58:04 ID:b/094Ijk
>>252 とりあえず
class XXX {
/****************
説明
****************/
}
こんな感じでは書いてる
エディタの左にクラスとメソッドがツリー式に表示されてるんだが、
それにカーソル合わせると、その説明が出るとかだとうれしいなwwww
>>248 ctags使えばエディタによっては一発ジャンプしてくれる
255 :
虚弱PHP :2007/05/15(火) 16:03:06 ID:???
>>253 アウトラインの見出し定義を編集できるようなエディタなら、
似たようなことは出来るよ。
256 :
nobodyさん :2007/05/15(火) 16:17:09 ID:7hthTDm5
magic_quot_gpc以外で自動的にエスケープする設定ってありますか? 何もしてないのに、<や>がエスケープされる・・・。なぜ?
<>とマジック・クオートは全然関係ないだろ。勘違い
258 :
nobodyさん :2007/05/15(火) 16:37:28 ID:6TG+QTaB
eregi()を使ってフォームで入力された単語の中で半角記号がある場合 はじくスクリプトを書いてるのですが$をはじく if(eregi("$",$keyword)){ return false; }else{ return true; } と\をはじく if(eregi("\\",$keyword)){ return false; }else{ return true; } だけが正しく機能してくれません。 正規表現などでググったのですが、これらを認識させる方法を 明記されてるところが無くほとほと困ってます。 osはfreeBSD、phpのバージョンは4.4.6です(レンタルサーバ)
>>258 マルチすんじゃねえボケ。あっちで答えたから見ておけ
$はエスケープしろ。 エスケープ特殊文字であるバックスラッシュは、エスケープのエスケープしろ。 \\\\じゃないとなぜ駄目なのかを考えてみよう。 なお「半角文字」なんていう言葉は変だから使うの辞めようね。
>>259 別にマルチじゃねーだろが。ぼけ。こっちが本スレだから書き直しただけだろ。
>>261 向こうに書いてこっちに書き直すなら
向こうにそう言ってからこっちに書かないとマルチ
263 :
258 :2007/05/15(火) 17:22:25 ID:6TG+QTaB
すいません、一度このスレに書いた後でレスが反映されなかったので
落ちてるのかと思い、再度「php 質問」で2ch内検索しなおして出てきた
あちらのスレに書きなおしたつもりだったのですがマルチになってたようですね。
ちなみに
>>261 は赤の他人です、気分を悪くする流れにしてしまい申し訳ありませんでした。
>>260 \$で試してみたところ、やはりうまくいきませんでした。
ちなみに、$が入っていようが無かろうが
if(eregi("\$",$keyword)){
return false;
}
のところで必ず引っかかりfalseを返してしまうようです。
>>263 \\を\\\\にしないといけないってことは
\$なら\\$にしないといけないよね
if(eregi("\\$",$keyword)){ return false; } メタ文字エスケープする時に\$とか\\とかじゃだめだってばさ。
いろいろ試してみたり \\\\ について理解を深めるのは良いことだと思うんだけど 要件的に正規表現を使わなくてもよさそうな気がする。
267 :
nobodyさん :2007/05/15(火) 17:31:34 ID:6TG+QTaB
>>264 今試してみたところうまくいきました。
\\\\じゃ無いとダメなのかはもう少し詳しく調べてみようと思います。
くだらない質問を光の速さで回答していただきありがとうございました。
あと、半角文字という言葉の使用は以後注意して使わないようにもします。
ありがとうございました。
268 :
258 :2007/05/15(火) 17:35:25 ID:6TG+QTaB
>>267 の名前欄にレス番号記入するのを忘れていました。
色々ミスってスイマセンでした、訂正しておきます。
>>266 ほかにも色々ある正規表現のテストと
ゆくゆくは[a-z]なども使う事があるかと思い
試している途中で詰まった事なのです。
return strpos($keyword,'\\') === false ? true : false;
まあそれが美しいよね
271 :
258 :2007/05/15(火) 18:32:31 ID:AwqtLTCz
>>269 あまりにも美しすぎて、もう少し勉強しないと
なにがどう書かれているのか理解する事もできませんでした。
PHPも中々置くが深いんですね、
>>269 が理解できるよう
さらに深く学んで生きたいと思います。ありがとうございます。
何でもかんでも一行で書けばいいってもんじゃない。
なんで回答後ってこういう慇懃無礼とも思える気持ち悪い表現が多いんだろう
あんたなんでもかんでも肯定されないといやなんですか? だったらやめたほうがいいよ
確かに現役PGの視点からいえば、 可読性がない自己満足な書き方をするのは誉められたものじゃない。
それは正論だが、論理値リテラルを返すだけの三項演算子で可読性云々言い出す奴はいわゆるキチガイ。
277 :
nobodyさん :2007/05/15(火) 20:49:07 ID:Fy2AtB8k
再利用可能にするために気をつけてることってありますか?
PHP以外の言語をたくさん学ぶこと。
>>276 だと俺も思う。
一行プログラムがポイントではなくて、
strposの返り値を理解して、三項演算子でFALSEチェックするというのは正統派じゃん。
三項演算子使う奴は趣味だろ、わるかったね仕事で使わないもので
281 :
nobodyさん :2007/05/15(火) 22:06:33 ID:FHaxfx0y
dbのコネクションや問い合わせ結果等のリソースは、 変数間でコピーしても必ず参照としてコピーされますか? 丸々コピーされてメモリ大量消費されたりしませんか?
>>280 まあお好みだけど、そのヒネクレ口調だけはやめたほうがいいな。
仕事で嫌われるよ。能力ないのに嫌われたら困るだろお前も
>>281 DBコネクションのリソースってそんなに多大な情報持ってんのか?
284 :
nobodyさん :2007/05/15(火) 22:38:40 ID:UJ71PYY7
>>281 ほとんどの場合は接続IDだからコピーされても
無視できるだろう
ただし、pear::DB とか PDO のインターフェースは
結構でかい
>>281 普通にやれば、丸々コピーだろ
sqlの実行結果なんかは、状況によってはボトルネックに
なるかもね
288 :
nobodyさん :2007/05/15(火) 22:52:10 ID:GtGfJ8qN
DBから出勤時間と退勤時間を出して勤務時間をはじきたいですが、 さくっとかっこいいやり方ってありますか?
退勤時間 - 出勤時間
>>288 select name,phone from shain where shain_id = 'foo';
call phone;
get appointment;
if(define('appointment') && appointment == TRUE )
{
return 'SUCCESS';
} else {
return FALSE;
}
>>289 休み時間は?
仮に休み時間が1時間としても、
退出時間−出勤時間−1
としてはいけない。半休とか使う場合があるからだ。
だから単純な方法は無い。
退勤時間 - 出勤時間(if 休憩がXXだったら〜〜〜)
>>280 世界中の職場が三項演算子を禁止してるとでも?
うちで禁止するのは新人と糞派遣に投げる時ぐらいだな。
プライド高いだけの奴が沸いてきた
プライド高い「だけ」の奴ね ^^^^^^^^
297 :
nobodyさん :2007/05/16(水) 01:28:05 ID:PGjb3KVb
すいません、登録制のサイトで登録者の情報を管理者と登録者本人だけに表示を許可したい場合はどうすれば良いんでしょうか? (管理者以外の他の登録者からは見えないようにしたい) ちなみに、管理者を$site_admin、 登録者本人を$user_owninfoとして、 管理者のみだと、 <{if $site_admin == true}> 中身 <{/if}> で上手く行くんですが、そこに登録者本人をプラスして、 <{if $site_admin == true && $user_owninfo == true}> 中身 <{/if}> としてみると結局$site_admin == trueの部分しか機能していません。 どうかお知恵をお貸しください。
Smarty使う前にandとorくらい知っておいたほうがいいんじゃないかね
IDかPASS制だったらDBでIDとPASS検索して一致しなければLocationで飛ばせばいいんじゃね?
もうBasic認証でいいじゃん、pearの認証つかえばいいじゃん
301 :
nobodyさん :2007/05/16(水) 02:33:19 ID:ceM6XUKn
オリジナルのclassを集めたやつ「class.inc」を暗号化した場合、 読み込むときに複合化しなきゃダメなのかな? 知り合いに自分の作ったやつあげるときに、そのclass.incの中身見られたくないのよ
302 :
297 :2007/05/16(水) 02:33:43 ID:PGjb3KVb
&&じゃなくて||でしたね。 単純な間違いでした。 お騒がせしました。
303 :
nobodyさん :2007/05/16(水) 02:34:46 ID:QKxTyLUD
質問です。 mysqliの関数を実行する時に、 prepareステートメントとか bind_param()とか execute()を使う場合と 使わない場合で、どのような違いがあるんですか? こんな場合は使ったほうがいい、ってのありますか? 参考にしている本を見ると、リストDBに「人名」「自己紹介」「HPのurl」を 追加するのに使っていますが、この程度なら普通にやっても同じでは? という気がします
>>301 PHPスクリプトを暗号化するソフトなら安いので1万円出してお釣がきますので探してください。
あとは高いのでZendにもでてますよ
305 :
nobodyさん :2007/05/16(水) 02:42:10 ID:ceM6XUKn
>>304 サンクス
無料で何かあるかと思ってた俺哀れorz
PHPって実行時にコンパイルするけど、
あらかじめコンパイルしておけば実行するとき早くね?wwwww
何秒くらい?
307 :
nobodyさん :2007/05/16(水) 02:49:27 ID:ceM6XUKn
>>306 いや、そっちのほうが早いかなって思っただけ
>>303 端的に言えば異なるパラメータを用いて複数回実行するようなSQL文で使うとパフォーマンスがあがるってところかな。(キャッシュが働く
あとはパラメータの自動クォートでユーザー入力からのSQLインジェクション対策とか。
具体的にはID指定して何度もSELECTする様なのとか、ユーザー入力を条件に使うSELECTとか、INSERT全般とか。
>>305 コンパイラによる。おれデメリットの方がイヤだから使ってないけど
>>308 ありがとうございます
アドバイスを読んでると、かなりありがたい機能ですね
じゃ、もうprepareステートメントを使うやり方を徹底しても問題ないですかね。
普通のやり方のほうがかえって好都合ってのはないですよね?
そんなに使いたきゃ使えよ
>>310 使わなくてもいいとこでも使うと無駄にステートメントを保持することになる、かな…。
$calc = 1.23456789 * 9.87654321; for ($i = 1; $i <= 100; $i++) { echo $calc; } こうやった場合って、100回計算が実行されるのか、 すでに計算が終わったものを100回出力しているのか、 どちらなのでしょうか?
ほへ?
315 :
313 :2007/05/16(水) 04:19:56 ID:9TTx9/gy
すみません。age忘れました。
百回、変数に入った値が出力されるだけ
php4とphp5のクラスの参照渡しをあいまいに頭にいれてるからこんな質問したくなったんだろ
319 :
313 :2007/05/16(水) 04:27:47 ID:9TTx9/gy
>>314 >>316 すみません。日本語がおかしかったです・・・
>>317 どうもエスパーな質問にお答えいただきありがとうございます。
ということは100回計算してベンチをとるといったことをするには、
別の書き方をしないとならないわけですね。
>>319 forの中で計算させるだけじゃ?
つかリンク先読めよ。まずそこから必要だ。
大丈夫か?変数に入ってる値は計算されたあとの値だぞ
322 :
313 :2007/05/16(水) 07:12:33 ID:9TTx9/gy
>>320-321 レスありがとうございます。
>大丈夫か?変数に入ってる値は計算されたあとの値だぞ
常識といわれるかもしれませんが、
こういうことは今まであまり意識したことがなかったので、
基礎プログラム力に欠けてるのかもしれません。
サンプルいじりながら勉強したのがまずかったかなぁorz
いろいろ基礎から勉強しなおしたいと思います。
>>285 これ嘘だよね?
$result = mysql_query('select * from table');
$result1 = $result;
ってやってもid受け渡しされるだけでしょ
こんなので丸々コピーされてたらえらいことになる
※ここは初心者の憩いの場所です ※たまには質問者も回答者になりたいんです ※長い目で見てやってください ^ o^
326 :
nobodyさん :2007/05/16(水) 08:53:56 ID:ygtreCsO
if((!関数名)) { 〜処理内容〜 } のように、関数名に!をつけてfalseを得たいのですが この書き方が通用しない関数はありますか?
>>326 無いんじゃない?
>>322 誰だって初めは分からんよ。
プログラム力がある人って何だ。生まれたときからプログラムの仕組みについて把握してる人のことかよ。
皆本やらWebサイトで地道に学んできたんだよ。
ぐちぐち言ってないでいいからリンク先のPHPマニュアルでいいから読めよ。んで理解するよう努力しろ。
意味不明な言い訳してそれすら避けてる奴こそ軽蔑に値するわ。
javaの参考書5冊ぐらいまとめ買いして最初の一本の3ページであきて
Cの入門書かって1ページであきて
そんなおれだけどPHPの公式マニュアルの関数一覧以外のページは一通り通した。
おれにできたことは
>>322 にもできるよ
329 :
nobodyさん :2007/05/16(水) 10:31:07 ID:s+XLyY4I
スクリプト中で 自分自身のURLを取得するにはどうすればいいですか?
>>329 print_r($_SERVER);をして探してごらん。
$_SERVER["REQUEST_URI"]
>>330-331 ありがとうございます
情報がかなり細切れにされていますが
絶対URLは、これらの値を組み合わせて作るしかないですか?
あとhttpかhttpsかの情報が入ってないようですが
どうすれば分かるのでしょうか
組み合わせで作ります、プロトコルも_SERVERに入ってます あとID消さないように
334 :
nobodyさん :2007/05/16(水) 11:22:37 ID:s+XLyY4I
>>333 SERVER_PROTOCOLというのがありました
ありがとうございました
335 :
nobodyさん :2007/05/16(水) 11:22:39 ID:wGr5bjeW
今ホームページを作成しているんですが、 完全に行き詰まってしまったので書き込みさせていただきます フォームに入力した項目をメールとFAXで受信したいのですが メールでの受信までは確認できたのですが FAXでの受信方法が今ひとつわかりません 検索したのですが何やらソフトが必要みたく それもいっぱいあってどれを使ったらできるのかが わかりません。 どなたか分かるかたいらっしゃるでしょうか?? ちなにみOSはXPです。
336 :
nobodyさん :2007/05/16(水) 12:12:14 ID:wGr5bjeW
今ホームページを作成しているんですが、 完全に行き詰まってしまったので書き込みさせていただきます フォームに入力した項目をメールとFAXで受信したいのですが メールでの受信までは確認できたのですが FAXでの受信方法が今ひとつわかりません 検索したのですが何やらソフトが必要みたく それもいっぱいあってどれを使ったらできるのかが わかりません。 どなたか分かるかたいらっしゃるでしょうか??
なんで2回いったん?
>>337 マルチだからちょっと文章を変えてみたんじゃね
FAXの受信なんてモデム経由でG3FAX形式の奴を受け取るだけだろ。 一体PHPとなんの関係があるのか問い質したい。
>>336 いっぱいあるのなら、どれでも良いじゃないか
フリーのやつだってあるんだから、試してみろ
GUIで文章を設定するようなやつは除外だぞ
>>333 嘘教えるなってば。SERVER_PROTOCOLなんかhttps/http判別と無関係。
343 :
nobodyさん :2007/05/16(水) 15:25:20 ID:qm+GGeYH
>>344 ふーん。じゃあ$_SEVERから「プロトコル」抽出してごらん。
>>346 マニュアルも糞もないだろ。httpsは結局後付のport番号で判定するしかない。
_SERVER変数にわたる「プロトコール」は、HTTP over SSLでしかない。つまりはHTTPであって
httpsではないんだよ。わかるか?
>>347 > 'HTTPS'
> スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定されます。
>
> ISAPI を IIS で使用している場合は、HTTPS プロトコルを通さないでリクエストが行われたときの値は off となることに注意しましょう。
便乗質問する奴ってろくでもない初心者ばっかだな。
結局言いたい放題言っただけだったな。 これだからマニュアルは読んどかないと。
いやいやマニュアルは読むのがあたりまえです^^;
352 :
nobodyさん :2007/05/16(水) 20:41:26 ID:xTzSxSz1
「\nが入っていたら取り除く」という関数を作りたいんだが、 strstrとかで検索してやるほかになんかありますか?
353 :
352 :2007/05/16(水) 20:42:48 ID:xTzSxSz1
ごめん、「文末に」\nが入っていたら取り除く、関数です。
rtrim() とか [ep]reg_replace() とか
chopでいいじゃん
356 :
352 :2007/05/16(水) 20:59:27 ID:xTzSxSz1
>>354 rtrimやchopだとspaceも消えるので、そうしないためには
正規表現系で処理するしかない?
$と¥nつかったパターンで置換
358 :
352 :2007/05/16(水) 21:06:25 ID:xTzSxSz1
/\\n$/ これでおk?
動くか動かないか試してから質問してるんだろうな
360 :
352 :2007/05/16(水) 21:16:13 ID:xTzSxSz1
>>359 ごめん結局rtrimでいいような設計に作り直したので質問終了で。
rtrim($str, "\n");
362 :
352 :2007/05/16(水) 21:33:13 ID:xTzSxSz1
363 :
nobodyさん :2007/05/16(水) 21:55:32 ID:c3gVMJYw
PHPでペッパーランチを追い込むにはどうしたらいいですか?
>>363 大阪の店長逮捕されて大変そうだからそっとしてやれ。
被害者への配慮が最優先だろが ペッパーランチは全店臨時休業するべき
366 :
nobodyさん :2007/05/16(水) 22:16:15 ID:QKxTyLUD
すみません、質問させてください。 winXP apache2 php5で作業してます。 以下のスクリプトをshowList($cid)に適当な引数をつけて実行してるんですが、 DBに登録してあるデータが print_r($ctgAry)."<br><br>"; print "<br><br>".$ctgAry[0]; ともに帰ってきません。 $ctgAry は対応データ数分の要素を持つ連想配列には なっているんですが、値が格納されてません。 なぜでしょう? どなたかお願いします。 <?php class Category{ private $_cid; private $_cname; private $_img; public function getCid(){return $this->_cid;} public function getCname(){return $this->_cname;} public function getImg(){return $this->_img;} public function setCid($cid){$_cid = $cid;} public function setCname($cname){$_cname = $cname;} public function setImg($img){$_img = $img;} //$cidをparentにもつ(子)カテゴリの一覧を表示 public static function showList($cid){ $ctgAry = array(); $db = new mysqli("localhost","root","pass","php5"); $rs = $db->query("select * from src_category where parent=".$cid); while(($row = $rs->fetch_array(MYSQLI_ASSOC)) != FALSE){ $ctgObj = new Category; $ctgObj -> setCid($row['cid']); $ctgObj -> setCname($row['cname']); $ctgObj -> setImg($row['img']); $ctgAry[] = $ctgObj; } $db->close; print_r($ctgAry)."<br><br>";//@ print "<br><br>".$ctgAry[0];//A } }
ささいなことだけど >対応データ数分 日本語おかしいよ
>>366 $this抜け?
public function setCid($cid){$_cid = $cid;}
public function setCname($cname){$_cname = $cname;}
public function setImg($img){$_img = $img;}
>>366 非常に読みにくい。
showListメソッドの返り値が○○であることを想定しているのですが
××が返ってきます。
$cfgAry配列にキーはセットされていますが値が入っていません。
原因が分からないので教えてください。
でおk。30点。
370 :
nobodyさん :2007/05/16(水) 22:39:25 ID:AwoOmWos
申し訳ありません。質問させてください。 記入項目のたくさんある掲示板スクリプトはないでしょうか? 普通は名前、メアド、URL、本文程度ですが、この項目が5つとか6つとか 自由に増やしたりできるようなスクリプトです。 探すと以外になくて困り果てています。どうかお願い致します。
372 :
366 :2007/05/16(水) 22:42:49 ID:QKxTyLUD
わかりにくくてすみません 現在 print_r($ctgAry)."<br><br>";//@ の実行結果は以下が返ってきています Array ( [0] => Category Object ( [_cid:private] => [_cname:private] => [_parent:private] => [_img:private] => ) [1] => Category Object ( [_cid:private] => [_cname:private] => [_parent:private] => [_img:private] => ) ) 自分としては、以下のかたちになると思っていたので、なぜ失敗してるのか知りたいのです Array ( [0] => Category Object ( [_cid:private] =>200 [_cname:private] =>つり [_parent:private] =>100 [_img:private] =>tsuri.jpg ) [1] => Category Object ( [_cid:private] =>300 [_cname:private] =>読書 [_parent:private] =>100 [_img:private] =>book.jpg ) ) どなたかよろしくお願いします
>>371 ありがとうございます。
そちらで聞いてみます><
>>366 public function setCid($cid){$_cid = $cid;}
$_cid じゃなくて $this->_cid じゃないの
>>372 せっかく答えてくれた368はスルーか。カワイソス・・・
376 :
nobodyさん :2007/05/16(水) 23:28:19 ID:M7GC2N8v
はじめまして、質問です。 preg_matchを使って文字列の半角英数記号をチェックしています。 if (preg_match("/^[a-zA-Z0-9\s\(\)\_\-\+\!\?\.\,]+$/", $str)) { echo ("Error"); } 基本的に問題無く動いているのですが、何故か文字列に”,”(カンマ)が含まれると エラーとなりません。 ググってもそれっぽいのが見付かりません・・・orz どうかよろしくお願いします。
カンマはエスケープいらんと違う?
378 :
366 :2007/05/16(水) 23:36:31 ID:QKxTyLUD
>>368 >>374-375 すみません、
>>368 さんのアドバイスが良くわからなくて考えてました
できました! って言っても
>>374 さんの言うとおりにしただけですけど…
とにかく助かりました
ちょっと変数の参照方法と有効範囲を理解してないみたいなんで勉強しなおします
ありがとうございました
>>378 変数のスコープとかより
「オブジェクト指向」「クラス」「プロパティ」「メソッド」
について勉強したほうがいいと思うよ。
それら知らないでクラス使っても意味ないし。
380 :
376 :2007/05/16(水) 23:48:24 ID:M7GC2N8v
>>377 さっそくの返事ありがとうございます。
カンマの前のエスケープを外して試してみましたが、
結果は変わりませんでした。
>>376 試してみた
$str = "sdavdszfba,bgdsdc";
if (preg_match("/^[a-zA-Z0-9\s\(\)\_\-\+\!\?\.\,]+$/", $str)) {
echo ("Error");
}
出力「Error」
382 :
366 :2007/05/16(水) 23:55:06 ID:QKxTyLUD
>>379 ですよねー
でも、勉強して本読んでもぴんと来ないんで、とりあえず作ってみるかという状況です
右往左往しながら身に着けたいと思います
ありがとうございました
383 :
376 :2007/05/17(木) 00:28:06 ID:CgLLPlaf
>>381 試して頂き、ありがとうございます。
自分でもいろいろ調べてみたところ、
どうやらカンマを?と変換していることが原因でした。
(表示すると、カンマで表示されるので気が付きませんでした。)
そこでこの”?”をpreg_matchで引っ掛ける方法を探しましたが
見付かりませんでした。
どなたかよろしくお願いします。
いやいや、とりあえず?に変換しない方法を考えろよw
BBS_UNICODE=change のせいでマルチバイト疑問符になっただけ?
でも、
>>384 。
386 :
376 :2007/05/17(木) 00:42:05 ID:CgLLPlaf
>>384-385 アドバイスありがとうございます。
383では?と変換なっていますが、カンマを半角の”&#44;”に変換していました。
384さんの言う通り、変換せず、preg_matchを行うことで解決しました。
皆さん、ありがとうございました!!
皆さんって回答してない俺もふくまれる?
あたりまえだろ。お前が一番頼りになる
389 :
nobodyさん :2007/05/17(木) 02:43:19 ID:fM6fqwb/
くだらない質問ですみません。 以下のIF文を簡潔に書きたいのですが、どうすればよいでしょうか・・・。 if($id !=3 and $id !=4 and $id != 7 and $id !=10 ){ 略 } こんな感じでうま〜くまとめたいなと思っているのですが当然エラーになってしまいます。 if($id !=(3,4,7,10)){ } ググろうにもどんな言葉で検索すればよいのか分からず・・・。 よろしくお願いします。
$array = array(3,4,7,10); if(in_array($id, $os)) ){ }
391 :
390 :2007/05/17(木) 03:19:29 ID:???
>>389 あくまでもヒントだ。
あとは自分で改造しろ
392 :
389 :2007/05/17(木) 03:36:48 ID:fM6fqwb/
なるほど。 in_arrayという関数があるのだね。 どうもありがとー!^^
switch ($id) { case 3: case 4: case 7: case 10: break; default: ... } 簡潔というか 最初の書き方が一番素直で 何をしたいのかわかりやすい (読みやすい)と思うけども
394 :
389 :2007/05/17(木) 03:44:31 ID:fM6fqwb/
>393さん どうもありがとう。 これでもよかったのですが、今後アクションをしたくない$idが増えることもあってカンタンに数字を追加できるような仕組みにしたいなと思っていたのです。 ちょうど今、in_array使って解決しました!
395 :
nobodyさん :2007/05/17(木) 06:57:02 ID:kwGc8Yxo
コードに問題があって、たとえばforで無限ループしたりでCPU使用率が100%担った場合があります そういうケースを防ぐためのphp.iniかapacheで設定ってありませんか? 環境はWinXP、PHP5.2..2、Apache2.0.59です。
>>395 基本的にPHPには無限ループ対策としてデフォルトで30秒のタイムアウトが設定されていたはず
任意で設定したいならプログラム内で
set_time_limit(秒数);
で設定できる
※ただしexecなどでシステムのセッション増やして負荷かける場合は別
397 :
nobodyさん :2007/05/17(木) 09:57:36 ID:tXPJ1ejE
phpには便利な配列関数が用意されているのですが 多次元配列で使うには、ほとんど一度一次元に落とし込んでからしか使えないのでしょうか? ※女性のポイントの合計は? array_sum($a) ... $a[0][women][piont] 二次元以上の特定キーの合計を求めたり…
398 :
nobodyさん :2007/05/17(木) 09:58:32 ID:kwGc8Yxo
ありがとうございます。 レンタルサーバでCGIなどでCPUに一秒以上負荷かけると処理を停止するようなことをどこかで見たので 1秒に設定しました
403 :
nobodyさん :2007/05/17(木) 16:11:58 ID:M9OeXCs3
質問です 配列$sampleAry に対して print_r($sampleAry); を実行したら以下の結果を得ました Array ( [0] => Category Object ( [_cid:private] => 120 [_cname:private] => 読書 [_parent:private] => [_img:private] => c120.gif ) [1] => Category Object ( [_cid:private] => 110 [_cname:private] => つり [_parent:private] => [_img:private] => c110.gif ) ) この配列から 読書 という結果を得るには、どうしたらいいんでしょう? print_r($sampleAry[0]["cname"]; としてもエラーが出るのですが…
配列じゃなくね?wwwwwwwww
>>403 オブジェクトのprivate変数は直接アクセスできないんじゃないかな
>>403 print_r($sampleAry[0]->cname);
とかやってみて
多分
Fatal error: Cannot access private property 〜
オブジェクトに値を取得するメソッドが用意されてるはずだよ
web上の管理画面からcronの時間設定をかえれるプログラムを作成
したいのですがどうしたらいいのでしょうか?
>>403 echo $sampleAry["0"]->_cname; かな?
>>407 cronのファイルを読んで変えて書き込めばいいんじゃん?
>>408 /var/spool/cron
のファイルを書き換えるんですね
ありがとう
410 :
nobodyさん :2007/05/17(木) 17:55:45 ID:LNZtxJHm
ディレクトリ名を取得したいのですが、 何か方法はありませんか? 開いているファイルのディレクトリ名を取得しようと dirname("./")を試しましたがダメでした。 インクルードファイルで取得したいので、 個別にファイル名を入力できません。 ファイル名を別に取得し、入力すれば良いかもしれませんが、 何かもっとスマートなやり方があるような気もします。 ご存知の方がいましたら、ご教授お願いします。
dirname(__FILE__)は?
>>410 ワーキングディレクトリの取得なら
getcwd( );
413 :
nobodyさん :2007/05/17(木) 18:32:08 ID:LNZtxJHm
>>412 >>411 すみません、記述不足でした。
カレントディレクトリ名とは別に、
一階層上のディレクトリ名も取得できるようにしたいのですが、
それも含めて方法はありませんか?
>>413 dirname(getcwd());
ということではないのかな
415 :
403 :2007/05/17(木) 18:42:59 ID:M9OeXCs3
>>404-407 ありがとうございました
[0] => Category Object ( [_cid:private] => 120 [_cname:private] => 読書 [_parent:private] => [_img:private] => c120.gif )
は配列じゃないんですね オブジェクトになるんですね。理解できてない点がわかって良かったです。
あと、
>>406-407 さんのやり方で変数にアクセスする方法もわかりました。
とても助かりました。ありがとう!
incされたhoge.phpファイルのディレクトリをhoge.phpだけで知りたいってこと? だとしたら無理じゃないか?includeは文字列とってきてevalしてるだけだと思うし chdir("mydir"); include(."hoge.php"); //hoge.phpでdirname(getcwd()); chdir("../");
417 :
nobodyさん :2007/05/17(木) 19:18:57 ID:LNZtxJHm
>>416 getcwd( );がまったく初見でしたので、
これについてもう少し勉強してから来ます。
ググッた感じでは何とかなりそうです。
ありがとうございました。
418 :
nobodyさん :2007/05/17(木) 19:52:40 ID:LNZtxJHm
なぜファイルパスとURLをごっちゃにしてるのか不明
>>418 getcwd()だと
/DocumentRoot/test
が得られる
か、どうかは別だろ。script実行時のカレントディレクトリだから。
422 :
nobodyさん :2007/05/17(木) 20:40:48 ID:Yw1DLo3E
PHP開発についての質問なんですが、 PHPエディタでプロジェクトでの開発って、秀丸などのような開発に比べて どんなメリットがあるのでしょうか?
>>422 適当なプロジェクトで使って見れば?
小規模のスクリプトはPHPエディタ使ってるけど、
シンプルでそこそこ使いやすいよ。
425 :
nobodyさん :2007/05/17(木) 22:23:58 ID:Yw1DLo3E
426 :
nobodyさん :2007/05/18(金) 03:02:03 ID:ZEXAtg4A
PHPの変数の大きさについての質問です。 ある変数が何バイトか調べたい場合には何を使えばよいのでしょうか? マニュアルによるとPHPでsizeof()ってcount()のエイリアスと書かれていたので。。。
>>426 「変数の大きさ」とは?
文字列の長さなら、strlenでバイト数を出せるけど。
うああ、そうでした、半角英数字ならちょうど一文字で1バイトでしたね。。。 解決しました。ありがとうございました
>>428 って馬鹿だな
strlenでいいんだよハゲ
それとID消すな
>>430 426 = 428 = 429ですが
IDの付け方がわからないです…
ID出したら負け
ID出さない奴に回答したら負けかなと思ってる
>>431 メール欄の入力を消せ。
なんで426でできてんのに分からなくなるんだ。
もうすこし泳がしてから言えばよかったのにww つまんね
>>431 >IDの付け方がわからないです…
phpの前に自己能力あげろよ
437 :
nobodyさん :2007/05/18(金) 13:12:16 ID:+e1CHg4F
フレームワークってライブラリが違うだけ?
え?
>>437 に質問する
(2ちゃんねるの)板ってレスの内容が違うだけ?
なにがおきたの?
441 :
nobodyさん :2007/05/18(金) 14:06:16 ID:eSvvOlXE
htmlspecialcharsで変換した特殊文字(”など)を 表示するページでは元に戻す方法ってありませんかね?
>>441 htmlspecialcharsで変換した文字を元に戻したい文字を指定して置換できる関数を使う
ほかにもっと簡単なやりかたが文字列関数にあるけど関数リファレンス読めばここで質問しないはずなんだけどなぁ
htmlspecialchars_decodeですね。ありがとうございました。
444 :
nobodyさん :2007/05/18(金) 16:07:43 ID:oLfZwhqN
メール鯖に接続して、どこから対象のアドレスにメールするとかできたっけ?
445 :
444 :2007/05/18(金) 16:21:39 ID:oLfZwhqN
PHP.iniで外部鯖に設定してmb_send_mailでできるみたいですね。 ですが、送信しようとしたらエラーが発生しました・・・ Failed to connect to mailserver at "sd006.just-size.net" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() PHP.iniの変更箇所は、SMTP、smtp_port、sendmail_fromだけで良いのでしょうか?
その外部のSMTPに蹴られてんじゃないの
447 :
nobodyさん :2007/05/18(金) 16:51:38 ID:oLfZwhqN
>>446 かもしれないです。
smtp.mail.yahoo.co.jpで試してみてもダメでした。
アカウントとパスワードを設定する項目がないのですが、どういう風に設定すれば良いのでしょうか?
>>447 けられて当然。
メールサーバぐらい自鯖で構築しましょうよ
449 :
nobodyさん :2007/05/18(金) 17:08:39 ID:GewnQXcH
アカウントもパスワードも設定せずにスクリプト書いた時点で気づこうか だが、何事も出来ることを確認してからスレに書き込む姿勢は良いと思う
450 :
nobodyさん :2007/05/18(金) 17:17:55 ID:oLfZwhqN
SMTPの前にPOP3で認証させなくてはいけないみたいです。 imap_openでメール鯖にアクセスしようと思ったのですが、 Couldn't open stream {pop.mail.yahoo.co.jp:25/pop3}INBOX とエラーが返ってきます。 SSL認証とかそういうのが必要なのでしょうか?
> pop.mail.yahoo.co.jp:25/pop3 急いであれこれできるようになろうとせずに、もっと少しずつ覚えていけばいいと思うよ。
pop3のportは25じゃないんじゃないか プロバイダのSMTPを使おうとあれこれ悩むより 自前でSMTP立てた方がいいと思う
>>450 POP before SMTP PHPあたりでググって学習してから質問しなおしたほうがいいと思う。
454 :
nobodyさん :2007/05/18(金) 17:32:02 ID:oLfZwhqN
すまん、110だ、間違えたorz
455 :
nobodyさん :2007/05/18(金) 17:38:15 ID:oLfZwhqN
自メール鯖推奨されてるけど、 IPが固定じゃないから外部とメールのやり取りができない・・・
457 :
nobodyさん :2007/05/18(金) 18:09:02 ID:oLfZwhqN
>>456 それでもlocal外での送受信はできませんでした
>>457 許可してるDDNSなら出来ると思うんだけど…
原因は?
>>457 つ[チェックリスト]
・DDNSが対応してない => 対応したところに移れ
・ルーターのポート設定がわからん => とりあえずDMZで設定してテスト
・メル鯖の設定がわからん => メール関連のスレヘ…
・メール飛ばしてもエラー番号がついて戻ってくる => おそらくメル鯖設定が悪い番号ググれ
以上
460 :
nobodyさん :2007/05/18(金) 18:38:38 ID:oLfZwhqN
>>458-459 前に聞いたときはプロパイダの問題といわれたんだが・・・
とりあえずもう一度調べてきます
有難う御座いました
つOutbound Port25 Blocking
uploaderを作ってるんですが、特定のサーバのみうまく動きません。 Apache/2.0.52 PHP 5.1.6 なぜか input type="file" のPOSTデータだけが渡らないのです。他のPOSTデータは渡ります。 他のいくつかのサーバで試したところ、問題なく動いてるのでApacheの 設定だと思うのですが、どなたかお知恵貸してください。
464 :
441 :2007/05/18(金) 19:36:44 ID:eSvvOlXE
昼に相談させていただいた
>>441 ですが、自分の利用しているサーバは
PHP4なので、htmlspecialchars_decodeが使えない事が分かりました・・。
PHP4のサーバで使えて、htmlspecialcharsで変換する前の状態に戻す
方法はありませんでしょうか?
>>464 htmlspecialcharsで変換する前のデータを保存しとけばよくね?
>>463 それが・・・・
Array
(
[name] => test.gif
[type] =>
[tmp_name] =>
[error] => 7
[size] => 0
)
なんですわ。。。error 7って・・・
>>466 おお、通りすがりだがあんさんは良いお人や
エラー7について見ればいいじゃん
$_FILES['userfile']['error'] の「7」は5.1.0からかぁ。。。 ディスクが一杯だったよ。 管理者ぬっころしたくなってきた。 ログたまりまくりんぐ。 パーティーションの切り方が悪すぎ。
472 :
nobodyさん :2007/05/18(金) 20:21:25 ID:d/lAW2v7
DBで、enum型を使って、boolのフィールドを作る時、 その値リストはどうしてますか? 'FALSE'と'TRUE'だと、 デフォルトでそういう定数がありそうなので ちょっと紛らわしいような気がします。
新しい組み込み関数についていけない
class hoge { static $moge = 'boke'; static $fuga = self::$moge; } こうするとエラーになるんだけど staticなプロパティーに staticなプロパティーを代入することって出来ないの?
その設計はおかしいW
なんでエラーになるかを教えて
文法が間違ってるからじゃね
479 :
nobodyさん :2007/05/18(金) 22:28:18 ID:ySJdsQiL
>>475 間違ってることはわかる
でもどう間違ってるか具体的に説明できん俺・・・・・
>>475 プロパティの初期化には定数値しか使えない
クラス定義中に自クラスのメンバを参照できるわけない。 staticか非staticかに関わらず、メンバの初期値は定数のみ。 他の言語でも大体同じ。 PHPでデフォルト値を共通化したいなら、オブジェクト定数とか使う。 じゃだめなのか?
↑根拠なしで書くんじゃないよ
485 :
480 :2007/05/18(金) 22:57:55 ID:???
>>482 なるほど。これか。
>デフォルト値は定数でなければなりません。(たとえば) 変数、クラスのメンバあるいは関数コールなどは使用できません。
勉強になった。さんきゅ。
根拠って何だ?マニュアルのことか? そんなのはっきりムリって書いてあんだろ。 もっと論理的な根拠を求めてんのかと思った。
このスレはマニュアル読めない人が他の人に読んでもらうスレですよ。
488 :
475 :2007/05/18(金) 23:18:31 ID:???
プロパティーの初期化は定数じゃないと駄目だったのか… dクス
489 :
nobodyさん :2007/05/19(土) 00:32:14 ID:/rdI7UAA
>>486 なぜ定数しか使えないかというと
メモリに確保されるタイミングによるんだよ。
メモリにない物は参照できないので代入できない・・・・
後は任せた
>>490
ロングパスw
493 :
nobodyさん :2007/05/19(土) 02:21:28 ID:5dZMG2UG
includeで、1MBもあるfunctionのファイル読み込んだら重くなる?
>>493 まずは自分の環境でやってみよう
お兄さんとのやくそくだよ!
何をそんなに詰め込んでるんだ
遠まわしに人柱をおねがいしますってことですね
497 :
nobodyさん :2007/05/19(土) 06:29:26 ID:MWMv22M6
すいません、質問させてください。 当方、夢もなにもない25歳です。 こんな私ですがいままで徹夜してマニュアル読んでコード書いてPHPを学習してました。 PHPは夢を作る道具になれますか?
むしろPHPは夢だけは簡単に作れる道具です。 精進してください。
499 :
nobodyさん :2007/05/19(土) 07:35:15 ID:MWMv22M6
あなたのレスがみれてよかったです。 ありがとうございます。
500 :
nobodyさん :2007/05/19(土) 07:48:29 ID:zLRg1KJ9
sqlからwhere句を抜き出そうとしています 正規表現でWHEREを目印にして抜き出すとすると、 その前にSET HOGE='WHERE POGA' 等があった時にもヒットしてしまいます。 いわば「地の文」のWHEREだけがヒットするようにしたいのですが いい方法があれば教えてください
ソースはなんも書いてないの?
502 :
nobodyさん :2007/05/19(土) 08:02:51 ID:G8ONhPg2
1〜18までの番号を出力して、重複値は表示させない。 と言うのを作っています。ソースは以下の通りです。 $array=array(); for($i=0;$i<5;$i++){ $number = rand(1,18); if(array_search("$number",$array)){ }else{ $array[] = $number; echo $number."<br />"; } } 一度表示した数字を配列に入れて同じ数字が出たら出力しない と言ったイメージなのですが、どうも上手く行きません。 ソースの指摘・アドバイスをしていただけないでしょうか?
>>502 なんかifの書き方が気に入らない。あと3分まってろ
//乱数生成 for ($i=0; $i<5; $i++) { $rand[] = rand(1, 3) ; } //出力 $ary = array(); foreach($rand as $v) { if (!in_array($v, $ary)) { echo "<p>$v</p>"; } else { echo "重複<br />"; } $ary[] = $v; } あとはじぶんで改造しろ
505 :
502 :2007/05/19(土) 08:23:24 ID:???
>>504 ありがとうございます。つまり、乱数生成と出力を分けた方が良いって
事ですね。
ちょっとやってみます。ありがとうございました。
処理がわかりやすいようにわけてみたが まあ書き方はいくらでもある。 ちなみにarray_searchを使うのはまちがえ (PHP 4 >= 4.0.5, PHP 5) array_search -- 指定した値を配列で検索し、見つかった場合に対応するキーを返す
507 :
nobodyさん :2007/05/19(土) 10:04:49 ID:vtcxjqU8
センスのある質問と回答が多いな
>>500 質問がPHPと関係ない
sqlの構文解析は以外と面倒だぞ
>>500 でも引用符とコメントだけ排除すればいいだけなら、ちょっとした字句解析でできそうではある。
whereの場所が特定できたら、構文は無視してorder byみたいな別のキーワードのとこまでを抜き出しちゃえばいいのかな。
これくらいの処理なら、PHPで書いてもそんなに重くはならないはず。
>>505 suffleしてarray_shiftかarray_pop使えばいいんでないの
なんで乱数つくってシャッフルする必要があるのかと
乱数作るのにshuffleするんだっつの
>>502 配列={1,2,3...15}
配列しゃっふる
配列の5まで表示
それだと応用がきかなくね?
そうか?むしろ容易に拡張や仕様変更ができる 扱いやすい手法に見えるけど。
たとえば1から999999まで数字があった場合とかどうすんの。。。
$array = range(1, 999999);
shuffle($array);
>>517 俺の環境だと
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 16 bytes) in C:\home\php\test.php on line 2
メモリリミットあげれば大丈夫なのかな
C:\home\php\test.php on line 2 ↑これは一応隠すべきだったね すでにダミーのにしてあったらスマソ
521 :
nobodyさん :2007/05/19(土) 12:50:53 ID:a8u10R/4
なぜ隠す?
チャットを作っているのですが、FLASHでチャットを作るのとPHPでチャットを作るのはどちらが付加が低いのでしょうか?
linuxぽくしてるのがばれると恥ずかしいのか?w
>>520 べつにばれてもいいだろ。
おれはC:\www\homeにしてるけどな
何が問題で何のために隠すのか分かってないゆとりがまた一人・・・
/home/phpのどこがlinuxぽいのか
ここにパスを晒されても平気だと考える人と パスを含むエラーを表示させるのが問題だと考える人の2パターンだと思うけど ここは前者だな
C:\home\php\test.phpなんてありきたりなパスなら晒しても無問題じゃない?
$hoge[5] = 100; $hoge[8] = 10; $hoge[10] = 50 という配列($hoge[0]などはnull)を $hoge[0] = 100; $hoge[1] = 10; $hoge[2] = 50 に変える方法きぼんう
IDださないやつはネタ
厳しいなw
IDださないやつにも回答してくれる方もいるが、その逆もあるからね
ID出したら魂が抜き取られる
質問がないとひまだ・・・
俺が質問してやろう このスレで質問に答えてる人たちはどんな仕事してるんですか?
ネットショップの雑用です・・・
フォームに入力したデータをデータベースに格納して、たまったデータをグラフに書き出すスクリプトって 簡単に書けますか? グラフのライブラリって使い易い物ありますか?
ID出さない奴は自演して釣ってるだけだよ。 誰かが変な回答してるとついつい訂正したくなるでしょ。
542 :
nobodyさん :2007/05/19(土) 17:05:13 ID:MWMv22M6
10行チャットを作りたいんですが、ログファイルtyatto.logの中に最新10行のログだけ記録するには 以下のコードの前に事前に最新9行分のデータを変数に格納して、それに最新の1行を連結するのが妥当でしょうか? $string = "テスト\n"; $fopen = fopen("tyatto.log","a"); fwrite($fopen, $string); fclose($fopen);
>>540 ちゃんとID出してね。
いろいろ方法はあるし、何を使うかによって難易度も
様々。
ライブラリは検索すればスグに分かるはずだよ。
ID出してないからヒントまで。
>>538 元プログラマだぜ
言語だけで言えばメジャーなものは一通りやったよ。
最近は外部の会社に常駐して基盤系(DBのバックアップ設計とか)
やってるよ
今C#とIronPhthonが気になる
>>542 テキストの中身は最新のものが先頭にあったほうがいいの?
それとも一番下?
546 :
nobodyさん :2007/05/19(土) 17:11:30 ID:MWMv22M6
>>545 最新のログさえ残れば順番はどちらでも気にしません。
>>544 >>542 で書いたことをやってみたのですがなんか二回ファイルを開くのが無駄な気がしてコード省きました。すいません。
547 :
540 :2007/05/19(土) 17:17:34 ID:A36xsHpo
すみません、ちゃんと
>>1 読んでませんでした
>>543 検索するとWindows上で動かす人向けのサイトばっかりでイヤになり質問しました
もしよければもう少しヒントいただけると助かります レン鯖で、Flashじゃないものが良いです
配列に [0]=>"バナナ" [1]=>"みかん" [2]=>"りんご" と言うように"が入っている場合、削除する方法はないでしょうか? 出来れば一番簡単(関数処理など)であればと思います。
何度も考えたのですがこれしか思いつきませんでしたので載せます。
$file = file($filename);
$cnt = count($file);
if ($cnt > $maxlog) {
$n = $cnt - $maxlog -1;
}
for ($i=$n; $i<$cnt; $i++) {
$string .= $file[$i];
}
$string .= $_POST['input']. "\n";
//この下は
>>542 のコードです
$string = "テスト\n";
$fopen = fopen("tyatto.log","a");
fwrite($fopen, $string);
fclose($fopen);
552 :
nobodyさん :2007/05/19(土) 17:27:42 ID:A36xsHpo
>>550 wamppがあるのに、つくれない人なんていないと思うんですけど・・・・
553 :
551 :2007/05/19(土) 17:28:39 ID:MWMv22M6
つづき どんなささいなことでもかまいませんので修正箇所・ご指摘などご教授お願いいたします。
554 :
552 :2007/05/19(土) 17:30:01 ID:A36xsHpo
× wampp ○ xampp
556 :
555 :2007/05/19(土) 17:36:23 ID:???
やべ、間違えた 二行目は見なかった事にしてくれ
>>551 確かにXSSは考えたほうがいいものだけど
そのロジックに特に問題があるようには思えんぞ?
>>551 最後の $string = "テスト\n"; はまあ消し忘れだと思うが、
大筋そんな感じでいいんじゃないかね
559 :
nobodyさん :2007/05/19(土) 18:08:32 ID:MWMv22M6
>>556 さんのご紹介くださったサイトをみて30分は粘ったのですがわかりませんでした。
XSSについて
>>556 さんのご指摘のとおり、以後セキュリティに配慮したコードの書き方に気をつけます。
>>551 のコード中に不適切な行がございました。
>>558 さんに指摘していただくまで
気づきませんでした。大変失礼いたしました。
チャットを公で使う場合、犯罪予告なんか打たれたら証拠のログがなくなってしまうので
ログは貯めておいたよいのでしょうか。
みなさまアドバイス・ご教授ありがとうございます。
>>551 ファイルロックしておかないとログがトぶぞ。
>
>>551 のコード中に不適切な行がございました。
>>558 さんに指摘していただくまで
> 気づきませんでした。大変失礼いたしました。
釣りか真性だな
$_ENV["OS"]はphp5でなくなったのですか?
563 :
nobodyさん :2007/05/19(土) 21:28:59 ID:ZssAVHkG
FC6 + php5.1.6 + sqlite でサイト作ろうとしてますが -- Fatal error: Call to undefined function sqlite_open() -- となってしまいます。 phpinfo() にて「without-sqlite」となっていて、どうも動きません。 ターミナルソフトでは、sqlite3 test.db などと打つと、ちゃんとデータが作成できるのですが。 どうしたものでしょう。
>>563 PHPにsqliteが組み込まれていない。
yumでphp-slliteいれろ。
変数の中に表示するデータを次々溜め込んで最後に exit(変数); するのって効率悪いの?
効率悪い exitのそんな使い方始めてみた システム出力系はベンチしにくいけどベンチしてみれ
バッファリング関数じゃダメなん?
それで何のためにexit使ってんだ?
569 :
nobodyさん :2007/05/19(土) 23:14:38 ID:ZssAVHkG
>>564 ありがとう
yumのあと、php.iniに設定は必要ですか?
いろいろ参考にしながら、
extension=pdo.so
extension=pdo_sqlite.so
を追記したけど、phpinfoに変化はありません。
$str = <<< DOC_END ほげほげ(300KBぐらい) DOC_END; exit($str); 278ms $str = <<< DOC_END ほげほげ(300KBぐらい) DOC_END; echo $str; exit; 266ms echo <<< DOC_END ほげほげ(300KBぐらい) DOC_END; exit; 250ms exit("エラーメッセージ"); てのよく見るから 正常の時もexitでいいのかなあと思ったのよ そうは使わないのね サンクス 一番下にしとく
571 :
nobodyさん :2007/05/19(土) 23:41:21 ID:jN6au0ie
EOFとかEOMとDOC_ENDとか いっぱい種類あって何が何かわかんね・・・ どれも一緒と見ておk?
数えてみるといいよ、無限にあるから
>>570 まさか1回だけ実行して秒数比較してないよな?
575 :
nobodyさん :2007/05/20(日) 00:26:43 ID:s5N306jr
>>572 サンクス
変数みたいに任意につけられる名前なんですね
ヒアドキュメントって、終端ID行にインデント入れられないのが 違和感ありますよね。
インデント込みで終端IDつければ?
>>573 何か見落としてる?もうちょっとヒントください
>>574 ab -n 500 -c 10 アクセス先
ってやった。ApacheBenchってはじめて使ったから使い方違ってるかも
Time per request見ればいいんでしょ?間違って一個下見て書いちゃったけど
正しくは上から2780ms,2669ms,2507msだった
579 :
nobodyさん :2007/05/20(日) 01:04:27 ID:1niTHCJR
>>577 質問になるから自IDを晒す。
どういうことですか?
581 :
nobodyさん :2007/05/20(日) 02:09:07 ID:Lrd4mRuD
phpDocの説明を書こうと思うのですが 型名は大文字ではじめるのと小文字ではじめるの どっちがスタンダードですか? あと数値の型名は 整数が必要な部分はint それ以外はnumericでokですか?
大文字だろうと小文字だろうとそんなんどうでもよくね?
583 :
nobodyさん :2007/05/20(日) 02:27:59 ID:fULbDqPE
phpとhtmlが混じった文章がダサいってのは本当なのでしょうか?
普段Perl5.8でゴリゴリやっているんだすが、 正直PHPはどんな場面で便利なんですか? 両方やってる人いたら、こんなときPHPいいぜーみたいなの 教えてつかぁさい。XML周りは便利だとか、そういうのあります?
>>583 主観の問題なので何とも
>>584 Perlでできることは全てPHPでできるし全体的に作業量は20%くらい減る。
PHPを身に付ければPerlでプログラムやる理由が思いつかない。
あとXMLは関数で一発。
>>584 Perlよりもいろんなものが最初から用意されているところかな。
いろんな機能が最初からてんこ盛り。そこがいい。
つっても普段はPHP使ってないけどね。でもPHPもなんだかんだで慣れちゃった。
587 :
nobodyさん :2007/05/20(日) 02:44:27 ID:fULbDqPE
>>585 特に問題があるわけでもないのですね
ありがとうございます
>>584 Perlは今ある程度メジャーなJavaとかC#から比べて余りにも
異端だからなぁ。
やっぱりパッと見(ソース)はPHPの方がいいと思う。
この点だけとっても保守性考えるならPHPの方がいいかな?
LinuxにはPHPも標準で入るしね。
>>585 ,586ダンケ。
UTF8環境の処理はperlより楽ちんですか?
相当楽です
皆さんグラシアス!
>>580 何が言いたいかわかんないんでもういいっす
どうも
プログラムができないだけならまだしも日本語の読み取り能力もないとは終わってるな
594 :
nobodyさん :2007/05/20(日) 03:13:17 ID:fULbDqPE
>>592 が理解できるように機械語で書いてあげなかった方が悪い
俺は書けないけど
>>585 perlはスクリプトからDLLを作成できるが、PHPにはできない仕様となっている。
探せばperlにできてPHPにできないことなんてあるんだけど。
知ったかで答えるのはやめれ
それまではTABLEで 県 都市1 都市2 都市3 都市4 東京 秋葉原 新宿 中野 池袋 錦糸町 神奈川 横浜 川崎 横須賀 相模原 鎌倉 ・・・ みたいな感じに表示されてたのが A r r a y A r r a y ・・・ みたいなおちょくられたような表示になってしまいまして、 自分で何かを弄った記憶が殆どないので対処法も分からず難儀してます。 どこらへんが問題である可能性あるかアドバイスいただけると幸いです。
私がこたえようとしましたが・・・ID出さない人にも回答してくれる人を待ちましょう
キーボードを押下している間連打on、ボタンを離すと連打offになるような スクリプトはできないでしょうか? ヒントでもいいのでよろしくお願いします
なんでさんざん言われ続けているのに回答数を減らしたい行為をするのか逆に質問したい
> 逆に質問したい ID 出してください。(w
603 :
nobodyさん :2007/05/20(日) 09:05:16 ID:JKYLMH12
メールフォームで入力されたデータは、配列にいれ直して処理しますか? それともPOSTなりGETなりの形のまま処理しますか?
>>603 配列にいれてもいれなくてもどちらでもかまわない。好みで。
ユーザーからわたってきた入力に怪しいデータがないかチェックすること。
メールフォームでのデータの受け渡しにGETを使うのはおすすめできない。
605 :
599 :2007/05/20(日) 09:22:58 ID:NWkVlCfk
強制sageになってました よろしくお願いします
607 :
nobodyさん :2007/05/20(日) 10:43:18 ID:UE3BgSQE
>>580 インデント込みの終端IDというのが意味不明だからです。
インデントを含めたIDなんて作れないのはわかっているんだから 相手の足元すくうのはやめようよ
609 :
nobodyさん :2007/05/20(日) 11:02:50 ID:9n3EluZe
>>604 d
データチェックはzendの勧告を見てやってました いいのかな・・・zendで
610 :
nobodyさん :2007/05/20(日) 11:23:54 ID:dkLmebka
携帯サイトへログインするとき、専用ログインURLにIDがついてることがあるんですけど、 あれは単なるGETでしょうか?それともセッションIDってことでしょうか?
単なるGETのセッションIDです
>>602 やっぱり話の流れが読めてないアフォがいたか...。
あおりあいはよそいってくれ
Perlでdll作れるってはじめて知った。 Perlで出来るの?それともActivePerl?
どっちでもできる
何のためにつくんの?
何のためにつくんの? バカさらしあげ
まあperlでdllを作れるのはわかったが、それを理由にphpは学ぶ意味がないという結論にはならんわな。 元質問の話に戻るけど。
はやく質問してこい。暇なんだよ
回答者がIDにこだわってるのは何故ですか?
621 :
620 :2007/05/20(日) 16:42:58 ID:???
自己解決しました。
回答者は、質問者がIDを出さないと騙りが出て荒れると言う。 そして、それを示すために騙るのもまた回答者だから、皮肉なものだ。
回答者が誰に答えてるのかわからなくなるから IDを出すのは礼儀だと思ってる。 それで毎日質問してる俺はダメですかね
そもそも必死になってID隠す質問者の方がおかしい 何かidを知られると後ろめたい事が有るのか? それともテンプレすら読んでいないのか?
質問者としては同じ日に何度も質問してることをばらしたくないってのもあるよね。
>>617 分からないくせに煽りだけするクズは死んでろ
ひさしぶりに専ブラのあぼ〜んにかかった
回答する時にID出してるかとかいちいち見てないし どっちでもいいけどな俺は
ここに住み着いてるくだらんID出せ厨が、スレの10%ぐらいのレスを消費するから、 出したほうがいいよ。
どちらにせよID隠したままで質問しても回答率は下がるわけだ
なにこの流れ。
>>617 のあまりにもプログラムをなめてる質問にわろた
質問も回答も低レベルなスレなんだから せめてルールは守って紳士的にやろうぜ。
>>629 お前だってテンプレも読めない奴には「テンプレ読め」って思うだろ?
本当は回答者も全部ID出す設定がいいんだけどね。
じゃあやってからいえよ
2002年版のPHPの教本をオークションで落札しました。 その教本のどおりにやったのですがうまく動きません。 教本どおり打ったんですが間違えてますかね? <? echo "Hello テスト"; ?>
>>636 間違っちゃあ居ないけど、そもそもサーバーとか入れてるのか?
>>636 <?
ってのは
<?php
ってフルで書かないと、最近のPHPのデフォルト設定だと動作しないかも。
>>636 から始めるのに5年前の本なんてわざわざ落札して使う意味あるのか?
641 :
nobodyさん :2007/05/20(日) 20:42:44 ID:Avt2a6q1
安かったんじゃないの?
ネットで見ればタダなのにね
644 :
629 :2007/05/20(日) 22:04:53 ID:???
ごめんなさいやっぱりIDを出したほうがいいと思います。 ごめんね
645 :
644 :2007/05/20(日) 22:13:38 ID:???
でも自分自身はIDを出す気はありませんwww
phpでアクセス解析を作っていますが 今のところ1アクセスを1レコードとして データベースに保存しています。 しかし、レコード数が10万ぐらいになってくると 集計計算表示するだけでとても重くなってしまいます。 単に時間ごとのアクセス数だけなら 別途テーブルをもって集計することはできるのですが 訪問回数&間隔、各ページビュー、ドメイン 、ホストアドレス、都道府県&国、OS&ブラウザーなど リフラーやドメイン、ユーザーエージェントなどから集計する項目に関してはどうもいかないと思いまして アクセス解析を作っている人がその辺の処理の仕方をどのようにしているか ヒントや参考意見、HPなどがありましたら、教えてください。 よろしくお願いします。
647 :
nobodyさん :2007/05/20(日) 22:36:47 ID:s5N306jr
GIF画像を読み込んで、 32x32サイズだったら32×32の1ピクセルごとにカラーにしたりできる? 変な質問ですまん
649 :
nobodyさん :2007/05/20(日) 22:45:17 ID:s5N306jr
1〜32×1〜32ループして 1ドットずつ色を取得したいです
aaa.php bbb.php require_once(aaa.phpへの相対パス); ccc.php require_once(bbb.phpへの相対パス); として ccc.phpを実行した時に bbb.phpからaaa.phpを呼び出す場合 aaa.phpへの相対パスがbbb.phpからの相対パスだと うまくいかずccc.phpからの相対パスを要求されます。 絶対パスを利用せずにこの問題を解決する方法は無いのでしょうか?
652 :
nobodyさん :2007/05/20(日) 22:52:41 ID:GVA2rtRb
aaa.php bbb.php require_once(aaa.phpへの相対パス); ccc.php require_once(bbb.phpへの相対パス); として ccc.phpを実行した時に bbb.phpからaaa.phpを呼び出す場合 aaa.phpへの相対パスがbbb.phpからの相対パスだと うまくいかずccc.phpからの相対パスを要求されます。 絶対パスを利用せずにこの問題を解決する方法は無いのでしょうか?
654 :
649 :2007/05/20(日) 22:55:14 ID:s5N306jr
imagecoloratで解決しました
655 :
652 :2007/05/20(日) 22:57:27 ID:GVA2rtRb
serverはFC6のphpは5です
俺は相対パスの頭にdirname(__FILE__)ってつけて絶対パスにして使ってる 「絶対パスを利用せずに」はわかんね
>>652 そりゃま、カレントディレクトリはccc.phpの場所なんだから
bbb.phpからの相対じゃうまくいかんわな。
手っ取り早いのはincludeパスにaaa.phpやbbb.phpの置いてあるディレクトリを追加して
requireではパス指定を一切しないこと。
そういうPHP設定をいじらずにやりたいのなら相対パスを絶対パスに自動変換する手かね。
require_once(dirname(__FILE__) . "相対パス/aaa.php");
みたいな感じで。
>>652 >絶対パスを利用せずにこの問題を解決する方法は無いのでしょうか?
ないよ。
そもそもそんなスパゲッティrequireがおかしいので考え方を改めなさい。
659 :
652 :2007/05/20(日) 23:02:38 ID:GVA2rtRb
なるほど、どうもです。 ほかのサーバーに設置したかったので 相対パスじゃないとだめかと思って
>>659 最初に1個、必ず読み込む基準ファイルみたいのを用意しておいて、
その基準ファイル内で
define("base", dirname(__FILE__));
みたいに自身のディレクトリ位置をdefine定義しといて
以降のrequireはそれを元にファイルパスを生成すると
サーバー移行は楽になるよ。
他のサーバだから相対パスしか使えないって判断が謎
662 :
652 :2007/05/20(日) 23:09:23 ID:GVA2rtRb
>>660 なるほど、おもいつきませんでした
これは便利ですね。ありがとうございます
ディレクトリ構成が違うから、って意味でしょ。無意味な突っかかり。
>>646 普通はリアルタイムに集計なんかしない。
バッチであらかじめ集計しておいて、表示はその集計データを元に行なう。
新しいサーバー(Fedora Core → FreeBSD)に乗り換えて php、mysqlなどの設定もデフォなのですがmysql_pconnectのところで エラーがでてきてしまいます。 Call to undefined function mysql_pconnect() 経験談でも何でもかまいませんので、何かご存知ではないでしょうか。
>>646 1. 集計プログラムが呼び出されたら最新集計結果TBLとアクセスログの更新日時を比較
2a. もし同じならば、最新集計結果TBLをもとにページ作成 => exit
2b. 同じでないならば、最新集計結果TBLの更新日時以降のアクセスログを集計
3. 最新集計結果TBLに2bの結果を反映して更新
4. 最新集計結果TBLをもとにページ作成
これだけだと偏差とかは無理だけどな
668 :
質問させて下さい :2007/05/20(日) 23:56:18 ID:mUezkSvy
レッツphp RSSトピックスを使っています
時間表示の所を2007/05/20(年・月・日)となっています。
$date = date("Y/m/d", $time);
ソースです。
ttp://loglog.jp/~php/net/rss/rssup.php.txt これを2007/5/20 13時15分など表示されるにはどのようにすればいいでしょうか?
date("Y/m/d/H/i", $time); 次のように改造をしましたが表示エラーになりました。
アドバイスお願いします
>>665 バージョンぐらい書いたらどうよ
あと、この際だからPDOに移行したら
>>668 ブラウザにでるエラーの内容と
httpサーバのエラーログに書いてあるんじゃね
671 :
質問させて下さい :2007/05/21(月) 00:08:06 ID:x+5U6/Lp
>>670 date("Y/m/d H:i", $time);
これでも試したんですが
両方ともエラーは空白で非表示になります。
困まりました><
>>671 >両方ともエラーは空白で非表示
この意味がワカランな。
エラーなのか、表示されないのかどっちよ
>>671 ひとまずエラー文を読むか晒せ
dateのところ変えただけなら、なんか変な事してるんじゃないの?
674 :
質問させて下さい :2007/05/21(月) 00:33:08 ID:x+5U6/Lp
わかりずらくてすいません。非表示になるんです。 $date = date("Y/m/d", $time); こう書けば年・月・日をしっかり取得してくれます。 date("Y/m/d/H/i", $time); date("Y/m/d H:i", $time); こう書けば、非表示になって年・月・日・時間などを表示してくれません。 考えて下さって本当にありがとうございます
$date = date("Y/m/d/H/i", $time); でいけました。 本当に足ひっぱってすいませんでした>< ごめんなさい
は?
おあとがよろしいようで
高度な釣りだと評価しておこう。 なるほど。
ヤラレタ
>>674 なるほど、そりゃそうだw
しかし、意味分かってコード書いてる?
PDOStatement->fetchObject() の逆バージョンってないの? インサートとか指定したフィールド(カラム)だけアップデートするとか。
682 :
nobodyさん :2007/05/21(月) 03:36:04 ID:r2MP9GVb
-> ↑これって何なんですか? 使ったことないし、人の書いたコード読んだときもこれがよくわからなくて つまずいてしまいます 配列関係?
テンプレくらい読めよ
クマー
winXPhomeでPHPとMysqlの連携をやりたいのですがうまくいきません mysqlを使わない普通のphpのプログラムは動きます phpはバージョン5.2.2 mysqlはバージョン5.0.4.1 apacheは2.2 です php5ts.dllをc:/windowsにコピーして libmysqlをc:/windows/system32/にコピーして php.iniをc:/windowsにコピーして内容を修正して <?phpinfo?>で表示される内容を見ても mysqlの項目が出てこないし phpからデータベースに接続しようとしても出来ません 設定の方法が載っているHPがあったら教えてください
数行前の荒れてる原因レスも読めずによく質問できるよな君
>>685 > php.iniをc:/windowsにコピーして内容を修正して
どう修正したのか書いてくれなきゃわからん。
俺がPHPを伝授しするスレのとおりのインストール方法なら解決策がかけるんだけどねえ
>>678 include_path = ".;c:/php/includes;c:/php/pear"
doc_root ="C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
extension_dir = "c:/php/ext"
extension=php_mysql.dll
magic_quotes_gpc = off
これ以外は変更していません
mysqlを使わないプログラムは問題なく動きます
あんたレス番間違えてるけど今日何回目の質問ですか?
apacheの設定ファイルにphpのdllを読み込む設定がかかれてないんですけど あとID出すと不都合でもあるんですかね?
MySQL鯖が起動してないんだろ
>>691 すいません既にその変更もしていました
phpは動いているのでそれはいわなくてもいいかなと思ったので
httpd.conf
LoadModule php5_module c:/php/php5apache2_2.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.html.var index.php
>>692 サービス一覧で見ても状態は開始になっています
695 :
nobodyさん :2007/05/21(月) 10:15:06 ID:tUHb9fVw
質問をしてもよろしいでしょうか。 現在、セッション変数を使い始めた初心者です。 数人が参加できるチャット画面を作っています。 1、ある人がそのページに参加すると、入ったという情報をファイルに記録する。 (フラグを1にしてるだけですが) 2、退出ボタンで退出すると、出て行ったという情報をファイルに記録する。 3、ブラウザを閉じたり、タイムアウトになったりした場合もファイルに記録する。←ここ のようなことをしたいのです。 現在は、タイムアウトでいなくなった場合は、ずっとその人は参加し続けていることになってます。 ググッても独自関数みたいなものが出てきて、レベルが高すぎてさっぱりわかりません。 いいやり方はないですか?
696 :
685 :2007/05/21(月) 10:26:15 ID:???
みなさん失礼しました 今解決しました インストーラー版で一回インストールしたあと削除せずに Zipを解凍して手動でインストールしたのが原因でした 一生懸命変更したiniファイルとは別のインストール版の方のiniをphpは読んでいたみたいです インストーラー版を削除したらmysqlのプログラムも動くようになりました
>>696 でインストーラー版、Zip版と言っているのはphpの事です
698 :
685 :2007/05/21(月) 10:37:57 ID:???
ここの住民の方の知恵を借りたいのですがわからないですよね。 windows板で前に質問したときはすぐに回答いただいたんですけど (笑)
>>696 php.ini読んでるディレクトリ確認してなかったんか
701 :
695 :2007/05/21(月) 10:58:25 ID:tUHb9fVw
>>695 それです。ブラウザ閉じた時にセッションきるやつですよね。
その時に、ファイルに保存してある
1番,○○さん
っていうのも空欄に書き換えたいのですけど、どうしたらいいのですか?
それはサーバーサイドだけじゃ無理。ajaxとか使うことを考えるしかないね。
無理ではない
どうするの
夕方まで舞ってくれるなら書いてくる
断る
soho細々スレをこの板に立てたいんですけどいいですか?
何故PHPスレで聞く
709 :
695 :2007/05/21(月) 12:56:23 ID:tUHb9fVw
ぜひとも、よろしくお願いいたします。 楽しみに待ってます。
>>709 おお^^わかったん、んじゃ立ててくるよ♪
711 :
nobodyさん :2007/05/21(月) 12:58:25 ID:3IxpO5VZ
パーミッション777のフォルダをつくって、中にキャッシュファイルをつくったり消したりという機能をつくている途中ですが セキュリティ関係で気をつけなきゃいけないことありますか?
>>711 どんなキャッシュファイルか分からないから
なんとも言いにくい
あえて言うのなら
・ドキュメントルートの下には置かない
もちろんシンボリックリンクも
・個人情報、パスワードをなどを書き込まない
どうしても書き込む必要があるときは、できるだけ
すぐに消すようにする
713 :
710 :2007/05/21(月) 13:05:17 ID:???
スレ立てられなかった・・・ SOHO・フリー・会社でWEBプログラミングしてる奴 名前: nobodyさん E-mail: 内容: ここはSOHO・フリー・会社でWEBプログラミングをお仕事にしてる人のスレです。 いろんな所に、いろんな年齢で、いろんな条件のひとがガンガってます。 儲かってる人も、細々食え出した人も、個人も会社勤めの人も、お互いの立場を尊重し 情報交換・愚痴交換して行きましょう。
なぜグループにも7の権限与えんの?
716 :
nobodyさん :2007/05/21(月) 13:38:53 ID:3IxpO5VZ
>>712 ありがとうございます
動的ページをその都度データベースから引き出してるのが遅いので
よく使う&変更のないやつをキャッシュにいれておこうと思いました
>>714 フィーバーですか?
>>715 習慣で777と書いちゃいました
cmdも習慣で777と打っちゃうんですけど
穴
>>716 700でいいじゃないの。
あと、キャッシュファイル名はハッシュにすればいいよ。
md5とかで('file path');で出し入れする。
719 :
nobodyさん :2007/05/21(月) 13:54:37 ID:O1legeAP
PHP5.2.2で session_start(); $_SESSION['count'] = 1; とやるとテンポラリディレクトリに sess_tm4m6v8sp4r42ptimhc3rquim6tっていうファイルができてました。 ローカルだから確認できたのですが、sess_という部分を はじめて使うレン鯖などで調べる場合 どうやって調べるのでしょうか? テンポラリディレクトリを読んで、中のファイル名一覧を取得してファイル名を取得というやりかたを 考えたのですが、これは違うと思ってて悩んでます。 どなたかご教授ねがいます。
echo session_id();
>>718 ありがとうございます
MD5ってこいうときに使うんですね やってみます
722 :
721 :2007/05/21(月) 14:05:01 ID:3IxpO5VZ
あ、ID出し忘れ
こういうとき使うかどうか知らないけど、同一ディレクトリに一意でかつ想定しにくいファイル名 を使えるので、自分はキャッシュ使うときはそうしてる。
パーミッションの設定によってはディレクトリが丸見えになるよ
725 :
nobodyさん :2007/05/21(月) 14:32:09 ID:O1legeAP
>>720 さんありがとうございます。
今回はファイルに勝手につけられるsess_という部分を
調べたかったのですがsession_id()で試してみたらsess_より下の部分がわかりました。
オンライン中ユーザを表示するスクリプトが書きたかったのですがわたくしの力ではPHPでは難しいです・・orz
でもPHPで書かれたスクリプトを運用していらっしゃるサイトさんもありますので諦めがつきません。
>>726 パーミッションの設定で同じグループに属するユーザに権限を与えるとディレクトリにアクセスできるのですが・・・?
>>727 だからパーミッションの問題じゃないって
なんの問題なの?
レベルの低いスレですね
732 :
nobodyさん :2007/05/21(月) 15:27:06 ID:tU+w3yaB
documentrootより上にイメージファイルを設置して img srcでそのファイルを指定する事は可能でしょうか?
>>732 ためしにやってみたら?
実際やってみて出来たら出来る
出来なかったら出来ない
735 :
nobodyさん :2007/05/21(月) 15:36:03 ID:O1legeAP
いま何人アクセスしてるかわかるスクリプトってどうやってつくるんでしょうか?
>>735 アクセスカウンタ?それとも瞬間のアクセス数?
前者ならページを開いたときにインクリメントするものを作れば出来る
後者じゃないとは思うけど・・・
後者ならWEB(apache)のログを解析するしかないんじゃないの?
>>735 ログ解析なんか関係ない。ある種
>>695 と同じような質問だな。
とりあえずラフなもんなら、sessionを時間で区切って数えてやる。
今まさに「ブラウズ中」カウントしたいならajaxあたりでやる。
738 :
nobodyさん :2007/05/21(月) 16:46:11 ID:oCyouogR
文字化けについて質問です。 PHPでSJISの文字を受け取り、EUC-JPに変換後、MySQLに格納しているんですがなぜか"ー"の文字だけ"?"に文字化けします。 PHPは5.1.6 MySQLのDEFAULT CHARSETはEUC-JPです。 色々見てみた結果、MySQLに格納しる前は普通に"ー"であるようなのです。 完全にMySQLの質問ですが、この板がホームな私にお力お貸しください。
my.iniの文字コードの設定を確認 >完全にMySQLの質問ですが、この板がホームな私にお力お貸しください。 こういう書き方は不愉快ですね。
別にいいじゃん。
>>738 >EUC-JPに変換後
ここが出来てないと見る。実はshift jisのままだろ
741 :
738 :2007/05/21(月) 16:56:42 ID:oCyouogR
>>739 さん
不愉快な気持ちにさせてしまってすみません;;
MySQLは作成時に(create table時に)DEFAULT CHARSET=ujisにしています
ただ(文字コードEUC-JP)SSHでみると文字化けしています。
一度確認してみます。ありがとうございます。
>>740 さん
返レスありがとうございます
そこは何度も確認したのであっているようです。
一度、EUC-JPに変換したものを再度SJISに変換してechoしたところ"ー"は文字化けしていませんでした。
ソースのせろ
743 :
738 :2007/05/21(月) 17:15:17 ID:oCyouogR
//$str['title']に"ー"が入っていたと仮定して protected function UpdatePage1(&$str) { var_dump($str['title']); //この時点では文字化けなし mb_convert_variables("EUC-JP", "SJIS", $str); var_dump(mb_conbert_encoding($str['title'], 'EUC-JP', 'SJIS')); // $sql = "UPDATE `hoge_tbl` SET `title`='".$str['title']."', `msg`='".$str['msg']."' WHERE `seq`=".$this->_values['seq']; echo $sql; parent::mysql_insert($sql); }
744 :
738 :2007/05/21(月) 17:17:55 ID:oCyouogR
途中で書き込んでしまいましたごめんなさい。 addslashesは助長になるので省いてますがきちんとconvertの後にかけてます。 DBに書き込む前のdumpでは文字化けしていません。
>>743 意味わからん。
>mb_convert_variables("EUC-JP", "SJIS", $str);
>var_dump(mb_conbert_encoding($str['title'], 'EUC-JP', 'SJIS'));<−−このタイポは問わないとして。
デバッグするなら
var_dump(mb_convert_variables("EUC-JP", "SJIS", $str));
のほうだろ。
746 :
738 :2007/05/21(月) 17:39:41 ID:oCyouogR
>>745 さん
ご指摘ありがとうございます。
試した結果、EUC-JPでした。。
747 :
nobodyさん :2007/05/21(月) 17:56:24 ID:O1legeAP
>>737 さんのやりかたで作れました。
勉強になりました。ありがとうございました。
748 :
nobodyさん :2007/05/21(月) 18:25:11 ID:gTv1f8Kg
エキサイト翻訳
http://www.excite.co.jp/world/english/ に、
POSTで「こんにちは」を送信したところ、
翻訳されたら「S O. Tsu」と、変な変換になってしまいます。
$word = mb_convert_encoding($word,"SJIS","auto");
$post = 'before='. $word .'&wb_lp=JAEN&start=翻訳';
こっちはSJISで送信して、UTF-8で受け取っています。
$request = "POST $post_url HTTP/1.0\r\n";
$request.= "Host: $parse_url[host]\r\n";
$request.= "User-Agent: PHP/" . phpversion() . "\r\n";
$request.= "Content-type: application/x-www-form-urlencoded; charset=SJIS\r\n";
$request.= "Content-Length: " . strlen($post) . "\r\n";
//$request.= "Referer: $url\r\n";
$request.= "\r\n";
$request.= "{$post}\r\n";
おそらく途中で文字化けしていると思うのですが、どうして文字化けしてしまうのでしょうか?
ちなみに、英⇒和だと正しく変換されます
>>748 >Content-type: application/x-www-form-urlencoded;
この意味もわからずにどっかから取ってきたコードで、自分の水準以上のことをやるからそうなる
750 :
nobodyさん :2007/05/21(月) 19:08:59 ID:O1legeAP
何度もすみません、WindowsでGD2を使い場合 TrueTypeフォントというのはパソコンを買ったときからC:\WINDOWS\fontsにたくさん入っているんですけど このフォントディレクトリを指定したいのですがエラーがでて困り果ててます。 putenv('GDFONTPATH=' . realpath('C:\WINDOWS\fonts')); っって記述はフォントへのディレクトリを指定しているつもりですが間違ってましたらご教授願います。 ソースはこれです <?php header("Content-type: image/png"); putenv('GDFONTPATH=' . realpath('C:\WINDOWS\fonts')); $text = 'test''; $font = 'arial.ttf'; $im = imagecreatetruecolor(400, 30); $white = imagecolorallocate($im, 255, 255, 255); $grey = imagecolorallocate($im, 128, 128, 128); $black = imagecolorallocate($im, 0, 0, 0); imagefilledrectangle($im, 0, 0, 399, 29, $white); imagettftext($im, 20, 0, 11, 21, $grey, $font, $text); imagettftext($im, 20, 0, 10, 20, $black, $font, $text); imagepng($im); imagedestroy($im); ?>
751 :
nobodyさん :2007/05/21(月) 19:14:19 ID:EzwH2Xng
>>750 >$text = 'test'';
これが問題なだけでしょ。
752 :
nobodyさん :2007/05/21(月) 19:23:14 ID:O1legeAP
すみませんでした(汗 それも直してみたのですが、やはりパスが通りませんでした。 putenvを消して、$fontに絶対パスで記入したら動くのですが・・・私にはわかりません
753 :
732 :2007/05/21(月) 19:36:27 ID:f9N/ntIf
すいません 試してみても動かないので 動いてる参考例ってないですか?
>>753 <img src="imgview.php?id=AAAAA">
【imgview.php】
<?php
if(! preg_match('/^\w+$/', $_GET['id'])) exit;
header("Content-type: image/jpeg");
readfile("../image/" . $_GET['id'] . ".jpg");
?>
とか?
755 :
732 :2007/05/21(月) 20:18:22 ID:f9N/ntIf
756 :
nobodyさん :2007/05/21(月) 20:54:00 ID:EzwH2Xng
>>752 じゃあ
putenv('GDFONTPATH=' . realpath('C:\WINDOWS\fonts'));
echo getenv("GDFONTPATH");
の二行だけ試せよ。ワカラン厨はイラナイ
>>750 putenv('GDFONTPATH=C:\WINDOWS\fonts'));
駄目だったら
$tmp=getcwd();
chdir('C:\WINDOWS\fonts');
putenv('GDFONTPATH=' . realpath('.'));
chdir($tmp);
公式にApache2.3のマニュアルがあるんだけどこれなんかの間違いだよね?
>>756 >ワカラン厨はイラナイ
ここ質問スレなんですが^^;;;;;
>>750 putenv('GDFONTPATH=' . realpath('C:\WINDOWS\fonts'));
$text = 'test'';
$font = 'arial'; // 拡張子を取る
でどうかな。
>>726 何書いてんだ?無知は黙ってろって言っただろ。
762 :
nobodyさん :2007/05/21(月) 22:30:18 ID:EzwH2Xng
>>759 getenvを消したら動く
↓
じゃあgetenvが「悪さ」してるかもしれない。→という仮定の下、XXXを試してみた
とかいうのは、全然、ワカラン厨じゃないよ。質問者が思考停止しててどうするというこった。
>>726 はまともな説明もできないで逃げてるんだからそっとしておいてやれ
なんかユーザ会のMLがアイタタタ・・・なことになってるな
ウザースの話は専用スレでやってください。
768 :
nobodyさん :2007/05/22(火) 06:12:55 ID:uBXy9NM+
ここは改造スレじゃないんだぜ坊や
770 :
nobodyさん :2007/05/22(火) 06:37:08 ID:uBXy9NM+
そうですよね。ダメ元で聞いてみました。 すいませんでした><
ソース読めばわかるだろ丸投げ君
わからないのでどの辺をいじればいいのかアドバイスがほしいです。
指摘されたばかりなのになぜそのようなレスが返ってくるのか疑問
774 :
nobodyさん :2007/05/22(火) 07:49:05 ID:F6/h/Ppd
クッキーを発行するとき以下のように書きました。 setcookie("cookie", "hello", time()+60*60*24); このとき、クライアントにクッキーが発行されるのですが、XSSは発生ケースも考えられるでしょうか? 2番目のhelloにhtmlspecialcharsをかませるべきですかね?
>>774 そこはXSSに関係ないんじゃ。あとhelloにhtmlspecialcharsをかませてもhelloだよ。
むしろその推測しやすい値を何とかした方がいいよ。
776 :
774 :2007/05/22(火) 10:03:18 ID:???
>>775 そんなレス頼んでないから
次のレスよろしくっす
態度のでかさワロス
778 :
nobodyさん :2007/05/22(火) 10:12:16 ID:F6/h/Ppd
私は質問するときはIDだして会話してます。
>>775 さんありがとうございます。クッキーを送信するときにhtmlspecialcharsは必要ないのですね。
クッキーを読み込むときのみサニタイズすることにします。
ありがとうございました。
>>668 >>768 まずPHPの言語リファレンス読んだほうが確実に早いと思うぞ?
このまま試行錯誤→10日くらいかかる
リファレンス読む→1日+試行錯誤→3日
>>779 俺の場合
このまま思考錯誤→検索して似たようなサンプルを探してみる→3日くらい
マニュアルを読んでみる→眠くなる→気がつけば1ヶ月→結局何も頭に入ってない
そりゃコピーで済ましてたら実力につながるわけないわな
782 :
nobodyさん :2007/05/22(火) 11:45:23 ID:O7vxYa15
php.netのマニュアルから、よく使い関数のみをピックアップしたリファレンス、あるいはマニュアル本ってありますか? 例文がちょっとずつついてると嬉しいのですが
783 :
nobodyさん :2007/05/22(火) 11:48:02 ID:O7vxYa15
× よく使い関数 ○ よく使う関数 関す名を頻繁にど忘れするので、いつも手元に置いておけて、関数名と使い方をいっぺんに 思い出せるようなものが良いです お願いします
>>778 "hello"が実際は$_GET['password']みたいなことはないよな?
>>783 お前がよく使う関数なんてお前とお前の上司しか分からんわな。
785 :
nobodyさん :2007/05/22(火) 11:55:08 ID:O7vxYa15
>>784 正式なマニュアルだと1回も使ったことない・見たことがない関数ってありませんか?
そういう関数を省いた最小限+α的な良質なものが欲しいのですが…
>>785 ほしい関数を調べる能力を得たほうがいいと思うよ
>>785 腐るほどあるから立ち読みして好きなの買ってくればいい。
自分で作ればいいじゃん。 ばか?
789 :
nobodyさん :2007/05/22(火) 12:03:14 ID:O7vxYa15
>>786-787 最近「ほしい関数」をど忘れするんです 会社は外のネットに繋がってないからググれないし
やっぱり正式マニュアルに手を入れて自分用のをものを作る方がよさそうですね
時間見つけてやってみます ありがとうございました
790 :
nobodyさん :2007/05/22(火) 12:04:20 ID:O7vxYa15
>>790 「php 逆引き」あたりで書籍を検索すれば終了です
>>791 個人的にそれだったら「逆引き大全」のほうが使えたかも。
php4 と 5 版があるよ。
>>791-793 ありがとうございます
これが一番すごい、という本はないんですね
本屋に行ってみます
>>794 目次調べた感じ「PHP5逆引き大全」か「PHP逆引きクイックリファレンス」あたりかな。
796 :
nobodyさん :2007/05/22(火) 13:19:25 ID:O7vxYa15
>>795 わざわざありがとうございます
本屋に行ったら手にとってみます
797 :
nobodyさん :2007/05/22(火) 13:20:47 ID:F6/h/Ppd
質問くれよいつもこの時間暇なんだよ
799 :
nobodyさん :2007/05/22(火) 16:11:44 ID:mMfdQs0K
>>798 じゃあお言葉に甘えて・・・
スクリプトの実行にかかる時間を計るとき、どのようにして計ってます?
801 :
nobodyさん :2007/05/22(火) 16:41:13 ID:mMfdQs0K
>>800 サンクス
でも、これって_秒しか測れない?
なにを言ってるのか不明
何を言ってるんだこの子は
804 :
nobodyさん :2007/05/22(火) 16:43:47 ID:mMfdQs0K
てっきり、 0.14062700 1179819807 って 0.140627001179819807秒 かと思ってたわ・・・ 吊ってくる・・・
>>798 おまえが何してるのかすごい気になる
ID出してないからスルーするなら勝手にしてくれ
それがミリ秒なのか?
>>799 すこしテクつかうがmicrotime以上のナノレベルで時間を計測できるやり方もあるぞ。
鯖がwinだとできないけどな。
マルチタスクOSでナノ秒で計測しても無意味。
809 :
nobodyさん :2007/05/22(火) 18:12:07 ID:jzN7NBa+
接続がプロキシ経由かどうか調べるには どうすればいいですか?
>>809 アクセスログに記録されたIPをプロクシチェックかければおk
社員のプロフィールとか写真 写真を押したら 個別情報に遷移 みたいな サイト構築しようとおもったらPHPがいいですかね? PHPのイメージでそういったモジュールなどありそうかなと思いまして。。。 当方ASP.NETでしか製作したことがない者です。 助言よろしくお願いします。
812 :
812 :2007/05/22(火) 18:34:07 ID:???
すんません、、、誤爆です。 プログラム板に書き込んだはずなのにな・・・ 失礼しました。
社員のプロフィールとか写真==女の子のプロフィールとか写真
写真を押したら 個別情報に遷移==女の子の詳細に遷移
某スレの
>>1 乙
くまー!
816 :
nobodyさん :2007/05/22(火) 19:19:26 ID:tEC72BDc
質問ですー。 フラッシュのswfファイルのアドレスを秘匿したいのですが 例えば、swf.phpのアクセスがそのままこちらの指定したアドレスのswfファイルになるようなことはできないでしょうか? また、htmlにswf埋め込んだ形のNGと考えています。(携帯での閲覧も考えているので) もしかしたら変なことを聞いているかもしれないですけれどよろしくお願いします。 OSはXP-SP2でPHPは5です。
819 :
nobodyさん :2007/05/22(火) 19:54:48 ID:y22J0WYH
クラスにおいてstaticとインスタンスは正反対みたいですが、 静的メソッド内においてインスタンス変数は使えないのですか? 使い方が間違ってるとかおかしいとか言われるかもしれませんが、 技術的にどう書けば使えるのかなーと思って聞いてみました。 クラスは最近始めたので、実はよくわかってませんので、 意味不明なこと言ってるかもしれませんがお許しをorz ソースはこんなかんじです。 class Test { private $hoge; public static function hoge($hoge) { $hoge = $this->hoge; return $this->hoge; } } echo Test::hoge("aho"); //Fetal Error $obj = new Test(); echo $obj->hoge("aho"); //こちらも同じFatal error
>>819 > クラスにおいてstaticとインスタンスは正反対みたいですが
この時点で理解不足
結城浩のJavaの本でも買って一字一句嫁
>>819 突っ込みどころが満載だが静的アクセスするにはself::を使う。
self::$hoge
メンバ変数も静的じゃないといかんが。
>public static function hoge($hoge) { >$hoge = $this->hoge; これはなんですか?
824 :
nobodyさん :2007/05/22(火) 20:49:17 ID:F6/h/Ppd
ある文字「い」があったとして、その文字を16進数に変換して、 また元の文字に戻したいのですが思ったとおりの結果にならず悩んでおります。 どなたかご指摘お願いいたします。 $a = bin2hex("い"); $b = ord($a); echo sprintf("%c", $b);
826 :
nobodyさん :2007/05/22(火) 21:34:44 ID:F6/h/Ppd
ありがとうございます。 packの使い方について勉強不足でした。 おかげさまで解決できました。 ありがとうございました。
どーでもいいんだけどPHPをある程度やってたおかげでCが容易に感じてきた もうCでCGI作ろうかと思う。やってらんねphp
ほんとにどーでもいいなw
ていうかPHPがはやってるからって厨が多すぎるんだよね〜^^;
>>827 CならCGIよりApacheModuleのほうが面白そうだけどな。
自鯖か専鯖じゃないと使えんが。
831 :
nobodyさん :2007/05/23(水) 00:38:19 ID:gBlhHgMK
error番号から、文字列(E_ERRORとか)に変換したいのですが どうすればいいですか?
>>827 俺とC#やろうぜ!
CはIDE使うよりviでゴリゴリ開発→gccでコンパイル
この一連の流れが痺れるびびびびびびびびびび
835 :
nobodyさん :2007/05/23(水) 01:58:10 ID:NI0qIs2d
現在サイトを閲覧中のユーザの数を知りたいときは セッションのファイルを数えるといいと以前ここで読んだのですが レンタルサーバでファイルの保存場所にアクセスできない場合はどうすればいいでしょうか?
836 :
nobodyさん :2007/05/23(水) 01:59:05 ID:gBlhHgMK
set_error_handlerでハンドリングしてdbにロギングするようにしたのですが fatal errorが記録されません fatal errorはどうすればハンドリング出来ますか?
837 :
nobodyさん :2007/05/23(水) 01:59:12 ID:4AGNtahW
レンタルサーバーだと出来るのですが 自宅のサーバーだとPHPでフォルダ作成ができません。 何が原因でしょうか?
838 :
816 :2007/05/23(水) 01:59:54 ID:???
>>817 XPはクライアント側でした。
>>818 いろいろ調べてみたところ.htaccesssで制限やリクエストを制御するのがよさそうですね。
レスありがとうでした。
その質問はおれがしたんだけど
>>737 を読んで意味がわからないのなら
共有サーバでセッション使ったスクリプトなんてやめたほうがいい
>>837 ソースの記述間違えか、フォルダを作成する場所が読み取り専用になっているかどっちか
PHPをやっていてCが身近に感じられるようになったというより、 PHPのアホさ加減で結局ソースを読む羽目になる事の方が大きいと思うぞ。
842 :
nobodyさん :2007/05/23(水) 03:09:44 ID:4AGNtahW
>>840 レスありがとうございます
自宅のサーバーはLINUXで、パーミッションは755です。
php.iniのsafe_modeとかの関係でしょうか?
>>842 パーミッションを777にしてみれば。
755だとディレクトリのオーナーと実行ユーザが違ったらダメでしょ。
解決してるかもしれないが 確かセーフモードの設定で書き込み可否を制御できたはず
845 :
819 :2007/05/23(水) 06:28:20 ID:???
昨日寝てしまってレス遅れてすみません。
>>821 理解不足でしたか・・・
お金ないのでWebで頑張りますorz
>>822 ありがとうございます。
両方とも静的じゃないとだめなのですね。
教えていただいたとおりやったところ表示されました。
>>823 反対でしたね・・・すみません。
class Test {
private static $hoge;
public static function hoge($hoge) {
self::$hoge = $hoge;
return self::$hoge;
}
}
echo Test::hoge("aho");
847 :
nobodyさん :2007/05/23(水) 10:20:24 ID:Jt45AIDD
微妙にPHPと関係ないかもしれないんですけど、質問させてください。 データベースに入ってる項目の並びかえってどうしてますか? ユーザーが任意の順番に並び変えられるように作りたいのですが、 私が見かけたシステムでは、sort_orderというFLOATのカラムを持たせて アプリ側では、各項目に↑↓の矢印があって一回変えるたびにその行の sort_orderをDB登録してあげたり下げたりしていました。 新しい場所の上と下のsort_orderの間に入れるので2で割って、sort_orderが1000.5みたいに FLOATにしてるみたいでした。 で、作りたいものは、ドラッグアンドドロップで並び替えられるようにしたいんです。 aculo.usを使って画面側はなんとなくできてるんですけど、今の仕様だと 並び替えたもののsort_orderが上から順番に通し番号が振られる感じなんです。 つまり並び替えた対象のほとんどの行のsort_orderを更新することになります。 これをこのまま、DBに登録するとなると、UPDATE対象が上記の方法より格段に増えるじゃないですか? といっても、一番多い並び替えは5〜10件くらいのUPDATEで済みそうで、最高でも100件はないと思うんですよ。 並び替えの回数自体はユーザーしだいなのでなんともいませんが 、1ユーザー毎日2・3回、予想ユーザーは1000人くらいでしょうか。 sort_orderにはINDEXもはっていないし、サーバーも専用で結構パワーがあって、メモリも4G積んでるので 問題ないかなって気もするですけど、この設計ってまずいでしょうか? 他に思いつくのは、受け取った並び順をPHP側で、更新前のsort_orderと見比べて前者のFLOATを使っていた 時と同じような、パターンのsort_orderに変換して、更新のあったものを登録するとか・・・めんどい>< javascript側でその様な機能を実装するとか・・・あんまりjsは得意じゃないんですよね。 何か意見ありましたらお願いします。 わかりづらい長文をだらだら書いてごめんなさい。
読むのめんどくさいから3行でかいてね
>aculo.usを使って画面側はなんとなくできてるんですけど、 略 >javascript側でその様な機能を実装するとか・・・あんまりjsは得意じゃないんですよね。 おととい来なさい。自分で使っているものがなにかをわからないで、設計も糞もないだろ。
質問文の中にいくつも質問を混ざるような書き方はやめましょう。 1質問でひとつ答えを頂いて1つ解決できるような書き方を心がけるべきです。 多くの読み手に自分の質問を読んでもらいための知恵を使ってください。 わたしはスルーします。
>>847 D&Dってことは、そんなにたくさん表示されてないんだろ? そこの範囲を全部書き換えろ。
もしくは、sort_orderを10刻みにして、隙間がなくなったところでsort_orderをふり直せ。
これは近年稀に見る悪質問
「ふっふふ、三河屋、おぬしもワルよのぅ」 あれー、くるくるくるぅう みたいな?
そうだねバームクーヘンだね
856 :
nobodyさん :2007/05/23(水) 13:16:49 ID:VINgQQ+W
俺も昔から気になってた件だ>dbのorder問題 floatのやり方すら知らなかったから いちいち全行updateしてたよ こういうsqlのtipsみたいのがまとめられてる本ある?
858 :
847 :2007/05/23(水) 13:22:20 ID:Jt45AIDD
>>852 javascriptで最小限のものだけsort_orderを書き換えるように作ってみました。
で、Ajaxで毎回リクエスト投げて、保存しようかとも思ったんですけど
負荷的にも、ユーザビリティ的にも、確実性を考えても、並び替えは
クライアント側で完全に決まってから
submitで
>>852 さんの言うとおり変えた範囲を全部更新にしようかと思います。
sort_orderをFLOATにして、前後と比べて、割って、とかしても2・3個並び変えると結局全部更新になっちゃうんですよね。
稼動してみて、負荷を見て考えればいいのかもしれません。
みなさんレスありがとうございました。
859 :
nobodyさん :2007/05/23(水) 13:56:36 ID:AZyDs042
すいません、質問させてください。 test1.php test2.php test3.php と3つファイルがあって test1.php で test2.php と test3.php をincludeします。 test2.phpは処理が早いのですがtest3.phpが処理がとても大きくて遅くなってしまいます。 test1.phpに先に出た処理test2.phpを先に表示することはできますか?
できるわけありません
ブラウザにもよるが str_pad、flush使えばできる
Ajaxを使用していいなら出来ると思う test2実行 > 表示 bodyタグでonload > Ajaxで通信しtest3実行 > > データ送受信 > HTMLを書き換える でどうだろう??
863 :
nobodyさん :2007/05/23(水) 16:15:18 ID:AZyDs042
864 :
nobodyさん :2007/05/23(水) 17:27:43 ID:G3BjkUek
$_SSESSIONを共有サーバーでつかうとどういう風に危険なのですか? 具体的に教えてください
/tmpにセッションファイルが保存されるから他のユーザも参照できる危険性がある。
866 :
nobodyさん :2007/05/23(水) 19:16:01 ID:g5YZ+s6c
PHPを実行させると、スクリプトに書いた処理は行われず、 <!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> と出力していないDOCTYPE宣言などなどがブラウザに送信されて きます。なぜでしょう? phpinfo()は見れるのですが・・・。 環境は WindowsXP SP2 PHP5.2.1 Apache2.0.59 です。httpd.confの設定がおかしいのでしょうか?
そのスクリプトを晒せよ
むしろ晒すな
869 :
nobodyさん :2007/05/23(水) 21:47:40 ID:p2WOZVTN
すみません。近くのプログラム事務所でバイトを募集しています。 僕は、大学生ですが、PHPを最近真剣にやっていて、3ヶ月くらいたち SmartyとPEARの入門的な部分までやりました。SmartyやPearをつかわなかったら 色々作れる自信はあるんですが。 今の状態でPHPのバイトは勤まりますか?
>>869 ここは人生相談所じゃないよ。
そんなことはバイト先の社員に聞け。
真剣にやってるやってないとか自信がある無いはどうでもいい 実力があるかどうかだ
とりあえず、自分の力がどれ位なのかも客観的判断が下せない人間は精々底辺プログラマ止まりだな
初歩的な質問かも知れませんが、 javascript以外でカレンダーを作りたいのですが 作ったカレンダーをダイヤログのように親画面から開き 選択した日付を親画面に返すと言った事はできますか? 又、参考になるHPを御存知でしたら教えて頂けませんか? 以上、宜しくお願いします。
875 :
873 :2007/05/24(木) 00:08:33 ID:D8XE6M0O
すいません。 ID忘れました。 さらに言えば、スレタイに「PHP」って書いてあるのも見逃していました。 特にPHPって言うわけではないのですが、 技術的にできるのか疑問に思ったので・・・ できれば宜しくお願い致します。
>>875 どういうスレの探し方してるのか興味あるんだが
>>875 リロードかかっていいならできる。
PHP Calendarとかでぐぐれ。
それおもいっきりjavascript使うだろが
879 :
873 :2007/05/24(木) 00:42:33 ID:D8XE6M0O
>>877 どうもありがとうございます。
さっそくググってみたいと思います。
>>876 「下らねぇ質問」って言うのが目に入ったので。
>>879 下らない内容だとは思わないけどなカレンダー。
Flash使えよFlash 確かOpenLaszloも新しいバージョン出たよな? まぁ、PHPは関係ないけどこれからはオープン なFlashで構築ってな案件どんどん増えそう。 で、DB接続部分とか細かいとこはJavaとか PHPで。
Flashとか未だにプラグインいれてないの俺だけか?
フォトアルバムのスクリプトを利用してるんですが、 @fileで呼び出したtxtファイルから画像のサイズが取得できません。 中身はexplodeで区切ってあります ($filename,$comment) list($width,$height) = @getimagesize($filename); こんな感じでごく普通に記述してるんですけど… どうしてうまくいかないのかさっぱりわからないのでどなたか御教授お願いします 鯖のバージョンは5.2.0でした。
885 :
883 :2007/05/24(木) 01:31:24 ID:+SGQ/Lly
すみません忘れてました
file_gets_contentってもちゃくちゃ便利だなーこれ
>>883 「うまくいかない」「さっぱりわからない」ときは @ をはずしたほうがいいよ。
>>885 @file('foo')
@getimagesize($bar);
のようにエラー出力を抑制してワカリマセンっていうのをまずなんとかすべきじゃないの。
fileでホントに呼び出せてるのか、$filenameが正しいパスにあるかどうか自体を確かめてないと
しか思えないような質問だ。
if(file_exists($filename)) {
var_dump(getimagesize($filename));
} else {
exit('no exist');
}
ぐらい確かめてから、質問しにきてください。
889 :
nobodyさん :2007/05/24(木) 03:00:55 ID:pCKisbgl
練習に簡単な掲示板を作っています。 <html lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <title>test</title></head> <body> 文字を入れて送信を押す<b> <form method="post" action="gc.php"> <input type="text" name="data" size="30"> <input type="submit" value="送信"> </form> <?php $data = $_POST['data']; // echo "<hr> $data"; $file = fopen("log.txt","a+"); fputs($file,$data); fclose($file); $filepointer = fopen('log.txt',r); while(!feof($filepointer)){ $fileline = fgets($filepointer); echo " <hr> $fileline"; } ?> </body> </html> こうすると、リロードするたびに書いた文字が追加されてしまうんですが、どうしたらよいでしょう? たぶん、一度別ページに飛ばせば楽なんだろうけど、1ファイルで済ませたいので。
初心者が1ファイルですませるのはセキュリティが甘いからやめたまえ。
>>889 1ファイルでもパラメータ変えて自分のページにもう1度飛ばせばいいじゃん。
二重投稿チェックしなはれ
893 :
883 :2007/05/24(木) 04:01:06 ID:+SGQ/Lly
>>887 、
>>888 ありがとうございます。
パスが間違ってただけでした・・・お騒がせしてすみませんでした
ああーXSSでちゃうううう
質問は3日ぐらい熟成させてから投稿しろ
897 :
nobodyさん :2007/05/24(木) 09:40:55 ID:FJNwm9Bz
例外処理について勉強しているのですが、
早い話、Fetal ErrorやWarning等のメッセージが出る所を、
他のエラーメッセージに変えたり、
エラーが出た箇所でログをとったりする機能のことをさすんですよね?
PHPでいい解説サイトが見つからなかったので、(説明がわかりにくかったので)
Javaのわかりやすそうなサイトで勉強しているのですが、
ttp://www.javaroad.jp/java_exception1.htm この例題2の任意の例外処理を行った例を、PHPで再現したいのですがうまくいきません。
try {
$x = 10 / 0;
} catch (Exception $e) {
echo "0で除算はできません。";
}
マニュアルを見る限りだと、
PHPの場合はもっと細かい設定みたいなことをしないといけないのでしょうか?
マニュアルのエラー処理およびログ記録関数のページ読んでわからなかった聞けクズ
899 :
nobodyさん :2007/05/24(木) 10:06:32 ID:FJNwm9Bz
>>898 ぱっと見ましたが例外処理とは関係ありませんよね?
>>899 分かっているじゃないか
そのjavaの例の例外処理と、Fetal ErrorやWarningが
出るところは関係ない
901 :
nobodyさん :2007/05/24(木) 10:29:23 ID:FJNwm9Bz
>>900 なるほど・・・
Javaと混同してたのが原因ですね。
もうすこし考えなおしてみます。
もうなんかメチャクチャだなw
返り値と戻り値って別? returnが返り値で、戻り値は・・・・
PHP6っていつ出るんだ? もうそろそろだよな?
>>905 おう、もうちょっと。
あと3行ぐらいかいたらリリースするわ。
>>897 PHPを基準に考えてはいけない。
例外処理構文は通常処理と例外処理を分離して、
例外が発生した場合、tryブロックのそれ以降をすっ飛ばして
例外処理を一括して行ったり、例外の種類によって処理を変えたりするもの。
本来本格的なオブジェクト指向言語だと全てのエラーはExceptionクラスから派生してる。
ところがPHPはなんちゃってオブジェクト指向なのでほとんどただのエラーが返ってくる。
PDOクラスなんかでは例外を投げるように出来るんだけども。
だから例外処理構文としてはそれで間違ってはいない。
ただcatch(Exception)なんかでまとめて受け取るときは
echo $e->getMessage();
とした方がいいかな。
でまぁ結局、PHPのゼロ除算では例外を投げずにただのエラーを吐くだけなので使えないんだけど。
908 :
nobodyさん :2007/05/24(木) 15:10:53 ID:Ultn4Y5Q
ファイル扱いに関する質問です よろしくお願いします アップされるファイルの元々のファイル名がhoge.jpgだったとします これをそのままの名前で保存した場合、すでに保存してあるファイル名と被る可能性があるわけで、 絶対に被らないような名前にする(私の場合は、登録するレコードのIDをファイル名につけています)が、 ダウンロードする場合、当然ですが、変更された味気ないファイル名、1.jpgになります 元々のファイル名でダウンロードさせるいい方法はありますか? ちなみにテーブルはこうなっています Tbl_file 【id】 【ファイル名(リネームされたやつ)】 【元々のファイル名】 1 1.jpg hoge.jpg 2 2.txt test.txt 3 3.jpg nantoka.jpg
909 :
908 :2007/05/24(木) 15:14:52 ID:Ultn4Y5Q
すいません ずれていました 【id】【ファイル名】【元々のファイル名】 1 1.jpg hoge.jpg 2 2.txt test.txt 3 3.jpg nantoka.jpg
1.jpgダウンロード時ヘッダおくってやればいい header('Content-Disposition: attachment; filename="hoge.jpg")
911 :
908 :2007/05/24(木) 15:29:24 ID:Ultn4Y5Q
>>910 素早い回答ありがとうございます
本当に助かりました
ありがとうございました
912 :
nobodyさん :2007/05/24(木) 15:34:49 ID:IzNiejk0
913 :
nobodyさん :2007/05/24(木) 16:01:36 ID:FJNwm9Bz
>>907 どうもありがとうございます。
その説明で納得しました。
JavaのエラーとPHPのエラーは意味あいが違うのですね。
PHPにあわせた書き方ができるように精進します。
914 :
nobodyさん :2007/05/24(木) 16:05:55 ID:o0IpBJnI
POSTでおくられたデータが空だった場合の比較は↓でいいですか?データを'name'とします if($_POST['name'] == "") { 該当処理 }
915 :
nobodyさん :2007/05/24(木) 16:10:49 ID:c6PcIOvM
質問水準からいえば、まあ、それでいいんじゃないの、と答えるしかない。
916 :
914 :2007/05/24(木) 16:17:00 ID:o0IpBJnI
以下のような二つの配列をひとつの配列にキーを捧持したままマージしたいのですが $a = array(0=>"ゼロ",1=>"イチ"); $b = array(9=>"キュー"); array_merge や array_unshift を使うとキーが初期化されてしまいます そこで $array = $a+$b; としたら思い通りの答えを取得できたのですが マニュアルを見る限り上記のような方法を書いていないようなので もっとちゃんとしたやり方があるなら教えてもらえませんか?
918 :
917 :2007/05/24(木) 19:21:07 ID:6SP9BKjt
捧持 => 保持 ですorz
920 :
917 :2007/05/24(木) 19:38:24 ID:6SP9BKjt
>>919 配列演算子なんてあるんですね
知りませんでした
ありがとうございます。
>マニュアルを見る限り 見てないくせに嘘書くなよ
922 :
nobodyさん :2007/05/24(木) 21:02:38 ID:Bi1+wQVs
入力側 <br>本文 <br><textarea name="value" rows="20" cols="70"></textarea> 取得側 $value = $_POST['value']; $value_size = strlen($value); 上記の入力側で、テキストエリアに(日本語の混在時も英数のみ時も) データを数百バイト以上いれてPOSTすると、取得側処理でサーバが落ちます。 テスト用なので鯖はT.N.L HTTP Serverっていうのでやってます。 phpは4.3です。 どういう理由で落ちるのか、またその回避方法を教えていただけませんか?
923 :
nobodyさん :2007/05/24(木) 21:20:21 ID:c6PcIOvM
>T.N.L HTTP Serverっていうのでやってます。 そういう理由で落ちてるだけだ
昨日からPHPを始めたんですが、メールフォームの設計とか作り方について 詳しく解説しているサイトや書籍が全然ないですね。 いずれ顧客管理もPHPで作りたいのでPerlではやらないでおこうとおもうのですが、 参考になるサイトや本ってないですか?
スクリプト配布サイトばかり検索されて解説サイトがないんですが…。
マニュアルすら読んでないくせに偉そうな口を叩くな
そんな特定の案件に特化したサイトやら書籍は そうそうないだろう
>>927 昨日始めてマニュアル読破しろというお前が偉そうだな。
930 :
924 :2007/05/25(金) 00:16:03 ID:???
>>928 マニュアルは読んでいるのですが、全体の設計の説明がなく参考になるサイトを探しています。
>>928 特化までしてなくてもいいんですが、そういうのはないですか。諦めてPerlにしようかな・・・。
931 :
924 :2007/05/25(金) 00:16:44 ID:???
すみません。前半は
>>927 様宛てのレスですm(_ _)m
Perlでもない気がするが 別にPerlで作れるのならそれでいいだろう
933 :
nobodyさん :2007/05/25(金) 00:40:07 ID:QXM8OM61
ともあれIDを出せよ
>>930 927だけどマニュアルのどの辺を読んだのか?
936 :
nobodyさん :2007/05/25(金) 01:20:02 ID:BGp5fjEQ
クラスのメソッドって最後にreturn;書くべきなの?
938 :
936 :2007/05/25(金) 01:32:47 ID:BGp5fjEQ
>>937 ごめんなさい、ちょっと質問を変えます。
メソッド中にreturn;って書くべきなんですか?
>>934 これすごいな。IE6バグ依存で作ってるCSSレイアウトが、他では崩れるにもかからわずそのまま放置ってのが・・
>>938 それだけじゃ端的すぎて答えようがないんだけど
なんでそう思ったん?
何も返す必要なければreturn書く必要ないのは当たり前 メソッドというか関数全般そうだろ
returnが何をするのかわかってないからそういう質問がくる。 こんなやつのクラスに関数さんは入りたいと思わないよ
>>939 どこ文句つけてるんだよwwww
メルフォの作り方を偉そうに書いてる教えたがり君なんて、しょせんそんなレベルなんだよ
自分で貼っておいてなんだが、extract()の危険性について触れてない(むしろ推奨してる)しね
944 :
936 :2007/05/25(金) 02:15:10 ID:BGp5fjEQ
>>941 その答えが知りたかったです。
プロパティにすればreturnで返す必要もないと思うし、
でも本とか見ると、たいていはreturn;って書いてるし。
どっちかなと思い質問しました。
>>944 なら最初からそう書けよ
クラスのメソッド中にreturnを書くべきかという問題と
プロパティ変数に格納するか返り値を返すかの問題は全然違うじゃねーか
わからないから聞いたのになんでそんなこといわれないといけないんですかっ!
センスないし、人間的にも問題ありだから、やめとけ。
ハァ?お前が人間やめとけ。
豹変ワロタw クラスのメソッドって最後にreturn;書くべきなの? ↓ ごめんなさい、ちょっと質問を変えます。 ↓ その答えが知りたかったです。 ↓ わからないから聞いたのになんでそんなこといわれないといけないんですかっ! ↓ ハァ?お前が人間やめとけ。
950 :
nobodyさん :2007/05/25(金) 10:18:21 ID:kfg7VEbw
質問があります。 いまチャットを作っていまして、自分がメッセージを投稿したか、○秒ごとかに 画面の更新をしています。 これがたまたま重なるようなときに「情報を再送信してください」ダイアログが出てくるようです。 これをうまく避ける方法はないでしょうか?
コンストラクタやsetメソッドなんかは返り値なんて普通返さないわけだが。 わけもわからず、なんでもかんでもreturnしてるのはおかしい。
>>950 Ajaxでリアルタイムに更新おぬぬめ。
953 :
950 :2007/05/25(金) 11:02:32 ID:kfg7VEbw
>>952 実はAjax挫折してしまった口なんです。
わかりやすい初心者向けサイトとか、おすすめはないでしょうか?
ぐぐれよ
>>953 Ajaxとか言う前に、javascriptの初歩を勉強しなさい。
そのへんのソースコピペでちょっといじれば使えるはず。
ヒント:lace
ゴーストバスターズ!
お勧めの英語のML教えれ。
通報しますた。
質問ないからあげますね。 何でいつもこの時間は質問がこないわけw 暇で氏にそうだ
966 :
nobodyさん :2007/05/25(金) 15:26:41 ID:3AEIFxDG
>>965 だから、何でおまえはこの時間暇そうにしてるんだ?w
967 :
nobodyさん :2007/05/25(金) 15:28:09 ID:3AEIFxDG
PHPで読んだら勉強になるソースってどんなのありますか?
968 :
950 :2007/05/25(金) 15:31:00 ID:kfg7VEbw
リフレッシュを location.href="○○.php";に変えたらいけたよ。 ホントお前らは使えない。
969 :
nobodyさん :2007/05/25(金) 15:33:01 ID:3AEIFxDG
ソースも晒さずに(笑)
>>967 公式サイトのマニュアルの下のほうにずらっと海外の人がソース投稿してる。それをみれば勉強になるよ。
971 :
nobodyさん :2007/05/25(金) 16:22:39 ID:3AEIFxDG
たとえば関数リファレンスのarrayのページを参照してみてください ずらずらとソースがかかれてます
ID:3AEIFxDGは凄い偉そうなのにマニュアルすら読んだこと無いのか・・・
974 :
nobodyさん :2007/05/25(金) 16:57:28 ID:3AEIFxDG
暇そうだなw
nihongo de ok
>>976 その元の記事、何を言っているのかが分からん
// hello.php
Hello<br>
// foo.php
<html>
<body>
<?php requre_once('hello.php'); ?>
</body>
</html>
で、エラーが出るって事かと思ったが
そんなことないよな
記事のさらにリンクにある小飼氏も咆えているね〜
暇な釣り師のしくんだことですね
>>980 無料鯖で検索サイト構築するとかアホだろ
最近変な検索エンジンが多くて困る
一部が有料な会員制サイトで、金払ったら機能が増えるってのは、 入金を手動で確認して、裏でクリック一つとかでコントロールしてんのかなぁ? もうちょっとスマートなやり方がありそうな。
ほうほう、例えば?
985 :
nobodyさん :2007/05/26(土) 00:59:02 ID:JfY8I1NK
>>984 ありそうだから、どなたかご存知やアイデアがないかと申し上げてるしだいでございますよ。
>>983 そりゃ支払い方法によるだろ。
カードならそんな面倒なことしないでいいし。
>>988 結局は支払いを確認したうえで手動じゃないの?
>>986 まったくの無根拠で「スマートなやり方がありそうだ」とか書いてんの?
こりゃびっくりだ。
>>985 それはフレームワーク自体のソースを読むといいの?
それともこのフレームワークでシステム構築をしてみて
勉強するのがいいの?
ZFってRoRのrouterにあたるのはなんなの?
>>989 クレジットとかプリペイドとかのオンライン決済なら
よっぽど重要なサービスでもない限り
自動で処理させてるけどなぁ。
手動操作のサイトなんてそんなにたくさんあるの?
995 :
992 :2007/05/26(土) 10:40:30 ID:???
>>994 ども。
Controllerのサブクラスなのか・・・ちょっと違和感
996 :
nobodyさん :2007/05/26(土) 14:57:51 ID:26ICpUA0
$body = "I am PHP!
http://www.php.net/< >";
$body = htmlspecialchars($body);
$pattern = "(https?:\/\/[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)";
$replacement = "<a href=\"\\1\">\\1</a>";
echo preg_replace($pattern, $replacement, $body);
/*
Result: "I am PHP! <a href="
http://www.php.net/<> ">
http://www.php.net/< ></a>"
$bodyをサニタイズしているので、"< >"がハイパーリンクのアンカー文字列に
含まれてしまいます。どうしたらよいのでしょうか?
*/
1000なら可愛い女と一緒に幸せになれる(U_U*)
1000なら↑は一生童貞
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。