【PHP】質問スレッド Part4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/02 15:32ID:f3afNVBG<<参考>>
■本家
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を見よう。
0795nobodyさん
02/08/28 07:59ID:???コアラをパンダに変えるにはどうしたらいいのでしょうか?
0797tekitou ◆NM99TIzo
02/08/28 09:20ID:???0798nobodyさん
02/08/28 09:29ID:???0799nobodyさん
02/08/28 10:12ID:???0800nobodyさん
02/08/28 21:34ID:???Apacheを15分毎に監視し、応答がない等の正常ではない反応があった場合、
Apacheを再起動する。
そういうスクリプトを書くべし。
で、答えは?
0803nobodyさん
02/08/29 06:27ID:???いや、Win版で頼む。
UNIX版だとそーいうスクリプト(Perl)が多いな。
Win版Apacheでそういうのは見かけないのう。
0804nobodyさん
02/08/29 06:30ID:???んで、予定されたタスクでこれを15分間隔で実行。
fopenした時、unkoと言う文字列があればなにもしない。
unkoと言う文字列が取得出来ない場合、execでアパッチを停止、起動させる。
これで解決じゃん。
0805nobodyさん
02/08/29 14:49ID:???0806nobodyさん
02/08/29 17:39ID:???こんな使い方は(;´Д`)
Apache 落ちてても PHP は使えるだろ。
モジュールとしては使えないが・・・
/sapi/cliをコンパイルして
cronで15分毎に実行。
$sock = fsockopen("localhost",80, $errno, $errstr);
でsockがfalseだったら/usr/local/apache/bin/apachectl restartを実行
もしもっと確実に監視したいならHEAD / HTTP/1.0でも送信すればよろし
0810nobodyさん
02/08/30 06:14ID:???fsockopenならWin版PHPでも使えるね。
>もしもっと確実に監視したいならHEAD / HTTP/1.0でも送信すればよろし
それはどのようにして送信?
http://jp2.php.net/manual/ja/function.fputs.php
ちなみにWinなら再起動は
C:\Program Files\Apache Group\Apache\Apache.exe -w -n Apache -k restart
0812nobodyさん
02/08/30 13:44ID:IarIlbJG一旦認証して、色々なサービスに認証を引き継ぎたいです。
(シングルサインオンのようなイメージ)
よろしくお願いいたします。
0813nobodyさん
02/08/30 16:03ID:???http://pc.2ch.net/test/read.cgi/php/1030630239/l50
は削除依頼しましたか?
http://qb.2ch.net/saku/index2.html
0814nobodyさん
02/08/30 16:13ID:okP1fGcQの環境でGETは平気なんですがPOSTでデータが受け取れないです。
ようするに↓がちゃんと表示されないです。
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form name="form1" method="post" action="<?print $PHP_SELF;?>" enctype="multipart/form-data">
<input type="text" name="file1"><br>
<input type="submit" name="submit" value="送信"><br>
</form>
<?
if($submit){
print $file1;
}
?>
</body></html>
PHP Version 3.0.9のほかのサーバでは大丈夫だったんですが・・・。
どなたかわかる人がいればお願いします!!!
過去ログを読みましょう。
$submit=$_POST['submit'];
$file1=$_POST['file1'];
0816nobodyさん
02/08/30 18:43ID:okP1fGcQregister_globalsはonで、$_POST["submit"]でやっても動かないって前提っす。
そもそもGETはうけとれます。
もしかしてファイルを受け取ろうとしてる?
0818山師さん
02/08/30 21:20ID:FsiYdmKt0819nobodyさん
02/08/30 22:08ID:???0821nobodyさん
02/08/30 23:47ID:???submitはボタンを押さないとpostされないんじゃないか。
テキストエリアでEnterキーを押して送信したら$submitにはなにも入りませんよ。
たしか...
0822nobodyさん
02/08/31 09:50ID:MUbldWggした方は神と呼ばせていただきますので。
0823nobodyさん
02/08/31 09:58ID:???0824814
02/08/31 11:09ID:McY4kGnjFile送信以前にPOSTがうけとれないんで
まずそれをどうにかしたくて・・・。
>819
ONです。
>821
submitボタン押して送信してます。
0825744
02/08/31 12:30ID:727MmemG遅レスすまそ。一応作ってみたけど、こんな感じでいいかな?
こっちの方がいいとかあったら、アドバイスプリーズ。
while(current($_POST)) {
$key=key($_POST);
$_GET[$POST] = mb_convert_encoding($_POST[$key],"EUC-JP");
next($_POST);
}
0826825
02/08/31 12:31ID:???while(current($_POST)) {
$key=key($_POST);
$_POST[$key] = mb_convert_encoding($_POST[$key],"EUC-JP");
next($_POST);
}
0827746
02/08/31 13:02ID:???ちゃんと処理されるんならそれでええやないの。
以下は未検証だけど、
foreach($_POST as $key => $value){
$_POST[$key] = mb_convert_encoding($_POST[$key],"EUC-JP");
}
で、どぉよ。
少しずつレパートリーを増やしていくしかないわなぁ。
0828746
02/08/31 13:07ID:???$_POST[$key] = mb_convert_encoding($value,"EUC-JP");
の方がいいかも。
0829nobodyさん
02/08/31 15:30ID:???「\」が2バイト目に来る文字列の時におかしくなんねー?
===== cut here =====
<FORM action="<?= $PHP_SELF ?>" method="POST" enctype="multipart/form-data">
<INPUT type="text" name="test" value="機能表示ソフトウェア">
<INPUT type="submit">
</FORM>
<HR>
<PRE>
<?= $_POST['test'] ?>
↓
mb_convert_encoding()
↓
<?= mb_convert_encoding($_POST['test'], 'EUC', 'SJIS') ?>
<HR>
php_version: <?= phpversion() ?>
magic_quotes_gpc: <?= get_magic_quotes_gpc() ?>
</PRE>
===== cut here =====
0830nobodyさん
02/08/31 15:55ID:???> magic_quotes_gpc: <?= get_magic_quotes_gpc() ?>
なんでおかしくなるのか、わかってんじゃねぁかよ。
0831nobodyさん
02/08/31 16:27ID:???いや、漏れはわかってるんだけど、お前等わかってますか?
ってゆーのと、あわよくば
magic_quotes_gpc = On
のままで回避できる方法が得られないかと(w
0832nobodyさん
02/08/31 20:36ID:???あんさんこそわかっとるんけ?
magic_quotes_gpc = On
が何するものかと知ってれば、その解決方法も判るじゃないかよ。
0833nobodyさん
02/08/31 22:08ID:???悪りぃ、確認不足やったわ。
化けた状態で stripSlashes() 効かないかと思ったら効いたわ。
よう考えたら、単に「\」が二倍になってんのを元に戻すだけやから
当然と言えば当然か。ちょっと勘違いしてたわ。
ってわけで、
$var = stripSlashes($_POST['test']);
$var = mb_convert_encoding($var, $internal_encoding, $input_encoding);
$var = addSlashes($var);
みたいに、一旦消し去ってから再追加で(゚Д゚)ウマー
0834nobodyさん
02/09/01 00:59ID:???これで問題の切り分けしてみろ。
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form name="form1" method="post" action="<?print $PHP_SELF;?>" enctype="multipart/form-data">
<input type="text" name="file1"><br>
<input type="submit" name="submit" value="送信"><br>
</form>
<?
echo "file1 = ".$file1."<br>";
echo "GLOBALS[file1] = ".$GLOBALS[file1]."<br>";
echo "_REQUEST[file1] = ".$_REQUEST[file1]."<br>";
echo "_GET[file1] = ".$_GET[file1]."<br>";
echo "_POST[file1] = ".$_POST[file1]."<br>";
echo "submit = ".$submit."<br>";
echo "GLOBALS[submit] = ".$GLOBALS[submit]."<br>";
echo "_REQUEST[submit] = ".$_REQUEST[submit]."<br>";
echo "_GET[submit] = ".$_GET[submit]."<br>";
echo "_POST[submit] = ".$_POST[submit]."<br>";
if($submit){
print $file1;
}
?>
</body></html>
0835nobodyさん
02/09/01 09:59ID:sTyltltt50音順に並び替えたいのですが、
どのような方法があるのでしょうか?
0838814
02/09/02 15:35ID:9QT5bee6ありがとうございます。
やってみましたが全滅で一個もでません・・・。
0839nobodyさん
02/09/02 15:39ID:???http://php.weblogs.com/http_compression
結果は何も表示されない状態で、
header("Content-Encoding: gzip")
の部分をコメントアウトすれば圧縮された状態のものが表示されました。
perl にて同じようなことを行った際には問題なく意図どおりの結果を得られましたが
PHP ではうまくいかず悩んでおります。
http://www.php.net/manual/ja/function.gzcompress.php
も参考にしましたが、上記と同じく Content-Encoding: gzip を出力させると空白になります。
他に確認すべきことなどございますでしょうか。
PHP 4.1.2
Apache 1.3.23
zlib が使用可能なことは確認しました。
クライアントは Win2KSP3、IE6.0 です。
0841nobodyさん
02/09/02 19:15ID:???>GZIP による圧縮転送を行いたく
鯖側でgzipで圧縮するが、ブラウザ側では何も意識することなく表示する事を言っているなら、
スクリプトの頭(headerの前)で、ob_start ("ob_gzhandler"); と書けばよい。
これは、ココのユーザーノーツの中に(php、ブラウザのバージョンについても)書いてある。
http://www.php.net/manual/ja/function.ob-start.php
0842nobodyさん
02/09/03 01:33ID:???"file1 = "
とか
"GLOBALS[file1] = "
とかの文字列は出てるの?
あと環境は一般的なの?
OS,Webサーバ,PHPのバージョン,ブラウザの種類は?
0843839
02/09/03 13:39ID:???>>840
自前でサーバ管理をしておりませんので、ログの閲覧が出来ません。
>>841
>鯖側でgzipで圧縮するが、ブラウザ側では何も意識することなく表示する事
説明不測で申し訳ありません。行いたいことはおっしゃるとおりです。
ob_gzhandler にはメモリリークの問題があると以前に知り
現在は解決されているかどうかまで調べずじまいでした。
http://www.php.net/manual/ja/function.ob-gzhandler.php
上記の例1のコードでテストを行いましたが、状況は同じです。
phpMyAdmin でも ob_gzhandler を使用していたので、試してみたところ
同じように何も表示されないので、PHP等の設定に問題があるのかもしれません。
phpinfo() で見る限りデフォルト設定のままのようです。
もう少し検索してみる必要がありそうです。
お気づきの点がございましたらお教えいただけると幸いです。
0844841
02/09/03 15:09ID:???>ob_gzhandler にはメモリリークの問題があると以前に知り
知らなかった。でも、メモリリークが報告されているのは Ver4.0.4pl1なので
(http://www.geocrawler.com/archives/3/5/2001/1/0/5063854/)
もう解決されているんじゃないだろうか(推測)。
http://www.php.net/ChangeLog-4.php では、4.2.0で、ob_startに第3パラメータが
追加されているのが該当するかもしれない(これも推測)。
いずれにしても、解決したら詳細きぼ〜
0845814
02/09/04 10:17ID:khCnGqdv"GLOBALS[file1] = "などの文字列はでてました。
そして他のサーバからのうちのサーバのページへPOSTすると表示されるんですが
自分のサーバからPOSTすると何もうけとらない状態でした。
しかし、次の日またやってみたら何故かいけました・・・。
0846nobodyさん
02/09/04 11:00ID:LeJnVSk1フォーム入力の料金表示で直接入力の\を使うと、
hidden fieldで次のページにパスしたときに、
\\と表示されてしまいます。
$priceA = "\\" . $priceB といったように関数を
割り当てているのですが。
多分、バックスラッシュとの関係だと思うのですが。
分かる方いますか?
0848nobodyさん
02/09/04 13:15ID:qzuYRAZQ表示されまくなりました。
PHPのバージョンが上がって仕様が変わったのでしょうか?
0849nobodyさん
02/09/04 13:21ID:???ネタですか?
0851nobodyさん
02/09/05 17:06ID:NDL2LKCGecho "<tag>";
echo "</tag>";
?>
のようにして、ブラウザにタグを表示させたいのですが
表示できません。ソースを見ると「<tag></tag>」となって
いるだけです。タグをそのまま表示させるためにはどうすりゃ
いいのでしょうか?
0857nobodyさん
02/09/05 19:36ID:???誘導するとか。
<
<
<
0858名無しさん@Emacs
02/09/05 19:49ID:52nAvFqLCだとGLOBALとかあるよね。
etagsでもいいんだけど、ちょっと物足りない。
っていうか使い道が違うか。たのむー。
0859nobodyさん
02/09/05 20:16ID:???0860nobodyさん
02/09/05 21:14ID:???0861名無しさん@Emacs
02/09/05 21:34ID:???スクリプトでも書いて最終的にはそうしようと思ってる。
でも、存在しているものなら作りたくないなぁ。と。
0862nobodyさん
02/09/05 22:29ID:???シリアル番号なんですが
0863nobodyさん
02/09/06 09:50ID:IQ396KrO環境はphp3です。
で、配列に数字が入っていて、その中から最大と最小を取り出したい
のですが、ソートして最初と最後の数字を取り出せばいいのかなと
試したところ、ASCII順で並んでしまい、思った通りの結果が出ませんでした。
php4では数の大小でソートが出来る様なのですが、php3にはそういった関数が
無いみたいですね。
何かいい方法はありませんでしょうか。
0864nobodyさん
02/09/06 12:17ID:xN+/a93xvar $name;
var $age;
function TEST($inName, $inAge) {
$this->$name = $inName;
$this->$age = $inAge;
}
function VIEW() {
echo "NAME : " . $this->$name . "<br>\n";
echo "AGE : " . $this->$age . "<br>\n";
}
}
$dat = new TEST('NoName', '99');
$dat->VIEW();
exit;
-----Result-----
NAME : 99
AGE : 99
$nameに意図したものと違うものが代入されるのですが、
私が根本的に勘違いしているのでしょうか?
愚か者にお教えいただければ助かります。
PHP4.1.2です。
>>863
max() や min() では駄目ですか?
0865864
02/09/06 12:27ID:???× $this->$name
○ $this->name
一から勉強しなおします。
お目汚しすみませんでした。
0866863
02/09/06 14:27ID:???早速のレスありがとうございます。
ですが、残念ながらmax()もASCCIでよんでいるようです。
データには1〜40000程度の数字が入っているのですが、
9000など、頭に9の来るものが最大として認識されています。
本来なら、40000が出力されるはずなのですが…。
確認のため、配列をforで一つずつ出力すると、ちゃんと40000という数字
が入っていたので、取得自体は問題なく出来ていると思います。
他に原因があるのでしょうか?
0868nobodyさん
02/09/06 14:53ID:???$ary1 = array("2,000", "9,000", "40,000", "500", "8,000");
$ary2 = array("2000", "9000", "40000", "500", "8000");
echo "Max1 = " . max($ary1) . " : Min1 = " . min($ary1) . "<br>\n";
echo "Max2 = " . max($ary2) . " : Min2 = " . min($ary2) . "<br>\n";
-----Result-----
Max1 = 9,000 : Min1 = 2,000
Max2 = 40000 : Min2 = 500
的外れかも。
0869863
02/09/06 15:05ID:???どうもです。
カンマが入っているかいないか、という事だと思いますが、
すいませんがこれも違うようです。
形式としては
$ary2 = array("2000", "9000", "40000", "500", "8000");
ちょうどこんな感じの数値のみです。
(まれにマイナスがあったりもしますが)
データの取得の仕方が、ファイルを読み込んでforで回して
一行ずつ$data[]に押し込んでますが、その辺なにかマズイ事って
無いですよ…ね?
あちこち見ても乗って無いんですよね…。
一体ほんとになんなんでしょう(泣
0870nobodyさん
02/09/06 15:34ID:???0871863
02/09/06 16:42ID:???どもです。
試しましたが、同じ結果でした…。
もしかしてマイナスがマズイのかな…?
$ary2 = array("-2000", "9000", "40000", "500", "8000");
これも>>868の方が言っていた例のように、文字列として認識されてしまうのかなぁ…
自分でも適当な元データ作って試してみますが、
実はこれは見当違いで正しい方法があるよって人はまたご教授ください。
初仕事でこんな詰まるなんて先が思いやられる…鬱。
0872nobodyさん
02/09/06 16:54ID:???つーか思いっきり "9000" とかって文字列指定してるじゃん。
array(-2000, 9000, 40000, 500, 8000)
ならまだわかるが。。。
0873nobodyさん
02/09/06 16:55ID:???そもそも XML で出してやりゃいいんじゃないの?
と思う漏れは変ですか?
0874863
02/09/06 17:09ID:???あ〜、失礼しました。
例のつもりで書いたのですが、間違っていては意味無いですね(苦笑
元データ(txt形式)は各行が「a b c d e」
というように5つのデータがタブ区切りになっていて、欲しいのはそのd。
なのでタブでsplitして、dだけ拾う(仮に$data[3]として)。
で、dは x,y というカンマ区切りの二つの情報を持っているので、「,」でまた
split。
$hoge = split(",",$data[3]);
それぞれを
$x[] = $hoge1;
$y[] = $hoge2;
として放りこんでるんです。
最終的に$xの最大値と$yの最小値が欲しい、という事です。
なので直接的に
$ary2 = array("2000", "9000", "40000", "500", "8000");
と指定してあるわけでは無いのですが、上記の様なやり方でも文字列として
代入されてしまうのでしょうか?
0875nobodyさん
02/09/06 18:08ID:???つまり君はアレだな、
"ABC 123 XYZ 789"
なんて文字列を split() したら型としては
文字列 数値 文字列 数値
って自動的になってほすぃ、ってことだな?
08768月のクリスマス ◆zzfy/JR2
02/09/06 18:12ID:zUklKDWI$result=pg_exec("select * from nwpersonal ");
を実行すると下記のエラーが発生するのですが
どうしたらよいのでしょうか?
分かる方よろしくお願いします☆
Warning: PostgreSQL query failed: ERROR: nwpersonal: Permission denied.
0877nobodyさん
02/09/06 19:14ID:yYJqZr2N問題がわからないところがあります。
どなたか助けてもらえないでしょうか?
「環境」
Windows98+PWS+PHP4.0
「設定」
1)PWS
�@仮想ディレクトリの追加
�Aプロパティの設定「読み込み:OK、実行:OK、スクリプト:OK」
2)PHP
�@配置場所「php-4.2.2-Win32.zip」を解凍して「C:\PHP」に配置。
3)レジストリーに以下を追加
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="C:\\PHP\\sapi\\php4isapi.dll"
よろしくお願いします。
0878877
02/09/06 19:16ID:yYJqZr2Nファイルのダウンロードが始まってしまいます。
0879877
02/09/06 19:20ID:yYJqZr2NPWSのバージョンは、4.0です。
ちなみに環境構築は以下のサイトを参考にしました。
「ttp://php3.de/manual/ja/install.iis.php」
よろしくお願いします。
0880nobodyさん
02/09/06 19:30ID:yYJqZr2Nphp.iniファイルは、c:\windows配下に配置しています。
よろしくお願いします。
0881nobodyさん
02/09/06 19:37ID:yYJqZr2Nc:\php\php4ts.dll は c:\Windows\System
にコピーしています。
助けてください。
0882nobodyさん
02/09/06 21:41ID:???>「ttp://php3.de/manual/ja/install.iis.php」
の
>PWS マネージャで、PHPサポートを追加したいディレクトリで右クリッ クす、
>プロパティを選択します。「実行」チェックボックスをチェッ クし、確認を押します。
これやってみた?
Apacheのほうが楽しいような。
0883login:Penguin
02/09/06 21:59ID:???カタカナは mb_regex("[ァ-ヶー]",$str);だとおもうんだが、
やっぱ感じはむりだよな。
ってことで全角チェック(ひらがな、漢字、カタカナ)ってできる?
0884883
02/09/06 22:01ID:???0886nobodyさん
02/09/07 03:37ID:???4.2.2,今インスト終わったばかりなのに…。欝だ,詩嚢。
0887nobodyさん
02/09/07 04:49ID:SuwDGNVx0888nobodyさん
02/09/07 08:28ID:???ここで改造して欲しいってお願いしたらダメかな?
0889883
02/09/07 08:47ID:???0891nobodyさん
02/09/07 10:30ID:???if($host=="*.hoge.ne.jp"){echo "あぼーん";}else{echo "イイ(・∀・)!";}
こんな妄想してるのですが…。
正規表現わからなさ過ぎです(´д`)
0893nobodyさん
02/09/07 11:19ID:k50oNcQ5正規表現しかないね。
googleで適当に検索して覚えよう。
■ このスレッドは過去ログ倉庫に格納されています