【PHP】質問スレッドpart16【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/04/07 01:06ID:HTcWOpWf上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ及び注意事項等は、 あふぉが居なけりゃ>>2-5
0693nobodyさん
04/05/07 20:21ID:???http://www.php.net/
0694691
04/05/07 20:22ID:???echo is_domain_available("hoge.com")) ? "available" : "registered";
例えば、こういう呼び出しが出来るような、
is_domain_availableのうまい実装方法を軽く教えて下さい。
0695nobodyさん
04/05/07 20:28ID:???それ無くしたら何が楽しいよ?
0697691
04/05/07 20:36ID:???軽く逆切れしますよ。
695が誰にレスし(ry
0698691
04/05/07 20:42ID:???多謝!!
まんまそれ用の関数あったんですね・・
軽く吊って来ます・・
↓続いて次の質問軽くどうぞ
0699nobodyさん
04/05/07 20:48ID:???0700nobodyさん
04/05/07 22:18ID:Ve7XXqWH0701nobodyさん
04/05/07 22:32ID:???軽くする方法を教えてくださいm(_*_)m
>>700
PASV云々よりタイムアウトがうざい。
0702nobodyさん
04/05/07 22:39ID:???0703581
04/05/07 23:03ID:???domxmlの件ですが、結局自作する事にしました。
半分程度完成(xmlパーサのみ)。
後は node->last_child とか、そういう細かい関数を必要に応じて追加し完成させる予定。
0705nobodyさん
04/05/08 12:16ID:PgRMX7CV0706nobodyさん
04/05/08 15:36ID:H1s4AHG1保存することはできないのでしょうか?
ImageJPEG($dst_im, "file.jpg");
だと正常に保存されるのですが、
ImageJPEG($dst_im, "./path/filename.jpg");
のようにすると保存できません。(エラーも出ません。)
0707706
04/05/08 16:44ID:H1s4AHG1ob_start();
$img_out_func($dst_im);
$i = ob_get_contents();
ob_end_clean();
としてファイルに保存することにしました。
0708nobodyさん
04/05/08 17:25ID:2ZPN8DLzファイルやDBを読み込んで文字を表示させた状態のPHPファイルを
そのままHTMLファイルとして保存し、表示させることってPHPでできますか?
0709nobodyさん
04/05/08 17:27ID:???0710708
04/05/08 17:36ID:???軽くウッカリしてました……簡単じゃんよ、ねぇ。
0711nobodyさん
04/05/08 18:20ID:???0712nobodyさん
04/05/08 18:55ID:???↓次の質問ドゾ
0713nobodyさん
04/05/08 19:21ID:???$_GET{'hoge'}が、文字化けしてしまうのですが。
日本語で渡しているのが原因だと分かりきっているのですが、
hoge.php?race=NHKマイルカップ
で$_GETで取り出した変数が「NHKマイ・E・奪愨」と…
マルチバイト関数は使えないPHP4.3.4です。
0714nobodyさん
04/05/08 19:23ID:???0715nobodyさん
04/05/08 19:26ID:???↓次の質問ドゾ
0716nobodyさん
04/05/08 19:28ID:???内部エンコーディングと出力のエンコーディングが違うんじゃねぇのか
0717nobodyさん
04/05/08 19:35ID:???エンコードしないとだめです
↓次の質問ドゾ
0719nobodyさん
04/05/08 19:48ID:???ま、おっしゃるとおりで、RFC的にはURLエンコードしなければいけないけど、
IEなんかだとそのままでも通ってしまうと。
そゆことでしょ。
0721nobodyさん
04/05/08 20:50ID:???全部EUCに統一してますですが、それでも内部とかでは違うのでせうか。
>>714
ありがとうございます。
URLエンコードでググったらbase64_encodeという関数が出てきました。
リファレンスにも書いてありました、もろに「URL関数」と。
0722nobodyさん
04/05/08 20:52ID:???0723nobodyさん
04/05/08 21:23ID:???echo mb_convert_encoding($_GET['hoge'],"EUC-JP","auto");
やってみると?
0724nobodyさん
04/05/08 21:27ID:???phpに送られる、で$_GETで受け取るとクライアントの文字コードに戻ってる
だから、中でeucにしてやらんと
0727nobodyさん
04/05/08 21:30ID:???じゃあjcodeか何かで変換するしかねーか
0728nobodyさん
04/05/09 04:58ID:???0729nobodyさん
04/05/09 05:12ID:???再帰的略語の何がおもしろいのかは、俺にもワカラン
0730nobodyさん
04/05/09 05:15ID:???PHP FAQより :
2. PHPとは何の略ですか?
PHPはPHP: Hypertext Preprocessorの略です。
最初の文字が「頭字語の頭字語」になっているため多くの人は混乱します。
この種の 頭字語は「再帰的頭字語」と呼ばれます
GNUみたいなもん
0732nobodyさん
04/05/09 11:02ID:???って思ってたけど、PHPもそうだったんか
0733nobodyさん
04/05/09 17:23ID:???0734nobodyさん
04/05/09 17:28ID:???0735nobodyさん
04/05/09 17:35ID:???0736nobodyさん
04/05/09 20:42ID:???同意。
http://www.google.co.jp/search?q=PHP&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
5個目でやんのよ・・・
0737nobodyさん
04/05/09 22:58ID:???既にOracle8が動作しているDBサーバー(Win2000Server)があって、
それとは別ホストにLinux+Apache1.3+PHP4.6.2をインストールして
Ethernet(LAN)経由でPHP4とOracle8と連携させたいのです。
この場合PHPのインストールは
どのようにしたらよいでしょうか?
今のところLinuxマシン上にNet8とかを
インストールする必要があるのかなと思ってます。
Oracleのライセンスとかはどうなるんでしょうか。
0739nobodyさん
04/05/10 01:34ID:???http://www.amazon.co.jp/exec/obidos/tg/browse/-/492352/
ここの検索窓から検索するといいかも
0740nobodyさん
04/05/10 04:07ID:???のってどうやってやるんでしょう?
0741nobodyさん
04/05/10 04:15ID:???0742nobodyさん
04/05/10 04:21ID:???0743nobodyさん
04/05/10 04:24ID:???0744nobodyさん
04/05/10 08:49ID:???0745742
04/05/10 12:12ID:???0746nobodyさん
04/05/10 12:55ID:???0747nobodyさん
04/05/10 13:14ID:???俺はそんな事せずにCRON使うが
0748nobodyさん
04/05/10 13:23ID:???1回/日とかならCRONだけど、1回/1分とかならsleepで繰り返し実行。
0749nobodyさん
04/05/10 16:06ID:???・真っ当なやり方
Unix系ならcronやat、windowならタスクスケジューラ(よく知らん)
・力技
無限ループするプログラムを別に用意し、時間が来たら対象スクリプトを実行
sleepでタイミングを見計らって実行
・巷でよくあるタイプ
頻繁に実行されるスクリプトに時間チェックをする仕組みを組み込み、
希望する時間を過ぎていれば該当スクリプトを実行
・番外編
自宅のPCのcronやタスクスケジューラを使って該当スクリプトにアクセス。
メモリ常駐って意味で行くとデーモンやサービスにするのが妥当な気もするが。。
0750nobodyさん
04/05/10 16:33ID:???0752742
04/05/10 17:22ID:???変な条件をつけた質問者にどうぞその常識を教えてやってくれ
0753nobodyさん
04/05/10 17:34ID:???環境すら書かずに質問して、本来ならば叩かれるタイプなのに
暇人が多いおかげで丁寧にレス付けてもらって。
0754nobodyさん
04/05/10 17:37ID:???php4.3.5において、
オブジェクトAのプロパティBをプリント文や、ヒアドキュメントなんかで出力するには
どう記述すればいいの?
print("${A->B}")
昔は、これで動いていたはずなのだが、今はエラーがでちまう。
0755nobodyさん
04/05/10 17:42ID:???0756nobodyさん
04/05/10 17:44ID:???0758nobodyさん
04/05/10 18:05ID:???0759nobodyさん
04/05/10 18:23ID:???・session.use_trans_sid が true
・ブラウザの設定が Cookie を off
・ページにフォームがあり、method='post'
以上の条件で実行すると、form に自動的に以下のような hidden フォームが挿入されます。
<input type="hidden" name="PHPSESSID" value="bc0d06379b5adaab95e8d40a939528a9" />
form が複数あると、すべての form に挿入されます。
これは php マニュアルのどこに載っているのでしょうか?
探しましたが、見つけられませんでした。
厳密な挙動を知りたいので、どなたかお教えいただけないでしょうか?
PHP Version 4.2.2
Linux redhat 2.2.14-5.0 #1
http://www.php.net/manual/ja/ref.session.php
この hidden が挿入されると、HTML-Lint がいきなり赤点になってしまうので、
個人的には鬱です。
タグを閉じるのに />を使ってよいのは xhtml だけなのに。
0760nobodyさん
04/05/10 18:39ID:???は?
0761nobodyさん
04/05/10 18:42ID:???0762nobodyさん
04/05/10 19:05ID:???そのURLに「相対URIは自動的にセッションIDを含むように変換されます」と書いてあるよ?
厳密な挙動を知りたいなら、ソースから
session.c : php_session_reset_id -> php_url_scanner_add_var
url_scanner_ex.c : php_url_scanner_add_var
0763759
04/05/10 19:11ID:???<a> タグにクエリが付加されるのは確かに書いてあります。
しかし、フォームに hiddenフォームが挿入されることは書いてないようです。
あと、すみませんが C のソースを追いかける力量はありません。
どこかに、できれば日本語の文献を見つけたいと思っています。
0764nobodyさん
04/05/10 19:18ID:???0766759
04/05/10 19:25ID:???form=fakeentry という部分でしょうか?
これが、hidden フォームの自動挿入を意味しているのでしょうか?
fakeentry で(やむを得ず)英文ページを検索していますが、具体的な説明が見つからず、
困っております。
0767nobodyさん
04/05/11 01:42ID:1hKjpX9h$db->next_record();
してからprintすると出力される。
0768759
04/05/11 10:10ID:???・session.use_trans_sid が 1 (true)
だと、method='[get|post]'に関わらず、hidden が挿入されるようです。
これは、<form>タグをhtml出力にするか、<?php echo <form> ?> などと
書くかによらず、すべての フォームに挿入されるようです。
おそらく、バッファの出力の前に、SAXで出力内容を全てパースし、
タグを挿入しているのでしょう。
リンクに ?<?=SID?>に当たるものを付加するのも同じやり方のようです。
hidden については 赤マンモス本の PDF版 P80に載っていますが、
http://www.php.gr.jp/php/php4tettei/
PHPマニュアルに詳細情報が見つからないのは残念なことでした。
0769nobodyさん
04/05/11 12:51ID:???url_rewriter.tags設定ディレクティブあたりを変更してみては?
0770nobodyさん
04/05/11 13:19ID:???0771nobodyさん
04/05/11 16:38ID:???0772772
04/05/11 19:01ID:j+/3ilVKの掲示板なのですが、専用アイコン以外の普通のアイコンが表示されません。
中身は↓のようになってます。どうしたらいいのか、教えてください。お願いします。
http://sumiro2.hp.infoseek.co.jp/afraid/bbs.txt
0775nobodyさん
04/05/11 19:18ID:wZxq13vM$num2に入っている値が$num1にあった場合、$num1の配列から、その値を削除するには
どうすればいいのでしょうか?
$num1[0] = '001';
$num1[1] = '002';
$num1[2] = '003':
$num1[3] = '004';
$num2[0] = '002';
$num2[1] = '004';
で$num1を001と003だけにした。
0776nobodyさん
04/05/11 19:58ID:???$num1 = array_diff($num1, $num2);
//検証
foreach($num1 as $key => $value){
echo "$key $value <br>";
}
http://jp.php.net/manual/ja/function.array-diff.php
0777nobodyさん
04/05/11 20:03ID:???url_rewriter.tags : a=href,area=href,frame=src,input=src,form=,fieldset=
session.use_trans_sid : on
の状態で、
<a href="./">a</a>
<MAP name="map1"><area href="./" shape="rect" coords="0,0,100,100"></MAP>
<input src="./">
<form method="post" action="./"></form>
<fieldset></fieldset>
を実行させると、全ての行に ./?PHPSESSID=〜か<input type="hidden" name="PHPSESSID" が挿入される。
要は、trans_sid = onなら、url_rewriter_tagsで設定したものに対して
>>762が示している置き換え手順に従って単に書き換えられる。
formのinput type="hidden"の />はソース内に埋め込まれているので変更したいならここを弄る。
それが嫌ならurl_rewriter_tagsからformを除外し、自分でSIDを埋め込む。
0779768
04/05/11 20:28ID:???やっと挙動が理解できたように思います。
そのタグに クエリを付加するか、hiddenフィールドを埋め込むかは、
タグごとに C のソースで決まっていると考えて良いようですね。
fakeentry は書いても書かなくても良くて、
form= と form=fakeentry は同じなのですね。
hiddenフィールドは fieldset の中に入っていてほしいので、
form= の代わりに fieldset= と書くことにします。
/>については、あまり気にしないことにします。
この自動挿入は、クライアントが Cookie をどう設定しているかによって
hiddenフォームの有無が変わるので、
JavaScript で扱うフォームの要素数を決め打ちにできなくなるのが
少々、悩みの種ですが、それは何とか考えることにします。
ありがとうございました。
0780Upo
04/05/12 00:16ID:UdSoQGZz最初のログイン後にセッション情報をDBに格納して、次のログインは、
セッション情報があれば、ログイン不可にすればと思ったのですが、
最初のログインしたユーザが不正ログアウト(ブラウザーの「X」をクリックなど)
した場合、セッション情報が不当に残ってしまうので使い物になりません。
わかる方がいましたら、お願いします。
0781nobodyさん
04/05/12 04:11ID:Y6JDwafk「"」が含まれてると、$_REQUESTなどで受け取るときに
「\"」と\が付いてきてしまうのですが、
これを付けないように送ることはできないでしょうか?
0782nobodyさん
04/05/12 04:31ID:???0783nobodyさん
04/05/12 04:32ID:???magic_quotes_gpc
http://www.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc
0784nobodyさん
04/05/12 11:26ID:BOFMZpgMFatal error: Call to undefined function: pg_insert()
という未定義エラーが出ました。
この実験的なステータスを有効にするには
php.iniのどこを書き換えればいいんですか?
[PostgresSQL]
; Allow or prevent persistent links.
pgsql.allow_persistent = On
; Detect broken persistent links always with pg_pconnect(). Need a little overhead.
pgsql.auto_reset_persistent = Off
; Maximum number of persistent links. -1 means no limit.
pgsql.max_persistent = -1
; Maximum number of links (persistent+non persistent). -1 means no limit.
pgsql.max_links = -1
postgresql部分はこれだけ?
0785nobodyさん
04/05/12 11:59ID:???Dynamic Extensionsの項の extensionの組み込み部分
Unix系(pgsql.so)とWindows(php_pgsql.dll)は
違うので、マニュアルを確認のこと。
# つかマニュアル読んで無いやろ?
# 関数リファレンスまでのI〜IVは通しで読んでおくこと。
# 関数リファレンスは暇な時と必要な時でいい
0786nobodyさん
04/05/12 13:19ID:???レスがついてないようなので書いてみる。
似たような仕事をしたことがあった。JSP だったけれど。
標準的な HTTP サーバとブラウザでは、多重ログインを抑止するまっとうな方法は
存在しないように思う。だから、何かを犠牲にしなければならないわけで、
1.(現実的)セッションタイムアウトを短めにする。
タイムアウトを10分とかにして、時間切れを JavaScript のポップアップなどで
告知。ページの一時的な遷移などをユーザに促す。
・長所は、既存のコードや設備の変更がほとんど不要なこと。
・短所は、ユーザがわずらわしいこと。
2.(理想的)Java Applet か Macromedia Flash の導入
これらは、ブラウザをリロードすることなしで、サーバと交信を行うことができる。
小さなパケットを絶えずサーバとやり取りさせて、それが途切れたらログオフしたと見なす。
・長所は、ユーザにもサーバにも負担にならず、技術的にエレガントなこと。
・短所は、多くの新規コードを導入しなければならないこと。
3.(折衷案)隠しフレームを作り、小さな隠しページを絶えず自動リロード。
要するに、2.と同じようなことを1.と同じ技術でできないかと考えたもの。
セッションタイムアウトを1分、リロードサイクルを30秒とかにする。
・長所は、技術的にあまり手間がかからず、ユーザもわずらわしくない。
・短所は、サーバに負担がかかること。イントラネット向きか?
実際の仕事は、私は 2.で行きたかったんだけど、3.のような感じで進んだ。
最後は結局、仕事自体がポシャったんだけどね(苦笑)。
0787784
04/05/12 13:52ID:???関数リファレンスは確かに読んでません。
ていうか、技評のPHPポケットリファレンス(ISBN4-7741-1668-8)を見ながら
書いてるんすが、この本、ちょっと説明不足ぎみ...
785さん、サンコス。RHL9です。暇な時にチェックしときます。
ていうか将来変更される可能性がある関数なので別に使わなくてもいいか....
0788785
04/05/12 15:40ID:???今見直してみたらpg_insert()の未定義エラーなんだね。
それ以前にpg関数使ってる筈だから自分の指摘は見当違いだったな。
ところでポケットリファレンスにはpg_insert()はPHP4.3以降の
対応と書かかれてたけど、結局試してたのがPHP4.3未満だったのかな?
http://jp2.php.net/manual/ja/function.pg-insert.php にも書いてあるね。
pgsql.cのソース見てみたけど、PHP4.2.3のものでは未定義、
PHP4.3.0のものから定義されてた。
pg関数は名称変更もあったり色々と変更/追加が多いので、
使う前にはちゃんと確かめた方がヨロシ。
# データベース絡みはどのみち抽象化して使うのが正攻法だと思います。
0789nobodyさん
04/05/12 15:45ID:???よくWeb上で実現しているポートスキャンをやって、
ポートが空いているかどうかを調べるサイトを作りたいのですが、
方法や使用する関数名など調べてもいまいちピンときません。
どなたかご存じのカタられませんか?
0790nobodyさん
04/05/12 16:38ID:???自分のところをチェックするだけなら巷に多々あるスキャンツール
を使えばよいこと。仕組みを理解したり実装を考えたり出来ないのなら
他人が利用することが前提のツールを作ろうとしなさんな。
仕組みから実装を考える部分で疑問が出れば、それを質問として
訊けば回答が得られる可能性はある。でも実装は難しくないよ。
(仕組みも他の通信プログラムに比べれば簡単)
0791nobodyさん
04/05/12 16:58ID:???に
>Warning
>Do not use Apache 2.0 and PHP in a production environment neither on Unix nor on Windows.
と有りますが
具体的にどんな問題が有りますか?
またApache2にDSOではなくstaticに組み込むことは出来ますか?
0792nobodyさん
04/05/12 17:18ID:???実運用では使わないでねって事じゃないの
■ このスレッドは過去ログ倉庫に格納されています