【PHP】質問スレッド Part7
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/02/06 05:56ID:???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-10あたりに
はき出されたHTMLの
action=???
の???のところはどうなってる?
それをコピー&ペーストしてほしいんだけど。
と、>412は言いたいのだろうけど。
0416400
03/03/07 20:45ID:???<FORM ACTION= METHOD=POST ENCTYPE=application/x-www-form-urlencoded>
<INPUT TYPE=HIDDEN NAME=action VALUE=post>
<CENTER><P><FONT SIZE=6 COLOR='green'>ログイン</FONT></P>
<P><HR ALIGN=CENTER></P>
<P><TABLE BORDER=0 WIDTH=27%>
<TR><TD WIDTH=50% BGCOLOR=#CCFFCC><P ALIGN=CENTER>ユーザーID</TD>
<TD WIDTH=50%><INPUT TYPE=TEXT NAME=u_id SIZE=12></TD></TR>
<TR><TD WIDTH=50% BGCOLOR=#CCFFCC><P ALIGN=CENTER>パスワード</TD>
<TD WIDTH=50%><INPUT TYPE=TEXT NAME=passwd SIZE=12></TD></TR>
<TR><TD COLSPAN=2><CENTER><P><INPUT TYPE=SUBMIT NAME=Submit VALUE=送信></CENTER></TD></TR></TABLE></P>
あれ?なんかへん?
0417nobodyさん
03/03/07 20:49ID:???><FORM ACTION= METHOD=POST ENCTYPE=application/x-www-form-urlencoded>
激しく変
0418nobodyさん
03/03/07 20:55ID:???なんでだろ〜なんでだろ〜w
0419400
03/03/07 21:06ID:???ファイルでは
echo "<FORM ACTION=$PHP_SELF METHOD=POST ENCTYPE=application/x-www-form-urlencoded>\n";
となってるのに
ANHTTPD上のHTMLソースは
<FORM ACTION= METHOD=POST ENCTYPE=application/x-www-form-urlencoded>
になっちゃうよ
どうなってんだあ?
0422400
03/03/07 21:17ID:???エラーがでちゃうよ
Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING
なんでだろ〜なんでだろ〜w
0423nobodyさん
03/03/07 21:33ID:???0424240
03/03/07 21:46ID:???Expatの動作についての良い説明が見つからなかったんだけど、
(付属のドキョメントがない=即ちソース追えってことなんだろうけど)
同じExpatをベースにした、PerlのXML::Parserの解説で
http://standards.ieee.org/resources/spasystem/twig/perl_xml/perl_xml.html
>the strings it receives may be split arbitrarily,
それ(character handlerのこと)が受ける文字列は任意に分けられるかもしれなくて、
>ie the content of a single element can cause
>several successive calls to the character handler
>each with a part of the complete string,
言い換えれば単独要素のコンテントが、ひと揃えの文字列の部分毎に
いくつかの連続したcharacter handlerの呼び出しを引き起こす場合があります。
>especially when the string includes entities.
特に文字列がエンティティを含んでいる場合は
エンティティで区切りがつくらしい。「プロフェッショナルPHPプログラミング」の
P.386にもイベントの発生条件には言及していないが似たような事が書いてあった。
どれも、maybeとか「ことがある/こともある」とか全然断定的な書き方じゃなくて
言葉濁してるのが、また(笑)。
Webで見かけるコードは考慮して出力をスタックしてるものもあれば、
知らないか、分断されないコンテントしか入らないので考慮しないものもある感じ。
コードはともかく書籍の説明では一言触れても良いと思うのだか>その他の本
取り合えず勉強になったよ
0425400
03/03/07 21:59ID:???0426nobodyさん
03/03/07 22:11ID:???敢えてApacheじゃなくて、ANHTTPDを使うんだから積極的にhttpdに関する
情報を集めないと駄目かと。情報数ではApache > ANHTTPD なので。
http://homepage1.nifty.com/yito/namazu/gbook/20021209.0310.html
CGI版、ISAPI版、PHP4.3以降などの違いで取れる/取れない環境変数が
異なるようなので、他にも注意した方が良いと思われ。
0428394
03/03/07 22:15ID:zvlfISdLだめでした。絶対パスでやってもできん・・・(TT
同じディレクトリに置くとできるんだけど。
レッツPHPさんのスクリプトいただいてるんですけど、どっか設定いじらないと
呼び出せないってことはないですよね?
あとXHTML1.0だとなんかできないんですけど、そんなことはない?
0429400
03/03/07 22:21ID:???おお!
こんなゲストブックのスレがあったのか!
なんだよPHP_SELFは使えないのか・・・
情報ありがとう
やっぱApacheでテストした方がいいのかなあ
Apacheって設定がなあ
Unixの知識いるんでしょ?
0431426
03/03/07 22:50ID:???そっすね。デーモン自体はUNIX系で、
Windows-NT(除くCygwin)系は呼び名は"サービス"かな。
別にそこまで拘って使った訳じゃなくて、UNIX由来のものはhttpdとかftpd等と
そのままプロダクト名(ex.AN-httpd)や種類名に定着しているので、
そのhttpサーバの意味合いの種類名で使いました。
0432426
03/03/07 23:04ID:???UNIXの知識と言うより、Apacheの知識。
Apacheもネイティブアプリケーションなので、インストール自体はWindowsインストーラ一発
良くAN-HTTPDは簡単と聞くけど、設定がGUIなのと日本語で書いてあるので簡単なようなだけで
本来どっちも"簡単じゃない"と思います。AN-HTTPDに慣れてるのなら知識を上積みできるし、
そのままで良いんでは。私はAN-HTTPDでの動作チェックはしてないですが、動作が変という質問が出た場合は、
http://www.st.rim.or.jp/~nakata/gbook/faq.html
http://homepage1.nifty.com/yito/anhttpd/faq/
をチェックしてます。
PHP_SELFだけなら、現状で替わりにSCRIPT_NAMEを使うか、
AN-HTTPD1.42dとPHP4.3のCGI版(php.exe)との組みあわせなら
"PHP_SELF"に関しては値が取れるみたいですよ。
http://homepage1.nifty.com/yito/anhttpd/faq/php.html
0434nobodyさん
03/03/07 23:19ID:???スマソ。あれだけで判ってくれると思ってたんで。
で、$_SERVER["PHP_SELF"]が使えないことに対する予想される落ち。
echo "<FORM ACTION=$_SERVER["PHP_SELF"] METHOD=POST ENCTYPE=application/x-www-form-urlencoded>\n";
これのどこがまずいのか判らなかったら初心者逝きでFAだと思う。
因みに答えは echo "<FORM ACTION=". $_SERVER["PHP_SELF"] .">\n";
追記:
>>406
>>410
のような書き方するなら
<?
function HTML_BODY(){
?>
<FORM ACTION=<? print $_SERVER["PHP_SELF"]; ?> METHOD=POST ENCTYPE=application/x-www-form-urlencoded>
<INPUT TYPE=HIDDEN NAME=action VALUE=post>
<CENTER><P><FONT SIZE=6 COLOR='green'>ログイン</FONT></P>
<P><HR ALIGN=CENTER></P>
<P><TABLE BORDER=0 WIDTH=27%>
<TR><TD WIDTH=50% BGCOLOR=#CCFFCC><P ALIGN=CENTER>ユーザーID</TD>
<TD WIDTH=50%><INPUT TYPE=TEXT NAME=u_id SIZE=12></TD></TR>
<TR><TD WIDTH=50% BGCOLOR=#CCFFCC><P ALIGN=CENTER>パスワード</TD>
<TD WIDTH=50%><INPUT TYPE=TEXT NAME=passwd SIZE=12></TD></TR>
<TR><TD COLSPAN=2><CENTER><P><INPUT TYPE=SUBMIT NAME=Submit VALUE=送信></CENTER></TD></TR></TABLE></P>
<?
}
?>
なんてので代用できたりする。
0435400
03/03/07 23:33ID:???ありがとうございます
がんばります
0436nobodyさん
03/03/08 04:39ID:???$HTTP_COOKIE_VARS 使ってもさっぱりできません。
0437nobodyさん
03/03/08 05:02ID:???ていうか皆さんPHPのversionかきませう。
変数とれないって言ってる人。
とりたいスクリプトの最初に
phpinfo(32);
って入れてみましょう。
http://www.phppro.jp/ から得たネタですがw
0439nobodyさん
03/03/08 05:56ID:CI2+9VSLのを取得するにはどうすればいいでしょうか?例えば、ディスクへの書き込み
が失敗した時、ディスク容量の不足かどうかを判定する場合を考えています。
perl なら $! ですが、php ではエラーハンドラの引数から取得するしか無い
のでしょうか?
0440nobodyさん
03/03/08 07:14ID:???phpinfo(INFO_VARIABLES);
INFO_GENERAL
INFO_CREDITS
INFO_CONFIGURATION
INFO_MODULES
INFO_ENVIRONMENT
32:INFO_VARIABLES
INFO_LICENSE
INFO_ALL
番号入れて〜。
0441439
03/03/08 07:16ID:CI2+9VSL# usort のドキュメントに「安定でない」と注記して欲しいと思いました。
0442nobodyさん
03/03/08 07:55ID:2Y4AuOiphttp://homepage3.nifty.com/digikei/ten.html
0444441
03/03/08 11:30ID:???そう? 単に「おかしい」と言われてもわけわからないけど、stable sort は
http://www-cse.uta.edu/~holder/courses/cse2320/lectures/l8/node9.html
にあるように、同順の要素の順列を乱さないソートのこと。(余談だけど、
Perl は 5.8.0から use sort 'stable' が使えるようになった。)
1:INFO_GENERAL
2:INFO_CREDITS
4:INFO_CONFIGURATION
8:INFO_MODULES
16:INFO_ENVIRONMENT
32:INFO_VARIABLES
64:INFO_LICENSE
-1:INFO_ALL
0448nobodyさん
03/03/08 15:44ID:VEDbJ1LOAPACHE 2.0.44
PHP 4.3.1
MySQL3.23.55
基本的にはうまく動いていますが、何故か文字化け。
APACHE2\htdocs 下に作成した.phpを置いてIEでみると日本語が文字化けします。
IEで何度日本語(sjis)にエンコードしてやっても設定がヨーロッパ(ISO)
になってしまいうまくいきません。
php.iniなどでデフォルトの文字コードを設定する個所があるのでしょうか?
誰か教えてくださいな。
宜しく
0449nobodyさん
03/03/08 15:51ID:???http://jp.php.net/manual/ja/configuration.php
0450nobodyさん
03/03/08 18:20ID:???0451nobodyさん
03/03/08 22:25ID:???あとphpスクリプトに
・header()で、HTTPヘッダに正しいcharsetを出力。
・出力しているhtmlのmetaでも正しいcharsetの記述を加える
の2点を抑えれば大抵のWebブラウザで問題なく自動判別される筈。
#駄目なやつもあるが
0452nobodyさん
03/03/09 00:16ID:???変えてみたら?というよりデフォルトの設定でISO-8859になってるんじゃ?
0453nobodyさん
03/03/09 02:08ID:???具体的には、別のサーバーにあるファイルをfopen()で読み込みたいんだけど、
たとえば任意の時間(1分間とか)反応がなかったらエラー文を表示させるとかって可能?
0454nobodyさん
03/03/09 02:34ID:???オープン〜転送まで、標準のタイムアウト処理以外をやったことないけど、
http://www.php.net/manual/ja/function.socket-set-timeout.php
http://www.php.net/manual/ja/function.stream-set-timeout.php
辺りとエラー処理を組み合わせると処理できないかな。
cURL使えば細かく制御出来たと思うけど。
0455nobodyさん
03/03/09 07:53ID:yH3m/QY10456nobodyさん
03/03/09 09:22ID:vbBiEB0Uhttp://www.php.net/downloads.php
のWindows Binariesの項で"PHP 4.3.1 zip package"という方を取ってくる。
下の"PHP 4.3.1 installer"の方は一緒に入っているDLL関係が少ないので初めてだとハマる。
Windowsへのインストール方法やそれに沿った解説をしている初心者本が出版されているので、
それを併用しながら覚えていくのが良いでしょう。日本語用の設定もしないと駄目だしね。
0458nobodyさん
03/03/09 17:46ID:0jalCBaQPHPProxyは作りました。PHPProxyに串を刺すわけです。
串サーバとやりとりするデータの内容とかがわかればいいのかな?
説明しているサイトなどあれば教えてください。
よろしくお願いします。
0461nobodyさん
03/03/09 21:13ID:LycIaIFJXHTMLで書いていて、phpというものを使おうと思ってサイト巡ってスクリプトを
DLしてきたのはよかったのですが、
<? 〜 ?>;
というPHPを埋め込んでもエラーが出てしまいます。
どうも<?xml version="1.0" encoding="Shift_JIS"?>この宣言がまずいらしく、
HTML4.01なら問題ありませんでした。
Shift_JISを使う以上、この宣言をはずすことができないらしく、悩んでいます。
どうやったらXHTMLのままで、phpをエラーなく埋め込むことができるでしょうか?
<?php 〜 ?>としてphpを埋め込んでみてもだめでした。
どうかおひとつ教えてください。
>>394さんとは似てて違うと思うので・・・
0462nobodyさん
03/03/09 21:16ID:???0463461
03/03/09 21:41ID:LycIaIFJえ〜と、<?xml version="1.0" encoding="Shift_JIS"?>を
<?php echo '<?xml version="1.0" encoding="Shift_JIS"?>'."\n" ?>
もしくは
<?='<?xml version="1.0" encoding="Shift_JIS"?>'."\n"?>
にすればいいのでしょうか?
そのあとは、普通に <?php ?>を書いても大丈夫ってことでいいでしょうか。
0466439
03/03/10 01:51ID:???XHTML との併用なら、php.ini で short_open_tag = off とするのが筋。
(http://jp.php.net/manual/ja/configuration.directives.php 参照)
# なんというか…いい加減な回答が多いな…。
0467nobodyさん
03/03/10 05:45ID:???0468nobodyさん
03/03/10 06:44ID:???short_open_tagはOnがデフォルトなんだし、それを変更できない環境もあるのだから、
offとするのが筋、いい加減な回答が多いと言う方が筋違いだな。
0469nobodyさん
03/03/10 08:01ID:???実はshort_open_tagの(推奨)デフォルト値はOffに何度かなってる。
実際にリリースバージョンでは結局Onで出てるけどね。
#register_globalsの件が頭をよぎったに違いない。
折れも(少なくてもディレクトリ単位の)ディレクティブの設定で
設定して使うのが「筋」だとは思う(個人的なスタイルと違うため)のだが、
IISでISAPI版使ってたりするとメインのiniでしか設定できなかったり、.htaccessで設定が出来ない
(はっきり言うと「そんなトコやめちゃえ」なのだが、人それぞれの都合もあるだろうしね)
環境もあるし、echoで出力するのはマニュアルでも書いてある方法なんで
"いい加減"は確かに間違いかと。
0470nobodyさん
03/03/10 21:47ID:???このページの
php_manual_ja.chmをダウンロードしたのですが、
ページを表示できませんになっちゃいます。
どうすればいいですか?
0471nobodyさん
03/03/10 21:56ID:kQW/LqS/0472nobodyさん
03/03/10 22:14ID:Y+FtpZSs知りたいのはhttpで接続できるHTMLファイルの最終更新時刻です。
たとえばhttp://www.inter.net/index.htmlの更新時刻を知りたいのですが。
0474nobodyさん
03/03/11 00:21ID:UVuXybIbより前かとの判定簡単に出来ませんか?
0476nobodyさん
03/03/11 00:41ID:???0477nobodyさん
03/03/11 00:53ID:UVuXybIb初期設定で条件を$aに代入して日にちまで比較したいのです。
mktime < unix timeだと1970まででは?
0480nobodyさん
03/03/11 03:39ID:???http://cvs.php.net/co.php/pear/Date/Date/Calc.php 使ってみれば?
使い方は、http://cvs.php.net/co.php/pear/Date/tests/test_calc.php を参考
まあ、基本的にPHPの普通の関数と変わらないよ。
でもdate()って負の値が通るから、1900年ぐらいまでならOKじゃない?
strftime()は負の値は駄目だね。
でも"1940-june-02"というフォーマットなら文字列で抜いて処理した方が簡単だな。
あとで日数計算するなら別だけど。
0481nobodyさん
03/03/11 03:39ID:???所謂32bitの壁なら、PEAR::DateのDate_Calc
http://cvs.php.net/co.php/pear/Date/Date/Calc.php 使ってみれば?
使い方は、http://cvs.php.net/co.php/pear/Date/tests/test_calc.php を参考
まあ、基本的にPHPの普通の関数と変わらないよ。
でもdate()って負の値が通るから、1900年ぐらいまでならOKじゃない?
strftime()は負の値は駄目だね。
でも"1940-june-02"というフォーマットなら文字列で抜いて処理した方が簡単だな。
あとで日数計算するなら別だけど。
0482nobodyさん
03/03/11 08:56ID:6kC5wvS40483nobodyさん
03/03/11 09:15ID:KzRFFkn3以下のようにしても、グローバル変数として扱うことが出来ないようです。
for($y = 1 ;$y < 9 ;$y++ ) {
for($x = 1 ;$x < 9 ;$x++ ) {
global $board[$x][$y];
}
}
この場合は以下のようにユーザ関数に$boardを引数として渡すことで解決したのですが、
どうにかしてグローバル変数として使う方法はないのでしょうか?
function board (&$board)
{
hogehoge
}
0484bloom
03/03/11 09:17ID:BKppFwug0485nobodyさん
03/03/11 09:24ID:???ヲイヲイ、なんでforの中にglobalがあるんだ?
どうにかして、って普通に
global $board;
じゃだめなのか?
0486nobodyさん
03/03/11 10:21ID:???mb_language("Japanese");
mb_send_mail($to,$subject,$body,$header);
でやってみると
「糖尿病の予\防や治療につながる可能\性があるという。」
になってしまいます
このバックスラッシュを外すにはどうしたらいいのでしょうか
EUC-JP使う以外に上手いこと出来る方法があれば・・・
0490nobodyさん
03/03/11 13:03ID:???ヘッダー見ると
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
X-UIDL: 7e##!8YD"!??]"!gaA!!
になってますがいけないんでしょうか・・・
なんせ2日前に始めたばかりなもので
もうちょっと厨に付き合ってください
>>487 >>489
マニュアルで stripslashes見つけたので使ってみまつ
0491nobodyさん
03/03/11 13:08ID:???PHP初心者スレがちゃんとあるのだが、そっちにはいかんの?
http://pc2.2ch.net/test/read.cgi/php/1011550860/
0492nobodyさん
03/03/11 15:52ID:adKq/xnz文字列だと空白で埋めたいのですが・・・
0494nobodyさん
03/03/11 16:01ID:adKq/xnzsprintfの関数で固定長のNULL「ASCII(0)」はどう表現すればいいのですか。
STR_PAD の連結のパターンもかんがえたのですが。
0495nobodyさん
03/03/11 16:31ID:???PHPの4.2.1なんだけど、
$str = 'test';printf("%010s\n", $str);
だと『000000test』ってちゃんと出てくるんだけど
$str = 'test';printf("% 10s\n", $str);
だと『test』のみ
本当はドットで埋めたいので
$str = 'test';printf("%.10s\n", $str);
だとやっぱり『test』のみ
アレ?なんか根本的に間違ってますか?
いろいろやり方があると思うが、
substr(str_repeat("."文字数).$str,-文字数);
で、どよ。
0500nobodyさん
03/03/11 18:15ID:???printf ("% 10s\n", $str);
printf ("%'.10s\n", $str);
手元の4.3.1(Win版)ならこれで
test
......test
になったよ
ttp://www.php.net/manual/ja/function.sprintf.php
preg_replace_callbackってclassの中で
第二引数(replaceするルールを作る関数を指定)に
classのメソッドを指定する方法って無い?
何をしたいかというと、
ルール作る関数に正規表現でひっかかった以外の
値を持たせたいんだけど、globalにする以外の方法
無いかなぁ・・・と思って。
マニュアルのNotesに
preg_replace_callback(pattern, array($this, 'method_name'), subject)
ってあるけど、これじゃダメの?
うわ、見落としてた。
助かりました。
PHPBuilderで同じ事を聞いてる人がいるなぁ
と、変なところばかり探してWeb版マニュアル見てなかったよ。
ありがとー。
0505nobodyさん
03/03/12 10:26ID:h4TV2949たとえばクライアントが
直接www.hoge.com/hoge.phpにアクセスできなくして、
www.hoge.com/indexというURLにアクセスすると
内部的にwww.hoge.com/hoge.phpにアクセスするようには
どうすればよいのでしょうか。
Tomcatならばweb.xmlでマッピングができたのですが。。。
0506nobodyさん
03/03/12 11:36ID:???どっちかというと、それはapacheの設定。シンボリックリンクでやる手も。
phpでhoge.phpでリダイレクトかけて云々という方法が取れなくもないが、
hoge.phpもindexも実体がいるし、hoge.phpにアクセスしないと駄目だしね。
hoge.phpからの出力はHTTPヘッダのリダイレクションだけだとしても。
0507nobodyさん
03/03/12 11:51ID:h4TV2949レンタルの専用鯖だとapacheの設定いじれるんでしょうか…。
あと2chで気になるのはread.cgi/phpとなっていることろです。
read.cgi?phpじゃないんですね。
これどうやってるんでせう…
0508nobodyさん
03/03/12 11:57ID:63/Zc0OA何か方法は無いですか?
linuxRedHat+Apatch+PHP3
0509nobodyさん
03/03/12 13:42ID:Spo6B9sQこんなサイトあったんですが、ネタですかね。
1ファイルで9万行も・・・ ソース拝見したい。。
0510nobodyさん
03/03/12 13:57ID:???じゃないとメンテナンスできないだろ, 9万行超のソースなんか。
0511nobodyさん
03/03/12 15:21ID:???仮に様々なキャリアを対象とした携帯のコンテンツがあって
なるべくURLは短くしたいのでhttp://hoge.com/i/にしたいと
しる。でもドキュメントルート配下からはCGIの実行は出来な
い。
で、/i/index.htmlを/cgi-bin/keitai.phpのシンボリックリ
ンクにする。
http://hoge.com/i/にアクセスすると/cgi-bin/keitai.phpが
実行される。
と言うことが出来るという事なのか?
あまりPHPな話じゃないからsage。
0513nobodyさん
03/03/12 20:11ID:???phpのメリットは無いんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています