【PHP】質問スレッド Part4
レス数が900を超えています。1000を超えると表示できなくなるよ。
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を見よう。
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で適当に検索して覚えよう。
0897名無しさん@XEmacs
02/09/07 17:05ID:???http://jp.php.net/manual/ja/function.strstr.php
0899nobodyさん
02/09/08 00:21ID:4CQEIo/H0900891
02/09/08 06:48ID:???$host=getenv("REMOTE_HOST");
preg_match("/^[[:alnum:]]?([^\/]+)/i",$host,$matches);
$dom=$matches[0];
preg_match("/[^\.\/]+\.[^\.\/]+\.[^\.\/]+\.[^\.\/]+\.[^\.\/]+$/",$dom,$matches);
こんなのですがちゃんと意図した動きをしてくれますた。
2行目の ?([^\/]+) の意味する動きがさっぱりわからんのですが…
ちなみにhttp://jp.php.net/manual/ja/function.preg-match.phpの例3を参考にしました。
0901nobodyさん
02/09/08 12:25ID:uUaPL6MQPOST / GET された変数を取得できない場合があるようです。
http://ns1.php.gr.jp/pipermail/php-users/2002-September/009886.html
パッチが CVS にコミットされたようです。
詳しくは、PHP-users ML の上記のスレッドを参照してください。
0902nobodyさん
02/09/08 14:03ID:+VKmhwX3俺は$GLOBALS["hoge"]を使っていたんだが、今まで我流で組んでいたんで
どのように項目設定をしたらよいのかよくわからない。
仕事でphpを組んでいる人はどうやっている?
0903nobodyさん
02/09/08 21:08ID:JZE+WdFRjavascriptでいうところのlocation.searchにあたる構文はなんですか?
0904nobodyさん
02/09/08 21:17ID:???グローバルになるかどうかは試してくれ。
0905nobodyさん
02/09/08 21:24ID:w5Lvhxg8> 仕事でphpを組んでいる人はどうやっている?
我流だろ。
0906nobodyさん
02/09/08 22:19ID:???CGIからやってきた人はそのままCGI風に書いたりしてるね。
<?〜?>の枠でHTMLの出力まで全部やっちゃう。
オイラはASPからやってきたのでHTMLに埋め込む形で書いてるけど。
0908nobodyさん
02/09/09 04:45ID:G9rUU7zOうーん、ということは
http://hoge.com/fuga?a=10&b=20
というアドレスを指定した場合、
$data = getenv("QUERY_STRING");
$tmp = explode("&",$data);
とすると
$tmp[0]にはa=10
$tmp[1]にはb=20
が格納される、という認識でよろしいですか?
0909908
02/09/09 04:46ID:???http://hoge.com/fuga.php?a=10&b=20
$data = getenv("QUERY_STRING");
$tmp = explode("&",$data);
$tmp[0]にはa=10
$tmp[1]にはb=20
0910nobodyさん
02/09/09 04:57ID:???また、
$_GET[a] には 10
$_GET[b] には 20
が入る。
0912名無しさん
02/09/09 06:29ID:???変数の宣言の強制ってできたっけ?
0913nobodyさん
02/09/09 11:48ID:???http://www.php.net/manual/ja/
0915nobodyさん
02/09/09 16:18ID:???<form><textarea rows=8 cols=30 name=come></textarea>
<input type=submit value="投稿"></form>
<?//$dat = rtrim($come);
$dat = ereg_replace("\n","<br>",$come);
$fp = fopen("log.txt","w");
fputs($fp,$dat);
fclose($fp);
print "$come";
?>
================================================
『あいうえお
かきくけこ
さしすせそ』 のように改行を含んだ文書を投稿した時、
表示は『あいうえおかきくけこさしすせそ』のように改行せず表示され、
log.txtファイルに保存された内容は
『あいうえお
<br>かきくけこ
<br>さしすせそ』こんな感じで改行された状態で保存されます。
『あいうえお<br>かきくけこ<br>さしすせそ』のようになります。
改行されて表示して、1行で保存させるにはどうしたらいいでしょうか?
0916nobodyさん
02/09/09 16:26ID:???0917915
02/09/09 16:50ID:???$dat = ereg_replace("\n","\n<br>",$come);
『あいうえお
<br>かきくけこ
<br>さしすせそ』
保存が\nで更に改行されました。(T.T)
表示は『あいうえおかきくけこさしすせそ』でそのままでした。
環境はwin php4.2.2 apach です。
おねがいします。
0918nobodyさん
02/09/09 16:55ID:???0919916
02/09/09 17:00ID:???0921I hate php
02/09/09 19:05ID:lptiOWqrどなたか助けてください。
環境
DB→Access2000
PHP→Version 4.2.2
PEAR→DB(?)
0922921
02/09/09 19:05ID:lptiOWqr/**
* インサートテスト3。
*
* @accesspublic
* @paramProductState $ps製品状態情報
*/
function insert3($ps)
{
// DB接続
$this->connect(); // $this->db = DB::connect( $dsn )にて取得。
// SQL文発行
$sql = "INSERT INTO user (id,name,date) ";
$sql .= "VALUES (?,?,?)";
// PrepareStatment取得
print "date=" . date("Y-m-d H:i:s",time()) . "\n";
$stmt = $this->db->prepare( $sql );
// ResultSet取得
$this->db->execute($stmt, array($ps->id,$ps->name,date("Y-m-d H:i:s",time()) ));
// finally
// DB切断
$this->db->disconnect();
}
※日付は現在時刻を挿入する。
※Access2000のデータ型→日付/時刻型
※日付型以外(文字列、数値型)はうまくいきます。
エラー内容
SQLエラー → ステートは37000
0923nobodyさん
02/09/09 19:15ID:???PHPでここへログインしてリザルトを取得したいんだけど、なんかいい方法ないですか?
https://hoge:[email protected]/s...../h....htm
で接続しようとしてもダメでした。
じゃ、GETでどうだろう、と試してもダメ・・・・
0924nobodyさん
02/09/09 19:50ID:???何か特殊なツールを使えばできるとかあったら教えていただければと思います。
ちなみに今はGD1.5が入ってます。
0925nobodyさん
02/09/09 20:33ID:MPi3nP/Fだったら$aと$bから値を取れるだろ
0927921
02/09/09 22:02ID:HwIKAZPZ自分で解決しました。
以下の様にするとうまくいきました。
// ResultSet取得
$this->db->execute($stmt, array($ps->id,$ps->name,date("Y-m-d H:i:s",time()) ));
↓
// ResultSet取得
$this->db->execute($stmt, array($ps->id,$ps->name,time() ));
これは、Statementの中で、整数型の現在時刻を 日付型フォーマット
(Y-m-d H:i:s)に自動で変換しているということですね。
ご迷惑おかけしました。
ども。。
0928nobodyさん
02/09/10 00:20ID:???$a の整数部分が欲しいのですが小数点以下を削除する関数を教えてください
レス数が900を超えています。1000を超えると表示できなくなるよ。