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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/02/18(水) 21:09:16ID:xNLzAD7T
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0035nobodyさん2009/02/19(木) 12:39:05ID:???
MVCとオブジェクト指向って被ってる領域もあるけど直接は関係ないだろ?
0036nobodyさん2009/02/19(木) 12:57:34ID:???
オブジェクト指向のサンプル入り解説サイトはよく見かけるようになったが
MVCのサンプル入り解説サイトは見たことがないね
本でも一冊しか知らない
0037nobodyさん2009/02/19(木) 13:01:34ID:???
オブジェクト指向は
$this-> こんな感じですね
0038nobodyさん2009/02/19(木) 13:04:11ID:???
>>37
それと使う時にnewするって知っておけば、あとは何も勉強しなくていいよな。
0039nobodyさん2009/02/19(木) 13:05:03ID:???
ぶっちゃけここのスレの住民にMVC分かるやつはいない
0040nobodyさん2009/02/19(木) 13:05:21ID:???
いや、普通に使ってますがw
0041nobodyさん2009/02/19(木) 13:12:59ID:???
おれが昔から自作してたものがMVCと似通ってることに最近気付いた
0042nobodyさん2009/02/19(木) 13:14:22ID:???
***ここは初心者が初心者にハッタリで自慢するインターネットです***
0043nobodyさん2009/02/19(木) 13:22:32ID:DiCiMFeX
サーバの状態を監視するツールって何使ってますか?
できればWebで確認できるやつがあればいいんですが
0044nobodyさん2009/02/19(木) 13:23:03ID:???
ある
0045nobodyさん2009/02/19(木) 13:25:40ID:???
>>36
基本的にフレームワークの本に載ってるよ
0046nobodyさん2009/02/19(木) 13:26:02ID:???
初心者なオレがMVCをエスパーした。
MVCとは、初心者でもうm
0047nobodyさん2009/02/19(木) 13:30:04ID:???
つうか、きょうび当たり前すぎてMVCを口にするの恥ずかしいだろ
その次のアーキテクチャについて話しようぜ
0048nobodyさん2009/02/19(木) 13:37:13ID:???
すれたい が よめない ひと へ
http://pc11.2ch.net/test/read.cgi/php/1229960175/
0049nobodyさん2009/02/19(木) 14:49:45ID:Y6HkRPoJ
Ubuntu上にPEARのライブラリをインストールしたのですが、
なぜか /usr/share/php にインストールされてしまいます。
これを /usr/share/php/PEAR にしたいのですが、どのように設定すればよいのでしょうか?
0050nobodyさん2009/02/19(木) 14:51:13ID:???
パス指定してやればいいじゃん
0051nobodyさん2009/02/19(木) 14:59:40ID:4v4/gEqf
$str = '1' * 8;
print $str;

とした場合、

8

になってしまいますが、

'11111111'

のように出力させるにはどうすればよいでしょうか?
0052nobodyさん2009/02/19(木) 15:00:41ID:???
>>51
str_repeat
0053nobodyさん2009/02/19(木) 15:11:16ID:???
>>40
$str = '1' * 8

これで

'11111111'

が出力されるだろうという発想が凄い。俺には無いわ。
0054512009/02/19(木) 15:14:06ID:???
>>52
即レス、サンクス。助かりました。
0055nobodyさん2009/02/19(木) 15:15:47ID:???
>>53
rubyだと動いちゃうんですよ、それで。
0056nobodyさん2009/02/19(木) 15:17:26ID:???
>>53ってPHPしかしらないの?w
0057nobodyさん2009/02/19(木) 15:26:43ID:???
こういうゴミみたいな関数が役立つんだよな
Javaでやろうと思ったらめんどくさくてしょうがない
0058nobodyさん2009/02/19(木) 15:37:45ID:???
>>55
マジでか!
世の中何があるかわからねーな。

>>56
すまん、勉強不足だ。
C/Java/PHPしかわからないんだ、許してくれ。
0059nobodyさん2009/02/19(木) 15:38:26ID:???
perlだと
$str = '1' x 8;

