【PHP】下らねぇ質問はID出して書き込みやがれ 89
レス数が1000を超えています。これ以上書き込みはできません。
0001●
2009/10/11(日) 21:18:54ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん
2009/10/11(日) 21:19:05ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/
【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/
【PHP】下らねぇ質問はID出して書き込みやがれ 86
http://pc11.2ch.net/test/read.cgi/php/1249042741/
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
【PHP】下らねぇ質問はID出して書き込みやがれ 79
http://pc11.2ch.net/test/read.cgi/php/1231850905/
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
0003nobodyさん
2009/10/11(日) 21:19:11ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
■Smartyマニュアル http://www.smarty.net/manual/ja/
(以下英語)
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smarty http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2009/10/11(日) 21:19:17ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0005nobodyさん
2009/10/11(日) 21:19:22ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0006nobodyさん
2009/10/11(日) 21:20:11ID:???0007nobodyさん
2009/10/11(日) 22:05:52ID:2KRfPF1l0008nobodyさん
2009/10/11(日) 22:23:09ID:???> → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
ちょう気になります。
0009nobodyさん
2009/10/12(月) 12:12:33ID:???0010nobodyさん
2009/10/12(月) 12:17:51ID:???0011nobodyさん
2009/10/12(月) 13:22:58ID:???0012nobodyさん
2009/10/12(月) 15:07:24ID:???0013nobodyさん
2009/10/12(月) 15:28:16ID:???0014nobodyさん
2009/10/12(月) 18:13:58ID:VqENsVDc連想配列の値をforeachで取り出して、データベースへ
インサートすると上手くいきません。
DBへの挿入自体は、出来るのですが、繰り返しているために
レコード自体が、要素の分だけ増えてしまいます。
(値が20あると、DBの行も20だけ増えてしまいます。)
where句を加えてみても、良い結果になりません。
どうしたら、1行(1 row)に収められますか?
foreach ($data as $key => $val){
$ret = mysql_query("INSERT INTO table ($key) VALUES ($val)");
}
0015nobodyさん
2009/10/12(月) 18:21:33ID:???0016nobodyさん
2009/10/12(月) 18:49:24ID:???0017nobodyさん
2009/10/12(月) 18:57:58ID:???implode(',' $data)
ってことでしょ
0018nobodyさん
2009/10/12(月) 19:10:59ID:???valはis_stringやis_int使って型分けしたほうがいいと思うが
INSERT INTO table (key1, key2, keyn) VALUES (val1, val2, val3);
ていうか全部増えるってNOT NULL制約はつけてないのか?それともDEFAULT入れてるのか?
テーブル設計見直したほうがいいんじゃね
0019nobodyさん
2009/10/12(月) 19:42:03ID:VqENsVDcレスありがとうございます。
質問の仕方がわかりづらかったみたいですみません。
文字の連結ではないです。それだと列にまとまってしまいます。
現状は、行(レコード)が増えてしまう。たとえるなら、
碁盤の目の対角線上(左下→右上)のように、
値を入れるごとに、レコード自体がforeach のために、
1個ずつ増えてしまうのです。更に、わかりづらいかも。
>>15 さんのアドバイスのように、UPDATE で今やっています。
レコードのidを一個だけ増やして、その行をwhereで指定して
そこをUPDATEする感じで。
idを増やすとこまではできました。UPDATEがまだできないですが、
もう少しで出来そうです。
ありがとうございました。
0021nobodyさん
2009/10/12(月) 19:51:55ID:9W/f2NwM【PHPのバージョン】php5.1.6
【連携ソフトウェア】なし
【ブラウザ】Firefox3.5
【質問内容】
教えてください。PHP+Javascriptでcookieに値をセットしようとしています。
やりたいことはaaa.bbb.comにアクセスして、ccc.ddd.comドメインに対するcookieを保存することです。
■存在するマシン
・ローカル端末
・Webサーバ1(aaa.bbb.com)←ローカルホストにあるhttpdだが、hostsファイルを使ってこのような名前解決を可能にしている。
・Webサーバ2(ccc.ddd.com)←ローカルLAN内のマシンで、hostsファイルを使ってこのような名前解決を可能にしている。
まずローカル端末からhttp://aaa.bbb.com/a.htmlにアクセスします。
a.htmlの中にはJavascriptが入っており、そいつはccc.ddd.comのa.phpにGETリクエストを飛ばすようにしています。
a.phpの中にはsetcookie関数が仕込まれており、これによってccc.ddd.comドメインに対するcookieをセットしようと
考えていますがうまくいきません。
続きます。
0022nobodyさん
2009/10/12(月) 19:52:41ID:9W/f2NwM各ファイルの中身は以下のようになっています。
a.html
===================================================================================================
<html>
<head>
<script language="Javascript" src="http://ccc.ddd.com/cookie.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
<!--
cookietest();
// -->
</script>
</body>
</html>
===================================================================================================
0023nobodyさん
2009/10/12(月) 19:54:17ID:9W/f2NwMcookie.js
===================================================================================================
<!--
function cookietest(){
var url = "http://ccc.ddd.com/a.php";
var request = createXMLHttpRequest();
request.open("GET", url, true);
request.send("");
}
function createXMLHttpRequest() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
return null;
}
}
} else {
return null;
}
}
===================================================================================================
0024nobodyさん
2009/10/12(月) 19:55:00ID:9W/f2NwMa.php
===================================================================================================
<?php
$timeout = time() + 30 * 86400;
setcookie("cookie","value", $timeout, '/','ccc.ddd.com');
?>
===================================================================================================
0025nobodyさん
2009/10/12(月) 19:55:38ID:???0026nobodyさん
2009/10/12(月) 20:00:10ID:???で、スクリプトでGETしたa.phpに対するレスポンスは誰が受け取るの?
元のUA? スクリプトでレスポンスヘッダをUAに転送しようとしてる?(できるの?)
それともスクリプトで受けて(できるか知らんが)、jsで改めて同じcookieを
元のUAにセットしようとしてる?
と流し見て思った。
002721
2009/10/12(月) 20:00:57ID:9W/f2NwM理論的にはできるはずです。
実際にJavascript経由ではなく、直接a.phpにアクセスするとccc.ddd.comのドメインでcookieが保存されます。
0028nobodyさん
2009/10/12(月) 20:02:57ID:???それが出来たら勝手にAmazonのカートに商品追加したりGmailの中身ぶっこ抜いたりできるから夢が広がるんだけどね
002921
2009/10/12(月) 20:04:43ID:9W/f2NwMレスポンスは少なくともブラウザが受け取っていることは確認しました。(Live HTTP Headersというfirefoxのアドオンで確認しました。)
その部分だけ抜き出すと以下のようになっています。
----------------------------------------------------------
http://ccc.ddd.com/a.php
GET /a.php HTTP/1.1
Host: ccc.ddd.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://aaa.bbb.com/a.html
Origin: http://aaa.bbb.com
HTTP/1.x 200 OK
Date: Mon, 12 Oct 2009 05:51:27 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Set-Cookie: cookie=value; expires=Wed, 11-Nov-2009 05:51:27 GMT; path=/; domain=ccc.ddd.com
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
----------------------------------------------------------
003021
2009/10/12(月) 20:13:00ID:9W/f2NwMそうなんですか…。
サードパーティcookieなんてものがあるので、こういうことも可能なのかと思ってました。
0031nobodyさん
2009/10/12(月) 20:15:08ID:???もしかしてcccのCookieをaaaのドメインに向けて出したいと思っている?
サブドメイン毎に分けられるなら、それができたらセキュリティホールになるんじゃあ…
って気が
0032nobodyさん
2009/10/12(月) 20:32:17ID:9W/f2NwMはい、ただこのやり取りは「Javascriptで」GET要求を出したものに対するレスポンスなので、そこでうまくブラウザ側にセットされていないのかもしれません。
また、cccのcookieをaaaドメイン向けに出したいと思ってはいません。
やりたいことはaaa.bbb.com以外に様々なドメインのサイトがあって、それらのページにはa.htmlのようにccc.ddd.comにアクセスするようなJavascriptを埋め込んでもらおうと思っています。
(要するに提携した各サイトへのアクセス状況をccc.ddd.comで収集するイメージです。)
その際にそのアクセス情報をccc.ddd.comドメインへのcookieとして保存出来ればと思っています。
0033nobodyさん
2009/10/12(月) 20:45:52ID:???単にリクエストを送るだけなら<iframe>とか<img>でやるのがいい。
たとえばGoogleはImage()でやってる。もちろんCookieもセットされる
<script type="text/javascript">
new Image().src = "http://example.co.jp/";
</script>
0034nobodyさん
2009/10/12(月) 20:45:52ID:???でも、クッキー受け取るのブラウザじゃなくて XMLHttpRequestのインスタンスで閉じてると思ったけど。
0035nobodyさん
2009/10/12(月) 20:48:13ID:???cccドメインのファイルにアクセしてみてもリクエストヘッダにCookieが入っていないってこと?
あと他ドメインのCookieどうこうはクロスサイトの問題があるから直接jsじゃなくて、iframe経由
が基本だったはず。
003721
2009/10/12(月) 21:05:13ID:9W/f2NwMなるほど、cookie.jsの中をImage()に変更するとcookieが保存されました。
解決しました、ありがとうございました。
>>34
なるほど、そうなんですね。
インスタンスで閉じてるとすると、受け取った後の処理を書けばいいのかもしれませんが、とりあえずImage()でやることにします。
>>35
「ブラウザが受け取った」というのはLive HTTP headersの情報で判断していました。
なので正確には>>34さんの言うとおりなのかもしれません。(勉強不足でした。)
Imageじゃなくてiframeでも同様のことができるのですね。勉強になりました。ありがとうございます。
0038nobodyさん
2009/10/12(月) 22:39:22ID:bWWKsEMiphpファイルのあるコンピュータ(apacheサーバー)からではなく、
他の、そのサイトをみてるPCから、
FTPサーバーにアップロードする方法ってありますか?
あれば教えてください。
0039nobodyさん
2009/10/12(月) 22:46:18ID:???http://jp2.php.net/ftp
ほい
0040nobodyさん
2009/10/12(月) 22:59:39ID:bWWKsEMi質問が悪かったかもしれないですが、
例えば、 http://jp2.php.net/manual/ja/ftp.examples-basic.php だと、
$source_file はphpがあるコンピュータ上のファイルだと思うんですが。
やりたいのは、そのサイトを見ているクライアントPC上のファイルの転送です。
0041nobodyさん
2009/10/12(月) 23:03:36ID:???0042nobodyさん
2009/10/12(月) 23:13:59ID:bWWKsEMiどういうことでしょうか?
0043nobodyさん
2009/10/12(月) 23:16:23ID:???0044nobodyさん
2009/10/12(月) 23:19:33ID:???0045nobodyさん
2009/10/12(月) 23:23:48ID:???こっちが聞きたいんです。 何が分からないか分からないので。
<form enctype="multipart/form-data" method="post" action="example.php">
<input type="file" name="file1" >
<input value="送信" type="submit">
</form>
とかでサーバーにファイルをアップ出来ることわかればあとは組み合わせ。
それとも、それはあなたのやりたいことと違うのかな?
0046nobodyさん
2009/10/12(月) 23:24:46ID:bWWKsEMiサイトを作ることで、それにはftpを使うほうがいいと思ったんです。
でも、phpが動いてるのはあくまでサーバー上ですので、
クライアント側のファイルをオープンするのは無理だと思うんです。
で、直接クライアントとftpサーバ間の通信ができる方法を知りたいのです。
>>43
分かりません。
>>44
上記の理由で、クライアントにPHPを入れるという以外の方法を探しています。
0047nobodyさん
2009/10/12(月) 23:24:54ID:???以前にもっと早くする余地が残されているのが普通。
熟知している奴が、htmlを少しリファクタリングするだけで、
体感速度が改善されるし、リアルタイムで処理する必要がない機能を
バッチ処理にするだけでもかなり改善される。
もちろん、SQL文の改善もしかりだ。
もっと効果が高い方法を考えなさい。
0048nobodyさん
2009/10/12(月) 23:30:45ID:???あまりにも馬鹿すぎて、殴ったら、上司に呼ばれて停職になったが、
その停職期間中に始めた体験農業がきっかけで、
今はフリーのプログラマーへと変貌を遂げた。
そして、今年新品種のにんじんの栽培が農協から表彰を受けて、
年収が大幅にアップした。人生って何があるか分からんよ。
この早いwebの中で、変わらないことは即ちリスクであるってことよ。
0049nobodyさん
2009/10/12(月) 23:30:48ID:???なんでHTTPじゃだめなのかな
0050nobodyさん
2009/10/12(月) 23:30:51ID:???なめてんな
0051nobodyさん
2009/10/12(月) 23:36:52ID:bWWKsEMi倉庫代わりじゃなくて倉庫です。
どちらも自分のPCです。
ただ、場所が違うんですよ。
0052nobodyさん
2009/10/12(月) 23:38:17ID:???webサーバー介在させたくないならPHPでは何も出来ません。
容量どれくらい想定してますか?
ftpクライアントインストールさせられない、ブラウザに ftp://example.com とかも入力させられないなら、
javascriptのftpクライアントっていう変なのもあるけど、ちがうよね?
https://fit.jupiterit.com/
0053nobodyさん
2009/10/12(月) 23:52:47ID:bWWKsEMiアップロードしたときに別の処理もしたいからです。
例えば、データベースに入れたり・・・。
アップロードとは別に、定期的にDBを更新させるとかでもいいんですが、
より楽な方法があればと思ったわけです。
とにかく結局予想通り無理っぽいので、質問の意図も書いてみました。
0054nobodyさん
2009/10/13(火) 09:20:35ID:???たしか何個かバックグラウンド処理させる方法あったよな
おれがしってるのはキューを作る事
あとなにがあったっけか?
0055nobodyさん
2009/10/13(火) 09:56:30ID:Bgm/yHH7ttp://works.xworks.org/script/01php/xfile-access-counter/
これの非公開バージョンb090909
http://kissho.xii.jp/1/src/1jyou93396.zip.html
・DBにSQLiteを用いているのが特徴。
・ベータ版のため、簡単に使える状態では無い。
誰か、使用方法、教えて下さい・・・。
0056nobodyさん
2009/10/13(火) 10:00:40ID:???0057nobodyさん
2009/10/13(火) 12:15:06ID:???0058nobodyさん
2009/10/13(火) 12:20:54ID:???別にキーワードなんて使わなくても困らないだろ
0059nobodyさん
2009/10/13(火) 16:03:10ID:ajuLMPfn中身を見てみたいのですが…
0061nobodyさん
2009/10/13(火) 16:10:32ID:ajuLMPfnやっぱりできませんか…
0063nobodyさん
2009/10/13(火) 16:50:29ID:ljBnoCI+.htaccessを使ってリファラで制限したんですが、ドコモはリファラが残らず断念しました。
後は、PHPでできるみたいなのですが知識がなく、本を買って調べたのですがいまいちわかりませんでした。
PHPで直リンを防ぐソースなどはないでしょうか?
レベルの低い質問で申し訳ないんですがよろしくお願いします。
0064nobodyさん
2009/10/13(火) 16:53:25ID:???0065nobodyさん
2009/10/13(火) 20:28:10ID:SwQUEovxクラス内にデータベースの設定を書いてしまうと思いますが、
複数のクラスからデータベースを呼び出す場合、
データベースの設定はどのように持っておくべきでしょうか?
iniやxmlなどの外部ファイルに記述するか、
データベースの設定だけを保持したクラスを作成するか等。
他にベターでメジャーな方法があったら教えてください。
0066nobodyさん
2009/10/13(火) 20:41:24ID:???var $test = null;
function push($value){
$this->test = $value;
}
function pop(){
return $this->test;
}
}
$tes = new test;
$tes->push("てすと");
echo $tes->pop();
0067nobodyさん
2009/10/13(火) 20:45:24ID:???0068nobodyさん
2009/10/13(火) 20:52:18ID:???難しいか?
0069nobodyさん
2009/10/13(火) 21:22:19ID:???設定って?
ホスト名とかユーザ名とかデータベース名のこと?
そういうかなり具体的なことは、せいぜい一つのクラスだけが気にするようにする。
なお、よっぽどやっつけな場合以外、そのクラスのコードにもそれらの設定値は
書き込まないな。
0072nobodyさん
2009/10/13(火) 21:23:57ID:???俺は、専用のクラスにしているよ。
外だしにすると、一回一回接続するたびに、
設定ファイルを読み込んで、
余計なI/Oが発生するので、避けている。
0073nobodyさん
2009/10/14(水) 04:33:40ID:???function dbCon(){
try{
$db = new mysqli("localhost","user","pass","my_db");
$db->query('SET NAMES utf8;'); return $db;
}
catch(mysqli_sql_exception $e){return $e->getMessage();}
}
$db = dbCon(); // dbオブジェクト取得
あとは $dbを使いまわせばよい。
0074nobodyさん
2009/10/14(水) 05:11:15ID:???0075nobodyさん
2009/10/14(水) 13:39:39ID:tPIKiOul【PHPのバージョン】php5.3.0
【連携ソフトウェア】なし
【質問内容】
書き込み失礼します。
セッションの保持期間の指定について悩んでいます。どうしても、指定した時間まで持たなくて。
現在は、セッションが関係するページの冒頭に以下のコードを入れています。
<?php
//クッキーの使えない端末でもセッションを有効にする
ini_set('session.use_trans_sid', '1');
//クッキーの使える端末では、セッションをクッキーに保存する
ini_set('session.use_cookies', '1');
//セッションを、クッキーのみに保存させないようにする
ini_set('session.use_only_cookies', '0');
session_save_path();
session_start();
ini_set('session.save_path', '2;/usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名');
ini_set('session.cookie_lifetime', '秒数');
ini_set('session.gc_maxlifetime', '秒数');
ini_set('session.gc_probability', '1');
ini_set('session.gc_divisor ', '1000');
?>
(改行が多すぎると叱られたので一旦切ります)1/2
0076nobodyさん
2009/10/14(水) 13:41:23ID:tPIKiOul自信がないのがsession_save_pathとsession.save_pathの使い方です。書き方はこれであっているでしょうか?
session.save_pathの引数に2を指定しておりますので、「ディレクトリ名」の下にはmod_files.shで作ったディレクトリを2階層分置いてあります。
また、session.save_pathに引数を指定するとGCが作動しなくなるとマニュアルにあるので、GCについての設定は無駄でしょうか。
クッキーの使えない端末(携帯など)でのセッションの保持は諦めます。
…が、せめてクッキーの使える端末(パソコンなど)では、指定した時間セッションを保存したいと考えています。
色々と調べましたが、原因がさっぱり分からずお手上げです。
どうかよろしくお願いいたします。2/2
0077nobodyさん
2009/10/14(水) 13:56:39ID:???宣伝じゃないけどここのサイトのセッション管理が参考になるよ
金かからないケイタイからアクセスして試してきな
ttp://atmeltomo.com/
0078nobodyさん
2009/10/14(水) 14:44:11ID:???期限切れとなるのが
セッション用Cookieが存在しない状態での初回アクセス日時 + session.cookie_lifetime 秒
ならPHPの実装通り
それともこれに当てはまらない現象?
ini_set('session.*... は session_start() 前に設定しないと使ってくれないぞ
GCについては session.save_handler = "files" の場合に
2階層以上をしていると働いてくれないので言う通り不要
>>77
ハイハイ
0079nobodyさん
2009/10/14(水) 15:06:02ID:???0080nobodyさん
2009/10/14(水) 15:17:46ID:tPIKiOulご返信ありがとうございます。
>期限切れとなるのが〜
はい、初回アクセス+session.cookie_lifetime 秒よりも早くセッションが切れてしまいます。
ini_setはsession_start()の前に、とのことでしたのでそのようにしてみたのですが、以下の警告が出てしまいました。
Warning: session_start() [function.session-start]:
open(/usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/セッションID, O_RDWR)
failed: Permission denied (13) in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8
Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php:8)
in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8
問題のファイルの8行目には、session_start();が記述してあります。
>>79
多分あっていると思います…が、仕様書などからの確認は取れませんでした。
0081nobodyさん
2009/10/14(水) 15:50:00ID:???0082nobodyさん
2009/10/14(水) 16:16:35ID:???パーミッションエラー出とるがな
つーかセッションデータを公開スペースに置くつもりなのか?
まず/tmpディレクトリとかで試してみたら?
あとサーバーの時間はdate()関数で調べてみれ
0083nobodyさん
2009/10/14(水) 16:52:07ID:tPIKiOul>>82
セッションデータの保存先の件ですが、マニュアルによると
「この設定を/tmp (デフォルト)のようにどこか らでも読み込み可能なディレクトリのままにしている場合、
サーバ上 の他のユーザがこのディレクトリのファイルのリストを取得すること により、セッションをハイジャックをすることが可能となります。」
とのことでしたので、この設定にしてみました。
date()関数についての情報、ありがとうございました。基本の関数だったようでお恥ずかしい限りです。
サーバの日時はあっていました。
それから、先程から色々と調べているのですが、「save_pathの設定はSAFE MODEが有効になっているときには変更できません。」との情報を見つけました。
使っているサーバのセーフモードを調べてみましたら、見事にオン。
なんかこれが原因のような気もします。
今度セーフモードがオフになっているサーバに変えて試してみようと思います。
引き続き、なにか情報をお持ちの方いらっしゃいましたら、お願いいたします。
0084nobodyさん
2009/10/14(水) 17:58:37ID:???>してみました
書ける場所に設定するとか指定した場所に書けるようにしないとダメでしょ
わけもわからずやるほうがあぶねえ
0085nobodyさん
2009/10/14(水) 18:08:43ID:???0086nobodyさん
2009/10/14(水) 18:54:54ID:???>>80 で save_pathした場所でセッションファイルのパーミッションエラーが出てる
>>83 で save_pathの設定はSAFE MODE。。。見事にONでした
んーなんか違うような・・・
80からsave_pathは変更されていて、単にパーミッションが適切ではなくセッションファイルが書き込めないだけのような。
82の言うように/tmpでまず確認か、そのsave_pathのパーミッションをApacheのユーザが書けるように設定。
ここではsession_save_pathはsafe modeで使えないとは書いてないようだけど、どこに書いてあった?
http://www.php.net/manual/ja/features.safe-mode.functions.php
/tmpのセッションジャック説明 「サーバ上 の他のユーザが」 他にユーザがいるのかな?
85の言うようにそのパスだとパーミッションなどの設定次第だけどあぶないかも。
0087nobodyさん
2009/10/14(水) 20:55:39ID:tPIKiOulセッションファイルを保存したいと思っているディレクトリのパーミッションを変更してみましたが、状況は変わりませんでした。
また、/tmpで試してみたところ、以下の警告が出てしまいました。
Warning: session_save_path() [function.session-save-path]:
SAFE MODE Restriction in effect. The script whose uid is 33401 is not allowed to
access /tmp owned by uid 0 in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 6
Warning: ini_set() [function.ini-set]:
SAFE MODE Restriction in effect. The script whose uid is 33401 is not allowed to
access /tmp owned by uid 0 in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 7
Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php:6)
in /usr/local/www/htdocs/ユーザID/public_html/ディレクトリ名/ファイル名.php on line 8
「SAFE MODE Restriction in effect.」という一文から読み取る限り、やはりセーフモードの問題でしょうか。
セキュリティについても、色々と調べてみたいと思います。ご助言ありがとうございます。
0088nobodyさん
2009/10/15(木) 00:40:11ID:???あと無料スクリプトを拾ってきてそのセッションが動いてるか試してみるとか?
あとはPHPをコンパイルしてCGIで動かすか
0089nobodyさん
2009/10/15(木) 10:26:13ID:???0090nobodyさん
2009/10/15(木) 10:31:15ID:???http://static.php.net/www.php.net/images/php_konami.gif
なんだこれw
0091nobodyさん
2009/10/15(木) 10:33:15ID:???0092nobodyさん
2009/10/15(木) 10:38:34ID:???これって↑↑↓↓←→←→BAかww
0093nobodyさん
2009/10/15(木) 10:41:16ID:???0094nobodyさん
2009/10/15(木) 11:37:33ID:IJjjUaJiそしてそのCentOS上でLighttpdとPostgreSQLとPHP5.3を動かしています。
NetBeans6.7.1ではSFTPを使いCentOS上に*.phpファイル保存時に自動的に書き込むようにしています。CentOS上の php.iniではXdebugの設定をしたのでNetbeansを用いてPHPのコードを一行一行実行して行く事ができるようになりました。
ここまでは上手く行きました。NetBeansのメニューで「プロジェクトのデバッグ」を選択するとブラウザーが立ち上がり、ブレークポイントを付けた行で停止して1行ずつコードを実行して行けます。
しかし、NetBeansのメニューで「プロジェクトの実行」を選択するとブラウザーが立ち上がる所までは同じですが、その後それ以上何も進展しない状況になります。(ブラウザーは「読み込み中」と表示されたままです。)
これって正常でしょうか?
0096nobodyさん
2009/10/15(木) 12:53:49ID:HYNoiUHJ【PHPのバージョン】php5.26
【. CGI名 .】 Hello-UP アップローダー http://idol.nm.land.to/
【質問内容】 sn uploaderのように、画像等ツールよけのためにphp(ページ)経由で取得させるようにしたい
例:http://hogehoge.net/img/0000.jpg
↓
http://hogehoge.net/upload.php?id=0000
この下のやつはダウンロードカウンター機能ON時の形式なのですが、
これをダウンロードカウンター機能OFF時のときも同様にリンクとして表示させたいのです。
ダウンロードカウンター機能OFF時でも
>http://hogehoge.net/upload.php?id=0000
この形式をブラウザに手打ちで打ち込んでも表示されるので、一覧でのリンク表示だけの問題だと思います。
どうぞよろしくお願いします。
0098nobodyさん
2009/10/15(木) 12:57:43ID:???改造依頼はこちら
【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1222645553/
自分でこうしたいからこう書いたけどうまく出来ないとかなら答えてもいいけど丸投げは氏ね
0099nobodyさん
2009/10/15(木) 14:39:55ID:???SET client_encoding = 'UTF8';
以外にありますか?
pgsqlモジュールのpg_set_client_encodingに相当するやつがみつからないので
0101nobodyさん
2009/10/15(木) 14:46:54ID:HYNoiUHJマルチと言ってもそっちは完全に無視されました。
3ヶ月たったのでこちらで依頼させてもらいました。
>>98
あと少しの所まで来ているので、ここでも良いかと思い質問させてもらいました。
分かる方いましたらどうかよろしくお願いします<m(__)m>
0102nobodyさん
2009/10/15(木) 16:31:38ID:/ug7dUBY0103nobodyさん
2009/10/15(木) 16:39:41ID:???0104nobodyさん
2009/10/15(木) 19:18:43ID:???改ざんされてたらしい
0105nobodyさん
2009/10/15(木) 19:26:58ID:67pnw1eJクラス内関数から、内部にある変数一覧って取得できますか?
0107nobodyさん
2009/10/15(木) 20:30:10ID:nPyaMf5+Javaでプロパティにstatic finalをつけるところを
PHPでやるには何を使ったらいいのでしょう?
調べたところconstとdefineがあるようですがどちらを使うのがより近い意味になりますか?
0108nobodyさん
2009/10/15(木) 20:46:19ID:???0109nobodyさん
2009/10/15(木) 21:22:39ID:???0111nobodyさん
2009/10/15(木) 23:23:56ID:???const
defineは式、constは文という違いがあるだけで中身は一緒だが
constは名前空間も考慮されてる
あとスカラー値(Javaで言うプリミティブ値)しか持てないから注意してね
>>109
http://jp.php.net/manual/ja/migration53.new-features.php
ここ読んで分からないものがあれば>>1を読んでから具体的に質問して
0112nobodyさん
2009/10/15(木) 23:25:00ID:???0113nobodyさん
2009/10/15(木) 23:29:49ID:???0114nobodyさん
2009/10/15(木) 23:32:31ID:jccmKipZそれに何のメリットが?
0115nobodyさん
2009/10/16(金) 00:29:10ID:???$a = (function(){
return "aaa";
}();
$b = (function(){
$test_a = "bbb";
return 1024;
})();
var_dump($a); // string(3)"aaa"
var_dump($b); // int(1024)
関数(); は 関数名(); で関数を実行できるのと同じ考え方。
無名関数だから関数名の重複が起こらないというメリットがある
0116nobodyさん
2009/10/16(金) 00:34:57ID:???に何の意味が・・・?
0117nobodyさん
2009/10/16(金) 00:35:24ID:???一過性のモノを関数化する必要ってさっぱり理解できないのだが。
0118nobodyさん
2009/10/16(金) 00:36:32ID:???0119nobodyさん
2009/10/16(金) 00:46:13ID:???0120nobodyさん
2009/10/16(金) 00:51:18ID:???0121nobodyさん
2009/10/16(金) 00:56:10ID:???頑張ってはいるようだがまだまだ構文解析が貧弱だなあ
0122nobodyさん
2009/10/16(金) 07:11:34ID:???【PHPのバージョン】php5.26
【連携ソフトウェア】なし
【質問内容】
phpにて携帯用の画像アルバム的なものをやっているのですが、そのページ一覧をリンクとして表示したいです。
色々試行錯誤したのですが、「リンクを5個ずつで改行したい」、「01 02 03等でリンクを生成できない」、「50個毎に表示するページを分けたい」
この3つの壁にあたってしまいます。
画像は連番になっており、0.jpg 1.jpg,,,となっています。アルバム毎のページ数とディレクトリは$○○等としています。
勉強したての初心者ですが、どなたかアドバイスをお願い致します。わかりにくい説明ですみません。
0123122
2009/10/16(金) 07:13:05ID:msbRiwku0126nobodyさん
2009/10/16(金) 08:59:52ID:???>「リンクを5個ずつで改行したい」、「01 02 03等でリンクを生成できない」
これはforeachで普通にできるだろ?
>「50個毎に表示するページを分けたい」
paginationでググレ
0127nobodyさん
2009/10/16(金) 11:12:52ID:OzIcO1DG計算の途中で画面エラーが発生して思う通りにうごきません。
昨日からずっとで困っています。
対策を教えてくださいませんか。宜しくお願いします。
0128nobodyさん
2009/10/16(金) 11:23:14ID:???0129nobodyさん
2009/10/16(金) 11:27:51ID:OzIcO1DGエラーメッセージはこれです。
Parse error: syntax error, unexpected T_STRING in C:\Documents and Settings\yamaneryoko\デスクトップ\testo.php on line 4
プログラミングコードは、これです。
<?php
$HUNNSU=NULL;
for($i=0;$i<100;$i++){
$HENSU+1;
}
echo $HENSU
何から何までおんぶにだっこですみません。
お願いします。
0131nobodyさん
2009/10/16(金) 11:37:58ID:OzIcO1DGどこのコードをコピペすればいいのでしょうか?
まだ一週間なので、見よう見まねでやっています。
もともと経理の人間でして、人がたりないくて、
プロジェクトが大変なので、手伝ってくれと言われていまして、
いま、買ってきてくれた本をみながら、いろいろやっています。
自分でもやっていることが、よく分からないのですが、
これって画面からボタンとかで出来ないのでしょうか?
0132nobodyさん
2009/10/16(金) 11:39:38ID:???いや、>>129が全角になってるから、てっきりコピペじゃなくて手打ちしたんだと思ったんだが
>>129で書いたのはコピペしたのか?
それなら半角にしないと動かないよ
0133nobodyさん
2009/10/16(金) 11:45:32ID:???0134nobodyさん
2009/10/16(金) 11:49:45ID:OzIcO1DG本を見ていると、全角かなと思ったので、全角で打ってしまいました。
半角で打ち直して、もう一回やってみます。
133さん、読んでいるのはプログラミングPHPというオライリーさんが出している本です。
いずれにしても、手で書かないといけないんですね。
WORDのスペルチェックとか使えたら良いんですが、WORDだと動かないんですよね。悩みます。
0136nobodyさん
2009/10/16(金) 12:06:18ID:???0137nobodyさん
2009/10/16(金) 12:09:20ID:???eclipseかDreamweaver使え
0138nobodyさん
2009/10/16(金) 12:14:06ID:???DreamWeaver薦めるやつもどうかと思うぞ
あれはウェブオーサリングツールであってIDEとは言えないから
0139nobodyさん
2009/10/16(金) 12:19:54ID:???こまけぇこたぁいいんだよ
釣りなら釣りで「可哀相な経理は居なかったんだ」でハッピーエンドさ
次の質問どうぞ
0140nobodyさん
2009/10/16(金) 12:33:52ID:???word使ってるレベルの人にIDE勧めて使えると思ってるのか?
0141nobodyさん
2009/10/16(金) 12:41:21ID:???excellは使えたほうがいいと知り合いのプログラマに言われてるんだけどな
0143nobodyさん
2009/10/16(金) 13:05:25ID:???0144nobodyさん
2009/10/16(金) 13:14:40ID:???好きなエディタ使えでいいだろ?
>>129のエラーメッセージをよく見ると解ると思うが
一人でjava必要だったり単価が高いツールを導入できると思うか?
0145nobodyさん
2009/10/16(金) 13:16:17ID:???0146nobodyさん
2009/10/16(金) 13:17:09ID:???DWはIDEではないのは事実
あれはPHPエディタと同じただのエディタです
0147nobodyさん
2009/10/16(金) 13:26:21ID:???0148nobodyさん
2009/10/16(金) 13:52:41ID:???0149135
2009/10/16(金) 14:02:27ID:???何も設定しなくても使える(?)から初心者には良いと思ったんだけど・・・
0151nobodyさん
2009/10/16(金) 14:23:57ID:???解凍するだけで使えるし、普通の構文なら中途半端にPHP対応したエディタより解析が正しい
Eclipseはインストールが手間だし、変なエラーにはまると初心者には直せない
DWはデザイナーに薦めればいいよ
0155nobodyさん
2009/10/16(金) 15:02:14ID:???いい加減、頭冷やしなよ。
0156nobodyさん
2009/10/16(金) 15:03:32ID:???変なエラーって余計なことしなきゃそんなもんは出ません
まぁ設定がめんどくさいってのはあるけどな
0157nobodyさん
2009/10/16(金) 15:05:29ID:???http://pc11.2ch.net/test/read.cgi/php/1079460638/
0158nobodyさん
2009/10/16(金) 16:34:58ID:9EGLWQ8q複数のページで複数のクッキーを食わせていたとします
書き込みするときに先に$_COOKIE['reg_data']で取得したあとに$_COOKIE['user_data']を取得しようとしてるのですが500エラーが出ます
1回の処理で複数のクッキーを取得することはできないのでしょうか?
0159nobodyさん
2009/10/16(金) 16:39:27ID:???正露丸を買って飲みなさい。
あと、正露丸がどうして腹痛に効くかもよく理解してからね(核爆)。
0160nobodyさん
2009/10/16(金) 16:54:15ID:OzIcO1DG半角にして直したところ、画面にエラーが出なくなったのですが、
逆に何も表示されません。どの部分が間違っているのでしょうか。
度々すみません、どなたか教えてください。
<?php
$HUNNSU=NULL;
for($i=0;$i<100;$i++){
$HUNSU+1;
}
echo $HUNSU;
?>
0161158
2009/10/16(金) 17:00:05ID:???0162nobodyさん
2009/10/16(金) 17:02:18ID:???そのコードがどのような事をしたいのかは理解できてますか?
その上で、>>160さんが意図している結果(表示)はどのようになりますか?
>>160のコードについては、以下の点を直せば動作します。
$HUNNSU=NULL; ←この変数使ってない($HUNSUの打ち間違い?)
$HUNSU+1; ←これだと代入してないから意味無いです。
$HUNSU = $HUNSU + 1;
と書くか
$HUNSU += 1;
と書かないと動きません。
0164nobodyさん
2009/10/16(金) 17:14:46ID:OzIcO1DGおかげで、100と表示されました。
長かったです。これだけでトータルで3日掛かっちゃいました。
来週からは、WHILEに挑戦です。
また、何がありましたら、宜しくお願いします。
163さん、アドバイスありがとうございます。
そのプログラミングコードを追加したのですが、ダイレクト アクセスのためにボリュームを開けません。というエラーが出てしまいました。
これだとうまくいかないみたいです。
0165nobodyさん
2009/10/16(金) 17:18:00ID:???君はプログラミングの基礎から学ぶべきだ
0166nobodyさん
2009/10/16(金) 17:35:19ID:???人雇ったほうが早くない?
0168nobodyさん
2009/10/16(金) 18:03:21ID:???まぁ、不発だったが炸裂してPCのデータ消えたら
>>163は人生シャットダウンする事になったかもなw
会社のPCを使っていると思われる状況で絶対言えないよな…
フォーマットコマンドを実行しろなんて…
0169nobodyさん
2009/10/16(金) 19:17:09ID:???0170nobodyさん
2009/10/16(金) 19:18:05ID:???勉強用のサンプルコードとはいえ、そのプログラムは無意味すぎる。
というのも100までまわすことが分かっていて、100という結果を得たいなら、
単に100を出力すればいいだけだからね。
$HUNSU = null;
for ($i = 0; $i < 100; $i++) {
$HUNSU += $i;
}
echo $HUNSU;
forループ中の$iを使わないとforループする意味がないから、
たとえばこんな風にすると$iのループ毎の状態(1〜100)を足して表示してくれる。
0171170
2009/10/16(金) 19:26:23ID:???$i <= 100;までだと0〜100だな。
0172nobodyさん
2009/10/16(金) 19:35:02ID:???どうしてphpはそういう分けワカメの仕様なのだろうか?
nullという意味をphpは多義語として使っている節がある。
0173nobodyさん
2009/10/16(金) 19:49:05ID:???0174nobodyさん
2009/10/16(金) 19:55:35ID:???PHPやってるとそもそも型の概念とか身につかないだろうし動けばいいんじゃね?
それがPHPクオリティー
0175nobodyさん
2009/10/16(金) 20:00:47ID:???0176nobodyさん
2009/10/16(金) 20:27:18ID:???むしろ玄人向け
0177nobodyさん
2009/10/16(金) 22:27:37ID:M9MkszYyWINNTフォルダが無いんですが
どうすればいいの?
0178nobodyさん
2009/10/16(金) 22:29:57ID:???どこの情報?
C:\WINDOWSにいれとけ。というかPATHが通ってる所。
0179nobodyさん
2009/10/16(金) 22:34:23ID:???PATHを通せ
0181nobodyさん
2009/10/16(金) 23:04:28ID:???0183nobodyさん
2009/10/16(金) 23:37:01ID:???0184nobodyさん
2009/10/16(金) 23:40:12ID:???↓のスレの通りやればphp5.ts.dllをいちいちWINNTに入れなくて済むから見て来いks
俺が初心者にPHPを伝授する
http://pc11.2ch.net/test/read.cgi/php/1167984858/
0185nobodyさん
2009/10/16(金) 23:40:40ID:cEE5qztC0186nobodyさん
2009/10/17(土) 04:57:13ID:???まるで偉い先生にでもなったかのように偉そうな振る舞いをするくせに、
自分が知らないことになると、
子どもみたいに、馬鹿なコメントしか書けないのね。
まるで、うちの上司のようだ。人間的にやばいよ。
0187nobodyさん
2009/10/17(土) 05:14:48ID:???これは、やっちゃったね。偽計業務妨害だよ。
しかも、初心者に向けて発したこのレスは極めて悪質。
警視庁のHPから通報した。163はバカにも程があるな。
0189122
2009/10/17(土) 06:48:13ID:EZudZUyF初心者なのもので、最初から詰まっています。連番画像の表示まではよかったのですが、一覧を作ろうとすると全然できません。
アダルトサイトですが、このようなページで
http://lolipeach.com/a/umi/sora/sora0.php
これと同じ感じで一覧を作りたいんです。
アドバイスをいただけたら嬉しいです。
>>126
もう少しヒントをいただけるとかなり助かります。。
基本的にどのような書き方をすればいいのでしょうか?
0190nobodyさん
2009/10/17(土) 07:12:43ID:???for ($i = 1; $i <= 50; $i++) {
printf("%02d ", $i);
if ($i % 5 == 0) {
echo "<br>\n";
}
}
0191nobodyさん
2009/10/17(土) 07:16:26ID:???まず構造
┣index.php
┗img
┣0001.jpg
┣0002.jpg・・・
>リンクを5個ずつで改行したい+01 02 03等でリンクを生成できない
$imgs = scandir('./img');
$i=0;
foreach($imgs as $value){
?>
<a href="./img/<?php echo '$value'; ?>">画像リンク</a>
<?php
$i++;
if($i%5===0) echo '<br />';
}
ページングはまずこれを理解してから
0192122
2009/10/17(土) 07:23:07ID:EZudZUyFありがとうございます。嬉しいのですが、逆にわからなくなってきましたです…。
できれば答えも教えてもらえると嬉しいです。
>>191
構造は
┣read.php
┣itiran.php
┗img
┣0.jpg
┣1.jpg・・・
みたいな感じです。
画像のリンクについては、直でのリンクじゃなく、read.php?dir=○○といった形でページにて表示しています。
ヒントor答えをどなたか・・・。お願いします。php難しい。
0193nobodyさん
2009/10/17(土) 07:56:55ID:???2.画像ファイル名のみの配列を作る
3.forで回して整形
4.出力
5.おわり
0194nobodyさん
2009/10/17(土) 08:03:57ID:???>>191がほとんど答え
これが理解できないならどれだけヒントをもらっても無駄
おとなしく金払って業者に頼め
0195nobodyさん
2009/10/17(土) 08:04:37ID:???でいいんじゃないの?
0196nobodyさん
2009/10/17(土) 11:09:56ID:???改ざんじゃなくて、中の人が仕込んだみたいだな
これがPHPの本気 - /halt/Snapshot
http://project-p.jp/halt/anubis/blog_show/1306
0197nobodyさん
2009/10/17(土) 16:47:31ID:+dqfqFUSphpなどを使ってうまい線形計画法でのルート検索の方法をご教示ください。
0198nobodyさん
2009/10/17(土) 16:58:44ID:???国内旅行板いけキチガイ
0199nobodyさん
2009/10/17(土) 17:01:11ID:+dqfqFUS私はルート検索をphpを実装して、
それを自分の足でテストしたいと思っています。
「ルート検索 線形計画法」でぐぐってもらえれば質問の意図が分かります。
0200nobodyさん
2009/10/17(土) 17:03:37ID:???複雑すぎて実用的じゃない
0201nobodyさん
2009/10/17(土) 17:07:29ID:+dqfqFUSそのようなマスターデーターに依存するようなやり方ですと、
運用が大変だと思いますので、その点も含めて全てphpで実装をと考えています。
鉄道のルート検索はある程度の完成していると思いますが、
路線バスについては、未成熟です。その点を技術で解決できないかと構想を練っているところです。
0203nobodyさん
2009/10/17(土) 17:15:23ID:+dqfqFUS線形計画法や成長モデル型のプログラミングで実装しても無理でしょうか?
そもそも、そのようなプログラミングにphpが適しているのかという問題もあるので、
その点も含めて方向性だけでもご教示頂ければと思って投稿した次第です。
0204nobodyさん
2009/10/17(土) 17:18:08ID:???どうやってやるんですか?
手短に。
0205nobodyさん
2009/10/17(土) 17:20:26ID:+dqfqFUSその具体的な実装は青写真しかありませんが、
例えば検索エンジンのgoogleの言語解析モデルと一緒ではないでしょうか?
日々新しく生まれる言葉をいちいち人間がマスターを作って入力していったらきりがありません。
そこで、そのようなマスターに依存せずに、言語で解決をしたいと考えています。
0207nobodyさん
2009/10/17(土) 17:23:15ID:+dqfqFUSいや、ですから、その具体的なところが分かれば、
ここで質問せずに、一人で黙々と実装しています。
0208nobodyさん
2009/10/17(土) 17:26:10ID:???0209nobodyさん
2009/10/17(土) 17:29:58ID:???学会でもよく取り上げられていますが、
マスターデータを持たない未知語分析に定評があります。
0210209
2009/10/17(土) 17:32:25ID:+dqfqFUS0211nobodyさん
2009/10/17(土) 17:43:07ID:???0212nobodyさん
2009/10/17(土) 17:50:19ID:???いろいろアホが答えてますが
問題解決について採用すべきアルゴリズムを選ぶ事は
言語に関係なくまた下らない質問でもありません
ム板か数学板がお勧めです
実装したいものが決まったらまた聞いて下さい
0213nobodyさん
2009/10/17(土) 18:16:27ID:???0214nobodyさん
2009/10/17(土) 18:25:16ID:???ただ、誰一人として回答はしていないということは事実。
0215nobodyさん
2009/10/17(土) 18:30:58ID:???初心者が出す質問は自分じゃ考えもしない発想だったりで面白いの。
0216nobodyさん
2009/10/17(土) 20:51:32ID:???全然違うから
3次元の空路とかならまだしも2次元世界を行き来するというのに
データも何もなしでどうにかなるわけがない
0218nobodyさん
2009/10/17(土) 20:57:10ID:???回答がほしいわけじゃなくて、
なんらかの優越感に浸りたいだけなんだろうか。
0219nobodyさん
2009/10/17(土) 21:32:33ID:???重複する箇所をピックアップして新語と判定するような単純なものだと思うが
人間がマスターを作る必要はないがGoogleだってデータなしには何も出来ない
GoogleMAPだってGoogleの専用カメラ車が地道にデータ集めてる
データも何もなしに目的地の最短経路探査とかできるならこっちが知りたいわ
0220nobodyさん
2009/10/17(土) 22:03:24ID:???他の初心者のために黙っててくれ
0221nobodyさん
2009/10/17(土) 23:07:05ID:???自然と話題は終わるもんだぜ
0222nobodyさん
2009/10/17(土) 23:34:35ID:???0223PHP質問スレ専属回答者認定委員会
2009/10/17(土) 23:41:34ID:fCpepgAk回答者の皆様は力を入れて回答に励んでください
0224nobodyさん
2009/10/17(土) 23:42:45ID:???0225nobodyさん
2009/10/18(日) 06:30:19ID:???なんか、典型的な日曜プログラマーの集まりって感じ。
0226nobodyさん
2009/10/18(日) 08:09:41ID:???回答者は悪くなくね?
0227nobodyさん
2009/10/18(日) 09:07:27ID:TSx9ncb00229nobodyさん
2009/10/18(日) 10:05:23ID:???ここからは有用な情報があれば集めるだけ
だから過疎ってる。だから有用な情報も少なくなったなぁ。。
0232nobodyさん
2009/10/18(日) 11:43:34ID:???どういうことをしたくて彼が何を言いたかったのか誰か説明してくれない?
鉄道のルート検索(Yahoo路線情報のことだろうか?)にも
彼の言う成長型プログラムが使われていて
新しい駅の追加や他社と提携して相互乗り入れなんかで起きる路線図変更など
何かと人手で修正する必要が出てくるデーターを一切使わずに
それらの事象をどうやってか知らないが成長型プログラムが把握すると
(Googleを引き合いに出してるので検索ボットでも使って
どこかのWebサイトに新しい駅ができたとか書いてたらそれを分析して把握する?)
まぁ仮に↑のような構想を抱いてるとしたらかなりいい加減なシステムになるとは思うが
彼はどのようなシステムを構築したかったのだろうか?
0233nobodyさん
2009/10/18(日) 12:02:50ID:???0234nobodyさん
2009/10/18(日) 12:20:54ID:???ユニークだと思う。
不可能ではないかもしれないけど、そんなのを組むぐらいなら全バス会社
の時刻表ページをパースするのを組む方がまだ先の見える話になるわw
0236nobodyさん
2009/10/18(日) 12:51:15ID:???上野>秋葉原>メガロポリス中央駅>東京 とか訳の解らん事になりそうな気がする
集めたデータの正否を判断させるのには別な構築も必要だし
全てを自動化ってことならある意味人工知能っぽい気がする
0237nobodyさん
2009/10/18(日) 13:44:35ID:???0238nobodyさん
2009/10/18(日) 17:37:26ID:???0239nobodyさん
2009/10/18(日) 17:42:55ID:???質問者が質問してないからスレチ。
回答しようもないからスレチ。
0240nobodyさん
2009/10/18(日) 17:44:37ID:TSx9ncb0Call to undefined function socket_create()とエラー出る
ini書き換えればいいのか?どの部分?
0241nobodyさん
2009/10/18(日) 18:08:59ID:???windowsなら
http://jp2.php.net/manual/ja/sockets.installation.php
のUser Contributed Notesに書いてあるよ
windows以外は再コンパイルかな?
0244nobodyさん
2009/10/18(日) 20:04:59ID:93bN8Xvfecho round($avg,1);
数値の出力をしたいと思い、round関数を使用しています。
これだと、確かに、小数点が一桁に丸まるのですが、
たとえば、値が、(10.0)の時、(10)の様に、
小数点第一位の 0 が消えてしまいます。
0 も表示するには、どうしたら良いでしょうか?
0245nobodyさん
2009/10/18(日) 20:23:10ID:???0246nobodyさん
2009/10/18(日) 20:35:12ID:???0247nobodyさん
2009/10/18(日) 20:48:52ID:93bN8Xvfありがとうございます!
出来ました。
公式マニュアルの round関数を見てもわからなかったので、
とても助かりました。ありがとう!
0248nobodyさん
2009/10/18(日) 21:01:10ID:???バス(鉄道)をキーにweb検索すれば→バス会社のページに行き当たる。
バス会社のページから時刻表、路線、バス停車場間の距離を緯度経度情報として割り出し、
それを元に、路線データベースを作る。あとは、鉄道の路線検索みたいなことをすればいい。
あと、空路みたいな三次元なら可能とか言っていた奴がいるが、
高度情報まで入ると、計算が複雑で収束しないと思うが。
0249nobodyさん
2009/10/18(日) 21:11:29ID:???簡単だなんて考えるのは、実際に組む事を考えてない奴だけだ。
0250nobodyさん
2009/10/18(日) 21:42:08ID:???0251nobodyさん
2009/10/18(日) 21:48:06ID:???0252nobodyさん
2009/10/18(日) 21:49:49ID:???東京からなら、鹿児島まで行けるよ。
金が無かったころ、夜行で博多まで行って、そこから昼間乗り継いで鹿児島まで行った。
鹿児島に着くころには夕方になっていたっけ。
0253nobodyさん
2009/10/18(日) 22:09:44ID:???0254nobodyさん
2009/10/18(日) 22:34:21ID:???0255nobodyさん
2009/10/18(日) 23:05:30ID:???こういう仕様を理解出来ていない奴は、プログラムがいくら出来ても駄目。
指示されたものと全く違うものを作っておきながら、自己満足しているタイプだから。
そして、人には理解できないほど自分の技術力は高いと一匹狼を気取るバカ。
0256nobodyさん
2009/10/19(月) 00:24:09ID:???0257nobodyさん
2009/10/19(月) 00:27:23ID:???0259nobodyさん
2009/10/19(月) 06:29:20ID:???どっかのアルゴリズムスレや数学板なんかで
このスレの話題を見てもらうとどういう反応返ってくるだろうな
0260nobodyさん
2009/10/19(月) 07:03:52ID:???0261nobodyさん
2009/10/19(月) 07:35:43ID:z1FY4P6eクラスを__autoloadファンクションで自動ロードしたい場合、
set_error_handlerは使えませんか?
__autoloadファンクションを呼び出す前にset_error_handlerでClassNotFoundが捕捉されてしまっています。
現在error_reportingにはE_ALLを設定しています。
0262nobodyさん
2009/10/19(月) 07:42:44ID:sPnvr2hsErrorDocument 401
にはローカルのパスじゃないとだめみたいで、
リモートの401ページが指定できないのですが、
例えば、
Error Document 401 http://○○.com/401.php
みたいな感じでやりたかったのですが
[notice] cannot use a full URL in a 401 ErrorDocument directive --- ignoring!
となってしまいます。
どう対処すればよいのでしょうかよろしくおねがいします
0263nobodyさん
2009/10/19(月) 08:21:52ID:???ErrorDocument 401 /401.php
0265nobodyさん
2009/10/19(月) 15:14:54ID:oO1BiORv登録とともに、メールアドレスも同時に発行したいと考えています。
phpからメールアドレスを作る簡単な方法を教えて頂けませんか?
メールサーバーはsendmailです。
どうぞ宜しくお願いします。
0267nobodyさん
2009/10/19(月) 16:09:44ID:???sendmailと一言書くだけの君にはそれ以上のものを説明するのは難儀だ・・
0268nobodyさん
2009/10/19(月) 16:17:33ID:BtEfrA+m$ary[0][0]="a";$ary[0][1]="b";
$ary[1][0]="c";$ary[1][1]="d";
print_rの結果
Array(
[0] = > Array(
[0] => a
[1] => b
)
Array(
[1] = > Array(
[0] => c
[1] => d
)
これの一次元が0の配列を全て削除したいのですが
unset($ary[0]);とやっても一次元は消えるのですが二次元のほうは消えませんでした
求める結果
Array(
[1] = > Array(
[0] => c
[1] => d
)
一次元の[0]の配列(aとbが含まれている[0])を一気に全部消す方法はございませんか?
0269nobodyさん
2009/10/19(月) 16:30:07ID:???試しに書いてみたんだが…
<?php
$ary[0][0]="a";$ary[0][1]="b";
$ary[1][0]="c";$ary[1][1]="d";
var_dump($ary);
unset($ary[0]);
var_dump($ary);
?>
array(2)
{
[0]=> array(2) { [0]=> string(1) "a" [1]=> string(1) "b" }
[1]=> array(2) { [0]=> string(1) "c" [1]=> string(1) "d" }
}
array(1)
{
[1]=> array(2) { [0]=> string(1) "c" [1]=> string(1) "d" }
}
と消えているっぽいんだが…
0270268
2009/10/19(月) 16:34:33ID:???どうしても2次が消えません
$ary[0][0]="a";$ary[0][1]="b";
$ary[1][0]="c";$ary[1][1]="d";
unset($ary[0]);
でprint_rの結果はこうなります
Array(
[0] => a
[1] => b
)
Array(
[1] = > Array(
[0] => c
[1] => d
)
0271268
2009/10/19(月) 16:37:24ID:???何か環境がおかしくなってるみたいなので一旦解決済みにします
0272nobodyさん
2009/10/19(月) 17:46:49ID:???0273nobodyさん
2009/10/19(月) 21:02:39ID:Vr0Rkez/【PHPのバージョン】php-5.2.10
【連携ソフトウェア】ImageMagick(2.2.1 )/Grapicmagick(1.0.1-b1)
【質問内容】
宜しくお願いします。
現在サーバに収納している画像ファイルの一覧プレビューを行うスクリプトを記述しているのですが、マルチページTIFFでハマってしまいまし。
シングルページTIFFであれば上記のImagick/Gmagickで問題なくプレビュー表示出来るのですがマルチページの場合は表示に何があります。
・ImageMagick:最後のページの表示。
・GraphicMagick:表示されない。
画像をファイル出力すればシングルページになるのですが、出力せずに取り込んだ状態で「echo $image」($imageがインスタンス)でヘッダー情報を付与してIMGタグにて直接出力したいのです。
知りたい事は下記のことです。
マルチページのページ数の取得。
任意のページの出力。
出来ればGrapicsMagickで処理を行いたい。
Webサイトを巡回してもマルチページTIFFについてはConvertコマンドでのファイル切り出しのみでPHPで使用する場合の記述はありません。
ご存知の方がいらっしゃいましたらご教示の程宜しくお願いします。
0274nobodyさん
2009/10/20(火) 04:26:38ID:dt9+CcDD大きいファイルをDBに入れるにはどうすればいいでしょうか
ご教授ください
0276nobodyさん
2009/10/20(火) 09:18:38ID:???upload_max_filesizeだけではなくmemory_limitも変えないとこけるからね
念のため
0277nobodyさん
2009/10/20(火) 09:28:48ID:hamOlnHDドメインがa.comのサーバで、ドメイン名を「x.com」と指定して書きこんだCookieは、
ドメインx.comのサーバで読めるのでしょうか。
よろしくお願いします。
0278nobodyさん
2009/10/20(火) 09:44:05ID:???クロスサイトってキーでググれ。
こんな時代にセキュリティを全然判ってない。
まーかわいそうだからヒントやるよ。GETかPOSTで渡しとけ。
0282nobodyさん
2009/10/20(火) 10:01:42ID:???そんなことできるのかと思ってやってみたら一応ヘッダは送られるのな
ブラウザは無視しているような挙動だったが
0283nobodyさん
2009/10/20(火) 10:43:20ID:???サーバ側から送信するように書くのは自由だけどあくまでもブラウザ側でチェックしないといけないことだし
0284大至急
2009/10/20(火) 11:33:00ID:JKmaOzfSプログラムを教えて下さい。
今日の夕方までに必要なので、遅くても15時までにはご解答をお願いします。
0286nobodyさん
2009/10/20(火) 11:55:46ID:???直前にある>>277-283の流れを見ていたらわかるだろう?
と思ったが、別サイトでも同じドメインならパスを'/'とかにすれば可能
0287277
2009/10/20(火) 11:57:10ID:hamOlnHD0289大至急
2009/10/20(火) 12:15:24ID:JKmaOzfSいえ、別のドメインでもできるようなスクリプトを望んでいます。
>>288
クラッキングではありません。
訪問者がどのようなサイトを訪れているかを分析して、
その訪問者にあったメッセージを表示するプログラムを作りたいだけです。
あと、3時間しかありません。申し訳ありませんが、最優先でお願いします。
0291大至急
2009/10/20(火) 12:36:01ID:JKmaOzfSありがとうございます。
期待しています。
0292nobodyさん
2009/10/20(火) 12:36:58ID:3y8nZV0mそれかFWのソレ。
他にオススメの方法があったら教えて下さい。
0294nobodyさん
2009/10/20(火) 12:58:51ID:???もしクッキーが読めちゃうなら「どのようなサイトを訪れているか」ではなくて
別サイトの「どんな情報を持っているか」を見てるのでは?
強引な手法で履歴を取得する方法はあるけど、クッキーは無理
できたらセキュリティ的にまずいだろう
0295大至急
2009/10/20(火) 13:35:52ID:JKmaOzfSできないできない、じゃなくて、できる代替案を考えろ馬鹿。
0297nobodyさん
2009/10/20(火) 13:55:48ID:???0298nobodyさん
2009/10/20(火) 13:58:05ID:???0299nobodyさん
2009/10/20(火) 14:04:49ID:???0300nobodyさん
2009/10/20(火) 14:08:09ID:???こんなやつ(大至急)のために下手に出なければいけない理由は?
っていうかみんなわかってんだけどいわないだけ > ちょー役に立たねぇー奴らw
勝手に死んどけ
0301nobodyさん
2009/10/20(火) 14:11:57ID:???cookieじゃないが、 こういうのでどうだ。
http://it.nikkei.co.jp/internet/news/index.aspx?n=MMITbe000015102008
0302大至急
2009/10/20(火) 14:39:10ID:JKmaOzfSありがとうございます。これでいいです。
クライアントに代替案を出せって言われて困っていたので、
これコピって送ります。助かりました。
追伸
結局、>>301の方以外は、冷やかしでこのスレに常駐している集まりなんですね。
本当に、砂漠の中にある金塊を見つけるがごとしです。
0304nobodyさん
2009/10/20(火) 14:46:41ID:???そうでないなら頭が悪すぎる
クライアントにあきれられるのがおちw
0305nobodyさん
2009/10/20(火) 14:53:21ID:???ID:JKmaOzfS があの手法で良いと言っているんだから良いんじゃね?
砂漠の中で見つけた金塊が本物かどうかも確認しないで持ち帰るのは
本人の勝手だし
0306nobodyさん
2009/10/20(火) 15:21:13ID:???0307nobodyさん
2009/10/20(火) 15:27:30ID:???0308nobodyさん
2009/10/20(火) 15:31:05ID:???0309nobodyさん
2009/10/20(火) 15:47:05ID:???0310nobodyさん
2009/10/20(火) 17:14:32ID:???あまりブラック会社に悪いこと教えちゃダメよん
0312nobodyさん
2009/10/20(火) 17:34:11ID:???0313nobodyさん
2009/10/20(火) 18:06:27ID:???javascriptで取得してるだけだよ。
0314nobodyさん
2009/10/20(火) 18:29:31ID:???0315nobodyさん
2009/10/20(火) 18:40:44ID:???0316nobodyさん
2009/10/20(火) 18:53:20ID:???0317nobodyさん
2009/10/20(火) 19:53:10ID:DJDnqjY2DBにワンタイムコード記録する方法以外で何か無いですかね?
携帯でも対応させたいので、手軽な方法無いか探しているのですが
ググっても見つからないし、他に思い浮かばなくて・・・
0318nobodyさん
2009/10/20(火) 20:32:20ID:mUSPneVM0319nobodyさん
2009/10/20(火) 21:01:13ID:???0320nobodyさん
2009/10/20(火) 21:04:52ID:QCSnncKX【PHPのバージョン】php5.29
【質問内容】Net/SmartIRCを利用してBOTを作っているのですが、トークにどうやったら反応するのかがわかりません。
BOTにトークで話しかけたら反応を返す、またはチャンネルで発言した言葉に反応してトークで返す、
のどちらかをしたいのですが、どうやったら良いでしょうか?
ちなみに、後者の方はこちら側からトーク画面を開いておいたらトーク内で発言を返すことはできましたが、
あらかじめトークの画面を開いていない場合はトークを返せませんでした。
0323nobodyさん
2009/10/20(火) 21:12:53ID:???0324322
2009/10/20(火) 21:21:56ID:???さんきゅ。
ad4u ひろみちゅで検索したら、1/5ほどのせた、っていうページがあった。
http://blog.myrss.jp/archives/2008/12/ad4u_11000.html
0325nobodyさん
2009/10/20(火) 21:54:58ID:???個人向けと法人向けが2つあった場合登録ページを分けるべき?
またその場合は、フォルダを分けたほうが良い?
0326nobodyさん
2009/10/20(火) 22:36:22ID:???0327nobodyさん
2009/10/20(火) 22:55:57ID:???0328nobodyさん
2009/10/20(火) 22:59:20ID:???0329nobodyさん
2009/10/20(火) 22:59:43ID:???0331nobodyさん
2009/10/20(火) 23:08:55ID:???スクリプト厨って馬鹿にされるぞ
0332nobodyさん
2009/10/20(火) 23:24:14ID:???0333nobodyさん
2009/10/20(火) 23:34:41ID:???0334nobodyさん
2009/10/20(火) 23:39:17ID:???htmlのみで。
0335nobodyさん
2009/10/20(火) 23:58:42ID:???まだpearlの方がメインで多く使われてるみたいだ
0336nobodyさん
2009/10/21(水) 00:16:56ID:???これでいいだろ
0337nobodyさん
2009/10/21(水) 01:55:04ID:???0338nobodyさん
2009/10/21(水) 01:56:21ID:???0339nobodyさん
2009/10/21(水) 02:28:02ID:???0340nobodyさん
2009/10/21(水) 06:28:54ID:JoENl7DBご協力頂きたく投稿させて頂きました。
風見鶏の日本医師会について抗議をしませか?
人が一番苦しい時に助けてあげるのが、
医師ではないでしょうか?
今まで仲良くやってきておきながら、
苦境に立たされたら縁を切る。こんなことがあっていいのでしょうか?
日本人の義理人情はどうなってしまったのか。全く納得できません。
http://www.yomiuri.co.jp/e-japan/ibaraki/news/20091020-OYT8T01321.htm
来春に予定されている日本医師会長選への立候補を表明している県医師会の原中勝征会長は
「民主党と仲良くしたいと言っても、参院選で組織内候補を自民党から推すのであれば誰も信用しない」と、
自民党との決別を求める姿勢を強調、「このままいったら日本医師会がだめになるのは確か。
できるだけ早くマニフェストを書いて理解を深めたい」と話した。
0341nobodyさん
2009/10/21(水) 08:09:33ID:N99G4kgzところで祝日とかのリストってどこかに落ちてませんか?
0342nobodyさん
2009/10/21(水) 08:44:50ID:???http://jo1upk.blogdns.net/saito/?%E8%87%AA%E4%BD%9C%2FPHP%2Fpublic_holiday.php
春分/秋分の日は閣議決定なので、変わる可能性が無いとは言えない。
0343nobodyさん
2009/10/21(水) 08:48:02ID:JoENl7DB民主党の連中が決定する閣議なんて信用しちゃ駄目だよ。
やっぱり、自民党が一番よくわかっている。
0344nobodyさん
2009/10/21(水) 09:40:12ID:N99G4kgz早速カレンダー作りします
0345nobodyさん
2009/10/21(水) 09:51:45ID:???0347nobodyさん
2009/10/21(水) 10:38:23ID:JoENl7DB日本郵政に、新社長に元大蔵次官の斎藤次郎氏が内定した。
0348nobodyさん
2009/10/21(水) 10:45:36ID:mqyZqK+cphp5.3を使うときスレッドセーフとノンスレッドーセフのどっちを使ったほうがいいでしょうか?
違いがわかりません
0350nobodyさん
2009/10/21(水) 10:59:34ID:mqyZqK+cありがとうございますスレッドセーフをインストールします
補足
調べてみたらwindowsでapacheを使うならスレッドセーフを使ったほうがいいみたいでした
IISを使う場合はVC9のほうを、そうでないならVC6のを使うそうでした
linuxでは非スレッドセーフでもOKみたいでした
0351nobodyさん
2009/10/21(水) 11:34:01ID:JoENl7DBそれを人に頼っている時点で、自身の存在意義がないだろう。
自助努力で解決できるのが真の技術者だ。
最近、こういう基本的な姿勢を理解していない奴が多すぎる。
0352nobodyさん
2009/10/21(水) 11:36:09ID:???0353nobodyさん
2009/10/21(水) 11:36:21ID:???0354nobodyさん
2009/10/21(水) 11:36:34ID:???0355nobodyさん
2009/10/21(水) 11:39:46ID:???0356nobodyさん
2009/10/21(水) 11:41:24ID:???0357nobodyさん
2009/10/21(水) 12:19:47ID:???0358nobodyさん
2009/10/21(水) 13:17:25ID:2lSXu71G文字列をUTF-8に変換してbinhexとかurlencodeを通しても
受け取るのは14845842(0xE28792)のような違う数値になってしまいます。
これはどうしたらいいのでしょうか。
0359nobodyさん
2009/10/21(水) 13:19:59ID:GvFW1IVNコマンドでどのように書くのでしょうか?
0361nobodyさん
2009/10/21(水) 13:38:24ID:2lSXu71Gそれはわかるんですが、8658 (0x21d2)を取得するにはどうしたらいいんでしょうか。
0362nobodyさん
2009/10/21(水) 14:05:04ID:???echo bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8"));
0363nobodyさん
2009/10/21(水) 14:06:40ID:???bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8"));
bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8"));
0365nobodyさん
2009/10/21(水) 14:49:04ID:???> bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8"));
> bin2hex(mb_convert_encoding("⇒","Unicode","UTF-8"));
0366nobodyさん
2009/10/21(水) 14:56:22ID:???function charRefer($str, $to = "Unicode", $from = "UTF-8") {
return "?x".bin2hex(mb_convert_encoding($str, $to, $from)).";";
}
0367nobodyさん
2009/10/21(水) 14:57:55ID:???0368nobodyさん
2009/10/21(水) 15:02:23ID:???0369nobodyさん
2009/10/21(水) 15:07:02ID:???http://pear.php.net/go-pear
これ使えばよかったんじゃなかったっけか
0370nobodyさん
2009/10/21(水) 15:55:18ID:vwO/c7IHそういうやつに絡まれたら刺されそうな気がするな
おまえらならこういう池沼に遭遇してこういう場面になったらどうするか教えてください
0371nobodyさん
2009/10/21(水) 16:59:33ID:???0372nobodyさん
2009/10/21(水) 17:11:17ID:???0373nobodyさん
2009/10/21(水) 17:11:36ID:???0374nobodyさん
2009/10/21(水) 17:30:18ID:???0375nobodyさん
2009/10/21(水) 17:30:34ID:???> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
> UTF-8とUnicodの違い
0376nobodyさん
2009/10/21(水) 17:31:43ID:???上から目線で回答する人間がウザ過ぎる。殴ってやりたい。
0378nobodyさん
2009/10/21(水) 17:34:38ID:???0379nobodyさん
2009/10/21(水) 17:41:05ID:???ここで偉そうに聞いてちゃんと答えてもらえなかったやつの逆恨みか。
0380nobodyさん
2009/10/21(水) 17:41:12ID:???将来は東大に行って官僚になるんじゃないか、なんて言われていたっけ。
ちょっとwebの知識があるだけで、上から目線はやめろよ。
0381nobodyさん
2009/10/21(水) 17:50:48ID:???0382370
2009/10/21(水) 18:00:05ID:+bbQosq30383nobodyさん
2009/10/21(水) 18:14:14ID:???今朝シカトされたのがそんなに悔しかったのか?
かわいそうなやつめ
0384nobodyさん
2009/10/21(水) 18:14:52ID:???0385nobodyさん
2009/10/21(水) 19:25:07ID:q1u7DFmEたとえばこのように入力するとテーブルが作られるだけで項目が追加されません
CREATE TABLE files(
id INTEGER NOT NULL PRIMARY KEY,
test1 TEXT
);
INSERT INTO up_file VALUES (NULL, 'test');
INSERT INTO up_file VALUES (NULL, 'test');
どのようにしたらいいのでしょうか
0386nobodyさん
2009/10/21(水) 19:25:11ID:q1u7DFmE<form action="<?php echo basename(__FILE__); ?>" method="post">
<textarea rows="10" cols="60" name="req"></textarea><br />
<input type="submit" />
</form>
<?php
if(isset($_POST['req'])){
if($db = new SQLiteDatabase('sqlite.db', 0666, $sqliteerror)){
if($result = $db->arrayQuery($_POST['req'])){
$echo = "";
$echo .="<table>";
foreach($result as $array){
$echo .= "<tr>";
foreach($array as $key => $value){
$echo .= "<td>(".$key.")".$value."</td>";
}
$echo .= "</tr>";
}
$echo .="</table>";
echo $echo;
}
echo "<br /><pre>".$_POST['req']."</pre>";
}else{
var_dump($sqliteerror);
}
}
?>
0387nobodyさん
2009/10/21(水) 19:27:32ID:???0389nobodyさん
2009/10/21(水) 19:29:20ID:q1u7DFmESQLiteはPRIMARY KEYな項目にNULLを入れるとAUTOINCREMENTされるのです
0390nobodyさん
2009/10/21(水) 19:33:03ID:???0392nobodyさん
2009/10/21(水) 19:40:51ID:???0394nobodyさん
2009/10/21(水) 21:04:47ID:???> SQLiteはPRIMARY KEYな項目にNULLを入れるとAUTOINCREMENTされるのです
明示するのが正攻法、
id INTEGER PRIMARY KEY AUTOINCREMENT
0395nobodyさん
2009/10/21(水) 21:11:57ID:q1u7DFmEWarning: SQLiteDatabase::arrayQuery() [sqlitedatabase.arrayquery]: near "AUTOINCREMENT": syntax error in /home/httpd/***/public_html/***.php on line 25
0396nobodyさん
2009/10/21(水) 21:12:13ID:???0397nobodyさん
2009/10/21(水) 21:14:58ID:???0399nobodyさん
2009/10/21(水) 21:30:45ID:???0400nobodyさん
2009/10/21(水) 21:35:18ID:q1u7DFmE0401nobodyさん
2009/10/21(水) 21:35:28ID:???0402nobodyさん
2009/10/21(水) 22:42:45ID:???一般的にファイル名は何かな?index.php?
0403nobodyさん
2009/10/21(水) 22:50:10ID:???実態は index.php?mode=login とかまあ別に何でもいいと思うが
0405nobodyさん
2009/10/21(水) 23:57:48ID:VcPQwNyuえすきゅーえるいんじぇくしょんとかせっしょんはいじゃっくとかぼーとすきゃんとか
ハッキング対策全般が分かりやすく書いてる本でおすすめがあったらお願いします。
0406nobodyさん
2009/10/22(木) 00:12:40ID:???0407nobodyさん
2009/10/22(木) 00:13:59ID:???0408nobodyさん
2009/10/22(木) 03:53:32ID:???0409nobodyさん
2009/10/22(木) 04:35:57ID:???脆弱性が多いとかZend信用されてなさすぎだろ
0411nobodyさん
2009/10/22(木) 09:45:10ID:???本じゃないけど、大垣たんの連載全部読めば?
連載:なぜPHPアプリにセキュリティホールが多いのか?|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/php-security
0412nobodyさん
2009/10/22(木) 10:02:24ID:???やあ大垣君、宣伝ごくろうだな
てめえのksサイトには興味ねえんだks
今日は質問してやるからここのスレのksどもはすぐ調べて来い
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども
0414nobodyさん
2009/10/22(木) 10:09:25ID:qCOOWV7S今日は質問してやるからここのスレのksどもはすぐ調べて来い
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども
0415nobodyさん
2009/10/22(木) 10:11:32ID:???0417nobodyさん
2009/10/22(木) 10:34:31ID:???俺様が手本見せてやるから見てろ
おい、ここのスレ見てるMのカス共、そこの池沼お前だ
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども
同じ板で大暴れですな
今日も可変ID使いは元気です
0418nobodyさん
2009/10/22(木) 10:49:29ID:???0420nobodyさん
2009/10/22(木) 11:03:31ID:???0421nobodyさん
2009/10/22(木) 11:09:25ID:???0422nobodyさん
2009/10/22(木) 11:16:41ID:???削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
421 名前:nobodyさん[sage] 投稿日:2009/10/22(木) 11:09:25 ID:???
削除依頼出すよりも、不正アクセス禁止法違反で刑事告訴するような案件じゃないか?
0423nobodyさん
2009/10/22(木) 11:17:01ID:GGgiWLj/それです、ありがとうございました。
そういえば10進にするのにbin2decはないんですね。hexdec通せばいいだけですが。
>>367
半角で書くと<みたいに出てしまうのが問題かと思って全角に
>>372,381
はい、UnicodeとUTF-8、UTF-16などを勘違いしてました。申し訳ない。
頭カッチカチになっててUnicodeにすることに頭がいきませんでした。
0425nobodyさん
2009/10/22(木) 11:29:35ID:???0426nobodyさん
2009/10/22(木) 11:33:17ID:???0427nobodyさん
2009/10/22(木) 11:36:42ID:???どっちもいらん。
0428nobodyさん
2009/10/22(木) 11:39:43ID:???おまえもいらん
0429nobodyさん
2009/10/22(木) 12:38:24ID:???0430nobodyさん
2009/10/22(木) 12:44:18ID:???正規表現くん
OCNくん
チンピラくん
0431nobodyさん
2009/10/22(木) 13:02:36ID:???0432nobodyさん
2009/10/22(木) 13:16:34ID:???ていうかこのスレであっちの話題持ってくるな
またバカが暴れる
0433nobodyさん
2009/10/22(木) 13:25:07ID:???0434nobodyさん
2009/10/22(木) 13:26:19ID:???0435nobodyさん
2009/10/22(木) 13:39:10ID:NNeAiTXHPHP5.3でデフォルトで使用できるようになったfinfo_buffer関数を試してみたいのですが
マニュアルに書いてあった下記のサンプルコードを試してもエラーになりました
<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>
エラー:PHP Fatal error: Class 'finfo' not found
どうやったらfinfo_bufferは使えるのでしょうか?
0436nobodyさん
2009/10/22(木) 13:51:39ID:???ttp://blog.fortelab.net/archives/23
0439435
2009/10/22(木) 14:05:29ID:???0440nobodyさん
2009/10/22(木) 14:07:06ID:???0441nobodyさん
2009/10/22(木) 14:09:13ID:???0442nobodyさん
2009/10/22(木) 14:18:18ID:???クラス名も小文字で色々違和感があるクラスだな
0443nobodyさん
2009/10/22(木) 14:18:20ID:BC6gKUnK$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>
のようなクラス?での書き方コードではなく関数としてfinfo_buffer(パラメータ)形式でのサンプルってありませんか?
0444nobodyさん
2009/10/22(木) 14:25:32ID:???fileinfo関数って関数だけどクラスとしても使えるってことなんですね
$file = file_get_contents("d:/test.php");
$fp =finfo_open();
$fb = finfo_buffer($fp,$file,FILEINFO_NONE);
print_r($fb);
0445nobodyさん
2009/10/22(木) 14:26:19ID:???関数でありクラスメソッドであるみたいな
PHP使いは随分変なことするな・・・
finfo入ってないし動作するかわからないけどマニュアル見るかぎりだと
$finfo = finfo_open(FILEINFO_MIME);
echo finfo_buffer($finfo, $_POST['script']) . "\n";
かな?
0446nobodyさん
2009/10/22(木) 14:28:43ID:BC6gKUnK↓のスパムフィルターの意味がわかりません
Answer to this simple question (SPAM challenge):
nine minus one?
0447nobodyさん
2009/10/22(木) 14:30:18ID:???0448nobodyさん
2009/10/22(木) 14:30:34ID:BC6gKUnKhttp://www.php.net/manual/add-note.php?sect=ref.fileinfo&redirect=http://www.php.net/manual/ja/ref.fileinfo.php
0450nobodyさん
2009/10/22(木) 14:36:07ID:BC6gKUnKYour IP is listed in one of the spammers lists we use, which aren't controlled by us. More information is available at http://www.dnsbl.info/lookup.asp?IP=***.**.**.**.
0451nobodyさん
2009/10/22(木) 14:40:23ID:???0452nobodyさん
2009/10/22(木) 14:44:21ID:BC6gKUnK誰かに手柄上げますので投稿できる方は>>444を投稿してください
改変しようが自由です
0453nobodyさん
2009/10/22(木) 15:33:39ID:???0454nobodyさん
2009/10/22(木) 15:42:45ID:???0455nobodyさん
2009/10/22(木) 15:45:07ID:???0456nobodyさん
2009/10/22(木) 15:51:02ID:???0457nobodyさん
2009/10/22(木) 15:54:54ID:???0458nobodyさん
2009/10/22(木) 16:00:52ID:???0460nobodyさん
2009/10/22(木) 16:05:12ID:???0462nobodyさん
2009/10/22(木) 16:18:52ID:???0463nobodyさん
2009/10/22(木) 16:21:03ID:???0464nobodyさん
2009/10/22(木) 17:03:57ID:2Qgc9o0Rphpで携帯サイトのフォームを作っていて、ファイルサイズが20kbです。実際表示されると8kbで、
携帯サイトのファイルサイズ上限を10kbと考えていますが、問題はないのでしょうか。
phpファイル(20kb)がサーバーで処理を行う→クライアントのブラウザに表示される(8kb)
なのでOK?
0465nobodyさん
2009/10/22(木) 17:05:49ID:???・php.iniで余計な情報が出力されることがデフォルトの設定になっている。
・コンパイルのプロセスがないため、実行時にエラーになる場合がある。
・実装によって、クラスのプライベート・パブリックの別がなくなる。
・Apacheの特定のバージョンと組み合わせた場合に、原因不明のダウンが起こる。
・型が曖昧で、非宣言でも使えるがための論理バグが生じる。
私の認識は、これくらいですが、これらは言語の責任というよりも、
その実装責任者の技量によるところが大であること考えています。
0466nobodyさん
2009/10/22(木) 17:10:20ID:???PHPファイルのサイズを見てどうするよ
出力するサイズを見ないと
>>465
・実装によって、クラスのプライベート・パブリックの別がなくなる
こんなことあるの?
0467nobodyさん
2009/10/22(木) 18:37:25ID:???0469nobodyさん
2009/10/22(木) 19:15:06ID:???一番は、セキュリティに対しての意識が低い、間違ってる本やサイトがいっぱい出てることによる弊害じゃないかな。
0474nobodyさん
2009/10/22(木) 20:44:23ID:???って書きたくなるくらい、PHP初心者向けって信頼されてないよぁw
書籍作って販売するって、やる気さえあれば簡単に出来るものなの?
0475nobodyさん
2009/10/22(木) 20:44:55ID:???0476nobodyさん
2009/10/22(木) 20:46:57ID:???だいたいWebでPHP初心者講座みたいの開いてにぎわってきて出版社の目にとまると
この内容に手を加えて本を出してみないか?みたいにアプローチが来る
0477nobodyさん
2009/10/22(木) 20:54:49ID:???初心者向けPHP本が出る → セッションを使ってない/使い方がおかしい、サニタイズが(ry
あたりのツッコミを入れられまくるのが一種のお約束だったぐらいに酷かった気がする。
そろそろ1冊ぐらい、無難なのがあるんだろう。いやきっとあるはず。
0478nobodyさん
2009/10/22(木) 21:18:09ID:???0479nobodyさん
2009/10/22(木) 21:23:41ID:???じゃあ、私のサイトにスカウトが来たらロリコンの為のPHP教本とか作れるのか
0480nobodyさん
2009/10/22(木) 21:37:53ID:???原稿料が安いし、使い捨てって感じ。
本を出したという実績が欲しい人にはいいけど、
金儲けのために本を作る人はいないと思う。このご時世。
0481nobodyさん
2009/10/22(木) 22:03:03ID:???俺はこんな感じだけど
function select_xxxx(&$result, $condition)
{
$result = 結果;
return TRUE;
}
0482nobodyさん
2009/10/22(木) 22:03:31ID:???日経風に、「間違いだらけのサニタイズ」「セッション管理に失敗しない10の方法」
「フレームワーク最前線」とかタイトル並べれば通る気がする。
0483nobodyさん
2009/10/22(木) 22:04:43ID:???0485nobodyさん
2009/10/22(木) 22:16:02ID:???0486nobodyさん
2009/10/22(木) 22:29:11ID:???手抜きするなら普通に必要なところでクエリ作って投げる。ていうか関数化する意味あるのかそれ。
0487nobodyさん
2009/10/22(木) 22:31:40ID:???車輪の再開発だな
0488nobodyさん
2009/10/22(木) 22:32:34ID:???クラス化するとログが取りやすくなって便利。デコレータ・パターンとかでロガーを簡単に仕込める。
0489nobodyさん
2009/10/22(木) 22:36:33ID:???0490nobodyさん
2009/10/22(木) 22:45:55ID:???SQLは、ビジネスクラスの中で書いているけど、普通?
SQL毎にクラス作っていたら、膨大なクラス数になるよね?
0491nobodyさん
2009/10/22(木) 22:47:53ID:???0492nobodyさん
2009/10/22(木) 22:49:30ID:???0493nobodyさん
2009/10/22(木) 22:50:38ID:???その設計古すぎというか、駄目。
SQL文は外だしのファイルにして、一個所にまとめないと、
あっちこっちSQL文だらけになってメンテナンスに困るだろう?
0494nobodyさん
2009/10/22(木) 22:52:44ID:???SQLとビジネスロジックがごちゃごちゃして分かりにくい。
普通はSQLは、外部ファイル化して、それをデータベースのアクセスクラスが読み込むのが標準的な設計だと思うが。
0495nobodyさん
2009/10/22(木) 22:53:40ID:???0496nobodyさん
2009/10/22(木) 22:59:03ID:???SQL文一個につき1関数じゃダメなの?
0499nobodyさん
2009/10/22(木) 23:04:41ID:???0500nobodyさん
2009/10/22(木) 23:05:10ID:???0501nobodyさん
2009/10/22(木) 23:21:24ID:tJpAUHQM(以前は表示できていたのですが)見れなくなってました。
情報量が多かったのでPHPファイル内をわずかなテキストだけにしました。
が、それすら表示できませんでした。パソコンでは問題なく見れます。
エラーは下記です。
エラーが発生しました。レスポンスが不正です。WJ40164E
どうすればよいのでしょう?
0502nobodyさん
2009/10/22(木) 23:27:58ID:???0508nobodyさん
2009/10/22(木) 23:48:20ID:???0510nobodyさん
2009/10/23(金) 00:02:06ID:X9i7QbIU>>504
もちろんそれは検索済みです。。。
ほんの数件しか検索されなく、解決策もありませんでした。
0511nobodyさん
2009/10/23(金) 00:21:33ID:tmLg3YdR検索フォームのためのSQL文をきれいにソースと分けたいなぁと思っているのですけど
0512nobodyさん
2009/10/23(金) 00:37:44ID:tmLg3YdRhallow worldやphpinfoが表示出来ないというレベルで尚且つ、レンタルサーバの場合は
サーバ側で少し設定が変更されたかと思う。
firefoxやIEでHTTPヘッダーの情報が見れるアドオンとかあるし、
その情報を見れば少しは怪しいところが見えてくるかもしれない
0513nobodyさん
2009/10/23(金) 00:56:06ID:???1. SQLだけ記述したファイルを用意する
2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
3. SQL文字列をライブラリに渡してやり、実行する。
さらに一歩進めるなら、
実行して得られた結果セットを配列に入れて返してやる
0515nobodyさん
2009/10/23(金) 01:15:01ID:???,、'` ( ´∀`) ,、'`
'` ( ⊃ ⊂) '`
0516nobodyさん
2009/10/23(金) 01:23:42ID:???> 2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
そうじゃないだろ。どういう設計思想なんだよ。パフォーマンス無視?
0517nobodyさん
2009/10/23(金) 01:25:07ID:???0519nobodyさん
2009/10/23(金) 01:32:35ID:???最近では関数はあんまり使わないと思うよー。
一番単純なのは
class DB{
function geAAA(){
}
function geBBB(){
}
}
みたいな感じじゃないかなぁ。
SQL外だしっていうのも、実はあんまりメリットないと思う。
0520nobodyさん
2009/10/23(金) 01:34:58ID:???0521nobodyさん
2009/10/23(金) 01:38:30ID:U1ZTI1ef現在、PHPとMySQLを組み合わせたウェブサイトを作っています。
MySQLのデータベースには2つのテーブル(テーブルA、テーブルB)があり、PHPからこの2つのテーブルを参照し、以下の様に表示させたいと考えています。
data_id (参照A)
info (参照A)
date(参照A)
sonota(参照A)
koshin_joho(参照B) // テーブルBもdata_idを持っていて、テーブルAのdata_idとマッチする時のみ、ウェブにkoshin_johoを表示
現在、phpファイルからテーブルAの方はループを使ってそれぞれのカラムを参照し、表示する事ができているのですが、
テーブルAのためにループを使っているためか、テーブルBを参照する事ができません。
どのようにすればループを使ってMySQLに登録されているデータを一度にウェブ表示させている状態で、
テーブルAとテーブルBをループ内で同時に表示する事ができるのでしょうか?
長文失礼致しました。
0522nobodyさん
2009/10/23(金) 01:38:50ID:???結局よく分からないけど、
(1) SQL文はクラスに直書き?外だし?
(2) いずれにしても、SQL文が1000個あったら、1000クラス(ファイル)作るの?じゃないなら、グループ化の基準は?
(3) WHERE文の要素が可変の時は?
俺は、MVCでいうところのModelに全て直書き。だから、ソースのあちらこちらにSQL文が書かれている。
0523521
2009/10/23(金) 01:39:25ID:U1ZTI1ef【OS名】CentOS 5.3
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
0524nobodyさん
2009/10/23(金) 01:44:05ID:???BBSクラスにしよう。
BBSクラスはBBSに関する全ての情報・操作を引き受ける人。
他人はデータ取得・保存はできるだけ単純にできるようにってだけ。
だから、
取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
一概にどっちがいいとはいえない。
0527nobodyさん
2009/10/23(金) 01:47:10ID:???前半は、いいとして、
> 取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
> 一概にどっちがいいとはいえない。
それは、クラスを使いながら、考え方が全然オブジェクト指向じゃない。
0528nobodyさん
2009/10/23(金) 01:48:25ID:???1.SQLの機能をラップしたクラス
2. 1のクラスを使って機能を実現するクラス
という感じで分けてる、SQLは2へ直書き。
おそらくそれ以上ラップしたり、粒度を増やしても使うことは無いからということで。
0529521
2009/10/23(金) 01:49:08ID:U1ZTI1ef$sql1 = "SELECT x FROM tableA";
$sql2 = "SELECT x FROM tableB";
$tablea = mysql_query($sql1);
$tableb = mysql_query($sql2);
while($row = mysql_fetch_array($tablea)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
}
while ($row2 = mysql_fetch_array($tableb)){
if ($row2['data_id'] eq $row['data_id']){
echo $row2['koshin_joho'];
}
}
0531nobodyさん
2009/10/23(金) 01:53:32ID:U1ZTI1efありがとうございます。
こういう事でしょうか?
$sql = "SELECT x FROM tableA, tableB where tableA.data_id = tableB.data_id";
$table = mysql_query($sql);
while($row = mysql_fetch_array($table)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
echo $row['koshin_joho'];
}
0532nobodyさん
2009/10/23(金) 01:56:08ID:???スレッド名一覧をとる
getAll()
ID指定してスレッドとる
getById()
なんて分けるのは割りとあると思うけどなー
返ってくるモノが違うってとき。
0533nobodyさん
2009/10/23(金) 01:57:50ID:U1ZTI1efそれだとkojin_johoが書かれているテーブルの内容しか表示されません。
0535nobodyさん
2009/10/23(金) 02:09:54ID:???外部結合でググろう
SELECT * FROM tableA LEFT JOIN tableB ON tableA.data_id = tableB.data_id;
0536nobodyさん
2009/10/23(金) 02:12:01ID:???0538nobodyさん
2009/10/23(金) 05:47:37ID:QLP+l4hNこのサイト使ってphpを始めたのですが、POSTとGETを同時に使う重要性が分からないです。
Formタグの action の項目にGETをあらかじめ入力しているだけなので、ブラウザでのユーザの操作で変化しないです。
確かに同時に使っていますが、メリットが分からないです。むしろ、ユーザに書き換えられる危険性の方が高い気がします。
またhidden についても同様で、わざわざ入門のページにある割に、使い道が分からないです。
POSTとGETを同時に使う意味はありますか?
0539nobodyさん
2009/10/23(金) 06:08:57ID:???ケースバイケースで両方使う場合もあると書いているんだろう
俺もいろいろ書いてきたがGETとPOSTを併用したのは1度だけある
どういうケースで使ったのかはちょっと思い出せないが併用したことは覚えている
必要になれば使えばいいだけの話だからそんな深く考えなくていいよ
一生使わないかもしれないし頻繁に使うかもしれないし
結局その人が何作ってるか・どういう風に組んでいるかによる
hiddenはたとえば何かのアカウントを取得するときを想定するとわかりやすい
アカウント取得には
登録のために個人情報を入力する(Input)→
登録確認(個人情報確認)画面に進み登録するか確認する(Confirm)→
登録完了
というプロセスをとる場合が多いわけだが
Input画面で入力した情報をConfirm画面で出力するためには
Confirm画面にどうにかしてInput画面で入力したものを受け渡さないといけない
そういうときに使うのがhidden
ようするに前のページの情報をページ遷移(移動)後でも使うために使う(情報を持ちまわすのに使う)
0540nobodyさん
2009/10/23(金) 07:28:00ID:???例えばコマンドプロンプトからバッチファイルはexeみたいに
実行できないでしょうか?
0541nobodyさん
2009/10/23(金) 07:35:54ID:???なるほど 隠す用途じゃなくて見えなくさせているだけってことか。
入力された変数をhiddenのところにprinfするなら、確かに次も値を使えそうです。
2chにブラウザで書き込んだ時に出る「書きこみ&クッキー確認」の画面でもhiddenを見つけられました。
ありがとうございました。
0542nobodyさん
2009/10/23(金) 08:45:41ID:pXxGvaT3「PHPの」初心者ですが、
「セッション管理に失敗しない10の方法」を教えて頂けませんでしょうか。
0543nobodyさん
2009/10/23(金) 09:13:04ID:???0547nobodyさん
2009/10/23(金) 21:49:42ID:???0548nobodyさん
2009/10/23(金) 22:02:21ID:???キャスターか?
0550nobodyさん
2009/10/24(土) 00:40:41ID:BvPjRTUmデータベースをcloseするにはどうしたらいいですか?
0551nobodyさん
2009/10/24(土) 00:51:30ID:???0552nobodyさん
2009/10/24(土) 00:54:41ID:BvPjRTUm0553nobodyさん
2009/10/24(土) 04:14:41ID:???コンストラクトでオープンするようになっている場合
デスクトラクト時にそのクラス側で勝手に終了してくれてると考えるきでは?
0554nobodyさん
2009/10/24(土) 04:18:45ID:???そのクラスに閉じるメソッドが定義されていなくて
コンストラクターでオープンするようになっている場合
デスクトラクターで勝手に閉じてくれていると考えるべきでは?
実際にそのクラスの中身はみてないしどういうのもしらないが
0555nobodyさん
2009/10/24(土) 04:28:53ID:???0556nobodyさん
2009/10/24(土) 04:43:06ID:???教えてほしいならどこがどうわからないのかID出して質問してね
0557nobodyさん
2009/10/24(土) 05:22:59ID:???554で言ったとおりどういうクラスかもしらないし中身もしらないけど(というよりSQLite使ったことない)
class SQLiteDatabase {
private DB接続ポインタ;
function __construct(接続情報) {
$this->DB接続ポインタ = sqliteオープン(接続情報);;
}
function query($sql) {
return 結果を配列で返す($sql);
}
function __destruct() {
sqliteクローズ($this->DB接続ポインタ);
//$this->DB接続ポインタ = null;
}
}
$obj = new SQLiteDatabase(接続情報);
$res = $obj->query("SELECT * FROM hoge WHERE 1");
foreach ($res as $row) {
echo $row."<br>";
}
//ここでデストラクターが呼ばれて勝手に終了する
たぶんこんな構造になってるんじゃないかと(間違ってるかもしれないけど)
SQLite自体明示的に終了させる必要がないDBかもしれないしその辺の事情は知らない
0558nobodyさん
2009/10/24(土) 05:24:18ID:???0561nobodyさん
2009/10/24(土) 08:20:12ID:???$objがスコープ内にいるのにデストラクタが呼ばれちゃまずいだろ。
0562nobodyさん
2009/10/24(土) 08:25:17ID:???<?php
class Hoge {
function Hoge() {
echo "construct<br>\n";
}
function a() {
return array("a", "b", "c");
}
function __destruct() {
echo "destruct<br>\n";
}
}
$obj = new Hoge;
foreach ($obj->a() as $value) {
echo $value."<br>\n";
}
?>
0563nobodyさん
2009/10/24(土) 08:44:46ID:???0564nobodyさん
2009/10/24(土) 09:21:19ID:???しかし相変わらずだな。
0565nobodyさん
2009/10/24(土) 09:29:15ID:???これ見方がわからないんだけど
SQLiteDatabase
SQLiteResult
SQLiteUnbuffered
に定義されてる各メソッドはそのクラスのみで使えて
目次のとこに書かれてるのは共通に使えるメソッド?
なんか無名関数のせいでマニュアルの見方がむずくなってきてる気がする・・・
0566nobodyさん
2009/10/24(土) 09:34:01ID:???明確に分ければいいのに
0567nobodyさん
2009/10/24(土) 09:49:09ID:o7jv7fS8しかし、実際HTMLなどのクライアントサイド側との連携がいまいち良く分かりません
本やちょっとしたPHP解説のサイトなどはメソッドとかプロパティなどの説明で終わっているもので
フォームなどの基本的な事は何処にでも書いてあるので分かるのですが、実践的なPHPとクライアントサイドとの連携したコードなど
書いてある書籍など自分の県では見つけられませんでした
実際にサイトを作る為のクライアント+サーバサイドを連携させたサンプルコードの載っているサイトや書籍は何かないでしょうか?
宜しくお願い致します
0568nobodyさん
2009/10/24(土) 09:50:26ID:???Ajaxスレいってください
0569nobodyさん
2009/10/24(土) 09:55:04ID:???0570nobodyさん
2009/10/24(土) 10:02:54ID:o7jv7fS8Ajaxですか?
Ajaxの事ではなく、例えばテンプレートとか実際に実装して作ったサンプルとかです
説明不足だったようです、すみません
例えば、Webデザインブックなどはいくらでも出ていますが、それらはただHTMLとCSSで実装しています
まぁたまにJavaScriptなどもありますが
自分は、人がサイトにアップロードした画像をサイトに情報つきで載せてレイアウトも崩れないようにしたいとか
(つまり$_FILESの概念はわかるけれどそれを実際クライアント側のコードにどのようにテンプレート内に実装・レイアウトしていくか)、
PEARによるログイン認証を行った後でそのログインしたユーザーのみが動的コンテンツを利用するためにはどのようにすればいいのか、
とかまぁ書けば色々と長くなりそうですが、そういう事です
自分側がただ作ったサイトを公開するだけではなく、ユーザーの参加できるようなサイトの作り方を、簡単でもいいので解説しているサイトや書籍が知りたいのです
0571nobodyさん
2009/10/24(土) 10:05:27ID:???おいおいwあんまり>>555をいじめんなよw
そんなの見せても>>555にはチンプンカンプンなんだぜwwwwwwww
今頃顔真っ赤にしてるだろうけど二度と出てこないよww
0572nobodyさん
2009/10/24(土) 11:35:30ID:???そういうのは、実際に必要になった時に調べたり考えたりしてもいいと思う。
PHPで家計簿でも何でもいいんで作ってみれば、分かってくるんじゃないかな。
気力があるなら、人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみるのが言いかと
0573nobodyさん
2009/10/24(土) 11:39:51ID:???JavaScriptとPHPの連携っていってるようなものだからAjaxって答えが返ってくるのも無理もない
MixiやYoutubeのようなSNSサービスをやりたいってことね
セッションとか勉強するといいよ
0575nobodyさん
2009/10/24(土) 11:58:58ID:???0577nobodyさん
2009/10/24(土) 12:01:27ID:o7jv7fS8レスアンカーは自分(>>570)にですよね?
そうだと思って返答させて下さい
>人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみる
こういうのはWebサイトで検索して、人が書いたサンプルコードを集めて学習しろという事なのでしょうか?
それとも、自分は知らない(というかコードを読み取られると危険なのでそもそも出来ないのではと思うのですが)、ソース読み取りソフトとかあるのでしょうか?
例えばWebサイトであればIEのソース機能やFireFoxのFireBugのようなHTMLのコードを表示出来る様なソフトの事です
>>573
あぁ、すみませんでした
自分の表現がおかしかったようです
HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、実際に運営する為の雛形コードを学習したかったのです
0578nobodyさん
2009/10/24(土) 12:05:25ID:???単にフォームからのリクエストを処理するPHPのコード、ってんなら、
PHPの本で2〜3章かけて解説してるんじゃね?
あとは自分の作りたいものに似てるの探して、コード読むべし。
0579nobodyさん
2009/10/24(土) 12:05:29ID:???>実際に運営する為の雛形コードを学習したかったのです
フレームワークのview部分とか見てみるといいかもしれない
0580nobodyさん
2009/10/24(土) 12:10:51ID:???aaa<br>
<?php
>>562のコード
?>
bbb<br>
でbbb<br>より後にdestructが現れるってことか?
どっちみちDBクローズならそれでもいいだろ
0581555
2009/10/24(土) 12:11:40ID:???無知を晒してしまいました
ごめんなさい
0582nobodyさん
2009/10/24(土) 12:22:14ID:???objにnullいれるだけ?
0583nobodyさん
2009/10/24(土) 12:59:43ID:???その下にまた<?phpが出てくるとか、include/requireされてるとか。
>>582
$objはスコープから外れてないけど、インスタンスは
ガベージコレクションで回収されるから、そのときに
デストラクタが起動されるんだと思う。
PHPで明示的なスコープって言ったら関数かな。
ローカル(グローバルでない)変数のスコープは関数内でしょ。
0584nobodyさん
2009/10/24(土) 13:03:20ID:???いやだからそれは俺が振られた理由になってねえよ
なんで会社の休憩時間にイタリアフルコース頼まないといけないんだよ
0585nobodyさん
2009/10/24(土) 13:16:46ID:???0586nobodyさん
2009/10/24(土) 13:56:20ID:???0587552
2009/10/24(土) 14:16:10ID:BvPjRTUmclass sqlite{
var $_result = array();
var $_pointer = null;
var $_message = null;
function connect($dbfile){
return $this->_pointer = sqlite_open($dbfile,0666,$this->_message);
}
function close(){
sqlite_close($this->_pointer);
}
function exec($que){
return sqlite_exec($this->_pointer,$que,$this->_message);
}
function array_query($que){
return sqlite_array_query($this->_pointer,$que,$this->_message);
}
function get_escape($str){
return sqlite_escape_string($str);
}
function get_result(){
return $this->_result;
}
function get_pointer(){
return $this->$_pointer;
}
function get_message(){
return $this->$_message;
}
}
0589nobodyさん
2009/10/24(土) 14:57:50ID:???0590nobodyさん
2009/10/24(土) 18:28:54ID:???あと、ヤンデレこえぇwww
0591nobodyさん
2009/10/24(土) 18:29:35ID:???0592nobodyさん
2009/10/24(土) 19:04:29ID:???若いっていいね。
0593nobodyさん
2009/10/24(土) 19:35:19ID:???はずかしいから黙ってて
0594nobodyさん
2009/10/24(土) 20:43:07ID:???で、ダミー関数であるdeleteが登録されてるせいで、
delete($classA)とか書いてもしばらく気がつけない
0595nobodyさん
2009/10/24(土) 20:45:44ID:???0596nobodyさん
2009/10/24(土) 20:47:28ID:???0597nobodyさん
2009/10/24(土) 21:14:45ID:???0598nobodyさん
2009/10/24(土) 21:21:53ID:???0599nobodyさん
2009/10/24(土) 22:35:42ID:aM0DiAaq【PHPのバージョン】php5.2.10
【連携ソフトウェア】mysql
【質問内容】
心理テストのようなサイトを作ろうとしています。
何人がその答えを選んだかの集計と、
それとは別に選んだ答えがどのような性格をあらわすのかを表示できるようにしたいです。
チェックボタンを選んだ状態で「あなたはこんな人」のようなラジオボタンで
そのページに遷移させたいです。
どのようにしたらいいのでしょうか?
アバウトな質問でごめんなさい。
0602nobodyさん
2009/10/24(土) 22:40:40ID:???最近の若者は安易だなぁ
0603nobodyさん
2009/10/24(土) 22:45:01ID:aM0DiAaq0604nobodyさん
2009/10/24(土) 22:45:53ID:???0605nobodyさん
2009/10/24(土) 22:50:44ID:aM0DiAaq例えば赤を選んだら赤色を好きな人の性格について書いてあるページで、
青を選んだら青色が好きな人の性格について書いてあるページです。
アバウトすぎてごめんなさい。
0606nobodyさん
2009/10/24(土) 22:51:31ID:aM0DiAaq<html>
<head><title>心理テスト</title></head>
<body>
<h1>メンタル編</h1>
<p>あなたがいつか天国へ旅立つとしたら、何色の石をお守りにしたいですか?
<?php
// スクリプト名取得
$script = basename(__FILE__);
// メンバー名配列
$member = array("", "赤いルビー", "ピンクのローズクォーツ", "ゴールド",
"イエロートパーズ", "緑のヒスイ", "青のラピスラズリ", "紫水晶", "白の水晶");
// 投票がある場合
if ($_POST['COLOR'] > 0) {
// 投票者番号
$no = $_POST['COLOR'];
// MySQLに接続
$db = mysql_connect("localhost", "root", "root");
// DB選択
mysql_select_db("graduation", $db);
// insert文実行
mysql_query("insert into ninki values(null, {$no},
now())", $db);
// DB切断
mysql_close($db);
}
?>
0607nobodyさん
2009/10/24(土) 22:52:32ID:aM0DiAaq<form method="POST" action="<?= $script ?>">
<p><input type="radio" name="COLOR" value="1">赤いルビー</p>
<p><input type="radio" name="COLOR" value="2">ピンクのローズクォーツ</p>
<p><input type="radio" name="COLOR" value="3">ゴールド</p>
<p><input type="radio" name="COLOR" value="4">イエロートパーズ</p>
<p><input type="radio" name="COLOR" value="5">緑のヒスイ</p>
<p><input type="radio" name="COLOR" value="6">青のラピスラズリ</p>
<p><input type="radio" name="COLOR" value="7">紫水晶</p>
<p><input type="radio" name="COLOR" value="8">白の水晶</p>
<p><input type="submit" value="投票"></p>
</body></html>
こんな感じです。
ごめんなさい。
0608nobodyさん
2009/10/24(土) 22:56:06ID:???switch($COLOR){
case 1
処理&リダイレクト1
break;
case 2
処理&リダイレクト2
break;
case 3
処理&リダイレクト3
break;
.....
}
あとaction="<?php echo $script ?>"はまずくね?
それだったらaction=""で空でいいと思うよ
0609nobodyさん
2009/10/24(土) 22:58:11ID:???ね":"を忘れずに
0611nobodyさん
2009/10/24(土) 23:05:20ID:???0612nobodyさん
2009/10/24(土) 23:24:44ID:TvoLhocc俺はcaseからインデントつけて位置に書いてるけど
そうすると最後でインデントが2つ一気になくなってしまう違和感がある
>>608みたいに書くとcase処理内な感じがしない違和感
0614nobodyさん
2009/10/24(土) 23:35:29ID:???case $a:
break;
0615nobodyさん
2009/10/24(土) 23:41:58ID:???case 0:
do_something();
break;
case 1:
do_something();
break;
default:
do_something();
break;
}
どの言語の解説でもたいていこうなってるしこれがスタンダードじゃないかね
0616nobodyさん
2009/10/24(土) 23:42:52ID:???0617nobodyさん
2009/10/25(日) 00:28:25ID:???0618nobodyさん
2009/10/25(日) 00:56:35ID:???switch('a'){
case 'a'; //末尾が ;
}
と
switch('a'){
case 'a': //末尾が :
}
は等価
0619nobodyさん
2009/10/25(日) 05:29:05ID:TWuysydg$search = "/([^0-9])([0-9])c([^0-9])/";
$replace = "$1c$2$3";
echo preg_replace($search, $replace, $test);
これで、期待する出力は
c1 c2 c3!
実際の出力は
c1 2c c3!
質問は、
・なぜこのような動作になるのでしょうか?
・どうすれば解決できるでしょうか?
後、欲しいアイデアとして
・"1c 2c 3c"のように、先頭にスペースを入れなくても"c1 c2 c3"に変える正規表現を教えてほしい
(ただし"11c"のような形の場合は変化させないでほしい)
0620nobodyさん
2009/10/25(日) 05:53:15ID:???substrで文字を抜き出したのを結合すえばええ
0621nobodyさん
2009/10/25(日) 10:22:02ID:???0622nobodyさん
2009/10/25(日) 11:14:26ID:???$test = "1c 2c 3c!";
$search = "/([^| ][0-9]{1})c/";
$replace = "c$1";
0623nobodyさん
2009/10/25(日) 13:01:49ID:???0625nobodyさん
2009/10/25(日) 21:45:40ID:???リクエスト終わったらメモリ開放されるんでしょ?
0626nobodyさん
2009/10/25(日) 22:19:54ID:???1リクエストの中だけでも必要なときはあるさ。
0627nobodyさん
2009/10/25(日) 22:38:37ID:Ltpwqrvc以下のようにするとcount.phpにリダイレクトできるのですが、
count.phpからLocationで飛ばすとループしているのか404NotFoundになってしまいます。
どうすれば正常にできますか?
例:www.example.com/img/abc01.jpg をクリックしてcount.phpを介してカウント
www.example.com/img/abc01.jpgのまま表示する
//サーバー側
RewriteEngine on
RewriteRule ^/img/abc([0-9]+).(*)$ /img/count.php?id=$1&extension=$2
//count.php側
header("Location: http://www.example.com/img/abc$id.$extension");
0628nobodyさん
2009/10/25(日) 22:42:08ID:???0629627
2009/10/25(日) 22:54:09ID:Ltpwqrvcやってみましたがだめでした・・・。
0630nobodyさん
2009/10/25(日) 23:07:22ID:???0631nobodyさん
2009/10/25(日) 23:15:10ID:???0632627
2009/10/26(月) 00:20:09ID:8+sjsIrsアドバイスありがとうございます。
何とか解決できたみたいです。
/img/を物理ディレクトリ、URL表示部分を新規に/img2/として(抽象ディレクトリ)
リライトしたらできるようになりました。
0633627
2009/10/26(月) 00:33:00ID:8+sjsIrsreadfileも必要だったみたいです。
ありがとうございました。
0634nobodyさん
2009/10/26(月) 05:27:50ID:???<html>
<body>
<?php include("./hoge.php");?>
</body>
</html>
で閲覧に問題はないのですが、
ソースを見ると
<html>
<body>
<html><body></body></html>
</body>
</html>
と2度使われ重複している状態です。
hoge.phpには<html><body></body></html>などの記述はしておりません。
問題の箇所等ご指摘願います。
0635nobodyさん
2009/10/26(月) 05:31:55ID:???それだけではなんともいえない
0637nobodyさん
2009/10/26(月) 05:48:48ID:n4efgg6U日付順に取得記事をソートしたいのですが、うまくいきません。
アドバイスお願いします。
$rssurl = array ();
$rssurl[] = "http://mainichi.pheedo.jp/f/mainichijp_flash";
$rssurl[] = "http://rss.asahi.com/f/asahi_newsheadlines";
foreach ($rssurl as $pre) {
$url = $pre;
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "shift_jis", "auto");
$url = $rss->channel['link'];
$rss->items = array_slice($rss->items, 0, 1);
foreach ($rss->items as $item ) {
$day = date('n/j',strtotime(substr($item['dc']['date'],0,10)));
$time = date('H:i',strtotime(substr($item['dc']['date'],11,8)));
$date = "$day $time";
$rdf = $item[link];
$article = $item[title];
$article = mb_convert_encoding($article, "shift_jis", "auto");
$linkstr = "$date $rdf $article $url $title<br>\n";
$rssarray["{$date}"] = $linkstr;
krsort($rssarray);
echo "$linkstr";
0639nobodyさん
2009/10/26(月) 05:55:31ID:n4efgg6Uはい、順序以外は期待通りの実行結果です。
0640nobodyさん
2009/10/26(月) 06:00:30ID:???どんな$linkstrを入れるとどのようなソート結果になるか例を出してもらえますか?
ちなみに第二引数にソートフラグを指定して挙動を変えることができる
http://www.php.net/manual/ja/function.sort.php
今回の場合は全て文字列だから関係ないかもしれないけど
0641nobodyさん
2009/10/26(月) 06:09:43ID:n4efgg6U$rssurl[] = "http://mainichi.pheedo.jp/f/mainichijp_flash";
$rssurl[] = "http://mainichi.jp/rss/etc/mantan.rss";
$rssurl[] = "http://mainichi.jp/rss/etc/enta.rss";
$rssurl[] = "http://mainichi.jp/rss/etc/sports.rss";
10/26 05:00 ■URL ■人事:法務省(26日) ■URL ■毎日jp-ニュース速報(総合)
10/25 21:00 ■URL ■注目アニメ紹介:「空中 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/25 23:10 ■URL ■横浜:巨人・尾花コーチ ■URL ■毎日jp-スポーツ
(長いので削ってます)
このような結果が出ます。
日付でソートをかけているつもりですが、まったくされていません。
$rssurl配列の上から順に表示されています。
0642nobodyさん
2009/10/26(月) 06:10:21ID:???echoで文字列を出力してるのか?
それともただアドセンス部分のHTMLだけ書いてるのか?
試してみたがhtml bodyタグが加わることはない
サーバかPHPの設定かもしれないがどの設定項目かはわからんわ
PHP使えるレン鯖が2つ以上あるなら両方で試してみ
ローカルに環境作るのが一番いいけど
0643nobodyさん
2009/10/26(月) 06:11:55ID:???使う関数まちがってるんじゃね?
krsortって逆順ソートだよ
0644nobodyさん
2009/10/26(月) 06:15:55ID:???0645nobodyさん
2009/10/26(月) 06:17:41ID:???ただ単にキーを逆順にするソートってこと
ユーザー定義のソートをしたいのならusort()とかじゃないと
0646nobodyさん
2009/10/26(月) 06:18:06ID:n4efgg6U$rssurl[] = "http://mainichi.jp/rss/etc/enta.rss"; //エンタメ
$rssurl[] = "http://mainichi.pheedo.jp/f/mainichijp_flash"; //ニュース速報(総合)
$rssurl[] = "http://mainichi.jp/rss/etc/sports.rss"; //スポーツ
10/25 21:00 ■URL ■注目アニメ紹 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/26 05:00 ■URL ■人事:法務省( ■URL ■毎日jp-ニュース速報(総合)
10/25 23:10 ■URL ■横浜:巨人・尾 ■URL ■毎日jp-スポーツ
例がわかりにくかったので書き直しました。
0647645
2009/10/26(月) 06:19:49ID:???よくよんでなかったw
>日付でソートをかけているつもりですが、まったくされていません。
ってかいてたからてっきり
データ見る限りだとkrsortでよさそうだね
0648645
2009/10/26(月) 06:20:38ID:???0649nobodyさん
2009/10/26(月) 06:22:04ID:n4efgg6UWarning: Wrong parameter count for usort() in C:\WWW\php.php on line 30
>>648
26日が真上だと日付でソートされているように見えたので…
配列順に表示されるだけでソート機能が働いていないというのが今回の悩みです。。。
0650nobodyさん
2009/10/26(月) 06:25:26ID:???マニュアルみようぜ
http://www.php.net/manual/ja/function.usort.php
krsort($rssarray);を
usort($rssarray);にかえただけじゃだめ
第2引数入れないと
0651nobodyさん
2009/10/26(月) 06:26:20ID:???0652nobodyさん
2009/10/26(月) 06:34:30ID:n4efgg6Uすいません、ありがとうございます。
試している最中ですが、cmpの設定に少し時間がかかりそうなので結果が遅れます。
>>651
$day 記事の更新日
$time 記事の更新時間
$date 上記二つを合わせた文字列
$rdf 記事のURL
$article 記事のタイトル
$url 配信元のURL
$title 配信元のタイトル
です。
0653nobodyさん
2009/10/26(月) 06:41:45ID:???ごめん、krsortに$linkstr関係なかったね
$array = array('10/25 21:00'=>1,'10/25 22:14'=>2,'10/26 05:00'=>3,'10/25 23:10'=>4);
var_dump($array);
krsort($array);
var_dump($array);
array(4) {
["10/25 21:00"]=>
int(1)
["10/25 22:14"]=>
int(2)
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
}
array(4) {
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
["10/25 22:14"]=>
int(2)
["10/25 21:00"]=>
int(1)
}
こちらで試してみたら想定どおりにソートされてる気がするけども
0654nobodyさん
2009/10/26(月) 06:43:43ID:???$a部分を連想配列にしてキーを$rssarrayのキーと一致させておけば簡単
比較は値のunixタイムにしたものを比較する感じで
マニュアルの例そのまま使うならrsort()にしたほうがいいと注意書きに書いてるから
まずはusortで形をつくってからパフォーマンスのためにrsortで書き直してみては?
0656nobodyさん
2009/10/26(月) 06:50:28ID:???$rssarrayをソートかけてんのに$linkstr表示してっからだろ
0657nobodyさん
2009/10/26(月) 06:50:51ID:???krsort($rssarray);
echo "$linkstr";
froeachの終わりがどこかわからんけど、echo結果を見ているなら$rss->itemsの順番に表示されてるんじゃ?
$rssarrayに入れたいものを全部入れてからkrsortしてprint_r($rssarray)で確認してみたらどうかな
0658nobodyさん
2009/10/26(月) 06:56:25ID:n4efgg6Uphpは昨日触ったばかりなのでじっくり参考にさせて頂きます。
>>654>>655
助言を求めたのは私なのでハマりから抜け出すためのしっかり参考にさせて頂きます。
>>656>>657
やっと原因が究明出来ました。
表示がまだ思い通りにいかないので試行錯誤してみます。
0659nobodyさん
2009/10/26(月) 07:00:40ID:n4efgg6Ukrsort($rssarray);
for(reset($rssarray); $i=i($rssarray); next($rssarray)){
echo "$rssarray[$i]";
$count++;
if($count == 4){
break;
}
}
これでしっかりと表示出来ました。
原因はkrsort($rssarray);をforeachの中に入れていたことと
$linkstrを表示していたことです。
皆様ありがとうございました!
0660nobodyさん
2009/10/26(月) 07:01:41ID:???の行は単にデバッグのためループの中で出力を確認しているだけで
当然そのあとにテーブルか何かで一覧を表示して、正しくソートされてないと言ってるもんだと思ってた。
$linkstrはkrsortどころか$rssarrayとも関係ない。foreachの順で表示されるだけじゃん。
0661nobodyさん
2009/10/26(月) 07:07:28ID:???オマエラ馬鹿すぎ。
0662nobodyさん
2009/10/26(月) 07:23:29ID:???リアルでどういうやつなのかぜひ見てみたいわ
0664nobodyさん
2009/10/26(月) 10:20:50ID:???0665nobodyさん
2009/10/26(月) 10:41:51ID:???0669nobodyさん
2009/10/26(月) 11:27:59ID:???俺が自動ログインで、そいつの振りして利用できる?
0670nobodyさん
2009/10/26(月) 11:33:33ID:???0671nobodyさん
2009/10/26(月) 11:34:10ID:???0672nobodyさん
2009/10/26(月) 11:44:57ID:???0673nobodyさん
2009/10/26(月) 11:49:41ID:???0675nobodyさん
2009/10/26(月) 11:57:30ID:???0676nobodyさん
2009/10/26(月) 12:18:54ID:???ことだしなあ。
0677nobodyさん
2009/10/26(月) 12:30:15ID:???個人情報があまり意味ないサイトとかだよね。
ひまわり動画とか
0679nobodyさん
2009/10/26(月) 17:53:40ID:+hgb+ZZqスレチでしたら誘導お願いします。
Sample.phpへ、buttonを配置し、JavaScriptでメソッドを定義。
function A1(){
if(confirm('ごまだれですか?')){
<?php
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'くろごま' where `syurui` = 'alpha'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'しろごま' where `syurui` = 'beta'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'ごまふあざらあし' where `syurui` = 'hex'") or die(mysql_error());
mysql_query("commit");
?>
window.alert('内容を変更しました。')
}
}
としていますが、DBを覗いてみたところ、アップデートされていませんでした。
ですが、MysqlErrorは返ってきておらず、そのままJavaScriptで記述したalertが実行されます。
原因を現在当たっていますが、何か思い当たる点がありましたらご指摘お願いします。
0680nobodyさん
2009/10/26(月) 18:00:11ID:???677じゃないけど、そんなもんだと思うぞ
大して重要でもないのに何を気にする事あるんだ?
そんなに気になるなら自動ログインなんてしなきゃいいだけじゃないか
0681nobodyさん
2009/10/26(月) 18:08:17ID:???サーバサイドとクライアントサイドがごっちゃになってないか?
「function A1()」ってのはjavascript側で定義している関数だろ?
その中のphp(mysql_query)は、button押下に関係無くそのページロードしたら実行されるぞ?
ブラウザのソース見てみなよ。
0683nobodyさん
2009/10/26(月) 18:17:35ID:???PHPの中身はともかくとしても、
PHP部が実行されて、DBが書き換えられるなどした後、
出力などがなければ<?php から ?>までが無くなったテキストが、
ヘッダなどがついてブラウザに渡され、それからjavascriptが動くので、
ブラウザがうけとるのは
function A1(){
if(confirm('ごまだれですか?')){
}
}
になります。
0684nobodyさん
2009/10/26(月) 19:14:03ID:???if(confirm('ごまだれですか?')){
window.alert('内容を変更しました。')
}
}
抜けてた
0687nobodyさん
2009/10/26(月) 22:27:35ID:???0688nobodyさん
2009/10/26(月) 23:39:47ID:???0689nobodyさん
2009/10/27(火) 00:54:28ID:???クエリを書いておく事が出来る。
というフレームワークのアイデアを頂きました。
クレームワームの名前は「ごまふあざらあし」にしようと思います。
0690nobodyさん
2009/10/27(火) 10:58:21ID:???0691nobodyさん
2009/10/27(火) 11:16:23ID:???0692nobodyさん
2009/10/27(火) 11:34:04ID:???0693nobodyさん
2009/10/27(火) 11:44:23ID:???0695nobodyさん
2009/10/27(火) 19:25:48ID:???このように書かれたテキストファイルから「名無し」「あいうえお」を取得する方法は
正規表現でひとつずつ抜き出すほかにありますか?
0698nobodyさん
2009/10/27(火) 19:39:41ID:73GIvY2Uまた、上で取得した文字列を$_POSTのような配列形式に変換したいのですが、そのような関数はありますか?
0699nobodyさん
2009/10/27(火) 19:44:58ID:???$_REQUEST
0701nobodyさん
2009/10/27(火) 19:59:55ID:???POSTされた生のデータが欲しいって事かい?
parse_str(file_get_contents('php://input'), $f);
var_dump($f);
0702nobodyさん
2009/10/27(火) 21:21:52ID:???すげえ
0704nobodyさん
2009/10/28(水) 01:05:41ID:EMbPGL3Ysimplexml_load_fileで読みこんだObjectから
$q = $_GET["q"];
echo $xml->item[$q]->name;
としたいのですが、何も表示されません。
echo $xml->item[0]->name;
だと正しく表示され
$q = 0;
echo $xml->item[$q]->name;
でも正しく表示されます。
$q = $_GET["q"];
echo $q;
echo $xml->item[$q]->name;
とした場合は、$qだけが表示されました。
simplexmlでは$_GETが使えないのでしょうか?
解決策をお教えいただきたいです。
0706nobodyさん
2009/10/28(水) 01:12:57ID:EMbPGL3Yありがとうございます!
$q = $_GET["q"]+1-1;
と試してみるとうまくいきました。
ホントにお恥ずかしい限りです・・・
0707nobodyさん
2009/10/28(水) 01:16:08ID:???0708nobodyさん
2009/10/28(水) 01:17:19ID:???でおk
0709nobodyさん
2009/10/28(水) 01:18:34ID:???負荷とかそんなに変わらないのならクラス定義をまとめて最初に読み込んだほうがらくだよね。。。
0710nobodyさん
2009/10/28(水) 01:20:18ID:???0712nobodyさん
2009/10/28(水) 02:52:06ID:???ただJavaの場合コンパイラが最適化してくれるので問題ないが
PHPはインタプリタなので最適化のしようがないという
つまり全部includeなんてしたらそりゃ遅くなる
0715nobodyさん
2009/10/28(水) 10:42:00ID:v0axKvNXセッションを使用する場合は必ずつけなければならないのですよね?
これを記述するのはMVCモデルだとVの部分に記述するのであってますでしょうか?
0716nobodyさん
2009/10/28(水) 10:43:21ID:???0717716
2009/10/28(水) 10:45:50ID:???ありがとうございます
早速組み方を考えて見ます
0718nobodyさん
2009/10/28(水) 10:47:23ID:???0719679
2009/10/28(水) 14:53:16ID:op4mA5/pそうか・・・表示されてる時には既にHTMLとして返ってきてるんですよね。
この場合は、dbedit.phpのようなものを別途つくり
<?php
include("dbedit.php");
A1();
?>
という風にすればいいのかな?
しかし、この場合でも、A1だけではなく、A2,A3と続く様であれば
それの振り分けはどう実装したらいいでしょうか?
ご意見や、実装例等がありましたら、ご教示よろしくお願い致します。
0721nobodyさん
2009/10/28(水) 15:30:07ID:???まずそのA1, A2, A3でなにをするのか書かないと。あと関数ってわかってる?振り分けってどういうことするの?
0722nobodyさん
2009/10/28(水) 15:43:14ID:???A1()って>>679を見る限りJavaScriptのfunctionだろ? 呼べるわけがないw
>>720の通りにまずJavaScriptなしで動くようにしてみたら?
サーバー側でpostされた内容によってSQL発行するだけだよ
0723nobodyさん
2009/10/28(水) 18:25:52ID:???0724nobodyさん
2009/10/28(水) 18:34:44ID:???javascript無し、DB無しでPHPだけでいろいろ慣れるのが先だな
0725nobodyさん
2009/10/28(水) 18:35:06ID:???A2()で「しろごま」
A3()で「ごまふあざらあし」
を処理する気まんまんの>>679にWeb100.0
0727nobodyさん
2009/10/29(木) 00:12:37ID:???それと同時にプログラミングの概念について解説してる本を読んだ方がいいのかも
概念が足りてない
0728nobodyさん
2009/10/29(木) 03:46:52ID:???0729nobodyさん
2009/10/29(木) 09:54:12ID:xBLZE2eU【バージョン】php5.2.10
SimpleXMLElementに関する質問です。
mlから特定の属性を持った要素を削除するにはどうすれば良いのでしょうか?
例を挙げると、
『sample.xml』
<?xml version="1.0" encoding="UTF-8" ?>
<library>
<book id="00001">
<title>aaa</title>
<author>Emily</author>
</book>
<book id="00002">
<title>bbb</title>
<author>John</author>
</book>
<book id="00003">
<title>ccc</title>
<author>Mike</author>
</book>
</library>
とした場合、idが「00002」の要素を削除するという感じです。
--続く--
0730729
2009/10/29(木) 09:56:09ID:xBLZE2eUいろいろ調べたところ、
$xml = new SimpleXMLElement('sample.xml', null, true);
unset($xml->book[0]);
で削除は出来るのようですが、配列で何番目という指定ではなくid「00002」の要素を指定して削除し、
<?xml version="1.0" encoding="UTF-8" ?>
<library>
<book id="00001">
<title>aaa</title>
<author>Emily</author>
</book>
<book id="00003">
<title>ccc</title>
<author>Mike</author>
</book>
</library>
となる事が目的です。
どうぞよろしくお願いします。
0731nobodyさん
2009/10/29(木) 12:08:53ID:???foreachで出来た方いたら教えてください。
$xml = new SimpleXMLElement('sample.xml', null, true);
for ( $i = 0 ; $i < count($xml->book);$i++) {
if ( $xml->book[$i]["id"] == " 00002") {
unset( $xml->book[$i] );
}
}
echo $xml->asXML();
0733nobodyさん
2009/10/30(金) 06:12:51ID:5l/tuOOstaro@example.com
これだと4文字決め打ちになってしまいます。
preg_replace('/[a-z0-9\.\-\_]+@/i', '****@', $text);
いまのところシンプルに書ける方法で思いつくのは、
長い文字数から順に置換していく方法です。
forなど使えばシンプルには書けそうです。
preg_replace('/[a-z0-9\.\-\_]{10}@/i', '**********@', $text);
preg_replace('/[a-z0-9\.\-\_]{9}@/i', '*********@', $text);
...
でも美しい方法とは思えません。
定石、または美しい方法はありますか?
0734nobodyさん
2009/10/30(金) 08:26:53ID:???たとえば
$text = "taro@example.com";
echo preg_replace('/([a-z0-9\.\-\_]+)@/ie', "str_repeat('*',strlen('$1')) . '@'", $text);
0735nobodyさん
2009/10/30(金) 10:41:53ID:???$text = "taro@example.com";
$array = explode('@', $text);
echo str_repeat('*',strlen($array[0])) . '@' . $array[1];
0736nobodyさん
2009/10/30(金) 16:17:27ID:???$text='taro@example.com';
echo str_repeat('*', strpos($text,'@')).strstr($text,'@');
0737nobodyさん
2009/10/30(金) 17:16:58ID:5l/tuOOsありがとうございます。e修飾子とかはじめて認識しました。
Yahoo!グループの過去ログのように「メール本文中の署名などの個人情報を隠匿」が目的なので、
>>734の方法で行かせていただこうと思います(目的を書いとくべきでしたごめんなさい)。
精進します。
0738nobodyさん
2009/10/30(金) 20:21:02ID:k7DoHVtBphpのソースコードそのものを取り込んで
そのコードを解析する
みたいな手段ってありませんか?
0739nobodyさん
2009/10/30(金) 20:25:31ID:???単に構文解析だったら、PHPでPHP用のレキシカルアナライザとパーサ作ればいいんだけど、
それだけやったって面白くないよね、手間なだけで。
何をしたいのかが良く分からん。
0740nobodyさん
2009/10/30(金) 22:48:05ID:pyIKqVVx{
private $ar,$tes;
public function __construct()
{
$this->ar = array('tes');
(ここで 変数 $this->($this->ar[0]) この場合 $this->tes に何らかの値を代入したい)
echo $this->tes;
}
}
$this-> に続く変数名を変数の値で表す方法はありますか?
宜しくお願いします。
0741nobodyさん
2009/10/30(金) 22:52:15ID:???0742nobodyさん
2009/10/30(金) 23:25:37ID:pyIKqVVx$this->tes = "b"; と書くのではなく、tesの部分に、"tes"が代入された変数を使いたいのです。
0743nobodyさん
2009/10/31(土) 00:17:51ID:???echo $this->$var;
こんな感じで
0744nobodyさん
2009/10/31(土) 00:38:36ID:???runkit
http://jp2.php.net/manual/ja/book.runkit.php
0746nobodyさん
2009/10/31(土) 09:17:44ID:5b/pi/nwアップローダー作る時にテンポラリのディレクトリから保存用のディレクトリに
ファイルをcopy → もとのテンポラリファイル削除 って流れがあり、
if(copy($tmpFile, $lastFile)){unlink($tmpFile);}
という感じの処理をすると思います。
しかし条件部分がtrueにならないとき、どうしたら良いんでしょうか?
「コピー失敗しました」みたいなアラート表示すべき? そんなことやってますか?
そもそも、上のif文でのチェックは必要なんでしょうか…
条件成立・不成立をどこまでフォローすべきか悩んでいます。
0747nobodyさん
2009/10/31(土) 15:10:42ID:???0748nobodyさん
2009/10/31(土) 15:13:55ID:???それに失敗したらアップロード処理失敗のエラー返すしかなかろ。
0749nobodyさん
2009/10/31(土) 15:30:20ID:???コピー失敗したらそのファイルを削除してメッセージを表示&エラーログを残すとか
0751nobodyさん
2009/11/02(月) 18:13:40ID:uSMOoO6Cphpでmhtmlを出力するほうほうはありませんか?
0753nobodyさん
2009/11/02(月) 18:58:04ID:???http://www.hedgerwow.com/360/dhtml/base64-image/demo.php
0756nobodyさん
2009/11/03(火) 00:57:00ID:OxH3Rb8VPHPの言語仕様として確認したいのですが、
1リクエストごとにstaticメソッドであろうが毎回PHPのリソースをメモリに読み込んで、
レスポンスを返した時点でメモリ破棄する。
そのため、複数のリクエスト間での共有ができず、たとえばDBのコネクションプール
などという考え方は基本ない。であっていますか?
0757nobodyさん
2009/11/03(火) 02:25:30ID:???たいていの言語は、別々に起動された、親子関係
でないプロセス間でソケットを共有する方法は、
言語仕様にはないと思う。
0758nobodyさん
2009/11/03(火) 05:32:26ID:???SpeedyCGIみたいな常駐プログラムを使ったらDBコネクション繋ぎっぱなしできるよね?
それをphpから呼び出したら、プログラム呼び出しののオーバーヘッドとDB接続のオーバーヘッド天秤にしても常駐の方が早い希ガスだけどどうなの?
あと、phpでSpeedyCGIみたいシステムないの?
0759nobodyさん
2009/11/03(火) 10:19:58ID:???MySQLならSQLrelayとか。
0760nobodyさん
2009/11/03(火) 10:39:36ID:???0761nobodyさん
2009/11/03(火) 21:21:41ID:ppv8Lxeqwikipediaで携帯のIPアドレス一覧があって、それを元にアクセスした人のIPが携帯なら携帯用のページに飛ばすのをPHPで以前に作ったんだけど
知らない間に携帯用のIPアドレスが増えてるみたいで、修正しようかと思うんだけど、結局イタチごっこだから
シンプルにユーザーエージェントで分別しようかと思うけどそれだとPCで偽装もできるので
ちゃんと的確に分けられる方法教えて。
0762nobodyさん
2009/11/03(火) 21:23:10ID:???0763nobodyさん
2009/11/03(火) 21:34:29ID:???だから普通にUAで振り分ければいいとおもうが
0765nobodyさん
2009/11/03(火) 23:00:04ID:Hf2P9qWB助けてください
0766nobodyさん
2009/11/03(火) 23:08:14ID:ppv8Lxeqだけど、UAの文字列の一部で携帯かPCかを判断すると、今後携帯キャリアがUAの仕様を変えた時に、
携帯だかPCだか判断できずに、携帯なのにPC用ページを表示してサイズでかすぎて表示できないとかだと最悪でしょ。
妥協してユーザーエージェントでやるとするといくつあるの?
ドコモ、au、ソフトバンク、ボーダフォン、J-PHONE、あと何?
ウィルコムとかイーモバイルとかも固有のUAあるの?ディズニーモバイルは?あとiフォンもある?
0767nobodyさん
2009/11/03(火) 23:42:05ID:???0768nobodyさん
2009/11/03(火) 23:44:16ID:???0770679
2009/11/04(水) 09:18:30ID:???>>720
・・・申し訳ない。
以前あったレスからJavascriptは使わないと決めて
元々記述したJsコードを全部削除してPHPに実装しなおしていましたが
報告忘れてました
>>721
A1とかA2とかは、それぞれupdateでsetする内容が違うだけ。
むしろコレなら変数で勝手に変わる様にしたほうがいいのかもしれないですが・・。
>>722
一応削除はしてます。
>>723
諦めたらそこで終わりじゃないですか??
>>724
はい。実はJavaはやっていたのですが
どうもHTMLやらJavascriptやらPHPやらとくると・・どうにも
0771679
2009/11/04(水) 09:19:55ID:???まだまだ若いですよ。上司には当然教えてくださる方もいないので独学になりますが。
いかんせん会社が大きく無いのでしょうがないです。
>>727
本・・ですねえ。
でも今月はCiscoの本やらいっぱい買ってしもたorz
経費で落ちそうなら考えてみます。
今のところ一応Formタグを追加し、typeをSubmitにして飛ばすようにしてます。
次のphpでname属性から拾ってきたものを取り上げ、PHP側のif分岐等でのマッチング査定をしつつ
その先で上書き処理、という流れで、やっていくつもりです。
0772nobodyさん
2009/11/04(水) 09:50:46ID:???それ、Apacheの問題であってPHPのじゃないじゃん。
<httpd.conf>
AddType application/x-httpd-php .php
PHPIniDir [PHP.iniのあるディレクトリ]
LoadModule php5_module [php?apache*.dllへのフルパス]
書いたらApacheの再起動。
0773nobodyさん
2009/11/04(水) 13:15:10ID:+cyJ/kJvドキュメントルート(サイトのルート)の中の一つのフォルダを完全にPHP使えないようにしたい。
そうしないとそこがアップロード用のファイル保存フォルダになっているので
PHPのファイルをアップされブラウザでファイルをアクセスされると危険。unlink()とかされたら完全に終わる。
かと言ってアップ時に、拡張子が.phpのファイルをはじくとかだとそれも困るし、そのファイルの内容をチェックするのも大変。
.htaccessファイルに、拡張子.phpは.htmlとするように書いてもいいけど.php5とかPHPとして動く拡張子が他にもあるから対処しきれない。
で、特定のフォルダにだけPHPを使わせない機能ないの?
もしくはアパッチでドキュメントルート以外のフォルダを作り、
C:/root_A(PHP可能)
C:/root_B(PHP不可)
として
http://ドメイン/root_B以下にアクセスがあった時はC:/root_B/index.htmlを表示させるとかできないかな?
バーチャルホストじゃなくドメイン同じで二つのルートを使い分けるって事。
0774nobodyさん
2009/11/04(水) 13:18:32ID:+cyJ/kJv同じドライブに複数の人のルートがあると思うけど他人のファイルをunlink()したりできないのは何で?
0775nobodyさん
2009/11/04(水) 13:22:13ID:???PRINT 'マンコ';
}
初めて作ったプログラムがこれ。
0777nobodyさん
2009/11/04(水) 13:31:39ID:???一つはパーミッション。
削除権限はそのファイルが含まれているディレクトリのパーミッションによるが
777とかしてたら消せる。
でもphpだと全ユーザーが同じ実行ユーザーになる場合もあるので
phpのSafeModeを使う。
これは、実行ファイルのオーナー(実行時のユーザーではない)が
他のオーナーのファイルをいじれなくする仕組み。
0778nobodyさん
2009/11/04(水) 16:27:43ID:+cyJ/kJvありがとう。ちょっとググってみるよ。
0779nobodyさん
2009/11/04(水) 17:03:15ID:???基本的にhttpdは拡張子で実行するか決めてるんだから
拡張子で制限すればいいはずだよ。
0780nobodyさん
2009/11/04(水) 17:37:09ID:???phpファイルはアップロード禁止にしたらいいんじゃない?
どうしてもアップロードしたい場合はZIPって手もあるし
0781nobodyさん
2009/11/04(水) 18:05:34ID:???Options -ExecCGI -Includes -MultiViews
php_flag engine off
こんな感じで.htaccessを設定したらCGIとPHPは動かなくなるはず
0782nobodyさん
2009/11/05(木) 02:39:02ID:bdU2dbguというURLでアクセスしたら
http://example.com/ref/index.php?id=abc
の結果を返すにはどうしたらいいですか?
0783nobodyさん
2009/11/05(木) 02:43:08ID:???0784nobodyさん
2009/11/05(木) 02:56:01ID:bdU2dbguありがとう
0785nobodyさん
2009/11/05(木) 09:23:02ID:???PRINT 'パイズリ';
BREAK;
}
二番目に作ったプログラムがこれ。
0786nobodyさん
2009/11/05(木) 10:17:21ID:???print "まんこ\n";
}
print 'な? 9999の次でも1に戻るってことは無いだろ?';
0787nobodyさん
2009/11/05(木) 10:31:55ID:???0788nobodyさん
2009/11/05(木) 12:50:44ID:???0789nobodyさん
2009/11/05(木) 13:16:33ID:???0790nobodyさん
2009/11/05(木) 15:22:19ID:17l6YWCOindex1.php
↑インクルード
user_func.txt
↓インクルード
index2.php
でもこうなるとindex1.phpにアクセスするということはuser_func.txtにもアクセスする事になるので、鯖に負担がかかる。呼び込むファイルが増えればなおさら。
負荷を無くすにはどうしたらいいでしょうか?
個人的にできたらいいなと思うのは、この様な自作関数もメモリ上に置けるようにしてほしい。
最初に鯖を立ち上げた時に読み込んで後は元々ある関数みたいに使いたい。
0791nobodyさん
2009/11/05(木) 15:33:59ID:???実際、どの程度の負荷がかかってるのさ?
一度user_func.txtが読み込まれれば、2回目からはメモリを見に行くから気にしなくて良いレベルだと思うぞ。
0792nobodyさん
2009/11/05(木) 16:22:18ID:17l6YWCOえっ?そうなの?って事はindex.phpとかも一回読まれたらメモリ見るの?
知らなかった。どの位の負荷がかかってるかはどうやって調べたらいい?
最近サイトを開くと重いんだよね。特に夜。LAN内のPCからでも遅いから回線が原因じゃないかと思うんだけど
HDDがあれこれファイルを読んだりして追いついていけないのかもって思って。
CPU仕様率は結構低いんだけど。LANもギガビットLANだし、原因がHDDとしか思えないんです。
0794nobodyさん
2009/11/05(木) 16:55:33ID:???普通は一度ファイルを読み込めば、次回はメモリを参照する。
readで毎回必ずHDDを読んでいたら大変な事になるよ。
CPU使用率がわかってて、DISK周りの負荷は調べてない?
Linuxならiostatとかで見て見なよ、sarが入ってればそれでもいいし。
0795nobodyさん
2009/11/05(木) 16:59:36ID:???ギガビットは過信しないほうがいい
LANカードやHUBがしょぼかったら無意味
転送量が少なくても一度に大量の接続があれば捌ききれなくなる。
0796nobodyさん
2009/11/05(木) 19:35:22ID:???世の中にはキャッシュと言うものがあってだな・・・
てか、HDDからの読み込みが気になるくらいでかいファイルなのか?そのスクリプト。
0797nobodyさん
2009/11/05(木) 20:31:20ID:17l6YWCOOSはWindowsなんだけど、とりあえずHDDをSSDとか1万回転のHDDに変えたら速くなりそうな気がするんだよね。
ルータやLANケーブルはそれなりのやつを使ってるけど。
実際商用のサーバーってどうやって負荷計ってるの?そういうフリーソフトないかな?
何を改善すればいいか分からん。
>>796
スクリプトはでかくないよ。ただ動画のダウンロードが多い。これが遅延の原因かも。
あとデータベースとOSのドライブは別のドライブにした方が速い?パーティションじゃなくて完全に個別という意味で。
0798nobodyさん
2009/11/05(木) 23:07:04ID:???流石にスレ違いだろ。
DISKは複数あったほうが速いにきまっとる
書いてるようにOSとDB分けたほうがいい。
0799nobodyさん
2009/11/05(木) 23:39:13ID:???PHPのファイルは、OSによってディスクから内容がメモリに読まれた上で、インタプリタによって機械語にコンパイルされ、実行される。
ここまでが基礎知識。
で、まず、今どきのOSはディスクからの読み込みをキャッシュする。
つまり、一度読んだファイルはメモリにそのまま持っておいて、更新がなければ次回以降はそいつを使う。
次に、APCやeアクセラレータといったPHP関連ライブラリを使うと、機械語にコンパイルされたコードを使いまわしてくれるようになる。
0800nobodyさん
2009/11/05(木) 23:55:44ID:???NICかHubが壊れかけてるとか?
とりあえず遅延がどの時点で発生しているのか調べないと。
なんかPHPが原因じゃないっぽい感じがする。
0801nobodyさん
2009/11/06(金) 15:02:27ID:uY82lX0BSystem.out.printlnで
あれ、デバッグですごく便利なんだけど、
EclipseでPHPでできないのかな
0802nobodyさん
2009/11/06(金) 15:30:23ID:+6dsWJpThttp://www.madirish.net/?article=245
上記を参考にPostgreSQLで作ってみました。
BL取得→DBに保存→webから利用があったらmd5してdbにSELECT発行
という形で作ってみたのですが、BL取得→DBに保存
ここまで上手くいって294,830件のハッシュがDB内に存在する所までは確認できました
ところが実際にwebから本家GoogleSBでBL入りしているようなドメインを送ってもBL判定されません。
どなたかMySQL環境がある方、このソースをまんまで試してみて頂けますでしょうか…。
例として下記
http://www.google.com/safebrowsing/diagnostic?site=4gameranking.com
0803nobodyさん
2009/11/06(金) 21:29:10ID:qkr//tmUif(isset($val))かif(!empty($val))
と
if($val != "") か if($val <> "")
では、どちらの方が処理が速いのでしょうか?
0805nobodyさん
2009/11/06(金) 23:17:02ID:???Cのコードを読んでみないとなんとも言えないが、もっとも処理の少ないであろうisset()が最速だと思う。
だけど、そんな速度差を気にしないといけないような案件でPHPを使うほうが間違っているので、どうでもいい。
0806nobodyさん
2009/11/06(金) 23:29:19ID:vBz8RCVvそこでクラスについて勉強したいと思うのですが
フレームワークを覚える前にクラスの使い方を覚えると楽になりますか?
OOP、デザインパターンを覚えてからフレームワークに入るのが王道でしょうか?
プログラミングはPHPが初めてでクラスの基本的なものは分かるのですがクラスだけは敷居が高くて勉強してきませんでした
0807nobodyさん
2009/11/06(金) 23:33:04ID:???フレームワークの使い方だけ学べばいいんじゃないかな。
どこにファイルを置いて、こういう名前にして、どういうAPIがあって・・・みたいな。
0808nobodyさん
2009/11/06(金) 23:34:14ID:???0809nobodyさん
2009/11/06(金) 23:34:43ID:vBz8RCVv{
private $word = "こんにちは世界さん(^^)";
function view() {
return htmlspecialchars($this->word, ENT_QUOTES);
}
}
$obj = new hello_world();
echo $obj->view();
0810nobodyさん
2009/11/06(金) 23:38:43ID:vBz8RCVvcakePHPもなんかドキュメントの通りやりましたがこのファイルにこれを書けという意味が理解できなかったため挫折しました
smartyはサンプルみて挫折しました
0811nobodyさん
2009/11/06(金) 23:41:26ID:???0813nobodyさん
2009/11/06(金) 23:53:40ID:???0814nobodyさん
2009/11/06(金) 23:54:01ID:vBz8RCVvprotected
private
が使えます
0815nobodyさん
2009/11/06(金) 23:54:54ID:???あとSmartyはFWでないしな
0816nobodyさん
2009/11/06(金) 23:59:14ID:???ZendFrameworkはドキュメントがたくさんあってまだ読んでないです
フレームワークって新しい言語を覚えるような感じですね
気合入れないとだめですね
0817816
2009/11/06(金) 23:59:56ID:vBz8RCVv0818nobodyさん
2009/11/07(土) 01:02:50ID:???がんばれ!
0819nobodyさん
2009/11/07(土) 01:04:33ID:???0820nobodyさん
2009/11/07(土) 10:59:11ID:HHoKTIgI$array = array("inquiry","support");
//検索する文字
$val = "inquiry_form";
// 検索文字が対象に一致するか
foreach($array as $item){
if(strstr($val,$item)){
//一致した場合の処理
}
}
検索する文字が検索対象に一致するか調べたいと思います。
上のように対象をforeachで回して$valに対象の文字列と一致するか
調べる方法が一番簡単だと思いますが、
検索する文字が複数ある場合、何回も上記の事をしなければいけません。
もう少し効率の良い書き方はないでしょうか?
0822nobodyさん
2009/11/07(土) 11:32:59ID:HHoKTIgI0823nobodyさん
2009/11/07(土) 12:00:25ID:???$txt = "aaazzzccc";
if (strstr($txt,$a)) echo "一致\n";
}
$search = array("aaa","bbb","ccc");
$p = array_map("a",$search);
0824nobodyさん
2009/11/07(土) 12:23:34ID:???別にarray_mapなんか使わなくても単にforeachの二重ループにすればいいのでは?
0825nobodyさん
2009/11/07(土) 12:35:53ID:???0826nobodyさん
2009/11/07(土) 14:40:11ID:???0827nobodyさん
2009/11/07(土) 14:42:27ID:???0828nobodyさん
2009/11/07(土) 15:07:14ID:???質問では配列に格納された文字列が、変数に格納された含まれているかチェックする
おk?
0829nobodyさん
2009/11/07(土) 15:09:30ID:PiVKZwA7検索しても複数ページの遷移の件などがヒットして、複数のQuickFormをSmartyに渡す方法が出て来ません
0834nobodyさん
2009/11/07(土) 17:06:46ID:???質問者が少々日本語でおkなんだよ。意訳すると
「検索文字列が検索対象に含まれていたら何らかの処理をする、と言うロジックを
検索対象が複数だった場合にスマートに書きたい」
って事だろうからな
0835nobodyさん
2009/11/07(土) 17:09:04ID:???$array = array("inquiry","support");
//検索する文字
$val = "inquiry_form";
// 検索文字が対象に一致するか
foreach($array as $item){
if(strstr($val,$item)){
//一致した場合の処理
}
}
↑
これをin_arrayを使ってどう書くのか激しく興味あるんだけど
0836nobodyさん
2009/11/07(土) 17:13:26ID:???foo($a, array(2,8,9));
てやったとき、両方に2が含まれてるからtrueが返って欲しいんだろうな。
if($a!=array_diff($a, array(2,8,9)))
ってどうよ?
0837836
2009/11/07(土) 17:14:31ID:???0838nobodyさん
2009/11/07(土) 17:19:55ID:???0840nobodyさん
2009/11/07(土) 22:43:03ID:CwxQOSeKclass test
{
const hiru_aisatu = "こんにちはっ!!";
const yoru_aisatu = "こんばんは・・・";
const hurarerutoki = "さようなら・・2度と会わないで";
}
echo test::hiru_aisatu;
こんなかんじで書くのと
$hiru_aisatu = "こんにちはっ!!";
$yoru_aisatu = "こんばんは・・・";
$hurarerutoki = "さようなら・・2度と会わないで";
echo $hiru_aisatu;
というふうに書くのはクラス使うほうがスピードは遅い?ような気がするのですが
複数人でコード書く場合はクラスでconst使ったほうがいいでしょうか?
0841nobodyさん
2009/11/07(土) 23:45:33ID:???0842nobodyさん
2009/11/07(土) 23:57:06ID:???0844nobodyさん
2009/11/08(日) 02:32:54ID:35LWJ8zbhoge_func($a)
でも
hoge_func($a,$b,$c,$d,$e,$f)
ただし
function hoge_func($a=null,$b=null...
とは違う方法で
0845nobodyさん
2009/11/08(日) 02:56:24ID:???0846nobodyさん
2009/11/08(日) 06:59:04ID:???http://php.net/manual/ja/functions.arguments.php
0847nobodyさん
2009/11/08(日) 08:26:26ID:H7unfEmKこれまでに紹介された本の一覧ページで、同じ紹介者の本が連続して出ないようにしたいです。
たとえば登録時に10冊まとめて登録できる場合、主キーのIDを表示時のソートのキーにしたら
同じ人の紹介した本ばかりが一画面に出ることになります。
これを防ぐにはどうしたら良いですか?
登録時にランダム数を入れるカラムを作って、それをキーにして表示するのか、
それともPHPだけで出来るでしょうか?
0849nobodyさん
2009/11/08(日) 09:04:36ID:H7unfEmKうおおお、凄い! そんなのがあるんだ?
やっぱり聞いて良かったです。ありがとう!
0850nobodyさん
2009/11/08(日) 10:30:15ID:atd+IQXc{
public $v = "test";
public function display() {
return $this->$v;
}
}
$obj = new test;
echo $obj->display();
testと表示させたいのですが表示できません
PHP5.3です
どなたかご指導お願い致します
0851nobodyさん
2009/11/08(日) 10:39:14ID:???class Greeting{
const AT_MORNING = 'おっはー☆';
const AT_DAYTIME = 'こんにちは';
const AT_NIGHT = 'こんばんわー';
const FIRST_MESSAGE = '初めまして';
}
class Love{
const FIRST_MESSAGE = '好きです!';
const END_MESSAGE = 'さようなら…二度と会わないで';
}
echo Greeting::AT_MORNING;
例えば定数の場合、そこまでに通ったコードを全部読んで、定義部を探さないといけない。
クラス定数ならば、格納先のクラスさえ分かれば、そこを探すだけで済む。
勿論、「定数はこのファイルに全部書くこと!」という規則で運用しても同じような効果になるが、「立ち入り禁止」というルールだけ設けるのと柵を作るの、どっちが安全かの差だな。
また、Greeting::AT_MORNINGを読むにはGreetingクラスの存在を知らなければ(requireしなければ)ならない。
つまり、この定数を使っている箇所がどこら辺にあるのか特定しやすい。
あとは、全体から見える位置にものを定義すると、変数名被りや定数名被りが発生しやすい。クラス定数なら、クラスさえ違えば同名になっても問題ない。
0852nobodyさん
2009/11/08(日) 10:41:21ID:???エラー出力見ようよ。たぶんこの場合ずばりのエラーが出てる。
return $this->$v;
の、vには$要らない。
0853nobodyさん
2009/11/08(日) 10:41:44ID:???だと そのクラス内($this)の変数$vが持ってる値の変数になっちゃう
return $this->v
がただしい
0855nobodyさん
2009/11/08(日) 10:46:05ID:atd+IQXcありがとうございます
おかげ様で解決できました
>>852-853どうもありがとうございました
0856nobodyさん
2009/11/08(日) 10:55:19ID:R5NqdoKRここ見て勉強してます
ttp://php.net/manual/ja/language.oop5.php
目次
* はじめに
* クラスの基礎
* Properties
* オブジェクト定数
* クラスのオートローディング
* コンストラクタとデストラクタ
* アクセス権
* Object Inheritance
* スコープ定義演算子 (::)
* static キーワード
* クラスの抽象化
* オブジェクト インターフェイス
* オーバーロード
* オブジェクトのイタレーション
* パターン
* マジックメソッド
* finalキーワード
* オブジェクトのクローン作成
* オブジェクトの比較
* タイプヒンティング
* 遅延静的束縛 (Late Static Bindings)
* オブジェクトと参照
* Object Serialization
この目次を上から順番にやりたいのですがどこまでが基礎の部分でしょうか?
0857nobodyさん
2009/11/08(日) 11:46:29ID:???0859nobodyさん
2009/11/08(日) 11:58:07ID:???あぼ〜ん
858 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
あぼ〜ん
0860nobodyさん
2009/11/08(日) 12:02:22ID:???staticまで知ってればとりあえず問題ない
0861nobodyさん
2009/11/08(日) 12:12:54ID:???「オブジェクト指向の覚え方」(というか学び方)を知りたいんですね?
まずは、
とある言語が「オブジェクト指向的な記述を支援してくれる部分」と、
「オブジェクト指向というもの」自体とを
弁別した方が良いかと。
とある言語で後者を実践するときのものが前者。
そのページで得られるのは、基本的には前者のみ。
OOPそのものへの入門だったら、PHP以外の例えばJavaあたりを使ってOOPの
解説してるとこ覗いた方が良いよ。
それでもその質問に答えるとしたら、上から順番でどこまでってことは無いかな。
>* クラスのオートローディング
↑飛ばしてもいいけど、
>* コンストラクタとデストラクタ
↑飛ばせない
てな感じで。
0862nobodyさん
2009/11/08(日) 12:30:58ID:???使いこなすにはまだまだだけど
0863nobodyさん
2009/11/08(日) 12:34:58ID:???0865nobodyさん
2009/11/08(日) 12:52:04ID:???JavaのOOPを持ち込むのは、混乱の元だろう。
頭固くなるからやめとけ。
初心者はSqueakでもやっとけばいい。
0866nobodyさん
2009/11/08(日) 13:33:48ID:9EHY5xphclass SimpleClass{
public $var = 'a default value';
public function displayVar() {
echo $this->var;
}
}
$instance = new SimpleClass();
$className = 'Foo';
$instance = new $className();
ってマニュアルにサンプルが載ってますが
下から1〜3行を
$obj= new SimpleClass();
で済ましたほうが楽だと思うのですがどうなんでしょうか
どなたかご教示お願いします
0867nobodyさん
2009/11/08(日) 13:36:52ID:???0868nobodyさん
2009/11/08(日) 13:41:42ID:9EHY5xphhttp://www.php.net/manual/ja/language.oop5.basic.php
例3 インスタンスを作成する
<?php
$instance = new SimpleClass();
// 変数を使うこともできます
$className = 'Foo';
$instance = new $className(); // Foo()
?>
0869nobodyさん
2009/11/08(日) 13:46:05ID:???autoloadしたい時とかFactoryパターンの時とか
0870nobodyさん
2009/11/08(日) 13:48:04ID:???可変変数の一種だ
0871nobodyさん
2009/11/08(日) 13:52:41ID:???http://www.php.net/manual/ja/functions.variable-functions.php
0873nobodyさん
2009/11/08(日) 17:28:03ID:???クラスってのはクッキー生地の型抜き用の型で、
インスタンスはそれで作られた個別のクッキー(生地)。
抜き型だけあってもそれを使わないと(newしないと)食えるクッキーの存在は生成されない。
てな感じでどうだ?
0875nobodyさん
2009/11/08(日) 17:55:43ID:???出来るものはどちらにしても肉まん・あんまん・中華まん。
0876nobodyさん
2009/11/08(日) 18:00:44ID:???変数$classNameの値に応じて、生成するインスタンスを変えられる。
class Foo{
function say_name(){
echo 'foo foo foo!';
}
}
class Bar{
function say_name(){
echo 'Bar, bar, BAAAAAR';
}
}
$instance = new $className();
$instance->say_name();
クラスに同じ名前同じ引数のメソッドがあり、その中身のロジックが全然違う場合なんかに使える。
0877nobodyさん
2009/11/08(日) 18:32:26ID:QzQ1Ze2qfunction test(){
throw new Exception('test');
}
}
try{
$test = new test;
$test->test();
}catch(Exception $e){
echo $e->getMessage();
}
classからスローした例外って上みたいにキャッチできますか?
0878nobodyさん
2009/11/08(日) 18:59:39ID:???0879nobodyさん
2009/11/08(日) 19:13:09ID:QzQ1Ze2q0880nobodyさん
2009/11/08(日) 20:10:53ID:???0881nobodyさん
2009/11/08(日) 21:05:50ID:8S6RVioX掲示板を作るとき「ファイル操作・文字列処理」をしますのでそういうのをクラスにまとめることによtt
いろんなスクリプトで再利用できるという認識でよろしいでしょうか?
0882nobodyさん
2009/11/08(日) 22:33:56ID:???0883nobodyさん
2009/11/09(月) 09:32:56ID:utcN5JBF同じコードを2個書かなくていいのはfunction(関数化)
クラス化は、同じコードを書かなくていいだけでなく、そのときに必要な部分のみ使える感じ
0884nobodyさん
2009/11/09(月) 10:54:46ID:???0885nobodyさん
2009/11/09(月) 10:57:53ID:???0886nobodyさん
2009/11/09(月) 11:09:38ID:utcN5JBFRPGツクールとかそんな感じで
逆にfunctionなどの関数はそのまま関数作ったり
RPGツクールの中の、敵にダメージを与える計算部分とか
0887nobodyさん
2009/11/09(月) 11:12:00ID:???少なくとも出発点はデータの保護、というかデータに対して可能な操作の定義。>>881
つか、もうそれってPHPの質問と違うやん。
OOもしくはOOP一般じゃろ。
0888nobodyさん
2009/11/10(火) 00:04:02ID:???それと同じ意味だよ。
A組 が 廊下掃除担当
B組 が 体育館掃除担当
C組 が プール掃除担当
という感じにクラス毎に役割を振っておけば、
後々管理が楽になるだろう?
「廊下に関する事なら、A組に聞けばいい。」
ってな具合で。
0889nobodyさん
2009/11/10(火) 00:22:25ID:???継承が使える。
これだろ。
0890nobodyさん
2009/11/10(火) 00:28:25ID:???クラスつかうなんてのは、手段であって、目的ではないからな。
0891nobodyさん
2009/11/10(火) 02:31:13ID:???0892nobodyさん
2009/11/10(火) 02:57:15ID:???Animalクラスを継承してDogクラスとかCatクラスを作るって例が多いけど、
わかりやすいようで解りづらいよなw
0893nobodyさん
2009/11/10(火) 03:10:25ID:???>Animalクラスを継承してDogクラスとかCatクラスを作るって例
この手の解説は参考にならないって、歴史が証明してるよなw
0894nobodyさん
2009/11/10(火) 03:44:55ID:???配列でまとめてあると、後で弄り易い。
0895nobodyさん
2009/11/10(火) 05:31:53ID:???0896nobodyさん
2009/11/10(火) 06:59:46ID:???そういう概念の話は腐るほど聞いても、じゃあいざ実装しようとすると
あれどれがDogでAnimalなんだっけ、いやそもそもクラスにする必要あるのかこれ?
と思考の海に沈む
まっとうなOOP本読めばいいんだろうけど
0897nobodyさん
2009/11/10(火) 08:03:12ID:T58KxytEPEARとかでよくファクトリークラス(?)を使って
クラスからクラスを作ってたりするけど、
あれってどういう理由があるの?
0898nobodyさん
2009/11/10(火) 09:28:55ID:???ttp://www.techscore.com/tech/DesignPattern/AbstractFactory.html
0899nobodyさん
2009/11/10(火) 09:41:10ID:lbGcCYju$fmPartsCrass->getUTypePD(10); //DBの登録値10をselectedとするユーザタイプのプルダウンを作る
$fmPartsCrass->uTypeToTXT(10); //フォームの確認画面で、選択値10のユーザタイプを出力する
クラス内のinit()ではプルダウン元になるname,valueの二次元配列を沢山読み込ませてる感じ。
こんなので良いのかな? クラスの使い方って。。
0900nobodyさん
2009/11/10(火) 09:56:23ID:???new classNameで明示的にインスタンス化したいな。
パラメータ指定してインスタンス作ってからaddとかするように
書くだろうな。
ま、好みの話だからさらっと流してくれ。
0901nobodyさん
2009/11/10(火) 09:57:06ID:???アホすぎワロタ
0903nobodyさん
2009/11/10(火) 10:25:02ID:???クラス化する必要なくね?って事だと思う。
俺はそうは思わないけど。
0904nobodyさん
2009/11/10(火) 10:51:32ID:???必要があるかどうかは結局その人の感覚次第でしょ
0905nobodyさん
2009/11/10(火) 11:05:09ID:???でも、殆どの人にとって、クラス化は最初は楽じゃないんだよね。
だから壁を越えようとしない人も多いんだろう。
壁を越えた向こうには、素敵な楽園が広がって・・・ るわけでもないし。
待ってるのは次の壁と、無間壁越え地獄w
0906899
2009/11/10(火) 11:50:11ID:???自分じゃ間違ってないだろって気持ちと、これはfunctionを束ねただけのものじゃないかって
気持ちが半分半分です。
バラしたら関数として独立化できるものはclassにする必要ないのかななんて考えると
全部そうだろうという気持ちがでてくるし…
0908nobodyさん
2009/11/10(火) 11:58:15ID:???0909nobodyさん
2009/11/10(火) 12:01:22ID:???汎用性を持たせればいいんじゃね?
リスト意外にもラジオボタンや複数選択でも出力、クラス指定で見た目も変えれるとか
0910nobodyさん
2009/11/10(火) 12:03:13ID:HgEfIoEeソースを見ていたら
<?= $test ?> という書き方をしている箇所を見つけました。
コードを書くときは<?php ?>で囲うと本には書いてありましたが
<?php print($test) ?> と、どう違うのでしょうか。
あまり見かけないということは何か問題のある記述方ですか?
0911nobodyさん
2009/11/10(火) 12:03:50ID:???「素材があって、料理する方法が複数ある場合」
はクラスにするようにしてる
0912nobodyさん
2009/11/10(火) 12:11:36ID:???これはその通り。ただ、
>全部そうだろうという気持ちがでてくるし…
こっちは、クラス使える言語でなら、そういうのはやめた方がいいぞ。
データってもんを無視すれば全部そうできるかもしれんけど。
「関数/手続きに(引数等で)データを渡す」だけで考えても一応全てのプログラムは書けるよ、確かに。
昔はそればっかだったし。
0915nobodyさん
2009/11/10(火) 12:36:32ID:???0916nobodyさん
2009/11/10(火) 13:07:19ID:n4Nrgy6Lclass Kobun extends Oyabun{function buki(){echo "ピストル";}}
class zako extends Kobun{function buki(){echo "鉄パイプ";}}
クラスKobunからクラスOyabunのメソットbukiを呼び出してマシンガンって表示させることはできましたが
クラスzakoからクラスOyabunのbukiを呼び出してマシンガンと表示させる書き方がわかりません
直接クラスOyabunで呼ぶ出すのではなくzakoから呼び出す方法をどなたかご指導お願い致します
0917899
2009/11/10(火) 13:11:58ID:???>>915
そうなんですか? そうだとしたら安心(?)しました
何度も同じコード書きたくなくて関数化してまとめてみようと思ったのがきっかけでした
クラスの継承とかpublic指定した変数の外部から参照とかしないんで、
複数の関数で使う変数の値やDB接続処理をinit()内部で定義すればいっぺんに書き換えられる、
まとめていつでも呼び出せる以上の利便性なんて感じないんですよね。それで十分だし。
何か損してるのかな。。
0918nobodyさん
2009/11/10(火) 13:16:16ID:???0919nobodyさん
2009/11/10(火) 13:37:25ID:???なんか妙な継承だと思うんだな。子分は親分か?
>クラスzakoからクラスOyabunのbukiを呼び出してマシンガンと表示させる書き方がわかりません
雑魚が親分を使役するのか?
実はPHPはよく知らないが、
Oyabun::buki();
で呼び出せない?
でもなぁ…
interface Kouseiin {
public function buki();
public function setOyabun($oya);
}
class Oyabun implements Kouseiin{略}
class Zako implements Kouseiin{
private $oyabun;
略
public function tasuketeOyabin(){
$this->oyabun->buki();
}
}
$chimpira = new Zako();
$chimpira->buki();
$chimpira->tasuketeOyabin();
0920nobodyさん
2009/11/10(火) 16:32:26ID:k/b4LSiufunction &set() {
↑このアンドマークの意味を教えてください。
0921nobodyさん
2009/11/10(火) 16:45:26ID:???0922nobodyさん
2009/11/10(火) 18:02:30ID:hMuYWgxiDBサーバーはpostgresqlです
0923nobodyさん
2009/11/10(火) 19:01:07ID:???PDOStatementのデストラクタで毎回削除してしまうようだね
ext/pdo_pgsql/pgsql_statement.c
> static int pgsql_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)
> {
...
> #if HAVE_PQPREPARE
...
> if (S->is_prepared) {
> spprintf(&q, 0, "DEALLOCATE %s", S->stmt_name);
> res = PQexec(H->server, q);
0924nobodyさん
2009/11/10(火) 19:03:05ID:???http://www.php.net/manual/ja/language.references.php
0925nobodyさん
2009/11/10(火) 20:40:43ID:k/b4LSiuありがとうございます。
こちらで質問して良かったです。
0926nobodyさん
2009/11/10(火) 21:11:57ID:Yr8QXJQkありがとうございます
しかし劇的に軽量化が出来ないかと思いましたが残念です
pgsqlで関数として定義にしておけば計量化したりしないものだろうか…
0927nobodyさん
2009/11/10(火) 21:28:36ID:???0928nobodyさん
2009/11/10(火) 21:31:00ID:Yr8QXJQkちゃんと勉強しましょう…。
0929nobodyさん
2009/11/10(火) 23:50:57ID:efP4W3lX以下のように空白で区切ろうと考えています
preg_split('/\p{Z}+/', $query);
単純な区切りでは問題ないのですが、
test aaaa => array('test', 'aaaa');
以下のように一単語として検索したい場合の正規表現が分かりません。
"test aaaa" test => array('test aaaa', 'test');
分かる方お願いします。
0930nobodyさん
2009/11/11(水) 01:00:21ID:???クラスの存在意義からして分からないならば、下手にクラスを作らず、まずはとにかく片っ端から関数化してみる事を薦める。
お勧めのトレーニングメニューは
・グローバル変数は一切使わない
・グローバルで行うのは関数呼び出し1つのみ
つまり、たとえばmain();という関数の呼び出しだけにして、すべてはこの関数の中で行う
・再代入は集約変数(foreachで合計を出すとか)以外一切禁止
つまり、変数には一度だけしか値を代入してはいけない。値を変えたくなった場合も、別の変数に代入しそっちを使う
・3階層以上のネストを一切作らない(慣れてきたら2階層)
特に、caseの枝では即return以外のことを一切行わない
・20行を超える関数は分割できないか検討する
(慣れてきたら10行くらいで切る)
・関数を追加することで一時変数を除去できるならば、常に関数を追加し、変数を除去する事を選ぶ
このあたりを行うと、「よい設計」が見えてくるはず。
0931nobodyさん
2009/11/11(水) 06:09:15ID:wK8ir+xVDBから商品名を全て呼び出し表示する→呼び出した商品をクリックすると、その商品のIDを持って次のページへジャンプ。
次のページでは、IDを元に商品の詳細をDBから呼び出して表示する。
ということがやりたいです。
ですが、最初のページでfetchを使って商品名を呼び出した時に、同時にIDをSESSIONに格納したのですが、ループの度に新たなIDが格納されてしまうため上手くいきません。
どうすればよいのでしょうか?
0932nobodyさん
2009/11/11(水) 06:34:31ID:???なんでセッションにID入れるの?
0933nobodyさん
2009/11/11(水) 09:41:07ID:wK8ir+xV例えば商品が「にんじん」「りんご」「バナナ」で、それぞれのIDを1、2、3とした時に、「りんご」を選んだらSESSIONに2が代入されるのかな?と思ってたんです。
0934nobodyさん
2009/11/11(水) 09:59:19ID:???最初のページのHTMLはどうなってるんだ?
単に次のページでPOSTで受け取った値を使って
DB問い合わせすればいいだけだとおもうが
0935nobodyさん
2009/11/11(水) 10:58:34ID:???0936nobodyさん
2009/11/11(水) 11:37:39ID:???0937nobodyさん
2009/11/11(水) 20:39:56ID:pZ2zz0+50938nobodyさん
2009/11/12(木) 00:32:56ID:Oiy0tVLqJavaだとjava communication apiでできると思うのですができればPHPで実現したいので
何かあればよろしくお願いします
0939nobodyさん
2009/11/12(木) 10:15:34ID:???0941nobodyさん
2009/11/12(木) 10:28:15ID:IzKnxBIbsmartyほど多機能でなくていいのでシンプルなテンプレートって他にありませんか?
0942nobodyさん
2009/11/12(木) 10:50:49ID:???検索すれば腐るほどあるから、好みでどうぞ。
smarty派生で軽いのはこんなのとか。
Template Lite: The smaller, faster templating solution
http://templatelite.sourceforge.net/
0943nobodyさん
2009/11/12(木) 15:30:57ID:0oRqbSW8すでに運営してます。
正規表現が解決すれば自分で実装しますので、ほかに質問はありません。
正規表現は初心者といったところでしょうか。
0944nobodyさん
2009/11/12(木) 15:34:39ID:???>>929
$query = 'foo "bar bar" baz';
preg_match_all('/"([^"]+)"|\P{Z}+/u', $query, $matches, PREG_SET_ORDER);
$phrases = array_map('end', $matches);
var_dump($phrases);
0945nobodyさん
2009/11/12(木) 20:49:23ID:???0946nobodyさん
2009/11/12(木) 20:59:13ID:???0948nobodyさん
2009/11/12(木) 23:53:51ID:TjILNw+pPEARはブログで紹介されてるのをよく見るけど
Openの方は見たこと無い
0949nobodyさん
2009/11/13(金) 00:26:44ID:???0950nobodyさん
2009/11/13(金) 08:59:06ID:K/C+ymkAimgでcount.phpを呼び出して一枚のイメージにして表示してることがあるけど
普通のレンタルサーバ借りてるところでいちいち画像結合してカウンタ表示させるのって
避けた方がいいですか?
0951nobodyさん
2009/11/13(金) 09:58:58ID:???0953nobodyさん
2009/11/13(金) 11:13:50ID:???0954nobodyさん
2009/11/13(金) 11:15:09ID:???あとphpとmysqlのバージョンぐらい書け出来損ない
0955953
2009/11/13(金) 11:17:47ID:TXCm92bgPHPコードからMySQL使ってブラウザに出力したのですが、文字化けします
OSはWindows XPで、php.iniの設定はdefault_charset = Shift_JIS、my.iniの設定はdefault-character-set=sjisです
PHP側で、
<?php
$s=mysql_connect('localhost','test','1234');
mysql_select_db('db1',$s);
$q=<<<EOT
SELECT bang,AVG(uria)
FROM tb
WHERE uria>=50
GROUP BY bang
HAVING AVG(uria)>=120
ORDER BY AVG(uria) DESC;
EOT;
$re=mysql_query($q);
while($kekka=mysql_fetch_array($re)){
print '社員番号:';
print $kekka[0];
print '売上平均:';
print $kekka[1];
print '<br />';
}
mysql_close($s);
?>
のようなコードを書きました
どのようにすれば文字化けを解消できるのでしょうか?
0956nobodyさん
2009/11/13(金) 11:22:32ID:???0957nobodyさん
2009/11/13(金) 11:24:04ID:???0958nobodyさん
2009/11/13(金) 11:31:36ID:TXCm92bgSQL自体は数字と英字です
社員番号、売上平均という文字が文字化けします
他のコードですが、SQLiteでは文字化けせずに出るので、mbstringの設定がおかしいのではないと思います
0959nobodyさん
2009/11/13(金) 11:37:12ID:???日本語読めますか?
my.iniの文字コードの設定とか確認しろ屋ksg
あとphpとmysqlのバージョンぐらい書け出来損ない
skip-character-set-client-handshakeでもmy.iniに設定してろks
0962nobodyさん
2009/11/13(金) 11:47:37ID:???↑
これが文字化けするならDB関係無い
0963nobodyさん
2009/11/13(金) 11:57:23ID:TXCm92bg単純に上記のコードだけの入力なのですが、HTMLの文字コード宣言かスクリプトの文字コードが影響しているのでしょうか?
それともmbstringの設定がおかしいのでしょうか?
一応、
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = auto;
mbstring.script_encoding = EUC-JP
が自分の設定です
上でも書きましたが、SQLite3ではこのような事は起きませんでした
>>959
書き込み中でした
skip-character-set-client-handshake設定しても変化なしです
PHP Version 5.2.10、MySQLは最新版で5.1です
0964nobodyさん
2009/11/13(金) 12:02:48ID:???;mbstring.internal_encoding = EUC-JP
mbstring.http_input = pass
mbstring.http_output = SJIS
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = auto;
;mbstring.script_encoding = EUC-JP
0966nobodyさん
2009/11/13(金) 12:18:08ID:TXCm92bgすみません、そのようにコメントアウトしたのですが、改善されませんでした
>>965
ごめんなさい、あまり良く分かっていないもので、「スクリプト自体の文字コードとHTMLの文字コード宣言」という意味が分かりませんでした
上記のコードを、http://localhost/から行っただけです
<? php 〜 ?>の中に<html>コード等を記入したわけではないです
また、逆に<html>コード内で<?php 〜 ?>を記入したわけでもございません
それとも、何か他に「スクリプト自体の文字コードとHTMLの文字コード宣言」というのがあるのでしょうか?
0967nobodyさん
2009/11/13(金) 12:25:10ID:TXCm92bg例えば、test.phpを作り、http://localhost/test.phpとすると、
<? php
print 'Good Bye';
?>
とするとブラウザにはGood Byeと表示されますが、
<? php
print 'ようこそ';
?>
とすると、ブラウザには ???? と出力されます
どう解決すれば宜しいのでしょうか?
0968nobodyさん
2009/11/13(金) 12:26:10ID:???スクリプト自体の文字コードというのは
そのphpのソースをエディタで書いて保存する時に、何の文字コードで保存しているかって事
0969nobodyさん
2009/11/13(金) 12:37:37ID:TXCm92bg上記のコードは書籍の問題に載ってるコードなので、それをそのまま使ったので分かりません
一応右クリックしてプロパティとかで調べても自分には分かりませんでした
自分のテキストエディタはTeraPad使っているのですが、初期文字コードはSHIFT-JISになっているようです
保存文字コードは自動に設定されています
0971nobodyさん
2009/11/13(金) 12:52:33ID:???サクラエディタUnicode版をおとなしく使え!!!!
0972nobodyさん
2009/11/13(金) 13:00:04ID:???960で965じゃないけど、
>ごめんなさい、あまり良く分かっていないもので、「スクリプト自体の文字コードとHTMLの文字コード宣言」
>という意味が分かりませんでした
自分がよく分からないからといって、もらった回答をシカトするのは最悪の行為だと思うよ
以下のページなども参照のこと。
http://d.hatena.ne.jp/next49/20081107/p1
>指導教員が一番がっかりするのは、一生懸命指導した内容に対して無視されること。それが、故意あるいは
>そうでないとしても「無視した」という結果が重視されるという点をよく理解するべき。理解できない場合、納得で
>きない場合は必ず指導教員に問い合わせるのが重要。
で本題だけど、あと思い当たるのは、
970か、php.iniのコメントを外してないか、
違うphp.iniを編集してるか(phpinfo関数で確認)か、
Apacheの文字コードが変なことになってるか、など
0973nobodyさん
2009/11/13(金) 13:13:01ID:???php.iniなどを見直したら、あとは出力する時に
content-typeもしっかり書くようにしてね
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<? php
print 'ようこそ';
?>
</body>
</html>
0974nobodyさん
2009/11/13(金) 13:23:38ID:LpZjQz1Cpost.phpから
data.txtへ
<img src="fds.jpg"><br>
<img src="ffgg.jpg"><br>
<img src="fdfgd.jpg"><br>
<img src="htrds.jpg"><br>
などとランダムな*.jpgを表示させる行を自動書き込みするようにして
<?php readfile("data.txt"); ?>
で表示させ、表示させたらdata.txtを空にしたい場合どう記述すれば良いでしょうか?
宜しくお願いします。
0975nobodyさん
2009/11/13(金) 13:27:06ID:???0976nobodyさん
2009/11/13(金) 13:30:31ID:???2)data.txtを読む
3)読んだ内容をクライアントに送出
4)data.txt消す
簡単じゃん。
0977nobodyさん
2009/11/13(金) 13:38:12ID:TXCm92bg?????
しかとしてませんよ?
>>963で「HTMLの文字コード宣言かスクリプトの文字コードが影響しているのでしょうか? 」って書いてます
>>957の事でしたら、書き込み中だったのと、それについて調べたり実行中だったので
後でちゃんと謝っています
php.iniのパスコードなど全部見直しましたが、間違っていませんでした
>>970
reStartは一応毎回しております
>>973
わかりました、今からちょっと試してみます
0978nobodyさん
2009/11/13(金) 13:45:01ID:???0979nobodyさん
2009/11/13(金) 13:53:56ID:TXCm92bgなんか色んなところでTeraPadは使うなという事を書かれているので、ちょっと試してみます
>>978
自分、FireFoxの一番新しいのを使っているのですが、変えても文字化けは変わりませんでした
しかし、今昼食を食べてから、>>968さんのアドバイスを受けて、TeraPadの保存文字コードをEUCに変えたところ、やっとブラウザにて日本語が表示されました
今までデフォルトの自動ばかりでやっていたのですが、保存文字コードの重要性を初めて実感いたしました
0980nobodyさん
2009/11/13(金) 13:58:55ID:???0981nobodyさん
2009/11/13(金) 13:59:03ID:TXCm92bgだからTeraPadでEUCで保存しなければ駄目だったのですね?
こういう部分の知識が乏しかったようです
色々と勉強になりました
皆様、有難うございました
0982nobodyさん
2009/11/13(金) 14:03:17ID:TXCm92bg>>973の教えてくれた方法でしょうか?
それとも自分が<html>を使う時のことでしょうか?
またはphp.iniやブラウザなどの設定でしょうか?
>>973さんの教えてくれたコードをそのまま実行してみたのですが、エラーも出ずに、真っ白なままで出力されました
また、今回ちゃんと日本語が出たコードは>>955のコードをそのままhttp://localhost/から実行しました
0983nobodyさん
2009/11/13(金) 14:07:28ID:???0984nobodyさん
2009/11/13(金) 22:04:04ID:qPMadgrNありがとうございました。無事に実装出来ました。
この正規表現は私の力では無理でした。
0985手柄横取りくん
2009/11/13(金) 23:54:45ID:???0987nobodyさん
2009/11/14(土) 06:33:14ID:???0989nobodyさん
2009/11/14(土) 07:15:19ID:???0990nobodyさん
2009/11/14(土) 09:10:46ID:???0991nobodyさん
2009/11/14(土) 09:14:37ID:???PHPもDBもついでにOSもUTF-8に統一しておいて
出力の時にキャリア別にsjisかutf-8かわけるだけ。
cssはHTML_CSS_Mobileを使うと外部CSSをインラインにしてくれる。
0992nobodyさん
2009/11/14(土) 11:54:26ID:???0993nobodyさん
2009/11/14(土) 12:18:54ID:???0994nobodyさん
2009/11/14(土) 13:03:45ID:???mailtoのsubject,bodyは細工せんとだめだけどね
ただむしろ携帯向けは簡単な細工で済むけど
PC向けはあっちを立てればこっちが立たずで困る
0995nobodyさん
2009/11/14(土) 14:47:55ID:???0996nobodyさん
2009/11/14(土) 15:08:11ID:GdfWs/uY1. 「わかりやすく書こう」
2. 「ライブラリ関数を使おう」
3. 「入力の妥当性,現実性をテストしよう」
4. 「速く動くように書こう」
5. 「意味のある変数名を使おう」
0997nobodyさん
2009/11/14(土) 16:11:30ID:3aAklpl5move_uploaded_fileでアップロードしたファイル(例えば画像)をブラウザで閲覧しようとすると
「このページを表示する権限がありません」となってしまいます
もともと置いてある画像は問題なく見ることができます
何がいけないのでしょうか?
0998nobodyさん
2009/11/14(土) 16:47:53ID:???0999nobodyさん
2009/11/14(土) 16:58:17ID:3aAklpl5PHP4で直すことってできませんか?
1000nobodyさん
2009/11/14(土) 16:59:40ID:???いまどきphp4使ってるとか時代後れ杉wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。