【PHP】質問スレッドpart27【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
05/03/03 22:41:23ID:???・新規質問の方は上げてください。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-10辺り
0160nobodyさん
05/03/18 17:05:03ID:???0162nobodyさん
05/03/19 00:12:12ID:???ファイルの行数を取得したいのですが、
極力負荷を低くやりたいです。
ファイルのサイズはデカくて、
1行の文字数は不定なのですが
なにかウマい方法はないでしょうか?
0164nobodyさん
05/03/19 00:53:10ID:???0165nobodyさん
05/03/19 00:57:40ID:???>>163
す、すみません…
バイナリは扱ったことがないので分からないのですが
もう少し詳しく教えていただけませんか?
>>164
ファイルがかなりデカいので、fileで読み込むと悲惨なことになりそうです…
0167nobodyさん
05/03/19 01:00:14ID:???PHPでできないと少々具合が悪いのですが…
0173nobodyさん
05/03/19 01:18:16ID:???1行がよっぽど長くなければメモリも食わん。
0175nobodyさん
05/03/19 07:56:37ID:???∠( ゚д゚)/「え?」
釣りですかそうですか
λ..........
0176nobodyさん
05/03/19 08:27:15ID:???>>168みたいなうそつきの言うことは聞かないで
<?php
$file = 'C:\Program Files\Apache Group\Apache2\logs\access.log';
$fp = fopen($file, "r");
$count = 0;
while(!feof ($fp)) {
if ($line = fgets($fp) and substr($line, -1) == "\n") $count++;
}
fclose($fp);
echo $file."の行数は".$count."です";
?>
最後の行に改行が無いと1行少なくなる
0177nobodyさん
05/03/19 10:32:13ID:???ここに出て来る @ ってなに?
$fp = @fopen($file, "w");
$write = @fputs($fp, $contents);
@fclose($fp);
0178nobodyさん
05/03/19 10:41:48ID:???@があるとないの違いがわかる。
0179177
05/03/19 10:45:34ID:???で見つけたけど、warning を出さなくする修飾子ってこと?
0180にーchan
05/03/19 10:54:51ID:XBx83jBtWarning: mb_send_mail(): Failed to connect to mailserver at "192.168.11.100" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\home\mail\a.php on line 10
とエラーが出てしまいます。
portはwebで開いているか確認できるページで確認したら開いてました。
php.iniでもsmtp_port = 25と記述もしてみたのですがだめでした。
php.iniのSMTPをniftyのSMTPサーバー名にしても同じく・・・
他に考えられる原因は何があるでしょうか?
0181nobodyさん
05/03/19 11:21:46ID:???・SMTPサーバが動いていない
・SMTPサーバを勝手に使えないよう制限されている
のどちらか。
0182nobodyさん
05/03/19 11:40:40ID:???>portはwebで開いているか確認できるページで確認したら開いてました。
例示がローカルアドレスなのに、webでのチェッカーで確認したというのが怪しい。
0183にーchan
05/03/19 12:06:15ID:???・SMTPサーバが動いていない
・SMTPサーバを勝手に使えないよう制限されている
とはメールサーバを立てているのですがそれの設定が違ってるってことでしょうか?
>182
外部へポートが開いていた場合でもローカルは閉じている場合はあるのでしょうか?
0184nobodyさん
05/03/19 12:07:10ID:0sO4bGN40187nobodyさん
05/03/19 14:05:22ID:oXb2sDzY暗号化してDBに保存、読み出して複合化とかしたいんだけどPHP中やDBに複合化の
Keyとかプレーンで書いておいたら意味が無いかとも思うしかといってKey暗号化しておいたら
Keyの複合化どーすんのよっつーか
0188nobodyさん
05/03/19 14:12:54ID:???0189nobodyさん
05/03/19 14:20:54ID:oXb2sDzY比較だけなら暗号化したもの同士で行えば良いんだろうけど
例えば会員がパスワード忘れて問い合わせてきた場合は?
もっかい登録しなおせって訳にもいかないだろうし、個人情報についても
保護法絡みで共有サーバなんかの場合暗号化しときたいんだけど
0192nobodyさん
05/03/19 18:21:51ID:Mh3YU28Aなぜでしょう?
0193nobodyさん
05/03/19 18:35:39ID:???基本的には通常通りサーバが吐いてれば取れるはずだが、
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/21b3be8f-d4ed-4059-8e21-6cba2c253006.asp
AN-httpdとISAPI版PHPとではバージョン違いの組み合わせで
取れたり取れなかったしてた時があったな。
CGI版だと取れたり。
0195nobodyさん
05/03/20 03:54:17ID:34HEFa63Ver.4.3.10を使っていてphpinfoをみると
--enable-mbstring=shared
という一文があるのですが、mb_string系の関数がundifinedといわれて困っています。
どうすればmb_string系の関数を使用できるのでしょうか?
0197nobodyさん
05/03/20 04:21:53ID:34HEFa63ちょっと意味がわからないのですがどういう意味でしょう?
0199nobodyさん
05/03/20 04:32:48ID:34HEFa63ちなみにロードするファイル名は何でしょうか?
教えて君ですいません
0201nobodyさん
05/03/20 05:45:12ID:???http://jp2.php.net/manual/ja/function.dl.php
*mbstring*なファイル名。最もmbstringはdlできたんだっけ?
0202nobodyさん
05/03/20 17:42:42ID:???最初にチェックボックス形式でチェックした品名だけをドロップダウンリスト形式で表示させ
ドロップダウンリストから選択した品名の個数を入力して値段を計算させる、という感じで作ろうとしています。
↓-----index.phpの一部-----↓
<form method="POST" action="test.php">
<input type="checkbox" name="check[]" value="みかん">みかん<br>
<input type="checkbox" name="check[]" value="林檎">林檎<br>
<input type="checkbox" name="check[]" value="梨">梨<br>
<input type="submit" value="OK">
↑----------↑
↓--test.phpの一部--↓
echo "<form method=POST action=" . {$_SERVER['PHP_SELF']} . ">\n";
echo "<select name=name>\n";
for( $i=0; $i<count($_POST['check']); $i++) {
echo " <option value=$_POST['check'][$i]>$_POST['check'][$i]\n";
}
echo "</select><br>\n";
echo "個数:<input type=text size=6 name=pieces value=" . {$_POST['pieces']} . ">\n";
echo "<input type=submit value=計算>\n";
echo "</form>\n";
↑----------↑
ドロップダウンリストから選択して計算までは出来るのですが、
計算を実行したあとドロップダウンリストの中身が空っぽになってしまいます。
このドロップダウンリストの中身を保持して欲しいのですが、どの様にすればよいのでしょうか?
0203nobodyさん
05/03/20 17:58:06ID:???> ドロップダウンリストから選択して計算までは出来るのですが
いや、どうみても出来てないっしょ、そのソースを見る限り。
それは置いておくとして、
1回目のtest.phpで<select name="name">の指定があるので
2回目のtest.phpでは $_POST['name'] と $_POST['pieces']の2つの変数がセットされます。
従って、for($i=0;$i<count($_POST['check']);$i++)の内部が実行されることはありません。
0204202
05/03/20 19:06:41ID:???速レス有り難うございます。
すいません、よく分からなくなってしまったのでソース全部晒します。
################test.php################
<?php
include_once("display.inc");
include_once("input.inc");
include_once("calc.inc");
include_once("result.inc");
if (empty($_POST['pieces'])):
$_POST['pieces'] = "";
endif;
display_input_area();
if (!empty($_POST['pieces']) && input_is_valid()):
$result = calc_mikan();
display_result($result);
endif;
?>
################item_data.inc################
<?php
$check = $_POST['check'];
$item_data = array(
"みかん" => array(
"price" => "26",
"tax" => "0"
),
"林檎" => array(
"price" => "30",
"tax" => "0"
)
);
?>
0205nobodyさん
05/03/20 19:08:08ID:???<?php
function display_input_area()
{
require("item_data.inc");
print <<<__EOD1__
<form method=POST action="{$_SERVER['PHP_SELF']}">
<table><tr><td>
__EOD1__;
echo "<select name=name>\n";
for( $i=0; $i<count($check); $i++) {
echo " <option value=$check[$i]>$check[$i]\n";
}
echo "</select>\n";
print <<<__EOD2__
</td><td>個数:<input type=text size=6 name=pieces value="{$_POST['pieces']}">
</td><td>税率(%):<input type text size=4 name=tax value="{$_POST['tax']}">
</td></tr></table><br><input type=submit value="計算"></form>
__EOD2__;
}
################calc.inc################
<?php
function calc_mikan()
{
require("item_data.inc");
$name = $_POST['name'];
$char_tax = $_POST['tax'];
$base_price = $item_data[$name]['price'];
$mikan = $base_mikan * (1 + $char_tax / 100);
return (integer)$mikan;
}
?>
0206nobodyさん
05/03/20 19:13:18ID:???<?php
function input_is_valid()
{
if ($_POST['pieces'] > 0):
return TRUE;
endif;
return FALSE;
}
?>
################result.inc################
<?php
function display_result($result)
{
require("item_data.inc");
print <<< __EEE__
<table border=0 cellpadding=2 cellspacing=1 bgcolor=#696969><tr>
<td width=120 align=center bgcolor=#e6e6fa>品名</td>
<td align=center bgcolor=#e6e6fa>個数</td>
<td align=center bgcolor=#e6e6fa>値段</td></tr><tr>
<td width=120 bgcolor=white>{$_POST['name']}</td>
<td bgcolor=white>{$_POST['pieces']}</td>
<td bgcolor=white>{$result}</td></tr></table>
__EEE__;
}
?>
徹底攻略見ながら作ったのがバレバレで恥ずかしい・・・
>2回目のtest.phpでは $_POST['name'] と $_POST['pieces']の2つの変数がセットされます。
>従って、for($i=0;$i<count($_POST['check']);$i++)の内部が実行されることはありません。
なぜ、2度目以降ではforループの内部が実行されないのでしょうか。
0207nobodyさん
05/03/20 19:27:47ID:???0208nobodyさん
05/03/20 19:40:30ID:???制御構造に関する別の構文
ttp://www.php.net/manual/ja/control-structures.alternative-syntax.php
これって、マニュアルでしか見た事なかったよ。。実際に使っている人がいたのか(笑)
0210nobodyさん
05/03/21 00:42:45ID:???連想配列を渡すとリストとして返ってくる関数とか無いですか?
0211nobodyさん
05/03/21 00:44:11ID:???0213nobodyさん
2005/03/21(月) 09:29:01ID:???例えば strip_tags()した後、 だけ取り除きたい時って
どうすればいいの?
0214213
2005/03/21(月) 09:33:40ID:???例えば strip_tags()した後、&ンBSP;だけ取り除きたい時って
って書きました…
0216214
2005/03/21(月) 09:42:15ID:???ttp://www.softinn.jp/doc/lib/
これって使った事ある人いる?ググったらでてきた。
今んとこ str_replace で充分そうだけど、もしかしたら後で使いたいかも。
どう?
0217202
2005/03/21(月) 10:44:09ID:???少しだけど前進した。スレ汚しスマンカッタ
0218nobodyさん
2005/03/21(月) 20:52:21ID:???音楽ファイルよみこんでバイナリで吐き出しても
音楽は聴けるけど保存できません・
header("Accept-Ranges: none");
header("Content-Length: $filesize");
header("Content-Type: application/x-smaf");
header("Content-Disposition: attachment; filename=".$strMusicname);
i18n_http_output("pass");
$fp=fopen($strPath,"rb");
fpassthru($fp);
fclose($fp);
こんな感じで書いてるけどDocomoは再生・登録ともにできました。
何かヘッダー情報たりないんでしょうか?
0219218
2005/03/21(月) 20:53:20ID:???Vodafone端末に送付したら登録はできました
どなたか宜しくお願いします;−;
0220nobodyさん
2005/03/21(月) 21:34:19ID:???0221nobodyさん
2005/03/21(月) 21:53:40ID:???0222218
2005/03/21(月) 22:33:01ID:???ありがとうございました
0223nobodyさん
2005/03/22(火) 21:34:33ID:FZjBD8FMPHPのエディタってあんまりないですよね。。。
0224nobodyさん
2005/03/22(火) 21:41:44ID:???PHPエディタって、どうよ?
http://pc8.2ch.net/test/read.cgi/php/1079460638/
0225nobodyさん
2005/03/23(水) 00:55:18ID:???もしないのであれば、何故両立している状態があるのでしょうか?
0226nobodyさん
2005/03/23(水) 00:56:49ID:???0229225
2005/03/23(水) 01:04:23ID:???http://e-words.jp/w/PHP.html
これも読みました。。。
理解できていないと思うのですが、PHPの解説サイトとか見てみると、「cgiより軽い」とか「cgiよりサーバーへの負担が少ない」とか書いてあって。
cgiで出来てphpで出来ないことがないとしたら、両立している理由が分からないのです。。。 orz...
0230nobodyさん
2005/03/23(水) 01:15:31ID:???0232nobodyさん
2005/03/23(水) 01:25:25ID:???CやPerl、RubyなどもちろんPHPも含めてあらゆる言語を利用できる。
って、答えたらよかったのかなぁ?
0233nobodyさん
2005/03/23(水) 02:03:24ID:???レースドライバーと耕運機を比較するくらいズレてる。
そもそもPHPはCGIとして動かすことも可能。
0234nobodyさん
2005/03/23(水) 02:27:10ID:???巷の初心者に毛が生えたのが解説してるPHPサイトとかも
ちゃんと理解できていないからその記述になってるので安心汁。
(CGI=Perlらしい)
0236nobodyさん
2005/03/23(水) 09:15:07ID:???PHP5では
public $mona = array(0,1,2);
class giko {
}
PHP4では
$mona = array(0,1,2);
class giko {
global $mona;
}
という認識であってますか?
0237nobodyさん
2005/03/23(水) 10:00:02ID:???PHP自体が速いのではなく、Apacheモジュールとして立ち上げたPHPが(既にPHPが起動しているので)CGI版PHPより速い。
Perl→mod_Perl、CGI版Perl
多くのレン鯖はCGI版Perlで、Perlの起動に時間がかかるからmod_PHPと比べるとたいてい遅くなる。だからPHPはPerlより速くて負荷が小さいですよ、とか紛らわしい書き方をしている。mod_Perlとmod_PHPなら差はほとんどない。 であってるのかな。
モジュールとして動作→速い、モジュール限定機能あり
CGIとして動作→SuEXECが効く、Perlが落ちてもHTTPDまで落ちない
0240nobodyさん
2005/03/23(水) 10:44:39ID:???>>230みたいな勘違いしてる人は結構珍しいかも。
0241nobodyさん
2005/03/23(水) 10:51:38ID:???そのPHPを記述したファイルの拡張子(.php)を着メロ用ファイルの拡張子(何かは知らんが仮に.xxxとする)にし、
htaccess使うとかして、.xxxというファイルがPHPとして動作するようにしてみ。
試してないので上手くいくかどうかは知らんが。
あとPHPのバージョン(3使ってる?)の関係であえてそうしてるのだとは思うけど、
5行目 ⇒ mb_http_output('pass');
7〜9行目 ⇒ readfile();
一応、バージョン4以降使ってる人の為に。。
0243nobodyさん
2005/03/23(水) 11:08:37ID:???foreach ($arr[$k] as $key => $value) {
echo $key.$value;
}
}
エラー出る。なんで?
0244243
2005/03/23(水) 11:18:24ID:???ごめん。
0245nobodyさん
2005/03/23(水) 11:41:30ID:7EAkLlhUWarning: copy(): SAFE MODE Restriction in effect. The script whose uid is 574 is not allowed to access / owned by uid 0 in
↑こんなエラーがでるのは、レンサバの設定がセーフモードだからってことですか?
そんなときは、どうやって、fopenしたりmkdirしたりするんですか?
PHP Version 4.3.8
0247245
2005/03/23(水) 11:52:15ID:???ディレクトリは最悪、事前に準備することが可能なんですが、動的にHtmlファイルを生成(書き換え)したいと思っていまして、そんなとき、fopen()使わずにいけますか?
0248nobodyさん
2005/03/23(水) 11:57:35ID:???あらかじめ作ったディレクトリ(所有者がPHPスクリプトの所有者と同じ)内であれば特に制限は無いのでfopenでもcopyでも好きにやってくれ。
0249245
2005/03/23(水) 12:15:22ID:???ありがとうございます。
試してみました。↓
$result2 = copy("test_dummy/test.txt","test_dummy/test2.txt");
。。。でもダメでした。(同じメッセージ)
かなり初歩的なことだと思いますが、引き続きご指南いただけませんか。
0251nobodyさん
2005/03/23(水) 14:29:11ID:???>mod_perl > mod_php > Perl(CGI) > PHP(CGI)
その順番は一般にPHPは最初から拡張モジュールてんこ盛りでビルド
Perlは最初から余り入れずプログラムで必要に応じて採用する傾向のよるもの。
(PHPでdl()させてるところって殆どないやん)
実際に測ると総合力は余り変わらんよ。
0252nobodyさん
2005/03/23(水) 14:30:45ID:???0253nobodyさん
2005/03/23(水) 15:37:48ID:ZnAQR4mO0255nobodyさん
2005/03/23(水) 16:04:12ID:???PHPスレで聞いたって事はPHPにそういう関数はないかってことやね
無い と思う
linuxならduコマンド呼べ
0256nobodyさん
2005/03/23(水) 16:23:40ID:???0257nobodyさん
2005/03/23(水) 16:28:09ID:???http://www.itmedia.co.jp/enterprise/articles/0502/28/news003_2.html
view.php
http://www.itmedia.co.jp/enterprise/articles/0502/28/news003_3.html
漠然とした質問で申し訳ないのですが
練習としてやっていて初っ端でつまづいております・・・。
上のソースの必要個所を修正し、
その後アップロードをしview.phpにアクセスしても真っ白で何も表示されません・・・。
サーバーはlinuxでphpは4です
よろすくおねがいします
0258nobodyさん
2005/03/23(水) 16:29:44ID:???いや できないだろう
ハードディスクの空き容量が出るだけかquotaで割り当てられた容量が出るかじゃないのか
filesize()で一個ずつ足していくのはどうかね
■ このスレッドは過去ログ倉庫に格納されています