うう〜ん直感的にわかりやすい
0060nobodyさん2009/02/19(木) 15:40:00ID:???
PHPの場合は''や""で囲ってあっても
計算式であればintになるし、連結であればstringになるからなぁ
0061nobodyさん2009/02/19(木) 15:40:47ID:???
>>58
vb/c/c++/java/cobol/python/ruby/perl/php/basic
これぐらい勉強してからでなおしてこい
0062nobodyさん2009/02/19(木) 15:42:39ID:???
>>61
今時VBいるか?C#だろう、そこは。
0063nobodyさん2009/02/19(木) 15:43:46ID:???
>>62
>>61は三十路VBおじさん
0064nobodyさん2009/02/19(木) 15:43:48ID:???
>>59
Perlもそれで
'11111111'
になるのか?
0065nobodyさん2009/02/19(木) 15:52:17ID:???
>>62
銀行系ではVBも使われてるの知らんのか
0066nobodyさん2009/02/19(木) 15:57:42ID:???
>>65
今時ありえねーよ。
0067492009/02/19(木) 15:58:00ID:Y6HkRPoJ
>>50
毎回指定するということでしょうか?
どこかに設定ファイルがあるのでしょうか?
0068nobodyさん2009/02/19(木) 16:02:26ID:???
>>67
いや、インストールする場所を指定しろってことだよ
何がしたいの?
/usr/share/php/PEARにインストールしたいんじゃないの?
0069nobodyさん2009/02/19(木) 16:04:55ID:???
>>66
学生は黙ってろ
0070nobodyさん2009/02/19(木) 16:06:01ID:???
>>69
待てよ。
VBつっても.netだよな?6じゃねーよな?
0071nobodyさん2009/02/19(木) 16:09:19ID:???
>>65は既存アプリのこと言ってるんだろ。既存言い出したらなんでもあるわな
0072nobodyさん2009/02/19(木) 16:22:50ID:???
>>64
http://q.hatena.ne.jp/1195018503

perlだと'1' x 8 で '11111111'で、
ruby、pythonだと'1' * 8 で '11111111'だな。
0073nobodyさん2009/02/19(木) 18:53:18ID:wRj5eNSW
ファイルの文字コードを調べたいのですが
何かそのような関数はありませんでしょうか?
0074nobodyさん2009/02/19(木) 19:09:05ID:???
>>73
マニュアルのmb_〜からはじまる関数を読み漁れば見つかりますよね
0075732009/02/19(木) 19:12:43ID:wRj5eNSW
>>74
先ほどから見てますが検討がつきません
一度文字列に格納してから調べろということなのでしょうか?
0076nobodyさん2009/02/19(木) 19:17:38ID:???
>>73
何のために調べるの?
0077732009/02/19(木) 19:21:27ID:wRj5eNSW
>>76
ファイルをPHPの内部エンコードにあわせるのが目的です
mb_convert_encodingの第三引数にautoを渡したところ
うまく動作しなかったので
取得したものを第三引数にセットしようと思った次第です
0078nobodyさん2009/02/19(木) 19:22:37ID:???
>>77
用意したファイルを内部エンコードにしておけばいいんじゃね?
0079732009/02/19(木) 19:23:17ID:wRj5eNSW
>>78
外部から第三者ガアップロードするものなので不可能なんです
0080nobodyさん2009/02/19(木) 19:33:59ID:???
>>73
ファイルを読み込む前にチェックするっていうのは現実的じゃない。
それはわかるよな?

判定コードを書くのが面倒だったら nkfに通すとか。
0081nobodyさん2009/02/19(木) 19:40:07ID:???
autoは設定されてないと使えないから
"SJIS,EUC-JP,UTF-8,JIS"みたいに書いてみそ
0082emi2009/02/19(木) 19:46:09ID:62n5Tebm
スレ違いだったらすみません。質問です。
PHPとjavascriptを連携させるにはどうしたらいいのでしょうか。
<?php
$fp = fopen('http://自分のHP/GPS/20090109.txt', 'r');
$count = 0;
$remove_row_list = array(1, 2, 3, 4);
while ($data = fgetcsv($fp, 10000)) {
if (!in_array($count % 5, $remove_row_list)) {
echo $data[1] ."<br>\n";
echo $data[2] ."<br>\n";
echo $data[4] ."<br><br>\n";
}
{
$count++;
}
}
fclose($fp);

?>
0083nobodyさん2009/02/19(木) 19:51:14ID:???
>>82
そのソースのどこにJavaScriptが出てきてるんだ?
0084822009/02/19(木) 19:53:50ID:/38upbVh
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=[APIkey]" type="text/javascript"></script>
<script src="c.php" type="text/javascript">
//<![CDATA[

