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

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

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

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

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

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0481nobodyさん2007/10/28(日) 14:21:36ID:g2sP/S0K
mb系とiconv系って
どうやって使い分けたらいいですか?
どっちを使えばいいのか分かりません
0482nobodyさん2007/10/28(日) 14:24:06ID:ih5Shsjs
>>477-480さんレス有難うございます

if(ereg("[(.*)]{10,50}", $abc)) こちらで確認できました。有難うございます!

preg_matchの方でやってみたいと思います。

本当に助かりましたm(_ _"m)ペコリ
親切にありがとうございます!(感謝しています)
0483nobodyさん2007/10/28(日) 15:16:12ID:???
>>482
いやそれ…ホントに機能してる?
確認方法間違ってね?

if(ereg("^.{10,50}$", $abc))
じゃなきゃダメだろ?
0484nobodyさん2007/10/28(日) 15:55:57ID:ih5Shsjs
>>483
確認しましたら50文字以上も記述されるようになってました。

>>483
こちらで教えてもらった方法でしたら
あいうえおなど半角記号英数字以外でも記述されるようになってしまっています・・・。

勉強してきます(汗
0485nobodyさん2007/10/28(日) 15:59:56ID:ih5Shsjs
ごめんなさいできました!
>>483
愛してます!
0486nobodyさん2007/10/28(日) 16:05:29ID:???
きんもーっ☆
0487nobodyさん2007/10/28(日) 16:07:25ID:???
>>472
>>463で出されてるのに見てもないのね。質問者として最悪だよ。
0488nobodyさん2007/10/28(日) 16:10:24ID:???
結局480が言うようなNULL挟んだ文字列でアボーソ
0489nobodyさん2007/10/28(日) 16:48:47ID:???
>>487
たぶんIDみれば世界が変わる気がする
0490nobodyさん2007/10/28(日) 16:54:12ID:???
>>489
どういうこと?
0491nobodyさん2007/10/28(日) 17:19:31ID:???
>>490
同じIDで同じようなこと言ってないか?ってこと

まあ、クラスのハンドルできない俺は答えられないけど
0492nobodyさん2007/10/28(日) 20:03:49ID:???
fopen()を使ってXMLファイルを出力していたのですが
サーバのPHPがSafeModeで動作しておりfopen()が使えません。

CGI版で動かす方法も試そうと思ったのですが、サーバが
モジュール版で動作しているためそれもできませんでした。

良い代替方法はありますか?
0493nobodyさん2007/10/28(日) 21:50:31ID:???
>>492
file_put_contents
0494nobodyさん2007/10/28(日) 21:54:36ID:B6O0ATcQ
PHPでWindows向けアプリを作りたいのですが、
WinBinder+Bamcompilerがついてる開発向けソフトなどまだないのでしょうか?
0495nobodyさん2007/10/28(日) 22:28:46ID:???
>>496
新しい関数があったんですね。助かりました、ありがとうございます。
0496nobodyさん2007/10/28(日) 22:44:24ID:???
>>494
おとなしくCやJavaで作ったほうがいいよ。
0497nobodyさん2007/10/29(月) 01:01:20ID:???
yesかnoでお答えください
0498nobodyさん2007/10/29(月) 01:11:02ID:???
じゃあyesで

何が?
0499nobodyさん2007/10/29(月) 02:16:49ID:/JLEVJSc
1行掲示板みたいなのを初めて作っています。
教えて下さい。

やりたいことは最後に書き込みをした人の時間を取得して表示させたいんです。


$now = gmdate("Y/m/d H:i", time()+9*60*60); が時間を取得しています。

下記のように実行させて表示させたいのですが、どこか参考になるサイトなどないでしょうか?

<?php
$lastmod = date ("Y/m/d H:i:s", getlastmod());
echo "最終更新日: " . date ($lastmod);
?>
0500nobodyさん2007/10/29(月) 02:19:47ID:???
>>499
方法を教えてほしいのか
サイトを教えてほしいのか
どっちかにしろ
0501nobodyさん2007/10/29(月) 02:27:27ID:???
echo "最終更新日: " . $lastmod;
05024992007/10/29(月) 02:29:35ID:???
>>500
方法でしたm(_ _"m)ペコリ

>>501
有難うございます!!
大変助かりました。
0503nobodyさん2007/10/29(月) 03:31:02ID:LZFfsiWa
ローカルにa.phpがありまして、
リモート上にb.php(http://www.example.com/b.php)があります。

ローカルのa.phpからrequire_onceを使ってb.phpを実行するまでは出来たのですが、
b.phpでセットした値をa.phpで使用する方法が分からず悩んでいます。

呼び先のphpから呼び元のphpへデータを返す方法を教えていただけませんでしょうか。
宜しくお願いします。
0504nobodyさん2007/10/29(月) 03:41:39ID:???
>>503
それあんたの言う「リモート」って関係あるか?
require_onceでファイルだけ読込んであんたの言う「ローカル」で実行してるんだろ?
0505nobodyさん2007/10/29(月) 03:44:53ID:???
>>503
あんたのいう「データ」が何なのかわからんけど
普通にGETで渡すとかSESSIONとか使えばいいんじゃね
0506nobodyさん2007/10/29(月) 03:45:56ID:???
つーか外部スクリプトの変数やら定数やらを取得できたら大変なことに。
0507nobodyさん2007/10/29(月) 03:48:54ID:???
HACK天国
0508nobodyさん2007/10/29(月) 03:53:30ID:???
>>503
まず具体的に何をしたいのか、どんなプログラムを作りたいのか言ったほうが早いよ

ある所から値を取り出したいなら、XMLなりシリアライズなりCSVなりファイルをphpで生成したほうがいいんじゃない?
0509nobodyさん2007/10/29(月) 03:55:34ID:???
>>506が指摘してる通りセキュリティ的にそんなことできない。
たとえば配布されているスクリプトを考えて欲しい。
掲示板にせよアップローダにせよ、管理者のパスワードを設定する項目があるだろう。
パスワードが格納される変数は通常変更しないし、ファイル名もそのまま使うだろう。
(もし変更した場合、関連箇所を全て修正しないといけない)
となると、配布されているスクリプトの場合、
パスワードが格納されている変数と、パスワードが記述されているファイル名は、
第三者でも容易にわかってしまうわけだ。
たとえばhttp://example.com/conf.phpがパスワードが記述されているファイル名として、
$passwordにパスワードが格納されているとすると、
ローカルから
require_once("http://example.com/conf.php";);
echo $password;
なんてできたら大変なことになるだろう?ちょっと考えればわかるはずだ。
0510nobodyさん2007/10/29(月) 04:09:41ID:LZFfsiWa
>>504-509
深夜に色々とアドバイス頂きましてどうもありがとうございました。

私のやりたい事は、>>509さんのご指摘の通り、
で、b.php側で
function foo() {
$data = "";
return $data;
}
とやって、ローカル側のa.phpで$dataが取得できたら、と思っていました。

でも、確かに、よく考えればセキュリティー上許されないですね。すみません。

>>508のアドバイス通り、一回ファイルをサーバー側で生成して
それを見に行く方法しかないみたいです。

# 初めファイル経由でデータをサーバーから受け取ろうとしたのですが、
# 一つの変数を受け取るのに一時ファイルを作るに抵抗を感じいました。
# ソケット経由でデータを受け取る方法も考えたですが、それも大げさかなぁ、と思って安易に考えていました。

どうも、ありがとうございました。
05115082007/10/29(月) 04:17:56ID:???
>>510
ちょ、呼び捨て?w

http://jp.php.net/manual/ja/function.include.php
ここ読むとincludeによる読み込みは出来るみたいだぞ

まぁ、値渡したいだけなら>>508とかの方法にしたほうがいいけど
0512nobodyさん2007/10/29(月) 04:20:32ID:???
よぉ>>508、調子はどうだい
0513nobodyさん2007/10/29(月) 04:20:34ID:???
>>508の知識がなめられてるってことだなw
0514nobodyさん2007/10/29(月) 04:21:00ID:???
ありがとう、508。
0515nobodyさん2007/10/29(月) 04:21:35ID:???
短時間で煽られすぎワロタ
0516nobodyさん2007/10/29(月) 04:48:48ID:???
>>508の方法が一般的かもしれないが、
>>505さんの方法をぜひ教えていただきたいですわ

乗り遅れたぜ
0517nobodyさん2007/10/29(月) 04:57:21ID:???
>>516
俺505さんだが、すまん質問内容を間違えてたよ
これからは質問内容しっかりと理解して、最低2日間は考えてからレスするようにするよ
んじゃ、逝ってくるorz
0518nobodyさん2007/10/29(月) 05:15:25ID:pKcinqWT
pearのauthクラスは商用サイトで十分使えますか?
0519nobodyさん2007/10/29(月) 05:17:35ID:???
つかえまsn
0520nobodyさん2007/10/29(月) 05:22:06ID:pKcinqWT
大手は独自の認証コードを書いてるんですかね?
商用でも十分耐えうる認証ライブラリありませんか?
0521nobodyさん2007/10/29(月) 08:28:45ID:???
認証の仕組みなんて結構ワンパターンな気がするが

広く利用されることでより洗練され堅牢になる品
0522nobodyさん2007/10/29(月) 08:30:12ID:???
static変数について質問です。
インスタンスメソッドではなくクラスメソッドからstatic変数を参照するときに、各クラスごとに別の値を参照させることはできますか。
やりたいことは次のようなことです。
class ModelObject {
    static $table = NULL;
    function select() {
        $t = self::$table;
        var_export("select * from $t");
    }
}

class Model1 extends ModelObject {
    static $table = 'table1';
}

Model1::select();
exit(0);  //=> 'select * from ' と表示されるが、'select * from table1' と出てほしい

これができないと、すべてのクラスメソッドをそれぞれのクラスで再定義しなければならず、あまりにもめんどくさいです。
0523nobodyさん2007/10/29(月) 08:52:58ID:???
ありがとうございました
0524nobodyさん2007/10/29(月) 08:53:29ID:pKcinqWT
↑ミス

ありがとうございました
0525nobodyさん2007/10/29(月) 11:27:12ID:???
>>522
class ModelObject {
  static $table = NULL;
  function select($class) {
    $vars = get_class_vars($class);
    var_export("select * from ".$vars['table']);
  }
}

class Model1 extends ModelObject {
  static $table = 'table1';
}

Model1::select('Model1');
0526nobodyさん2007/10/29(月) 12:34:56ID:???
モデルは唯一だから、staticでやりたいんだろうけど、
インスタンス化しちゃえばいけるかも
newじゃなくって、singletonにすればなおいいかも

0527nobodyさん2007/10/29(月) 13:54:47ID:???
しょうもないことですが、教えてください。

今までPHPでプログラム作ってて、PHPの構文を入れる際には
<?php
 〜〜
?>
で囲っていました。

今回フレームワークというのが面白そうだと思って勉強してみようと思い
Zend Framework入門っていう本を買いました。
ttp://www.zend.co.jp/products/book/book_zf.php

プログラムのサンプルを見て気が付いたのですが、どれもこれも
<?php
 〜〜
で終わっており、「?>」で閉じてないんですよ。

実際にZend Frameworkをインストールしたディレクトリにあるphpファイルを
参照してみましたが、これらも同様に「?>」で閉じられていませんでした。

これってどういうことなんでしょうか?
「?>」を省くことができるってことなんでしょうか?
0528nobodyさん2007/10/29(月) 13:58:51ID:???
>>527
それって人に聞かなきゃ分からない話か?
それとも何でも人に聞かなきゃ物事を進めれない人?
「一年間トイレに行ってないのですがやはりトイレは行ったほうがいいでしょうか?」
こんなこととか聞く人かな?
0529nobodyさん2007/10/29(月) 13:59:28ID:???
>>527
あ。本の宣伝だったのね・・・・
0530nobodyさん2007/10/29(月) 14:06:22ID:???
>>529
宣伝じゃないよ!

>>528
どうして「?>」で閉じてないけど、どうしてこれでいいのか分からなかったんです。
私が知っているPHPは「?>」で閉じるものだ、って理解していましたが
こういう本を読んでみたら?>で閉じてないからどうしてかなと思ってですね。

トイレでもなんでも聞きますんで、教えてください。
0531nobodyさん2007/10/29(月) 14:18:29ID:???
>>530
省けるか省けないか
<? phpinfo();
としてみれば分かるだろう。
それともここの人にそれをやって俺様に報告しろってことか?
0532nobodyさん2007/10/29(月) 14:19:41ID:???
たまに著者もここみて宣伝にくるから気をつけろよ初心者ども
売れない本=わかりずらい本
0533nobodyさん2007/10/29(月) 14:27:21ID:???
わかりずらい(←何故か変換できない)
0534nobodyさん2007/10/29(月) 14:28:44ID:???
>>531
そうでしたね。
すいませんです。
ありがとうございました。

>>532
まじで宣伝じゃないって!

でも?>を省くなんて、入門本としてはイクナイと思う。
普通は<?php 〜 ?>って書くもんね。
0535nobodyさん2007/10/29(月) 14:29:00ID:???
googleで PHP 閉じない
で検索するだけで、大量の情報を得られるだろ
んなことを、しれっと質問するから宣伝乙
っていわれるんだバカやロー
0536nobodyさん2007/10/29(月) 14:34:36ID:???
なんか盛り上がってる奴がいるなあ
0537nobodyさん2007/10/29(月) 14:37:11ID:???
>>530
PHPってのはもともとHTMLがあって
その一部にPHPコードを埋め込むというもの。

つまり、
<html>
<?php 〜〜〜 ?>
</html>

とあったとき<?php 〜〜〜 ?>の外側の<html>、</html>が”出力”される。

もし<?php 〜〜〜 ?>の外側にスペース・改行があったとしたら・・・。
<?php の前にスペース・改行があったらすぐに気づくが、
?>の後にスペース・改行があっても気づかないもの。

その場合に余計な空白が出力されてしまうことになる。
これが問題ない場合もあるが、出力された文字をデータとして扱う場合に
問題が出ることもある。そのため?>を省いており、
また、省くことができる仕様になっている。
0538nobodyさん2007/10/29(月) 14:38:19ID:???
>>535
いや、その検索ワードはちょっと思いつかないよ。
タネを知ってたら思いつくだろうけど。

あと、スレタイが「くだらない質問〜」って書いてあるからいいかなと思ったんだけど。

それにしても?>を意図的に書かないって言うテクがあったんですね。
知らなかったヨ。

ってことは、あの本は良い本ってことで。
(宣伝じゃないよ)
0539nobodyさん2007/10/29(月) 14:38:32ID:???
PI閉じタグ直後の改行は削除される仕様です
0540nobodyさん2007/10/29(月) 14:40:32ID:???
>>537
詳細サンクスです。
今回の件はとても勉強になりました。
スレ汚しすいませんでした。
0541nobodyさん2007/10/29(月) 14:41:07ID:???
すまん。俺も悪かった。
0542nobodyさん2007/10/29(月) 14:44:37ID:z+kol6j9
call_user_func_array()とcall_user_func()の違いがわかりません。
マニュアル見ても同じような気がするんですが、違うものなんでしょうか?
0543nobodyさん2007/10/29(月) 14:46:43ID:???
>>542
引数の数が不明だった場合に_arrayを使う
0544nobodyさん2007/10/29(月) 14:58:17ID:/8Ez3TkO
PEARって自動的にエスケープしてくれるもんだと思ってたorz
autoExecuteのみ必要に応じてエスケープしてくれるのか・・・
普通にSELECTするときは自分でエスケープしないといけないんですね
0545nobodyさん2007/10/29(月) 15:11:43ID:???
データベース使うなら、PEARなんか使わずに
素直にフレームワーク使ったほうが良い
0546nobodyさん2007/10/29(月) 16:26:46ID:???
>>540
zendのコーディング規約に書いてあるよ
0547nobodyさん2007/10/29(月) 16:43:06ID:ugb+n0gS
内部エンコードはinternal_encodingですが
表示用エンコードは何ですか?
変数名で迷ってます
0548nobodyさん2007/10/29(月) 16:51:06ID:???
not_internal_encoding
0549nobodyさん2007/10/29(月) 17:04:51ID:???
特定ディレクトリの中のファイル全てを削除する方法を教えて下さい。
05503162007/10/29(月) 17:19:32ID:???
PHPが表示されないのは、以下が原因だったようです。
×<? phpinfo(); ?>
○<?php phpinfo(); ?>
ttp://blog.codezine.jp/editor/2007/05/phpinfo.php
PHPのどこかのバージョンからか、変更になったようです。
0551nobodyさん2007/10/29(月) 17:21:27ID:???
>>549
ここはプログラムを組む人用のスレなので、丸投げなら他へどうぞ
05526282007/10/29(月) 17:42:19ID:???
php からMYSQLを操作しますが
updateクエリーを実行結果を取得するのって
mysql_fetch_arrayとかmysql_data_seekとかで取得できないんですけど
取得できる関数ってありますか?
updateしてからselectクエリーを実行して結果を取得しないといけないんですか?
教えてください偉い人
05535522007/10/29(月) 17:44:42ID:???
補足
updateしたレコードを取得したいんです
0554nobodyさん2007/10/29(月) 17:46:29ID:???
>>552
>SELECT, SHOW, DESCRIBE や EXPLAIN 文、その他結果セットを返す文では、 mysql_query() は成功した場合に resource を返します。
0555nobodyさん2007/10/29(月) 17:47:27ID:???
>>553
mysql上で送るクエリーが分かってれば、それを送るだけだよ。
0556nobodyさん2007/10/29(月) 17:50:21ID:???
>>316
そ、それは、ショートタグ可否のデフォルト設定の違い
なだけでは?
05575522007/10/29(月) 17:50:49ID:???
>>555
レコードをupdateでクエリーを送ってから、selectでクエリーを送って結果を取得するので?
あたま悪くてスマソ
0558nobodyさん2007/10/29(月) 17:56:01ID:0Yij708s
>>557
それでOK
05595522007/10/29(月) 17:56:47ID:???
なるへそ
面倒だな
ありがとうございます
0560nobodyさん2007/10/29(月) 18:07:13ID:???
>>559
面倒だと思ったところは関数作って使いまわしできるようにするといいよ
0561nobodyさん2007/10/29(月) 18:52:59ID:???
updateで返ってくる値なんて行数だけだろ。何言ってんだか。
0562nobodyさん2007/10/29(月) 20:10:23ID:???
sqlite3で作ったデータベースなんですが、
<?php
$db = sqlite_open('zip.db');
?>
を実行すると
sqlite_open(): file is encrypted or is not a database
と出て実行できません。
どうすれば回避できるでしょうか?
0563nobodyさん2007/10/29(月) 20:33:39ID:???
書かれている通りです
0564nobodyさん2007/10/29(月) 21:18:50ID:???
精子表現について質問させてください。
精子を精製してチンコに返してやりたいのですが、
たまに不純物が混じるので精子のチェックをしたいです。
どのように書いたらいいでしょうか?
0565nobodyさん2007/10/29(月) 21:33:30ID:???
↓ってどう?
ttp://www.hkvstore.com/phpmaker/
0566nobodyさん2007/10/29(月) 21:58:04ID:???
使ったこと無いけど$99の割にはしょぼい気が・・・Cakeでよくね?
0567nobodyさん2007/10/29(月) 22:07:03ID:???
オープンソースのFW使えって話だな
05685222007/10/29(月) 22:32:40ID:???
>>525
ありがとうございます。

> Model1::select('Model1');

これがちょっといけてないので、Model1::select(); と書ける魔法なんかないでしょうか。
0569nobodyさん2007/10/29(月) 22:55:24ID:???
FWは自分で書くものだよ。ウシシ
0570nobodyさん2007/10/29(月) 22:58:17ID:htv8blfh
>>563
>書かれている通りです
書かれている通りとは?
0571nobodyさん2007/10/29(月) 23:24:01ID:???
>>568
よく出る話題だがbacktrace()からコールしたクラス名得て>>525的にやるくらいしかない

サブクラスでselect()を再定義して、テーブル名を指定してparent::select("table name") のように
すれば表記上は Model1::select() と出来るけど、、、

やはりテーブル名をクラスメンバとして ModelObject に結び付けてるのがおかしいのでは、、、
サブクラスで再定義したいのに、親クラス固有のメンバを参照するような設計になってて矛盾がある
0572nobodyさん2007/10/29(月) 23:37:42ID:???
その辺PHPは練りこまれてないからな。
へたにstaticとか使うとOOとしてはアレ?ということになりがち。
0573nobodyさん2007/10/30(火) 00:18:14ID:+WynKem6
500KB〜1MBぐらいのテキストファイルを100KBぐらいに分割して
表示したいんですが、どうすればよいでしょうか?
0574nobodyさん2007/10/30(火) 00:27:23ID:???
fseek()
0575nobodyさん2007/10/30(火) 00:52:13ID:???
だからオブジェクトにしてsingletonにしてだな
0576nobodyさん2007/10/30(火) 01:10:13ID:???
じーさんそれはさっきも聞いたよ
0577nobodyさん2007/10/30(火) 01:11:48ID:???
夕飯はまだかのー
0578nobodyさん2007/10/30(火) 01:38:57ID:???
おじいちゃん、それはマウスでしょ!
05795222007/10/30(火) 01:40:24ID:???
>>571
>やはりテーブル名をクラスメンバとして ModelObject に結び付けてるのがおかしいのでは、、、
>サブクラスで再定義したいのに、親クラス固有のメンバを参照するような設計になってて矛盾がある

そうなんですかね。RubyやPythonではこれがふつうの設計方法なんですよ。
Model1::select()を呼び出したときに、ModelObject::select()が実行されるのはPHPでも一緒なんですけど
PythonやRubyではちゃんとModel1のクラス変数(またはクラスインスタンス変数)が参照できるんですよ。
おんなじようにPHPでもできるだろうと思ってたんですが、スマートにはいかなそうなので、なんか違う方法考えます。
0580nobodyさん2007/10/30(火) 01:49:18ID:???
>>579
取得する部分をメンバじゃなくメソッドにしちゃえば?
と適当に言ってみる
0581nobodyさん2007/10/30(火) 01:50:20ID:???
>>579
それは知ってるが、普通の実装じゃないよ
クラスメンバの原義を考えれば当然
■ このスレッドは過去ログ倉庫に格納されています