【PHP】下らねぇ質問はID出して書き込みやがれ 82
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/03/09(月) 02:14:28ID:HyrthkeE過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0639nobodyさん
2009/03/26(木) 00:25:15ID:l1PHOXdz何かスマートな方法はありますでしょうか?
(例)
1.0以上1.5未満 => 1.0
1.5以上2.0未満 => 1.5
2.0以上2.5未満 => 2.0
よろしくお願いします。
0642nobodyさん
2009/03/26(木) 00:39:59ID:???安全にこしたことはないですが、今回は実体参照を頃されてしまうのが問題なので・・
それにしても、エンコードを意識せず、単に置換したらいいだけなんですか?
だとしたら、htmlspecialcharsのエンコード指定は何に使われているんだろう
0644nobodyさん
2009/03/26(木) 01:05:32ID:fG8U3yBv$where_ary = array("id"=>"1","name"=>"あああ");
foreach($where_ary as $key=>$value){
$array[] = $key."='".$value."'";
}
$where = join("&",$array);
と言うように連想配列を使って生成しています。
上記のようにすると、変数に値が入っている場合は大丈夫なのですが、
MySQLの関数(NOWやDATE_FORMATなど)を使いたい時、使えません。
かといって値の部分に関数を記述しても文字列となります。
もっと効率よく生成するには、どのようにすれば良いのでしょうか?
0646nobodyさん
2009/03/26(木) 01:23:03ID:???Zend_Dbの実装はこんな感じ
http://framework.zend.com/manual/ja/zend.db.html#zend.db.adapter.quoting
0647nobodyさん
2009/03/26(木) 01:52:56ID:???0648644
2009/03/26(木) 02:06:29ID:???これは非常に参考になります。
実際に自分もSQL文の生成にはクラスを使っているので
Zend Dbを参考に、独自の仕様にしてみます。
0649nobodyさん
2009/03/26(木) 11:39:12ID:p1YkL4wyある程度インラインで入力してからまとめて実行したいのですが、
どうすればできますか?
0651nobodyさん
2009/03/26(木) 18:55:54ID:JIscrcVE0653nobodyさん
2009/03/26(木) 19:02:58ID:???それか、そのファイルに対する最終アクセス時刻を記録しておいて、
「前回のアクセスは3日前だな、、、
だったらよし、今回は3日分の処理を一気にやればいいんだな」
とかってプログラムで判断させて、アクセスするたびに
その処理を実行するとか。
もちろん、この場合、アクセスがなければ処理も実行されない。
0654nobodyさん
2009/03/26(木) 19:03:41ID:???それがUNIXのcronと同じ。
0655nobodyさん
2009/03/26(木) 19:08:12ID:???こういうこと?
ttp://phpspot.org/blog/archives/2005/11/croncronphp_pse.html
0656nobodyさん
2009/03/26(木) 19:31:31ID:???web cron
0657nobodyさん
2009/03/26(木) 20:06:05ID:???0658nobodyさん
2009/03/26(木) 20:59:43ID:JIscrcVE0659nobodyさん
2009/03/26(木) 21:05:33ID:???STDINを使えという話ではなくて?
http://jp.php.net/manual/ja/features.commandline.php
0660nobodyさん
2009/03/26(木) 21:23:14ID:ih4lRG32どうにもうまくヒットさせることができません
/** */ */
の時に長い方がマッチされてしまいます
どう書けばいいですか?
0661nobodyさん
2009/03/26(木) 21:32:53ID:???0663nobodyさん
2009/03/26(木) 23:16:05ID:46RAjvuH0664nobodyさん
2009/03/26(木) 23:23:56ID:???0665nobodyさん
2009/03/27(金) 07:08:11ID:viybN2w6ディレクトリを再帰的にさらってクラスをリストアップする機能が欲しいのですが
どうしたらいいですか?
PEARのPHP Parserを使ってみたのですが
エラーが出まくって使い物になりませんでした
0666nobodyさん
2009/03/27(金) 08:05:52ID:???既に検討したとは思うが、クラス名を取得する程度なら、Tokenizerで処理しても、
大した手間でもなんじゃないの。
http://jp.php.net/manual/ja/book.tokenizer.php
0667nobodyさん
2009/03/27(金) 09:19:56ID:DtOzsPN+移動先に同名のファイルがある場合に上書きさせたいのですが
一度unlinkしてからrenameしないと駄目なのでしょうか?
0668nobodyさん
2009/03/27(金) 09:23:54ID:???0670nobodyさん
2009/03/27(金) 15:35:49ID:LbT/oMC/モデル部分にデータベース関係の処理(selectやdelete)を全てまとめてますが
フォームの項目チェックなどのバリデーション関係は
モデルではなくコントローラーに記述するべきですかね?
0671nobodyさん
2009/03/28(土) 00:29:13ID:???MとCならばC。Cからバリデーション専用クラスを呼び出せ。
ただし、Cにベタ書きで実装するのはオススメできない。Visitorパターンで実装するのが割と良く見る形。
バリデートはほぼ全てのフレームワークに存在する機能なので、おとなしくフレームワークのマニュアルを読んで構成をパクったほうが速いけどな。
0672nobodyさん
2009/03/28(土) 00:34:00ID:???0673nobodyさん
2009/03/28(土) 02:42:46ID:???バリデーションがCはありえない
0674nobodyさん
2009/03/28(土) 06:25:24ID:xuBHT5omそういう書き方ありますか?
{new Hoge()}->method()
みたいなイメージです
0675nobodyさん
2009/03/28(土) 06:46:27ID:???http://74street.ddo.jp/index.php?PHP%2Ftips%2Fphp003
これかな?
ちなみに、インスタンス化せずメソッドを使う場合、宣言時にメソッドに「static」を付け、「クラス名::メソッド名」で呼び出す。。
class SampleClass {
public static function func($a,$b){
return $a + $b;
}
}
$ans = SampleClass::func(1,2);
0678nobodyさん
2009/03/28(土) 08:56:18ID:???0679nobodyさん
2009/03/28(土) 08:58:31ID:???>>674は何でそんなことしたいんかナゾだけど。目的も書くべきだろ。
ただの興味ということなら、それはそれで良いけど。
0680nobodyさん
2009/03/28(土) 11:44:19ID:???0681nobodyさん
2009/03/28(土) 12:52:45ID:0oeFWAvW$a = 2;
$b = $a * 2;
echo $b;
$a = 4;
echo $b;
期待する結果は48ですが実際は44になります。($bには2行目の結果が入ったままってことでしょう)
2行目を$b = &$a * 2;のようにすると24になります。(*2は無視?)
期待する結果を表示するにはどのように記述すればいいのでしょうか。
PHP5.2.6
0682nobodyさん
2009/03/28(土) 14:13:07ID:???言いたい事は理解できた
$b は常に $aに入れた値を2倍にする変数にしたいという事だな
2行目の $b = $a * 2 は $bに$aの値を2倍した値を入れるという命令だ
だから2行目では$bで$a(2)*2で4が入って3行目で4が出力、
4行目で$aに4を代入しているが5行目では$bは変化無しの4が表示されるから44となる
そして $b =& $a * 2 は変数の参照という事になって $b に入れた値は $a にも反映されるという事だ
2行目で変数&bは$aを参照しているとしているから3行目で2が表示されて
4行目で$aに4を入れているが$aと$bは参照の関係にあるから$bは4となり24となる
変数でそんな事が出来るか記憶を辿ってみたが…出てこない
件を解決する簡単な方法は関数を作ることだと思うんだが?
0683nobodyさん
2009/03/28(土) 14:21:32ID:???掛け算の結果にまで参照変数を反映させるのは無理。もう一回掛け算するしかない
$a = 2;
$b = $a * 2;
echo $b;
$a = 4;
$b = $a * 2;
echo $b;
0684nobodyさん
2009/03/28(土) 14:30:41ID:jCCBzDpKデフォルトでは縦軸にラベル(目盛?10、20、30...など)が表示されるのですが、
これを表示しないようにするにはどうすればよいのでしょうか?
公式のドキュメントを読んだのですが、わかりませんでした。
どなたか分かる方がいましたら、よろしくお願いします。
0685681
2009/03/28(土) 15:12:28ID:0oeFWAvWありがとうございます。
変数のみでは求めることは無理なんですね。関数で処理することにします。
0686nobodyさん
2009/03/28(土) 15:25:27ID:???関数をその場で組み立てるイメージだな。普通に関数を使う場合と違い、「2」の部分を$bの生成時に動的に組み込める。
JavaScriptやRubyでは可能、JavaやPHPでは不可能。PHPでは次のバージョンには盛り込まれる見込み。
これもまあ、関数を作っているわけだけど。
クラスを使ったりグローバル変数を使ったりしていいなら、今のPHPでも同じ処理は一応可能。
0687nobodyさん
2009/03/28(土) 16:48:33ID:y1nm6eda$_POSTを直接チェックするのは何か問題がありますか?
例
if(!isset($_POST["name"])){
echo "未記入です";
}
それか全て一旦POSTを変数に代入してチェックした方がいいですかね?
0688nobodyさん
2009/03/28(土) 17:15:52ID:???0690nobodyさん
2009/03/28(土) 19:01:42ID:???【ショタ】3次専ショタスレ 12【女装・美少年】 [Download]
このスレに変態がいる!!
0691nobodyさん
2009/03/28(土) 19:31:18ID:???公式のドキュメントじゃなくて
phpspotのアフィドキュメントが上位に来るのがむかつくんだけど
どうしたらいい?
googleで除外urlを指定できたらいいんだけど
0694nobodyさん
2009/03/28(土) 22:48:03ID:???0695nobodyさん
2009/03/28(土) 22:52:21ID:???0696nobodyさん
2009/03/28(土) 23:16:06ID:???0697nobodyさん
2009/03/28(土) 23:27:52ID:???なんか都合があるんか知らんが。
0698nobodyさん
2009/03/29(日) 05:04:23ID:???0699nobodyさん
2009/03/29(日) 06:25:15ID:???0700nobodyさん
2009/03/29(日) 09:35:20ID:???0701nobodyさん
2009/03/29(日) 13:21:29ID:EDw1f4T+という定数があったとして、TESTの中身が「/home/test/public_html」だとします。
通常は、定数指定して
include_once(TEST.'/test.php');
としてディレクトリ指定代わりに出来ますが、
定数の中身で表示する事って出来ませんでしょうか?上の例で言うと
include_once('/home/test/public_html」'.'/test.php');
と言うように書き出せればと思っています。
0702nobodyさん
2009/03/29(日) 13:28:04ID:???0703701
2009/03/29(日) 13:29:17ID:???fopenでファイル作成する時に、その出力側のファイル上に
include_once('/home/test/public_html'.'/test.php');
という形で記述されて欲しいのです。
0704nobodyさん
2009/03/29(日) 13:31:15ID:???fopenでtest.phpを作成するってこと?
0705nobodyさん
2009/03/29(日) 19:34:50ID:???PHPスクリプトをファイルとして開く理由がわからんが
0706nobodyさん
2009/03/29(日) 20:07:08ID:g6t/L+Oeこのサイトいくらぐらい掛かってると思いますか?
0707nobodyさん
2009/03/29(日) 20:07:18ID:A+4tAAtu以下のようにすると出ません。
これは何故ですか?
error_reporting(E_ALL | E_STRICT);
class Hoge {
protected $_value = array();
public function & getEntity($key){
return $_value[$key];
}
}
$hoge = new Hoge();
var_dump($hoge->getEntity('no_key'));
0708nobodyさん
2009/03/29(日) 20:08:51ID:???でした
結果は同じですが
0709nobodyさん
2009/03/29(日) 20:18:24ID:???0710nobodyさん
2009/03/29(日) 20:20:00ID:???0711nobodyさん
2009/03/29(日) 20:23:38ID:???0712nobodyさん
2009/03/29(日) 20:34:22ID:???0715nobodyさん
2009/03/29(日) 23:05:06ID:lmZMeLkn【PHPのバージョン】php5.16
【連携ソフトウェア】mysql
【質問内容】
print'<tr>';
while ($row = mysql_fetch_object($res)){
print'<td>'."$row->NAME".'</td>';
}
MySQL から 特定のフィールドを取得し,HTML のテーブルに5列ずつ表示しようとしております。
5列毎にprint'</tr>';を挿入して
テーブルの行数をかえたいのですが,どのようにすればよろしいでしょうか?
【求める結果】MySQL テーブルのの行数が8行の場合
<tr>
<td>NAME1</td>
<td>NAME2</td>
<td>NAME3</td>
<td>NAME4</td>
<td>NAME5</td>
</tr><td>
<td>NAME6</td>
<td>NAME7</td>
<td>NAME8</td>
</tr>
お手数ですがよろしくお願いします。
0716nobodyさん
2009/03/29(日) 23:19:48ID:???0718nobodyさん
2009/03/29(日) 23:22:53ID:???$i = 1;
while ($row = mysql_fetch_object($res)){
print'<td>'."$row->NAME".'</td>';
if($i == 5){
print'</tr>';
$i = 1;
}else{
++$i;
}
}
0719nobodyさん
2009/03/29(日) 23:28:38ID:???HTMLマークアップが不正な件。
8個の場合、2行目3列目までで終わるが、余った2セルはどう埋めるんだ?
>718
<tr>がない。
0720715
2009/03/29(日) 23:39:03ID:lmZMeLkn>>718 を参考にして,
$i = 1;
while ($row = mysql_fetch_object($res )){
if($i == 1){
print'<tr>';
}
print'<td>'."$row->NAME".'</td>';
if($i == 5){
print'</tr>';
$i = 1;
}else{
++$i;
}
}
としてみました。
>>719 の件については,とりあえず暫定的に MySQL 内の行数を5の倍数にしておきます。
皆様ありがとうございました。
0721nobodyさん
2009/03/30(月) 05:37:45ID:Sq1DK82Pそのうえで、xmlWriter()をつかって「EUC-JP」で
XMLを書き出したいのですがどうしたらよいのでしょうか?
単にstartDocumentでEUC-JPを指定するだけでエンコードを変更できるのでしょうか?
Firefoxでは表示され、safariだとエラーになってしまいます。
$writer = new xmlWriter();
$writer->openMemory();
$writer->startDocument('1.0', 'EUC-JP');
$writer->startElement('root');
(略)
$writer->endElement();
$writer->endDocument();
return simplexml_load_string($writer->outputMemory(TRUE));
ちなみに各Directiveの値もメモしておきます。
mbstring.http_input auto
mbstring.http_output pass
mbstring.internal_encoding UTF-8
mbstring.script_encoding no value
※もうひとつのスレッドでは答えがわからずじまいで、
どうしたらよいかヒントだけでもつかめたらと思います。
どうぞお願いいたします。
0722nobodyさん
2009/03/30(月) 08:22:50ID:???0723nobodyさん
2009/03/30(月) 12:12:19ID:ObvykTshhttp://www.gen-x-design.com/projects/php-thumbnailer-class/
このサイトのthumbnail.inc.phpを使って画像をリサイズしてサムネイルを生成したのですが
いまいち仕組みがわからずにいます。
リサイズされた画像はどこかに保存されているんでしょうか?
0724nobodyさん
2009/03/30(月) 12:16:26ID:???0725nobodyさん
2009/03/30(月) 12:28:05ID:ObvykTsh実際にサイトにアップして表示させてみました。
そしたらリサイズされた画像が表示されたんですが
サイトのどこをみても画像が増えた形跡がありません。
リサイズした画像を別に保存するわけではないのですか?
0726nobodyさん
2009/03/30(月) 12:41:43ID:???0727nobodyさん
2009/03/30(月) 12:49:44ID:ObvykTsh画像のアドレスをみても
show_image.php?filename=sample.jpg&width=250&height=250
と書いてあるだけなんです
0728nobodyさん
2009/03/30(月) 13:07:26ID:???0729nobodyさん
2009/03/30(月) 13:09:40ID:???$thumb->save('path/to/file.jpg',80);
0730nobodyさん
2009/03/30(月) 13:13:48ID:ObvykTshそれをしないとただ大きい画像を縮小してるだけで意味ないんでしょうか?
0731nobodyさん
2009/03/30(月) 13:26:05ID:???0732nobodyさん
2009/03/30(月) 13:53:38ID:???サイズも容量も小さくして表示ができるってことでいいのでしょうか。
サムネイル画像の保存をせずに
0733nobodyさん
2009/03/30(月) 14:28:36ID:Nai97eUHデータベースを用いてアプリケーションを作る際
例えば該当するIDを選んでupdate、deleteする時に、
該当するIDがある時は正しく削除され、削除されました。
とメッセージを返すんですが何らかの形で該当しないIDが
投げ込まれた時は一般的にはどのような処理をされていますか?
まず該当するIDがあるかselectで調べて、ある場合はupdateもしくは
deleteで処理みたいな形ですかね?
アドバイスよろしくお願いします。
0734nobodyさん
2009/03/30(月) 14:50:52ID:???0735nobodyさん
2009/03/30(月) 15:01:56ID:???http://jp.php.net/manual/ja/pdostatement.rowcount.php
とか類似関数で。
0736733
2009/03/30(月) 15:12:04ID:???返信ありがとうございます。
これまでなんとなくしか理解できてなかったのですが
今スッキリしました。
本当にありがとうございました。
0737nobodyさん
2009/03/30(月) 18:45:52ID:Gjy/ZAJ6【PHPのバージョン】5.2.6-2ubuntu4.1
【連携ソフトウェア】Apache/2.2.9
【質問内容】
PHPをさわり初めて一日目の初心者です。
header ( "HTTP/1.0 404 Not Found" , true , 404 );で、.htaccessで指定した404エラーページを
表示させたいのですが、ブランクページになって表示されません。
確かに404エラーページはファイル自体が存在していない場合のみ表示されますので、Location:で
存在しないファイルにリダイレクトさせて見たところ、見事404エラーページが表示されました。
しかし、この方法はアドレスが変更されてしまうので、できればそのPHPのアドレスで、404エラー
を表示させたいのですが、何か方法はございませんでしょうか。
よろしくお願いします。
0738nobodyさん
2009/03/30(月) 23:26:09ID:???readfileでエラーページの内容をそのまま流しちゃダメなの?
http://jp.php.net/manual/ja/function.readfile.php
■ このスレッドは過去ログ倉庫に格納されています