【PHP】下らねぇ質問はここに書き込みやがれ 28
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ず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ってどう違うの?
→ echoはコンマ区切りで書けるけど関数ではない。printは関数。パフォーマンスは気にするな
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に保存?
→ 好きにしてください
クソスレたてんな1。しねや。
28も続く板の中でもアクティブなスレの
次スレを建てただけで煽られる
>>1乙
>>1乙
>>9 つtmp6.2ch.net/kitchen/
/ /:::::::::::::::/::::::::::::::::::::::::::::::/::::::!::::::::\:::::::\ |
! ,/::::::::::::::::::/:::::::::::::::::::::::::::::::/::::/::|::::::::::::::\::::::::ヽ !
//::::::::::::::::::/:::::::::::/:::::::::::::,ィ:::::/!::∧:::::::::::::::::ヽ:::::::::V
fl::::::::::::::://::::::::/::::::::::::://::::/// \:::::::::::::::!::::::::::::!
j !::::::::::::::リ::__∠:ー::ナ' ´ /::///` ー-ゝ、_::::!::::|::::::::::::l
/ !::::::::::::::|::::/::_;∠´__-. ノ/ // -__ヽ\:ト:::!::::::::::::j
| !:::::::::::::l!/ヾ. {.,ィ:::rィ"´ 〃 'イ j;;;r f''ッヽ!:ノ:::::::::イ:!
ノ! ヾ、:!::::::::ヽ ゞ_`.ノ / ゝゞク レ:::::::;;∧:|
∧! ゞ、:::::::ト、.  ̄ /:::::イ/ ::!::|
/:::/! ):ゝ、:;;\ ` /:::// /) ::!::|
/:::::∧! ※ !!::::: |:~!\ ヽ三.ヲ フ´!! j /) :::::l:::| 下らねぇ質問はここに書き込みやがれ、ちび
. /::::::/:/ゞ !!::::. |:::|::: へ ,.イ|:::::::|| ※ !j:|:::::::l:::|
/::::::/::/:::: |! |ヽ:::::|:::l::j::: ノ´`r 、. _ ィ=ヽ::|::|::::::|! ノノ::|:::::::|:::|
/:::::::/:::/:::::::::ゞ! |:::::レ::メ/ j、 ノ \|::::::|! !l::::|:::::::|:::|
:::::::/:::/:::::::::::::_j_. ,Vf`/ __\ ./_ ゝjl ヾ!:::|:::::::|:::|
::::/::::/::::::::: /三! |/ /:::::::::::~~:::::::::ヽ ノノ /`ヽ|::::: |:::|
連続投稿で規制かかりました
続きはってくれた人ありがと!
bin2hexを使えば文字を16進形式にできますが
16進形式の文字を通常の文字にするにはどうすれば良いですか?
16 :
nobodyさん:2006/09/03(日) 23:09:22 ID:i2B+urEf
PHPとはあまり関係無いと知りつつ、ここが一番わかる人が多そうなので質問させてください。
OS:Windows2000、WEBサーバ:apacheという組み合わせでPHPを動かしているのですが、
---
ユーザがサーバAへファイルをアップロード
→サーバAとローカルネットワークで繋がっているサーバBにUPされたファイルをcopy
---
これがうまくできません。エラーがpermission denyでサーバAにはファイルがあるので
サーバBのアクセス権の問題なのは間違い無いのですが、サーバBのディレクトリには
どういった権限をどういう方法で与えるべきなのでしょうか?
本来はwindowsネタかと思うのですが、よろしくお願いします。
>>15 ふつー、マニュアルには反対の動作をする関数があれば記載されている。
>>17 ということはないのですね・・・
不便だorz
釣りだから相手すると疲れるよ
>>20 packもあるし、そのページの下の方に
腐る程逆の動作をするサンプルコードが書かれてる
>>22 すみません、できました、ありがとうございます。
ですが、文字化けばっかりですね・・・。
>>16 スレ違い。
Apacheの実行ユーザではネットワーク接続先を認識できてないか権限がない。
Apacheの実行ユーザの確認+ユーザ権限設定をWindows方面の板で聞いてこい。
今PHPでテキストを暗号化する関数作ってるんだけど何か良い案ないかな?
今はXOR暗号化でやろうと考えているんだけど、SEED値が思い浮かばない・・・
SEED値を全部1で埋めれば簡単だけど、それじゃばれる可能性がある。
やっぱり秘密鍵見たいな物を作ってそれはSEED値とするしかないのかな?
時間でもハッシュしてseed作ったら?
>>25 なんでわざわざ独自の暗号化関数なんて作ろうとするの?
>>29 理由になってない。
Mcrypt や OpenSSL で使える暗号化関数は可逆ですが?
31 :
25:2006/09/04(月) 01:08:02 ID:???
>>30 両方サーバに入ってないっす・・・
なので、今後のことも考えて(今みたいにサーバにモジュールがない等)
自作したものを使いたいと考えています。
ただ、やることはOpneSSLとまったく同じだと思います。
基本的にSSLをテキストに適用するって感じか・・・
そうなると、秘密鍵から公開鍵を生成して、それで暗号化する。この時点で、ビット数が元テキストと
公開鍵で同じじゃないとダメ・・・
しかもその方法で暗号化したら複合化するには公開鍵じゃないと複合化できない。
(秘密鍵がある意味がなくなる)
もう書いてて訳が分からなくなってきたorz
>>27 時間をとっておけばそこからキーを作れるからいいんでない?
見当違いだったらスルーよろしくー
暗号化は必須なの?
署名っぽいことしたいだけなら、ハッシュ値を署名代わりに
使えば要件満たせるかもよ?
なんか前スレの最後ぐだくだになってるのがワロタw
なぜあのタイミングで質問するんだYO!
Torや匿名目的プロキシなどを刺してくる連中を弾くには
どういう手法が効果的でしょうか?
自動で弾くのは原理的に不可能に近いんだろうか・・・
>>34 だからどうした? PHP の関数を列挙しているだけだが?
>>36 プロキシ経由の時だけにセットされる環境変数があったら弾くとか
>>36 前スレ開いてBBQ、DNSBLんとこ読んでこい
ソースというか考え方について質問です。
ブログでコメントのスパムがやたらと多いので、入力チェックを入れて対処してます。
しかし、それでもスパムは止まりません。英字で全項目埋めた内容で登録してきます。
こういうのを対処するのにIPアドレスを記録して制限する方法に
他、何が考えられるでしょうか?投稿時にCookieを付与して連続投稿禁止とかですか?
>>41 すれちがい
ブログのプラグイン探すのが吉でしょ
>>41
最近流行りのは日本語を含まない投稿はすべて禁止にしてしまうやり方かな。
連続じゃなくても1件でもうざいもの。あんなの。
「こういうのを対処」というのがどういうのを対処したいかで方法は変わってくるよね。
内容は関係なく連続投稿「だけ」防止したいというなら、IPと投稿時間をを記録した上で
一定間隔以内の連続投稿は弾く、ってのがセオリーなんじゃない?
Cookieはロボットスパム相手には全く無意味。個人の連続投稿防止ならそれなりに意味あるかも。
44 :
43:2006/09/04(月) 11:56:04 ID:???
>>42 自作ブログの話かと思ってた。
配布されてるブログのスパム対策ならプラグインがいくつも公開されてるよね。
45 :
41:2006/09/04(月) 12:25:35 ID:???
>>43 ありがとうございます!大変参考になりました。
46 :
nobodyさん:2006/09/04(月) 12:50:18 ID:+7sjm0Rm
文字通りくだらない質問かもしれませんが。
PHPのCGIモードというものでプログラミングしたいのですが、
CGIモードってプログラミング上どう変わるのでしょうか?
「HTMLの中に埋め込むのは出来ない」らしいのですが・・・・
<? ~ ?> みたいな。
※参考URL等もあればお願いします。
>>46 #!/usr/local/bin/php
<?php
PHPプログラム
?>
ってスタイルでHTMLを出力するだけかと。
呼び出し方法とかはPerlのCGIとほぼ一緒。
頭の1行の問題があるから.htmlをCGI扱いにして
全部のHTMLでPHPパースを行うってのは現実味がないけど、
(サイトがかなり重くなっちゃうし)
普通にHTMLモードとPHPモードの切り替えはあるから
HTMLに埋め込むスタイルでも作れるよ。
.phpでHTMLを書く→中にPHPを埋め込む→1行目に#!!を入れる→パーミッションは705
ってとこじゃない?
場違いでしたら誘導してください
http://www.phpweb.jp/ のP-Counterを設置しようとしたのですが
0時にリセットされません、仮に1時間の時差があるとしたら
どこを触れば修正できるのでしょうか?
よろしくお願いします
>>48 $nowtime = time();
という行で時差の秒数分だけ$nowtimeを±すればいいと思う。
>>50 該当しそうなのってこの辺かね~
> 6. セキュリティ対策
(略)
> 例えば、パーザは、単一のオクテット列 00として符号化される時に、NUL
> 文字を禁止できるけれども、違法な2オクテット連続 C0 80を許し、それを
> NUL文字と解釈する。
(略)
大雑把に言うと、UTF-8の並びとしてはおかしなデータを送信することで、
通常のヌル文字とは異なる形のヌル文字をプログラムに送り込むことが可能で、
それによりバイナリセーフの関数でも処理できないバイナリ攻撃が可能になる。
…という話かな?と思うんだけど、詳しい人解説よろ。
そもそもPHPのバイナリセーフ関数がこれをチェック可能なのかどうかだよね。問題は。
>>49 ありがとうございます
早速修正してみたいと思います
53 :
nobodyさん:2006/09/04(月) 14:41:48 ID:+7sjm0Rm
質問なんですが、PHPの制作を会社に依頼した場合、
受け取ったプログラムは普通、複数設置してもかまいませんかね?
たとえばkent-webのaska掲示板みたいのを作ってもらって、
それを↓
1.複数のドメインの違うサイトに設置して使用。
2.同じドメインのサイトで複数おいて設置して使用。
3.カスタマイズして二次配布(金銭は無料、有料)
した場合問題ありますでしょうか?
>>54 普通はそれ、最初の契約時に契約内容で取り決めとくと思う。
>>54 そりゃあ、依頼する会社に聞けば一番確実じゃん
ていうかそういう条件付けて依頼すればいいじゃんか
2chで聞いてOKって言われたのにって言い訳すんのか?プゲラ
>>54 一般例で言ったらいずれも問題ありかと。特に3。
1、2は文句言わない会社の方が多いと思うけど文句言われても仕方ない。
(無問題なわけではなく、些細なレベルなので無視してくれるだけ)
58 :
nobodyさん:2006/09/04(月) 15:04:22 ID:KTYmnZco
Windows上で動いているPHP(CLI)で自身のIPアドレスを取得するにはどうすればいいのでしょうか?
gethostbynameとgethostbynamelを試してみたのですが、localhostでは127.0.0.1しか返してくれません。
php.exe -i とかで確認した限りでは環境変数にも入っていないようなんですが。
localhostで127.0.0.1が帰ってくるのは当たり前
ネットワーク勉強しなさい
なるほどためになりました。
あと、最後に伺いたいのですが、領収書の但し書きってなんて書くのでしょうか?
掲示板スクリプトなら
1.掲示板スクリプト製作代として
2.WEBアプリケーション製作代として
3.PHPプログラムとして
4.プログラム製作代として
こんな感じでかいてもいいのでしょうか?
お仕事の経験のある方どなたかご教授ねがいます。
61 :
60:2006/09/04(月) 15:36:36 ID:???
>>60 知らんがな。どーでも良い。
ここはビジネス一般について問う場所ではない。
63 :
nobodyさん:2006/09/04(月) 15:50:45 ID:8w646tTM
環境を新しくすると
mb_send_mail が送れなくなりました。
何が可能性として考えられるでしょうか?※ちなみにmail関数でもNGです。
Redhad 2.4
PHP 4.3.2
Configure --'enable-mbstring'はOK
qmailを使用。sendmailはインストールしてません。
レンタル専用サーバで、管理パネルからメールを作成したりして問題がないので
qmailそのものは、問題なく起動してると思われる。
php.iniのsendmail_pathを変更・確認
sendmail_path = /var/qmail/bin/sendmail でもだめ
sendmail_path = /var/qmail/bin/sendmail -t -i でもだめ
sendmail_path = /var/qmail/bin/qmail-inject でもだめ
※どれを使ってるのか分からなかったので、全部試してみました。
一応上記パスににバイナリがあるのは確認してます
また、mb_send_mail使用の際、返り値はtrueとなっています。
思い当たる方、アドバイスお願いします。m(_ _)m
レンタルサーバの名前も書かないで聞くなんて鼻でわらっちまうぜ
$str="aあいうえおb" みたいなデータがあり
aとbの間のデータが欲しいのですがどうするのが簡単でしょうか?
preg_match('/a.+b/',,$str,$match)でやるとaとbまでくっついてしまって・・
67 :
65:2006/09/04(月) 16:16:23 ID:???
ちなみにaとbの間には数字や全角英語・記号等いろいろな値が入ります
>>63 サポートに電話して聞いてみるのが一番速いとおもうが
シェルから
echo to:(自分のメアド) | /var/qmail/bin/qmail-inject
で届くか
69 :
65:2006/09/04(月) 16:18:57 ID:???
>>66 早レスありがとうございます。括弧ですか・・・・んー
70 :
63:2006/09/04(月) 16:20:20 ID:???
自己解決しました。
おまえらに聞くのがまちがいです。
71 :
nobodyさん:2006/09/04(月) 16:23:35 ID:8w646tTM
>>68 ありがとうございます。
残念ながらそういった対応は、サポートではしてないそうです。
(あくまで、その鯖屋が用意した管理ツールの使い方のみだそうです。)
一応これも試してみたのですが、ダメでした。
>echo to:(自分のメアド) | /var/qmail/bin/qmail-inject
それと書き忘れてましたが、
maillogにはエラーがありませんでした。
すみません。
初心者なのですが、
LINUXを入れたサーバーにPHPの住所録プログラムを作っています。
そこで、「はしごの高」や「立ちの崎」を入力すると、
データを登録するときに消えたり、メールで文字が消えたり、
GDで文字を表示すると、化けたりします。
何でですか?
>>71 そのコマンドで送れないならおそらくqmailの問題じゃないかね
qmail-injectがちゃんと動いてりゃメールが配信に成功しても失敗しても
maillogにどういう原因で配信できなかったのかログは出るはず
成功のログが出てるなら受信側かもな
phpかDBの設定が悪いんだろ。
>>74 旧字体の「高」「崎」とか一部使えない文字がある
78 :
74:2006/09/04(月) 16:39:51 ID:???
>>77 レスありがとうございます。
これはその字をそのまま使うことを諦めるしかないのですか?
>>78 UTF-8ならいけるのかなあ
文字コードとか旧字体あたりでぐぐってくれ
キャラクタセットに含まれるかどうかわからんような文字は
あまり使わない方が個人的にはいいと思うがな
>>79 UTF-8 は UTF-8 で別の字が駄目だったりするからね。
>>80 数日前に荒れる原因になった人かな?
>>58 $_SERVER['SERVER_NAME']に現在のスクリプトが実行されているサーバーのホスト名がはいるから、
それを名前解決すればよくないもんがー?
84 :
74:2006/09/04(月) 16:58:40 ID:???
>>79>>82 このような場合、皆さんはどのように処理をしているのですか?
私としては、どうしても使いたいのですが。。。
れべるひっく・・・
87 :
nobodyさん:2006/09/04(月) 17:14:40 ID:KTYmnZco
>>83 Windows版かつCLIだと Notice: Undefined index になってしまいます。
88 :
nobodyさん:2006/09/04(月) 17:18:41 ID:8w646tTM
>>63 ありがとうございます。
環境は、すべて変わりました。
PHPのバージョンから、OSまで
>>75 メールは送れないのですが、ログはありました。
/var/logではなく、/usr/local/psa/~のほうにありました。
中身ですが、さっぱりわかりません。
日付 www qmail : ○○--
と延々と続いてます。
ちょっとログ調べてみます。
ありがとうございます
>>87 んー、ホスト名競ってされてないかもんがー
phpinfo() でかくにんするもんがー
$_SERVER["SERVER_ADDR"]って環境変数もあったもんがー
CLIで実行した時は$_SERVERはセットされない
>>84 超漢字を使う。
いや、半分冗談だけど、実際のところ、半分冗談じゃないかも。
>>85 いや、だから UTF-8 にすれば全部解決じゃないっての。
確かに「はしご高」は解決するだろうけど。
Unicode が抱える諸問題知らないだろ。
>>90 うそ、マジ?いまVirtualPCにWinsowsインストールして実験するから、
小一時間待ってもんがー
93 :
58:2006/09/04(月) 17:53:24 ID:???
CでNIC一覧のIPを返すプログラム書いてexecで呼んでみます。
>>54 >3.カスタマイズして二次配布(金銭は無料、有料)
君はたとえば「WindowsXP」をコピーして配布してもOKだと思うか?
あるいはテレビ放送を録画したものを自分で再編集して、
「これはオリジナルです」と言ってサイトで勝手に公開してもOKだと思うか?
どちらも、もともとの制作者に了解を取らない限り「違法」だってことは君でも分かるだろう。
知的所有権とは、つまりそういうことだ。
何やら激しく鬱陶しいから「もんがー」をNGワード指定っと
>>91 Unicodeの問題って波線やバックスラッシュのことで間違いない?
他コードとの変換テーブルの整合性が甘いんだっけ?
メール送る場合のJISやLINUXでfontの都合でEUCにしなければいけない場合に、
面倒なことになるのかな?
>>90 それ良く聞くんだけど
Unicodeが抱える問題ってなあに?
情報まとまってるサイト知らない?
99 :
nobodyさん:2006/09/04(月) 18:59:22 ID:sazhqf+L
質問、答えてくれます?
PHP(4.3.11)でDOMXML使えるようになりたいと思ってます。
XHTMLのこういう部分、pタグの中身を引っこ抜いて表示させたいんです
<p>教えて君で<br />ごめんね</p>
乱暴かもだけど、こんな感じで引っこ抜いたら
$dom = domxml_open_file($file02);
$node_array = $dom->get_elements_by_tagname("p");
print $node_array[0]->get_content( );
<br />要素は無視されて(?)改行されないんですよね。。。
キチンと<br />で改行させる良い方法があれば教えてくださいませ。
>> <p>教えて君で<br />ごめんね</p>
氏ね、聞く態度が間違ってる。答えてやる気にならん。
おっと、<br>は&lt;br&gt;ね
>>101 今、コードも、DBも、表示も全部UTF-8のサイトで
「葛」の文字をいれて表示させてみたんだが問題なさそう。
107 :
65:2006/09/04(月) 19:38:58 ID:???
>>106 それはフォントの問題で、文字コードの問題じゃないから。もんがー
>>108 よく分かってない人は引っ込んでおいた方が良いと思うよ。
110 :
99:2006/09/04(月) 19:48:40 ID:???
>>102 レスありがとうです。
確かにその方法ならいける事はいけると思いますねー。
でも、なんかもっとスマートな方法がないかと思って探してます。。。
ともあれ、ホントにありがとうです。
あと、
>>105が突っ込んでるのはXMLではbrタグ(ていうかインラインタグ)は<br />と書くってのだと思います。
自分のせいで突っ込みの対象にさせてしまってゴメンなさい。
ほんとにありがとうです。
>>100 態度が良くなかったですか。。。ごめんなさい。
111 :
サザンのトリビア:2006/09/04(月) 19:49:08 ID:U4aJFg79
マイミク募集中!
詳しくはミクシーで「サザンのトリビア」で検索してね♪
ttp://off3.2ch.net/offevent/ オフ板もよろしく!
\ ¦ /
\ ¦ /
/ ̄ ̄ ヽ,
/ ', _/\/|_
ノ//, {0} /¨`ヽ {0} ,ミヽ \ /
\ / く l ヽ._.ノ ', ゝ \ < バーカ!>
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _) |//\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
>>105 「葛飾問題 フォント」もしくは「葛飾問題 メイリオ」でググれ。
UTF-8ではフォントが対応していれば、略字も印刷標準字も表示できる。もんが
>>112 いや、だから、ほんと上っ面しか分かってないね。
でも
>>100は本当は知らないから、このままシカトに1000だめぽww
>>94 一般に市販されてるものと直接発注したものとでは扱いが違うかもしれないからって質問だろ。
実際はその辺はライセンス次第で、権利丸ごと買い取りになってれば問題ない話だからな。
>>112 グリフと文字コードの話がごちゃまぜになってる。
君風に返すと「葛城市 メイリオ」でググれ。
118 :
nobodyさん:2006/09/04(月) 20:43:24 ID:GtVX2+5a
もんがーじゃないけど
>>117ぐぐったけど意味わかんないお
漏れも葛飾問題UTF-8は関係ないと思うお
100だけどおまえら見当はずれで足元すくうような発言にワロタw
とにかく もんがー=良心君 ということは分かった
>>117 文字のことに自信ないけど興味があるおいらが出てきましたよっと・・・
葛はUTF8関係ないよう気がするけど
これって、フォントの字形の話でしょ?
ってことは、既存のShiftJIS、EUCの文書も影響受けるって事でしょ?
あと、いくつかの漢字は新規に追加されるそうだけど、それはUnicode
の使用を前提にしてるんじゃないの?(メイリオになると、ShiftJISや
EUCの文書でも新漢字使えるの?)
UTF8特有の問題は、¥問題、他エンコードとの変換テーブル問題、
RFC2279に記述されているのセキュリティ問題、の3つは認識
してるんだけど・・・他に知ってるのある?
>>121 なにを「問題」と捉えているかの違いだと思う。
「葛」の字の件は、Unicode に於ける Han Unification 問題・コードセパレート問題
のサンプルとして言っているに過ぎないかと。
>>122 Han Unification 何てとっくに解決してるもんが。。
>>96 CLIでも、gethostbyname($_ENV['COMPUTERNAME'])はいけると思う。
無理やり感がいっぱいだが
preg_match('/((\d{1,3}\.){3}\d{1,3})/',(`ipconfig.exe`),$str)で$str[0]とかw
# ここままだとipconfig.exeのフォーマット変わったらお終い
125 :
121:2006/09/04(月) 23:12:59 ID:???
126 :
48:2006/09/04(月) 23:14:32 ID:???
>>49 触ってみましたが修正できませんでした
ちなみに time= + 1*60*60と60*60*1 と2通り試しました
何か間違っているのでしょうか?
>>126 PHP5.1.0以降date.timezoneっていう設定が追加されたんだが、きちんと設定してある?
129 :
48:2006/09/04(月) 23:40:06 ID:???
>>128 デフォのままやっているのでちょっとよくわからないです
スクリプトにはそういう項目はありません
>>129 バージョンとともにphpinfo()で確認しろ。
5.1.0以上で設定してないなら設定をしろ。
iniをいじれないなら、スクリプトにdate_default_timezone_set関数を追加しろ。
>>129 >>1を読んでID出しなさい
そしてphp.iniをチェック汁
自鯖?レンタル等で国内なら管理者に相談してみれば?
>>130 あと、プログラマじゃないなら>127のスレに移動しろ。
>>116 だからそれは「契約書読め」で終わる話だわな。
やっぱ個人でも契約書は交わすべきだな。
ある客とは、いつも無しだけど、絶対に流用されてる。
マシン構成や、鯖に入ってるソフトも教えてくれなかったり
そういう部分がまだ決定してないから、
どういう環境でも動くように作ってくれと言われる。
もう「流用しますよ」と言ってるようなもんだ。
いっそコンパイルしてバイナリで納品しようかな。
>>134 つーか契約書があって当たり前だろう。
「契約書を交わさない=好き勝手に使われるのを黙殺」ってことと同じ意味だぞ。
>いっそコンパイルしてバイナリで納品しようかな。
「いっそ」じゃなくて、普通当たり前だと思うが。
もちろん暗号化バイナリね。
お前みたいなスットコドッコイが安い値段と適当な契約でホイホイ仕事を請けるから、
業界全体が安く買い叩かれて、なおかつDQN客がどんどん増えるんだよ。
お前みたいなバカにはマジで困るよ。
Zend Encoderは必須
ログインフォームなどで、パスワードを入力してEnterキーを押すと
ボタンが押されてそのまま送信される、と言うのがほとんどだと思うのですが、
自分が作成した場合はなぜかEnterを押してもSubmitした事にはなりません。
プログラムの構成として、form.php内にパスワード判別をIFで作成して
テキストボックスに入力した値が一致すればログインページ(login.php)に
loationすると言った感じです。formタグのソースも特別変わったことはしていません。
これは私のPC上の問題でしょうか?
「htmlが間違ってる」に一票。
情報足りない。
>>138 俺もHTMLが間違ってるに一票
まさか
<input type="button" value="SEND">
~~~~~~~~
何かにしてないよな?
141 :
140:2006/09/05(火) 01:33:30 ID:???
あ、凄いずれた
typeをsubmitじゃなくてbuttonにしてないかってことね。
>>138 実際はボタンが自動で押されるわけじゃないけどな。
たとえば
<form action="aaa.php">
<input type=text name=a value="XXX">
<input type=submit name=b value="送信">
</form>
というフォームだった場合、
ボタンクリック時→ a=XXX&b=送信
Enter入力時→ a=XXX
という感じで本来一緒に送信されるはずのパラメータbの送信が無くなる。
プログラム側で if(isset($_GET['b'])) みたいな判別をしてた場合、Enterでは動作しなくなるよ。
143 :
nobodyさん:2006/09/05(火) 04:37:11 ID:Yak4TZbg
質問です。
header出力で画像を表示させたいのですが、同じスクリプトでsessionを使うと
ブラウザで画像を保存する際に必ず「無題.bmp」になってしまいます。
sessionを使わなければ正常に動くのでheaderの問題だと思うのですが、
どうにかsessionを使いつつファイル名も正しく出力させる方法は無いでしょうか?
>>138 IEのバグだか、それともHTMLの仕様だか知らないけど、
submitボタンのname属性は、Enterキーを押した場合はPOSTされないよ。
>Submitした事にはなりません
だからこれは勘違いで、submit自体はされてるけど、submitのname(とvalue)は
送信されてない、ってことね。
pingの送信をしたいのですが、最初のソケット作成時点で失敗します。
$socket = socket_create(AF_INET, SOCK_RAW, 1);
結果: Warning: socket_create() [function.socket-create]: Unable to create socket [1]: Operation not permitted in ファイル名 on line 行
原因をご存知という方、どうか教えてくださいませ。
>>147 root で動かせば警告は出ない門がー
逆にRAWをケットの生成にはroot権限がひつようもんがー
そのスクリプトをユーザ権限で動かしたいなら、
sudoかsetuidするながも
ありがともんがー
やってみるもんがー
もんがーうるさいもんがー
152 :
138:2006/09/05(火) 14:05:02 ID:???
レスが遅れて済みません。ソースは
>>142さんが書いていただいてるような感じです。
ただ、142さんの説明を見てると、if(isset($_POST['b'])) としているので
これがおっしゃるように影響しているのかもしれませんね。
>>144 なるほど。nameとvalueは送信されないから、ページ上でのsubmit判別は
有効とされず、Location処理が行われないと言うことですね。
もう少し設計を考えてみます。アドバイス、ありがとうございました。
sessionのPraga変えたらできなかったっけ?
157 :
nobodyさん:2006/09/05(火) 17:34:09 ID:7Vllj4DH
requireされたファイルから更に他のファイルをrequireし、その中から一発で最初のファイルにreturn
する方法はないでしょうか?。
…それはちょっと厳しい気がするなー
>>157 そんなのないし、出来たとしても保守性が悪すぎる。
とりあえずプログラムの作り方を見直したほうがいいと思う。
160 :
nobodyさん:2006/09/05(火) 18:00:56 ID:7Vllj4DH
>>158-159 やはり無理ですか、exitはあまり使いたくなかったのですが
exitで処理をとめるようにします。
ありがとうございます。
ヤフオクに、PHPによるWebアプリケーションスーパーサンプル第2版という本があったのですが、
これって結構勉強になりますか?
PHPは独学の人が多いと聞いたので、本買おうか迷っているのですが
>>157 requireはファイルの単純な読み込みなので、
exitとかかんけいないもんが。。
>>163 関係あるって。
requireしたファイル中でexitしたら読み込み元のプログラムはrequire以降を実行できない。
>>164 あ、そんな使い方があるんだ。。ちょっと目から鱗。
>>157 php5だったら例外をthrowしたほうがいいけど、php4だったらfunctionとreturnをうまく組み合わせるのが良いと思う。
167 :
nobodyさん:2006/09/05(火) 21:26:54 ID:7Vllj4DH
>>166 throwなんて物があったのですね
tryと上手く利用すれば処理をまとめられそうです
ありがとうございます
districtが新マップって聞いてたんだが
この発表だとdelta と stadtrand ってマップになったのかな?
170 :
nobodyさん:2006/09/05(火) 22:28:47 ID:CCKvwt5u
ブラウザがcookie受け入れ可能かどうかを調べるには
どうすればいいですか?
>>170 クッキーを発行して読み込んでみればいい気もするが
単なる思いつき
>>170 PHP側では一度発行して最度読み込ませないと判別できないからJavaScriptで判別
させた方が良いと思います
173 :
nobodyさん:2006/09/05(火) 23:10:29 ID:08m/EI5z
$sql="UPDATE member_table SET update='テスト' WHERE id=1";
の構文でエラーが出て気が狂いそうです。助けてください。
updateのデータ型はvarchar(20)です。
ちなみにデータ型intの場合で数値なら同じ構文でUPDATEできます。
mysql_query($sql, $conn)
フィールド名がまずい
>>173 フィールド名のupdateは予約語だからな・・・
あとはDB板のMySQLスレに行ってくれ
176 :
nobodyさん:2006/09/05(火) 23:19:54 ID:08m/EI5z
そうなの?
カラム作る時に注意してくれないのかそれ
>>173 とりあえず、
$sql="UPDATE member_table SET `update`='テスト' WHERE id=1";
としたらどうなる?
179 :
nobodyさん:2006/09/05(火) 23:29:05 ID:08m/EI5z
updateをupdayに変更したら解決しました。
皆さんありがとうごじました。以前int型でupdateと言うフィールドを使ってたときは
問題なかったのですが・・・。あっちも変更しておいたほうが良いですね。
>>178 さんのやり方も大丈夫かも知れません。が命令と被るフィールドは使わないほうが無難ですね。
もう一度みなさんありがとうございました。この下らないことで4時間悩んでました。
180 :
nobodyさん:2006/09/05(火) 23:30:31 ID:08m/EI5z
ちなみにSETの値を複数指定するのってANDでつなげたらよろしいのですか?
183 :
nobodyさん:2006/09/05(火) 23:34:17 ID:08m/EI5z
>>182 厳しいながらも温かい指導ありがとうございました。
>>183 MySQLスレにもきちんと挨拶して来い、マルチ坊や
185 :
nobodyさん:2006/09/05(火) 23:49:46 ID:08m/EI5z
すみません
逝ってきますw
>>177 普通にしてくれるが、phpmyadmin等のツールを使ってると
>>178のようにクォートしてくれるので気が付かない香具師も多い。
これからPHPを勉強しようと思うのですが、
エディタや開発環境は何がお勧めでしょうか?
さんざん既出の話題だとは思うので、
どこかまとまっているところとかあれば
教えていただけるとありがたいです。
>>188 まず自分の使ってるOSとかを書かないと
191 :
188:2006/09/06(水) 02:29:15 ID:???
>>189 すいません、そうですね。
開発環境はWindowsXPです。
実行環境はまだ準備してないのですが、
XAMPPというのを入れてみようかと思っています。
>>190 ありがとうございます。
さっそく見てみます。
色んな視点があるだろうがXAMPPが相当楽なのは確実
分かりやすいと思うし、php4と5の切り替えが一発とか・・
勉強になるという視点なら自分で集めたほうがいいが
入門用やちょっとした環境作りたいだけならXAMPPは超楽
しかし楽ちんなのに慣れるとさっきのupdateカラムみたいな事をさらっとやったりするけどね
194 :
nobodyさん:2006/09/06(水) 05:25:17 ID:I5F2jJv/
require使った場合と使わない場合だとディスクアクセスって違いますか?
もちろん高アクセスじゃなきゃ差なんて感じないんだろうけど、
1秒に100アクセスぐらいあるとどうなんでしょう?
>>194 ベンチ取ったわけじゃないので推測交じりで概略だけ。
requireで分けようとファイル1つにまとめようと、
全体の行数自体はほとんど変わんないよね?
ってことはあとはファイル名指定によるファイルオープンの回数が1個増えるだけ。
そのくらいなら秒間100アクセスでも無視できる程度しか違わないと思う。
よっぽど「すでに読み込み済みのファイルかどうか」をチェックする
CPU負荷の方が大きいんじゃないだろうか。
それでもたかが知れてる程度だと思う。
このレベルなら通常はパフォーマンスより保守性の方が重要。
別ファイルへの分割を、10とか100とか文字通り桁が違うくらいの数に
分けない限りは些細なレベルだと思うけど、そのくらいまで増えてくれば
さすがに数字に表れてくるくらいの差も出てくるんじゃないでしょうか。
数行程度の小ファイルに細切れに分割するのはさすがに問題ありかと。
そういうわけでなく、普通に分けてこれだけの数になるほど大きいプログラムなら、
コードキャッシュとか組み込んだ方がいいかもね。
あと、requireするファイルをカレントディレクトリに置かずに、かつパス指定もせず、
サーチパスを舐めさせえるような作りにしてると影響はもう少し増えると思う。
196 :
nobodyさん:2006/09/06(水) 07:31:37 ID:62uVHzx1
uniqid()で得られる結果は、完全にユニークなのでしょうか?
それとも重複した値になる可能性もあるのでしょうか?
大垣リファレンス本を読むと、
「メールのMessage-ID等として使うには十分な一意性です」
と書いてあり、一意性が確実に担保されているのかどうか微妙な表現なので悩んでいます。
他スレで
339 名前: nobodyさん 投稿日: 2006/07/29(土) 18:49:53 ID:uHG3koPT
今phpをやってる諸君、いまさらJAVAを覚えるくらいなら
悪いことはイワン、rubyとpythonをやっておきなさい。
なんてことが書かれてましたが、Python / Ruby なんてほんとにこれからクルんでしょうか?
なんとなく印象から既に廃れた過去の技術かと思ってましたが。
199 :
nobodyさん:2006/09/06(水) 08:01:20 ID:I5F2jJv/
>>195 なるほど、どうもです。
サーバスペックがしょぼいので、保守性を損ないすぎない程度に
requireを減らしてみようと思います。
>>199 そんなしょぼいサーバーで秒間100アクセスも受けてるのか?w
>>196 オプション指定なしのデフォルトであれば、ミリ秒単位でユニーク、ってレベル。
ミリ秒単位で全く同一の時刻に複数のプロセスがuniqid()を実行したら被るよ。
>>198 んー。去年辺りからRoRが注目を浴びてきてるからでしょ。
AjaxでJavaScriptがまた脚光を浴びたのと一緒よ。
ま、Javaも近々Javaベースのスクリプト言語を公開して
大半の開発ユーザをそっちに移行させちゃう予定だから、
今このタイミングでPHPユーザがJavaを勉強するってのは
確かに微妙かもしれんな。
Aspect指向の勉強にAspectJでもやってればいいんじゃないのかね。
>>201 ミリ秒ではなく、実はマイクロ秒。
マニュアルは誤記みたいだよ。
>>196 重複する可能性はほぼゼロと考えていいと思う。
第2引数にtrueを指定すれば、もっと重複する確率は減るらしい。
暇ができたら、Cで大量にプロセス生成して同時にマイクロ秒を取得するとどれくらい重複し得るか実験してみたいかも。
>>172 一回発行させてリダイレクトさせるだけでいいじゃん。
勿論無限ループにならないように注意してね。
JavaScriptで判別するのは論外。
大抵のブラウザではCookieとJavaScriptは両方デフォルトで有効になっている。
そこでセキュリティ上の問題でCookieを無効にしている人は、JSも無効にしている可能性が高い。
tmpファイルを作成せずに、
FTP経由でファイルの内容を拾ってくる方法は無いでしょうか?
現在は、FTPで一旦ダウンロードしてから、
file_get_contents()で内容を拾っています。
できれば、tmpファイルを作成せず、直接メモリに入れたいのですが・・。
>>206 PHPにはFTP関数なんてものがありますがマニュアルを読みました?
208 :
206:2006/09/06(水) 11:21:26 ID:???
>>207 読みました、
> 現在は、FTPで一旦ダウンロードしてから、
ここでFTP関数は使用してます。
FTP_関数で、file_get_contents のような使用方法ができる
関数は無いような気がします
クラス内の変数(メンバ変数?)は
グローバル変数に影響を与えないことは分かったんですが、
グローバル変数は、クラス内の変数(メンバ変数?)
に影響は与えないのでしょうか?
その場合、クラスに変数を渡すのはどんな方法を使うのが一般的でしょうか
>>208 socketを使っても一時ファイルが出来るんだっけ?
>>209 変数を渡したければ、引数で渡せ
記述が全然違うから、グローバル変数はメンバ変数に影響は与えない
メソッドや関数内のローカル変数には影響はある
$foo = 10;
myfunc();
function myfunc()
{
$foo = 20;
global $foo;
print($foo);
}
上記の出力はグローバルで定義された 10 になる
というか、聞く前に簡単なスクリプトを書いて試す癖を付けたほうがいいぞ
> 記述が全然違うから、グローバル変数はメンバ変数に影響は与えない
> メソッドや関数内のローカル変数には影響はある
メソッド内の変数!=メンバ変数、でしょうか?
メンバ変数、グローバル変数の細かな定義も曖昧なのですが、
何か参考になるサイトはないでしょうか?
また、他の言語でのメンバ変数、グローバル変数の解説でも
PHPも同じと考えてよいでしょうか?
ぐぐってみたのですが、よいサイトを見つけられませんでした。
> というか、聞く前に簡単なスクリプトを書いて試す癖を付けたほうがいいぞ
肝に銘じます
> 変数を渡したければ、引数で渡せ
これのことを指しているのでしょうか?
素人質問ばかりですいません > global $foo
こういうことでしょ?
<?php
$global = "Hello";
class Test {
var $member;
function Test() {
$this->member = "World";
}
function hogeHoge() {
echo $global.$this->member;
}
}
$object = new Test;
$object->hogeHoge();
?>
>>212 >何か参考になるサイトはないでしょうか
>>213 のレスの通り
公式サイトを読めるだけの基本的な知識がないと辛いよ
>また、他の言語でのメンバ変数、グローバル変数の解説でも
>PHPも同じと考えてよいでしょうか?
大きな部分では同じではあるが、細かいところではその言語ごとの
特色が出ている。
まったく同じと考えると、思わぬミスをすることになる。
>>212 >> 変数を渡したければ、引数で渡せ
>
>これのことを指しているのでしょうか?
>素人質問ばかりですいません > global $foo
・引数
function myfunc($foo)
{
print($foo);
}
上記のような、($foo) で記述すれば、引数として値を渡すことができる
$foo = 10;
myfunc($foo);
という風につかう
>>212 ・メンバ変数
class myclass
{
var $bar;
function mymethod($foo)
{
$this->bar = $foo;
}
}
上記のような $this->bar をメンバ変数と呼べる
$bar ではなく、$this->bar であることに注意
function mymethod($foo)
{
$bar = $foo;
}
このような場合は、メンバ変数ではなく、メソッド内のローカル変数
まったくプログラムを知らない人には、なじみにくいものだとは思うが
まあ、ゆっくりとやればいい
phpの掲示板作成のチュートリアルを探しています。
前に見つけたんですが、忘れてしまいました。
一応管理機能等がある物だったんですが・・
219 :
nobodyさん:2006/09/06(水) 16:49:47 ID:UXXHtXDV
PHPでパスワードデータをGETしたりPOSTしたりするときのセキュリティー対策
はどうしてますか?
個人ページってパスワードが漏れて困るようなシステムって基本的にないような。
使ってもアクセス制限程度だし。
顧客情報を管理するような重要なシステムなら、SSL導入。
>>219 単に通信路の暗号化という意味ならSSL使うのが正解だろ
SSL使わないときは、生で流してる。
SSL使わないけど、より安全にしたいってことなら、
クライアントでJavascript使って、パスワード+種にmd5とかして
それをサーバに流すとかすればいいんでないの?
>>219 GETならセキュリティ対策しても無意味なんで、何も対策しない。
作るアプリケーションもミッションクリティカルなものじゃない
はずだし。
POSTならSSLを導入する。
そのあとXSS対策とか色々考えるけど書くのめんどうだから後は
ぐぐれ。
とりえずSSL導入しないなら何しても無駄くらいに思っとけばよろし。
>>218 スゲー曖昧だな
記憶たよって、それを検索キーワードにしてぐぐれよ
まぁ、既にやってそうだけどさ
>>199 アドバイスきいてるの?
そんなことしたってあんまり早くならないだろうって意見がおおいじゃん
それなのにrequireとか見直すつもりなのかよ
もっとちゃんと負荷かかってるところ見極めた方がいいってことだよ
視点かえて、サーバ上でいらんプロセス動いてたら殺すとか
そういうことしたほうが効果あるんでないの?
究極的には、新しいサーバにした方が手っ取り早いって事もあるしさ
ま、他にもいろいろ考えてるんだったら、おせっかいでスマン
225 :
nobodyさん:2006/09/06(水) 17:14:04 ID:UXXHtXDV
SSLするお金がありません。md5とか試してみます。
>>212 そりゃPHP以前の問題だな
遠回りにおもうかもしらんが、
PHP入門というレベルですらなく、初めてのプログラミング
とかそういう本読んで、基本的なプログラミングの考え方
に触れといたほうがいいんでないかい?
じゃないと、ここでいくら聞いても混乱するだけだ
あと既出だが、マニュアルとかネットで読むだけでは
身につかん。解った気分になれるだけだな。
解ってるって思ってもいざコード書いて見ると???って思うこと
はたくさんあるぞ。
ま、自分でコード読んで何やってるか読み取れない時点で
理解してないってことは分かると思うんだが、ネットで探す、
でもって、コピペで動いた万歳というレベルのやしが多いんだ
なこれが。
>>225 それは個人でやってることなのか?
であれば、おれおれ証明書+OpenSSLとかで金かけずにSSLできるぞ?
仕事であるとしてなら、個人情報うんぬん考えて、SSL使いたい。
でも金かかるからヤメタってのはそりゃあんたダメだよ
ホントに個人情報漏れたときに、責任取らされないように気をつけることだ
228 :
218:2006/09/06(水) 17:38:32 ID:B1MlJIFJ
>>223 そうですね、検索ワード思いつく限りは試してるんですが思い出せません。
どなたかそのようなチュートリアルがありましたらお願いします。
229 :
212:2006/09/06(水) 17:48:52 ID:???
非常に分かりやすい説明ありがとうございました
230 :
nobodyさん:2006/09/06(水) 18:24:47 ID:Z+QAwMX/
<?phpのみ可で、<?を不可にするのって、php.iniの何処いじるんでしたっけ?
212とかぶるんだが、
グローバル変数の$_SESSION['hoge']を
クラス内、関数内で使用するにはどうすればいい?
ほとんど決まって使用する形なので毎度関数の引数にするのはいやづら
class Test{
var $hoge = global $_SESSION['hoge'];
function Test()
{
echo $hoge;
}
では上手くいかないづら
>>231 ありがと。助かりました(*・∀・)//
>>232 コンストラクタで初期化。
class Test{
var $hoge;
function Test()
{
$this->hoge = $_SESSION['hoge'];
echo $this->hoge;
}
>>232 var $hogeの参照の仕方は間違ってるし
= global $_SESSION['hoge'] ってなんだよだし
お前はまずPHPの文法から勉強すべきなんでは?
functionで引数を指定した場合は、その引数へ
指定しなかったら変更せず、って可能でしょうか?
>>237 function hoge($a = "default") {
if($a == "default") {
echo "引数が指定されなかったよ";
}
}
>>235 わざわざコンストラクタ意識しなくても
class Test{
var $hoge = $_SESSION['hoge'];
function Test()
{
echo $this->hoge;
}
でいけね?
コンストラクタは簡単に言えば初期化するとこでしょ?
コンストラクタじゃないならクラス名と関数名は別にしたほうがいいのでは?
なんか話が逸れてないか?
唐突に失礼しますが、$a[] = 1; で追加された数字キーを得る方法はありませんよね?
$a[] = 1;
なら数字キーは0じゃね?
ゴメン、間違えた。忘れてくれ
>>245 どんどん追加して行くようにしているので後からデータを変更する場合にキーを
習得しておきたいのです。
>>244 end($a);
$key = key($a);
くらいかな。1行でやる方法は思いつかなかった。
>>248 一行ではやはり無理ですよね
ありがとうございます
250 :
nobodyさん:2006/09/06(水) 19:41:50 ID:Ko4SqDiX
クラスの中で、var = $aaa;と宣言するとどうなるんですか?
>>244 配列の途中に抜けがないことを前提にできるなら
$key = count($a) - 1;
でいいと思うんだけどね。
>>251 それが数字キーとは別に文字キーも含まれていてcountは使えないのです。
切り分けるか他の方法を考えて見ます。
どうしても1行でやりたいなら
>>248を関数化して使えば?
GDライブラリはサーバ管理者がインストールしていないと
使えませんよね?
258 :
nobodyさん:2006/09/06(水) 20:13:26 ID:Ko4SqDiX
あわわ、ごめんなさい。
クラスの中でvar $aaa;を宣言するとどうなるのでしょうか?
自分で確認しろよ
>>258 メンバ変数として使えるようになります。
パスワードをDBに保存するとき、PHP側で
md5('生パスワード')とやるのと、
md5('生パスワード'+'秘密の種')とやるのと、
どっちがいいですかね??
自分はずっと前者でやってましたが、やっぱり後者にすべきでしょうか?
263 :
nobodyさん:2006/09/06(水) 21:08:00 ID:zhNqu6Fm
--file.txt-----------------------
1
<--shitei_start-->
2
3
4
<--shitei_end-->
5
-------------------------------
上記file.txtの<--shitei_start-->から<--shitei_end-->まで抜き出す方法について質問です。
自分なりに考えて、下記方法にて正常に処理することは出来たのですが、長いような気がしてなりません。
スマートな処理方法があれば教えて頂きたいです。よろしくお願いします。
WindowsXP SP2 + PHP4.4.4 + Apache2.0Handler
$shitei = file_get_contents("file.txt");
$shitei = str_replace("\r\n","",$shitei);
$shitei = str_replace("\r","",$shitei);
$shitei = str_replace("\n","",$shitei);
$shitei = preg_replace('/<--shitei_start-->(.+?)<--shitei_end-->/',"\\1",$shitei);
echo $shitei;
>>263 それで十分な気がするけど、まー短くしたいって言うなら。
$shitei = file_get_contents("file.txt");
$shitei = preg_replace("/[\r\n]/", '', preg_replace('/<--shitei_start-->(.+?)<--shitei_end-->/',"\\1",$shitei));
echo $shitei;
>>263 とりあえず
$shitei = str_replace("\r\n","",$shitei);
は要らないだろ。
private、protected、public
PHP5は↑を推奨
互換性があるからvarでもおk(var=public)
>>263 preg_replaceでmオプションでいいんでないかい
$shitei = preg_replace('/<--shitei_start-->(.+?)<--shitei_end-->/m',"\\1",$shitei);
class hoge{
function hoge()
{
$a = "1";
}
function fuga()
{
echo $a;
}
}
上のようにfuga()でhoge()のローカル変数$aを使いたい場合、
どうすればよいですか?
なんかOOPの基礎的な書き方みたいな質問が多いけど、同一人物?
さっきのvarと言い。
本を読んで自習して欲しい。
お願いです、劣化コピーはやめてください。
--file.txt-----------------------
1
<--shitei_start-->
2
3
4
<--shitei_end-->
5
<--shitei_start-->
6
7
8
<--shitei_end-->
9
-------------------------------
263じゃないけど、似たようなこと聞きたかったので質問です。
上の場合(1~4、5~8を取得したい場合)は、どんな記述方法がありますか?
>>272 2~4, 6~8じゃなくて 1, 5 も欲しいの?
それ変だと思うが。
275 :
263:2006/09/06(水) 21:54:38 ID:zhNqu6Fm
>>264 preg_replaceの中にさらにpreg_replaceが使えるんですねー。
参考にさせて頂きます。ご教授ありがとうございました。
>>265 OSによって改行コードが違うとどこかで見たんで、
それぞれに指定してみたんですが・・・。
確かに\nと\rさえ変換しておけば必要なさそうですね。
>>268 mオプションが使えれば一番いいんですが、
何故か正しく処理されなくて、スルーしてたんですよ。
原因追求と共に、もう一度調べてみようと思います。
ありがとうございました。
>>275 お前は関数呼び出しもロクに理解していないように見える。
今のうちに基礎から勉強しなおして来い。
272です、
>>274 すまそ、間違えました。
2~4,6~8ですた
>>277 括弧の位置を変えるか、マッチの番号を変える
279 :
nobodyさん:2006/09/06(水) 22:16:10 ID:Hk4G6jQR
フリー配布されているソースを見ていて疑問に思ったのですが、
$body = <<<EOM
$data[1]
EOM;
こんなふうにかかれた部分がありました。
これはなんという関数?制御構文?なのでしょうか。
名前がわからず、検索するにも困っています。
280 :
263:2006/09/06(水) 22:16:25 ID:???
>>276 無論、基礎を勉強中ですよ。
まだPHP始めて3週間程度ですので、身の程はわきまえてるつもりです。
勉強の過程でやりたいと思ったことを息抜きのつもりでやってみて
楽しんでるだけなんですよ。たまには遊ばせて下さい。(´Д⊂
283 :
279:2006/09/06(水) 22:18:58 ID:???
>>281 ありがとうございます。検索してきます!
>>268 別にmは無くてもいいかと。
mは改行部分での行頭/行末の扱いを変えるだけで、それ以外の改行は関係ない。
正規表現の中に「^」か「$」を含んでなければmはあっても無くても一緒。
mの有無に関係なく、改行変換を無くすと出力結果が変わっちゃうわけだが?
285 :
nobodyさん:2006/09/06(水) 22:23:08 ID:SJHDxyO4
PHPを本で勉強しているものですが、php5徹底攻略が良いと聞いたんですが、
軽く立ち読みした感じ、linuxユーザー向けに書いてあると思ったのですが、
windowsで勉強してる人には、役に立たないですかね??
あと、これのエキスパート編もlinux向けですかね?
どうか教えてください。
あと、お薦めの本もありましたら教えてください。
>>284 初めて知った、、、
PHPのpreg系ってmなくても複数行に対応してるのね
おらもタグの間に改行があるとmがない場合はマッチしないと認識してた
289 :
269:2006/09/06(水) 22:42:55 ID:???
どなたかヘルプみー
>>289 そういう使い方するようには出来ていないから無理だよ。
きもいけど$this->でも使ったら?
>>269 無理。
ローカル変数は外部からアクセスできないようにするためにある。
>>289 メンバ変数にでも入れたら?
次、質問する時にはIDを出すように
>>287 PHPに限らずドットメタ文字が改行にマッチしないだけで
正規表現の中に.が入ってなければ複数行は無関係でしょ。
ってことでMultiLineのmじゃなくてDotAllのsが正解だと思う。
リロード忘れて被ってたorz
296 :
269:2006/09/06(水) 23:30:58 ID:/I1yABna
レスサンクスです、
初めてクラスに挑戦しています。
FTP関連のクラスを作って、
コンストラクタでftp_connectして、
メソッドでftp関連の処理を、
と考えてたのですが、今まで関数さえ一切使わず
グローバル関数が乱立していた
(もちろん変数被ってバグ頻繁に発生)ような自分のレベルからは
なかなか理解が難しいですね汗
メソッド内全てでftp_connectするか
classの最初で宣言しておいて
$this->使うとかの方法しかないでしょうか。
>>296 > classの最初で宣言しておいて
> $this->使うとかの方法しかないでしょうか。
元々、メンバ変数ってのはそのために用意されてる仕組み。
>>296 269のコンストラクトで
$this->a = $a;
して
fugaで
echo $this->a;すればよろし。
それするときったないスクリプトになる。
それをやらなきゃ解決できないようなロジック自体がだめ
>>296 class FTP
{
var ftp;
function FTP($host)
{
$this->ftp = ftp_connect($host);
}
function getRemoteFile($remote_file, $mode = FTP_BINARY)
{
$tmp = tmpfile();
ftp_fget($this->ftp, $tmp, $remote_file, $mode);
return $temp;
}
}
こんなの作ったらいいんじゃね?
マニュアルだけ見てちゃちゃっと書いたから動くか分からんが
あぁ、returnのとこが$tempになってるし・・
何となく気分でtempからtmpに変えたけど、ちゃんとチェックしないとろくな事ないな。
よく掲示板のセキュリティ対策などのために
「IPを記録しておく」などと言いますが、
これはすなわち「$_SERVER['REMOTE_ADDR']を記録」と同義だと
考えて支障ないでしょうか?
また、プロバイダ責任法やら何やらでもしもユーザーから文句をつけられたときに、
書き込み内容と$_SERVER['REMOTE_ADDR']さえしっかりログとして保存しておけば大丈夫でしょうか?
>>302 一般的にはそうですね。匿名な串を使ってくる人もいるので掲示板の品質によっては
それらも対処した方が良いと思います。
304 :
nobodyさん:2006/09/07(木) 08:44:12 ID:MKs1ZJ98
すいません お知恵を貸してください。
"1401 0000" という文字列がありまして、
これを右から2個ずつ取り 逆に並べて
00000114 とし。 (ここまでは出来ました。
この文字列は、実は0x00000114 ということで 16進数から 10進数に直して
最終的に276を導き出したいのですが、どうやったらいいでしょうか?
$hoge = "00000114"; この文字列を16進数として型変換する方法がわかりません。
お助けを・・
>>304 276が何かわからないけどdechex使えば?
あ、逆か
echo HexDec('0x00000114');
306さん 有難うございました。
見事いきました。 コマンドの類のみ聞くのも気が引けたのですが、
探しきらなかったもので・・・ 感謝です。
308 :
nobodyさん:2006/09/07(木) 10:52:58 ID:HQk33gl2
md5()に与える引数の文字列長には制限があるのでしょうか?
それとも無限なのでしょうか?
たとえば、DBの「text型」カラムに格納されている1000字程度の文章を
md5()に通してハッシュ値を得て、これから投稿されようとしている文章(こちらもハッシュを取る)と
比較して、両者が同一の文章か否かを判別(同一だったらリロードとみなして投稿を拒否)するために
使おうと思っているのですが、これって適切なやり方でしょうか?
ハッシュ値で比較する必要ってあるの?
前に投稿された内容をキープする必要があるからハッシュを使うと言っているのでは?
311 :
nobodyさん:2006/09/07(木) 11:28:33 ID:HQk33gl2
結局ハッシュを取らないで、生データで比較することにしました・・・
ハッシュにする意味はよくわからんな
投稿の日時保存して直近の投稿のコメントと
比較すればそれでOKなんじゃね
1000字程度の文章をハッシュ化しようとした意図がわからないなら
何を言っても無駄だから気にするな。動けば問題ないw。
POSTの二重投稿の対策をやればいいんじゃね
リダイレクトで飛ばすとか、ユニークなID埋め込んで判断するとか
MD5・日付・IPとかで判断するのもいいだろうけど
> 1000字程度の文章をハッシュ化しようとした意図がわからないなら
> 何を言っても無駄だから気にするな。動けば問題ないw。
>>312に言ってるのか?意図ってリロードによる2重投稿を防ぎたいのでは?
定数のメリットって
変更不可、スコープがグローバル、
という2点でよろし?
ID/PASSを定数で保持するのってよくあることでしょうか?
セーフモードがかかっているサーバで、
phpをcgiで動かしたいのですが、
phpが入っているサーバなら全てcgiとして動作できますか?
それとも設定によってはできないのでしょうか?
あとphpのパスはphpinfoのどこの項目を見ればいいのでしょうか?
/usr/local/bin/phpや/usr/bin/phpや/usr/sbin/phpなど、
思い当たるものを適当に全て試しましたが、
全て500エラーが帰ってきてしまいます。
どなたかお助けください。
>>316 500エラーってWindowsのCGIだとパスが違ってくるからその変も疑った方が良いかも
どっかのヲチネタぽいのが続いてるな…。
>>315 スコープはメリットにもなるしデメリットにもなるよ。
id/passを定数に…どうだろ?不要になったらさっさと消すべき値のような?
321 :
316:2006/09/07(木) 13:15:08 ID:???
どうもレスありがとうございます。
>>317 やっぱサーバ側の設定次第ですか・・・
サーバ仕様書にはphpのパスもcgiとして使えるかも記載されていないので、
恐らく使えない可能性が高いのでしょうね。
>>318 サーバはFreeBSDのようなので、その点は心配なさそうです。
>>320 それはシェル操作でしょうか?
レンタル鯖の話ですので、それは使えません。
説明不足で申し訳なかったです。
とりあえずmkdirのとこなどは、あらかじめフォルダを用意したり、
出力されるファイルも作ってみて、悪あがきをしてphpで動かしてみます。
その上でだめそうなら諦めます。
どうもありがとうございました。
内部文字コードはUTF8になっているのですが
PHPにてとりだすとコードが「ASCII」になってしまいます。
mb_convert_encodingでコード指定しても改善しません。
これはどんな解決策があるでしょうか?
ご教示お願いいたします。
環境
サーバー XREA
Mysql 5.1.11
phpMyAdmin 2.8.2
>>322 出力の文字コードはどうしたいわけ?
出力も指定したいなら
output_handler が mb_output_handler になってる?
その上で mbstring.http_output に出力したい文字コードを指定してる?
ローカル上にあるファイル一式をアップロードさせる方法はないものかと
考えています。
例えば
フォルダ名:[ ]
ファイル場所:[ ][参照]
とあったとして、1ファイルのみの登録であれば、1つのファイルの場所を指定するだけで
良いのですが、これが複数ファイルを一括してアップロードしたい場合、
どうするのが適切なのか?っと悩みます。
copy関数を使うことも考えましたが、copy関数はサーバ上にアップしている
ファイルをコピーするので違うと思うし。
何か設計上のアドバイスをいただけないでしょうか?
つFTPソフト
formをたくさん設置して複数を同時なんてのはよく見るよな。
htmlフォームに値を入れる時
value="".$hoge."" とやると$hogeに"が入っていた場合におかしくなるのですが
value=の区切りってどうしたらよいのでしょうか??
>>327 自己レスです。
htmlspecialcharsでいけました、すません。
>>324 ActiveXを使えばできなくはない。
それ以外ではクライアントのディレクトリ情報を拾うようなマネ自体が
セキュリティ的に厳禁な行為なので、ムリだと思うけど…
330 :
nobodyさん:2006/09/07(木) 18:54:52 ID:zxRzPgXR
どこに聞けばいいかわからなかったので教えて下さい
cgi(perl)ではかなりあるんですがphpで逆リンク集を配布してるサイトって
ありますでしょうか?
教えて下さい m(_ _"m)ペコリ
>>324 クライアントに圧縮させて、それをアップしてもらい、
サーバー側で解凍するといいよ。
圧縮はユーザーが自分でやって解凍だけPHP側でするって話でしょ
画像共有系サイトとかのアップロード画面は
flash使ってドラッグアンドドロップできたり
ダイアログからまとめて登録できるような
インターフェイスにしてるところがあるよな
>>331みたいにzipとかでアップできるとこもある
335 :
nobodyさん:2006/09/07(木) 20:23:24 ID:EP1zTHfC
phpのcopy関数でコピー元をURLにすると、うまく実行できません。
macのmampを使ってローカルで開発していますが、
mampが強制終了します。
URLではなくファイルを指定した場合は何の問題もないです。
php.iniの設定的にはちゃんと動作しても良さそうなのですが....。
どなたかおわかりになりますでしょうか?
337 :
324:2006/09/07(木) 20:32:55 ID:jxEGLvXD
>>331 そんなこと出来るんですか!?というかまさにそれがしたいです。
例えば、テンプレートの配布をする時にサイトから圧縮ファイル(ZIP)
をダウンロードしてそれをアップ(登録)してもらい、それが解凍出来れば。
338 :
nobodyさん:2006/09/07(木) 20:36:28 ID:EP1zTHfC
>336さん
レスありがとうございます。
phpのバージョンは4.4.2でallow_url_fopenはonになっています。
設定的には大丈夫そうなのですが...。
やりたいことは、phpで吐き出したhtmlのソースコードを
新しいファイルにそっくりコピーしたいのです。
なにかいい方法はありますでしょうか?
>>338 何となくエスパー気取りでループしてる気がする
ob_startでバッファリングして保存しては?
>>327-328 お前の作ったスクリプトは脆弱性だらけのようだな。
仕事としてやってはいけないぞ、お前。
>>338 copyじゃなくて内容取得してファイルを保存じゃ駄目なんだろうか
これからPHPを勉強しようと思っているのですが、
バージョンは4.xと5.xの
どちらをもとにしたほうがいいでしょうか?
5.xはオブジェクト指向対応ということで
興味をひかれてるんですが、
レンタルサーバとかのPHPのバージョンは
4.xの方がまだまだ多い気がします。
実際のところ、
どちらの方がより使われてるんでしょうか?
343 :
nobodyさん:2006/09/07(木) 21:34:05 ID:EP1zTHfC
>339,341
どうもです。obで解決しました。
普通にfwriteしました。
>>342 多い少ないで言ったらまだ4.xの方が多いんじゃなかろうか。
5.x使うとこもも随分増えたからどっちが主流って言うことはなくなったと思うけどね~
>>342 既にクラスについて理解していて経験があるなら5
クラスを理解していなくて基本的な部分から勉強するなら、どっちでもそんな変わらない
勉強が主な目的ならね
正直どっちからやってもそんなに違いは無いでしょ
>>337 サイトからZIPファイルのダウンロード→OK
ダウンロードしたファイルをそのままアップロード?→まぁOK
アップロードされたZIPファイルをサーバー上で解凍→OK
でも何がしたいのかよくわかんね。
347 :
342:2006/09/08(金) 01:02:57 ID:???
>>344,
>>345 Javaでオブジェクト指向の経験はあるので、
5.xから入ってみることにしまふ。
ありがとうございますー。
4.xでも一応オブジェクト指向は使えるよ。
ただJavaの形により近いのは5.xかな。
349 :
322:2006/09/08(金) 08:13:59 ID:???
>>323さん
返信有難うございます。
MySQL内はUTF-8で
出力はEUC-JPにしたいです。
Mysqlからとって来た配列をmb_convert_escapeでエンコードするだけでは出来ないと結うことでしょうか?
mb_convert_escapeなんてあったっけ・・・
それにSQLのバージョンによっては文字コードを投げないと駄目だったような気がする
captchaで画像をゆがめさせる処理は、
GDのどの関数を使って実現させるのでしょうか?
353 :
322:2006/09/08(金) 08:50:46 ID:???
>>350さん
レス有難うございます。
mb_convert_encodingでした...
XREAに問い合わせたところ、
set names ujis;
を使えといわれたのですが検索してもよく分からず困っております。
>>352 どうもありがとうございます!
PEAR使ったことないのですが、
これを機に使ってテストしてみたいと思います。
>>353 なんでお前はみんなのアドバイスをいちいち無視して質問を続けるんだボケ。
XREAにそうやれと言われたのなら、やってみればいいだろチンカス。
>>352 set names ujis
set names sjis
set names mysql
とかぐぐってもわからん?
SQLとしてPHPからDBクライアントに文字コードを指定するってこった
でDBテーブルの文字コードは何なんだ?UTF8(=ujis)なら
set names ujis
で構わんけどさ。
ようはDBのコードにあわせろってことだ
a.PHPの文字コード
b.DBクライアントの文字指定
c.DBの文字コード
set names で b=cにしろってことだ
aとbの違いは、mb_convert_encodingで九州しる
これでわからんかったら、もうあきらめな
意味が理解できないんだろ、最近はこんな人達ばかりだよ
mysql_query("set names ujis;");
358 :
322:2006/09/08(金) 09:21:02 ID:???
>>356-357さん
ありがとうございます。
357さんの仰る通りです。
いきなりこれを使えとだけ言われたので意味が分からず困っておりました。
>>355 いつアドバイス無視した?死ね
359 :
356:2006/09/08(金) 09:21:03 ID:???
>>353 に宛てた回答ですたorz
>>353 あんた自分で試しもせずに、質問ばっかしてんのか?
そりゃ最低だな。答えるんじゃなかったよ
礼儀も知らない質問房にマジギレしても・・・^^;
361 :
356:2006/09/08(金) 09:26:17 ID:???
>>358 えっ、「set names ujis やってみ」って言われて
mysql_query("set names ujis;");
が探せんのか?
ぐぐったらいくらでも答えでてくるって・・・
俺から言わせたら、自分で調べることを放棄してるようにしか
見えんぞ?
たぶん
>>355 はそういうことを言ってるんだとおもうよ
てか下らない質問スレなんだしまた~りいこうぜ
>>355 切れるくらいなら放置しる!
363 :
322:2006/09/08(金) 09:33:36 ID:???
お前らは人力検索機だからな!
自分で調べるより楽チンでいいぜ!これからもしっかり答えろよな!
IDだしてない時点で荒らし判定 無視確定
365 :
322:2006/09/08(金) 09:54:22 ID:???
>>359さん
すみません。mb_startもset names ujisも試したのですが変わらなかったので質問させていただきました。
とても分かりやすいご回答、感謝いたします。
mysql_query("SET NAMES ujis");
~~~
echo mb_convert_encoding($msg, 'SJIS', 'auto');
で変換されました。(理想としてはEUC-JPがよかったのですができませんでした)
本当に有難うございます。
>>360 「質問房」は否定しませんが、「礼儀を知らない」と言われるのは心外です。
もっとヘコヘコしろということでしょうか?
>>363 ほんと死ね
お前見たいのがいるから2ちゃんは掃き溜めっていわれるんだよ
> お前見たいのがいるから2ちゃんは掃き溜めっていわれるんだよ
(゚д゚)
これはひどい自演ですね
>>322はホント狂ってるなwww マジでダメなクズ人間だ、コイツ。
>
>>355 >いつアドバイス無視した?死ね
>
>>360 >「礼儀を知らない」と言われるのは心外です。
この二つの発言の矛盾にすら気が付かない
>>322。
やはりIDを出さないチンカス質問厨は無視する、というルールを徹底すべきだと思ったね。
>>322において、質問開始(実はこれが初めての質問ではない。マルチ投稿だった)
>>349において、
>>323からのアドバイス・指示を無視。それらについて答えず、勝手に質問を重ねる。
>>353において、XREAから具体的な指示を出されたのにまたも無視。
「set names ujis」という明確なキーワードがあるにも関わらず、それを「検索できない」という基地害っぷりを披露。
>>358において、「いきなりこれを使えとだけ言われたので意味が分からず」などと、ダメダメチンカス・マニュアル人間っぷりまで開陳。
なおかつ、
>>355の指摘に逆ギレ。しかも「死ね」という犯罪的な脅迫発言が飛び出す。
>>363において、騙りらしき者が現れる。これもそもそもIDを出さずに質問した
>>322が悪い。
>>365において、「もっとヘコヘコしろということでしょうか?」などと見当違いの頓珍漢なことを言い出す始末。
そして今度は
>>363に向けて脅迫&侮辱発言。
香ばしいな。夏休みは終わってないの?
クライアントエンコーディングの知識もないんじゃどうしようもないな。
>>322は1スレに1人、出るか出ないかと言われている幻の逸材ですな。
社会のクズ人間さようなら。アッハッハーm9(^Д^)
373 :
322:2006/09/08(金) 12:29:33 ID:???
>>369 はぁ?こっちは質問しただけだよ、なんでそういうひねくれた考えにしかならないわけ?答えがわからないなら書くなよカス。
>>372 お前が一番クズだよ。
mb_convert_set_name_ujis関数を使ったら全く文字化けされなくなりました。ありがとうございます、XREAさん。
322にかまってるやつも、322と名乗ってるやつも同一人物。
ということでスルー汁。
>>363 「死ね」が脅迫になるとは初耳だねw。
確かに322はちょっとおかしいけど
よくありがちなミスだったから今後のために良いと思うよ
伸びてると思ったら香ばしい人キテター!!
乗り遅れた事を激しく悔やむ。
指定したURLからそのフォルダのディレクトリパスを取得
(ASPでいうところのServer.MapPath)みたいなのをPHPで
行うとすればどのような方法が良いでしょうか?
>>378 も少し説明すると、独自にログファイルを生成したいのですが、
どの階層のファイルからcallされても、トップの下にあるLogフォルダに
(URLでいうと *****.com/log/日付.log)な感じで生成したいのです。
realpathだと、自分自身からの相対パスでないと駄目なようなので。
できれば、上流からのパスで指定したいです。
>>379 $_SERVER['DOCUMENT_ROOT']にドキュメントルートのパスが入ってるが。
>>380 そうなんですけど、/opt/の下にある仮想ディレクトリにあるので、
使えないのです。
美しくないけど、グローバル定数に入れておくのが一番楽ですかね orz
実行中のファイルのパスが知りたいってことだろうか
それならdirname(__FILE__)とかでいいんだろうけど
固定のディレクトリって決めてるなら
むしろabsoluteな指定の方がいいんじゃないか
いまいち説明を把握できてないかもしれん
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
#rrbbgg を 10進数の r g b に変換するクラス
どっかに落ちてないでしょうか
そんなもん探す時間で作れるだろ
>>385 そんなもん5分で自作しる。
function decrgb($c) {
return array(
hexdec(substr($c, 1, 2)),
hexdec(substr($c, 3, 2)),
hexdec(substr($c, 5, 2)),
);
}
var_dump(decrgb("#00FFA0"));
出力結果
array(3) {
[0]=>
int(0)
[1]=>
int(255)
[2]=>
int(160)
}
>>387 substr使うより文字の位置で指定したほうがよくね?
正規表現の方が遅い
>>388 文字の位置って hexdec($c{1} . $c{2}) みたいな感じ?
substrとどっちがマシか微妙な感じだけど…
俺としてはsubstrに一票かな。
まあ、ヘビーなループに放り込まない限りは期待した結果を得られればいい。
394 :
nobodyさん:2006/09/08(金) 23:49:01 ID:Bt7aH3H5
unnti
WEBのありがちな設定画面で
項目がたくさんあるのですが、どうやったら簡単に
DBから引っ張った値を表示できますかね?
テキストボックスと、チェックボックスと、ラジオボタンと
動的に項目数が増える項目があるのですが。
>>395 まず自分でソースを書いて分からない所を聞いてください。
ここはWEBプログラムする人の板です。
あとID出して下さいね。
詳細は
>>1を一読の事。
DBから値を取得して、必要なHTMLを表示するとしか答えにくい質問のような・・。
>>395 チェックボックスやラジオボタンが出てくるような設定画面だと、
設定可能な有効範囲とか種類が決まってないといかんと思う。
そういったデータをどのように格納しておくかで設計も決まってくるかと。
399 :
395:2006/09/09(土) 00:33:37 ID:???
いま、DB仕様と画面仕様(HTMLソースがある)、設定可能範囲が決まっていて
あとはコーディングするだけなのですが、
いかんせん項目が多いので
楽な方法で実装したいのですが。。
別に根気よく書けば問題ないのだが、
どうやれば一番効率いいかなと思って。
>>399 DBでもiniファイルでもあるいは単なるPHPの配列データでもいいから
設定項目と設定値の型と設定可能範囲などを記録したもの作って、
あとはそれ読み込んでループで回しながらデータ通りにHTML吐くだけかと。
401 :
395:2006/09/09(土) 00:52:22 ID:???
>>400 なるほど。ありがトン
60部品くらいある画面6画面も3日で作らないといけなくて、
困っていますた。
あと、追加ボタンがあって、動的に増えていく項目もあるのですが、、
これはどう扱えばいいのでしょう。DBからの読み書きがあるのですが。。。
これも悩みの種なのです。設定項目数が一定しないから、iniにも書きづらいです
PEAR HTML_QuickForm あたりで自動化・・出来る仕様なのかな
>>401 聞いてる限りじゃ3日どころか1日でやる仕事だがw
動的に増えるフォームはその登録項目自体に現在の項目数をhiddenで持たせて
追加ボタンクリック→1個増やして表示、でいいんじゃないの?
iniには初期数と最大数でも格納しときゃいいと思うが。
イマイチレベル低すぎて、どこで困ってるのか分からんです。
なんか仕様を整理して後はその通りに実装する、ってだけで終わる話にしか聞こえない。
>>401 作り方がどうこうっていうより、各項目の状態を仕様としてまとめられてない時点で
多分今のあなたにはそれを効率よく作ることは無理だと思う。
諦めて地道に作った方がいいんじゃないのか?
とてもありがちな勘違いだが、PHPでもJavaでも、
必要なのは言語の勉強ではなく設計の勉強。
言語仕様が分かればプログラムが書けると思うのは壮絶な勘違い。
406 :
395:2006/09/09(土) 01:47:06 ID:???
うーんなるほど。。。
あと製造開始まで2,3日あるからそれまで仕様をまとめます
3日といわず1日でできるように。。
HTML_QuickForm教えてくれた方もありがとうございました
それだけの入力フォームやボタン数で6ページ分、やろうと思えば1日でできるけど、1日でやるのが当たり前というほどでもない。
レイアウトはかなり作りこまれたものになると思うし。
とりあえず3日かけてベタ書きするのみ。
そういう仕様にしてしまったのなら。
「使いづらいからページ分けて」と言われ、嫌にならないことを祈るよ。
画面仕様をHTMLでもらってるならレイアウトにはそれほど悩まないんじゃないか?
渡された画面を動的生成できるように作るだけだろ?
>>376 >「死ね」が脅迫になるとは初耳だねw。
>>322が慌てて自己弁護に走り出しました。
しかしもう手遅れです。彼はもう既に犯罪者なのですから。
410 :
nobodyさん:2006/09/09(土) 07:18:40 ID:stHF8kGV
もういいって。
>>403 hiddenにって聞くと・・・
セキュリティ的には・・・と条件反射してしまう私
効率よくフォームを生成するといっても、なにかしらの
最低限の条件の上での設計になるだろう。で、その設計
通りに作ると、当初想定していた条件範囲内での変更
であれば簡単に対応できる。
しかし、設計の想定条件を越える変更を加えようとすると
折角時間かけて設計したのにグズグズになってしまうこともある。
そうなると、あぁ~前提条件ミスったな。とか
あれもこれも、欲張るんじゃなかった。とか
いっそのことベタ書きでもよかった。とか後悔することもある。
結構、バランス難しいと思うけどね。
設定画面相手にセキュリティ云々言うのもどうかと思うがw
ホントに脊髄反射だな。
そもそもhiddenデータも含めてエラーチェックされてれば
セキュリティ的な問題は出ないよ。
>>412 そもそも何日もかけて頑張って設計するようなものではないと思う。
>>411 hiddenであろうとなかろうと、バリデートがしっかりしてればいいわけで。
ID出してないやつの質問に答えるなと。
417 :
411:2006/09/09(土) 12:25:54 ID:???
そりゃまぁ、ケースバイケースだが、設定画面であっても
セキュリティは重要な時代になってると思うよ?CSRFあるしな
hiddenの件は書き方足りなかったね。すんません。
案外、(hidden=画面から見えない項目)<>ユーザからの入力項目
と認識してない人が多いから。hiddenもSubmitの都度他の入力項目と
同じと考えようね。(hiddenであろうとなかろうと、って認識してない
人が多いって事)ということを言いたかった。
418 :
411:2006/09/09(土) 12:35:04 ID:???
あ、なんか文章変だ
まぁいっか・・・
まぁ、言いたいことは分かる。
420 :
nobodyさん:2006/09/09(土) 13:09:25 ID:bt/VDzRM
php4.3 redhatES4 apache1.3 mysql4.1 です。
PEARのDB_DataObjectで「UPDATE」するときの質問です。
DB_DataObjectのインクルードや設定ファイル読み込みが終わったとしします。
numが1のデータを探して年齢を変更するといった場合は
$hoge=DB_DataObject::factory("hoges");
$hoge->get(num,1);
$hoge->age = 15;
$hoge->update();
でできるのですが、numが1で名前がyamadaのデータの年齢を変更するといった場合がうまくできません。
$hoge=DB_DataObject::factory("hoges");
$hoge->whereAdd('id = 1');
$hoge->whereAdd('name = yamada');
$hoge->age = 15;
$hoge->update();
PEARのドキュメントをみても、複数絞込みのUPDATEの例がなくてこまっています。
直接SQL query()をなげるしかないのでしょうか。
>>420 query投げるならquery()メソッド使えばいいじゃないの
422 :
かむかむ:2006/09/09(土) 15:03:38 ID:WZEde27e
POST,GETを取得するクラスを作っているのですがなんか微妙です…
もっと効率的な方法ありますでしょうか?
class Globals {
public $user = array();
//POST
function Post($element) {
if(!is_array($element)) {
$this->user[$elsement] = htmlout($_POST[$elsement]);
} else {
foreach($element as $element=>$key) {
$this->user[$elsement][$key] = htmlout($_POST[$elsement][$key]);
}
}
}
//GET
function Get($element) {
if(!is_array($element)) {
$this->user[$elsement] = htmlout($_GET[$elsement]);
} else {
foreach($element as $element=>$key) {
$this->user[$elsement][$key] = htmlout($_GET[$elsement][$key]);
}
}
}
>>422 その前にひどいクラス名、メソッド名だと思うぞ。
424 :
かむかむ:2006/09/09(土) 15:22:41 ID:WZEde27e
>>423 返レスありがとうございまする!
基本的に分かりやすいのがベストだと思っているんでこんなクラス名・メソッド名にしました(`□′)b
$global = new Globals;
$global->Post('text');
$global->Get('hoge');
こんな感じでインスタンスしてますが、できればGET,POST関係なくとれれば(内部で対応)できればと考えてます
$global = new Globals;
$global->_GP('text');
$global->_GP('hoge');
425 :
420:2006/09/09(土) 15:24:18 ID:bt/VDzRM
>>421 ありがとうございます。やはりそうですかね。できれば、テーブル構造の変化も予想されるので、直接SQLを記述する方法は取りたくなのです。
query();使う以外に方法はないものでしょうか。
よろしくお願いします。
フォームからの書き込みをphpで処理し
xmlとして出力するものを作っています。
Operaで全角文字を書き込むと、
一部の文字が勝手に実体参照に変換され送られています。
(たとえば「~」が「?」に)。
このため、文面の一部としてフォームに書き込まれた「&」を「&」に変換する際、
既に実体参照に変換された全角文字の先頭の「&」までもが
更に「&」に変換されてしまい、ぐちゃぐちゃになってしまいます。
Firefoxではこうしたことは起きないようです。
どなかたうまい解決法を教えてくださいませんか。お願いします。
>>426が化けたので一部訂正
(「~」が「&♯12316;」に)
>>426もうひとつ化けてますorz
「&」を「&amp;」に変換する際、
更に「&amp;」に変換されてしまい、
です。すいません。
429 :
428:2006/09/09(土) 16:10:49 ID:WZEde27e
さっさと答えろや
>>424 そういうのをクラスにするのは、ただの無駄だと思うけど。
どうしてもGET, POSTを統一したければ
$var = (getenv("REQUEST_METHOD") == 'GET') ? $_GET : $_POST;
こんなんで、十分では。
431 :
426:2006/09/09(土) 16:16:40 ID:???
自己レスです。
やっぱり実体参照を全部実体に変換して、
その上で再度実体参照に変換するしかないですよね。
>>430 ちょ、おまw
こんなことができなくなるよ。
<form method="post" action="example.php?foo=getdata">
<input name="foo" type="text" value="postdata">
</form>
その書き方はおかしい
通らんと思うがw
>>422 俺も1行目の時点で既に「おっとっと…」って思ったぞ。
偽者等で荒れるのでID出して無い人には答えないでくださいね
>>432 仮に出来たとしてもやるべきではないわな。
POSTなのにわざわざURL引数としてパラメータ指定する意味がわからん。
>>437 うんそれブラウザ依存。本来はできないと思った方がいい。
>>440 いや、GETとPOSTの組み合わせは問題ないと思うけど
Firefox、Opera、IE、Safari、au W31CA、DoCoMo So505is、Lynx で問題無かったし、
W3C のHTMLチェックと、HTML-lint のチェックも通ったよ
それに、HTMLの仕様をざっと読んだ限りでは問題点は発見できなかった
見落としているかもしれないが…
443 :
初心者ですいません:2006/09/09(土) 23:05:47 ID:7mfku9TF
教えて下さい
<?php include("○○○.php"); ?>
これは外部からphpを呼び込めますが。
これを拡張子がHTMLでも呼び出したいのですが
方法とかあるのでしょうか?
拡張子がphpの場合は、うまいことよびだされるのですがhtmlにすると
エラーがでて無理です。
.htaccessとうでやり方がありましたら教えて下さい m(_ _"m)
>>443 どんなエラーが出るの?
多分普通に出来ると思うだけど
>>443 やっときちんとID出してる質問者さんが・・
読み込んだHTMLがPHPとして問題があるからエラー出てるのかな
PHPレベルではGETとPOSTの組み合わせ。で通じるとおもうが
HTTP的には「POSTメソッドのリクエスト先URLがexample.php?foo=data」
となっているというだけ。というのがより正しいような気がする。
で、本題だけど、少なくとも
<form method="post" action="example.php?foo=data">
<input name="hoge" type="text" value="postdata">
なんていうのは多くのサイトでやってることだよね?
でできる?できない?と意見が割れてるのは
<form method="post" action="example.php?foo=data">
<input name="foo" type="text" value="postdata">
と同じ名称(foo)を指定した場合のことですよね?
ちょっと読んでて気になったのでまとめてみたずらー
>>443 そのHTMLファイルの拡張子をPHPに変えるというのも一つの手だな
じゃあ俺はちょっくらラーメン食べに言ってくる
>>443 php 拡張子 html
でぐぐると吉と出たずらー
>>443 <?php include("○○○.php"); ?>
が書かれているものの拡張子をhtmlにしたいの?
それとも、
<?php include("○○○.html"); ?>
にしたいの?
前者なら、
AddType application/x-httpd-php .html
後者なら常に可能なはず。
動かないのであればエラーが出ているはず。
error_reportingとdisplay_errorsを適切に設定してみて。
>>442 便乗だけど
FOMAでどんな問題が生じるのか知りたい
たまには variables_order のことも思い出してあげてくださいです。。。
452 :
441:2006/09/09(土) 23:29:12 ID:???
>>446 あ、なるほど
両方 name が "foo" だったのね
それは気がつかなかった
ちなみに、この場合だけど、リクエストURIと、POSTデータは別物なので、
両方とも同じ名称を用いてもHTTP/HTMLの仕様上問題は生じないはず
Webプログラミング言語がどうなってるかは知らないが php5 では少なくとも
問題は生じてないみたい
>>450 actionで書いたGETパラメータが丸っきり届かない
>>446 違います。パラメータ名の重複とか関係なく
FOMAではPOSTメソッドでactionに?~を付けても無視される。
配列の要素が1つだけの時 {例 array('hoge')}
簡単に文字列に変換する方法はないでしょうか?
(string)で型変換してみましたが、変わりませんでした。
現在はimplodeでやっていますが、もう少し簡単にできる方法があればご教示お願いします。
456 :
初心者ですいません:2006/09/09(土) 23:47:59 ID:7mfku9TF
>>444-445 >>447-448 >>449 ありがとうございます m(_ _"m)ペコリ
>>449さんの前者のたとえが正解です。
大変参考になり助かりました!
検索をして勉強もかねてそのようにしたいと思います。
本当にありがとうございました。
ここできいてよかったです!
457 :
かむかむ:2006/09/09(土) 23:51:23 ID:WZEde27e
>>430 >>432 >>435 返レス有難うございまする!
では
$_POST['hoge']
$_GET['hoge']
でとるしかないのでしょうか?
>>454 どうでもいいけど、それでブラウザ依存とか言われたら困るんだけど
あくまでも 「FOMA の欠陥」 だから。
だいたい、メールアドレス の @ の前に "." を使えるようにして、それを RFC準拠だと主張したりするのがドコモだからね
Microsoft のメールサーバにも拒否されるまぬけなアドレス
勿論、Unixの多くのMTAでもこんな仕様違反のメルアドは使えないから不着トラブルも多発
>>458 最近、他のキャリアもDocomoの真似するようになってきて大迷惑だよね。
あんなメールアドレス通すなよなー。
461 :
nobodyさん:2006/09/10(日) 00:24:00 ID:yhAV7xHo
462 :
かむかむ:2006/09/10(日) 01:03:50 ID:IiyA9HmK
>>459 それだと配列にするのが手間なんですよね
463 :
かむかむ:2006/09/10(日) 01:06:43 ID:IiyA9HmK
>>461 絶対urlを相対パスにしてそれから絶対urlを求めるって支離滅裂じゃないかな?
>>454 うげ~
そんなこっちゃ、多くのWebサイトは
FOMAからは正常にPOSTできないという
トラブル続発ってことですよね。
FOMAって市場に出てから結構経ってるのにねぇ~
っていうかFOMAのブラウザが悪いのか?
あ、すれ違いな話題になってきたのですが、
興味あるので、ググルキーワードだけでも
おしえてもらえませんか?<(_ _)>
FOMA GET POST あたりでトライしてみたのですが
見つからなかったので
>>464 普通そういう場合にはhidden使ってるだろうから
問題にならないだけだと思うよ。
466 :
nobodyさん:2006/09/10(日) 01:33:43 ID:ofHvlQB3
突然ですがhtml内にアクセスした人のIPやらホストを表示するphp、cgiもしくは方法ってありますか?
468 :
nobodyさん:2006/09/10(日) 01:37:48 ID:ofHvlQB3
>>467 別に詐欺とかそういう黒いことに使うつもりはありません。
ネットワークソフトの解説でわかりやすくするために使いたいのですが
教えていただけないでしょうか?
469 :
nobodyさん:2006/09/10(日) 01:38:27 ID:NtN9U8j4
if構文でマイナス値を認識させることって出来ますか?
if($a < -5) {
マイナス5よりも小さければ何々みたいな
>>469 できる。というか試してみればすぐに分かる。
>>466 ある、がここはプログラムをする人のスレなのですれ違い
移動してください
>>469 試せばすぐ分かります。
上と同じなのでプログラムする気が無ければ別のスレへ行ってください。
やって出来なかったのであればソースを提示してください。
ごめんなさい
試したけど出来なかったんです
でも今、最小値を一番頭にもってきたら出来ました
並び順なんて関係あるの
>>473 同じ条件では試してないな。
並び順てなんだろう、原因が分からないならソース貼ったほうが確定できるかもよ。
>>473 並び順のイミが分からない。
単なるロジックのミスじゃないかと思う。
こんな感じです これ使い方あってますか?
if($s[1] < -5){
$pu = "ぎゃああああああああああああああああ";
} elseif($s[1] < 0){
$pu = "フーン";
} elseif($s[1] > 10){
$pu = "うはwwwwwおkwwwwwwwwwwwwwwwww
} elseif($s[1] > 3){
$pu = "よっしゃああああああああああああ";
} else {
$pu = "おっおっおっ";
}
並び変えるとダメみたいなんですが。
>>477 並び替えた内容も見ないと断定はできないけど、
多分 if($s[1] < 0) を前に置いたんだろ?
-5より小さい値なら当然0よりも小さいわけだから
まずそっちに該当しちゃうだろ。
もうちょっと論理的に物事を考えないとプログラマにはなれないよ。
これはひどい
なにグラマにならなれますか?
>>477 勘違いしてるかもだけど、
if(条件A) {
} elseif(条件B) {
}
ってのは条件AとBをいっぺんに調べてくれるものじゃなくて、
まずAを調べてそれに該当しない場合のみBを調べるもの。
Aに該当してしまったらBはもう調べてくれない。
ソース貼って正解だったね
ちょっと可愛いな
ソースをちゃんと晒すところが良いね。
ソースも出さずに分からない!って奴が多すぎる
>>1-484 なるほどif構文が理解できました
一括のお礼で失礼かと思いますが
色々、ありがとうございました。
>>484 すごいアンカーの貼り方だw
それは感謝しすぎだろうw
お金の単位を区切るのに効率の良い方法はありませんか?
と聞こうと思ったら「number_format()」なんて便利な関数があったのですね。
ちなみにこれが無い場合どのようなやり方が効率が良いでしょうか。
自分は今金額の長さを最初に図ってifで条件分岐させようと思っていました。
3で割って1余るとき2余るときそれ以外の3種類です。(先頭から区切るので余る桁でコンマの打ち方を変えてます)
いつもの自演スレに戻ってるな
function nunchatte_format($value) {
490 :
nobodyさん:2006/09/10(日) 10:03:44 ID:zVKYsOR2
ID無しは回答しないでください。スレが荒れます。
}
>>492 PHPをパースする知能を持った人間パーサーキタコレ!!
494 :
486:2006/09/10(日) 10:57:59 ID:???
早く答えてもらえますか?こっちは仕事で明日までにやらなきゃならんのですよ。あなたがた二ートと一緒にしないでください。
495 :
nobodyさん:2006/09/10(日) 11:04:57 ID:vRp21kRk
.php
このスレは大物が釣れますか?
いまCSVから商品データの検索をしてるのですが、
$Result=array();
$Data=file("商品.csv");
for($i=0;$i<sizeof($Data);$i++){
$lines=strip_tags($Data[$i]);
$Match=true;
現在の「商品.CSV」からの全体のデータではなく、$line[0]と$line[30]のデータ内のみから
検索データを抽出したいのですが、どうすればいいのでしょうか?
注・IDなしには回答しないでください。スレが荒れます。
>>1
>>500 0、30用のループを別に用意するとか
ループを一つにして if($i != 0 && $i != 30) continue; とskipするとか
503 :
nobodyさん:2006/09/10(日) 14:09:50 ID:QbCxbqAn
<?
$a = array(
array(1,2,3),array(1,3,2),
array(2,1,3),array(2,3,1),
array(3,1,2),array(3,2,1)
);
print_r($a);
foreach($a as &$b){
array_push($b,$b[0]);
}
print_r($a);
foreach($a as $b){
foreach($b as $c){
echo $c;
}
echo '<br/>';
}
?>
1から3までの順列を定義し、さらにその末尾に最初の値を付けた数列を得ようとしています。
しかしこれを実行すると
1231
1321
2132
2312
3123
3123
と何故か最後の1つだけ最後から2番目の数列と同じ値になってしまいます。
foreachで$bを参照にしている影響だと思いますが($bの変数名を変えればうまくいきます)、
どういう原因でこうなるんでしょうか?
>>503 最初のforeachループが論理的には
$b =& $a[0]; array_push($b,$b[0]);
$b =& $a[1]; array_push($b,$b[0]);
$b =& $a[2]; array_push($b,$b[0]);
:
:
$b =& $a[5]; array_push($b,$b[0]);
というふうに展開されるので、以降は$bは「$aの最後の要素」のエイリアスとして機能する。
これを避けるには、ループの直後でunset($b);をやる。
>>500 for($i=0;$i<=30;$i++){
array_push($Result, "ageてIDを出せこのやろう");
}
$search = array(0,30);
for($i=0;$<=sizeof($Data);$i++){
if(!in_array($i,$search)) continue;
echo("それともこうか?このやろう");
}
506 :
nobodyさん:2006/09/10(日) 16:01:48 ID:QbCxbqAn
>>504 なるほど内部ではそんなことになってたんですね。
どうもありがとうございました。
内部が理解できないのにプログラム出来るのか・・
自分の理解出来る方法で試行錯誤してみたほうがいいのでは
MVCモデルの俺俺フレームワークを作成してます。
入力→確認→処理
という流れが多いので、
確認の部分をフレームワークの中に組み込みたいんですが、
どこに組み込めばいいんだろう。
IDIDってうるせーんだよ チンカス。 何様のつもりだオメー
最近荒れ気味だからしょうがないのでは。
>>507 >>504的な動作に自力で気付くのはなかなか難しいと思われ
大抵は原因を追求する前に諦めて別の実装を探すからな
その点理由を探してる
>>503は見込みがある
514 :
508:2006/09/10(日) 16:39:06 ID:???
IDIDってうるせーんだよチンカス!
515 :
nobodyさん:2006/09/10(日) 16:58:17 ID:vRp21kRk
自演し放題ですね・・・
>>513 自分で&付けてるんだから普通にわかるだろ
$thisを通してるケースは嵌るけど
『$this は 常にコール側のオブジェクトへのリファレンスです』
そうだよなぁ・・
自分で書いたのに分からないってのは・・
まあでも
>>513みたいのは、PHPの一種の潜在的な問題点と言えるかもね。
参照つけたループ変数を同名で後から使うほうが悪いってのもあるけど、ループ抜けたあとまでエイリアスとして働き続けるってのは、いざバグったときにかなり発見しづらいと思う。
しかも参照してる対象が、foreachに使った配列の最後の要素と来たもんだ。
519 :
518:2006/09/10(日) 17:37:25 ID:???
520 :
513:2006/09/10(日) 17:54:04 ID:???
ちょっと焦った
Warning: eregi() [function.eregi]: REG_EMPTY
ってでますけどどこかおかしいですか↓
for($n=0;$n<sizeof($ArrKeyword);$n++){
if(!eregi($ArrKeyword[$n],$lines)){
$Match=false;
break;
>>521 そういうときはeregiに何が渡されるかを(echo等で)取得してeregi一文で試すんだよ。
こういったことを繰り返せば問題解決する。
526 :
521:2006/09/10(日) 19:49:38 ID:???
早く教えてください。こっちは仕事(ry
527 :
nobodyさん:2006/09/10(日) 20:07:28 ID:R17hn9Op
str_padを使って同じ長さにしたい文字があるのですが
mb_send_mailで送るメール本文に上で揃えたものをつけてもずれてしまいます。
どうしたらよいのでしょうか?
例 ↓の円を揃えたい
+消費税 ?円
+送料 ?円
?の所は桁が変わるので +消費税".str_pad(number_format($money),15," ","str_pad_left")."円等とやってます。
528 :
524:2006/09/10(日) 20:08:37 ID:???
529 :
527:2006/09/10(日) 20:15:43 ID:R17hn9Op
あぁ、失礼しました。
str_pad(number_format("+消費税".$money),15," ","str_pad_left")."円
な感じでやってます。
あとメール本文だけじゃなくて普通に表示しても駄目でした
>>527 それソース見ると大丈夫って落ちじゃないよね?
メールで駄目って言ってるしなぁ・・
>>529 っていうかお前
number_format("+消費税".$money)
の部分おかしくね?
よく分かんないなら
str_pad と number_format を切り離して考えて味噌
というよりmoney_formatのほうがいいんじゃ
ここバカばっか・・・・
教えてるやつらも低レベルやし。 まじ笑えるw
ここみるとPGとして優越感にひたれるから好きw
こんな初心者向けの質問スレ見て優越感に浸るなよ・・・w
自分はレベル低いですって言ってるようなもんだよ。
目糞鼻糞を笑う
悲しい奴が一人紛れ込んでるな
536 :
521:2006/09/10(日) 23:49:51 ID:VGwX15XG
いろいろ試してますが・・・・ どうも行き詰まりました。
わけワカメなのは何度かリロードするとちゃんと検索結果が出てくるんですよ
なんなんでしょ?
>>536 実際に問題の出る条件を出さないと分かりにくい
539 :
nobodyさん:2006/09/11(月) 00:17:49 ID:Os5jvMFz
>>538 リロードすると問題なく検索結果が反映されるので、値は入ってると・¥・
$lines=strip_tags($Data[$i]);
if(eregi($KeyWord,$lines)){
array_push($Result,$Data[$i]);
こうすると問題ないのですが、1語でしか検索できずまいります。
>>539 おい、話が変わってるんじゃない?
「一回リロードするとOK」なのか「何回かリロードすると偶発的にOK」なのかハッキリしろ
しかも
>>521のソースにはstrip_tagsもarray_pushも入ってないだろ
それにちゃんとechoで値をチェックしたのか?値が入っていたらちゃんとそのif文に引っかかるんだろ?
541 :
nobodyさん:2006/09/11(月) 00:32:43 ID:Os5jvMFz
>>540 オリジナルは↓
$KeyWord=$_GET["key"];
$KeyWord=htmlspecialchars($KeyWord);
$KeyWord=mb_convert_encoding($KeyWord,"EUC-JP","auto");
$KeyWord=mb_convert_kana($KeyWord,s);
$ArrKeyword=explode(" ",$KeyWord);
$Result=array();
$Data=file("ほげほげ.csv");
for($i=0;$i<sizeof($Data);$i++){
$lines=strip_tags($Data[$i]);
$Match=true;
for($n=0;$n<sizeof($ArrKeyword);$n++){
if(!eregi($ArrKeyword[$n],$lines)){
$Match=false;
break;
}
これで「何回かリロードすると偶発的にOKです」。 それと時折文字化けします。
でっ、↑を
$lines=strip_tags($Data[$i]);
if(eregi($KeyWord,$lines)){
array_push($Result,$Data[$i]);
に変えると1語でしか検索できませんが、文字化けも、エラーもでません。
がっ、1語でしか検索できず困ります。
だから変数の中把握することから始めれ
var_dump($ArrKeyword);
>>541 いくつか間違いがあるぞ
$KeyWord = mb_convert_encoding($KeyWord,"EUC-JP","auto");
まずこれ。mb_convert_encodingの第2引数にautoを入れると環境によって何故か上手く動かないことがある。
だからちゃんと文字コードを指定すること。「偶発的に~」って部分は多分これのセイだと思う。
あとmb_convert_kana($KeyWord,s)、こいつの第2引数は本当にこの書き方で良いのか?
ちょっとマニュアルで確認してみろ
545 :
543:2006/09/11(月) 01:26:28 ID:???
あ、ごめん、間違えてる
×mb_convert_encodingの第2引数にauto
○mb_convert_encodingの第3引数にauto
だった
$KeyWord=mb_convert_encoding($KeyWord,"EUC-JP","auto");
$KeyWord=mb_convert_kana($KeyWord,s);
に問題ないとおもわれw
>>546 問題はある
が、「何回かリロードすると偶発的にOKです」のわけはない
>>546 > $KeyWord=mb_convert_kana($KeyWord,s);
> に問題ないとおもわれw
本気で言っているのか?
>>548 このsって単に全角スペースを半角スペにする淫数だろ
いんすうとかマジで勘弁してください
ひきかずとかマジで勘弁してください
何でこう自分で書いたものすら分からない人が多発するのか
関数はその関数のみでテストしてから使おう。
553 :
543:2006/09/11(月) 02:08:59 ID:???
「引数」の読み方を必死にググっている最中なので
しばらく待ってあげてください。w
はっきり言ってこのスレは優しすぎるぐらいだよ
他の板じゃまず考えられない。
そして人間のレベルが高い。センスもまあまあ。
プログラマは遊び心ある日とが多いかも分からんからね
俺はここで筆問して解決できなかったことが無いんだもんね
>>552 それはPHPサイトのをまんまコピペしてるからだろ
ひきこもりすう
"淫数"
define('s', ~)とか出してくるかと思ったが無理だったか
寝よっと
つ【未定義の定数を使用した場合、ちょうどstringとして コールしたかのように(CONSTANT vs "CONSTANT")、 PHPはその定数自体の名前を使用したと仮定します。】
563 :
560:2006/09/11(月) 03:42:37 ID:???
どうゆふうにイケナイのか説明できないやつは知らないやつと一緒。
ぁ゙ー・・proc_open使って外部のプログラム使って~ってやってた時に、妙なエラーに遭遇してずっと悩んでたら
文字コード関係の問題だった・・変換して受け渡しやったら正常に動いたよ。
スレに聞きに来る皆も、うっかり指定し忘れたりしないように気を付けよう orz
とまぁこういうわけで、聞こうか悩みながらやってたら自力解決したし寝るノシ
>>541 ホントにそれ普通のリロードなのかな…
原因自体はkeyってパラメータの末尾に空白がくっついちゃってるかどうかだと思うんだけど。
> $ArrKeyword=explode(" ",$KeyWord);
ここで空白区切りで検索キーワードを分解してるけど、これだと末尾に空白があると
$ArrKeywordの最後の項目が "" っていう空っぽの単語になっちゃうでしょう。
> eregi($ArrKeyword[$n],$lines)
eregの検索キーワードで「空っぽ」ってのは許容されず、
> Warning: eregi() [function.eregi]: REG_EMPTY
のエラーが出ちゃうので、事前に空っぽデータが無いかチェックしないといけない。
あと他に、完全な空っぽでなく正規表現として不正なキーワードになってる可能性もある。
文字列に[だけ含んで]が無いとか、\を含んじゃってるとか。
正規表現として正しくないとやっぱりエラーになるので、ユーザが自分で検索キーを
入力するようなプログラムで検索にeregを使うのは良くないよ。使うならquote_meta()せんと。
正直、このプログラムなら
> if(!eregi($ArrKeyword[$n],$lines)){
は
if($ArrKeyword[$n] != '' && strpos($lines, $ArrKeyword[$n]) === FALSE) {
の方が適切なんじゃなかろうかと思うんだが。
検索キーワードにそんな変な記号は含んでない!という場合でも、
Shift_JISで漢字の中に正規表現記号を含んでしまっている場合がある。
> $KeyWord=mb_convert_encoding($KeyWord,"EUC-JP","auto");
でeuc変換してるはずだから大丈夫!と思ってても、元のキーワードが短いと
文字コード判定に失敗してしまって変換されないケースがあるので危険。
<?php
$Keywd=htmlspecialchars($_GET['key']);
$Keywd=mb_convert_encoding($Keywd,"auto");
$Keywd=mb_convert_kana($Keywd,"s", EUC-JP");
$Keywd=ereg_replace("and"," ",$Keywd);
$Keywd=ereg_replace(" "," ",$Keywd);
$Data=file("item.csv");
?>
<?php
if($Keywd!=""){
$Result = array();
for($n=0;$n<sizeof($Data);$n++){
$line=explode(",",$Data[$n]);
$arrSentence = strip_tags($Data[$n]);
$arrKeyword = explode(" ",$Keywd);
for($i=0; $i<sizeof($arrKeyword); $i++) {
$flgMatched = true;
if(!eregi($arrKeyword[$i], $arrSentence)) {
$flgMatched = false;
break;
.......
if($flgMatched) {
array_push($Result, $Data[$n]);
..
コピペだけどこっちのほうがいいんじゃない?
検索先のファイルはEUCなのかどうか。違うならEUC-JPに変換汁。
あとは先頭に
mb_regex_encoding("EUC-JP");
してみるとか。
CSVファイルからの検索をしたいのですが、
541と566の構文ではどっちがいいのでしょうか?
>>566 どの辺がいいんだかさっぱり分からんコードだな。
571 :
568:2006/09/11(月) 12:31:59 ID:???
そうですか・・・・・
PHPの勉強もかねて、まずはコピペからでもはじめたいのですが、
もしまともなコードがあるならソースを教えてもらえないでしょうか?
ちなみに検索したらばっちり541と566を見つけられましたが、なかなか
他がないです。
コピペが勉強になるってのは初耳だな
573 :
568:2006/09/11(月) 13:19:05 ID:???
テンプレートの改造は十分勉強になると思うが?
>>571 お手本を丸ごと「書写(自らタイプ)」するなら、たしかに一定の勉強効果はある。
しかし「コピペ」するなら、全く勉強にならない。
575 :
500:2006/09/11(月) 13:36:55 ID:???
「いまCSVから商品データの検索をしてるのですが、
$Result=array();
$Data=file("商品.csv");
for($i=0;$i<sizeof($Data);$i++){
$lines=strip_tags($Data[$i]);
$Match=true;
現在の「商品.CSV」からの全体のデータではなく、$line[0]と$line[30]のデータ内のみから
検索データを抽出したいのですが、どうすればいいのでしょうか?」
if($i != 0 && $i != 30) continue;
for($i=0;$i<=30;$i++){
? array_push($Result, "ageてIDを出せこのやろう");
}
$search = array(0,30);
for($i=0;$<=sizeof($Data);$i++){
? if(!in_array($i,$search)) continue;
? echo("それともこうか?このやろう");
}
などいろいろご回答ありがとうございました。
ただ、行データの$line[0]と$line[30]ではなく、列のデータの$line[0]と$line[30]なんですが、
特定の列のデータを抽出するにはどうしたらよいでしょうか?
>>575 $Match=true; っていうのは流行なのか
てっきり同じ人だと思ってたが
とりあえずfgetcsvでも使って評価してみたら?
>>575 あんたは全く理解してないから、まずは簡単なことからしたら?
たとえば、
1.商品データの三行目の二列目を$aに入れてみる。
2.1が出来たら、次は全部の行の二列目を$a[]に入れてみる。
3.2が出来たら、次は全部の行の二列目が1(←なんでもいい。完全一致==で)のものを$a[]に入れてみる。
4.3が出来たら、最後に全部の行の任意の列に文字列$keyが含まれるものを$a[]に入れてみる。
これくらい順序踏めば、頭の悪いあんたでもわかるんじゃね?1すらできないなら諦めるべきだな。
自分がわかってることの1段上ぐらいのことなら、
ヒントもらったりすればできるようになるが
10段も上のことやろうとしたらヒントもらっても
できんわな
自分が今何段目にいるのか?分かってる人は
1段上を目指して着実に習得してゆくことが
できるけど、分かってない人は、平気で
10段上のことを質問してしまう。で、周りの
人から見ると「へ?あんた全然わかってないじゃんか?」
となるんだな。で質問すればする程荒れるんだな。
>>577 のような自分への課題のようなことを、自ら
考えて自ら乗り越えられない人はプログラミングのセンス
ないと思うな。
センス無くて良いから、さっさと教えろや カス
581 :
nobodyさん:2006/09/11(月) 17:43:29 ID:2fSvB3gx
DoCoMoやauの絵文字をmb_convert_encoding等でEUC-JPに文字コード変換してMYSQL(EUC-JP)に格納する場合、
取り出したときの表記がおかしくなってしまいます。
この場合絵文字はどんな形式で送られているのでしょうか?
?xXXXX;の形で送られているのですか?
>>577 もっと猿にもわかるようにお教えくださいませんか?
猿は最後の行すら理解できないから教えない。
すいません土下座しますから、列データの抽出方法教えてくださいっ ><;
おねがいしますっ ><;;
www.uploda.org/uporg511835.gif
>>575 列のデータの$line[0]と$line[30]って、
エクセルで言うところのAとAEの縦の列ってこと?
>>581 絵文字はシフトJISかUTF-8じゃないと扱えない門がー
590 :
nobodyさん:2006/09/11(月) 19:55:23 ID:2fSvB3gx
591 :
nobodyさん:2006/09/11(月) 20:15:27 ID:xn87RO2C
Win2003, IIS, PHP5.0.4で、Cactiを動かそうとしています。
その他のソフトのバージョンは、こんな感じです。
Cacti0.8.6h, RRDtool1.2.15, Net-SNMP5.3.1, MySQL5.0.24
動作はしているのですが、グラフを見ようとすると、ブラウザが
「ダウンロードしています・・・」の状態のままで、一向に画像が表示されません。
"中止"ボタンを押すと、画像が表示されます。
原因は恐らくContent-Lengthヘッダが付いてないからだと思ってるのですが、
どうやって付くように出来るかが分かりません。
画像(PNG形式)は、ファイルとして保存されているわけではないし、どうやって
PHPのコードで書いてやれば良いか、もしくは他の方法があるのか・・・。
御助けを・・・。スレ違いだったら誘導お願いします。
592 :
nobodyさん:2006/09/11(月) 20:22:53 ID:72m7Skn3
>>592 当然、HTMLとして出力する際にやってます
>>593 受け取ったらすぐにサニタイジングしないと不安だったんですが、
出力時にサニタイジングするのが当然なんですね。ありがとうございます。
なぜサニタイジングが必要なのかの原因を理解しないと
応用効かなくね?
特に難解なわけでもないし、理解したほうが。
そうすれば、出力時にする意味もわかるし
>>592 入力は1回だけど、出力は複数回だもんがー
保存ファイルがxmlのときエンティティ化しなくても大丈夫?
それは
<![CDATA[
]]>
で囲むんでない?
すみません、教えてください。
fsockopenでコピー元のホストをオープンした後、
copyでローカルへファイルをコピーした直後に
ローカルへコピーしたファイルが消えてしまいます。
この時copyの返り値は1なのですが、その直後に
filesizeでそのファイルサイズを取得してみようとしても
no such fileというエラーが出てしまいます。
どうすれば回避できるんでしょうか?
phpのバージョンは4.4.3でコピー元のファイルは
http://pc8.2ch.net/avi/dat/1157385546.dat です。
601 :
600:2006/09/11(月) 21:54:17 ID:iGRurTQF
sageてしまいました、すみません。
OS: Windows XP
webサーバー:04WebServer1.84
PHP: PHP 4.4.3
です。
>>600 copyじゃなくてファイルに書き込んだほうがいいんじゃないの??
というかfsockオープンより楽な方法もあるような、制限のある環境なのかな。
603 :
600:2006/09/11(月) 22:16:06 ID:iGRurTQF
>>602 普通にテキスト読み込みでオープンして
ローカルに書き出すってことでしょうか?
以前は消えなくて普通にファイルサイズが取得できたんですが
いつの間にかno such file or directory(たしかこんなスペルだったと思う)という
エラーが表示されていました。
今でも他のファイルとかもこんな現象は発生しませんでした。
http://pc8.2ch.net/php/dat/1157284868.dat これも普通にコピーできてます。
コピーするファイルの中身に問題があるのでしょうか…。
今夜のお題はこれかっ?
参考:
resource fsockopen ( string target [, int port [, int &errno [, string &errstr [, float timeout]]]] )
int copy ( string source, string dest )
コピー元のファイルが移動したとか、そんなオチでは?
土下座までしたオレは無視ですか?
いろいろな問題があるがまずIDを出してください
608 :
600:2006/09/11(月) 23:19:44 ID:???
>>605 コピー元の移動は無いと思います。
直接アクセスすれば見れますし・・・。
一応、普通のテキストリードはできるので、
とりあえずこれで回避したいと思います。
お手数お掛けしてすみませんでした。
ありがとうございました。
JpGraphで作ったphpにPOSTでデータを渡して、HTML上に表示するにはどうしたらよいでしょうか?
ASP(VBScript)でのHTMLでの表示がうまくいきません。
『VBScriptを語ろう』のスレにも投稿したのですが、何卒お助け願います。。。
>>609 >>1を読んでない事も問題だが
マルチはよろしくない、分をわきまえろ。
ちゃんと「Web製作:VBscriptについて語りましょう
」にも謝って、
改めて詳細な情報を添えて(
>>609では情報不足)依頼するか諦めるか選べ
>>612 タバコ吸わないし職場禁煙だし、俺には関係ないな
>>614 Hello World!てなんですか?
ヘビースモーカーのおじちゃん
hoge($var);
としたら、
$hoge[var]==1;を実行するような関数を作りたいんだけどどうすればいいでしょうか?
hoge($abc);
なら
$hoge[abc]==1;
です。
>>616 >>1嫁
呼び出し元の変数の名前を、呼び出された側は知る事ができない。よって無理。
まぁ、何がやりたいのかよくわからん。
$varに"var"とか"abc"格納してhoge呼び出せばいいじゃないか。
>>616 hoge($a[var]);
としたら、
$hoge[var]==1;
を実行なら簡単なんじゃね
>>616 悪いこた言わないから
hoge("abc");
function hoge($name) {
if($hoge[$name] == 1)
}
にしときなさい。
623 :
nobodyさん:2006/09/12(火) 02:21:19 ID:DszY/D+b
>>610>>613>>617>>622 ほら、質問者じゃないがお望み通りID出してやったぞ
さて、スレの皆に問いたいが・・
ID出せと言ってる奴に出して欲しいと思ってるのは俺だけか?
馬鹿の一つ覚えのようにIDIDID連呼しやがって、鬱陶しいのなんのって
$arr = array();
$arr[0] = "a";
$arr[1] = "b";
$arr[2] = "c";
unset($arr[1]);
としたあとに、$arr[1]にアクセスするとnullだっていうエラー返るんですが、
配列の特定の要素を消した後に、その隙間を埋めるような処理?とかどうすればいいんでしょうか・・
便利な関数とかあればお願いします
>>624 隙間を埋めるってなんだ?意図が分からん。
単に値は消すけど要素の削除はしたくない、ってことなら
unset($arr[1]);じゃなく$arr[1] = '';でいいんじゃないかと。
それとも$arr[2]に入ってる内容が$arr[1]に移動して欲しいってこと?
だったら
unset($arr[1]);でなくarray_splice($arr, 1, 1);とするか、
unset($arr[1]);の後に$arr = array_values($arr);で配列作り直し。
>>621 確かに出来なかった・・
$a["var"] = 1;
print hoge($a);
function hoge($a)
{
foreach($a as $key => $value)
{
if($hoge["$key"]==1)
{
return "true";
}
}
}
みたいな感じ?
しかし
>>620がいい気がするし、何のためにこうしたいのか分からないな
debug_backtrace使えばできるかもしれんけど、用途が謎
だめだ一行に複数の呼出し書かれたらどれか判別できん
629 :
nobodyさん:2006/09/12(火) 02:45:34 ID:r0QKMPcD
while($i < count($array)){
echo $array[$i];
$i = $i+1;
}
連想配列の場合、上みたいなのってどうやってやるのでしょうか?
foreach?
foreach ($hoge as $foo -> $bar) {
何でやるか見当ついてるなら、まずはやってみればいいじゃなーい。
>>629 yes
ただ$iがくるまでechoさせないようにしないと等価にならんかな
phpのなぞなぞスレとかどっかにないんか
あー見なかったことにして
635 :
586:2006/09/12(火) 04:27:09 ID:???
> おねがいしますっ ><;;
> www.uploda.org/uporg511835.gif
おい、こちとら土下座しておしえてくれっていってるんだぞ
おまえらそれでも人間か?
>>635 だって$lineなんて変数はどこにも無のに
>>575 > $line[0]と$line[30]のデータ内のみから
とか文章が意味不明なんだもん。
なんとなく
$Result=array();
$Data=file("商品.csv");
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",", rtrim($Data[$i]));
$Result[] = strip_tags($line[0]);
$Result[] = strip_tags($line[30]);
}
ということがしたいのかな?と思った。
データの中に「,」を含む複雑なCSV形式だとこれじゃ対応できないけど。
ところでこのstrip_tagsって必要あんの?
>>636 strip_tags必要なし
対応できないようなののせるなよ
別にExcel互換がCSVの全てじゃないし。
どういうルールのCSVファイルなのかも分からんのにわざわざ
Excelルール対応版のコードで難しく作る必要もねーべ。
>>623 ID出さないと荒れるから言ってんだろうが。
それに質問者と回答者の区別がつきにくいし。
バカなのはIDを出さないヤツのほうだろ。
っていうか逆になぜIDを出さないのか問いたいね。IDを隠す理由が無いだろう。
まさか、「2ちゃんでID出したら身元がバレるかも?」なんて間抜けな勘違いしてるんだとしたら、
そんな馬鹿はWebアプリなんて作るべきじゃないね。
単に自動でsageって入っちゃうのを消し忘れてるだけでしょ。
ID出し推奨だけど、厳密な強制や出さないやつには回答すんな強制とかは
それもまた荒れる原因なんだから無理強いはイクナイ
成りすましの罵詈雑言なんてスルーしとけばよろし
>>639 あなたがIDを出していない理由は何?
質問者じゃなければIDは出さない方がいいなんて理由も特に無いんだけど。
質問者はID出し推奨
理由は上を見れば明らか
自己主張の強いバカによって荒れるから
643 :
624:2006/09/12(火) 09:12:39 ID:???
>>625さん
ありがとうございます それでうまくいきました
その通り[2]が[1]に移動してて欲しかったんです
$arr[]=hoge;
として追加していけるから、単純に消していけるやつも有るのかなあと
>>640 「推奨」じゃなく「ルール」
「権利」じゃなく「義務」
645 :
609:2006/09/12(火) 09:23:17 ID:JAZxe5EO
>>610 >>611 すみません、
>>640さんのおっしゃるとおりsage消し忘れました。
「VBScriptについて語りましょう」のスレには撤回謝罪を出してきました。
WindowsServer2003のIISでASP(VBScript)のシステムを作っているのですが、
JpGraphで作成した散布グラフライブラリに対して大量のデータ(3k程度)を渡したいです。
DB格納や中間ファイル無しで実現するにはどうしたらよいでしょうか?
どちらかと言うとVBScript関係かもしれないので、スレ違いだったらすんません
646 :
nobodyさん:2006/09/12(火) 09:53:31 ID:MMOpE1aA
質問です。
define("PASSWORD","XXXXXX");
前の関数で、パスワードを入力し、
$_POST["pass"] = $pass
if($pass == PASSWORD){
...
}
とすると$pass と PASWORDが正しくなくても通過してしまうことがあります。
この問題は"==="で解決できたのですが、どうして"=="だとTRUEと評価されてしまったのか分かりません。
内部的にはどのように読まれて、どうして真と判定されたのでしょうか。
ネット上を一応調べてみましたが、明示的な答えはみつかりませんでした。
どうか浅はかな自分にも分かるように説明をお願いします。
>>609 ちょ、おまいさん
IISでASPって、あのASPかい?
IISでPHPじゃないのか?
>>646 >$_POST["pass"] = $pass
少し落ち着け。
649 :
nobodyさん:2006/09/12(火) 10:33:05 ID:MMOpE1aA
あ、すいません。
$pass = $_POST["pass"]の間違いです。
650 :
609:2006/09/12(火) 11:45:54 ID:pg+u65XB
>>647 すごいですよね、今時。
ある処理エンジンのインタフェースがVBScriptとかしかないんですよ。
JpGraphで大きなグラフ書いてた方居ないですかね?
>>646 define("PASSWORD","0"); もしくは
define("PASSWORD","");
で
$_POST["pass"]が0もしくは空の時
if($pass == PASSWORD){
で通るはずだが、他のパターンで通ったのか?通った時の正確なソースがないとわからん。
>>641 >質問者じゃなければIDは出さない方がいいなんて理由も特に無い
バカかお前は!
我田引水な主張してんじゃねぇよクズ。
回答者はIDを「出す必要・出す理由」が無いだろうが。
一方、質問者はIDを「隠す必要・隠す理由」が無い。
653 :
647:2006/09/12(火) 12:05:56 ID:???
会話が成立してないっぽorz
へるぷみー
654 :
609:2006/09/12(火) 12:24:05 ID:pg+u65XB
>>647 ASPとPHPの混在環境です。このシステムではASPメインで、PHPはJpGraphしか使いません。
何を意図されてるのか不明です。
>>646 その情報だけじゃ判別できん。
関係するソース全て出さないと。
騙りで罵詈雑言投げてるのなんて質問側だけじゃなく回答側もだよなー
>>646 $passに「0」を入力されたら多分なんでも通ると思うよ、それ。
if(値 == 値) としたとき、片方が「数値」だったら両方とも数値変換されちゃうから。
そしたらdefineされたPASSWORDは頭が数字から始まるわけじゃなきゃ0に変換されるので
if(0 == 0) となって等しいと判定されちゃうわけだ。
ひっかけ耐性が上がってきた模様
660 :
nobodyさん:2006/09/12(火) 13:45:52 ID:MMOpE1aA
>>657 まさに仰るとおりでした。
そういう現象と対処法は小耳に挟んで知っていたのですが、どうしてそうなるかという原理を知らなかったのでとても気になっていました。
適確な返答ありがとうございました。
>>660 もともと$_POSTの中身は文字列なのにどこで数値に変わったのかは気にならないのね。
>>654 昨日も言ったが、それじゃ情報が足らん
・PHPにPOSTを使ってデータを渡し、変移先のHTMLに生成した画像を載せたい
って事か?
まぁ、セッションとかIDで一意に特定して
保存しといたデータで生成して返すのが楽な気がす(DBか一時ファイルが必要)
POSTで受け取った値を一度確認画面を挟みたいのですが
既存のパラメーターを弄らずに実装できますでしょうか
出来るとしたらどの様な方法がありますでしょうか
sleep() でとめて確認後実行とか使えますか
>>663 HTTPの1つのリクエストに対して、PHPシーケンスがひとつ実行される。
sleepは1つPHPシーケンスを休止するこができる
HTTPは1つのリクエストに対して、人まとまりのレスポンスを返す。
確認したことを通知するということは新たにもうひとつリクエストが送られることになる。
あとIDだせ。
>>664 面倒な言い回ししても理解されないぞ
「sleepはPHPの処理を延滞させるだけの機能」
と書いた方が分かり易いかと
適当なフリースクリプトを拾ってきて適当にsleepを埋め込めば分かると思う。
>>665 失礼な回答者ですね
あなたと同じ理解力と思わないでください
マサツーセッツ工科大卒だが?
不覚にもワロテシマタw
>>663 > まぁ、セッションとかIDで一意に特定して
> 保存しといたデータで生成して返すのが楽な気がす(DBか一時ファイルが必要)
これじゃダメなのか?
> sleep() でとめて確認後実行とか使えますか
sleep()で止めてもその分だけレスポンスが遅くなって何の意味もない。
> POSTで受け取った値を一度確認画面を挟みたいのですが
> 既存のパラメーターを弄らずに実装できますでしょうか
hiddenで値保持しといて確認画面からまたPOSTすりゃいいじゃないか
>>668 巨乳発電所www
巨乳発電所スレの方が楽しそうだな
672 :
祭り中:2006/09/12(火) 18:54:05 ID:fDyVHWOD
何故tanka?
短歌を詠んでるんだろ
簡単なwikiを作ってるんですが、キーワードのリンクに困ってます
正規表現をつかおうとおもってるのですが、上手な記述方法はありますか?
因みに、[[wiki]] を <a href="wiki.php?wiki">wiki</a>に変換したいんですが・・
>>675 上手かどうか判らないので、とりあえずあなたが書いたモノを見せて下さい。
それから、ID出せ!
>>675 $str = '[[wiki]]';
$str = str_replace( $str, '[[', '<a href="wiki.php?' );
$str = str_replace( $str, ']]', '</a>' );
でよくないもんが
678 :
675:2006/09/12(火) 21:30:11 ID:/GAORCz5
あ、すみません。テンプレ読んでから書き込まないと。。
$line = @preg_replace("/\[\[(.*)\]\]/e","'<a href=\"wiki.php?'.urlencode('\\1').'\">\\1</a>'",$line);
さっき考え付いたものなんですが・・(´・ω・`)
書き方が悪かったですね。[[(任意の文字列)]]を、<a href"wiki?(URLエンコード後の文字列)">(文字列)</a>
679 :
675:2006/09/12(火) 21:34:11 ID:/GAORCz5
間違えて途中で書き込んじゃいました
[[(任意の文字列)]]を、<a href"wiki.php?(URLエンコード後の文字列)">(文字列)</a>に変換したいです。
上のコードだと、[[aaa]]bbb[[ccc]]が、"aaa]]bbb[[ccc"として扱われてしまい、うまく変換できません・・。
このコードも何代目か分かりませんが、ずっと悩んでます。よい方法はありませんか?
>>679 正規表現の最短マッチをつかうもんが
このすれは回答者の方がIDだしたほうがいいね。
答えられもしないくせにID!ID!って要求する輩がいるからね
全員ID出した方が平和なスレだよな。どう見ても。
682 :
nobodyさん:2006/09/12(火) 21:51:32 ID:X6ofAWID
683 :
nobodyさん:2006/09/12(火) 21:55:49 ID:JLpDdfzd
ほらよ
684 :
nobodyさん :2006/09/12(火) 21:59:46 ID:oeb2UHix
PHP5でSQLite1.2.0を使いたいのですが、日本語がどうしてか文字化け
してしまいます。一応、
lang/japanese.inc.phpの$charsetと次の行にあるja-euc-jpの値を
euc-jpからutf-8に置き換え、ファイルをUTF-8に変換して保存する
という対処をしたのですが、それでも文字化けしてしまいます。
何か解決策はないでしょうか?
685 :
nobodyさん:2006/09/12(火) 21:59:50 ID:RYz/uoRb
あいよ
686 :
nobodyさん:2006/09/12(火) 22:14:28 ID:oJenc4Yw
便乗して質問させてください。
ある文字列を、2パターンでエンコードしてその結果を表示したいのですが
このようなコードはおかしいでしょうか?(別の正当な方法はありますか)
$a = $title;
$b = $title;
$bb = mb_convert_encoding($b,"UTF-8",mb_internal_encoding());
$aa = urlencode("$a");
$bbb = urlencode("$bb");
echo "$title<br>$aa<br>$bbb<br><br>\n";
}
一応実行できてるみたいなんですが素人なので、すぎく不安です
ご意見ください
687 :
586:2006/09/12(火) 22:29:26 ID:???
「いまCSVから商品データの検索をしてるのですが、
$Result=array();
$Data=file("商品.csv");
for($i=0;$i<sizeof($Data);$i++){
$lines=strip_tags($Data[$i]);
$Match=true;
現在の「商品.CSV」からの全体のデータではなく、$line[0]と$line[30]のデータ内のみから
検索データを抽出したいのですが、どうすればいいのでしょうか?」
if($i != 0 && $i != 30) continue;
for($i=0;$i<=30;$i++){
? array_push($Result, "ageてIDを出せこのやろう");
}
$search = array(0,30);
for($i=0;$<=sizeof($Data);$i++){
? if(!in_array($i,$search)) continue;
? echo("それともこうか?このやろう");
}
などいろいろご回答ありがとうございました。
ただ、行データの$line[0]と$line[30]ではなく、列のデータの$line[0]と$line[30]なんですが、
特定の列のデータを抽出するにはどうしたらよいでしょうか?
688 :
675:2006/09/12(火) 23:06:06 ID:/GAORCz5
解決することができました。ありがとうございました。
689 :
nobodyさん:2006/09/12(火) 23:20:43 ID:YEB5NXiY
>>680 質問者になりすまして荒らす人がいるからID出して欲しいと言ってるだけ。
質問者の利益にもなると思うよ。
回答者はしょうもないのはスルーすればいいけど、質問者が偽者出てくると困るでしょ。
まぁ、どれも強制では無いけどさ。
>>686 出力結果が意図した通りなら問題ないんじゃない?
690 :
686:2006/09/12(火) 23:26:28 ID:???
すみません686は間違いでした
このように書き直しましたです
$a = urlencode("$title");
$b = $title;
$b = mb_convert_encoding($b,"EUC-JP", "auto");
$b = urlencode("$b");
$c = $title;
$c = mb_convert_encoding($c,"UTF-8", "auto");
$c = urlencode("$c");
echo "$title<br>$a<br>$b<br>$c<p>\n";
}
691 :
nobodyさん:2006/09/12(火) 23:26:47 ID:oLKDRDaP
.htaccessで下記を記述すると
AddType application/x-httpd-php .html
拡張子がHTMLでもPHPを使用できますが
これを
AddType application/x-httpd-php .cgi
と記述を変えた場合、cgiでもphpを外部なりから読んで使用はできるのでしょうか?
やってみるといいと思うよ
>>689 確かになりすましはうざいね
「○○したら解決しました」とか「早く教えろ馬鹿」とかなりすまして言い出すやつもいるし
694 :
nobodyさん:2006/09/12(火) 23:39:10 ID:oLKDRDaP
できませんした><
cgi拡張子でphpを外部から呼び込んで動作させることってどうすればできるんでしょうか?
検索してもかかってくれないし、(検索の仕方がまずいのか・・・)
htmlでphpは呼び出せるので、鯖じたいは、対応してるんですが。。。
誰かヒント下さい m(_ _"m)ペコリ
拡張子がcgiのBBSを複数設置してまして、メニューを一本化したくて、
includeを使って外部からメニューを呼びこみたくて。。。
説明へたですいません。
695 :
687:2006/09/12(火) 23:55:26 ID:???
おいカスども、俺は無視か?
ハヤくおしえろチンカスども、だれのお陰でオメーラ
息すえてるとおもってんだ あぁ?
696 :
nobodyさん:2006/09/13(水) 00:10:18 ID:d+SA29Wh
>>690 $title = "大きなバラ";
$a = urlencode("$title");
$b = $title;
$b = mb_convert_encoding($b,"EUC-JP", "ASCII,JIS,UTF-8,EUC-JP,SJIS");
$b = urlencode("$b");
$bb = urldecode("$b");
$c = $title;
$c = mb_convert_encoding($c,"UTF-8", "ASCII,JIS,UTF-8,EUC-JP,SJIS");
print "$c" . "<br>";
$c = urlencode("$c");
$cc = urldecode("$c");
echo "$title<br>$a<br>$b : $bb<br>$c : $cc<p>\n";
で問題無くエンコード切り替えて表示されれば問題ないんじゃね
ちなみに俺の環境だと
mbstring.http_output = EUC-JP
が有効だとUTF-8での出力が化けた。
697 :
nobodyさん:2006/09/13(水) 01:00:39 ID:euHLrQ2N
すいませんがお願いします
<table>
<tr>
<td>タイトル</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
</table>
という表から最初の<tr>~</tr>を取り除きたいです(タイトル行)
タイトルが表によっていろいろ変わるので正規表現を使ってと思い
$tbl = preg_replace("/<tr>(.*?)<\/tr>/i", "", $tbl);
これだとテーブルタグしか残りません、、、
ご指導いただけるとありがたいです
>>689 こういうテンプレが自然じゃない?
「偽者が出ると困る質問者はメ欄を空にしてID出してください」
「(IDの有無に関わらず)荒しを放置できない2ch初心者は回答しないで下さい」
IDを強制にするなんて荒しに構ってるだけでしかない
>>694 そのcgiの中身は何?
拡張子がヘンなデータファイルなのか、本当に動くcgiスクリプトなのか
>>697 第4引数がlimit
699 :
694 :2006/09/13(水) 01:11:52 ID:OtwhZuep
>>698 BBSです。cgiは動いてますよ
ケントWEBの掲示板です。
そのBBSの上にphpで外部からメニューを追加したいんです。
掲示板設置数が多すぎて1つ1つ書き直すのもあれで・・・。
>>699 悪い予感が当たった。perlの掲示板じゃないかと思ってたんだ。
それは無理。
.cgi の中身がperlなんだから、それをphpに渡しても動作しない。
>>700 いや、Perl と php と SSI を組み合わせることだってできるよ
漏れの実際その環境で動作させてるし安定している
特に業務で使う場合には、製作コスト>>>サーバ負荷などのハードウェアコスト だから、
重かろうが負荷が高かろうが、サーバ数増やしたり負荷分散すればいいだけ
既にできているモジュールやソフトウェアとの組み合わせに使いたい場合には色々な言語を組み合わせる
>>702 その方法を質問者に教えてあげればいいんじゃないかな
perlの中にphpを書けるって事??
大量のcgiファイルを弄りたくないなら逆じゃないかな~
俺は改造するスクリプトを書いちゃうと思うけど
スレ的にナニだがperlを覚えたほうがらくちんな気もするね、確かに
>>699 お前はその程度の思考能力しか無いならそもそもプログラミングに向いてないから
やめちまえ! ・・・と言いたいところだが特別にヒントをやろう。
●メニュー書き直しが一回きり&静的 → 「ファイル一括置換ソフト」
●メニュー書き直しが頻繁&動的 → 「フレーム」
>>702 大馬鹿な勘違いしてるな、お前。
プリント (おまえらレベルひっくw);
708 :
702:2006/09/13(水) 03:14:37 ID:???
>>703 Perlの中でphpでのプログラムの実行結果を受信する、ってことです
やり方は、シェルコマンドを実行して結果を得る、の応用です
>>699 SSIなら、実は、php(CGI版)やPerl の中に書くことが、そのまま可能。(最新のApacheの場合、古いApacheは駄目)
メニューなんて、SSIで十分です。
ついでに、SSIでexecコマンドを使えるのでそれを使えば、Perlのプログラムの中の一部をphpにしたり、
シェルスクリプトの結果にしたり、と自由自在。
サーバ負荷なんて気にしないw
printo("おまえらレベルひっくw'):
710 :
694 :2006/09/13(水) 03:32:58 ID:OtwhZuep
みなさんレスありがとうございます。
技術的に難しいですね(自分には)
phpとperlを使って2回だけでメニューを書くのがすみそうです
ヒントくれた方々本当にありがとうございます
711 :
nobodyさん:2006/09/13(水) 03:38:17 ID:23amVWy2
>>709 printoって何ですか?
PHPのマニュアルを見ましたが載っていませんでした。
どこを探せばいいか教えてください。
712 :
nobodyさん:2006/09/13(水) 03:47:50 ID:P2yB0OxN
>>709 >>printo("おまえらレベルひっくw'):
ダブルとシングルで囲んだ文字列を初めて見たのですがどういう意味なんでしょうか。
どこを探せばいいか教えて下さい。
princoなら知ってる(´・ω・`)
715 :
nobodyさん:2006/09/13(水) 06:42:29 ID:lPRd5BoH
マニュアルの説明を読んでもピンと来なかったので質問させて下さい。
shell_exec() (バックティック演算子)
exec()
system()
これらの関数は具体的にどういう場合に使い分けるんでしょうか?
また、実際に案件で使用したことがある人はいますか?
>>675 pukiwikiを落としてきて該当部分を探すのが早いと思う。
市販の正規表現の本の中にも
ダブルブラケットのリンク化を書いたものが1冊あったと思うが。
>>715 基本的にはコマンドからの出力結果を、PHP側でどうしたいかって話。
出力された文字列をPHPの変数に代入したいのか、またそれは文字列としてか配列としてか、そのままブラウザに出力したいのか、ステータスコードも取得したいのか・・・などなど。
他細かい点はマニュアルの注意事項を、わかるまで熟読して。
>>715 shell_execはコマンドの表示内容を1個の文字列変数に格納したい場合に使う。
execはコマンドの表示内容を使わない、もしくは配列で欲しい場合に使う。
systemはコマンドの表示内容を変数で受け取らずにそのままHTML出力する場合に使う。
>>716 wikiワードに日本語を許容するかどうかで若干違うけどな。
日本語も許可するんならpreg_replaceで最短マッチ使うしかないでしょ。
悩むようなもんじゃないよ。
preg_much_allの構文がわかるサイトありませんか?
preg_match_all("|<font color=.+>|U")
preg_match_all("/<font color=.+>/i")
上みたいな|で囲まれた正規表現が、マニュアルをみてもよくわかなくて困っています。
っデリミタ
>>720 preg系はPerl互換ライブラリを使う都合上、正規表現を /~/ で括る必要があるが、
この / はやはりPerl互換で別の文字を使うこともできる。
というわけで単に / の代わりに | を使ってるだけ。機能は一緒。
ファイルパスにマッチさせる正規表現とか、中に / を多用する場合は
いちいちエスケープするのも面倒なので、/ 以外の別の文字をよく使う。
HTML_QuickForm、というか
pearを初めて使用したんですが、
軽いカルチャーショックを受けますね。
今まで苦労してきたことがあっさりと。
pearって、仕事で使うときとかパッケージも一緒に配布すんの?
配布っつーか、インストール?
そりゃまぁ、一緒に入れなきゃ動かないでしょ。
いやごめん、製品を作って納入するときに、
クライアントに「Pear環境も入れてください」って言うのか、
製品と一緒に同梱するのか、
開発にPear使って製品ではPear無くても動作するように仕上げるのか、
どういう形が一般的なのかな、って意味だった。
>>728 うーん。俺はクライアントにインストールをお願いするような変な開発やったことないからパス。
ただ少なくとも
> 開発にPear使って製品ではPear無くても動作するように仕上げるのか
これはありえないだろww 意味なさすぎ。
普通はインストール作業までこっちで面倒見るもんなんじゃないの?
データベースのユーザ・DB・テーブル作成や、php.iniの設定とか.htaccessとかもあるし。
これを客の作業にする場合はインストーラースクリプトかrpmパッケージでも作るんじゃないかと思うが、
そういうのを全自動でやれるインストーラー作れるならそいつでPEARも同時にインストールさせるだろう。
配列内に指定した要素が何個あるか知りたいのですがどうしたらいいでしょうか?
array("abc","def","ghi","jkl","abc")の場合 abcを指定すると2とでてほしい
>>730 echo count(preg_grep('/^abc$/', $arr));
とか
>>730 $array = array("abc","def","ghi","jkl","abc");
$hoge= array_count_values($array);
echo $hoge['abc'];
735 :
734:2006/09/13(水) 16:36:34 ID:???
phpで次のような操作は可能でしょうか。
A,B,C,D,Eという5つの値をFORM1.PHPがPOSTで取得し、
その内AとBはphp側で処理し、残りのC,D,EはFORM2.CGIへPOSTで渡すというものです。
もちろん全部をphp側で処理できれば良いのですが、
既存のシステムの中心部をperlで組んでしまった為にそのような状況となっています。
perlで新しい方も作れば?という意見は尤もなのですが、諸事情によりphpで作成しなくてはなりません。
またもしかするとFORM2.CGIをphpで書き換えることも可能かもしれません。
その場合前述したようにPOSTで値を別のスクリプトへ渡すことは出来ますでしょうか。
量が多いためGETでは恐らく規定量をオーバーする可能性があります。
結果的に受け取った値の一部を別のスクリプトへPOSTで渡すことが出来れば満足です。
javaは環境の都合により利用できません(ページに利用できません)。
よろしく願いします。
738 :
737:2006/09/13(水) 20:58:46 ID:???
連投スミマセン。
処理するのは一度に処理するという意味です。
つまり一度A-Eがsubmitが着て、再びC,D,Eの要素をhiddenに書いてsubmitなどは無しということです。
ちなみにGETで規定量と書きましたのはブラウザのという意味です。
確かIEだと4096文字以上は受け取らなかったと記憶しています。
>>738 「PHPからPOST出来ますか?」
激しく既出ネタ 解:出来る
>>737 fsockopen使って実装するか、PEARに便利なのがあるからそれ使うとか
まぁ、「PHP POST」とかで検索すれば直ぐ見付かる定番みたいな物だな。
>>739 ん?737が言いたいのは普通にphpでPOSTするのではなくて別々にってことじゃないの?
と勝手に解釈してみた。
FORM1-<POST:A,B,C,D,E>→PHP(A,Bを処理)-<POST:C,D,E>→FORM2.CGI
では?
ってか、
>>8に書いてあるからテンプレ嫁で回答するべきだったかねぇ
PHPプログラムにジャバスクリプトを組み込みたいのですが、出来ますか?
745 :
737:2006/09/13(水) 21:23:14 ID:???
回答ありがとうございました。
>>743さんが仰られている内容で合致しています。
言語ではなく処理フローを用いて説明するべきでした。
fsockopenを利用した結果ちゃんと値渡しをすることが出来ました。
ありがとうございました。 またお騒がせしてスミマセンでした。
全角大文字SAGEってw
>>744 組み込んで何をしたいのか詳しく
ジャバスクリプトって";`こんなの良く使うじゃないですかあ
だからエラーとかおきないのかなと思って
寧ろ(スレ違いだから)来ないでくれ
750 :
720:2006/09/13(水) 21:48:41 ID:???
>>747 組み込み方を間違えなければ問題なくできる。
キミがPHPとJavaScriptというものを勘違いしてなければ、だ。
<?php
$db=sqlite_open("schedule.sqlite",0666,$err);
$rs=sqlite_query("SELECT * FROM schedule ORDER BY s_date,s_time",$db);
?>
<body>
<table border="1">
<tr>
<th>日付</th><th>時刻</th><th>予定名</th><th>備考</th><th>削除</th>
</tr>
<?php while($row=sqlite_fetch_array($rs)){ ?>
<tr>
<td><?php print($row['s_date']); ?></td>
<td><?php print($row['s_time']); ?></td>
<td><?php print($row['title']); ?></td>
<td><?php print($row['memo']); ?></td>
<td>
<input type="button" value="削除"
onclick="location.href='schedule_delete.php?sid=<?php print($row['sid']); ?>'" /></td>
</tr>
<?php
}
sqlite_close($db);
?>
</table>
今PHPを勉強していて、スケジュール表を作成中です。
ここまで出来たのですが、編集ボタンの作成に戸惑っています。
どなたかご指導、お願いします。
>>753 >編集ボタンの作成に戸惑っています
この情報だけで回答できるのは文字通りエスパーだけだ。
そしてお前は一回氏んだほうがいい。
レベルはともかく前はもう少し分かりやすい質問が多かったような
最近は質問者が何聞きたいのか整理出来て無いのが多い・・
配列を連結する時に、joinを使うかimplodeを使うか考え出すと夜も眠れません。
どうかお助けください。
757 :
nobodyさん:2006/09/14(木) 02:18:52 ID:VDMVGLR1
検索結果が時折、文字化けしたり、検索ワードが飛んで空白になったりしますが、
どんなことがかんがえられますか?
データベースはCSVで、サイト、CSV共にEUC-JPです。
ちなみに文字化けはJISになって現れます。
>>757 mb_convert_encodingでautoを使ってないか?
759 :
753:2006/09/14(木) 02:42:09 ID:???
すみません、焦っていたみたいです。
スケジュール内容の削除を可能にするボタンは作ることができたのですが、
登録したスケジュール内容を更新(編集)するボタンがどうしてもできないでいます。
スケジュール内容の隣にボタンを配置して、編集画面を表示させることが
狙いです。
お願いします。
>>758 いえ、それがautoつかってないんです。EUC-JPのみ指定してます。
761 :
757:2006/09/14(木) 03:12:23 ID:???
もっと正確にいうと。時折検索ワードは文字化けして、検索結果は0になって
表示されません。 「」は0件見つかりました・・・ みたいな感じです。
あと、検索ワードがJISに文字化けして「ソ・イナコィ」は見つかりませんでした・・・みたいになります。
10回の検索で1回くらいの頻度で上記トラブルが起きます。
なんかCSVのデータ側がおかしいのでしょうか?CSVデータが多く、重いのが原因??
>>759 <td>
<input type="button" value="編集"
onclick="location.href='schedule_edit.php?sid=<?php print($row['sid']); ?>'" />
</td>
>>761 文字列扱ってる部分のソース見せて~
>>761 文字コードの自動変換がオンになってるんじゃないの
>>759 だからお前は「一度氏んだほうがいい」と言っているだろう。
その情報だけでいったい何をどう答えろというんだ。
まず質問の仕方を勉強してから出直せチンカス!
765 :
759:2006/09/14(木) 10:14:28 ID:???
>>764 ですから編集ボタンを押したら編集画面をだしたいのです。答える気がないならレスしないでください。
>>765 作り方が分からないのは編集ボタン?編集画面?
当初の質問では「編集ボタンの付け方が分からない」とのことだったが
要するに編集するための仕組みの作り方が丸ごと分からんー!って話ですか。
編集画面にリンク貼ればいいじゃん。
>>765 だったら
>>762が回答してる通りじゃないの?
それとも、
>>766が3行目で書いてるような意味の質問だったのか?
…だとしたら、お前マジで氏んだほうがいいよ。
もはや生きてる価値もないほどのチンカス能無しだぞ、ぞれは。
770 :
759:2006/09/14(木) 11:33:20 ID:???
もういいです。
あなた方の無能さにはほとほと呆れました。
技術的にも、精神的にも、もっと成長してくださいね。
もう二度とここに来ません。さようなら。
771 :
nobodyさん:2006/09/14(木) 11:40:01 ID:mbw2I0S6
>>763 AUTOにはなってません。
それともいっそのことコード指定しないほうがましなのかしら?
>>771 ブラウザ設定によってはEUC指定のサイトでも送信データをUTF-8で送ってくることがなかったっけ?
EUC固定なのはまずいんじゃないかな。
773 :
nobodyさん:2006/09/14(木) 11:57:56 ID:mbw2I0S6
いっそのこエンコード指定してる
$KeyWord=mb_convert_encoding($KeyWord,"EUC-JP");
を削除しました。なんだか調子いいみたいですが、気のせい?
コレを削除することでなんか支障がありますか?
>>773 まさかとは思うけど、HTML出力するときにきちんとヘッダーで文字コード指定してるだろうな?
(HTMLのヘッダーじゃなくて、HTTPヘッダーね)
775 :
nobodyさん:2006/09/14(木) 12:29:04 ID:mbw2I0S6
>>774 header("Content-type:text/html;charset=euc-jp");
これを入れればいいのでしょうか?
>>775 実際にそれで繰り返し実験してみればいいでしょう。
よく「実際にやってみればいいだろ」って人がいるけど、
本当は大問題なコードなのにたまたまうまく動いちゃっただけで、
実は勘違いしてるかもって不安になるとは思わないのかな?
しかも「これでうまくいきました「とか書くと「無知・バカ・ちゃんと聞け」とか言われて。
そういうミスを防ぐために、技術的にその方向で合ってるのか聞いてるのに
「やってみればいいだろ」は回答になってないと思うのだけど。
実際、ここに書き込んで回答待ってるよりはスクリプト書いて実行した方がお望みの回答が得られる、
そんな質問に対しては「やってみれば?」って回答もアリだと思うけどね・・・
>>775のだってこれを入れても改善されませんでしたって最初から書いてたら
>>776のようなレスは付かなかったと思うよ。
780 :
759:2006/09/14(木) 12:59:34 ID:???
やっぱり出来なくてまた来ました。どなたか
>>759の正確な回答をよろしくお願いします。
どうやら有効な策はないみたいですね。10回に1回の精度なのであきらめます。
3年くらいノドにひっかかった骨みたいな存在でしたがw
検索したら 「2ちゃんねる」 は13件ありました
みたいな感じにしてて 時折
「2ソカ、、ラナ」は0件でした または
「」は210件でした (全件数がでる)
1回文字化けしたり、検索ワードが空になると、そのページでいくら検索しても
同じになります。たまにリロードすると正常になります。
まあ、当分靴に入った石ころみたいな感じですごしますw
しかし、何年たっても成長なし・・・・
>>780 氏ね。 恩知らずに答える義理は無い。
そして日本語もろくに理解できない奴はphpの前に日本語を勉強して来い
>>781 そんなに悩んでるならDBにするとかしたほうが確実性が増すような気がするが・・
>>783 まだかなりの低レベル・低知能なのでCSVのインポート失敗しました(SQL)・・・・
>>784 自分にあったレベルでサイト構築しましょう。
もしくは有料でプロにまかせましょう。
786 :
nobodyさん:2006/09/14(木) 14:09:31 ID:rR1x/adN
微妙に板違いかもしれないのですがお願いいたします。
mail()で送った日本語のメールが、特定のアドレスに送った物だけ件名のみ文字化けするのですが
どんな原因が考えられるでしょうか?
文字コードはShiftJISです。ためしに件名のみいろいろ文字コードを変えてみましたが駄目です。
文字コードの問題ではなさそうです。
ちなみに、その文字化けした特定のメールアドレスにメーラー(Outlook)から送ったメールは文字化けしません。
787 :
軟式PHP:2006/09/14(木) 14:22:16 ID:???
>>786 $subject = "=?iso-2022-jp?B?" .$subject . "?=";
で送ってもダメぽ?
788 :
軟式PHP:2006/09/14(木) 14:23:01 ID:???
っていうかShift_JISって('A')JISに変換しる。
すいませんこれからPHPの勉強をかねて「XAMPP」のインストールを検討してますが、
このソフト初心者にはどうですか?それとも他におすすめのパケージがありますでしょうか?
それともPHP,MYSQLなどひとつずつインストしていったほうがいいのでしょうか?
791 :
nobodyさん:2006/09/14(木) 15:05:02 ID:fh1VlVe5
クラスのメソッドの中でコールバック関数を使うときって、そのメソッド内に定義できないの?
メソッド内に定義すると、次にそれを呼び出したときに「再宣言はできません」と怒られる。
同クラスのメソッドとして定義してみても、array_map('this->foo',$array); みたいな書き方は認識してくれない。
クラスファイルとは別にfunctions.phpなんかを用意してそこに書くしかないんでしょうか?
>>790 ありがとうございます。とりあえずザップス試してみます。
新バージョンのXAMPP Windows 1.5.4も今月10日にでたみたいだし、
調べてもあまり悪いうわさもないようですしね。
>>780 「正確な」ってなんだ…
そもそも質問の内容に具体性が全然ないので
あれで正確な回答なんて求められても困る。
>>791 もう少し日本語で。
コールバック関数を使う時に「何が」そのメソッド内に定義できないのか。
「再宣言できません」と言われる、実際の例を出してくれると分かりやすい。
>>791 1.if(! function_exists("hoge")) function hoge() {}
で未定義のときだけ関数宣言を実行させる。
2.array_map('class::hoge', $array) なら通らないかな?(未検証でスマソ)
796 :
nobodyさん:2006/09/14(木) 15:25:58 ID:xslgfeFn
>>794 人に日本語云々言うよりまず自分の日本語読解力の低さを…
3行目で「メソッドとして定義」や「コールバックとして呼び出してみた場合」と
具体的な話に触れてるんだから「コールバック関数の定義」のことだと
すぐ分かることじゃないかと思うんですが。
まぁ、エスパー呼んでるような文よりはずっとましだけど、
>>791 も結構端折って書いてあるから、分かりにくいと思うが。
>>786 やっとルールを守って、しかもマトモな質問の仕方のヤツが現れたな。
これなら回答してあげる気になるよ。
で、答えは「メールでShift_JISは止めれ。変換しろ。っていうかmb_send_mail使え」。
>>796 キミは5回くらい氏んだほうがいいね。
俺は
>>794じゃないが、お前のフザけた態度を見てムカついた。
そういう態度なら全部自分で解決すればいいだろ。人間のクズめが。
だぶん何か隠してる
803 :
nobodyさん:2006/09/14(木) 19:12:01 ID:8cwgwxqj
$_SERVERでつかわれるSCRIPT_FILEとSCRIPT_FILENAMEの違いってなんですか?
>>800 ありがとうございます!
やっとうまくいきました。
[public_html]
|
|----[image]---index.php
|
|----index.php
たとえばこんなディレクトリ構成が存在するとします。
imageディレクトリのindex.phpにアクセスするとルート元の
index.phpに飛ぶように処理したいのですが、
imageディレクトリ内のindex.phpに次の記述をしました。
header("Location:
http://www.example.com/");
このheader関数内の書かれたURLをサーバによって書き換えないと
いけないので、この面倒をなくすために自動で取得したいのですが
なにかヒントをお願いいたします。
806 :
nobodyさん:2006/09/14(木) 20:49:31 ID:z//mxYuG
>>803 SCRIPT_NAMEとSCRIPT_FILENAMEのこと?
phpinfo()出力してみれば一目瞭然だと思うけど、
SCRIPT_FILENAMEはファイルシステム上のパス
SCRIPT_NAMEはリクエストURI上のパス
PHP_SELFはPATH_INFOも含めたリクエストURI上のパス
REQUEST_URIはリクエストされたURIそのもの。クエリストリングも含む
807 :
nobodyさん:2006/09/14(木) 20:52:52 ID:z//mxYuG
>>805 $_SERVER['SERVER_NAME']
$_SERVER['HOST_NAME']
のどちらかだけど、後者はクライアントが任意に送れるので前者がお勧め。
ただし、設定によっては使えないので要注意
相対パスは?
./image/index.phpの中にrequire入れたら良いだけでは?
require '/index.php'とか
810 :
nobodyさん:2006/09/14(木) 21:08:57 ID:z//mxYuG
>>808 Locationには絶対URI指定することになってる。
>>809 表示されるものは同じだろうけど、ブラウザのロケーションURLとかが/image/index.phpのままだし、
ログにも/image/index.phpへの成功アクセスとして記録されちゃうから、
トップページのページビュー取得がめんどくさくなりそう。
その辺は>805の判断だろうけど
プリント (’$おまえらマジレベルひっく~~)
$array = array('aaa','bbb','ccc');
foreach($array as &$val){
if($val=='bbb'){
$val='kkk';
}
}
は期待通りにbbbがkkkに置き換わるんですが、処理部分を
unset($val);
にしても消去されないのは何故でしょうか? キーを使わないと消せませんか?
>>805 一応書いてみた。引数はURLを得たいファイルへの相対パス。
超簡易だから変な相対パス与えた時のことはシラネ
define('SCRIPT_DIRECTORY', dirname($_SERVER['SCRIPT_NAME']));
define('BASE_URL', (empty($_SERVER['HTTPS']) ? 'http' : 'https').'://'.$_SERVER['SERVER_NAME']);
function get_file_url($fileName){
$directoryName = SCRIPT_DIRECTORY;
$baseUrl = BASE_URL;
if(strpos($fileName, './') === 0)
return $baseUrl.$directoryName.'/'.substr($fileName, 2);
elseif(strpos($fileName, '../') === false)
return $baseUrl.$directoryName.'/'.$fileName;
while(strpos($fileName, '../') === 0){
$fileName = substr($fileName, 3);
$directoryName = dirname($directoryName);
}
return $baseUrl.$directoryName.'/'.$fileName;
}
815 :
800:2006/09/14(木) 21:44:47 ID:???
>>804 どのように解決したかを具体的に書いてくれると、
今後の初心者向けアドバイスの参考になるんだが。
どこでつまづいていて、どこを直したのかを伝えてくれ。
(今回の場合なら、mailをmb_send_mailに直したのか、それともSJISをJISに変換したのか)
今後も似たような質問が多ければFAQに入れられるし。
816 :
753:2006/09/14(木) 21:45:55 ID:???
えっと、
>>753>>759 は私です。
765 :759:2006/09/14(木) 10:14:28 ID:???
>>764 ですから編集ボタンを押したら編集画面をだしたいのです。答える気がないならレスしないでください。
この人はだれですか?
寝てしまい、レスをつけることができず、こんなことになってしまっていました。
まことに申し訳ございません。
このレスは釣りでもなんでもございません。
まじめに答えてくれた
>>762の人とスレの皆さんにお詫びいたします。
>>816 だからお詫びするヒマがあったらIDを出せって言ってんのが分からんか??
初めからIDを出してればそんなことにはならなかったんだから。
いいかい? 次から質問するときはメアド欄を空にして書き込むこと!!
こいつ頭の悪いガキだろ
先日、見たぞw
819 :
753:2006/09/14(木) 21:59:52 ID:lnPVNu7F
>>713 すみません。
癖でいれてしまっていました。
申し訳ない。
820 :
753:2006/09/14(木) 22:00:14 ID:lnPVNu7F
>>817 すみません。
癖でいれてしまっていました。
申し訳ない。
821 :
nobodyさん:2006/09/14(木) 22:19:09 ID:bJve1W25
<script>
function GoSubmit() {
if(document.Myform.pc_photograph.value==""){
alert('お名前が記入されていません');
return;
}else{
alert(document.Myform.pc_photograph.value);
}
}
</script>
と変数名pc_photographが13文字以上なら評価されません。
12文字以下の制限を解除する方法はありませんか?
823 :
nobodyさん:2006/09/14(木) 22:42:18 ID:bJve1W25
すまん。
824 :
nobodyさん:2006/09/14(木) 22:55:03 ID:eHErhI6Y
>>816 お前二度と来ないで良いよ
誰も答える気無いからレス返さないでね
826 :
753:2006/09/15(金) 00:00:14 ID:???
>>824 おめーに聞いてねーよ バカタレが
人が下手にでてればいい気になってんじゃねーよ このクソ野郎が
おまえみたいなカスでも生きてる価値あんのか ああ??
コード検索したらサイト出てきたw
潰しとこう
>>824 お前みたいなのがいるからなりすましとか増えてんじゃねーの?
本人だろ
文体で
分かる
分からんてwww
分かるつもりになってんのかwww
831 :
nobodyさん:2006/09/15(金) 01:08:12 ID:nrnbJRnJ
>>823-831 まぁ、まとめてスレ違いやね。
何か言い争いたい時は必ずID出すようにしなさいな
833 :
nobodyさん:2006/09/15(金) 01:43:20 ID:nrnbJRnJ
悪いのは的外れな質問した上に寝てて回答を無視した
>>753
835 :
nobodyさん:2006/09/15(金) 02:55:54 ID:Kae3HyQK
写真や画像jpg/gifが自動的にブラウザの大きさに合わせて
調整してくれるようにする方法はありますか?
836 :
nobodyさん:2006/09/15(金) 03:00:17 ID:azs6O5Hj
>>835 PCのブラウザならJavaScript使わないと無理。
携帯ならサイズが決まってるからUAからなんとかできる
よっしゃあああああああああああああああああ
3連休はPEARをゴリゴリ弄って遊ぶぞおおおおおおお!
>>835 単純に横幅だけ合わせればいいだけなら
<html>
<img width="100%" src="画像URL">
</html>
でいけね?
縦か横のどっちか小さい方にあわせるとかややこしい話になるとJavaScript必須。
>>839 img要素 の width属性 に %での指定できたっけ? と思って仕様書調べてみたら
問題無かったみたい。
>>841 べき乗の指数って自然数しかありえないものだと思ってた…そんなんあるんだ…
>>842 標準のpowでは出せるってことはbc関数のバグ?
>>843 bcmathのマニュアルには書いてないけど、ソース読んだかぎりでは、第二引数に整数しか使えないのは仕様と思われる。
bcsqet(bcpow(2, 5, 10), 10)でどうだ?
>>843 > べき乗の指数って自然数しかありえないものだと思ってた…そんなんあるんだ…
高校に行けば習うべ
847 :
841:2006/09/15(金) 11:04:04 ID:???
>>842-845 整数乗と平方根を併用する方法で上手くいきそうです。どうもありがとうございました。
0.5乗=平方根
高校の数学の時間寝てたからわからねえ話だらけだ('A`)
馬乗=巨根
bcpow() only supports exponen
ts less than or equal to 2^31
-1. Also, bcpow() does not s
upport decimal numbers.
平方根なんて習わなかったぜ!
ところでプログラマーのお前らって数学得意な奴多いの?
俺の場合どっちかというとifとかforeachの絡み合った国語系(?)なロジックが多くて
今まではそんなに数学力必要じゃなかったんだよね(簡単な足引掛割程度しか)
グラフィカルなものとかは作れる気がしない。昔から数学大嫌いで。
>>853 数学なんて0点だったぜ。
っていうかSEとかってモロ文系職だし。
プログラマも似たようなもんでは??
そもそも文系だったからなあ。
まさか自分がプログラムいじってるなんて
信じられないよ。
数学は高校2年までの知識しかないな。
といってももう忘れてるけど。
webプログラムなら数学はさほど必要なさそう。
だからオマエらレベルが低いんだよ。
計数能力ないやつがプログラマって おい 笑わせんなよw
数学は得意でした
日曜プログラマですが