【PHP】下らねぇ質問はID出して書き込みやがれ 121
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/07/25(水) 21:30:09.38ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 120
http://kohada.2ch.net/test/read.cgi/php/1340275027/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0577nobodyさん
2012/08/08(水) 16:53:07.64ID:???試してないけどメモリにいれるぶんわざわざ
$id = $value["id"];
なんてやるほうが遅そうに感じるが・・・
0578nobodyさん
2012/08/08(水) 17:05:44.15ID:???でも、$id の内容を見るのと
$value の内容から "id" を探してそこの内容を見るのじゃ
差があるのはわかるよね?
0579nobodyさん
2012/08/08(水) 17:15:11.56ID:???上記の3回分と $id = $value["id"] の代入コストを比べると
代入したほうが早いんだろう
ちなみに "id" より 'id' のほうが早い
おれは1行が横に長くなるのがいやなので、
一旦 $id = $value['id'] で代入する派
0580nobodyさん
2012/08/08(水) 17:22:41.15ID:LAYqfGosすぃーありぃー だ。
theory
0581571
2012/08/08(水) 17:30:45.43ID:kpeLgbKLぐぐったやり方で実際にやってみたら確かに早くなってるようです。
気にするほどでもなかったですが、>>579さんの意見はもっともなのでそうしたいと思います。
>>576
キー名なんかを色々変えたいので今回はその方法はとれません。
そうするのが一番楽ですよね。
大変参考になりました。
皆さんレスありがとうございました。
0583nobodyさん
2012/08/08(水) 18:04:39.18ID:???0584nobodyさん
2012/08/08(水) 18:05:24.21ID:???0585nobodyさん
2012/08/08(水) 18:08:16.62ID:???0587nobodyさん
2012/08/08(水) 18:13:35.95ID:???0588nobodyさん
2012/08/08(水) 18:16:39.20ID:???0589nobodyさん
2012/08/08(水) 18:18:26.28ID:???0590nobodyさん
2012/08/08(水) 18:22:54.55ID:???0592nobodyさん
2012/08/08(水) 18:32:36.11ID:???10000000回の試行を10回やった差の平均で
0.005秒だったので 0.0000000005秒ぐらいは違うのではないか。
0593nobodyさん
2012/08/08(水) 18:35:55.99ID:???0594579
2012/08/08(水) 18:40:08.67ID:???これの28ね
まあコンパイル時はわずかに早いかもしれないが
コンパイル後の実行時は有意な差がない気もする
PHPのバージョンによるかもしれないが、
コンパイラがきちんとしてれば同じになりそう
0595nobodyさん
2012/08/08(水) 18:58:45.31ID:???Zend Optimizerあたりはこの辺変わるのかな?
そういうのでなければ、コンパイラとかコンパイル後とか?だし
いわゆるコンパイラの最適化的な処理はPHPの実行時には行われない。
0597nobodyさん
2012/08/08(水) 21:24:08.56ID:???0598nobodyさん
2012/08/08(水) 22:00:03.53ID:???言ってねぇだろ
だいたい >>594 に echo を使った方が早いって書いてるのに
>>597
ちゃぶ台をひっくり返すんじゃねぇw
0599nobodyさん
2012/08/08(水) 22:53:00.97ID:???0600nobodyさん
2012/08/08(水) 23:15:16.87ID:???0601nobodyさん
2012/08/09(木) 00:00:18.02ID:???0602nobodyさん
2012/08/09(木) 00:20:26.60ID:???0603nobodyさん
2012/08/09(木) 01:09:11.34ID:YoYLY2hRpreg_match_allで他の箇所からまったく違う範囲で検索しているのでpreg_match_allを2つ書いています。
preg_match_all("/<td class=\"title\">(.*?)<\/a>/s", $html, $title);
preg_match_all("/<td class=\"date\">(.*?)<br>/s", $html, $date);
こんな感じにしているのですが、連想配列に組み込みたいのですが出来るのかすら調べても分からない状態です。
教えて下さい・・・。
0604269ZO
2012/08/09(木) 01:59:41.04ID:???RE1lMFJGPLkBe91
866769933298494このマンションの一部はサウナなどを備える高級プライベートラウンジになっていて、「西麻布迎賓館」と呼ばれています。
0606nobodyさん
2012/08/09(木) 07:52:37.39ID:???PHPではそういうライブラリないのでしょうか?
0608nobodyさん
2012/08/09(木) 08:12:00.47ID:gvdoj+//PHPではそういうライブラリないのでしょうか?
0609nobodyさん
2012/08/09(木) 08:27:19.15ID:???0610nobodyさん
2012/08/09(木) 08:34:44.71ID:gvdoj+//ソースコードの装飾は何もPHPに限った話ではありません。
C言語やJAVASCRIPT、HTMLなどのソースコードも装飾してくれるライブラリのようなものがあればな、と。
0611nobodyさん
2012/08/09(木) 08:47:11.22ID:???http://sourceforge.jp/projects/sfnet_geshi/
0612nobodyさん
2012/08/09(木) 09:11:30.58ID:???0613nobodyさん
2012/08/09(木) 10:42:38.49ID:gvdoj+//ありがとうございますた
0614nobodyさん
2012/08/09(木) 10:54:43.04ID:???0615nobodyさん
2012/08/09(木) 14:41:31.72ID:YoYLY2hRpreg_match_all("/<td class=\"title\">(.*?)<\/a>/s", $html, $title);
preg_match_all("/<td class=\"date\">(.*?)<br>/s", $html, $date);
この検索して配列に格納した二つを連想配列に格納したいのです。
orを使おうとしているのですが、うまく動作しなくて・・・。
preg_match_all("/<td class=\"title\">(.*?)<\/a>/s|/<td class=\"date\">(.*?)<br>/s", $html, $title);
ようはこういう事ですよね?
0617nobodyさん
2012/08/09(木) 14:51:41.90ID:???0618nobodyさん
2012/08/09(木) 14:57:02.97ID:???すればいいじゃん。どういう感じにしたいのか知らないけど、
>>571のコードみたいに、ようは格納しなおせばいいんじゃないの?
0619nobodyさん
2012/08/09(木) 15:08:01.18ID:???2回も教えてもらってるのに、いつまでかかってるんだよクズが
605 名前:nobodyさん[sage] 投稿日:2012/08/09(木) 04:47:17.99 ID:???
>>603
何を連想配列に組み込みたいって?
>違う範囲
or使えばいいのでは(exp1|exp2)
617 名前:nobodyさん[sage] 投稿日:2012/08/09(木) 14:51:41.90 ID:???
/(a|b)/s
0621nobodyさん
2012/08/09(木) 18:17:00.92ID:YoYLY2hR>>607
preg_match_all("/(<td class=\"title\">(.*?)<\/a>|<td class=\"date\">(.*?)<br>)/s", $html, $date);
こういう事ですね!
>>618
どういう事でしょう・・・。
orだとarray_combine()が使えないので連想配列にどうやって格納しようか分からずじまいです・・・。
0622nobodyさん
2012/08/09(木) 18:56:45.58ID:???1.どういうデータになってしまうのか
2.どういうデータにしたいのか
連想配列とかじゃなくて具体的にいって
0623nobodyさん
2012/08/09(木) 19:21:54.14ID:YoYLY2hRプログラミング自体が初心者なのでうまく説明が出来ないですが、
>>621で検索した2つの文字列の一つをキーにして残りの一つを値として格納したいのです。
今は、普通の配列として全部格納されているので、それを2つに分けて連想配列にしたい?という感じです。
0624nobodyさん
2012/08/09(木) 20:08:46.88ID:???preg_match_all("/<td class=\"title\">(.*?)<\/a>/s", $html, $result['title']);
preg_match_all("/<td class=\"date\">(.*?)<br>/s", $html, $result['date']);
それともそも代入される結果の配列のキーをintじゃなくてstringにしたいということ?
もし、そうであれば、どのようなstringをキーにしたいかがまた追加情報として必要だけど。
また、その場合、preg_match_callbackになるかな。
0625nobodyさん
2012/08/09(木) 20:33:09.92ID:???それで頭の中整理するといいよ
0626nobodyさん
2012/08/09(木) 20:37:57.81ID:???俺なんか一発でわかったぜ
教えてあげないけど
0627nobodyさん
2012/08/09(木) 20:41:38.00ID:???解散
06281/2
2012/08/09(木) 21:03:10.93ID:3OhMqJA0もし画像のデータがなかったときに、「画像はありません。」といったメッセージを出したいです
なかなかうまくいかないので、ご指摘お願いします
06292/2
2012/08/09(木) 21:03:46.08ID:3OhMqJA0<?php
//
$query = sprintf("SELECT * FROM hoge WHERE aaa LIKE '%%$uuu%%'",
mysql_real_escape_string($itm));
$result = mysql_query($query, $link);
$hhh = 20;
for ($o = 0; $o < $hhh; $o++) {
$kkk = 3;
for ($s = 0; $s < $kkk; $s++) {
if ( $row = mysql_fetch_array($result)) {
$id = $row['id'];
$img = $row['img'];
echo <<< EOF
<li><a href="http://example.com/bbb$id.html"><img src="$img" alt="" /></a></li>
EOF;
if ($row == FALSE) {
echo "<li>画像はありません。</li>";
break;
}
}
}
break;
}
?>
</ul>
0630nobodyさん
2012/08/09(木) 22:07:06.81ID:3OhMqJA0失礼します
0631nobodyさん
2012/08/09(木) 22:10:03.73ID:3OhMqJA0もう少し考えます
0632nobodyさん
2012/08/09(木) 22:27:45.20ID:3OhMqJA0何度も何度も申し訳ありませんでした
0633nobodyさん
2012/08/09(木) 22:43:29.34ID:???0634nobodyさん
2012/08/09(木) 22:58:20.47ID:B9B5O+Scdeclareなんですがマニュアルみても何言ってるかわかりません
これはどういう時に使うのでしょう?
0635nobodyさん
2012/08/09(木) 23:09:18.84ID:???0636nobodyさん
2012/08/09(木) 23:22:04.36ID:gvdoj+//PHPのコードをファイルに書いて、ブラウザで実行するとselectが取得できなくなります。
原因として何が考えられるでしょうか?
0637nobodyさん
2012/08/09(木) 23:28:58.34ID:YoYLY2hRそうだと思います!
が、新たにpreg_replaceでタグ削除が出来なくなってしまいました・・・。
preg_replace('/<("[^"]*"|\'[^\']*\'|[^\'">])*>/','',$result['title']);
では消せないのでしょうか・・・。
最終的には$result['title']と$result['date']に分けてcsvで結果を保存したいので・・・。
0638nobodyさん
2012/08/09(木) 23:50:10.73ID:???0639nobodyさん
2012/08/10(金) 01:17:56.29ID:???一つのファイルを左右に並べて編集とかしたいんですけど
開けなくなってませんか?
前のバージョンまでだったら出来ていたのですが。
0640nobodyさん
2012/08/10(金) 01:32:01.67ID:???0641nobodyさん
2012/08/10(金) 01:32:55.33ID:???23. Javaの話をすると回答者が不機嫌になるんだけど・・・
→ 他言語について言及しないこと。ここの回答者はPHPしかわかりません。
0643nobodyさん
2012/08/10(金) 04:17:08.42ID:???AGE設定になってるんじゃなかったの?()
288 名前:nobodyさん[] 投稿日:2012/08/09(木) 18:45:04.14 ID:DMpFXPo0 [1/2]
Eclipse 4.2 を使い始めました。
メソッド名とか変数名の書き換えを行うと
1〜2秒して その編集中の文字周辺が
白背景
緑文字
に自動でなってしまいすごく見づらいです。
テキストエディタのカラー変更を色々と設定して試したみたのですが
今回の様に編集後にカラーが変わってしまうのを防ぐにはどうすれば良いでしょうか?
(どの項目の設定を行えばこの余計なカラー変更を停止出来ますか?)
290 名前:nobodyさん[] 投稿日:2012/08/09(木) 20:24:30.58 ID:DMpFXPo0 [2/2]
>>289
質問しかしてねーよ。
あと、JANEの設定で常に AGE る設定してるから無理!!
0644nobodyさん
2012/08/10(金) 04:19:25.47ID:blC7gOdaClass A で定義されたstatic変数をオーバーライドしてデータを持っています。
そのデータを Class A で定義された関数からアクセスしたいのですが、どうしたらいいでしょうか。
<?php
class A
{
public static $data = array();
public getData($id)
{
/* この部分からClass BやCで定義した$dataにアクセスしたい */
}
}
class B extends A
{
public static $data = array(
array('id'=>0,'name'=>'John'),
:
);
}
class C extends A
{
public static $data = array(
array('id'=>0,'name'=>'Tom'),
:
);
}
0645nobodyさん
2012/08/10(金) 04:21:34.09ID:blC7gOda$b = new B();
$bData = $b->getData(0);
echo $bData['name']; // 'John'と出力
$b = new C();
$cData = $c->getData(0);
echo $cData['name']; // 'Tom'と出力
?>
上記のように子クラスからgetDataを介して自分のデータにアクセスしたいです。
0647nobodyさん
2012/08/10(金) 04:44:43.24ID:???public static $data→protected $data
getDataの中身→return $this->data[$id];
でいいと思うんだが
0648nobodyさん
2012/08/10(金) 09:00:28.48ID:???→ 使用しないこと。実装が中途半端だという説もありますが、
PHP自体遅いのでOOPするとさらに遅くなり、実用に耐えません。
0649nobodyさん
2012/08/10(金) 09:09:15.60ID:???0650nobodyさん
2012/08/10(金) 09:15:28.75ID:???0651nobodyさん
2012/08/10(金) 10:12:52.00ID:???http://www.php.net/manual/ja/language.oop5.static.php
PHPのマニュアルページは、下にあるサンプルはおまけじゃなくてそこにしか書いてないこともある。
0652nobodyさん
2012/08/10(金) 10:19:37.40ID:bBCMB5sSエラーが出てしまいました
>>647
各子クラスの$dataのデータは変動しないので、staticでいいからそのようにしています。
B::$data
としてnewせずにアクセスできる利点があります(staticの方が早いですし)。
0653nobodyさん
2012/08/10(金) 10:23:57.49ID:???http://www.php.net/manual/ja/language.oop5.late-static-bindings.php
0654nobodyさん
2012/08/10(金) 10:33:49.55ID:fevHHw+pなるほど
5.2ですね。残念です・・・。
5.2で親クラスが子クラスののstatic変数にアクセスする方法ほかにないでしょうか。
コンストラクタで__CLASS__でクラス名を保持して
$this->class::$data
としてみましたが、
ダブルコロンの左は変数ではダメなようですね。
class A {
function __construct() {
$this->class = __CLASS__
}
}
こうすると、Bがnewされたときに$this->classにBが保存されて、
AのgetDataで $this->class::$data とすると
B::$data となってアクセスできると思ったのですが。
0655nobodyさん
2012/08/10(金) 10:37:35.49ID:???基本的な設計ミスだ。
ここで説明を乞うよりPHPのマニュアルを精読しな。
ヒントを言うと、「クラスとオブジェクト」
これを最初から最後まで少なくとも3回読め
0656nobodyさん
2012/08/10(金) 11:00:31.16ID:???こういうことしたいけど、出来なかったから5.3からは出来ますよってだけの話。
0657nobodyさん
2012/08/10(金) 11:42:32.77ID:???0658nobodyさん
2012/08/10(金) 12:30:25.09ID:fevHHw+p>>654 こんな感じで少し違ったアプローチでも良いのですが
なんとかアクセスする方法はないでしょうか?
0659nobodyさん
2012/08/10(金) 12:36:59.01ID:???0660nobodyさん
2012/08/10(金) 22:04:51.99ID:???0661nobodyさん
2012/08/10(金) 22:17:24.62ID:???5.3使えないなら、やめろ
0663nobodyさん
2012/08/10(金) 22:35:53.62ID:???0664nobodyさん
2012/08/10(金) 22:54:34.44ID:???protected function _get(){
return array();
}
みたいのに変えればいいんじゃないの
0665nobodyさん
2012/08/11(土) 00:04:11.29ID:???0666nobodyさん
2012/08/11(土) 00:21:57.63ID:???0668nobodyさん
2012/08/11(土) 00:44:42.11ID:???0669nobodyさん
2012/08/11(土) 05:00:21.36ID:dsfFj2KpB::$data
みたいにインスタンス生成せずに取得したいんですよね
0671nobodyさん
2012/08/11(土) 05:32:56.74ID:dsfFj2Kp・ビュー(HTML)の中で簡単にデータを取りたい
<?php
$c = new C();
$data = $data->getData();
$form->select($data); // セレクトボックス生成するメソッド
?>
より
<?php $form->select(C::$data); ?>
のほうが見やすいですし、
インスタンス生成してメソッド実行して、、、とかやるより
staticで取ってくるほうが実行速度も速いはずです。
・データはインスタンスごとに変動するわけではなく、
クラスのstatic変数として保持するのが合理的だから
理由としてはこのぐらいでしょうか
0673nobodyさん
2012/08/11(土) 11:46:41.38ID:???0674nobodyさん
2012/08/11(土) 11:54:45.95ID:Dz3bSh7Iってやると出力されるんですが、
ヒアドキュメント内で
{$list[$loop]}ってやると出力されません。。。
何ででしょうか?
0675nobodyさん
2012/08/11(土) 11:54:56.83ID:???■ このスレッドは過去ログ倉庫に格納されています