トップページphp
1001コメント330KB

【PHP】下らねぇ質問はここに書き込みやがれ 65

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/24(日) 21:03:17ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 64
http://pc11.2ch.net/test/read.cgi/php/1202536271/

◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0724nobodyさん2008/03/11(火) 09:16:08ID:???
>>721
ソケット使えるなら
http://www.php.net/manual/ja/function.file-exists.php#78656
0725nobodyさん2008/03/11(火) 11:22:14ID:mDxl1eoa
質問があります。
現在携帯電話向けのHPを作成しています。
そこで「直前のページに戻る」リンクを作成したいのですが、
携帯向けHPのため、JavaScriptが利用できず
<a href="javascript:history.back()">戻る</a>
のようなタグも使用することができません。

phpでプログラムを組む事でこの機能は実現できないものでしょうか?

また、HP内部ではPOSTによるページの再帰呼び出しを複数回行っているため、
「ページ(画面)遷移時に直前ページのアドレスを保持しておく方法」
は使えません。

レンタルサーバを使用しており、環境は
OS:Linux
言語:PHP 4.4.8
となっています。

よろしくお願いします。
0726nobodyさん2008/03/11(火) 11:54:31ID:???
ページの呼び出し元と呼び出し先が違うときだけ
URLを保存するでもダメなの?

あとは、画面遷移の時に直前ページとしたいものは
POSTで一緒に投げるとか。

自動でどうにかなるもんじゃないから
そういう仕組みを作るしかないんじゃないかなぁ。
0727nobodyさん2008/03/11(火) 11:58:28ID:???
これって一行でかけないのだろうか?

$obj = new IO::IO();
$obj->get("./data.text",false);
0728nobodyさん2008/03/11(火) 12:08:52ID:???
>>727
無理
$obj = new IO();
$obj->getHoge()->get();

とかってーのはphp5あたりからできるけど
0729nobodyさん2008/03/11(火) 12:18:23ID:???
>>651
もう解決したかもしれないけど、
setopt で CURLOPT_RETURNTRANSFER か、output_handler で。
0730nobodyさん2008/03/11(火) 12:27:15ID:???
>>725
「※携帯電話の戻るキーで戻ってください」

と書いておく。
0731レビュー ◆cxp7cjXZ1w 2008/03/11(火) 12:28:37ID:???
昨夜までまともに見れたんですが、いきなり日本語が一切でなくなりました。。。

ttp://gameranking.jp/

ページは全てEUC、DBもMySqlなのでEUCで運営してました。
phpAdmin使ってます。

どこに問題があるんでしょうか?
0732nobodyさん2008/03/11(火) 12:34:50ID:???
>>731
レン鯖?
mysqlのバージョンアップとかなんか変更した点ある?
0733nobodyさん2008/03/11(火) 12:39:20ID:???
mysqlは途中のバージョンから言語設定しないと文字化けするようになりましたね

>>728
やはり無理ですか、どもども
0734nobodyさん2008/03/11(火) 12:40:16ID:???
>>732
はい、レン鯖です。xbit。
Mysqlのバージョン変更はしてません。
管理会社からも連絡はありませんでした。

phpAdminから文字コードの変更とかってできるんでしょうか?
0735nobodyさん2008/03/11(火) 12:50:13ID:???
>>734
ドメイン情報引いてxbit.jpに行ってみたけどサポートがあるみたい
だし聞いてみたら?
0736nobodyさん2008/03/11(火) 12:52:37ID:???
>>735
やっぱりそれですかね、、、サポートに連絡しても返事が来なくて、、、もうちょっと待ってみます。
あ、
わざわざ、ありがとうございました
0737nobodyさん2008/03/11(火) 15:23:17ID:???
PHP で、マジックナンバーを使いたくないから、
Java、C++ の enum みたいなことやりたいんだけど、どうしてる?

