【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を見よう。
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
で、どう?
0971nobody
02/09/11 01:12ID:Zh9eBVFzcrypt関数で
例えば
print "文字列を暗号化します。適当に文字をいれて下さい\n";
$get = <STDIN>
$key ="sp";
$pass = crypt($get,$key);
print "暗号化された文字列は$passです\n";
この$keyの部分は任意の二文字を入れるらしいんですが
それってどういう意味があるんでしょうか?
これによって暗号化される結果などが違ってくるのでしょうか??。
特に意識することではないんでしょうか?
0972nobodyさん
02/09/11 01:22ID:???ttp://search.net-newbie.com/php/function.crypt.html
>これによって暗号化される結果などが違ってくるのでしょうか??。
>特に意識することではないんでしょうか?
試してみたんですか?
PHPを普通に使って、パソコンが壊れることはないですよ。
聞く前に、安心して試したほうがいいですよ。
0973nobodyさん
02/09/11 01:25ID:???激しくスレ違いだが俺が想像で答えてやろう。
$key は key と言うくらいだから、その key をもとに暗号化するんだろう。
ということは $key が違えば結果も違ってくるということだろう。
俺は perl は知らんが、一般的にはそうだからな。
0974一般的な話
02/09/11 01:32ID:???PHP あるいは CGI 全般以前の問題だと思うな。
PHP を使うのに PHP だけを知っていればいいなんて思ってると
へんな落とし穴に引っかかると思うよ。
PHP が吐き出すのは HTML だから、
HTML について知らなければいけないのは当然だし、
日本語の文字コードには何種類かあって、
とくに Shift_JIS と EUC-JP がよく使われるってのも知らない人多いんじゃないかな。
0975nobodyさん
02/09/11 01:42ID:ThdzdPnb>日本語の文字コードには何種類かあって、
>とくに Shift_JIS と EUC-JP がよく使われるってのも知らない人多いんじゃないかな。
そんな奴おらへんで〜〜〜〜
0976nobody
02/09/11 02:14ID:Zh9eBVFzスマソw。禿げしくスレ違いだった(藁
急いでたんであんまし見ないで投稿しちまった。
0977nobodyさん
02/09/11 08:37ID:RnNejc+y0978nobodyさん
02/09/11 09:47ID:???http://pc.2ch.net/test/read.cgi/php/982779383/12
0979nobodyさん
02/09/11 13:01ID:???ttp://www.php.net/manual/ja/function.ob-gzhandler.php
作る必要は無い。
mod_gzip使った方が透過的だと思うが。
0980
02/09/11 13:25ID:VZSxmRkZ解決方法がわかる方いたらよろしくお願いします。
SELECT文は下記の通りです。
SELECT * FROM 表 WHERE NAME = 'ABC'
Warning: Supplied argument is not a valid PostgreSQL link resource in
0981http://fushianasan.2ch.net/
02/09/11 13:31ID:???0982http://fushianasan.2ch.net/
02/09/11 13:32ID:???0983977
02/09/11 13:50ID:RnNejc+yどうもです!
0984nobodyさん
02/09/11 13:55ID:qm6tkzy9<?php
$s=2;
?>
2つ目のファイル
<?php
print $s;
?>
みたいな2つのPHPファイルがあったとして、
1つめの$sの値を、2つめの$sの値と共有する
ことって可能ですか?
0986nobodyさん
02/09/11 14:17ID:???【PHP】質問スレッド Part5
http://pc.2ch.net/test/read.cgi/php/1031721334/l50
0988nobodyさん
02/09/11 17:42ID:???0990ドラ
02/09/11 17:43ID:???0991991
02/09/11 17:44ID:???0992992
02/09/11 17:45ID:???0993993
02/09/11 17:45ID:???0994994
02/09/11 17:46ID:???0995995
02/09/11 17:46ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。