function load() {
if (GBrowserIsCompatible()) {

//表したい場所の地図の表示
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(○,△), 16);
    //○=PHPのデータ $data[2]、△=PHPのデータ $data[4] を出したい
//特定の箇所にピンを立てる
var marker = new GMarker(new GLatLng(○,△));
map.addOverlay(marker);
}
}

//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 500px; height: 500px"></div>
</body>
</html>
これらをまとめてHTMLで表したい場合どのようにすればよいのでしょうか。
0085nobodyさん2009/02/19(木) 19:54:13ID:???
>>82
連携してJavaScriptに何やらせたいのか書かないとわからん
サーバでPHP処理→ブラウザでJavaScript実行の順番はわかってるのか?
0086nobodyさん2009/02/19(木) 19:56:22ID:???
var data2=<?=$data[2]?>;
var data4=<?=$data[4]?>;

//表したい場所の地図の表示
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(data2,data4), 16);
    //○=PHPのデータ $data[2]、△=PHPのデータ $data[4] を出したい
//特定の箇所にピンを立てる
var marker = new GMarker(new GLatLng(data2,data4));
map.addOverlay(marker);

でOK
0087732009/02/19(木) 19:56:55ID:???
>>80
レスどうもありがとうございます
kccコマンドが使えるのですができればコマンドラインは回避したいです

>>81
どうもありがとうございます
JISだとだめみたいだったのでISO-2022-JP,SJIS,EUC-JP,UTF-8
とやったところ4種類に対応することができました
全てに対応させるのは限界がありそうなので妥協してこの方法にしたいと思います

皆さんどうもありがとうございました
0088nobodyさん2009/02/19(木) 19:56:58ID:???
>>82
その手の質問はよくあるけど、結論「無理」
できても、PHPでJavaScriptを書き出すくらい(変化に応じて書き出せる)
PHPから動的に読み込むにはAjaxを使えばできる

ちなみにその辺使うなら、ある程度JavaScriptは勉強しておいたほうがいい


関係ないが、無駄にAjax使いすぎるやつがいてうぜぇ・・・
しかも、JavaScriptをPHPのechoで吐き出してるから修正すらダルい
0089nobodyさん2009/02/19(木) 20:04:10ID:???
その修正、手でやんのか?
まるっとキャプチャしちまえばいいじゃねぇか
0090nobodyさん2009/02/19(木) 20:05:07ID:nJvgqLn9
sjsやeucで作られたスクリプト中に
echo "あ";
echo 'あ';

というを"と ' を使ったら書き方をするとクロスサイトスクリプティングが発生するみたいなのですが
これはなぜでしょうか?
0091822009/02/19(木) 20:06:16ID:/38upbVh
>>85
PHPのほうのテキストデータはサーバから読み込んだものなので
ブラウザからPHPで処理できるのかと…
>>88
やはり無理なのでしょうか?
すみません初心者なものなので知識はないのですが↓
でしたらPHPで出力したデータをjavascriptで扱うにはどうすべきなのでしょう?
0092nobodyさん2009/02/19(木) 20:06:50ID:???
ダメ文字でググれ
0093nobodyさん2009/02/19(木) 20:08:25ID:???
>>91
PHPでJavaScriptを書き出せばいいんじゃね?一番簡単な方法なら


function javascript() {

<?php
for($i = 0 ; $i < 5 ; $i++) {
echo "var test[$i] = '{$array[$i]}'\n";
}
?>

}
0094nobodyさん2009/02/19(木) 20:20:19ID:???
>>90
>というを"と ' を使ったら書き方をすると
この辺日本語で頼むわ
0095902009/02/19(木) 21:13:27ID:???
すいません書き直します

echoを使うとき「"」で文字列を囲むのと、「'」で文字列を囲む記述がありますが
この"と'を統一せず、入り組んで使うとsjisとeucではクロスサイトスクリプティングになるのですがなぜなんでしょうか?