クラス定数で何とかせいってはなし?
0738nobodyさん2008/03/11(火) 15:26:09ID:???
>>737
うん。あとは定数ファイル作るとかかな?
0739nobodyさん2008/03/11(火) 15:28:56ID:???
定数を定義すべきかもしれんが、どうせコンパイルチェックもしてくれないんで、
このごろは文字列をそのまま使ってる。今のところ困って無い。
07407372008/03/11(火) 15:48:04ID:???
>>738
やっぱそうか。。。
定数ファイルは微妙だな。。。ファイル間の結合度が上がるのが好きじゃない。

>>739
あぁなるほど。
文字列入れておけば、var_dump() とかの値見て混乱することもなさそうだね。
0741nobodyさん2008/03/11(火) 16:03:33ID:???
俺はとりあえずファイルつくって

define('HOGEHOGE', '1');
define('HOGEGEGEGE', '2');

みたいにしてるなぁ。
0742nobodyさん2008/03/11(火) 17:07:29ID:???
SESSIONファイルのパーミッションをデフォで644にしたいのですがそんなオプションはないですか?
現在は生成にchmodでチェンジしてます。
0743nobodyさん2008/03/11(火) 17:11:00ID:???
大文字小文字の判別をしていないのか・・・今頃気付いた

ml("./io");

function ML(){
echo"view";
}
0744nobodyさん2008/03/11(火) 17:14:43ID:???
関数・メソッドは大文字小文字を判別してない
変数はしてる
0745nobodyさん2008/03/11(火) 17:16:21ID:???
>>742
サーバプロセスのumaskを022にすればいいんじゃないの?
0746nobodyさん2008/03/11(火) 17:32:23ID:???
>>745
phpの質問をしているのに、OSの話なんか誰もしてないだろ?
トンチンカンな回答にも程がある。
0747nobodyさん2008/03/11(火) 17:40:07ID:???
http://loglog.jp/~php/man/function.umask.html
0748nobodyさん2008/03/11(火) 17:40:10ID:???
ttp://www.phppro.jp/phpmanual/php/function.umask.html
0749nobodyさん2008/03/11(火) 17:52:28ID:???
>>746
もう少しカルシウム取れ
0750742 2008/03/11(火) 18:51:20ID:???
>>745 >>747 >>748
ありがとうございます。
普通にchmodしたほうが安全そうですね^^;
0751nobodyさん2008/03/11(火) 21:15:28ID:???
データベース作る?
0752nobodyさん2008/03/11(火) 21:17:13ID:???
common.phpにネームスペース名を入れずにpage::commonとして読み込みたいのですが
どうしたら良いのでしょう?

$vi common.php
class common{
}

$vi index.php
namespace page;
require "./common.php";

class page extends common{
function main(){

}
}
0753nobodyさん2008/03/11(火) 23:46:44ID:???
>>752
名前空間は実装はphp6からなので
気にしなくて良いですよ
0754nobodyさん2008/03/11(火) 23:56:43ID:???
結局、phpはJavaの後追いばっか。
エリート技術者が、phpに居ないわけだよ。
0755nobodyさん2008/03/12(水) 00:01:49ID:???
>>754
お前だってエリートじゃねーだろ。
javaだってc++の真似ばっかだろうが。
俺はこれでも東京大学理工学部出身だ。お前の学歴入ってみろ。
07567552008/03/12(水) 00:08:33ID:???
ごめんなさい。ネタです。
0757nobodyさん2008/03/12(水) 00:10:23ID:???
謙虚で泥臭い仕事もしてくれるのがPHPタンの可愛いところ。
0758nobodyさん2008/03/12(水) 00:15:46ID:???
そんなphpは、開発単価も謙虚です。

