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

【PHP】下らねぇ質問はID出して書き込みやがれ 121

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/07/25(水) 21:30:09.38ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0606nobodyさん2012/08/09(木) 07:52:37.39ID:???
ソースコードの装飾としてjavascriptではsyntaxhilighterがありますが、
PHPではそういうライブラリないのでしょうか?
0607nobodyさん2012/08/09(木) 07:58:37.80ID:???
>>1
0608nobodyさん2012/08/09(木) 08:12:00.47ID:gvdoj+//
ソースコードの装飾としてjavascriptではsyntaxhilighterがありますが、
PHPではそういうライブラリないのでしょうか?
0609nobodyさん2012/08/09(木) 08:27:19.15ID:???
拡張子をphpsにしてアクセスしてごらん
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:???
おはよ(^O^)
0613nobodyさん2012/08/09(木) 10:42:38.49ID:gvdoj+//
>>611
ありがとうございますた
0614nobodyさん2012/08/09(木) 10:54:43.04ID:???
おっはーーーヽ(^o^)丿
0615nobodyさん2012/08/09(木) 14:41:31.72ID:YoYLY2hR
>>603
preg_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);
ようはこういう事ですよね?
0616nobodyさん2012/08/09(木) 14:43:55.90ID:???
>>615
いいえ
0617nobodyさん2012/08/09(木) 14:51:41.90ID:???
/(a|b)/s
0618nobodyさん2012/08/09(木) 14:57:02.97ID:???
>この検索して配列に格納した二つを連想配列に格納したいのです。
すればいいじゃん。どういう感じにしたいのか知らないけど、
>>571のコードみたいに、ようは格納しなおせばいいんじゃないの?
0619nobodyさん2012/08/09(木) 15:08:01.18ID:???
>>615
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
0620nobodyさん2012/08/09(木) 16:51:15.55ID:???
>>615
釣りじゃないなら、「正規表現 or」してみて。
0621nobodyさん2012/08/09(木) 18:17:00.92ID:YoYLY2hR
>>605
>>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:???
>>621
1.どういうデータになってしまうのか
2.どういうデータにしたいのか

連想配列とかじゃなくて具体的にいって
0623nobodyさん2012/08/09(木) 19:21:54.14ID:YoYLY2hR
>>622
プログラミング自体が初心者なのでうまく説明が出来ないですが、
>>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:???
知ってると思うけどprint_r($array);で配列の構造が視覚的に見えるから
それで頭の中整理するといいよ
0626nobodyさん2012/08/09(木) 20:37:57.81ID:???
お前ら相変わらずレベルひくいなぁ
俺なんか一発でわかったぜ
教えてあげないけど
0627nobodyさん2012/08/09(木) 20:41:38.00ID:???
低レベルすぎて話にならない

解散
06281/22012/08/09(木) 21:03:10.93ID:3OhMqJA0
mysqlでデータを取り出して、画像の一覧を表示させたいと思っています
もし画像のデータがなかったときに、「画像はありません。」といったメッセージを出したいです
なかなかうまくいかないので、ご指摘お願いします
06292/22012/08/09(木) 21:03:46.08ID:3OhMqJA0
<ul>
<?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:???
わんばんこーーーヽ(^o^)丿
0634nobodyさん2012/08/09(木) 22:58:20.47ID:B9B5O+Sc
制御構造で1つだけわからないものがあります
declareなんですがマニュアルみても何言ってるかわかりません
これはどういう時に使うのでしょう?
0635nobodyさん2012/08/09(木) 23:09:18.84ID:???
わんばんこーーーヽ(^o^)丿
0636nobodyさん2012/08/09(木) 23:22:04.36ID:gvdoj+//
コマンドから実行するとselectでちゃんと取得できるんですが、
PHPのコードをファイルに書いて、ブラウザで実行するとselectが取得できなくなります。
原因として何が考えられるでしょうか?
0637nobodyさん2012/08/09(木) 23:28:58.34ID:YoYLY2hR
>>624
そうだと思います!
が、新たにpreg_replaceでタグ削除が出来なくなってしまいました・・・。
preg_replace('/<("[^"]*"|\'[^\']*\'|[^\'">])*>/','',$result['title']);
では消せないのでしょうか・・・。

