【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を表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0622nobodyさん
2009/03/25(水) 11:16:26ID:yQlt60AAそれとも実行のたびに毎回prepareステートメントを発行するから意味無いんでしょうか
0623nobodyさん
2009/03/25(水) 11:18:39ID:???0624nobodyさん
2009/03/25(水) 15:06:05ID:Ijn9qBqlでhtmlエスケープしていたのですが、
アンパサンドがエスケープされるので、
数値実体参照が「&#〜;」という文字列として表示される
ということが分かりました。
数値実体参照の場合は生で表示するにはどうしたらいいですか?
0625nobodyさん
2009/03/25(水) 15:15:24ID:???0626nobodyさん
2009/03/25(水) 16:45:47ID:???一度submitで送信した後、更新ボタンを押すと
再度送信するようなアラートが出ますが、
これを出さないようにする方法はないでしょうか?
header関数で送信元のページにリダイレクトして戻す方法以外で教えて下さい。
0627626
2009/03/25(水) 16:47:05ID:7ip+uIiL0629nobodyさん
2009/03/25(水) 19:52:08ID:Ut4OfJaEシステムのプロパティで見ると3.25GB認識してるのですが
PHPでどんなに重い処理をしてもタスクマネージャで見ると700MB位しか使っていません。
PHPのメモリリミットは-1の無制限にしてるのに何で?
もっとメモリ使ってくれたら速くなりそうなんだが。
スペックはアパッチ、PHP5
0631nobodyさん
2009/03/25(水) 20:38:00ID:???0632nobodyさん
2009/03/25(水) 20:47:09ID:???「リロード対策」というキーワードでググると
情報が出てくる。
だが、自分には複雑すぎて理解できなかったが。
0633nobodyさん
2009/03/25(水) 21:30:14ID:POBIuYeehttp://kokusan.syokuryo.jp/blog_parts.html
このblogパーツですが中身のjs↓
http://kokusan.syokuryo.jp/blogparts/kokusanParts.js
を機能丸ごと再現してみたいのですが(用途は勉強、兼遊びで)
再現するのに
■サーバサイドの技術は何が必要か
■ローカル側は.jsだからとりあえずはコピペで十分?
という所で(入口ですが)詰まってます。
どなたかご助言plz
0634nobodyさん
2009/03/25(水) 21:32:29ID:???0635nobodyさん
2009/03/25(水) 21:50:38ID:???画像データをメモリ上に読み込んだりしない限り
そんな使うことはないだろ
重い処理なんていってもPHPの場合たかがしれてる
0636nobodyさん
2009/03/25(水) 23:08:42ID:???そうですね
そもそも&までエスケープする仕様はやりすぎのような・・
2chでも&はエスケープしてないし。googleも。
0638nobodyさん
2009/03/26(木) 00:04:21ID:???気に食わないなら文句言ってないで自分で実装すりゃいいじゃん。
単純に置換するだけだから、str_replace一発でできるぞ。
俺はやりすぎとは思わないな。入力文字列をそのまま画面に出力したいなら、&の置換もしたほうがいい。
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
※もうひとつのスレッドでは答えがわからずじまいで、
どうしたらよいかヒントだけでもつかめたらと思います。
どうぞお願いいたします。
■ このスレッドは過去ログ倉庫に格納されています