【PHP】質問スレッドpart18【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/06/14 14:36ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
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-4
抜けているものがあったら補足願います
0653nobodyさん
04/07/06 13:28ID:???<?="あいうえお"?>と<?php print "あいうえお"?>
は同じ結果が得られるわけだな。
0657nobodyさん
04/07/06 14:04ID:???<?=[var]?>は<?php echo[var]?>のエイリアス。
<?="あいうえお","かきくけこ"?>はできても
<?php print "あいうえお","かきくけこ"?>はできない
0658alvi
04/07/06 14:28ID:A6zHoUWtincludeするファイルがあり、そのincludeされるファイルをincludeするファイルのなかで使用する為に
includeされるファイルへ何を書くとそのincludeされるファイルのファイル名を取得できるのでしょうか?
>>656
今、外出する直前で確認出来ないのですが、__FILE__ですか?
phpinfoでは分かりませんでした。(include等は使っていない為)
0659nobodyさん
04/07/06 14:55ID:???こんな答え方をしている時点で、何も理解していない、理解する気もないって感じだな。
0661nobodyさん
04/07/06 15:31ID:???のだと想うのだが、そんな関数ありましたっけ?
0662nobodyさん
04/07/06 15:42ID:???HTMLタグの<TD>〜</TD>の中にPHP構文を入れるとエラー出るのか?
0663nobodyさん
04/07/06 15:43ID:???ぜんぜん簡単に書かれてないぞw
includeされた場合はmain.php、直接動かした場合はfunction.phpで切り分けできるでしょ?
何か問題でも
0665662
04/07/06 15:45ID:???0666nobodyさん
04/07/06 16:11ID:???計算結果が4になるんだがこれを4.00と表示したい
こんな時どうするか教えやがれぬるぽ
0667nobodyさん
04/07/06 16:21ID:???$値 = 4;
$桁 = 2;
echo number_format($値, $桁);
0669nobodyさん
04/07/06 16:30ID:???0670nobodyさん
04/07/06 16:35ID:???0671nobodyさん
04/07/06 17:18ID:???お前らがマニュアル引き係じゃぁ
と思っている輩が質問してる訳です
0672nobodyさん
04/07/06 17:22ID:???0675nobodyさん
04/07/06 18:24ID:???ob_start();
?>
<html>
<head>
<title>ログイン</title>
</head>
<body>
<h1 style="font-size:14pt;text-align:center;">
ログインtest
</h1>
<hr />
<form method="GET" action="index.php">
<table border="0" align="center">
<tr>
<th align="right">ユーザ名:</th>
<td>
<select name="id">
<?php
$db=mysql_connect("COMPUTER","root","root");
$rs=mysql_db_query("test_db","SELECT * FROM scheusr");
while($aryCol=mysql_fetch_array($rs,MYSQL_ASSOC)){
print("<option value='".$aryCol['id']."' ");
if(isset($id)){if($id==$aryCol['id']){print("selected");}}
print(">".$aryCol['nam']."</option>");
}
?>
</select>
</td>
</tr>
0676675
04/07/06 18:24ID:???<td>
<input type="password" name="passwd" size="10" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="sbm" value="ログイン" />
<input type="reset" value="取消" />
</td>
</tr>
</table>
</form>
<?php
if(isset($_GET['sbm'])){
print("if通過した");
$sql="SELECT * FROM scheusr WHERE id='".$id."' AND passwd='".
crypt($passwd,"ZZ")."'";
$rs=mysql_db_query("test_db",$sql);
if(mysql_num_rows($rs)==0){
print("<script language='JavaScript'>");
print("window.alert('パスワードが間違っています');");
print("</script>");
print("$rs");
}else{
$aryCol=mysql_fetch_array($rs,MYSQL_ASSOC);
header("Location: hello.php?id=".$id."&nam=".urlencode($aryCol['nam']));
}
}
print("</body></html>");
ob_end_flush();
?>
0677675
04/07/06 18:24ID:???id主キー
passwd
namです
テーブルに登録されているパスワードが入力されたときに
他のページに飛ぶようにしたいのですが、
パスワードが一致するようにならないみたいなんです。
どのように変えたらいいでしょうか?
よろしくお願いします。
0678nobodyさん
04/07/06 18:28ID:???0679nobodyさん
04/07/06 18:32ID:???0680nobodyさん
04/07/06 19:08ID:???0681nobodyさん
04/07/06 21:22ID:???0682nobodyさん
04/07/06 21:36ID:???http://jp.php.net/manual/ja/ref.variables.php
0683nobodyさん
04/07/06 21:39ID:???header("Content-disposition: attachment; filename=${file_name}");
header("Content-type: application/octet-stream; name=${file_name}");
でcsvをダウンロードさせているのですが、なぜかNetscape(7.1)だけ
「test.csv.php」を開く になります。(中身は正常なcsv)
IE、Mozilla、Operaでは問題ないのですが、どなたか解決された方おられますか?
0684nobodyさん
04/07/06 21:40ID:???の間違いです。
0685alvi
04/07/06 21:59ID:A6zHoUWt前提
・A = main.php
・B = function.php
・Bには直接アクセスされたくない。だからといってhtaccessは使わないとする
・AはBをincludeする
いや、口で言うのは分かりづらいのでソース書いて実行した物をを付けます。
<?php
#A = main.php
include'function.php';
print_r($ABC);
?>
<?php
#B = function.php
$ABC[] = __FILE__;
$ABC[] = $_SERVER["SCRIPT_FILENAME"];
?>
そして、A = main.phpの出力結果は
Array
(
[0] => /home/****/public_html/function.php
[1] => /vhome/****/public_html/main.php
)
お騒がせしました。>>656さんの仰った方法で解決です。。
if ( __FILE__ == $_SERVER["SCRIPT_FILENAME"]) die('Forbidden!');
というコードが欲しかったのです。ありがとうございました。
0687nobodyさん
04/07/06 23:36ID:???WepProg界に新たな政策を呼びかけています。
アンチ民主党。取り愛ず、藻前ら嫁。
ttp://mykit.jp/pc/kapokon/index.php3
0688nobodyさん
04/07/07 02:38ID:+x8AlGbLどうしたらいいでしょうか?
0690nobodyさん
04/07/07 08:17ID:???結構あるものでしょうか?
また、ob_start();〜ob_end_flush();を使用した時の処理速度は変数
に放り込んでechoした時の処理速度と比較してどちらが早いの
でしょうか?
0692nobodyさん
04/07/07 11:10ID:HKrq5OGLURLをどなたが教えて頂けないでしょうか?
0693nobodyさん
04/07/07 11:22ID:???if($i=="10"){$hensu = $kochinohensu; }
もし10行目になったらコッチの変数にするよ。
0694nobodyさん
04/07/07 11:24ID:???PHP プログラマーズマガジンのことかね。
ついでにどうせ買うなら、2ch 系 PHP コミュのアフィリエイト通してやってくれ。
http://pear.sakura.vg/
0695nobodyさん
04/07/07 11:26ID:???0696nobodyさん
04/07/07 11:57ID:???$ time php -r 'ob_start();for($i=0;$i<1000000;$i++){echo "hoehoe";}ob_end_flush();' > /dev/null
real 0m7.346s
user 0m7.200s
sys 0m0.150s
$ time php -r 'for($i=0;$i<1000000;$i++){echo "hoehoe";}' > /dev/null
real 0m13.534s
user 0m12.800s
sys 0m0.730s
逐次書き出すより、ob_* を使用して「イッキ出し」した方が処理は早くなるようですよ。
0697nobodyさん
04/07/07 11:59ID:???crypt($passwd,"ZZ");
の結果と、対象のテーブルの値を見比べてください。
0698694
04/07/07 12:02ID:???言われるかなとは思った。
まぁ俺は俺で別のアフィリエイト ID もってるし、そもそも PHP|architect はあまり好きじゃないんで。。
最近はそうでもないかも知れないが、前までは業務用の堅実な記事が大半で面白みが無かった感じ。
0699nobodyさん
04/07/07 12:50ID:???こうやってテストするのですね。勉強になりますm(_)m。
私の環境ではphp -rというオプションが存在しないみたいなのですが、
これは環境によるのでしょうか?。
$ time php -r 'ob_start();for($i=0;$i<1000000;$i++){echo "hoehoe";}ob_end_flush();' > ./null
Error in argument 1, char 2: option not found r
real 0m0.186s
user 0m0.121s
sys 0m0.015s
$ time php -r 'for($i=0;$i<1000000;$i++){echo "hoehoe";}' > ./null
Error in argument 1, char 2: option not found r
real 0m0.471s
user 0m0.105s
sys 0m0.015s
$ time php -r 'for($i=0;$i<1000000;$i++){$k .= "hoehoe";}echo $k' > ./null
Error in argument 1, char 2: option not found r
real 0m0.171s
user 0m0.112s
sys 0m0.015s
0701nobodyさん
04/07/07 13:58ID:???CLI 版の PHP には acndefhilm"r"svwz というオプションを使用できる。CGI 版はわからない。
速さを求めるなら、出力制御するか、変数に格納して一発出力なのかな。
で、
ob_* を使うとメモリ使用量が違うらしい。
$ php -r 'ob_start();for($i=0;$i<1000;$i++){echo "orz";}echo memory_get_usage();ob_end_flush();'
orzorz...53736
$ php -r 'ob_start();$s="";for($i=0;$i<1000;$i++){$s.="orz";}echo $s, memory_get_usage();ob_e
nd_flush();'
orzorz...57136
$ php -r '$s="";for($i=0;$i<1000;$i++){$s.="orz";}echo $s, memory_get_usage();'
orz...16040
ちなみに、
$ php -r 'ob_start();echo memory_get_usage();ob_end_flush();'
52896
0702nobodyさん
04/07/07 15:06ID:???$exp[1] = 2;
for ( $i = 2 ; $i > 100 ; $i++ ){
$X = $exp[$i-1];
$Y = $i;
$Z = 3*(floor($i/10)+1);
$exp[$i] = $Z * $Y + $X;
print $exp[$i];
}
?>
HTMLに表示されないです。
分かる方いませんか?
0703702
04/07/07 15:10ID:???不等号反対だた
0704nobodyさん
04/07/07 15:56ID:???0705fushianasan
04/07/07 17:06ID:???0706nobodyさん
04/07/07 17:10ID:???最低限入れる機能(評価:極小)
自動リロードする
表示は10行程度
入れたい機能(評価:普通)
いわゆる普通のチャットシステム
自動リロードの間隔が選べる
表示の行数が選べる
入室画面がある
切断者(ブラウザを閉じた奴)は退出させる
発言者の名前がわかる
あったらいいな機能(評価:極大)
チャット中にファイルをUP・交換ができる
0709706
04/07/07 17:28ID:???オネガイオネガイ☆
0711nobodyさん
04/07/07 17:44ID:???金が無いなら元になっている雑誌(英語)は安い。
http://www.phparch.com/
自分は先に英語読んでたクチだが、結局日本語版だけにした。
少なくても自分がやるより翻訳の品質と時間コストが安いため。
定期購読方式だと割り引きになるし、毎月買わされるんじゃなくて
購入が選べるので、そっちの方がお勧め。過去の号もそこから充当できるし。
他の有名どころでは
http://www.php-mag.net/
紙のメディアでも出版されている(最近はPHP|architectも) が、
昔取り寄せが上手く出来なかった。今はどうかしらんけど。
インプレスが発行予定の雑誌っていつ発売だっけ。
初稿原稿の締め切りはもう過ぎたようなので、今月末ぐらい?
0713nobodyさん
04/07/07 18:43ID:???Unix系の tail のような機能を作りたいんですが
だれかそういう関数をつくっテイル人いますか?
0714nobodyさん
04/07/07 18:44ID:???0715nobodyさん
04/07/07 18:46ID:???php-mag、トラブル多いけどそれなりに届くよ。でも高いのよね。
PDF エディション出てるので、今ならそっちお勧めする、
0716nobodyさん
04/07/07 19:23ID:???0718nobodyさん
04/07/07 19:45ID:???トリガなしで汎用的に監視がしたいならFam関数+αだろう。
0719nobodyさん
04/07/07 20:56ID:H1YWjpHJソース内で
mb_http_output("UTF-8");
mb_internal_encoding("UTF-8");
で指定してもサーバ側が別だとエンコードされません。
ソース内の指示よりphp.iniの方が優先順位が高いのでしょうか。
0720nobodyさん
04/07/07 21:12ID:???mb_http_outputはphp.iniで
output_handler = mb_output_handler
となっているか、ob_start('mb_output_handler')してからだろ。
mb_internal_encodingやmb_http_inputは既に読み込まれている
スプリクトや$_POST,$_GETの文字エンコードは変換されない。
0721nobodyさん
04/07/07 22:22ID:uCG1B5VOSESSIONを使って買い物カゴ的なものを作りたいのです。
・formのラジオボタンで選択したほうの商品名を表示する
・選択した回数に応じて個数を加算していき、それを表示する。(表示ページから入力ページには戻れるようにしてある。)
上記のようなものを実現するにはどのようにしたらよいのでしょうか?
抽象的な表現でもうしわけありませんが、是非よろしくお願いします・・・。
0722nobodyさん
04/07/07 23:02ID:???そこまで決まってるなら後はスクリプトを書くだけなのだが...
サンプルが欲しいなら「ショッピングカート php セッション」あたりでググってみたら?
0723nobodyさん
04/07/07 23:13ID:H1YWjpHJつまり ob_start() 使うとエンコーディング出来ないって事ですか
0724720
04/07/07 23:29ID:???逆。
php.iniでoutput_handlerを指定していない場合は
ob_start('mb_output_handler')としないと、出力時にコード変換は行われない。
実際、mb_output_handlerを使った変換はしたこと無いので、
大外ししているかもしれんが。
0725nobodyさん
04/07/07 23:39ID:???マニュアルになんて書いてあるか知ってて言ってるんだろうな。
出力をバッファリングしたものをコンバートしてるって知ってて言ってるんだろうな。
0726nobodyさん
04/07/08 00:22ID:YCLF39oi過去の書き込みが消えてまったく新しいtextが出来上がってしまいlogとして使い物になりません。
ファイルにもともと書いてあった文章は残して追記するにはどうしたらよいのでしょうか?
またそれぞれの要素をファイルから変数に読み込ませるのはどうするのが最も効率がよいか教えてください。
$name = $_POST['name'];
$title = $_POST['title'];
$fl=fopen("./log/log.txt","w+");
fwrite($fl,$name,$namelen);
fwrite($fl,",",1);
fwrite($fl,$title,$titlelen);
fwrite($fl,",",1);
0727nobodyさん
04/07/08 00:28ID:???⊂⌒( ´・ω・)くぜんぶマニュアルのfopenに書いてあったでつ
`ヽ_っ⌒/⌒c
0728721
04/07/08 00:40ID:VIhri8TSラジオボタンのvalueに各々、<? echo $_SESSION["商品名"]++; ?>を入れてみて実行してみたところ、
両方同時に増えていってしまうし・・・。うわーん・・・。
0729nobodyさん
04/07/08 01:11ID:???0730nobodyさん
04/07/08 03:02ID:YCLF39oiphpでそれぞれ区切られた要素を取り出すにはどのようにしたらよいのでしょうか?
たとえば書き込み本文に半角カンマなどが使われていた場合はそこで間違えて区切ってしまったりするのではないのでしょうか?
たとえば本文で 私は,〜〜です。と言う書き込みがあった場合「私は」と「〜〜です」の二要素に分かれてしまうのではないかと心配しています。
$const=readfile("./log/log.txt");
このようにファイル全体を呼び出したあと具体的にはどのような関数を使ってわければよいのか、ぜひともアドバイスをお願いいたします。
0731nobodyさん
04/07/08 03:32ID:???0732nobodyさん
04/07/08 03:45ID:???もしくはしっかりコード見て盗めyo!
>>721 なんて仕事でやってるんだろう、、それで自分の書いたコードに責任持てるのかと。
0733nobodyさん
04/07/08 03:52ID:???http://jp.php.net/manual/ja/function.fgetcsv.php
0734nobodyさん
04/07/08 06:27ID:YCLF39oi// 終端に達するまでループ
while (!feof($fp)) {
// ファイルから一行読み込む
$line = fgets($fp);
// 読み込んだ行を出力する
print $line;
// <br>の出力
print "<br>\n";
}
この作業を逆に行うにはどうしたらよいのでしょうか?(log.txtの一番下の行から順番に出力させたい)
0737nobodyさん
04/07/08 09:03ID:???r;ァ'N;:::::::::::::,ィ/ >::::::::::ヽ
. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 こ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0738692
04/07/08 09:03ID:BnTCTIrCありがとうございます。というかここもうちょいちゃんとSEOやってくれ…
[php マガジン]でも[php (ウェブ)雑誌]でもひっかからんからどうしようかと思いました。
0739nobodyさん
04/07/08 10:06ID:???0740nobodyさん
04/07/08 10:11ID:???$codeにはUTF-8が返って来てしまします。この結果に
従いmb_convert_encodingすると拾得ページが文字化け
してしまうのですが、どうしたら良いのでしょうか^^;。
if ($file = @fopen($_REQUEST['url'],'r')){
if ($file) while(!feof($file)) $page .= fgets($file,4096);
fclose($file);
}
$code = mb_detect_encoding($page);
$page = mb_convert_encoding($page,'EUC-JP',$code);
0741740
04/07/08 10:15ID:???$codeが空白に・・あれ・・・
0742nobodyさん
04/07/08 10:39ID:???print $code;
EUCで読み込めてますけどね
0743nobodyさん
04/07/08 10:45ID:???完璧。
0744nobodyさん
04/07/08 10:59ID:???mb_detect_order() でエンコード検出リストを確認してみたら?
php.ini で
mbstring.language = Japanese
にして Apache を再起動するとか、スクリプトの最初に
mb_language('Japanese');
を入れてみるとうまくいくかもしれない。
詳しくはマニュアルで。
0745nobodyさん
04/07/08 11:05ID:???$code = $obj->get('http://www.yahoo.co.jp');
最強。
0746nobodyさん
04/07/08 11:38ID:???> というかここもうちょいちゃんとSEOやってくれ…
> というかここもうちょいちゃんとSEOやってくれ…
是非 >>738 の会社からアシアルに売り込みにいって、顛末記でも書いてくれ。
0747nobodyさん
04/07/08 11:39ID:???0748740
04/07/08 11:47ID:???以下の方法にする事にしましたm(_)m
先にUTF-8で認識されてしまったのが問題みたいでした。
これから、あちこちのページでもテストしてみたいと想います。
貴方のページにもきっと・・・^^w。
$page = @file_get_contents($_REQUEST['url']);
mb_detect_order('eucjp-win,sjis-win,UTF-8');
$code = mb_detect_encoding($page);
0749nobodyさん
04/07/08 11:48ID:???0750nobodyさん
04/07/08 11:54ID:???0751nobodyさん
04/07/08 12:10ID:???0752nobodyさん
04/07/08 12:11ID:???pdfで無料配布してるから
「赤マンモス pdf」でぐぐれ
■ このスレッドは過去ログ倉庫に格納されています