最終的には$result['title']と$result['date']に分けてcsvで結果を保存したいので・・・。
0638nobodyさん2012/08/09(木) 23:50:10.73ID:???
PHPはタグ削除に向いてない
0639nobodyさん2012/08/10(金) 01:17:56.29ID:???
Eclipse 4.2 Junoで
一つのファイルを左右に並べて編集とかしたいんですけど
開けなくなってませんか?

前のバージョンまでだったら出来ていたのですが。
0640nobodyさん2012/08/10(金) 01:32:01.67ID:???
同時に2つ開くだけでいいのではないだろうか
0641nobodyさん2012/08/10(金) 01:32:55.33ID:???
>>639

23. Javaの話をすると回答者が不機嫌になるんだけど・・・
 → 他言語について言及しないこと。ここの回答者はPHPしかわかりません。
0642nobodyさん2012/08/10(金) 02:12:14.58ID:???
>>641
Eclipse PDT
0643nobodyさん2012/08/10(金) 04:17:08.42ID:???
>>639
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:blC7gOda
Class A を継承した Class B や Class C があり、
Class 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
<?php
$b = new B();
$bData = $b->getData(0);
echo $bData['name']; // 'John'と出力

$b = new C();
$cData = $c->getData(0);
echo $cData['name']; // 'Tom'と出力
?>

上記のように子クラスからgetDataを介して自分のデータにアクセスしたいです。
0646nobodyさん2012/08/10(金) 04:39:24.68ID:???
>>644
return static::$data[$id];
0647nobodyさん2012/08/10(金) 04:44:43.24ID:???
アクセサ用意してるのになんでstaticフィールドにしてるの?

public static $data→protected $data
getDataの中身→return $this->data[$id];

でいいと思うんだが
0648nobodyさん2012/08/10(金) 09:00:28.48ID:???
25. オブジェクト指向
 → 使用しないこと。実装が中途半端だという説もありますが、
  PHP自体遅いのでOOPするとさらに遅くなり、実用に耐えません。
0649nobodyさん2012/08/10(金) 09:09:15.60ID:???
これを オブジェクト指向だと勘違いしてるってことか。
0650nobodyさん2012/08/10(金) 09:15:28.75ID:???
おはよ(^O^)
0651nobodyさん2012/08/10(金) 10:12:52.00ID:???
あとは、 $this::$data[$id]; とかな。

http://www.php.net/manual/ja/language.oop5.static.php

PHPのマニュアルページは、下にあるサンプルはおまけじゃなくてそこにしか書いてないこともある。
0652nobodyさん2012/08/10(金) 10:19:37.40ID:bBCMB5sS
>>646
エラーが出てしまいました

>>647
各子クラスの$dataのデータは変動しないので、staticでいいからそのようにしています。
B::$data
としてnewせずにアクセスできる利点があります(staticの方が早いですし)。
0653nobodyさん2012/08/10(金) 10:23:57.49ID:???
遅延静的束縛は 5.3から

http://www.php.net/manual/ja/language.oop5.late-static-bindings.php
0654nobodyさん2012/08/10(金) 10:33:49.55ID:fevHHw+p
>>653
なるほど
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:???
>>652

