【PHP】質問スレッドpart33【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/16(木) 03:19:52ID:xwXojaq/【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。
過去スレ、関連リンク、FAQ等>>2-10辺り
0511nobodyさん
2006/03/04(土) 18:30:25ID:???includeとrequireは、
どんな条件下でも必ず評価されるものにはrequire
ある条件下で評価されない可能性がある(if文など)場合はinclude
理由はマニュアル嫁。
0512nobodyさん
2006/03/04(土) 18:33:47ID:???そのアップロードによって生成されているテンポラリファイルは確認してみた?
move_uploaded_fileして、一旦どこかに保存してやってみるとか。
0514510
2006/03/04(土) 18:48:08ID:WPEf+PS6具体的にどう使い分けるの?
分からないなら答えなくていいよ。
どうせ分かってないでrequire_once使ってんだろ。
0516nobodyさん
2006/03/04(土) 18:55:50ID:SB9snESx標準偏差や相関係数をJAVAではなくphpでやりたいのですが。
0517nobodyさん
2006/03/04(土) 18:56:32ID:SB9snESx標準偏差や相関係数をJAVAではなくphpでやりたいのですが。
0518nobodyさん
2006/03/04(土) 19:00:12ID:???正直俺もイマイチわからんので、わかったら教えてください
>>515
そういう無駄なことはいわなくていい。回答する気がないならスルー汁
0519nobodyさん
2006/03/04(土) 19:12:16ID:???俺も良く分からないまま使ってる
>>515
君の方が向いてないから止めた方がいいと思うよ
>>514は良く分からないまま使ってることが嫌で質問してるんだよ
これこそ向いてるでしょ
0520nobodyさん
2006/03/04(土) 19:30:31ID:???0522nobodyさん
2006/03/04(土) 20:26:32ID:???>>511が良回答。たぶんおまいらがこれ以上居座ると空気悪くなるのでくだらない発言は控えてもらえると助かる。
http://www.php.net/manual/ja/function.include.php
http://pear.php.net/manual/ja/standards.including.php
この2箇所読んでも不満や疑問があるならまた来ればいい。
とは言ってもpear標準は絶対必須というわけではないので、エラーの扱いについて正しく理解した上で明確な理由があるなら別の使い分けをしてもかまわない。
0523496
2006/03/04(土) 20:31:16ID:???スクリプトを他のサーバー3に置いて実行してみたところ、サーバー2にもアップロードできました
(サーバー1からスクリプトを実行しなかったのはFTP関数の使用が規制されているため)
どうもサーバー2からは自分自身にアップロードできないようです
スクリプトの不備ではなくサーバーの設定関係の問題のようなので
今後は自力でそっちの方を当たってみます
ありがとうございました
0524nobodyさん
2006/03/04(土) 20:32:43ID:???peclでこんなのあるけど。
http://www.php.net/manual/ja/ref.stats.php
0525nobodyさん
2006/03/04(土) 20:48:34ID:aGprecBmdefine('hoge', 'string');
echo "hoge is {hoge}";
echo "hoge is {'hoge'}";
↑どっちもダメでした。
0526nobodyさん
2006/03/04(土) 20:52:07ID:???投稿用テーブルkakikoにuser_idがあるのですが、ユーザ名が格納されているのは
ユーザテーブルusersの中のuser_nameです。
書き込み表示の時にユーザ名を表示させたいのですが、一旦kakikoからuser_idを取ってきて
その後にuser_idがある分だけusersからuser_id -> user_nameのSELECT文を発行しないと
いけないのでしょうか…
何かすごくマヌケなことをしている気がするのですが、これしか思いつかないもので…
user_id -> user_nameの関数を用意しても結局同じ数のSQLを発行しますよね
みなさんはどうやっていますか?
0527526
2006/03/04(土) 20:53:09ID:???echo "hoge is ".hoge;
普通大文字にすると思うけど。
echo "hoge is ".HOGE;
0528nobodyさん
2006/03/04(土) 20:53:45ID:???残念ながらPHPだと文字列リテラルに定数いれられないんです。
echo 'hoge is ', hoge; でがまんして。
0530nobodyさん
2006/03/04(土) 20:59:47ID:???sqlの話なのでスレ違いだけど
select * from kakiko, users where kakiko.user_id = users.user_id and なんちゃらかんちゃら
0531nobodyさん
2006/03/04(土) 21:00:39ID:aGprecBmヒアドキュメントの中で使いたいのですが
それだとソースがぐちゃぐちゃになっちゃいそう
>>527
無理ですか…
0533nobodyさん
2006/03/04(土) 21:09:50ID:???$hoge = HOGE;
$heredocument = "$hoge";
じゃダメ?
>>530
まだ理解できていないですけど、ちょっとやってみます。
0534nobodyさん
2006/03/04(土) 21:14:07ID:SB9snESx>peclでこんなのあるけど。
>http://www.php.net/manual/ja/ref.stats.php
php5.1以上ではphp_stats.dllをダウンロードして使えるようだが
それ以前ではだめみたいだね。実際php_stats.dll(5.12)を
試したが拒否された。
0535nobodyさん
2006/03/04(土) 21:20:38ID:???変数のパース
http://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing
定数≠変数。定数がパースされないのは無難な仕様だと思うけど。
0536nobodyさん
2006/03/04(土) 21:36:26ID:???あとヒアドキュメントでも
http://www.php.net/manual/ja/language.types.string.php#60971
この手がいけるかと思う。でも
>それだとソースがぐちゃぐちゃになっちゃいそう
が気になるなら、早々に何らかのテンプレートシステムを導入。
0538nobodyさん
2006/03/05(日) 03:26:56ID:???俺は同じプログラムでrequire_onceとrequireとincludeは使い分けてるけど
include_onceだけまだ使ったことないや。そういえば。
0539nobodyさん
2006/03/05(日) 11:55:08ID:???include_onceでPHP5のラッパー関数を定義しといて
PHP4の環境でも同じソースで済むようにしてる
0540nobodyさん
2006/03/05(日) 14:06:29ID:???自分でスクリプト書いてみたが、どうもうまく動かない・・
filesizeの取得がマニュアルによると「sprintf("%u", filesize($file))で2G越え
てもいけるぜ」と書いてあるけど、エラーで取得できず。
おまけにfopenでファイルも開けずエラー。
どうしたらよかとですか。
教えて、エロイ人。
0541nobodyさん
2006/03/05(日) 14:25:52ID:???「うまく動かない」→どう動かないんだ?
「エラー」連呼→エラー文はコピペしろ。
上記を踏まえて・・・ダウンロード、filesizeとか言ってる辺りから推測すると、
まさか、その1ファイルを全部PHPのメモリ上に乗せてから出力させてんのか?
それならロジックを変えるか、実装メモリを増やしてPHPのメモリ設定変更。
・・・どう考えても後者は実用的じゃないがな。
0543nobodyさん
2006/03/05(日) 16:36:09ID:???エラー内容はファイルサイズ取得で
「filesize() [function.filesize]: stat failed for ***」とでます。
fopenも同じエラーです。
メモリに一気に乗せるロジックではなく、freadでループさせて
吐き出そうとしてますが、それ以前の問題なんでつorz
>>542
PHP.iniのリミットのことですか。
ファイルサイズ取得、ファイルオープンと関係あるんでしょうか。
0545nobodyさん
2006/03/05(日) 18:55:22ID:???***のところはファイル名です(録画済ファイル)
具体的には
「filesize() [function.filesize]: stat failed for /video/1003_20060303220000_20060303225400.nuv」
のような感じです。
書くと、長くなるためとファイルの扱いに関係がないと思われたため記述を控えました。
0546nobodyさん
2006/03/05(日) 19:12:45ID:???ext\standard\filestat.cの中だけど
if (!IS_EXISTS_CHECK(type) || (errno != ENOENT && errno != ENOTDIR)) { /* fileexists() test must print no error */
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Lstat failed for %s (errno=%d - %s)", BG(CurrentStatFile), errno, strerror(errno));
}
なので、'/video/1003_20060303220000_20060303225400.nuv’がfilestatusを取るのに
相応しくないだけっぽいな。
実際にそのファイルはあるの?(これは他のエラーになる筈だから違うか)
絶対パス指定ではどう?パスを短くしてみたらどうなる。
>>543
いや、エラーの詳細が判ったので今のところ関係ないと思われる<リソースリミット
0547546
2006/03/05(日) 19:18:13ID:???0548nobodyさん
2006/03/05(日) 19:25:31ID:???ファイルは実際存在し、ファイルサイズの小さなもの(60M程度)を
ダウンロードしてみるとダウンロードはできます(データも問題なし)。
パーミッション、オーナーともにダウンロードできるファイル
と同一のため問題なく思われます。
パス指定は現在絶対パスで行っています。
値はGETで取得、これも問題なく取得できています。
書き忘れましたが、apacheのバージョンが1.3.33、PHPのバージョンが5.1.2
です。
ああ、どうしたらよいものやら・・orz
0549nobodyさん
2006/03/05(日) 19:32:50ID:???0550nobodyさん
2006/03/05(日) 19:37:53ID:???0551546
2006/03/05(日) 19:39:21ID:???#define IS_EXISTS_CHECK(__t) ((__t) == FS_EXISTS || (__t) == FS_IS_W || (__t) == FS_IS_R || (__t) == FS_IS_X || (__t) == FS_IS_FILE || (__t) == FS_IS_DIR || (__t) == FS_IS_LINK)
if (php_stream_stat_path_ex((char *)filename, flags, &ssb, NULL)) {
/* Error Occured */
if (!IS_EXISTS_CHECK(type)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%sstat failed for %s", IS_LINK_OPERATION(type) ? "L" : "", filename);
}
RETURN_FALSE;
}
メッセージに変更はあるけど、別にチェックは余り変わってないな。
0552nobodyさん
2006/03/05(日) 20:13:54ID:???でもエラーは「filesize() [function.filesize]: stat failed for /video/1003_20060303220000_20060303225400.nuv」なんでしょ?
0553nobodyさん
2006/03/05(日) 23:08:03ID:???0554nobodyさん
2006/03/06(月) 10:35:47ID:???勘だけど、statした結果のファイルサイズ(st_size)が2GB以上だと符号付で見なしたときに負の値になって、PHPがどっかでエラーチェックのつもりで0と比較してエラーフラグ立ててるとか、どうせその手のアフォな話だと思うね。
>>540
というわけで、現時点ではPHPで2GB以上のファイルは扱えない、といったところか。
そもそもPHPのintはCのintそのままだからそこらのプラットフォームでは0x80000000以上の数値扱うこと自体に無理があるんだよな。
PHP6では多倍長整数がサポートされることを祈ろう。
0555nobodyさん
2006/03/06(月) 11:31:40ID:???マニュアルにあえてsprintf("%u")での対処方法が書いてあったところを見ると、
元々はstatの戻りをstringによる数字で扱ってて、うまく動いてたんだろうな。
ところがそれを忘れて改良してしまった部分があって今は動かなくなってしまった、
という可能性が高そうだな。PHPじゃよくある話だし。
0558nobodyさん
2006/03/06(月) 17:34:37ID:zhIGepD3fopenでファイル開いた後 fclose で閉じなかったら
どんな悪影響がでるんですか?
0559nobodyさん
2006/03/06(月) 17:37:15ID:???あと、書き込みしたままfcloseしてなかったらプログラム終了までフラッシュされずに
ファイルが破損する確率が上がるかも。
flockしっぱなしで放置するとプログラム終了まで他のプログラムがアクセスできなくなるかも。
そんなもんか?
0560nobodyさん
2006/03/06(月) 17:48:22ID:???まあ基本的にはOSが閉じ忘れを面倒見てくれる(もしくはPHPもやってくれるかな?)から大したことはないってのもある。
人によってはfopenしたのにfcloseしていないプログラムに気持ち悪さすら覚えるらしいことも頭に入れておくべし。
0561nobodyさん
2006/03/06(月) 19:45:27ID:???Web経由で起動しとったらURIを、コマンドラインから起動しとったら
コマンドラインを標準出力に吐き出したいんだが
ちからづくでならなんとかなったんだけど
格好良く書くナイス方法は無いかな
0563nobodyさん
2006/03/06(月) 20:08:13ID:???$msg = @ $_SERVER['REQUEST_URI'] or $msg = @ implode(' ', $argv) or $msg = 'おてあげ';
echo $msg;
てこと?
0566nobodyさん
2006/03/06(月) 23:11:58ID:6wJc3dTK<?include("print.php");?>
と書かれているとします。
この時print.php側で「sakura.html」のURLもしくはパスを取得し表示する方法はありますか?
$url = getenv('REQUEST_URI');
print $url;
とやってみた所
「print.php」が表示されてしまいます。
0567nobodyさん
2006/03/06(月) 23:27:25ID:???$_SERVER['REQUEST_URI']
0568nobodyさん
2006/03/06(月) 23:35:52ID:???sakura.htmlってのはPHPじゃないよね。
PHPのincludeはあくまでも、その場所にPHPのコードを
挿入するのと同じ動作だから。
|「print.php」が表示されてしまいます
とはならない。
0569nobodyさん
2006/03/06(月) 23:42:05ID:???すいません。includeの中身を
include ("http://***.com/print.php");
とURLで指定してました。
相対パスに変更した所、うまく動作しました。
0571皮先くん ◆N3i.Qu1SoY
2006/03/07(火) 09:35:07ID:W7VIXkndttp://society3.2ch.net/test/read.cgi/hosp/1141605385/
不当にタイーホされた産婦人科医をなんとか救い出そうと思います。
同じ医師としてこのような不当タイーホは絶対に許せません。
参考
ttp://www.kaog.jp/20060306top.htm
そこで、PHPを使って署名をつのりたいのですが、
これをたたき台にして可能でしょうか?
ttp://oresama.hopto.org/~sheel/phptest/formtest/form.php
問題は、これで署名されたあとにどのようにして
整形されたhtmlをたたき出すか、という点です。
それと可能なら現在までに集まった署名の数をリアルタイムで
表示させたいのですがどうしたら可能でしょうか?
0572nobodyさん
2006/03/07(火) 12:38:46ID:???0573nobodyさん
2006/03/07(火) 12:40:35ID:???もっと具体的に。
0575皮先くん ◆N3i.Qu1SoY
2006/03/07(火) 13:56:43ID:HRxo4IHm返答ありがとうございます。
署名文の入力は
http://oresama.hopto.org/~sheel/phptest/formtest/form.php
こちらで完了し、submitボタンをクリックすることで
text.batにどんどん追記されていく仕組みまではつくりました。
問題は、追記されていくtext.batをどのようにデータベースとして
取り扱うか、という点です。
CSV形式で追記していけばあとでいろいろと使えますか?
最終的にはたまった署名文を福島県警に郵送する予定です。
0576nobodyさん
2006/03/07(火) 14:30:48ID:???0577nobodyさん
2006/03/07(火) 17:25:02ID:???0578nobodyさん
2006/03/07(火) 17:39:31ID:???0579nobodyさん
2006/03/07(火) 17:42:05ID:???0580nobodyさん
2006/03/07(火) 17:46:11ID:???ttp://www.mt312.com/php/var.reference.html
0581nobodyさん
2006/03/07(火) 17:50:06ID:???関数から返された変数の参照をそのままempty()の引数にしたいのですが、出来ないのでしょうか?
empty(getVal())のようにすると、こういうエラーになります。
Fatal error: Can't use function return value in write context in...
0582nobodyさん
2006/03/07(火) 18:06:26ID:???0583nobodyさん
2006/03/07(火) 18:12:03ID:???質問する前に、まずはマニュアル嫁
http://jp.php.net/manual/ja/function.empty.php
|変数が空であるかどうかを検査する
0585nobodyさん
2006/03/07(火) 18:40:51ID:???どうにかして出来ないかと思ったんですが、あきらめます
>>583
読んだんですけど、参照ならどうかなと思った次第です
>>584
了解しました
0586nobodyさん
2006/03/07(火) 19:25:33ID:jtyBl1lp該当する設定を付加してサーバーに接続したいのですが、
fsocksopenなどでは該当のオプションが見当たりません。
system系関数を使う以外にエレガントな方法を教えてください。
0587nobodyさん
2006/03/07(火) 19:52:48ID:???>参照ならどうか
<?php
$a = 'TEST';
$b =& $a;
var_dump(empty($b));
?>
参照かどうかってことじゃなくて
|つまり、次の例は動作しません: empty(trim($name))
ってことだよ。
0588nobodyさん
2006/03/07(火) 20:05:27ID:???0589nobodyさん
2006/03/07(火) 20:13:54ID:psJP3on1[ThinkIT] Part5:PHP5のXMLサポート(3) (1/2)
http://www.thinkit.co.jp/free/marugoto/1/5/3/1.html
をみながらセットアップしてるんですが、
libxml2を入れてみても、
# phpize
# ./configure --with-xsl
のところで最後に
configure: error:
You've configured extension xml, which depends on extension libxml,
but you've either not enabled libxml, or have disabled it.
とエラーがでて、makeすることができません。
どうすればちゃんとlibxmlを認識してくれるのでしょうか?
OS:redhat9
php:5.1.12
です。よろしくお願いします
0590nobodyさん
2006/03/07(火) 20:14:10ID:???trimって参照を返してるわけじゃないですよね?
変数への参照を返す関数なら、emptyが変数と同じように処理してくれないかと期待したわけです。
0591nobodyさん
2006/03/07(火) 20:28:44ID:???0592皮先
2006/03/07(火) 20:37:47ID:???0593nobodyさん
2006/03/07(火) 20:54:41ID:???手元のPHP本はmysql_escape_stringを使ってあるのですが、これはすべてmysql_real_escape_stringにした方がよいのでしょうか?
0594nobodyさん
2006/03/07(火) 21:04:26ID:???PHPはパース時にずいぶん式の再帰性を捨ててるから、仕方ないんだな。
俺は参照を返す関数ならempty等に渡せて意図したとおりの結果を返すような仕様だった方が意味論的には好みだけどね。
その辺はあきらめるしかない。
0595nobodyさん
2006/03/07(火) 21:06:38ID:???もっと悪い状態になってる。それは;;
そもそもなんでemptyでのチェックにこだわってるの?
if(getVal())
で同じ結果にならないか?
わざわざ「変数用の言語構造(注:これは関数ではない)」を使って
変数以外のものをチェックしようとする意図が分からん。
0597nobodyさん
2006/03/07(火) 21:18:36ID:???でいいんジャン?
0598nobodyさん
2006/03/07(火) 21:19:05ID:???理由は、、、
既存ソースの改良で、変数をget〜に変えようとしてました。
で、emptyなどで行き詰ったわけです。
そこも含めて変えれば済む話ですが、出来るだけ手を抜こうとしてました。
無理と分かりあきらめが付きました。
ありがとうございました。
変なことしようとしてすみません。
0599皮先くん ◆N3i.Qu1SoY
2006/03/07(火) 21:50:28ID:agmd1D8Vが完全に無視されている件について。
0601nobodyさん
2006/03/07(火) 22:27:42ID:???いつでるのじゃーーー
0602nobodyさん
2006/03/07(火) 22:44:12ID:???0603nobodyさん
2006/03/07(火) 22:50:50ID:???0604589
2006/03/07(火) 23:20:34ID:psJP3on10606nobodyさん
2006/03/08(水) 07:09:48ID:???その前に
cd ***/php-****/ext/libxml
phpize
./configure *******
はどうだろうか
0607age
2006/03/08(水) 10:58:48ID:s67YcGnHアルファベットの大小変換はあるんですが・・・。
0609nobodyさん
2006/03/08(水) 11:05:31ID:???そんなに種類多くないからmb_ereg_replaceかstr_replaceで置換すればいいんじゃないかな
0610609
2006/03/08(水) 11:07:18ID:???■ このスレッドは過去ログ倉庫に格納されています