例
echo "テスト";
echo "こんにちは";
echo 'はじめまして';
echo "ありがとう";
0096nobodyさん2009/02/19(木) 21:17:53ID:???
>>95
その質問は間違っている。
その例に出てきたもので、XSSが起きるわけじゃない。
しかし、君にそのクイズを出した人が言わんとしていることには二つ以上の可能性がある。
一つは、htmlspecialcharsのENT_QUOTESとENT_COMPATの動作の問題
もう一つはSJISの5Cの問題。
他になんか意図があるかもしれんが、仮定が間違ってるので、何を言っても意味がないだろう。
0097nobodyさん2009/02/19(木) 21:19:55ID:???
あぁ、ちなみにHTML要素内の5CでXSSは起きない。
0098902009/02/19(木) 21:24:50ID:???
一応参考URLも載せておきます
ttp://d.hatena.ne.jp/harupu/20060328#p1
どなたかお願いします
0099nobodyさん2009/02/19(木) 21:25:53ID:SUg9mjPG
csv、tsv、xml、jsonなどのデータフォーマット以外にphpで扱えるデータフォーマットを教えてください
0100nobodyさん2009/02/19(木) 21:26:33ID:???
すいませんIDがJPG
0101nobodyさん2009/02/19(木) 21:30:18ID:???
>>98
そのURLのソース試してみたか?
問題ないぞ。
0102nobodyさん2009/02/19(木) 21:31:03ID:???
>>99
何だって良いんじゃない?
<>sv なんてのも可だし
0103nobodyさん2009/02/19(木) 21:32:32ID:???
つうか、htmlspecialcharsの第2引数と第3引数をちゃんと指定していれば問題なし。

シングルクォートとダブルクォートをミックスすると表示は崩れるがXSSはできない。
0104nobodyさん2009/02/19(木) 22:20:00ID:???
>>82
echo htmlspecialchars($data[1])
echo htmlspecialchars($data[2])
0105nobodyさん2009/02/19(木) 22:25:13ID:NhJwmPwv
DWでPHP書いてますがeclipseで開発するメリットを教えてください
0106nobodyさん2009/02/19(木) 22:27:41ID:???
ない
0107nobodyさん2009/02/19(木) 22:42:26ID:???
DWの方が絶対良い
データベースとか楽に構築できるしね
0108nobodyさん2009/02/19(木) 22:56:12ID:???
>>105
スレチと思ったが開発環境スレが落ちてるな
Eclipseのいいところは、
クラスや関数のアウトライン参照、コンテキストに沿ったコード補完、リファクタリング(まだまだ貧弱だが)、
ブレークポイントやステップ実行、その際の変数参照、
プラグインを導入すればバージョン管理システムやDBMSともIDE上から作業できる
これらに興味がなければ無理して乗り換える必要もないかな
0109nobodyさん2009/02/19(木) 23:01:15ID:???
DWでもCVSやSVNと接続できるけどな。
PDT使ったら、DWには戻れない。

まぁ、でも、サイトにすぐアップできるとか、いいよね。
でも、コードカラーリング崩れない? > DW
0110nobodyさん2009/02/20(金) 00:57:08ID:???
DWはIDEじゃないから比較するものじゃないでしょ
使ったことないから知らないけどデバッガとかついてないでしょ?
0111822009/02/20(金) 01:21:04ID:w405pQbs
>>86
>>104
ありがとうございます。
あと、たとえば$data[2]はたとえば3645.5218のような数字なのですが
桁を変えて36.455218にしたうえで10進から60進にしたいんです。
度 = int(36.455218) = 36
分 = int(0.455218 * 60) = int(27.31308) = 27
秒 = int(0.31308 * 60 *1000) / 1000 = 18.7848
= 36°27′18.7848″といったような感じにしたいんです。
0112nobodyさん2009/02/20(金) 01:37:44ID:r16tK4jF
Smartyの質問なのですが、、PHPと関連するので質問させていただきます。

テンプレートを表示する時
$smarty->display("index.html");

