【PHP】質問スレッド Part4
レス数が950を超えています。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を見よう。
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 の整数部分が欲しいのですが小数点以下を削除する関数を教えてください
0930nobodyさん
02/09/10 00:31ID:???じゃダメだっけ? 四捨五入してた?
それはちょっと違うだろ
ていうか関数なんかいらないだろ
$a = (int)(10/3-0.5);
0933928
02/09/10 01:06ID:???(int)うまくいきました。こちらを使います。
0934nobodyさん
02/09/10 11:36ID:???文章内を複数の条件で置換する方法はありませんか?
下のように書くと一番最後の構文以外無視されてるんです。
$print_data = eregi_replace("バカ","**",$array_data[0]);
$print_data = eregi_replace("死 ","*",",$array_data[0]);
$print_data = eregi_replace("アホ","**",$array_data[0]);
0935名無しさん@Emacs
02/09/10 11:44ID:ATB55ZPkPHPどうこうよりも、プログラムの基礎の基礎からやりなおした方がよい
0937nobodyさん
02/09/10 11:51ID:HFFQaulX$array_data[0] = eregi_replace("死 ","*",",$array_data[0]);
$array_data[0] = eregi_replace("アホ","**",$array_data[0]);
0938934
02/09/10 11:55ID:???$array_dataを$print_dataに変える必要無かったのですね
例文がそうなってたので・・・
ありがとうございました!!
0939935
02/09/10 12:38ID:ATB55ZPk多分、その例題は例として3パターンあげているだけなんですよ
それに気付かないようだから、基礎からやりなおした方がいいと書いたのですが。
変数 代入 関数 戻り値
この辺すら理解していてないような気がします。
今回は解決しても、またおなじようなところで、
はまる気がする。
0940nobodyさん
02/09/10 14:44ID:20uIzqy9下記のコードで、実行すると何も出力されません。
配列の中身を動的にテーブルに表示させたいのです。
<?php
$list = array();
$inv1="値�@";
$inv2="値�A";
$inv3="値�B";
array_push ($list, $inv1);
array_push ($list, $inv2);
array_push ($list, $inv3);
?>
<table border="1">
<?php
foreach ($list as $outv) {
?>
<tr>
<td><?php $outv ?></td>
</tr>
<?php
}
?>
</table>
よろしく。
?>
0942nobodyさん
02/09/10 14:51ID:???<td><?= $outv ?></td>
機種依存文字はやめよう。
0943nobodyさん
02/09/10 14:57ID:20uIzqy9ありがとうござました。
うまくいきました。
丸数字やめます。
0944nobodyさん
02/09/10 15:05ID:???最近書き込み多いような気がする。
0945921
02/09/10 15:06ID:20uIzqy9>>922
で質問して
>>927
でうまくいった書きましたが、実際はうまくいっていませんでした。
どなたか、わかる方がいらっしゃたら教えてもらいますか?
PEAR DBを用いた 日付/時刻 型の項目にINSERTする方法です。
よろしくお願いします。
0946nobodyさん
02/09/10 16:07ID:MtX1bRLJ0947nobodyさん
02/09/10 16:15ID:uXHCanxz分かる方おられませんか?
if($ENV{'HTTP_ACCEPT_ENCODING'}=~/gzip/ ){
print "Content-type: text/html\n";
print "Content-encoding: gzip\n\n";
open (STDOUT, "| /usr/bin/gzip -1 -c");
}else{
print "Content-type: text/html\n\n";
}
0949nobodyさん
02/09/10 17:41ID:JRIkgJI/レスありがとうございます。
ですが、php.ini の設定もマニュアルどおりだし、×なプログラムは実行結果が返ってこず、
かつエラーメッセージもでないという、“まったく音沙汰無し”の状態で、どんなエラーだっ
たのか確かめることもできないのです。無償のデバッガを欲しがるのは図々しいでしょうか?
0950nobodyさん
02/09/10 18:12ID:U6fAaaR2要所要所に、printやechoを埋めてトレースすれば良いのでは?
0951nobodyさん
02/09/10 18:45ID:JRIkgJI/それが、場合によってはエラー個所の手前までの実行結果も返ってこないのです。
(ブラウザでソースを見るとHTMLのヘッダしか入っていない)だからエラー個所の
特定もできません。
0952nobodyさん
02/09/10 18:53ID:ATB55ZPkある程度以降をコメントにして、実行してみれば?
0954nobodyさん
02/09/10 18:59ID:???$dat_arr=file("http://pc.2ch.net/test/read.cgi/php/1022999539/");
$dat=NULL;
foreach($dat_arr as $line)$dat .= $line;
ereg ("([0-9]{2,4})/([0-9]{2})/([0-9]{2})([^[:digit:]]{1,6})([0-9]{2}):([0-9]{2})", $dat, $regs[]);
print_r($regs);
こうするとこのスレの>>1の投稿時間が
Array ( [0] => Array ( [0] => 02/06/02 15:32 [1] => 02 [2] => 06 [3] => 02 [4] => [5] => 15 [6] => 32 ) )
みたいに配列にはいるんですけど、
このスレ全体のを入れるにはどうすればいいですか?
[0]=>Array([0]=>全体 [1]=>年 [2]=>月・・・・
[1]=>Array ( [0] => 02/06/02 15:32 [1] => 02 [2] => 06
[2]=>Array・・・・
のようにしたいんです。
0955nobodyさん
02/09/10 19:11ID:JRIkgJI/アドバイスありがとうございます。iniの再チェックとコメント、試してみます。
お手数おかけしました。
0956あa
02/09/10 19:33ID:cwrwGkEIさっきDLしたプログラムがどこに保存されたかがわかりません。
そのプログラムの名前がわからないのです。
だから、探しようがないです。
どうかよろしくお願いします。
0958親切さん
02/09/10 20:04ID:???Windowsユーザーさんですか?
スタート→検索→ファイルやフォルダ
ファイルまたはフォルダの名前に、
*.*
(アスタリスク ドット アスタリスク)
こうするとそのプログラムが検索に引っかかりますよ。
もし見つからないようでしたら、検索する場所を変えてみましょう。
それでも見つからないようでしたらあなたのパソコンは
ウィルスに犯されているかクラッカーに弄られているかのどちらかの可能性があります。
この場合、今から私が言うことをしなければ、
あなたは社会から抹殺されるかもしれません。ちゃんとメモを取っておいてくださいね。
まず、お風呂で湯をたっぷりとわかしてください。湯加減は好みで。
そのなかに、思い切ってパソコンを漬け込んでください。
ひたひたになりましたら、あげ、湯を切り、天火で乾かしてください。
完全に乾くまで待ちましょう。何日かかるかはわかりません。
こうして水ッ気がなくなりましたら、パソコンを起動してみましょう。
・・・動きますか?動けばあなたは幸せです。
・・・動きませんか?動かなければあなたは不幸せです。
しかしどちらにせよ、あなたの身の危険は以前より去った気がするかもしれません。
じゃ、頑張ってくださいね。
0961nobodyさん
02/09/10 22:40ID:iC31d9Rs<Html>
<Head>
<Meta Http-equiv="content-type" Content="text/html; charset=euc-jp">
<Title>printの例</Title>
</Head>
<Body>
<?php
$year = 2001;
print("今年は $year 年です");
?>
</Body>
</Html>
これをブラウザでみたところ、なぜか
Parse error: parse error in c:\apache group\apache\htdocs\5.php on line 3
というエラーが出てしまいます。
本の通りにやってるのですが・・・教えてください。
0962nobodyさん
02/09/10 22:56ID:myx3NRlN3行目じゃないけど
print("今年は $year 年です");
のセミコロンが全角だよ。
3行目は問題ないはず(PHPは関係ない)。
# タグ名一文字目だけ大文字ってきもちわるいな。
0963961
02/09/10 23:14ID:iC31d9Rsありがとうございました。
テキストエディタで見ると分からないのに、ここの書き込み見ると
確かに全角ですね・・・
それで早速直したんですが、今度は9行目にエラーがでていると
表示されてしまいました。それで
print("今年は $year 年です");
この行の$yearの前後のスペースを半角にしたところ、今度は真っ白
な画面が表示されてしまいました。
そこでeuc-jp→shift-jisに直したところ、ようやく「今年は 2001 年です 」
と表示されました。
文字コードがeuc-jpだとローカルのブラウザでは表示されないのだろうか・・・
うpの時はecu-jpなんですよね?うーん・・・
0964nobodyさん
02/09/10 23:29ID:???0965nobodyさん
02/09/10 23:54ID:myx3NRlNwindows上のテキストエディタで
「今年は」って書いたらShift_JISだよ。
Shift_JISの空白をEUCで表示させようとしたから
パースできなくて全部空白になったのかも。
print("今年は".$year."年です");
ってすれば「きちんと」文字化けしてくれるはず。
0966nobodyさん
02/09/11 00:00ID:???全角文字に色がつくように設定したら?
0967961
02/09/11 00:39ID:iho/d0vPそうですか・・・うーん・・・
本を見てみてもある程度の知識を前提に書かれているみたいで、
初めてCGIに触れる人間にとって説明が端折られてる感じなんで
すよね・・・
perlとかだと超初心者向けに書いてある本も結構あるみたいですが・・・
最初はperlから手を付けるのが定石なのかな
phpの方が合理的というか、トータルではいいみたいなんですけどね・・・
0968nobodyさん
02/09/11 00:48ID:XDYKEpRHmb_send_mail()で、携帯に向けてメールを送信しているのですが、
どうも、ドコモの504iシリーズにメールが届かないようなのです。
その他は、キャリア、機種を問わず(テストした範囲ですが)大丈夫なのですが
環境は、RedhatLinux+sendmail+Apache+PHP4.2.2です。
ヘッダは、
Return-Path: [email protected]
Reply-To: [email protected]
From: [email protected]
を付けています。
もし思い当たるところがあれば、教えて下さい。
よろしくお願いします。
0969nobodyさん
02/09/11 00:49ID:???いややっぱPHPってラク。JavaとかPerlとかに比べて。
でも後発の言語だから本とかってHTMLとか文字コードとかを
ある程度知ってる人向けに書かれているのが多い気がする。
会社とかに属してないですべて独学するのであれば
HTMLをきちんと理解するところからはじめたほうが近道かも。
0970nobodyさん
02/09/11 00:57ID:???>>968
ttp://ns1.php.gr.jp/pipermail/php-users/2002-March/006444.html
で、どう?
レス数が950を超えています。1000を超えると書き込みができなくなります。