phpというだけ安く扱き使われている優秀なプログラマーって可哀想
0759nobodyさん2008/03/12(水) 03:10:43ID:MCrGmIFl
if (ereg("^[0-9][0-9]*[0-9]$",$to_name)){

↑これどういう意味ですか?
0760nobodyさん2008/03/12(水) 03:13:12ID:???
>>759
冗長
if (ereg("^[0-9][0-9]*[0-9]$",$to_name)){
を、
if (ereg("^[0-9][0-9]*$",$to_name)){
としても同じ
0761nobodyさん2008/03/12(水) 03:23:48ID:MCrGmIFl
>>760
いじってるスクリプトがあるんですが
これで値が数字の場合はデータベースにその数字がないと
topページにリダイレクトされるようになってると思うのですが(多分)
数字以外だと処理されないので
アルファベットも追加するにはどう書けばよいですか?
漢字とか、たとえばヘブライ語とかハングルとかもあるし全部判別しないといけないんですかね?
自分でも言ってる意味があれですが
0762nobodyさん2008/03/12(水) 03:27:30ID:MCrGmIFl
すみません忘れてください
寝てないので・・
0763nobodyさん2008/03/12(水) 04:00:41ID:???
http://www.ziyu.net/rating.htm
上記のような点数で投票した後、投票結果をレーダーチャートで表示してくれるようなスクリプトを探しているのですが
ご存じの方いらっしゃいませんか?
0764nobodyさん2008/03/12(水) 06:28:40ID:???
連想配列で下記の様に品目、色という構造だった場合に

array{
[0]=>array{ [0]=>banana [1]=>yellow }
[1]=>array{ [0]=>apple [1]=>red }
}

色だけを別の配列に格納したいんだけど、やっぱforeachとかしなきゃだめ?
0765nobodyさん2008/03/12(水) 07:01:21ID:???
ループ使うのがいやなら全部手動でいれろ
0766nobodyさん2008/03/12(水) 07:34:38ID:az5ZSXBa
いきなり$a = $_POST['a'];とかかくとデバッグ画面でエラー出ますが
これを回避するのってどうやって書けばいいんでしたっけ?
if (isset($_POST['a'])) {
$a = $_POST['a'];
}
みたいなかんじだったとおもうのですが、なんか微妙に違うようで
0767nobodyさん2008/03/12(水) 08:19:19ID:???
>>760
2つ以上の数字と1つ以上の数字は同じじゃないぞ、ニート!!!

0768nobodyさん2008/03/12(水) 08:44:29ID:CaFkVlTg
ウィキペディアのエンコードって何か分りますか?
http://ja.wikipedia.org/wiki/%E6%8B%B3%E6%B3%95←ここです
0769nobodyさん2008/03/12(水) 08:48:30ID:???
聞く前に拳法でurlencodeしてみたらどうなんだ
0770nobodyさん2008/03/12(水) 08:52:08ID:???
見るからにutf-8って容易に予想できるだろ
0771nobodyさん2008/03/12(水) 09:02:18ID:???
ああ
0772nobodyさん2008/03/12(水) 09:33:35ID:???
Webプログラム言語を勉強したいのですが、
Java、PHP、Perl、など、いろいろあって違いがわかりません。
スクリプト言語とかの違いはわかるのですが、
”こういうページに向いてる”というようなのがあれば教えてください。
0773nobodyさん2008/03/12(水) 10:08:38ID:???
勉強するのが目的なら、周囲の友人に質問・相談できる言語が良いんじゃないの。
一つ覚えれば、他の言語覚えるのも難しくないし。
まぁ、マイナーな言語持ち出すヤツとは距離置いた方が良いけど。
0774nobodyさん2008/03/12(水) 10:31:46ID:???
一つ覚えれば〜って観点から見ると
perlはおすすめしないな
phpかjavaでいいんじゃねぇの
0775nobodyさん2008/03/12(水) 10:50:46ID:???
>773
マイナーな言語って例えばなに?日本ではpythonか?
0776nobodyさん2008/03/12(水) 11:00:01ID:???
rubyもかな
0777nobodyさん2008/03/12(水) 11:02:41ID:???
>>772
PHPかPerlでいいよ。
実際に作ってレンタルサーバで稼動させるんだろうし、
Javaが動くサーバは高額なので日曜プログラマ向けではない。
というわけで自分が使う環境で動くもので開発すればいい。
結局どういうページ作るにしても作り手次第でよくも悪くもなる。
0778はな2008/03/12(水) 11:05:18ID:DpVFawg8
すいません、教えてください。
ユーザーエージェントで 
「■■以外は http://▲▲に飛ばす」
を記述する際、エラーになってしまいます。
notとかカッコとかがダメなんでしょうか?
よろしくお願いします。


$ua = $_SERVER["HTTP_USER_AGENT"];
if(ereg((not"■■"),$ua)){
header("Location: http://▲▲");
exit;
}

0779nobodyさん2008/03/12(水) 11:06:27ID:???
>>775
python rubyレベルは微妙って感じ。

なんていうか、聞いたことも無いような言語っていっぱいあるでしょ。
Webアプリ組めるか知らんけど、なでしことかHaskellとか。

http://ja.wikipedia.org/wiki/プログラミング言語一覧
0780nobodyさん2008/03/12(水) 11:06:55ID:???
if(!ereg〜
0781nobodyさん2008/03/12(水) 11:14:03ID:???
お前ら脱線しすぎですよ
0782nobodyさん2008/03/12(水) 11:51:48ID:???
このスレは優しい人ばかりで大好きですが
最近はそうでもないです
0783nobodyさん2008/03/12(水) 13:18:34ID:???
>764
元の配列作る段階で
array { "banana" => "yellow", "apple" => "red" };
みたいにしておけばいいのに
0784nobodyさん2008/03/12(水) 13:47:02ID:bPECnjgM
mb_split('[,./-+,./−+、。・  ]', $keyword);

こんな感じでマルチバイトで区切れたよね
なぜか
mbregex compile err: empty range in char class
とかエラーが出るんです。

何か使えない文字入っていますか?
07857842008/03/12(水) 13:50:01ID:bPECnjgM
ああ、普通に入ってた・・・
エスケープしてなかた、ごめんにょ
0786nobodyさん2008/03/12(水) 14:22:22ID:???
>>764
array_mapとかでやればいいんでね
0787778 はな2008/03/12(水) 16:06:22ID:DpVFawg8
すいません。
「ereg」 の逆みたいな書き方はありますか?
0788nobodyさん2008/03/12(水) 16:17:50ID:???
>>787
逆ってマッチしなかったらって事だろ?
>>780で回答あるよ
0789nobodyさん2008/03/12(水) 16:18:50ID:???
>>780が目に入らないのだろうか
!は否定を意味する演算子
eregでマッチするのなら!eregにすればマッチしないという意味になる
基本すよ
0790nobodyさん2008/03/12(水) 16:47:27ID:???
こないだも@の意味を聞いてたヤツいたな。
0791nobodyさん2008/03/12(水) 16:48:53ID:???
>>790
ナルトだよね?
0792nobodyさん2008/03/12(水) 17:01:20ID:???
すいませんちょっとお尋ねしますが、
${sample}
みたいな変数の書き方があるのを初めて知ったのですが、
これは
$sample
とはどう違うのでしょうか??
0793nobodyさん2008/03/12(水) 17:07:28ID:???
結論だけ言うとその2つなら全く同じ.
詳しくはマニュアルのここ読むとよいですよ
http://jp2.php.net/manual/ja/language.types.string.php#language.types.string.parsing.simple
07947922008/03/12(水) 17:17:51ID:???
ありがとうございます!
0795nobodyさん2008/03/12(水) 18:30:32ID:???
xdebug を リクエストごとに(正確には特定の PHP ファイルだけ)
ON/OFF したいときって、CGI モードを使って
dl() を使う以外に、なにか方法ない?

.htaccess か、ini_set() で何とかなるとよさげなんだけどなぁ。。。
0796nobodyさん2008/03/12(水) 19:14:37ID:W7u96JdG
現在割り当てられているドメインを代入するような関数はありますか?

hogehoge.com - 割り当て - public_html(ディレクトリ)

例えば public_html に入っている test.php の内部に記述すると、
hogehoge.com を自動的に判断して、そこに代入される感じです。

現在共通パーツがあるのですが、置換速度が遅くなるほど
画像、文章、タグが入り込んでいて簡略化したいのですが。
0797nobodyさん2008/03/12(水) 19:17:10ID:???
>>796
んん?
つ$_SERVER['HTTP_HOST']
0798nobodyさん2008/03/12(水) 19:33:14ID:30ilS6/S
すいません質問です。
正規表現でURLからホストのみ抜き出したいんですが
URLを抽出するサンプルしか検索にかからなくて困っております。

「ホスト抽出 正規表現 URL php」などで検索かけてみました。

なので自作関数を作ろうと思ってるのですがホスト名というのは

「//(スラッシュ)」が二回出たところから
「/(スラッシュ)」が三回目に出たところまで

を抽出する考えで間違っていないのでしょうか?
よろしくお願いします。
0799nobodyさん2008/03/12(水) 19:38:49ID:???
>>798
url抜き出してparse_url
0800nobodyさん2008/03/12(水) 19:43:06ID:30ilS6/S
>>799
なるほど、このような関数があるのですね。
ありがとうございました。
0801nobodyさん2008/03/12(水) 20:25:03ID:???
>>797
thx!!

サーバ変数なるものがあったのか、、
0802nobodyさん2008/03/12(水) 22:41:25ID:frkhoFZA
phpのクラスの動作について教えて下さい。

クラスをnewしたままプログラムを終了しているのですが、
Javaみたいにオブジェクトを破棄する処理をしないといけないのでしょうか?

メモリーに使わなくなったオブジェクトがどんどん溜まって
メモリーの使用量がどんどん上がってことはありますか?

実は、時間が経過するについてメモリーの使用量が増えていき、
ある一定の使用量になると何もしていないのに勝手にapacheの再起動されます。
原因として考えられるのがこれくらしか思いつきません。

宜しくお願いします。
0803nobodyさん2008/03/12(水) 22:56:45ID:???
ない、放っておいて無問題。
0804nobodyさん2008/03/13(木) 00:08:01ID:r9ewSs4N
SSLでPOSTしたいのですが、
php_openssl.dll を有効にして fsock を使用するのと、
php_curl.dll を有効にして、cURL を使う方法、
どちらの方が良いのでしょうか?
0805nobodyさん2008/03/13(木) 00:13:12ID:???
カレンダー関数をphpizeでビルドすることはできますか?
0806nobodyさん2008/03/13(木) 00:42:40ID:???
>>802
内部では使用していないクラスやオブジェクトを、自動的に破棄してくれる機能はありますが
即時性はなく一定時間キャッシュされてしまいます
ですので、メモリーの節約や行儀的には明示的に開放しないといけません
0807nobodyさん2008/03/13(木) 00:46:28ID:???
複雑な処理でなければそのようなヘマはしないが
作り方次第では永遠に開放されない場合はある
(保持されたままガンガン新しく作り続ける)
0808nobodyさん2008/03/13(木) 01:22:59ID:???
>>802は、そもそもPHPの問題ではない気がするんだが?

> ある一定の使用量になると何もしていないのに勝手にapacheの再起動されます。
apacheが再起動するのか、
PHPがapacheに再起動させられるのか
日本語でおk?

apacheの設定といろんなモジュールとアプリによっては、
プログラムを終了しても、メモリーがどんどん増えるなんて現象
ありえるかもしれんが、普通はないんじゃない?
いろいろ使っていれば、まずそっちを疑うだろうし。

サーバーとかOSとかアプリの仕様とか、情報が足りなすぎ。
あとPHPでもJavaでもクラスをnewしたまま終了しても一般的には問題はない。
パフォーマンスに関係することもあるが、不具合的な現象が起こることはない。
0809nobodyさん2008/03/13(木) 01:29:47ID:???
そもそも PHPの一つのスレッドが長い間動いていると使用メモリが増大するのか、
何度も呼び出して実行していると使用メモリが増大するのかも良くわからん。

前者なら、メモリリークが発生する事があるのは自明。
後者なら環境変えても発生するのか知りたいところ。
0810778 はな2008/03/13(木) 01:51:47ID:???
>780
ありがとうございました!
できました(^^)

>788、>789
すいません、言われて気が付きました!
ありがとうございました!
0811nobodyさん2008/03/13(木) 01:52:09ID:Kk2Hpxcb
>>808
こうゆう奴が平気でメモリリークするプログラム組むんだよな・・・
0812nobodyさん2008/03/13(木) 02:02:56ID:???
>>811
こんにちは。ごみくずさん。
0813nobodyさん2008/03/13(木) 02:11:58ID:???
>>803>>806-809
アドバイス色々とありがとうございます。
オブジェクトについては、プログラマムを終了した時点で、
破棄される又はいつでも破棄されるうる状態に遷移するんですね。

メモリー使用率を監視していると、時間の経過とともに増えていきます。
そして、一定の使用率(20%)を超えた位でapacheが再起動します。
その瞬間メモリー使用率が10%前後になります。そして又増えるのサイクルです。

となると、やはりphpが原因としか考えられない気がします。
セマフォ関係のphpのメモリ関数は使っていません。
OSもFreeBSD6.2Rの安定バージョンを使っています。
また、特定のスクリプトが長時間動いているということはありません。

開発環境はWindowsを使ってやっていますが、
ここでも不具合は出来ます。ある一定の時間がたつとDBへの接続エラー※が発生して、
そのときもapacheを手動で再起動しないとDB関係の処理は全て失敗します。
※接続エラーは、接続は出来るもののTBLからデータが取得できません。apache再起動でTBLへ接続可能です。

あれ、もしかしてもPDOかな?PDOを使い初めて少し立った位からそういう症状になったような。
構成をちょくちょく変えているので、どれが原因が検討が付かないです・・・
0814nobodyさん2008/03/13(木) 02:29:56ID:???
自分は使ったこと無いけど、コネクションプールとかは、メモリリークの原因になりうるかもね。
0815nobodyさん2008/03/13(木) 03:30:37ID:???
PHPでメモリ気にするようなプログラムなんて組まないだろ
0816nobodyさん2008/03/13(木) 04:02:21ID:???
時間の経過でメモリが溢れるPHPプログラムってどんなの?
オブジェクトの扱い方が悪いんじゃない?
0817nobodyさん2008/03/13(木) 11:07:35ID:???
PHPがapache上で動いていて、そのプログラムが”終了”する以上
終了してもメモリリークしたりしたら、PHP言語で書いたコードに
問題があることは無いだろう。使用しているモジュールか
apacheそのものに根本的な問題がある。

その問題を回避する為にPHP言語で書いたコードを修正することは
あるだろうが、あくまで根本的な問題はPHP言語で書いたコードには無い。
0818nobodyさん2008/03/13(木) 11:27:55ID:???
PHPでメモリリーク起こしてシステムダウンなんて聞いたことないな
0819nobodyさん2008/03/13(木) 11:28:34ID:Kk2Hpxcb
PHPで"終了"しないものだってあるだろ。
singleton実現するためにmemcached入れたりとか。キャッシュ系だな。

>>813はDBコネクションが切れてないだけのようだが。
08207952008/03/13(木) 11:29:35ID:???
>>795

・・・誰かレスをくれるとうれしいな。。。
0821nobodyさん2008/03/13(木) 11:43:31ID:???
>>819

>>802を読め。終了する と書いてあるだろ。

たしかに終了させない方法もあるが、
そういうことをしていれば、普通自分で気づくだろ?
0822nobodyさん2008/03/13(木) 11:57:11ID:???
そもそも環境すら書かずにメモリ云々してる時点でアウト、
php.iniのメモリ使用量が少ないんじゃねぇの?
4と5じゃ大違いだし。
0823nobodyさん2008/03/13(木) 12:21:35ID:???
>>820
リモートデバッグonにしてみるとか?
http://bobchin.net/xdebug/docs-settings.html#debugger
■ このスレッドは過去ログ倉庫に格納されています