で表示できますが、display()の中を変数にする事って出来ないでしょうか?
それが出来たら、DBに保存しているHTMLをSmartyに反映させることが
出来るのですが、$smarty->display($html);とする方法では無理でした。
0113nobodyさん2009/02/20(金) 02:41:12ID:???
demiru
0114nobodyさん2009/02/20(金) 05:22:05ID:nLAMcH0P
PHPのメモリって勝手に開放されるのですか?
デストラクタでunsetとかしないでも大丈夫ですか?
0115nobodyさん2009/02/20(金) 07:29:32ID:???
自動的に開放する。
無闇にunsetすると非効率になることが多いらしい
が、処理時間の長いジョブとかの場合は開放した方がいい場合もある
0116nobodyさん2009/02/20(金) 08:38:58ID:???
>>112
http://www.smarty.net/manual/ja/template.resources.php#templates.from.elsewhere
これでできないか?
0117nobodyさん2009/02/20(金) 09:18:57ID:???
はい?
$template = 'index.html';
$smarty->display($template);
で普通にできるのでは?
0118nobodyさん2009/02/20(金) 10:16:20ID:P+ZCl9Zr
昨日今日からの初心者です。
<html><body>
<?php
if(!適用条件)
{ echo "適用外"; exit;}
// 適用条件内
...
?>
</body></html>
と書くと適用条件外の場合"</body></html>"が出力しないようなのですが仕様なのでしょうか?
その場合回避策としてタグの終りにジャンプとか抜けるみたなことは出来るのでしょうか?
(適用条件内を1スコープにして括弧で括る、は出来ればしたくないので…)
0119nobodyさん2009/02/20(金) 10:29:22ID:???
>>118
exitじゃなくて、goto ラベル;にしたらいいよ
0120nobodyさん2009/02/20(金) 10:39:43ID:???
>>119
5.3以降でしか使えない変な物を教えるな

>>118
条件外の時はexitしてるからそれ以降が実行されないので
それ以降の</body></html>が出力されない
そういう風に書くなら

if (適用条件) {
 条件内処理
}
else {
 条件外処理
}
にすればいい
あと、こっちのスレのがオススメ
http://pc11.2ch.net/test/read.cgi/php/1227303362/
0121nobodyさん2009/02/20(金) 10:45:06ID:???
条件内処理をブロックに入れたくないって言ってるんだから、>>120は無理でしょ。

せめて、
{ echo "適用外</body></html> "; exit;}
だな。
0122nobodyさん2009/02/20(金) 11:05:37ID:???
低級者向け:関数化すれ
中級者向け:テンプレエンジン使え
上級者向け:フレームワーク使え
0123nobodyさん2009/02/20(金) 11:05:49ID:???
いや、なんでそこでexit使うか分からんな。
>>118はexit使わなくても問題ないし。
0124nobodyさん2009/02/20(金) 11:06:54ID:/aL6hv6c
>>122
逆じゃない?PHPで自分で作れないからフレームワーク使うんだろ?
0125nobodyさん2009/02/20(金) 11:06:57ID:???
exitしないと、適用外のときでも、適用内の出力がまざっちまうじゃねぇか
0126nobodyさん2009/02/20(金) 11:08:20ID:???
まず、初心者がくくりたくないとかいうわがままを許していいのかってことじゃねぇか。
0127nobodyさん2009/02/20(金) 11:10:01ID:???
>>125
適用外のときは別途処理すればよくね?
0128nobodyさん2009/02/20(金) 11:10:28ID:???
>>118
なぜ「出来ればしたくない」のか聞かせてくれ。
0129nobodyさん2009/02/20(金) 11:18:07ID:???
>>127
詳しく
0130nobodyさん2009/02/20(金) 11:23:24ID:P+ZCl9Zr
回答・説明ありがとうございます。
取りあえず出来る書き方で書いて、天に祈りが届いたと思ってPHP5.3を待つ事にします。

>>128
Cで例外処理の場合はgoto文を使いたい(条件文が増えるとネストが深くなったりコードが重複したりするので)
みたいなものです、プログラム思想みたいなものなので余りこれ以上の突っ込みはご勘弁を…
0131nobodyさん2009/02/20(金) 11:25:54ID:???
gotoの方がよっぽど悪質だよww
0132nobodyさん2009/02/20(金) 11:34:03ID:???
try-catch
0133nobodyさん2009/02/20(金) 11:39:58ID:???
こんなところでtry-catchを持ち出そうとするからPHPerは糞だって言われるんだ
0134nobodyさん2009/02/20(金) 11:41:19ID:???
>>133
すまん
例外処理と聞いて反射的に貼り付けただけなんだ
0135nobodyさん2009/02/20(金) 11:56:07ID:???
>>130
それは貴方のロジックとかが悪いだけ
■ このスレッドは過去ログ倉庫に格納されています