基本的な設計ミスだ。
ここで説明を乞うより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:???
eval使ってやる方法がユーザーノートに書いてるじゃん
0660nobodyさん2012/08/10(金) 22:04:51.99ID:???
ヽ(^o^)丿こんばんはーーー
0661nobodyさん2012/08/10(金) 22:17:24.62ID:???
使いたいなら5.3使え
5.3使えないなら、やめろ
0662nobodyさん2012/08/10(金) 22:24:07.66ID:???
>>654
$this::$data じゃ駄目なの?
0663nobodyさん2012/08/10(金) 22:35:53.62ID:???
それも5.3なんだな
0664nobodyさん2012/08/10(金) 22:54:34.44ID:???
static $data = array(); を、
protected function _get(){
return array();
}
みたいのに変えればいいんじゃないの
0665nobodyさん2012/08/11(土) 00:04:11.29ID:???
わんばんこーーーヽ(^o^)丿
0666nobodyさん2012/08/11(土) 00:21:57.63ID:???
回答者のみなさまヽ(^o^)丿
0667荒らし内閣委員会から ◆Ani///1rLQ 2012/08/11(土) 00:43:14.32ID:????2BP(0)
(´・ω・`)
0668nobodyさん2012/08/11(土) 00:44:42.11ID:???
こんばんは(^O^)
0669nobodyさん2012/08/11(土) 05:00:21.36ID:dsfFj2Kp
>>664
B::$data
みたいにインスタンス生成せずに取得したいんですよね
0670nobodyさん2012/08/11(土) 05:04:21.42ID:???
>>669
なんで?
0671nobodyさん2012/08/11(土) 05:32:56.74ID:dsfFj2Kp
>>670
・ビュー(HTML)の中で簡単にデータを取りたい
<?php
$c = new C();
$data = $data->getData();
$form->select($data); // セレクトボックス生成するメソッド
?>
より
<?php $form->select(C::$data); ?>
のほうが見やすいですし、
インスタンス生成してメソッド実行して、、、とかやるより
staticで取ってくるほうが実行速度も速いはずです。

・データはインスタンスごとに変動するわけではなく、
クラスのstatic変数として保持するのが合理的だから

理由としてはこのぐらいでしょうか
0672nobodyさん2012/08/11(土) 05:46:56.90ID:???
>>671
ビューの書き方がモデルのデータ取得方式に依存するのはMVCでないと思う
0673nobodyさん2012/08/11(土) 11:46:41.38ID:???
static にするべきかなんてのを速さ云々で決めるのはおかしいだろjk
0674nobodyさん2012/08/11(土) 11:54:45.95ID:Dz3bSh7I
$echo $list[$loop]

ってやると出力されるんですが、
ヒアドキュメント内で
{$list[$loop]}ってやると出力されません。。。
何ででしょうか?
0675nobodyさん2012/08/11(土) 11:54:56.83ID:???
実行速度を気にするならPHPを使うな。笑われる。
0676nobodyさん2012/08/11(土) 13:21:30.37ID:???
>>675
PHPは遅いからって適当に組めば更に遅くなる
どんな言語でも最高の実装するべきだろ
0677nobodyさん2012/08/11(土) 13:38:11.87ID:???
最高の実装?
ただの悪あがき
0678nobodyさん2012/08/11(土) 13:40:27.84ID:???
馬鹿だから勉強しなくていいみたいな理論ですね
馬鹿は馬鹿なりに勉強しなさいよ
0679nobodyさん2012/08/11(土) 13:48:12.43ID:Dz3bSh7I
もういいっす
死ね
0680nobodyさん2012/08/11(土) 13:54:00.16ID:???
>>674
お前が馬鹿だからだろ?
0681nobodyさん2012/08/11(土) 13:59:20.95ID:Dz3bSh7I
釣れた釣れた(笑)
いつものググレカスさん、試してみろさんどうも(笑)
0682nobodyさん2012/08/11(土) 14:05:03.99ID:???
>>674
こんな単純なことも分からないくせに釣り宣言、か
0683nobodyさん2012/08/11(土) 14:07:32.04ID:???
単純なことっていうかありえないことだから(笑)
何ひっかかってんの(笑)
0684nobodyさん2012/08/11(土) 14:09:38.41ID:???
PHPだから適当でいいってw
どうせ遅い。
0685nobodyさん2012/08/11(土) 14:14:57.78ID:???
じゃあじゃあ速度を求めるときは何使うの?ねえねえ
もしかしてJa
0686nobodyさん2012/08/11(土) 14:25:02.97ID:???
>>685
Ajax
0687nobodyさん2012/08/11(土) 14:30:06.54ID:h1GyvnsX
GET値の含まれたアドレスって
https://www.hoge.co.jp/search?q=get&ie=utf-8&oe=utf-8&aq=t&rls=....
みたいなかんじで、q= だの ie= だの
できるだけKEY名が短くなっています。
これを どういうデータなのかわかりやすくするために
nantara_kantara_hohohoi_hoi=239&hogehoge_anan=TRUE
みたいな感じで 長くしたいのですがやめといたほうがいいですか?
今時のブラウザならURLは255文字まで! とかもないと思いますし・・・
0688nobodyさん2012/08/11(土) 14:33:21.77ID:???
どういうデータなのか分かりやすくするための記述をURLでやるのはどうなんだ
ソースの中に書くとかドキュメントにまとめるとかじゃないの?
それと$_GET['nantara_kantara_hohohoi_hoi']とか書くの面倒じゃない?
0689nobodyさん2012/08/11(土) 14:38:54.86ID:???
別にいいんじゃ?何か問題が?
0690nobodyさん2012/08/11(土) 14:49:01.92ID:???
>>687
・hoge.co.jpを勝手に使うな
・URLが長すぎるとブラウザによっては省略されたりするよ
 (省略されてドメイン名のみが表示された状態になる)
0691nobodyさん2012/08/11(土) 15:01:53.09ID:h1GyvnsX
GETで渡る間だけ短くする関数を作ることにしました。

function org_simplizer($text){
//-----------------------------------------
// 文字列を一定の法則したがって シンプルに短くする
//-----------------------------------------
//例 nantara_kantara → NAKA
//例 img_src_text → IMSRTE
$splited = preg_split ('/_/', $text);
foreach($splited as $key => $value){
$simplize_text .= mb_strimwidth($value, 0, 2, "");
$simplize_text = strtoupper($simplize_text);
}
return $simplize_text;
}
<a href="search?<?php echo org_simplizer('google_map_id'); ?>=12345">



search?GOMAID=12345



$google_map_id = $_GET[org_simplizer('google_map_id')]
0692nobodyさん2012/08/11(土) 15:15:49.93ID:???
重複する恐れは?
0693nobodyさん2012/08/11(土) 15:37:05.18ID:h1GyvnsX
>>692
ありまくり

でもまあ、最悪重複したら
元ネームの方を変えたらいいかなと
0694nobodyさん2012/08/11(土) 15:38:20.04ID:???
そんな訳の分からないことをするより変換表を作る方がいいよ
0695nobodyさん2012/08/11(土) 16:21:21.45ID:sHxqG8e9
php+mysqlでビューを使うメリットってありますか
0696nobodyさん2012/08/11(土) 16:25:35.09ID:???
向上心の無い人「どうせ遅い」
0697nobodyさん2012/08/11(土) 16:48:49.28ID:???
>>687
PCならかなり長かったり事実上無制限だったりするかもしれないけど、携帯は割りと短いままな点には注意な
0698nobodyさん2012/08/11(土) 17:04:03.37ID:???
PHPが遅いのは当たり前。
速度重視であれば別言語を使えばいいだけ。
0699nobodyさん2012/08/11(土) 17:05:44.04ID:???
ウェブプログラミングということから考えればその遅さは大して問題にならんだろ
少なくともここで話してる程度の規模じゃね
回線速度とかDBとかの方がボトルネックだわ
0700nobodyさん2012/08/11(土) 17:20:46.31ID:???
>>699
DB周りはさらに悲惨だからな、PHPは。
0701nobodyさん2012/08/11(土) 17:24:23.49ID:???
PHPのDB周りってそんなに遅いの?
もしかしてPEARのDBとかMDB2使ってるんじゃないよね?
0702nobodyさん2012/08/11(土) 17:26:23.81ID:???
お前らお盆なのにPHPの話してんの?w
0703nobodyさん2012/08/11(土) 17:27:47.74ID:???
DB周りというかキャッシュが貧弱だから遅い。
0704nobodyさん2012/08/11(土) 18:25:23.89ID:???
へぇそうなんだ
0705nobodyさん2012/08/11(土) 18:30:29.68ID:???
意味が分からないので詳しく説明してください
■ このスレッドは過去ログ倉庫に格納されています