【PHP】下らねぇ質問はここに書き込みやがれpart20
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/04/28(金) 04:12:33ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart34【php】
http://pc8.2ch.net/test/read.cgi/php/1142903954/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
過去スレは>>2-3あたり
0357352
2006/05/07(日) 21:48:15ID:IxA6YfPNありがとうございました。
0358nobodyさん
2006/05/07(日) 23:26:35ID:???俺、8000円ぐらいで小さな奴使ってるんだけど、ノートと本を広げたらもう
何も置けないぐらい小さいんだよ。
何かお勧めある?抽象的だけど、ディスプレイが二つぐらい置けるような大きさキボンヌ
0359nobodyさん
2006/05/07(日) 23:35:30ID:???0361nobodyさん
2006/05/07(日) 23:51:05ID:???モニターを並べたいのか?
両袖机でも使えば?黒壇使ってたらベストかもな
おれは脇机を利用してるけどな
0362357
2006/05/07(日) 23:58:23ID:???いや、マジでスレ違いごめんね。スレ違いの純情じゃ済まされないのは分かってる。
なるほど、脇机もひとつの手だな。ちょっとSOHO系のスレ探してみる。
0363nobodyさん
2006/05/08(月) 00:50:39ID:OM28BwPFどういう風にしたらよいでしょうか
0364nobodyさん
2006/05/08(月) 01:26:21ID:???PHPや他の言語でもいいですが、最終的にOSが提供している関数のようなものを
呼び出すことになるのですが、OSは行数のカウントやそれぞれの改行位置まで把握していないので
当然ながらそれに該当する関数(のようなもの)を持ち合わせていません。
ファイルの最後の方から一定のサイズづつ読み出して、
そこに改行コードが含まれているかをチェックし、それが見つかるまで繰り返す。
見つけたらそれまでに読み出したものを返す、というのが具体的な手法になります。
ファイルサイズが小さければ、先頭から調べる(一行だけ読み込む関数をファイル終端まで繰り返す)というのもありでしょう。
0365nobodyさん
2006/05/08(月) 02:45:41ID:???そこそこなサイズなら
$a = file("file");
echo $a[count($a) - 1];
とか
0366363
2006/05/08(月) 03:20:12ID:???出来ました!(TдT)アリガトウございました!
いろいろサイトを回ってみたんですがずっと分からなくて困ってました
ほんとにありがとうございました
0367nobodyさん
2006/05/08(月) 04:43:58ID:???時々、リターンコードが成功を返しているのに、
画像ファイルが生成されていないことがあります。
これはimagemagickが不安定なのでしょうか?
同じような現象に会った人、いますでしょうか?
0369nobodyさん
2006/05/08(月) 11:56:11ID:???trigger_error()が1023バイトしか取ってくれないんですが、
どこをいじればいいでしょう?
log_errors_max_len = 0;
にはしてるんだけどなぁ…
error_reporting(E_ALL);
set_error_handler('test')l
trigger_error(str_repeat('a', 1024). 'b');
function test($no, $str, $file, $line) {
echo $str. "\n";
echo strlen($str). "\n";
}
0371370
2006/05/08(月) 12:09:33ID:???0372369
2006/05/08(月) 12:25:42ID:???うまくできた人いたら、報告してもらえるとうれしいす
0373nobodyさん
2006/05/08(月) 15:05:08ID:wZI7Xo6Autf-8と書くときと、utf8と書くときがあります。
文字コード系の関数を使うときはutf8(ハイフン無し)で
htmlのヘッダのcharsetはハイフン無いと読まなかったり。
このへんの正確な定義はなんですか?
0374nobodyさん
2006/05/08(月) 15:21:47ID:w88YtdTUその後に時間のかかる処理をしたいのですが、どうしたらよいでしょうか?
構造では、
Locationで別のページへリダイレクトさせておき、
リダイレクトさせた後、サーバー側で残りの時間のかかる処理を終わらせたいのです。
現状だと、Locationを指定してもプログラム全てが終わらないとheaderが実行されてないような感じです。
PHP4.4.2 + Apache2.0 Handlerを使用しています。
0375nobodyさん
2006/05/08(月) 15:52:55ID:???>utf8と書くときがあります。
お前が勝手に書いてるだけだろ
ハイフンは入れましょう
http://jp.php.net/manual/ja/ref.mbstring.php#mbstring.supported-encodings
0376nobodyさん
2006/05/08(月) 16:16:48ID:???処理済のログを加算しない方法、どんな方法があるでしょうか?
たとえば、1か月分1つのログファイルにためるとして、
15日/月末の半月毎に測定プログラムを走らせる場合です。
月末に処理するときは15日までを加算してはだめですよね。
ぱっと思いついたのが別のファイルに処理済の日数を書いておいて
それを処理前に読み込んで処理開始の日を決める、
という方法なのですが、非常にまんどくさいです。
もっとシンプルでよい方法ありましたらきぼんぬ
0377373
2006/05/08(月) 16:35:36ID:wZI7Xo6Aえー!そうだったのか。レスどうもです。
でもutf8って書いてあるサンプルコードとかある気がします。
utf8でググってもたくさん出るし。
ハイフンなしは通常ありえないんですかね?
0378nobodyさん
2006/05/08(月) 16:51:30ID:???Shift_JIS
EUC-JP
UTF-8
が正式?
mb_系の関数はsjisとかテキトーに指定しても判別してくれるけどね。
0379nobodyさん
2006/05/08(月) 16:52:46ID:???0380nobodyさん
2006/05/08(月) 16:54:52ID:???ttp://dev.mysql.com/doc/refman/5.1/en/charset-charsets.html
0383nobodyさん
2006/05/08(月) 18:43:31ID:???ja、Japaneseなどなど混在しててイラッと来るときはある。
統一してほしいよね。
0385nobodyさん
2006/05/08(月) 18:48:00ID:???0386nobodyさん
2006/05/08(月) 18:48:06ID:wZI7Xo6A値段を入力するところで、桁数を表すカンマ付きで入力すると、
5,000円よりも50円の方が高くなって
値段順ソートができません。
こういう場合は一般的にどうしているのでしょうか?
データ型はfloatとvarcharを試しましたがイマイチです。
0388nobodyさん
2006/05/08(月) 18:56:38ID:???ftpってセキュリティの面で色々問題ありかと思うのですが、
そのプログラムへのアクセスをHTTPS通せば、
セキュリティ的にはほぼ問題なくなる(盗み見されなくなる)と考えてよいでしょうか?
MyPC--(HTTPS)--Server--(localなんで覗き見気にしなくて良い)--アップロード先
間違いがあったら指摘よろしこ
0390386
2006/05/08(月) 19:14:47ID:wZI7Xo6A最悪それでしょうがないかなと思ってます。
phpのスクリプト側で何文字目にカンマとか
表示するときにそういう処理をするのかなとも思ったのですが
結構手間なので。
なんかいい方法ないですかね?
0392nobodyさん
2006/05/08(月) 19:18:42ID:???http://jp.php.net/manual/ja/function.number-format.php
これですか。
0393374
2006/05/08(月) 19:21:35ID:???無駄レスすみませんでした。
0394369
2006/05/08(月) 21:40:26ID:a7rUGxAuサーバーのはいじれないからWinでテストしてるんですが、
そっちだと駄目なんだよね…
unix系ならいくかなぁ
0396376
2006/05/08(月) 23:29:30ID:???0397nobodyさん
2006/05/09(火) 02:06:25ID:???0398nobodyさん
2006/05/09(火) 12:54:15ID:???とやると普通は「2006年05月09日」と表示されるはずなのですが、
「2006・05月09日」と年が・に化けてしまいます。
Shift_JISエンコードなのですがどうすれば宜しいでしょうか、ご伝授お願いします。
ちなみにphpはバージョン5.1.2です。(Linux版)
0399nobodyさん
2006/05/09(火) 13:20:06ID:???PHP5.1.0からdate()のフォーマットに"N"が追加された。
sjisの"年"は"N(0x4E)"を含んでいるのでそうなる
対策は文字コードを変える
または
$year = date("Y");
echo $year . "年" . date("m月d日");
0400nobodyさん
2006/05/09(火) 13:21:43ID:???ありが�d。 ってそういうことだったのね(´;ω;`)ブワッ
sjis派の自分としては何かメンドクサイことになりそうです。。。
0401nobodyさん
2006/05/09(火) 13:32:34ID:???試行錯誤の結果こうなった
マンドクセのは変わらないか
echo date("Y\x94\Nm月d日");
0402nobodyさん
2006/05/09(火) 13:41:06ID:???echo strftime("%Y年%m月%d日");
を使うことにする
0403nobodyさん
2006/05/09(火) 13:49:39ID:???んー何故かSyntaxエラーが返って着ました。。。 文字コードの直打ちはムリポなのかな(´・ω・`)?
>>402
ぉお!そういえばそんな関数が;;; 記憶量の差が露呈してきた希ガス;
0404nobodyさん
2006/05/09(火) 13:51:36ID:???編集中のコードで実験してみたのですが、その時既に一行上が間違ってました;;; ハズカシス;
0408nobodyさん
2006/05/09(火) 16:25:22ID:???マジレスするならサーバ側でlogrotateして、ローテート処理されたログを対象に集計するのが現実的。
Apacheのログなんて、平気で時系列前後するよ。
0409nobodyさん
2006/05/09(火) 16:34:53ID:???最近webじゃなくwindowsで動作するソフト作りたいなと思い始めたんですが、
web言語とは全く別物?
0410軟式PHP
2006/05/09(火) 17:28:33ID:???phpからだと別物に感じるかもなぁ。.Net ASPなら違和感なかったろうけど。
でもプログラムが好きなら、きっと楽しいからやってみるといいよ。
0411nobodyさん
2006/05/09(火) 18:19:51ID:???F-BoardというPHP+MySQLの掲示板をいじっているのですが、
Fatal error: Call to undefined function: numrows()
in /virtual/ホニャララ/public_html/php/board/post.php on line 191
上記のようなエラーが出てまいってます。
このエラーの下部に、その原因となってるであろうファイル名と行数が表示されているものの、
その箇所は特に手を付けたわけでもなく、恐らく正常な記述だと思うんです。
これはどこか別の場所に問題が起きてるのでしょうか・・・。
いじっていたのは確かにこのpost.phpで、例のBBQとかいうのを組み込もうとしていました。
ですがどうやらうまくいかなかったようで、いじった内容を全て削除したんですがこのザマです。
どなたかこのエラーの原因になってるであろう問題がわかる方いらっしゃいませんでしょうか。
0412nobodyさん
2006/05/09(火) 18:43:34ID:???エラーメッセージを読めば判るとおり、numrowsという関数が無い。
間違って関数を消したか、関数名を書き換えたか、
関数を読み込む部分を消したか。
差分を取るなりしてどこを書き換えたか確認。
どこをいじったかわからないなら元に戻す。
xreaか?
0413nobodyさん
2006/05/09(火) 18:57:43ID:???ご指導ありがとうございます。
お察しの通りxreaです。よくわかりますね・・・。
指摘していただいた内容をもう一度確認してみます。
0414411
2006/05/09(火) 19:44:03ID:???無事に元通りにできました。
どうもありがとうございました。
0415nobodyさん
2006/05/10(水) 12:41:02ID:???つWinBinder(ttp://pecl.php.net/package-info.php?package=WinBinder)
PHPでGUIアプリが作れる...らしいです。
0416nobodyさん
2006/05/10(水) 13:15:35ID:???IEだとwwwあってもなくてもセッションは同じサイトとして扱われるのに、
Fxだとwwwありとなしで別のサイトとして扱われるんですね。。。
最初それに気づかなくてなんでセッションが勝手に増えたり減ったりしてるのか無駄に時間を費やしてしまったorz
こういうのってW3C絡みで何か取り決めがあるのでしょうか。
それともブラウザの開発者が勝手に判断してるのでしょうか。
無論ドメインを統一すれば問題は解消されますが、
例えばwwwとwww2みたいに複数の鯖を経由する時などに弊害が出そうな気がしまして。。。
ところでセッションが余りに便利過ぎてセッションばかり使ってるのですが、
クッキーを使うのとどちらがブラウザに優しかったりするのでしょうか(期限は同じ設定だったとして)。
0417nobodyさん
2006/05/10(水) 14:29:03ID:???あとセッションとクッキーって、
セッションidをcookieに格納するもんが普通だぜ
0418nobodyさん
2006/05/10(水) 16:58:34ID:???http://php.s3.to/simple/#updaterss
ソース
http://php.s3.to/simple/source.php?updaterss.php
$logmax = 10; // ログ記録最大行、RSS出力記事数
これを機能させる記述が抜けている様に思うのですが、実際に機能させる為にはどのようにすればよろしいのでしょうか?
0419軟式PHP
2006/05/10(水) 18:19:32ID:???0420nobodyさん
2006/05/10(水) 18:48:16ID:???サーバー側?の$_POSTの値が初期化されないためブラウザで更新をかけるたびに同じ値を連続投稿してしまいます。
もしかすると、PHPというよりアルゴリズムの問題になってしまうのかも知れませんが
$_POSTや$_GETの値を初期化する方法など無いでしょうか?
0421nobodyさん
2006/05/10(水) 18:57:58ID:???それはサーバー側じゃなくてブラウザが毎回同じ値を送信してるだけ。
そういうもの。
投稿完了時にLocationで別のページに飛ばしてしまえば多重送信は防げるよ。
0422nobodyさん
2006/05/10(水) 19:50:30ID:???Firefoxが正しい実装だよ。
IEの実装はセキュリティ上の問題がある。
あと、パス指定しないのが悪い。
example.com に対してセッション発行すれば、
www.example.com と example.com で共有できるでしょ。
0424nobodyさん
2006/05/10(水) 21:59:29ID:???<[;゚Д゚]> ア゙ー!? ソコマデカンガエルナラ ナゼマニュアルヲミナイカナァ!
[_]
< >
0425420
2006/05/10(水) 22:21:00ID:???なるほど・・・
ありがとうございます!
Locationとはheader()関数のことですね?
試しに組み込んでみます
0427nobodyさん
2006/05/11(木) 01:09:43ID:???CookieもセッションCookieも同じ「Cookie」という技術を使ってるんだよ。
何がいいたいかというと、有効期間の指定が違うだけ。
(有効期間を何も指定しないとセッションCookieになる)
セッションCookieならパス指定ができない、ってわけはない。
0428nobodyさん
2006/05/11(木) 01:15:57ID:???寒気がする。
0429428
2006/05/11(木) 01:24:28ID:???>>423はセッションのCookieと言ってるわけで、PHPのセッション機能で発行されるCookieを指してると思うのだがどうか(>>416>>423から)。
>>423
で、結局はPHPのセッション機能を使っても出来る。session.cookie_domainにini_set。
0431nobodyさん
2006/05/11(木) 04:32:27ID:???マテ。教えてもらったらその関数はなんなのかとか、他に方法が無いのかとかいろいろ調べて見れ
絶対後々役に立つ・・いやたぶん、恐らく、ま・ちょっとぐらいは
0432nobodyさん
2006/05/11(木) 04:57:26ID:???0433nobodyさん
2006/05/11(木) 07:12:35ID:???法人でも個人でも仕事としてPHPでのシステム制作を請け負った場合、
スクリプトの設置場所・設置方法ってどうしてる?? サーバー運用込みで受託?
客のサーバーに入れるとソースばれるからイヤだし、トラブったときにスクリプトのせいじゃなく
サーバー側の問題だったとしても、責任をなすりつけられそうでなぁ。原因解明のために相手のサーバいじるのも怖いからイヤだし。
かと言って、こちらが管理するサーバーに入れて使わせる契約だと
サーバー管理のための人員が必要になるし、サーバー代(レン鯖やハウジング)もかかるし。
それぞれメリット・デメリットあるだろうけど、おまいらはどのようにしてますか?
俺が前にちょこっと知り合いの会社で手伝ったときは後者を選択してますた。
0435416
2006/05/11(木) 09:35:32ID:???パス指定とは ini_set()で session.cookie_domain を独自指定汁という意味で解釈すれば宜しいのでしょうか。
結局セッションもクッキーも期限の違いでブラウザ側としてはどちらも優劣はないと言うことですね。
>>433
名前は覚えてないので申し訳ないのですが、PHPのソースをコンパイルする方法があったと思います><
確かphp.iniにモジュールを組み込ませる形で利用できたと思います。
0436nobodyさん
2006/05/11(木) 09:50:49ID:???つapc
ttp://www.stackasterisk.jp/tech/php/apc01_01.jsp
使ったことないけど
0437433
2006/05/11(木) 11:24:43ID:???単なるキャッシュ用だけなら>>436のよりももっと新しいのやZend公式のがある。
キャッシュ用&暗号化できる製品があるのも知ってる。
だからソースの件はまあどうにでも出来るんだけど、問題はそれ以外の部分なんだよね。
トラブったときの対処とか。
実際構築を請け負ってる人(または会社)の体験談を聞きたいです。
0438nobodyさん
2006/05/11(木) 11:26:26ID:???436以外にコードを他人に知られないようにする方法きぼんぬ
0439nobodyさん
2006/05/11(木) 11:43:32ID:???0440軟式PHP
2006/05/11(木) 11:43:41ID:???0441823
2006/05/11(木) 18:19:10ID:???hogehoge
ABC;
なら問題ないのですが、
(タブ)$var = <<<ABC
(タブ)hoge
(タブ)ABC;
にするとエラーが出ます。
対策方法はあるでしょうか?
ヒアドキュメント大好き人間なんですが、
上の理由のため、インデントできずソースがかなり見づらくなってしまいます。
0442nobodyさん
2006/05/11(木) 18:27:57ID:???http://jp.php.net/manual/ja/language.types.string.php
非常に重要なことですが、終端 ID がある行には、セミコロン (;) 以外の他の文字が含まれていてはならないことに注意しましょう。
これは、特に ID はインデントしてはならないということ、 セミコロンの前に空白やタブを付けてはいけないことを意味します。
終端 ID の前の最初の文字は、使用するオペレーティングシステムで定義された 改行である必要があることにも注意を要します。
これは、例えば、Macintoshでは \r となります。 最後の区切り文字 (たいていはその後にセミコロンが続きます) の後にもまた、改行を入れる必要があります。
マニュアル読もうね
(タブ)ABC; が×ってこと
0443nobodyさん
2006/05/11(木) 21:38:54ID:???>>437
ソースがばれるのが嫌だってなんでなの?
客の視点から言えば、コンパイルされたりして自由に修正できないのは不便。
せっかく、phpなのに。
どういうシステムだか知らないけど、例えばショッピングカートだとして、
管理画面から自由に項目が編集できるようなシステムだったとしても
それ以外の部分を修正したいときがあるわけよ。
製作を委託した会社がソースコンパイルして保守契約結んだりしてると
ちょっと修正したいだけでも委託せんといけんから面倒なんだよね。
極端な例だけど、「text/html; charset=shift-jis」と文字コード指定が間違ってるせいで
IE以外のブラウザで文字化けする不具合があったときがあって、保守契約結んでる委託した会社に電話して修正しろといったら
「IE以外のブラウザはサポート対象外。IEだと正しくshift_jisと認識されるはず。」と付き返された。
もうはっきりいって腹立つ。
普通企業が下請けに委託するのは社内で作成する技術がないわけじゃなくて、
自社の社員に給料払って作るよりも下請けに任せた方が安いからなわけで、
ちょっとした修正なら、わざわざ保守契約結んだ会社にいちいち電話して説明するよりも
ちょっとソース弄って直した方がはやいんだよね。
わざわざ、ソースから技術盗もうなんてする人そんないないと思うんだけど
あとあと細かなことで文句つけられて修正しろ修正しろ、って言われる方が面倒じゃない?
0444nobodyさん
2006/05/11(木) 21:46:59ID:???ttp://www.stackasterisk.jp/tech/php/php02_02.jsp;jsessionid=au7d2dDCrCMb
を参考にshellでやるように > /dev/null &でバックグラウンドで、かつ、出力を捨てるとあったのですが、もっと詳しくと思ってマニュアルの
http://jp.php.net/manual/ja/function.system.php
をみてみましたが関連する記述はありませんでした…。
> /dev/null &は本当に有効なんでしょか?
0445nobodyさん
2006/05/11(木) 21:53:24ID:???以前試して、有効なサーバと有効でないサーバがあった記憶がある。
(xreaで無理で、自宅サーバでOK)
何の設定が影響してたかはしらん・・・
0446nobodyさん
2006/05/11(木) 21:55:41ID:???>は標準出力をファイルに
/dev/nullを指定するとデータ破棄
&はバックグラウンドで実行
0447nobodyさん
2006/05/11(木) 22:06:30ID:???配列 改行
配列 改行
・
・
・
ファイル内容がこのような内容になっている場合に
「3行目の配列だけ読み込む」ことは可能ですか?
0448nobodyさん
2006/05/11(木) 22:17:58ID:???どこに改行があるのか分からんので最初から読んでいくしかない。
まぁ、一行のサイズが固定されているなら、ファイルポインタを移動させることもできるが。。
>>364を参照。
0449nobodyさん
2006/05/11(木) 22:20:49ID:???0450nobodyさん
2006/05/11(木) 22:25:02ID:???ちゃんとサイトライセンス組んで契約どおりに使ってくれる客ばっかりじゃないよ。
スクリプト売り(但し再販は不可)とか、サイトライセンス作ってどっちにします?
と提示して、安いのが良いから特定サイトにのみに限定したライセンスにしてくれ
と言われて納品したらコピーしまくり、スクリプト転用しまくりのたちの悪い客も結構多い。
それでこっちから苦情を申し入れても平然としたもんだったり...
まあソースごと渡すなら改造可、コピー可のライセンスで
値付けも最初からそういったものにしてりゃ良いんだけどね。
汎用性のないアプリなら問題は少ない。
表示に関してはテンプレ使うだろうから、レイアウトとかの体裁に関して
弄るのはソース隠蔽しても普通は大丈夫だと思うよ。
IE以外云々は、最初から条件に含めなとけって。
0452nobodyさん
2006/05/12(金) 00:36:52ID:???echo require("hoge.html");
とする場合、"を考慮して <FONT size=\"2\"> のようにエスケープしとかなきゃいけない
と思いますが、それのみに適した関数ありますでしょうか?
addslash()でOKでしょうか?
または str_replace()で " を \" に置き換えとかでも問題ないしょうか?
またどの時点でエスケープは必要になるのでしょうか?
こんがらがってきました orz
0454nobodyさん
2006/05/12(金) 05:40:59ID:???お前みたいなバカに安く買い叩かれないように、ソースを隠蔽するんだよ。
修正とかはもちろん保守契約または随時追加費用をもらえばやるよ。
あと>>450も書いてるように、ソースが欲しいならそれなりの値段で渡すけど、
お前(の会社)では出せない金額になると思うがなwwww
0456nobodyさん
2006/05/12(金) 08:56:57ID:???アクセスして時間を取得して実行させるしかないのでしょうか。
■ このスレッドは過去ログ倉庫に格納されています