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

このエントリーをはてなブックマークに追加
1nobodyさん
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2011/10/31(月) 05:13:10.53 ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 111
http://hibari.2ch.net/test/read.cgi/php/1317232566/
【PHP】下らねぇ質問はID出して書き込みやがれ 110
http://hibari.2ch.net/test/read.cgi/php/1314692611/
【PHP】下らねぇ質問はID出して書き込みやがれ 109
http://hibari.2ch.net/test/read.cgi/php/1311803617/
【PHP】下らねぇ質問はID出して書き込みやがれ 108
http://hibari.2ch.net/test/read.cgi/php/1309599473/
【PHP】下らねぇ質問はID出して書き込みやがれ 107
http://hibari.2ch.net/test/read.cgi/php/1307228162/
【PHP】下らねぇ質問はID出して書き込みやがれ 106
http://hibari.2ch.net/test/read.cgi/php/1304064660/
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1300302034/
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
【PHP】下らねぇ質問はID出して書き込みやがれ 103
http://hibari.2ch.net/test/read.cgi/php/1295956018/
【PHP】下らねぇ質問はID出して書き込みやがれ 102
http://hibari.2ch.net/test/read.cgi/php/1292670453/
【PHP】下らねぇ質問はID出して書き込みやがれ 101
http://hibari.2ch.net/test/read.cgi/php/1289793607/
3nobodyさん:2011/10/31(月) 05:13:56.08 ID:???
関連リンク
■本家マニュアル   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/
4nobodyさん:2011/10/31(月) 05:14:37.83 ID:???
【簡易FAQ】
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プログラムとして実行された結果になる。
5nobodyさん:2011/10/31(月) 05:15:19.06 ID:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきは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に保存?
 → 好きにしてください
6nobodyさん:2011/10/31(月) 10:17:32.86 ID:Y0Qjkr6H
下らない質問ですみません

アップロードした画像の名前を連番かタイムスタンプかに
自動的にファイル名を変更して保存したいのですがどうしたらよいですか?
ググっても良く分かりませんでした
7nobodyさん:2011/10/31(月) 11:27:58.69 ID:???
>>1
おつ
8nobodyさん:2011/10/31(月) 11:28:31.27 ID:???
>>6
rename
9nobodyさん:2011/10/31(月) 17:47:31.52 ID:kJZWPuOB
【OS名】CentOS5.7
【PHPのバージョン】5.3.5
【連携ソフトウェア】pgsql
【質問内容】
先日PHPを再インストールしたのですが(yumの5.3.5からソースの5.3.5に変更)、
今まで使用していたpgsql関連の関数がいくつか使用できなくなってしまいました。
現在確認している関数はpg_affected_rows()とpg_escape_string()です。
Fatal error: Call to undefined function pg_affected_rows()
Fatal error: Call to undefined function pg_escape_string()

ググってみても全く原因が掴めず困っています。
よろしくおねがいします

いくつかインストール後に気になった点です。
・phpinfoのpgsql欄の以下の項目がdisabledとなっている(再インストール前はenabled)
Multibyte character support disabled
・同じくpgsql欄のlibpqのVersionが8.1.22から9.0.0に上がったこと
PostgreSQL(libpq) Version 9.0.0
10nobodyさん:2011/10/31(月) 18:06:36.61 ID:???
>>9
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pgsql --enable-mbstring
11nobodyさん:2011/10/31(月) 18:18:13.58 ID:???
>>9
php5.3使ってるならオブジェクトで書けよ
12nobodyさん:2011/10/31(月) 18:22:41.06 ID:AI0ae1hj
名前空間を使うとき

from hoge import *

みたいな書き方はできないんでしょうか?

use hoge\*

ではダメでした・・・
13nobodyさん:2011/10/31(月) 18:23:01.76 ID:Z5/PdDI9

--with-mysql=/usr/local/mysql \
14nobodyさん:2011/10/31(月) 18:25:07.06 ID:???
>>11
PDOってこと?
159:2011/10/31(月) 18:35:43.71 ID:kJZWPuOB
解答ありがとうございます

>>10
configureオプションは以下のようになっています
一応全て指定しているつもりなのですが、何か不自然な所があったら指摘をお願いします
--with-apxs2=/usr/sbin/apxs \
--with-pgsql=/usr/pgsql-9.0 \
--enable-mbstring \

>>11
オブジェクトを扱ってdbconnectができるのですね。知りませんでした。
ですが、何が使用不可となっているのか把握できていないので、
根本から解決したいと思っています。
16nobodyさん:2011/10/31(月) 19:24:32.06 ID:Z5/PdDI9
phpをインストールするとき
--with-pgsql=/usr/local/pgsql
これ入れた?
17nobodyさん:2011/10/31(月) 19:27:23.69 ID:Z5/PdDI9
18nobodyさん:2011/10/31(月) 19:29:35.24 ID:???
>>16
>>15見る限りじゃやってそうだけどね
19nobodyさん:2011/10/31(月) 19:31:34.17 ID:Z5/PdDI9
もう一回両方入れなおしたら?
20nobodyさん:2011/10/31(月) 19:35:16.40 ID:DDhIm8wJ
スクリプト改造工房スレの>>689です。
向こう過疎ってるんでお時間ある方お願いします。
★三 【 スクリプト改造工房 PART 9 】 ★三
http://hibari.2ch.net/test/read.cgi/php/1143834740/
21nobodyさん:2011/10/31(月) 19:39:34.89 ID:???
>>17
宣伝乙
22nobodyさん:2011/10/31(月) 19:40:25.35 ID:???
>>20
PHPと関係ねえじゃんしねよks
perlスレ池
23nobodyさん:2011/10/31(月) 19:45:48.73 ID:DDhIm8wJ
>>22
じゃあ質問する場所間違えたみたいですね。こちらで質問させて頂きます。
【ファイル】http://www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=pwdwin&no=4770 パス:p
http://q.hatena.ne.jp/1287372348を参考にwebサイト上に、あるサイトのxmlをsimplexml_load_fileで読み込み、表示しています。
今のところ、一つしかサイトを取得できてないんですけど、2つ以上のサイトのxmlを読み込むにはどうすればいいでしょうか。$rssにarrayを指定してみてもできなかったです。
ついでに日時順(取得したの全部ごちゃまぜで)に並べる方法も教えて下さい。よろしくお願いいたします。
24nobodyさん:2011/10/31(月) 19:52:15.67 ID:???
apache、php、postgresqlをyumじゃなくそーすでやったら。
25nobodyさん:2011/10/31(月) 20:33:17.97 ID:???
>>23
オブジェクト分けろ
26nobodyさん:2011/10/31(月) 20:52:29.26 ID:???
>>23
丸投げ厨しね
自分で調べろks
27nobodyさん:2011/10/31(月) 21:11:27.68 ID:DDhIm8wJ
>>25
ありがとうございます。
あまり知識が及ばないので調べさせていただきます。
できましたら報告しますね。
28nobodyさん:2011/10/31(月) 21:28:23.35 ID:???
質問です。

A画面とB画面があって、その両方の画面から呼ばれているユーザー選択画面があったとします。
A画面から、リンクを押下するとユーザー選択画面に遷移し、
ユーザーを選択するとA画面に戻ります。
B画面も同様の動きをします。

このような場合、ユーザー選択画面を実装するphpファイルを、
A画面にもB画面にも依存しないように作るのは一般的ですか?
それとも、依存するのが当たり前でしょうか。

よろしくご教示お願いいたします。
2928:2011/10/31(月) 21:34:32.19 ID:znaCeG13
すいませんID出し忘れました
30本物の28:2011/10/31(月) 21:45:13.20 ID:???
>>29
すいません、id出さなきゃいけないルールなのでしょうか。。
idを出す方法を教えてください。
31nobodyさん:2011/10/31(月) 21:47:31.90 ID:???
>>28
どっちでもいいよ
コントローラで動作を振り分けるのもいいし
別々につくってもいいし
32nobodyさん:2011/10/31(月) 22:01:30.41 ID:???
>>30
名前欄にfusianasanって書くとIDが出る
33nobodyさん:2011/10/31(月) 22:12:29.18 ID:???
>>29の優しさにうるっと来て
>>30で涙腺が崩壊した
34nobodyさん:2011/10/31(月) 22:47:18.57 ID:???
>>31
依存しないで作ることなんか出来るの?
A画面で何か入力して、ユーザー選択画面に遷移した後、A画面に戻ったら入力内容を復帰する場合を考慮すると、
依存しないで作ることは出来ない思う。
35本物の28:2011/10/31(月) 22:48:44.21 ID:???
解決しました
36nobodyさん:2011/10/31(月) 23:15:41.76 ID:???
どっから来たかを覚えておけばいいよ。
元の画面の情報を復帰するのは、元の画面が考えればいいだけ。
37nobodyさん:2011/10/31(月) 23:36:43.33 ID:V0LerLdh
SQLite3でデータを簡単に登録するだけのフリーライブラリとかないでしょうか?
検索機能は必要なのですけど、
登録機能は付ける必要がないので、
そういうツールがあると楽なんですけど
38nobodyさん:2011/11/01(火) 00:14:05.29 ID:???
フレームワーク ORM
39nobodyさん:2011/11/01(火) 00:53:31.07 ID:???
+-----+---------+------+------+------+--------------+---------------+
| hid | name | hid | sid | lid | skillname | skilleffect |
+-----+---------+------+------+------+--------------+---------------+
| 2 | slither | 2 | 0 | 1 | poison spray | 70damage |
| 2 | slither | 2 | 0 | 2 | poison spray | 80damage |
| 2 | slither | 2 | 1 | 1 | toxicity | 4000e |
| 2 | slither | 2 | 1 | 2 | toxicity | 3000secdamage |
+-----+---------+------+------+------+--------------+---------------+
これを
mysql_fetch_array($res)で取得すると

array(13) { [0]=> string(1) "2" ["hid"]=> string(1) "2"
[1]=> string(7) "slither" ["name"]=> string(7) "slither"
[2]=> string(1) "2" [3]=> string(1) "0" ["sid"]=> string(1)
"0" [4]=> string(1) "1" ["lid"]=> string(1) "1" [5]=> string(12)
"poison spray" ["skillname"]=> string(12) "poison spray"
[6]=> string(8) "70damage" ["skilleffect"]=> string(8) "70damage" }
2
ってなる
重複されちゃって 1個しかとれない

4こ配列にとる方法おしえて
40nobodyさん:2011/11/01(火) 01:00:24.29 ID:???
41nobodyさん:2011/11/01(火) 01:08:19.37 ID:???
>>1を読まないやるはたいていマニュアルも読まないからな
ちゃんと書いてあるのに
42nobodyさん:2011/11/01(火) 01:16:49.74 ID:???
>>37
DB板のSQLiteスレへどうぞ
43nobodyさん:2011/11/01(火) 02:23:23.79 ID:???
どんどんfetchすればいいだけだったわ。
IDなんて出すかボケ
44nobodyさん:2011/11/01(火) 02:48:24.50 ID:i3fruPo7
evalって危険ですか?
45nobodyさん:2011/11/01(火) 03:19:12.73 ID:???
潜在的な危険性はある
特に使う機会もないしよくわからないなら使わないほうがいい
4639:2011/11/01(火) 09:10:38.89 ID:???
【OS名】Ubuntu10.4
【PHPのバージョン】5.3.2
【連携ソフトウェア】MySQL
【質問内容】
+-----+---------+------+------+------+--------------+---------------+
| hid | name | hid | sid | lid | skillname | skilleffect |
+-----+---------+------+------+------+--------------+---------------+
| 2 | slither | 2 | 0 | 1 | poison spray | 70damage |
| 2 | slither | 2 | 0 | 2 | poison spray | 80damage |
| 2 | slither | 2 | 1 | 1 | toxicity | 4000e |
| 2 | slither | 2 | 1 | 2 | toxicity | 3000secdamage |
+-----+---------+------+------+------+--------------+---------------+
これを
mysql_fetch_array($res)で取得すると

array(13) { [0]=> string(1) "2" ["hid"]=> string(1) "2"
[1]=> string(7) "slither" ["name"]=> string(7) "slither"
[2]=> string(1) "2" [3]=> string(1) "0" ["sid"]=> string(1)
"0" [4]=> string(1) "1" ["lid"]=> string(1) "1" [5]=> string(12)
"poison spray" ["skillname"]=> string(12) "poison spray"
[6]=> string(8) "70damage" ["skilleffect"]=> string(8) "70damage" }
2
ってなる
重複されちゃって 1個しかとれない

4こ配列にとる方法おしえてください
4739:2011/11/01(火) 09:21:13.02 ID:???
わかりました
whileを使って
mysql_fetch_arrayの内部ポインタを回してなかったのが問題でした
48nobodyさん:2011/11/01(火) 09:44:33.99 ID:???
28==39はたぶん前から荒らしてるIDを出さない愉快犯だろ
499:2011/11/01(火) 10:34:28.61 ID:et/TRmhs
回答ありがとうございます。
結果から申しますと直りました。
prefixに自分の作成したディレクトリを設定していたのですが、
以下のようにしたら直りました。
--prefix=/usr \
たぶんこれが原因ですが、他にも少々いじっていたので釈然としません・・・
50nobodyさん:2011/11/01(火) 12:34:31.21 ID:H8SNTTud
携帯メール送信について教えてください。
PCメールは以下のコードで送信ができました。

mb_language("japanese");
mb_internal_encoding("UTF-8");

$to = "[email protected]";
$subject = "test";
$body = "test";
$from = mb_encode_mimeheader(mb_convert_encoding("テスト","JIS","UTF-8"))."<[email protected]>";
mb_sendmail($to,$subject,$body,"FROM:".$from);

文字コードをUTF-8からISO-2022-JPに変えればいいんでしょうか?
色々ググったんですが、具体的にどうすればいいのかわかりません。
携帯がiPhoneなので実機の確認が出来ないのですいませんが教えてください。
51nobodyさん:2011/11/01(火) 12:38:51.23 ID:H8SNTTud
追記です。
絵文字も半角カタカナも使いません。
ふつうの日本語とURLの送信だけです。
52nobodyさん:2011/11/01(火) 12:48:23.03 ID:???
バカがとある文字化け解消ブログを鵜呑みにしてmb_send_malは使うなとか言いそうだから書いとくけど
サーバの設定を正しくきちんとやってれば文字化けなんておきないんだよ
あのブログの内容は古すぎる
53nobodyさん:2011/11/01(火) 12:52:59.88 ID:iiYJx3ec
RSSを取得してタイトルとリンクを表示させて、さらにそのタイトルの文字数を制限させたいのですが上手くいきません。

普通の文章なら
 $text = 'あいうえおかきくけこさしすせそ';
 $text = mb_strimwidth($text, 0, 10, "...", 'UTF-8');
 print ($text);
「あいう...」 となるのですが

RSSだとどこに $*** = mb_strimwidth($***, 0, 10, "...", 'UTF-8');の記述を挿入しても上手くいきませんでした

RSSの取得には ttp://php-web.net/faq/rss.html このサイトの記述を使用しています。
$rssurl = "RSSのURL";
$rssdata = simplexml_load_file($rssurl);
$num_of_data = 5;
$outdata = "";
for ($i=0; $i<$num_of_data; $i++){
$outdata .= "<li>";
$outdata .= "<a href=\"";
$outdata .= $rssdata->item[$i]->link;
$outdata .= "\">";
$outdata .= $rssdata->item[$i]->title;
$outdata .= "</a>\n";
$outdata .= $rssdata->item[$i]->description;
$outdata .= "</li>";
}
print($outdata);

初心者のウンコです。宜しくお願いします。
54nobodyさん:2011/11/01(火) 15:01:44.10 ID:???
>>52
正しくきちんと説明すんのが面倒だからそう言ってるのが分からんのはバカじゃねーのか?

>>50
つーわけでめんどくさいんで、初心者にはPEAR使ってねっていうのが楽な回答。

>>53
RSSの生データをブラウザじゃなくてソースで見てみるといいかも。 数値文字参照になってるかも。
55nobodyさん:2011/11/01(火) 15:19:57.61 ID:???
日本語でお願いします
56nobodyさん:2011/11/01(火) 15:27:49.33 ID:H8SNTTud
>>54
PEAR::Mailですか?
require_once("Mail.php");で呼び出して使えばいいんですか?
とりあえず、これでもう一回調べます。
ありがとうございます。
57nobodyさん:2011/11/01(火) 15:36:39.79 ID:???
SJIS固定なのはよほど古い携帯使ってる場合
58nobodyさん:2011/11/01(火) 16:01:31.69 ID:ILjwbPAY
PHPの質問というかサイト開発の考え方についての質問ですが

今、某フレームワークを使ってて、各ページで発生する例外を
フロントコントローラでキャッチしてエラーページに転送する処理を行っています
で、今回あるアプリというかライブラリ的なものを導入したところ
そのライブラリ中のmethodを実行すると場合によって内部で例外処理を実行するため
エラーページに転送されてしまいます

しかし、自分としてはそのmethodの実行はmustの機能でなくオプション的なもので
いちいちエラーページに転送せんでも…と考えています

if($libraly->doit()){
error_log("doitの実行中に例外が発生したみたいです<__FILE__:__LINE__>";);
}
という形でエラーの記録をつける程度にしたいんですが、
この場合、
1)フロントコントローラやエラーページのコントローラで
 throwされた例外を判別してエラーページに転送させない
2)そもそも例外処理をしてるライブラリの中身を弄って例外でなくエラーコードを返させるなど改造する

の二通りしかないんでしょうか? 1がおすすめというか普通の処置ですか?
59nobodyさん:2011/11/01(火) 16:33:25.03 ID:???
>>58
まともな思考の持ち主なら、bool値を返すのか例外を出すのか仕様を決めて
エラーだろうが例外だろうが必要な方へ変換する
6053:2011/11/01(火) 17:01:34.11 ID:iiYJx3ec
>>54
ブラウザのソースみて組みなおしたら出来ました
ありがとうです!
61nobodyさん:2011/11/02(水) 13:53:37.39 ID:???
こんにちはぁ〜

PHPプログラマーの、お姉さんだよぉ〜
今日はどんな質問が残ってるのかな?

お姉さん納品も終わって暇だから、
どんな質問にも答えちゃうよぉ〜

62nobodyさん:2011/11/02(水) 14:30:44.37 ID:l39L84sY
フェイスブック連携アプリを作っているのですが、
メッセージをウォール投稿する際に改行を入れたいのですがどうやればいいのでしょうか?
63nobodyさん:2011/11/02(水) 14:40:44.80 ID:???
商売で儲かる時期なので教えません
64nobodyさん:2011/11/02(水) 15:58:38.10 ID:3p0wfnnG
>>50ですが、なぜかYahooメールアドレスのみメールが届かないことがわかりました。
たまに迷惑メールフォルダに入っているんですが、これどうすればいいんですか?

第五引数に-fを入れたら届いたというのを見てやってみたんですが、届きません。
一日はまっていて正直お手上げです。どなたか教えください。
65nobodyさん:2011/11/02(水) 16:02:20.35 ID:44zn7mAu
mingについて質問させてください。
SWFTextFieldで表示した文字列を透明化したいと思います。
以下のようなコードでは駄目でした。

$textField = new SWFTextField(SWFTEXTFIELD_MULTILINE|SWFTEXTFIELD_NOEDIT|SWFTEXTFIELD_NOSELECT);
$textField->setFont(new SWFFont(""));
$textField->addString("aaaaaaaaaaaaaa");
$obj = $swf->add($textField);
$obj->setName("tfobj");
$action = new SWFAction("tfobj.alpha=20;");
$swf->add($action);
$swf->nextFrame();

そもそもこのような事は可能なのでしょうか?
66nobodyさん:2011/11/02(水) 17:05:29.00 ID:???
mb_convert_encodingで数値文字参照からUTF8へのコンバート実装した奴誰だよ!
神かよ!!
67nobodyさん:2011/11/02(水) 22:04:29.02 ID:lxwCRKmV
インスタンスを複数作るわけじゃない場合、Javascriptだとクラス(みたいなもの)を作らずに
var object = {
  value: "",
  getValue: function() { return this.value },
  setValue: function(value) { this.value = value }
};
と書いてnewせずに使いますがPHPではこういう場合どうするんでしょうか
ひとつの場合でもクラスを作ってnewするんでしょうか
68nobodyさん:2011/11/02(水) 22:18:59.02 ID:???
>>67
無名クラスなら残念ながらない
動的オブジェクトなら new stdClass() がある、がメソッドは定義できない
69nobodyさん:2011/11/02(水) 22:20:24.99 ID:???
JavaScriptはアクセス修飾子がない
setter/getterメソッドは普通はインスタンスを作る

class Hoge {
? private $value = "";
? public function getValue() { return $this->value; }
? public function setValue($value) { $this->value = $value; }
}

$hoge = new Hoge();
$hoge->setValue("foo");
echo $hoge->getValue();
70nobodyさん:2011/11/02(水) 22:21:17.55 ID:???
実体参照の記述ミス
?のとこはインデントに置き換えてね
71nobodyさん:2011/11/02(水) 22:27:40.24 ID:???
class Object {
static $value = "";
static function getValue() { return Object::$value; }
static function setValue($value) { return Object::$value = $value; }
}

Object::setValue("foo");
echo Object::getValue();

staticにすればこんなこともできるが・・・いいやり方とは思わない。
7267:2011/11/02(水) 22:27:42.95 ID:???
>>68-70
どうもありがとうございますm(_ _)m
7367:2011/11/02(水) 22:30:04.31 ID:???
>>71
どうもありがとうございます
74nobodyさん:2011/11/02(水) 23:44:23.99 ID:???
>>67
しんぐるとん
75nobodyさん:2011/11/03(木) 00:49:04.09 ID:gDPf6EbN
$_SERVER[HTTP_REFERER]以外に前のページのURLを取得する方法ってありますか?
携帯だと$_SERVER[HTTP_REFERER]が使えないようなので。
76nobodyさん:2011/11/03(木) 01:19:04.01 ID:???
ない
クライアントが送出する情報だし
サーバ側でどうこうする問題じゃない
77nobodyさん:2011/11/03(木) 01:23:25.50 ID:gDPf6EbN
>>76
ありがとうございます。
根本的にコードを書き直さないといけないっぽいです。
7862:2011/11/03(木) 01:37:42.96 ID:b9zARhas
だれか62の回答をお願いします〜
79nobodyさん:2011/11/03(木) 02:39:20.91 ID:???
フェイスブックの仕様なんかしるかよ
フェイスブックに問い合わせろや
80nobodyさん:2011/11/03(木) 02:44:53.01 ID:5engvLs9
<?php var_dump($_POST);?>
<form action="add.php" method="post">
<input type="text" key="k1" value="v1"/>
<input type="submit" value="send" />
</form>

ファイル名add.phpにて、このコードをそのまま実行して、サブミットすれば、
var_dumpでPOSTのデータが取れると思ったんですけど、出てきませんでした。
これってどこがおかしいのでしょうか?
8180:2011/11/03(木) 02:51:04.34 ID:???
申し訳ない、事故解決した。
ってかformはkeyじゃなくてnameだったな。
なんか、違う言語のキーワードか何かとごっちゃになってた
82nobodyさん:2011/11/03(木) 10:18:48.53 ID:???
どこに質問して良いのかわからないのでここに質問させてもらいます。
いわゆる各種ブログへのメール投稿をするプログラムを作成しました。

流れとしては・・・
1.レンタルサーバにその人の各種ブログ用の携帯投稿アドレスを登録しておく。
2.特定のアドレスにその人がデコメを送信する
3.メールをトリガにしたPHPを起動させ、TOを設定して各種ブログへ送信する

と言う物を作ってあります。
先日顧客の要望でアメブロを対応させてくれという話があったんですが、
アメブロは単純にアドレスを打つだけではダメなんでしょうかね?

他のブログはFromが指定アドレスになっていれば特にチェックしてないみたいでブログに反映しているのですが、
アメブロは携帯アドレスを細かくチェックしてるのか投稿が無視されます。
どのサーバから送られてきたとか、そういうのをチェックしているのかな?と考えました。
(偽装的な物のチェックだと考えて良いのですかね?)

少し調べましたがAtom?とかのAPIをPHPでプログラムして投稿するような事をしないとダメなんでしょうか?
それしか方法が無いなら顧客に日数ももらわないといけませんし・・・
あれこれ調べて見ましたが、API使用しか方法が無いのか確信が持てなかったので・・

もし何かヒントでもわかる方お見えでしたらよろしくおねがいいたします。
83nobodyさん:2011/11/03(木) 10:23:05.42 ID:???
>>82
なぜ、そのアメブロに聞かないのか。
お仕事でしょ?
84nobodyさん:2011/11/03(木) 11:11:40.24 ID:???
>>75
クエリに現在のurlを埋め込んだリンクを用意する
85nobodyさん:2011/11/03(木) 11:12:07.76 ID:???
>>78
今稼ぎ時の仕事なので教えません
86nobodyさん:2011/11/03(木) 11:39:25.06 ID:gDPf6EbN
>>76
前のページで$_SESSIONに自分のファイル名をいれておくことであっさり解決しました。
ありがとうございます。
87nobodyさん:2011/11/03(木) 13:28:22.55 ID:5qwbDYAW
【OS名】CentOS6.0
【PHPのバージョン】5.3.8
【連携ソフトウェア】Apache 2.2.15

urlルーティングしてくれるスクリプトを自分で作ろうと思ってます。
http://www.example.com/ を自サイトURLとして、http://www.example.com/page/param1/param2/というurlにアクセスすると
http://www.example.com/index.php にリダイレクトするようapacheのmod_rewriteで設定済みです。

index.phpの中にルーティングのロジックを書いているのですが、うまくいきません。

$request_uri = explode('/', $_SERVER['REQUEST_URI']);
$script_name = explode('/', $_SERVER['SCRIPT_NAME']);
$uri_info = array_diff_assoc($request_uri, $script_name);
$uri_info = array_values($uri_info);

上記のコードで実際にリクエストされたurl(www.example.com/page/param1/param2)と
実際にルーティングのロジックが動いているスクリプト(www.example.com/index.php)との
差分をとって、 /page/param1/param2 を取得しようと思ったのですが、
$request_uri と $script_name をvar_dumpすると、以下のような全く一緒の値がでてきてしまいました。

array(4) { [0]=> string(0) "" [1]=> string(4) "page" [2]=> string(6) "param1" [3]=> string(6) "param2" }

script_nameがうまく取得できないのですが、どうやったらうまく取得できるでしょうか?
88nobodyさん:2011/11/03(木) 21:04:18.73 ID:???
車輪のなんちゃらって言われないようにFW使っとけ
89nobodyさん:2011/11/03(木) 21:40:48.05 ID:RHXIeUwE
車輪のなんちゃらもお勉強目的ならありだよなー
90nobodyさん:2011/11/03(木) 21:54:04.74 ID:???
>>87
クライアントが要求してくるURLを取得するのだからrequest uriだけ使えばいいんだよ
その用途にscript nameを使う意味がわからない
91nobodyさん:2011/11/03(木) 22:21:13.75 ID:???
よくわからんけど、array_diff_assocは駄目だと思う。
9287:2011/11/04(金) 02:04:59.05 ID:tFL/lOhG
前々からこのルーティングの仕組みが気になっていたので、
http://www.phpaddiction.com/tags/axial/url-routing-with-php-part-one/
を参考に勉強のために作っています。

>>90
よくよく考えてみれば、確かにscript name必要ないかも・・・
定数でindex.phpの配置パスを定義しておけば問題ありませんね

>>91
array_diff_assocって使わないほうがいいのでしょうか?
どうしてなんでしょう?
93nobodyさん:2011/11/04(金) 11:39:06.39 ID:hpR+oaep
【PHPのバージョン】5.3
【質問内容】 どうにもこうにもNoticeがとまらない

if(count($limitid) > 0) {
foreach($limitid as $include) {
for($i=0; $i<count($obj); $i++) {
if($obj[$i]->term_id == $include) {
array_push($cat, $obj[$i]);
break;
}
}
}
$obj = $cat;
}

Notice: Trying to get property of non-object in (四行目)

ここの板の人はアホかと思うような質問ですまません
何をやってもさっぱりでNoticeは消えず
php4->5のルール変更がクモの巣のようですorz
94nobodyさん:2011/11/04(金) 12:00:51.48 ID:???
>>93
再現できる最低限のコードを張りましょう
95nobodyさん:2011/11/04(金) 12:10:28.76 ID:???
googleで Trying to get property of non-objectで検索して一番最初のやつでいいだろ。
何もやってもというが、何もやって無いだろ。
96nobodyさん:2011/11/04(金) 13:07:04.52 ID:???
>>92
俺もarray_diff_assocはだめだと思う。
そうしようと思った発想は柔軟でうらやましくはあるけれど。
97nobodyさん:2011/11/04(金) 13:08:38.70 ID:???
>>93
$objにオブジェクトじゃないものが潜んでる
98nobodyさん:2011/11/04(金) 13:53:03.66 ID:3DwnANG1
フォームタグ出力関数みたいなのは作らないほうが良いとどこかで読んだ気がするのですが
どうなんでしょうか
99nobodyさん:2011/11/04(金) 14:28:45.24 ID:???
また○○はするなを鵜呑みにしちゃう低学歴のご登場か
○○していいよっていう意見よりも○○はするなという意見を信じてしまう典型的な例
100nobodyさん:2011/11/04(金) 15:23:02.83 ID:???
>フォームタグ出力関数

ナニソレ
101nobodyさん:2011/11/04(金) 16:02:57.33 ID:???
>>99
「いつも私はこのように書いています。」ってのも、かなりの安心感をもたらす魔法の言葉。

なので、さっぱり良いとも悪いとも、そもそも話を理解できていない俺が

>>98
簡単なアプリならフォームタグ出力関数みたいなのを作るのが楽でいいよ。
フォームベタ書きでもいいけど、あんまりオススメしない。
将来もっと複雑になってきたときにフレームワークに切り替えればおk。

と、レスをするわけです。
102nobodyさん:2011/11/04(金) 17:05:52.19 ID:???
DOM使えばじゃあ
それにしてもPHPのDOMは貧弱だよな
103nobodyさん:2011/11/04(金) 17:59:53.68 ID:???
>>98
関数とhtmlが分かりにくく混ざることを危惧した言葉だと思う。
関数を使うことで(書きやすさではなく)見通しが良くなるというのであれば作ればいい

ちなみに私はsmartyを組み合わせた自作簡易フレームワークの為にhtmlをはきだすクラスを作った
<div>{{ht->inpur name='hoge' value='hogevalue'}}</div>
このhogeはPOSTの値と繋がっているから、
POST['hoge']に何かが入っていたら、自動的にその内容が表示されるとか、
selectだと自動的に選んだものにselectedが入るとか、
そういう使い方はしてる
104nobodyさん:2011/11/04(金) 18:36:16.55 ID:???
>>101-103
ありがとうございます
105nobodyさん:2011/11/04(金) 20:26:13.02 ID:1sQ24kpb
.phpの中で、外部の.phpファイルを実行したいんですがそのときに引数も渡したいです

a.php
<?php
exec('/usr/lib/php /var/www/test.php 100 50 >dev/null 2>&1 &' ,$rec);
var_dump($rec);
?>

test.php
<?php
return $argv[1]+$argv[2];
exit();
?>

a.phpのvar_dump()の結果で150が返ってくることを期待してるんですが
実際は array(0) { } です
どこがおかしいんでしょうか?
106nobodyさん:2011/11/04(金) 20:43:28.90 ID:???
>>105
なぜexecを使う。includeかrequireでいいじゃない。
107nobodyさん:2011/11/04(金) 20:46:36.43 ID:1sQ24kpb
>>106
バックグラウンド処理というのをしたいんです
それで調べたらexec()と書いてありました
php.iniのsafe_modeもoffになってるんですが…
108nobodyさん:2011/11/04(金) 21:27:53.65 ID:???
>>105
return で結果が返るわけないだろ
test.phpのところで返したい文字をechoで返せ
109nobodyさん:2011/11/04(金) 21:57:38.17 ID:1sQ24kpb
>>108
test.php
<?php
$val= $argv[1]+$argv[2];
echo $val; //ダメでした
echo "test_val";//こっちもダメでした
?>
そもそもtest.phpをちゃんと実行できてるんでしょうか?
どうやったら確認できますか?
110nobodyさん:2011/11/04(金) 22:04:22.41 ID:???
<?php info;?>
111nobodyさん:2011/11/04(金) 22:13:12.38 ID:???
>>110
なにこれ?
112nobodyさん:2011/11/04(金) 22:15:25.20 ID:1sQ24kpb
>>110
phpinfo()とは違うものですか?
とりあえずtest.phpをその内容に書き換えましたが何も起きません
113nobodyさん:2011/11/04(金) 22:26:01.42 ID:???
>>109
>>109

test.php
exec('php test2.php 100 200', $o, $r);
var_dump($o);

test2.php
unset($argv[0]);
echo implode(",", $argv);
114nobodyさん:2011/11/04(金) 22:49:46.91 ID:???
/dev/null 2>&1 & って付ければ そら、PHPは結果待たずに次ぎ行くけど、
( & だけだと 終わるの待つので)
結果 /dev/nullに捨ててんだから、 取得できんわな。

ファイルにでも出力すれば、処理が終わった頃にファイルに出力されるけど、
バックグラウンドで処理したいってんだから、その結果を
exex()抜けた段階で結果取得できるわけが無いでしょうに。
115nobodyさん:2011/11/04(金) 22:50:03.75 ID:1sQ24kpb
>>113
ありがとうございます、しかしダメです
array(0){} が表示されるだけです
test2.phpの実行権限は755,775,777で試しましたが全部ダメでした
実行ユーザはftpuser(ftp権限ユーザ):apacheになってるんですが問題ありますか?
PHPそのものの問題とずれてきてすみません
116nobodyさん:2011/11/04(金) 22:51:47.43 ID:???
>>115
とりあえず修正したコードを張ってみろ
117nobodyさん:2011/11/04(金) 22:54:31.81 ID:1sQ24kpb
>>114
ありがとうございます
「/dev/null 2>&1 &」の部分は今は削除して以下のようにしていますがダメです

//test.php///////////////////
exec('/usr/lib/php /var/www/html/test2.php 100 50', $o, $r);
var_dump($o);
//test2.php//////////////////
unset($argv[0]);
echo implode(",", $argv);

そもそも、/usr/lib/phpはディレクトリなんですがこれは問題ないんでしょうか
118nobodyさん:2011/11/04(金) 23:01:03.05 ID:???
>>117
var_dump($o); じゃなくて $r 見てみるといいかも。
当然ディレクトリじゃ駄目だし。
119nobodyさん:2011/11/04(金) 23:35:58.32 ID:???
>>118
$rを見たら126が返ってきました
実行権限の問題らしいですが777で問題あるのかなぁ

>当然ディレクトリじゃ駄目だし。
…と思って、実行プログラムの方を /usr/bin/phpに変えたら上手く行きました!

長らくありがとうございました! 他の皆さんも感謝します、ありがとう
120nobodyさん:2011/11/05(土) 17:12:07.15 ID:i9WzEjTE
初歩的な質問ですがよろしくお願いします

掲示板などで特定のタグだけ許可するにはどうしたらいいでしょうか?
121nobodyさん:2011/11/05(土) 17:54:33.07 ID:???
でっかい文字列はJSONに詰め込めない?
122nobodyさん:2011/11/05(土) 19:43:18.54 ID:rsIAWbTh
関数を呼びたいのですが、その関数内の処理が終わった後に戻ってきてほしくありません
このような場合とのように記述すればいいでしょうか
123nobodyさん:2011/11/05(土) 19:44:07.86 ID:???
>>122
exit;
124nobodyさん:2011/11/05(土) 19:47:57.62 ID:???
>>123
冷静に考えてみるとexitすればいいだけでした
ありがとうございます
125nobodyさん:2011/11/05(土) 22:29:46.48 ID:bVUvResi
2つの配列があって、値が重複してないものだけDBに保存したくて
以下のように書いてみたのですが、もっとスマートな方法はないでしょうか?

foreach($str as $val) {
foreach($str2 as $check) {
if($val != $check) {
$sql = "INSERT INTO test(test) VALUES('" . $val . "')";
mysql_query($sql);
}
}
}
126nobodyさん:2011/11/05(土) 22:36:53.03 ID:???
>>120
strip_tags($text, '<p><a>');

>>125
$str = array( 1,2,3,4 );
$str2 = array ( 2,3,4,5);
のとき、
insertされるのは  1,1,1,1,2,2,2,3,3,3,4,4,4 だけどいいのか?
127nobodyさん:2011/11/05(土) 22:56:55.77 ID:???
128nobodyさん:2011/11/05(土) 23:00:00.64 ID:???
>>125
$a = array("a","b","c");
$b = array("d","c","e");
$c = array_count_values(array_merge($a,$b));

foreach ($c as $k => $v)
{
if (1 === $v)
{
echo $k, PHP_EOL;
}
}
129nobodyさん:2011/11/05(土) 23:03:06.58 ID:???
>>125
あとなるべく緩い比較は使わず厳格な比較で書く癖をつけろ
130nobodyさん:2011/11/06(日) 00:07:04.37 ID:???
131nobodyさん:2011/11/06(日) 00:09:02.64 ID:???
diffもuniqueも見当違い
132nobodyさん:2011/11/06(日) 00:10:50.58 ID:???
133125:2011/11/06(日) 01:51:22.75 ID:/DBL4K4E
>>126
>>129さんの言うように!=じゃなくて!==としなくちゃいけないんですね。
勉強になりました。ありがとうございます。

>>127 >>130 >>132
おお!こんな便利な関数があったとは!
この3つを試してみます。ありがとうございます。
134nobodyさん:2011/11/06(日) 10:02:16.82 ID:???
比較演算子の話じゃないけどまあいいか。
135nobodyさん:2011/11/06(日) 10:08:19.85 ID:GxhRdhG7
日本語混じりの配列をjson_encodeでjson化してDBにINSERTしたら、
DBの中に保存した日本語部分が、「 ¥u30ab」 となっているはずなんですが、
「u30ab」 と 「¥」が抜けてしまいます。

原因が分からず・・・よろしくお願いします。
136nobodyさん:2011/11/06(日) 10:12:22.02 ID:???
DBに入れる文字列をエスケープしてないんでしょう。
mysql_real_escape_string のようなのにかけるとか。

\\uにしなきゃ。
137nobodyさん:2011/11/06(日) 10:20:05.33 ID:GxhRdhG7
>>136
あ!そっか!エスケープされてたのか・・・ケアレスミスでした
ありがとうございます!
138nobodyさん:2011/11/06(日) 10:48:35.74 ID:???
>>133
おいせっかくサンプル書いたのに
139nobodyさん:2011/11/06(日) 10:57:55.15 ID:???
>>138
使えないコードだったんでいりませんでした
140nobodyさん:2011/11/06(日) 12:31:41.62 ID:yw0oOdZM
<?php include("./hoge.php");?>

とするとhoge.phpの内容がすべて表示されてしまいます。
これを個別のdiv単位で引用表示させる方法を教えてください。

【例】
<div class="a" id="b">
 <p>ほげほげ</p>
</div>
<div class="c" id="d">
 <p>ほげほげほげほげ</p>
</div>
とhoge.phpの中に上記のHTML文があるとして

この中から
<div class="a" id="b">
 <p>ほげほげ</p>
</div>
だけを引用して表示する方法を教えてください。
141nobodyさん:2011/11/06(日) 12:55:25.01 ID:???
<div class="a" id="b">
 <p>ほげほげ</p>
</div>
だけのファイルを作ってincludeする


ていうかまともにやると今の君のスキルじゃたぶん無理だ
DOMでできるけど
http://jp.php.net/manual/ja/book.dom.php
後は俺ならfile_get_contentsと正規表現でさくっとやるけど
142140:2011/11/06(日) 13:12:54.56 ID:yw0oOdZM
>>141
他人のサイトからの引用なのでそれはできないです。
ソースを教えてください。
143nobodyさん:2011/11/06(日) 13:19:42.94 ID:???
>>142
勝手に引用するのは、まずい場合もあるぞ
やり方わからないなら、やめておけ
144140:2011/11/06(日) 13:31:27.29 ID:yw0oOdZM
>>143
そのやり方を尋ねているんです><
145nobodyさん:2011/11/06(日) 13:38:48.91 ID:???
>>144
俺の言ってること分かってる?
だから、勝手に引用することが法的にまずい場合もあるから、
そーゆーサイトを作ること自体をやめておけって、親切で言ってんの
146nobodyさん:2011/11/06(日) 13:39:06.14 ID:???
ソースを教えてくださいって・・・
丸投げスレではないので作る能力がない人はお帰りください
147140:2011/11/06(日) 13:47:51.07 ID:yw0oOdZM
>>145
許可は得てるんで大丈夫です。
>>146
作り方の質問なんです。
148nobodyさん:2011/11/06(日) 14:02:00.07 ID:???
>>147
>>141と同じく単なるDOMだ。あとはググれ
149140:2011/11/06(日) 14:04:46.56 ID:yw0oOdZM
>>148
ググれじゃなくて、その方法を詳細に教えてください><
 
教えてくれるまでこのスレに居座ります><
150nobodyさん:2011/11/06(日) 14:18:30.43 ID:???
151nobodyさん:2011/11/06(日) 14:19:20.88 ID:???
>>149
xmlの読み込む方法は分りますか?
152nobodyさん:2011/11/06(日) 14:49:19.91 ID:???
へたに教えるとしつこくからまれそうで躊躇するな。
質問者はそういうのも考えないと答えてくれる人を減らすばかりだぞ。
153140:2011/11/06(日) 14:50:18.42 ID:yw0oOdZM
>>150
 >>141と同じリンクじゃないですか><
 せめてそのページのどこに解説が載ってるのか教えてください!
>>151
 分かりません><
154151:2011/11/06(日) 14:54:35.38 ID:???
>>153
分りました
まずこれ見てください
http://goo.gl/3uGjU
155nobodyさん:2011/11/06(日) 14:54:59.53 ID:???
xmlをわからないんじゃ、もうココで聞いても無理だな。
156140:2011/11/06(日) 15:14:44.61 ID:yw0oOdZM
>>155
死ね!
157nobodyさん:2011/11/06(日) 16:13:07.86 ID:???
みんなやさしいなぁ、適当に答教えればいいでしょうが。
そんなに自分でやるように促しても、もったいないよ。

<html>
<head>
<style type="text/css">
#d {display: none;}
</style>
</head>
<body>
<?php include("./hoge.php");?>
</body>
</head>
158nobodyさん:2011/11/06(日) 16:50:54.65 ID:???
亀釣り乙
159nobodyさん:2011/11/06(日) 20:10:35.79 ID:???
>>157
>#d {display: none;}
うけたwwwwwww
160nobodyさん:2011/11/06(日) 20:43:01.49 ID:???
ID:yw0oOdZM
これは久々にすごいのがきたなwww
丸投げを丸投げではないと仰る
161nobodyさん:2011/11/06(日) 20:59:02.31 ID:???
もういいよ
162nobodyさん:2011/11/06(日) 21:11:09.35 ID:???
提示された要求を満たすおそらくもっとも早い方法だったのにな。


じゃあ、これでいいか?
$text = file_get_contents("hoge.php");
preg_match("|<div[^>]*id=\"b\"[^>]*>(.*?)</div>|su",$text,$matches);
print $matches[0];
163nobodyさん:2011/11/06(日) 22:17:23.59 ID:???
正規表現君こんばんは
164nobodyさん:2011/11/07(月) 01:03:58.74 ID:???
シネって切れる奴、久しぶりに見たなぁ
ガキか
165nobodyさん:2011/11/07(月) 01:08:17.64 ID:???
マニュアルの関数リンクとか貼られたら
それの例文見つつ組み立てられるやつじゃないと
このスレは難しい
初心者が自分のスキル以上の成果物を求めるのは
勉強してこいと門前払いされて当然
166nobodyさん:2011/11/07(月) 01:12:18.40 ID:???
たまーに、こーゆーの湧いてくるよな
167nobodyさん:2011/11/07(月) 08:44:04.60 ID:1lB9fRg6
mysqlにアクセスするバッチファイルに
root権限以外で実行すると
Lost connection to MySQL server during query
みたいな変なエラーがでます
どんな原因が考えられますか?
168nobodyさん:2011/11/07(月) 08:51:59.43 ID:???
エラー全てを網羅してる人間なぞいるわけ無いでしょ。
そのエラーで検索すればいくつか原因がありそうだから、
1個1個確認してくしか。

せめて、検索してXXと○○試したけどダメでした、他の原因知ってる方いませんか、でしょ。
169nobodyさん:2011/11/07(月) 08:54:34.52 ID:???
せめてmysqlスレできこうや
170nobodyさん:2011/11/07(月) 12:06:17.73 ID:???
たいていマニュアルのリンク張られても全然関係ない場合もある
171140:2011/11/07(月) 14:00:16.85 ID:hVnG4+j0
誰か教えてください><
172nobodyさん:2011/11/07(月) 14:27:54.46 ID:???
>>171
つ 知恵袋
173nobodyさん:2011/11/07(月) 14:29:59.52 ID:???
知恵袋で質問してggrksと煽られてしね
174140:2011/11/07(月) 14:33:51.26 ID:hVnG4+j0
>>172-173
意地悪しないでお願いします><
175nobodyさん:2011/11/07(月) 14:37:07.55 ID:???
176nobodyさん:2011/11/07(月) 14:40:17.49 ID:???
>>174
何個か書いてもらった、>>157 とか >>162 とか試した?
質問するなら、それじゃだめだったってことだろ?
試してからどこがダメだったか書かないと、誰も教えてくれねぇよ
試してないとしたら、せっかく書いてくれたのにやらない奴は最低だ
177140:2011/11/07(月) 14:45:52.15 ID:hVnG4+j0
>>176
 >>157はスタイルシートで非表示にしているだけなので却下。
 話にもなりませんわ。
178nobodyさん:2011/11/07(月) 14:50:59.65 ID:???
なんだ、普通に完全回答出してもらってるのに分からないっていってるのか
179nobodyさん:2011/11/07(月) 14:55:24.82 ID:???
だって176の趣旨の3行目が読めない時点で文盲だろ
180nobodyさん:2011/11/07(月) 14:55:26.68 ID:???
>>177
表示だけならそれでも問題ないはずだぞ。
ぶっちゃけ、その方がサーバー負荷は軽減する。
レスポンスタイムはPHPでやろうがCSSでやろうが一緒。
だから、CSSでやる場合のダメな点を挙げてから質問しなって。
181nobodyさん:2011/11/07(月) 14:59:41.08 ID:???
dom出力するときに頭のデータだけ表示すりゃあいいじゃん
182140:2011/11/07(月) 15:00:07.62 ID:hVnG4+j0
>>179
試す価値もないということが分らんのか負け犬めが
183nobodyさん:2011/11/07(月) 15:02:03.17 ID:???
>>182
もうお前駄目だ・・・せっかく手ほどきしてもらってんのに・・・
自滅だな
184nobodyさん:2011/11/07(月) 15:04:23.38 ID:???
何がしかの反応が欲しいだけの釣りだと思うよ
185nobodyさん:2011/11/07(月) 15:17:26.67 ID:skZKPuIx
スレチかもしれませんが、PHPで作っているのでここで質問させて下さい。
同じドメインでUAを見て、モバイル(スマホ)サイトとPCサイトを出し分けてます。
PC版サイト内にiframeでモバイルサイトを表示したいんですが、
URL固定にして、いい方法ないでしょうか・・・
iframeだけUA偽装とかは無理ですかね?
URLに引数つけてUAの判断が妥当でしょうか?

よろしくお願いします。
186140:2011/11/07(月) 15:17:27.68 ID:hVnG4+j0
へ理屈はやめて、さっさと教えてください><
187nobodyさん:2011/11/07(月) 15:21:25.17 ID:???
>>185
.htaccessで設定すればよい
188nobodyさん:2011/11/07(月) 15:21:50.05 ID:???
>>185
iframeにモバイル用のないよう表示させればいいじゃない
189nobodyさん:2011/11/07(月) 15:24:04.45 ID:???
>>185
includeでモバイル用URLを指定すればいいだけのこと
190nobodyさん:2011/11/07(月) 15:28:08.43 ID:???
日付またがって本物かどうか分からないわけだが。
なんでまたがる前にトリップつけるとかやんなかったの?と、成りすましに言ってもしょうがないが。
191nobodyさん:2011/11/07(月) 15:28:38.90 ID:???
どうせ人様のサイトを勝手に使おうとしてるんだろう
192nobodyさん:2011/11/07(月) 15:31:43.54 ID:skZKPuIx
>>187 >>188 >>189
すいません。説明不足でした・・・
同じURLでPC/MobileをPHPで出しわけしてるんで
コレが実現できるいい方法がないかなと。。。
.htaccessだとUAがPCだと判断されてしまいます。

http://example.com/ にアクセスすると
<html>
<body>
<div>hoge</div>
<iframe src="http://example.com" />
<!-- このiframe内がモバイルサイト -->
</body>
</html>

193nobodyさん:2011/11/07(月) 15:32:57.81 ID:???
>>185
やっぱ、iframeのurlに引数を一つ追加して、それをモバイルのフラグに割り当てるべきだとおもう
擬似的なiframeを使うって手段も思い付いたが、
ページ遷移への対応を考えると絶望的に手間がかかるっぽいし。
194nobodyさん:2011/11/07(月) 15:37:02.16 ID:???
そもそも、iframeなんてやめちまえというのが本来の姿だと思うんだけど、
もうむり?
195nobodyさん:2011/11/07(月) 15:38:10.27 ID:ViAJy6ja
exec();について知りたいのですが
 exec("/usr/bin/php /var/test.php {$params} ", $o, $r);
 echo "レスポンス:".var_dump($r);
 echo "出力:".var_dump($o);
のようにしてる時
引数$paramsには配列やserialize()した配列を指定できないんでしょうか?

引数$paramsが $params = array("dog", "cat");
test.phpが以下の内容の時、
<?php echo $argv[1][0]; ?>

1)配列を引数にした場合
 なぜかAが出力されます
 レスポンス:int(0)
 出力:array(1) { [0]=> string(1) "A" }
2)serialize()した配列を引数にした場合
 レスポンス:int(2)
 出力:array(0) {}

配列はそのままでもserialize()してもダメなんでしょうか?
また、1)のケースのときの、返り値Aはどこから来たんでしょうか?
配列を渡す方法があったら教えてもらえると助かります、よろしくお願いします
196nobodyさん:2011/11/07(月) 15:41:18.73 ID:skZKPuIx
>>193
やっぱそうですかねw
output_add_rewrite_varで値を引き継げるようにすればいいか。
どもっす!

>>194
Mobile/SmartPhoneに特化してるんで、
PC版には、使い方やら広告やら載せようかってしてたんですが、
どうせだったら、Mobile版見れるようにのっけちゃえって判断になりましたw
197nobodyさん:2011/11/07(月) 15:46:06.61 ID:???
>>195
配列を文字列化した結果の先頭一文字がAだから。
シリアライズしたならデシリアライズすること。

あとはコマンドラインについて勉強しなされ。
198nobodyさん:2011/11/07(月) 15:48:42.82 ID:???
>>195
seializeしたのをつけたコマンドを一度echoして、それをコマンドラインで打って試した?
なんか記号がいろいろ邪魔してそうだけど
199nobodyさん:2011/11/07(月) 16:08:26.98 ID:???
splite3を使ったサイトを作ってるんですが、
テーブルのカラムが30を越えるような感じになっていて、
新規作成するときのsqlもインサートのチェックもかなり長くてややこしいことになってしまうので、
テーブルの作成やデータチェックが分かりやすく書ける
そんなライブラリってないでしょうか?
200nobodyさん:2011/11/07(月) 17:11:06.60 ID:???
>>199
SQLite 9
http://hibari.2ch.net/test/read.cgi/db/1298737360/

ここで聞いたほうがいいかもだけど、若干荒れ気味w
201nobodyさん:2011/11/07(月) 17:40:27.00 ID:???
一応phpのライブラリじゃなきゃいけないんでこっちに書いたんですけどね。
ってか、あっちに書くくらいなら知恵袋の方がまだいい答え貰えそうなw
202nobodyさん:2011/11/07(月) 17:52:52.40 ID:???
>>201
確かにwココは機能してなさそうw
203nobodyさん:2011/11/07(月) 17:53:48.42 ID:???
具体的にどの辺がややこしくなって困ってるのかが分からないよ
入力フォームのチェックがややこしいならsqlite関係ないし、そうじゃないならなんのチェックするのか分からないし
204nobodyさん:2011/11/07(月) 17:55:02.31 ID:???
>>199
オブジェクトで書けばいいじゃん
205nobodyさん:2011/11/07(月) 18:02:20.53 ID:pflxypT1
質問です
imgタグを許可したいのですが
$text = preg_replace("/<img ([a-zA-Z0-9;\-\s]+)>/","<img $1>",$text);
これで置換できないのはなぜでしょうか?
206nobodyさん:2011/11/07(月) 18:03:33.50 ID:pflxypT1
訂正です
imgタグを許可したいのですが
$text = preg_replace("/&lt;img ([a-zA-Z0-9;\-\s]+)&gt;/","<img $1>",$text);
これで置換できないのはなぜでしょうか?
207nobodyさん:2011/11/07(月) 18:05:11.09 ID:???
許可するとかよくわからんが <img src='path/to/image'> ってなってんじゃないの?
208nobodyさん:2011/11/07(月) 18:12:33.28 ID:pflxypT1
>>207
ありがとうございます
しかしながら
$text = preg_replace("/&lt;img ([a-zA-Z0-9:;\/\"\'\-\s]+)&gt;/","<img $1>",$text);
これでもダメでした
こういうときって()の中はどう書けばいいのかな
209nobodyさん:2011/11/07(月) 18:17:45.45 ID:???
>>208
イコールとピリオドと下線も入れといたほうがいいんじゃないの?
210nobodyさん:2011/11/07(月) 18:22:15.38 ID:???
主に項目を追加するときのサニタイズとエラーチェックをすっきり書きたいです。
どうせならそれにあわせて、自動的にcreate tableをやってくれるものとかないかなと。
211195:2011/11/07(月) 18:23:46.55 ID:ViAJy6ja
>>197-198
ありがとうございます

言われた通り、コマンドラインから似たような配列で試してみたら以下になりました(上手く行ってます)
[root@localhost ~]# ary=("dog" "cat")
[root@localhost ~]# php -q /var/test.php ${ary}
string(3) "dog"
(↑ test.phpのecho var_dump($argv[1])の結果です)

同様に.php中のexec()で配列の引数を渡す時点で配列は
ary=("dog" "cat")の形にしなきゃダメなんでしょうか
ためしに
$params= '$("dog" "cat")';
exec("/usr/bin/php /var/test.php {$params}", $o, $r);
としてみましたが出力として何も表示されません
212nobodyさん:2011/11/07(月) 18:31:54.63 ID:???
>>208
そういうのはDOM見て判断したほうがいいんじゃね
213nobodyさん:2011/11/07(月) 18:39:24.63 ID:???
>>208
$text = preg_replace("/<img .+?>", "<img $1>", $text);
要素の中に>と<は絶対にこないはずなのでこれでいい
214nobodyさん:2011/11/07(月) 18:43:08.03 ID:???
>>213
カッコも閉じスラッシュも無いよ!あとセキュリティ的にダダ漏れすぎじゃね
215nobodyさん:2011/11/07(月) 18:43:43.10 ID:???
>>211
いやいやいや、PHPは文字列送るだけなんで配列なんてモンはコマンドラインに送れないっすよ。
"/usr/bin/php /var/test.php {$params}" はただの文字列で
{$params}は、 "Array" って変換されるだけの文字列なので、
"/usr/bin/php /var/test.php Array" なわけで・・・ ってだれか上で書いてたでしょう?
そこの部分を join使うなりしてスペースで区切った文字列にでもするしかないのでは。
216199:2011/11/07(月) 18:45:51.49 ID:???
自分のやりたいことが伝えられてないとと思ったので改めて、

dbのテーブル作成、入力値チェック、取得
このようなことをできるだけ短いソースで記述できるライブラリはないでしょうか?

半コピヘなソースを大量に書くの大嫌い
217nobodyさん:2011/11/07(月) 18:49:25.90 ID:???
>>211
215に追加
serializeみたいな関数を使う前提で組めば、
配列だろうと簡単に渡せる
218195:2011/11/07(月) 18:52:12.08 ID:ViAJy6ja
>>215
あー、やっぱり文字列か数値しか引数に持てないんですか…
phpマニュアルのexec()の説明にそう書いてて欲しいよ
配列をシリアライズして引数にしたときにresponseに2が返ってきたのも
引数に使えない文字が出てきてたからかな
はぁー、どっと疲れる結果だ…

ありがとうございました
219195:2011/11/07(月) 18:54:14.64 ID:ViAJy6ja
>>217
218を書いた直後にいま思いついたんですが
serializeしたものにaddslashes()したら渡せるでしょうか?
試してみます
220215:2011/11/07(月) 18:57:57.54 ID:???
>>217
やり方教えてくれませんか。
221nobodyさん:2011/11/07(月) 18:59:53.56 ID:???
>>218
いやphpに限らずコマンドラインで動かすんだから書いてなくても分ってないと困る
222215:2011/11/07(月) 19:01:32.88 ID:???
あ、ごめん言いたいこと分かった。
シリアライズしたパラメータをひとつ渡せってことね。

>>219
シェルに渡す文字列のパラメータの部分を 配列をシリアライズした文字列にして、 escapeshellarg通せばいいかと。
受け側のPHPで 元にもどすんだよ。
223nobodyさん:2011/11/07(月) 19:23:11.80 ID:pflxypT1
>>209>>212-213
ありがとうございます
しかしながら&がうまくいきません

$text = "&";
$text = preg_replace("/([a-zA-Z0-9:;.=\&\"\'\/\-\s]+)>/","hoge",$text);
echo $text;

出力結果:& ←なぜhogeにならない?
224nobodyさん:2011/11/07(月) 19:26:27.71 ID:pflxypT1
すみませんできました
変な>が入ってました
しかしこれでいいのかなぁ
225nobodyさん:2011/11/07(月) 19:26:39.80 ID:ciMO8Qf+
$a = '/a/b/c/d/';
$b = '/a/b/t/f/';

という二つのパスがあり、$bのパスを基準に$aへの相対パスを求める方法を教えてください
この組み合わせ例なら結果としては../../c/dを得たいのです
226nobodyさん:2011/11/07(月) 19:27:34.07 ID:???
>>222
ID出してね
レスたどりやすいから
227nobodyさん:2011/11/07(月) 19:28:32.80 ID:???
>>223
. はエスケープしないのかい
228215:2011/11/07(月) 19:50:03.36 ID:NMeIBL32
>>223
後ろにいらない > がついてる
229nobodyさん:2011/11/07(月) 20:17:49.33 ID:???
>>218
どっと疲れたのはあなたのやり方が拙いためなので、ここで言われても。
何を実行しようとしているのか確かめればいい。ちなみに、execで使用されるシェルおよび環境変数についても調べておいたほうがいいよ。
230215:2011/11/07(月) 20:39:58.70 ID:NMeIBL32
>>225
$a = '/a/b/c/d/';
$b = '/a/b/t/f/';
print getrPath($b,$a);

function getrPath( $base , $target) {
$base = explode("/",$base);
$target = explode("/",$target);
$ret = array();
for($i=0;$i<count($base)-1;$i++)
if($base[$i]!=$target[$i])$ret[]="..";
for($i=count($base)-1-count($ret);$i<count($target);$i++)
$ret[]=$target[$i];
return implode("/",$ret);
}
行稼ぎで気持ち悪いのは勘弁な。
231nobodyさん:2011/11/07(月) 20:44:35.27 ID:???
>>230
神様ありがとうございます
232nobodyさん:2011/11/07(月) 20:58:54.70 ID:???
exec と serialize の件だけど、
配列をimplode(" " , $hoge); ってして、スペース区切りでtest.php に渡したら?
test.php内で、foreach( $argv as $hoge )ってしたら、解決じゃね?w
233nobodyさん:2011/11/07(月) 21:00:38.53 ID:???
あ、スペース区切りで渡す際に、配列に空白が入らないことが前提ね
空白はいるなら、””で囲むやらaddslashesやらしないとね
234nobodyさん:2011/11/07(月) 21:23:15.59 ID:???
>>230
おもいつきで作るもんじゃねーな。訂正。

function getrPath( $base , $target) {
$base = explode("/",$base);
$target = explode("/",$target);
$ret = array();
$flg=false;
for($i=0;$i<count($base)-1;$i++)
if($base[$i]!=$target[$i]||$flg){$ret[]="..";$flg=true;}
for($i=count($base)-1-count($ret);$i<count($target);$i++)
$ret[]=$target[$i];
return implode("/",$ret);
}

235nobodyさん:2011/11/07(月) 21:31:25.11 ID:ciMO8Qf+
>>230デモ動きましたが>>234とどのような挙動の違いがあるのですか?
236nobodyさん:2011/11/07(月) 21:50:10.70 ID:kLp4+73L
プログラミング板の正規表現スレにて以下のように質問しました

PHP5.3.8にてDOMDocumentにてHTMLファイルを取得し、<body>内のテキストだけを抽出したいです。
タグ部は正規表現で除去出来ますが、問題になるのは<script>でJavaScriptの中身が表示される、<!--などのコメントが表示される事です。
で、<script>とコメントを含む部分を先に除去したいと思います。

/<script[^>]*?>.*?</script>/si
とかやってみたのですが良く分かりません。

アドバイスまたは似たような事を書かれているサイトなどを教えて頂けないでしょうか?

すると、正規表現使わずに出きるので、PHPスレにて聞けといわれました
どのようにすればいいのでしょうか?
237nobodyさん:2011/11/07(月) 21:58:15.38 ID:???
>>235

/a/b/c/d/
/b/b/c/d/
とかで、間違えてた
238nobodyさん:2011/11/07(月) 22:00:07.09 ID:???
>>236
php_tidy
「php スクレイピング」
239nobodyさん:2011/11/07(月) 22:02:24.67 ID:???
>>236
ん? http://jp.php.net/manual/ja/book.dom.php
一番上のコメントのやり方でも、無理ってこと?
ちょうどbodyって例だw
240nobodyさん:2011/11/07(月) 22:20:23.00 ID:???
$doc = new DOMDocument();
$doc->loadHtmlFile("hoge.php");
$element = $doc->getElementsByTagName("script");
$element->item(0)->parentNode->removeChild($element->item(0));
print $doc->saveHtml();

除去ならこっちじゃねーの?
241nobodyさん:2011/11/07(月) 22:44:18.22 ID:???
除去っていうよりスクリプトタグ省いたTextが欲しいって事じゃないの?

$doc = new DOMDocument();
$doc->loadHTML(file_get_contents('http://www.nicovideo.jp/'));

$xpathObj = new DOMXPath($doc);
$textNodes = $xpathObj->evaluate('//body//*[name(.)!="script"][normalize-space(child::text()) != ""]/text()');

foreach ($textNodes as $key => $textNode) {
 var_dump($textNode->wholeText);
}
242nobodyさん:2011/11/07(月) 22:48:31.16 ID:???
phpでメソッドをstaticにする意味ってありますか?

C++の場合は、メソッドをstaticにするとプログラムがメモリに乗るから早くなるって聞いたことがあるんですが、
phpの場合はどうなんでしょうか?

みなさんは、phpでメソッドをstaticにする、しないをどのようにきりわけているでしょうか?
243nobodyさん:2011/11/07(月) 23:01:03.48 ID:???
>>238-241

>>241
>除去っていうよりスクリプトタグ省いたTextが欲しいって事じゃないの?
そうです
テキスト部のみが欲しいのですが、
pre_replace()とかでタグとかを除去するための正規表現を考えていました


>>242
メモリはどうか分かりませんが、確かPHPもstaticの方が早いはずですよ
いい加減な事は言えませんが、オライリー本か何かに書いてましたよ
インスタンスを作成しないぶんとかなんとか

自分は意識してstaticで出来ることはstaticにしています
244nobodyさん:2011/11/08(火) 00:16:56.83 ID:???
>>225
じゃあもうちょっと気持ち悪いのを。

function getrPath( $base , $target) {
$base = explode("/", $base);
$target = explode("/", $target);
while (($b = array_shift($base)) === ($t = array_shift($target)) && !is_null($b));
return implode("/", array_merge(array_fill(0, count($base), '..'), array($t), $target));
}
245nobodyさん:2011/11/08(火) 00:18:23.69 ID:???
>>242
staticにするという事はメモリを使うということだ
staticを唱えた数だけメモリを使うことを頭に入れて使えばいいんだよ
staticをつけないといけないほど速度を気にしないといけないことってそうそうない
オープンソースでもstaticなんてメジャーどころはみない
246nobodyさん:2011/11/08(火) 00:20:44.84 ID:???
俺がstaticを使うときはセットアップファイルなどの一度しか使わないような処理で高負荷かけるような処理させるときぐらい
247nobodyさん:2011/11/08(火) 00:21:34.86 ID:???
なのでstatic=早いからと何でもつけとけばいいものじゃない
phpに限らないけどね
248nobodyさん:2011/11/08(火) 00:22:37.80 ID:???
オープンソースでstaticを見たことがないってのはシングルトンを見たことがないってことか?
249nobodyさん:2011/11/08(火) 00:26:14.40 ID:???
phpでシングルトンなんてあまり意味ない
250nobodyさん:2011/11/08(火) 00:31:16.84 ID:???
意味ないなんてことない
251nobodyさん:2011/11/08(火) 00:45:22.59 ID:???
あまり意味は無いけど意味ある部分もあるから
まぬあるのあの文面どうなのって思うわ
252nobodyさん:2011/11/08(火) 02:21:04.05 ID:???
staticメソッドにすべきかどうかというのは
プログラム板で聞いたほうがいい
http://hibari.2ch.net/tech/
PHPはこまけーこと気にしないでいいような
オヴァカさん向け設計なので
ご覧のようにまともな回答は返ってきません
そういうメモリやらなんやらの基礎知識は
基本情報あたりに手を出して初めて知るのがPHPer
253nobodyさん:2011/11/08(火) 02:27:58.13 ID:???
マニュアルのあの文面ってどの文面なんだろう。
大抵の人は「ああー、あの文面ね」って理解できるぐらいメジャーな話なんだろうけど、分からないorz
254nobodyさん:2011/11/08(火) 02:28:35.06 ID:???
>>252
ここって何板なんですか?
255nobodyさん:2011/11/08(火) 02:36:12.73 ID:???
>>253
なんで素直に聞かないの?
256nobodyさん:2011/11/08(火) 02:50:14.75 ID:???
自演だからとか。
257nobodyさん:2011/11/08(火) 03:01:35.87 ID:???
PDOについてなんですが
Prepared statementsを先ほど知ったのですが、
これって、毎回決まったようなクエリだったら
PDO::queryの変わりにPDO::prepareで実行すると
2回目から早いよって認識で大丈夫ですか?
ちょっと認識ずれてます?
258257:2011/11/08(火) 03:02:31.41 ID:6HzOoKMd
>>257
ID出し忘れのため、最投稿
259nobodyさん:2011/11/08(火) 03:17:02.17 ID:???
>>257
だいたいそんな感じでいいよ
パラメータだけ変えて複数実行する時に有用
insert文やupdate文でまとめて複数行うときなんかによく使う
260nobodyさん:2011/11/08(火) 09:21:39.20 ID:hZ5KEzHU
関数内関数についてです。
関数Aの中でまとまった処理がしたくて、
function A(){
function 纏まった処理(){};
纏まった処理();
纏まった処理();
}
としているのですが、この書き方でA()を実行すると纏まった処理()が
A()の中だけでなくグローバルになってしまいます。

A()の中だけで有効な関数の作り方はどうすればよいのでしょうか。

function A(){
$纏まった処理=function (){};
$纏まった処理();
$纏まった処理();
}
しか無いのでしょうか。
261nobodyさん:2011/11/08(火) 09:30:32.81 ID:???
クラス使えば?
262nobodyさん:2011/11/08(火) 09:33:12.26 ID:???
>>260
その関数内でしか使われない関数って定義はできないし、
ラムダ関数みたいな機能もないので
クラスで書いてもいい処理ならprivateで外からアクセスさせないようにするってくらいかな
263257:2011/11/08(火) 09:35:34.95 ID:6HzOoKMd
>>259
なるほど、ちょっと試してみます。
ありがとうございます
264nobodyさん:2011/11/08(火) 09:39:28.14 ID:???
そういえばcreat_functionってラムダ関数作るやつだったな。
記述が見易くならない可能性の方が高いんで、使えるかは微妙だけど
265nobodyさん:2011/11/08(火) 09:56:45.25 ID:???
>>262
なぜ後述した書き方が嫌なの?
266nobodyさん:2011/11/08(火) 09:56:54.62 ID:???
バカほどstaticを使いたがる
267nobodyさん:2011/11/08(火) 10:30:09.32 ID:Olz6L6I6
Singletonとstaticと聞いてちょっと質問です

class Test {
 private $con;
 private $hoge;
 public function Test($hoge) {
  $this->con = DB::get()->connect();
  $this->hoge = $hoge;
 }
 public function a() {
  $this->con->query("sql");
  //$this->hogeを使う
 }
 public static function b() {
  $con = DB::get()->connect();
  $con->query("sql");
 }
}

ポイントは
b()はインスタンス変数を必要としないのでstaticとしても呼び出せるようにしたい
$this->conが使えないのでstaticメソッドは毎回DB::get()->connect();をコールしないといけない

こういうのっておかしいですか?
268nobodyさん:2011/11/08(火) 13:03:03.23 ID:???
>>267
ActiveRecordみたいなパターンがあるのでおかしくはない
そもそもそのTestが何を表してるのかが大事
クラスは箱や入れ物じゃないからな、型だぞ

$user = new User();
$user->name = 'hoge';
$user->save();

$user = User::findByName('hoge');
269nobodyさん:2011/11/08(火) 14:36:04.18 ID:lQaQJdzP
クラスのメンバ変数について教えてください

class内の先頭部でprivate $_dbなどメンバ変数(クラスのプロパティ)を定義しますが、
これと、メンバ関数function()内での変数$popとの違いは、
・$_dbはクラス全体で使える(あるメソッド内で値を代入されたらそれが他のメソッドでもその値が使用される)
・$popはその関数の中でのみ有効
という理解で宜しいのでしょうか?
270nobodyさん:2011/11/08(火) 14:45:16.78 ID:???
そんだけ専門用語理解してるような素振りしといて
スコープもわからんとは不思議なやつめ

staticを考慮しなければそういう理解でよろしいです
271nobodyさん:2011/11/08(火) 16:16:16.06 ID:???
クラスの中に入ってる変数を(publicだけでいいから)全部取得したいんだが、
いい方法ないだろうか?
272nobodyさん:2011/11/08(火) 16:17:57.09 ID:???
>>1
273nobodyさん:2011/11/08(火) 16:23:44.63 ID:92k+xz2U
htaccessでdenyしてるディレクトリのファイルにアクセスしたいのですが、
requireは出来るのですが
file_get_contentsは403が返ってきてアクセスできません。
上記条件下でlocalhost内のファイルを文字列に読み込むにはどうしたらいいでしょうか?
274nobodyさん:2011/11/08(火) 16:26:49.92 ID:???
>>273
requireしたファイルから文字を返すように書き直す
file_get_contentsで403が返るのは理由はHTTPの勉強をすれば出来ない理由が分かる
275nobodyさん:2011/11/08(火) 16:30:50.05 ID:???
file_get_contentsで ローカルアドレスでいいんじゃねーの?
276nobodyさん:2011/11/08(火) 16:40:15.24 ID:???
>>271
ttp://www.php.net/manual/ja/reflectionclass.getproperties.php
ここらあたりで出来たはず

>>273
file_get_contentsはファイルパスも受け付けるのでファイルパスを記述すりゃいい
file_get_contents('../../../hogehoge')
file_get_contents('/var/www/etc/hogehoge')
みたいな感じで
277273:2011/11/08(火) 16:46:18.38 ID:92k+xz2U
>>274-276
URL形式ではなく>>276さんのおっしゃる方法でうまくいきました。
お三方ありがとうございました。
278271:2011/11/08(火) 17:10:24.27 ID:???
>>276
どうやら、そのリフレクションでは、
クラスのデフォルト値しかとれないようです
コンストラクタとかで値を再定義しても、そっちは取得できない。
で、調べてみたらクラスをforeachにかけると取れるのがわかったので、
今回はそっちを使うことにしました
279nobodyさん:2011/11/08(火) 18:28:41.45 ID:++VodBMC
Webブラウザ以外からのアクセスをできる限り排除したいのですが、
HTTP_USER_AGENTに対する正規表現はどのように書くのがベストだと思いますか?
280nobodyさん:2011/11/08(火) 18:33:52.57 ID:???
Webブラウザのホワイトリスト作るしかないでしょ。
偽装できちゃうんで、それが出来る限りでしょう。
期待した答えじゃないなら、それ書いてね。
281nobodyさん:2011/11/08(火) 18:37:55.45 ID:++VodBMC
ありがとうございました。
そう言われてみればそうですね。

HTTP_USER_AGENTを使う方法以外に、
例えばクッキーみたいなブラウザにはついてる機能の有無を確認して
ブラウザからのアクセスかどうかを判定することはできそうですか?
282nobodyさん:2011/11/08(火) 18:42:37.21 ID:???
クッキー食わないブラウザのアクセスを断るみたいなページは作れるかとは思いますが。
やりたいことは何でしょうか。
283nobodyさん:2011/11/08(火) 18:42:50.35 ID:???
Webブラウザって言っても色々あるし
そういうのは現実的ではないと思うなぁ
284nobodyさん:2011/11/08(火) 18:49:56.34 ID:++VodBMC
>>282
それではクッキーが有効かどうかで判定してみることにします。
アクセス解析みたいなプログラムで不要・不正なアクセスを除外したいです。
ありがとうございました。
285nobodyさん:2011/11/08(火) 18:50:05.65 ID:???
無理ですね
諦めてください
286nobodyさん:2011/11/08(火) 18:51:53.54 ID:++VodBMC
何が無理なんですか?
287nobodyさん:2011/11/08(火) 18:54:58.54 ID:???
まあ、本人がよければなにするのも自由っしょ。
288nobodyさん:2011/11/08(火) 18:57:11.31 ID:++VodBMC
そうですか。
289nobodyさん:2011/11/08(火) 18:58:54.49 ID:???
>>264
何年前のPHPプログラマだ?
290nobodyさん:2011/11/08(火) 19:04:38.69 ID:???
まあそれでいいならいいんじゃかね。
Webブラウザが行う事はWebブラウザでしかできない訳ではないから素人の子供だましだけどさ
291nobodyさん:2011/11/08(火) 19:07:22.00 ID:???
>>290
誰がやろうとも出来る限りでしか出来んのだよ。
素人だのいってバカにして恥ずかしくないのか?
292nobodyさん:2011/11/08(火) 19:13:52.74 ID:lDLMrbx7
phpファイルを読み込んだときに、jsとcssの読み込みがうまくいきません

loader.php
<?php

function flush(){
require_once("test.php");
}
flush();

?>

test.php
<html>
<head>
<link rel="stylesheet" href="test.css" type="text/css">
<script src="test.js" type="text/javascript">
</head>
<body>
<?php echo "hello,world" ?>
</body>
</html>

上のような2ファイルを使い、loader.phpを実行してブラウザに表示させると、test.php内で呼び出しているcssとjavascriptが読み込まれません。
生のhttpレスポンスを見たところ、test.cssとtest.jsではcontent-typeが
Content-Type: text/html;
となっていたため、htmlとして読み込まれていたために動作していなかったと分かりました。
これらcssとjavascriptファイルを適当なcontent-typeで読み込ませるにはどうしたらいいでしょうか?
293nobodyさん:2011/11/08(火) 19:24:39.52 ID:???
php_valueで拡張子別にdefault_mimetypeを変更
294nobodyさん:2011/11/08(火) 19:26:25.57 ID:???
291は完全に読み違えてるな
295nobodyさん:2011/11/08(火) 19:39:45.28 ID:???
>>292
その作りはどう考えても変
296nobodyさん:2011/11/08(火) 20:02:56.28 ID:???
気持ち悪いけど、動くのよねこれで。
297292:2011/11/08(火) 20:09:12.54 ID:lDLMrbx7
すみません、単純にcssとjsのパスを間違えていただけでした・・・
パスをあわせると普通に読み込めました・・・

>>295
自分で>>87のようなルーティングスクリプトを作っています。
あるurlにアクセスしたら条件にマッチするクラスを実行し、
そのクラスの中でtest.phpのようなテンプレートを呼び出す、という形にしているため
こういう感じになりました。
どう変なのか教えてもらえるとうれしいです。
298nobodyさん:2011/11/08(火) 20:39:45.24 ID:???
>>297
へ?Content-Type: text/html; になってたってのは?
299nobodyさん:2011/11/08(火) 20:45:05.47 ID:???
>>291
意味が分らん
300292:2011/11/08(火) 21:01:23.04 ID:lDLMrbx7
>>298
結局それもパスを正しいものにしたところで直っていました・・・・
301nobodyさん:2011/11/08(火) 23:00:38.35 ID:lQaQJdzP
64bit版のcentOS6でPHPをソースからコンパイル時に./configure --with-readlineをすると
configure: error: readline library not found
と出ます

しかし、yumでreadline-develは入れていますし、32bit版ではこれで上手くいっていました
rpm -ql readlineで
/lib64/libreadline.so.6
/lib64/libreadline.so.6.0
/usr/lib64/libhistory.so.6
/usr/lib64/libhistory.so.6.0
が出てきたので--with-readline=/usr/lib64とかしましたがダメでした
どのようにすればいいのでしょうか?
302nobodyさん:2011/11/08(火) 23:06:06.38 ID:lQaQJdzP
書き忘れましたがPHP5.3.8です
303nobodyさん:2011/11/08(火) 23:41:21.56 ID:UTCFCr2R
すみません、PDOのプレースホルダでLIMIT句を実行するとエラーになります。
bindValueでINT指定でOKみたいなのですが、こうするしかないのでしょうか
304nobodyさん:2011/11/08(火) 23:51:46.78 ID:???
>>301
一度yumでreadlineをremoveしてソースからビルドしてみたらどうですかね?
phpもソースからなんだし。
305nobodyさん:2011/11/08(火) 23:52:59.54 ID:???
>>301
--with-libdir=lib64

306nobodyさん:2011/11/09(水) 00:12:06.89 ID:???
>>303
バグなのであきらめましょう。
307301:2011/11/09(水) 00:58:44.47 ID:???
>>304
32bit版では全く問題が無かったのです
パスを指定する必要もありませんでした
なので64bit版でも出きるだろうと思っていたのですが・・・

>>305
今--with-libdir=lib64を./configureに追記して実行してみました
しかし、やはりconfigure: error: readline library not found
が出てしまいました

自分、コマンドラインからも結構PHP使うもので、出来ればreadline入れたいなと思っております
308nobodyさん:2011/11/09(水) 01:16:29.04 ID:???
libedit入れてみれば?
309nobodyさん:2011/11/09(水) 03:09:27.58 ID:???
>>298
404だったんじゃない
310nobodyさん:2011/11/09(水) 03:11:24.10 ID:???
>>307
/lib64 を指定しないと LD_LIBRARY_PATH に lib64を付加したところが探されるんじゃないのかな
311nobodyさん:2011/11/09(水) 13:16:45.24 ID:???
312nobodyさん:2011/11/09(水) 13:25:51.50 ID:???
セッションIDが毎回コロコロ変わるようにしたいんだけど
楽な方法ってどんな方法?
313312:2011/11/09(水) 13:27:57.32 ID:ICnxPKAl
ID出てなかった
あと、毎回じゃなくて一定回数ごとに変化する方法も知りたい。
通信エラーのたびに最初のページからってのはさすがにうざいからな。
314nobodyさん:2011/11/09(水) 13:35:23.73 ID:???
セッション関数のマニュアルを読まずに質問してるよな
マニュアルにそのままやりたい事が関数に用意されてるだろ
315nobodyさん:2011/11/09(水) 13:45:45.09 ID:???
どうせコマンドラインで使わんだろうからreadline入れなくていいんじゃね?
316nobodyさん:2011/11/09(水) 13:47:29.91 ID:???
通信エラーのたびに最初のページからってのは、違う話だがね。

>>315
ところが、使うって言ってるんだな。
317nobodyさん:2011/11/09(水) 13:58:08.00 ID:???
アホ丸出しだな
自分の無知さをセッションのせいにするなよw
318nobodyさん:2011/11/09(水) 14:55:21.12 ID:Ubneb9ND
gettextで「Hello」に対応した翻訳文字列「こんにちは」を表示させたいのですが
表示されるのは元の文字列の「Hello」です
翻訳文字列を表示させたいのですがzipで一式あげましたのでご助言お願いします
ttp://www1.axfc.net/uploader/File/so/71394.zip

コードはgettext.php、翻訳ファイルのバイナリはdefault.moです
default.poも一応載せておきます(poeditで作りました)
319nobodyさん:2011/11/09(水) 15:16:56.26 ID:???
poが空っぽじゃん
320nobodyさん:2011/11/09(水) 15:28:05.29 ID:Ubneb9ND
失礼しました
修正して再度アップロードしました
ttp://www1.axfc.net/uploader/File/so/71395.zip
現在も表示させる事はできません
321nobodyさん:2011/11/09(水) 15:39:41.35 ID:Ubneb9ND
自己解決しました
翻訳ファイルは指定された位置を置くルールがあるようで翻訳ファイルをルールに沿って指定した場所に置くと事で表示させることができました
322nobodyさん:2011/11/09(水) 17:39:45.51 ID:???
どうでもいい・・・かどうかは分からないけれど、
>>240-241の指定の仕方だと
大量のWarningが出てダメだよね

loadHTML()系はJavaScriptとか入ってるだけで大量にエラーでるから
・・・って俺だけなのかな?
323nobodyさん:2011/11/09(水) 17:45:22.41 ID:???
読み込んでる文章が文法違反だらけなんだろ
そこだけエラー抑制しとけば
324nobodyさん:2011/11/09(水) 18:05:29.22 ID:???
Warning出すが読んでくれるというのが正しい。
@でもつけとけ。
325nobodyさん:2011/11/09(水) 18:08:41.19 ID:???
>>323
と言うことは>>241のニコ動も・・・

・・・というかそこだけエラー抑制ってどういうこと?
$doc->@loadHTML()ってこと?
これじゃそこだけじゃなく、全体を抑制するからね
326nobodyさん:2011/11/09(水) 18:14:48.53 ID:???
ソース見りゃわかるけどニコ動とかパースエラーのオンパレードだよ
327nobodyさん:2011/11/09(水) 18:22:05.56 ID:???
他のWarningも抑制してしまうけど、こうしてる

error_reporting(E_ALL ^ E_WARNING);
$doc->loadHTML($source);
error_reporting(E_ALL);
328nobodyさん:2011/11/09(水) 19:48:30.53 ID:???
>>327
なるほど
329nobodyさん:2011/11/10(木) 11:39:56.26 ID:9jcxfb/W
MVCモデル で htaccessで
hoge.com/?page=info
を、
hoge.com/info/
と置換されるようにして
静的URLにみせてるのですが
その影響でアクセス解析等を導入したとき
実際に
hoge.com/acc/
にアクセス解析があるのに、
hoge.com/?page=acc
と置換されて、表示できなくなります。
何かうまい解決策はないでしょうか。
330nobodyさん:2011/11/10(木) 11:45:38.90 ID:???
>>329
MVCをなぜ書いたのかと、なぜPHPなのかはおいといて
アクセスログを見るツールだったら、そのまま表示されるはずだが?
もしかして、リライトじゃなくリダイレクトしてないよな
ま、どう出るかは解析ツール次第だろうな
331nobodyさん:2011/11/10(木) 12:26:25.73 ID:???
hoge.com/?page=info
を、
hoge.com/info/
と置換されるようにして
静的URLにみせてるのですが

逆じゃね?
332nobodyさん:2011/11/10(木) 13:06:05.70 ID:???
cakephpでpathinfoいじるからそれ関係か?
MVCとか関係ねーよ
333nobodyさん:2011/11/10(木) 13:18:25.64 ID:???
コントローラを集中化するためには必須じゃないか?
334nobodyさん:2011/11/10(木) 17:37:41.31 ID:MAuKgtyH
sqlite3::prepareについて
データベースにprepareでインサートするときはprepareを使うとエスケープがいらないって聞いたのですが
インサートしてもエスケープされません
<とか>などはエスケープされないってことですか?

インサートする文字列↓
<b>てすと</b>
335nobodyさん:2011/11/10(木) 17:44:00.14 ID:???
そりゃSQLで使うシングルクオートとかの話だよ
336nobodyさん:2011/11/10(木) 17:45:28.10 ID:???
というか、何か勘違いしてるような気が、、、
どういうコード書いたの?
337nobodyさん:2011/11/10(木) 17:59:21.53 ID:MAuKgtyH
インサート部分だけですけどこう書きました

$sql = 'insert into tbl (id, text) values (:id, :text)';
$stmt = $sqlite3->prepare($sql);
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);
$stmt->bindValue(':text', "<b>てすと</b>", SQLITE3_TEXT);
$stmt->execute();
338nobodyさん:2011/11/10(木) 18:23:31.78 ID:Capr9OYX
simplexml_load_file()でxmlを取り込んだあとの処理について質問です

http://jp.php.net/manual/ja/function.simplexml-load-file.php
の通りに
SimpleXMLElement Object
( [title] => Example Title
...)

のような形でアクセスするところまではできたのですが
これを逆にxmlの形に戻す事は可能でしょうか?
例えば
http://headlines.yahoo.co.jp/rss/rps_dom.xml
において<item>単位で、かつ
<item>
<title>後付け電装品による火災に再度注意喚起 国交省(レスポンス)</title>
<link>http://rd.yahoo.co.jp/rss/l/headlines/soci/rps/*http://headlines.yahoo.co.jp/hl?a=20111110-00000043-rps-soci</link>
<category>社会</category>
<pubDate>Thu, 10 Nov 2011 17:55:41 +0900</pubDate>
</item>
のようにタグを含んだ状態でDBに1コードずつ保存したいです。
DBはtitle,orijin_xmlなどのカラムを持ってタイトルはタイトルでタグが無い状態で欲しいので
simplexml_load_file()で処理した後に取得できるのですが、両方いっぺんには無理でしょうか?
339nobodyさん:2011/11/10(木) 19:58:34.70 ID:ZhWtNVen
session_destroy()を呼ぶとすぐにセッションファイルが削除されるんですか?
それとも削除フラグが立って、削除自体はGCか何かであとでまとめて削除されるんですか?
session_save_path()でセッションの保存先をpublic_html以下にしてみて
session_destroy()を呼んでみて確認したところ、削除されていないような感じだったので・・・
340nobodyさん:2011/11/10(木) 20:03:53.08 ID:???
マニュアルのsession_destroyのページに正しく消すためのコードサンプルが載ってるだろ
341339:2011/11/10(木) 20:18:05.94 ID:???
>340
レスどうもありがとうございます
session_start();
$_SESSION = array();
はやっています
ini_set('session.use_cookies','0');
にしているのでセッションクッキーの箇所はマニュアルの例とは違っています

そのレスだとすぐにセッションファイルが削除されるってことですよね
わかりました
342nobodyさん:2011/11/10(木) 22:15:11.52 ID:J5cnYxt0
みんあな聞いてくれ
今日おれの誕生日だ。
ケーキ買いに池袋いったんだ。
そしてケーキ屋の人がだれかの祝いですか、と聞かれて僕です
と答えたら、周りの従業員さん5名にbookoffみたくおめでとうと言われて
非常にはずかしかった。
どうしたらいい?
343nobodyさん:2011/11/10(木) 22:20:43.89 ID:???
>>342
俺も8日に誕生日だった。
地震以来久々に妹からメールが来た。

読んだところ
「部屋にあるジョジョよんでいい?」
だった

そんなもんだ
344nobodyさん:2011/11/10(木) 22:27:05.89 ID:J5cnYxt0
>>342
笑える。
でもさ、でかい声で今日お誕生日の方いらっしゃいました
とか言う必要なくない。
一人で来ているのに、もうはずかしくて。
まさかそんな待っている間拷問だった
345nobodyさん:2011/11/10(木) 22:29:13.25 ID:???
1人食うんだろうな。かわいそうな人なんだな。
と思って店員が気を効かせて祝ってくれたんだから有りがたく思え。
そして思いっきりスレチだ。
346nobodyさん:2011/11/10(木) 22:31:54.86 ID:J5cnYxt0
ちゃんとID出したろ?
じゃあ、こういうこと書ける板ってどっかある?
ちゃんと家族で食べたよ。恋人はいませんけど。
もう二度とあのケーキ屋にはいかない。
あーあおれの誕生日も後2時間か。いいことなかったな
347nobodyさん:2011/11/10(木) 23:03:13.06 ID:???
vipですらチラ裏と拒否られるクラス
348nobodyさん:2011/11/10(木) 23:20:01.27 ID:???
>>346
つ生活板
349nobodyさん:2011/11/11(金) 04:04:18.29 ID:???
>>337
当たり前だろ
データベースのエスケープ処理はSQLインジェクションを防ぐための処理
SQLインジェクションに<>は関係ない
<>のエスケープはXSSを防ぐための処理だ
んで本題だがHTMLタグってのはデータベースにはそのまま入れる
んで取り出してHTMLに表示するときにhtmlspecialcharsでエスケープをして表示する
350nobodyさん:2011/11/11(金) 04:11:44.22 ID:???
HTMLタグって言うか特殊文字
351nobodyさん:2011/11/11(金) 04:52:59.71 ID:???
うぃっす!

PHPプログラマーの、お姉さんだ!
徹夜明けの始発で帰宅中だ。
頭がテンパッテルから
どんな質問にも答えるぞ!
352nobodyさん:2011/11/11(金) 05:04:13.04 ID:mPjM7esZ
htmlに埋め込んで出力したhtmlのソースが汚くなってしまうんですけど
インデントをそろえるにはどうしたらよいですか?
353nobodyさん:2011/11/11(金) 06:26:12.16 ID:???
>>352

> htmlのソースが汚くなってしまう
> インデントをそろえるには

htmlを出力する部分のPHPコード、そのPHPコードのインデントを変えてみてください。
いろいろと、自分で試してみると思い通りの結果が得られることがあります。

by 帰宅したお姉さん
354nobodyさん:2011/11/11(金) 06:28:41.45 ID:???
>>351
お姉さんのセフレになりたいです。
355nobodyさん:2011/11/11(金) 06:29:27.17 ID:???
>>354

一人切ったから立候補するか?
356nobodyさん:2011/11/11(金) 08:37:33.77 ID:???
>>355
今日これからセックスできますか?
357337:2011/11/11(金) 10:39:35.63 ID:jWtQzIpf
>>349
そうだったんですか勉強になりました
インサートの書き方は>>337のでも大丈夫でしょうか?
358nobodyさん:2011/11/11(金) 11:45:59.13 ID:2qMnb8p5
mysql_escape_stringとmysql_real_escate_stringの違いが分かりません
realの方は文字コードを考慮したエスケープを行うとのことですが
mysql_escape_stringをつかった時、
具体的にどういうデータがどのように問題になるのでしょうか?
359nobodyさん:2011/11/11(金) 11:51:46.01 ID:???
>>358
ttp://php.net/manual/ja/function.mysql-escape-string.php

>この関数は PHP 5.3.0 で 非推奨となりました。 この機能を使用しないことを強く推奨します。


>注意:
>mysql_escape_string() は、 % および _ をエスケープしません。
360nobodyさん:2011/11/11(金) 11:55:36.38 ID:???
>>359
具体的に% および _ をエスケープしないことでどのような問題があるのでしょうか?
like文のパラメータとして働かなければ%はただの文字列では?
361nobodyさん:2011/11/11(金) 12:50:26.64 ID:???
>>360
%E3%81%8A%E3%81%BE%E3%81%88%E3%81%AF%E3%83%90%E3%82%AB%E3%81%A0%E3%81%AA
362nobodyさん:2011/11/11(金) 12:55:32.49 ID:???
ググリまくっても全然「具体例」が出てきません><
危険だから使うなとか、
''で囲まずにそのまま変数をクエリに代入して「危険」とかそんなの当たり前だろ!っていう例とか
なんなの??
363nobodyさん:2011/11/11(金) 12:58:28.04 ID:???
ひろゆきでさえLinuxでPHP書いてるのにおまえらときたらWindowsにXAMPP(笑)だもんな
本当このスレはレベルが低い質問に群がるレベル低い回答者であふれてるぜwwwwwwwwwww
ttps://twitter.com/#!/hiroyuki_ni/status/133990793441591298
364nobodyさん:2011/11/11(金) 12:58:36.79 ID:???
>>360
mysql_escape_string()はキャラクタセットの変更を考慮しない
更にこの関数自体がセキュリティの観点から見ても好ましくない
例えば、文字列リテラルのメタ文字が増えた場合に意図しない動作になるとかね
365nobodyさん:2011/11/11(金) 12:58:49.08 ID:???
366nobodyさん:2011/11/11(金) 13:08:33.44 ID:???
>>364
ありがとうございます
抽象的な説明はいろいろ読みましたが
知りたいのは
「こういう文字をmysql_escape_stringにかけたらこうなり
mysql_real_escape_stringにかけたらこうなる
だから問題だ」
という具体例です
説明から例が思いつかないので腑に落ちないのです
367nobodyさん:2011/11/11(金) 13:09:40.60 ID:???
>>366
>>361をかけたら分りますね
自分でやりましょう
368nobodyさん:2011/11/11(金) 13:54:49.54 ID:???
>>357
大丈夫
369nobodyさん:2011/11/11(金) 14:14:25.29 ID:???
>>367
すみません
煽りと思ってしまって・・
これは16進数でバイナリ化した後にかけるんですよね
370nobodyさん:2011/11/11(金) 15:10:02.82 ID:???
具体例がほしいって、問題を理解して自分で作ればいい。
371nobodyさん:2011/11/11(金) 15:14:32.29 ID:Hw6ayFxo
phpやmysqlで簡単な中古車情報とかのレベルのポータルサイトを
作るのはスーパーマリオブラザーズで例えると
技術的にどれくらいのレベルですか?

ちなみに hello php World が、1-1です。
372nobodyさん:2011/11/11(金) 15:23:13.91 ID:???
ワープ無しノーミスで30分以内にクリア
373nobodyさん:2011/11/11(金) 15:33:12.10 ID:???
簡単な中古車情報でそれだったらFacebookとかどうなるんだww
374nobodyさん:2011/11/11(金) 15:37:19.26 ID:???
セキュリティをないがしろにしていいならクリボー倒すレベル
そのへんもちゃんとやるならクッパ倒すより難しい
375nobodyさん:2011/11/11(金) 15:40:57.03 ID:???
不特定多数から情報の登録を受けるつもりはなく
情報を表示するだけならもうちょっと簡単じゃない?
376nobodyさん:2011/11/11(金) 15:42:36.09 ID:???
俺なら何も考えないなら3日で作れると思う
ちゃんと設計して考えてやれば1ヶ月ぐらいかかるな
377nobodyさん:2011/11/11(金) 15:47:14.11 ID:3zpr0Z+7
ブラウザからDBを修正するシステムを作っているのですが、
更新する際にブラウザから受け取った主キーの値の物を上書きするため、
何らかの方法でPOSTを書き換えると関係無いデータに上書きしてしまいます。
あえてセッションを使わない方法で、
これを回避するにはどうしたらいいでしょうか?
378nobodyさん:2011/11/11(金) 16:06:27.30 ID:???
>>377
1. フォームにユニークな識別子を割り振る
2. フォームの識別子と主キーをペアにしてDBに保存する
3. フォームに識別子を埋め込んで出力する
4. 送信されてきた識別子でDBから主キーを逆引きする
379nobodyさん:2011/11/11(金) 16:11:47.26 ID:???
>>370
それはその通りだと思いますが
ここまで具体例がネット上にないのは
ほとんど問題の本質が理解されていないのではないでしょうか?
ググりまくりましたが
「なんとなく分かったことにしておこう」
的な意識を全般的に感じました
380nobodyさん:2011/11/11(金) 17:07:51.83 ID:???
sqlインジェクションを、お前みたいな馬鹿に
サンプルのコピペで実行されない様にする為に決まってんだろ
381nobodyさん:2011/11/11(金) 17:17:01.94 ID:???
>>380
意味が分かりません
あなたは自分の言っていることが自分で分かっているのですか?
そして自分の言葉が他人に分かると思いますか?
382nobodyさん:2011/11/11(金) 17:57:50.27 ID:???
煽りは無視しようぜ・・・
あんまり分かってない(のが多い)ってのは事実だよ。
理由は、ここ見れば全部分かる、間違ってないってサイトが無いからな。
あれば ここみろで終わりだしな。
ヘンテコ本が蔓延したのもあるし、公式は間違って無いが、細かいところが足りない。
383nobodyさん:2011/11/11(金) 18:09:09.09 ID:Hw6ayFxo
switch ($_REQUEST['page']) {
case 'a_page':
a_page();
break;
case 'b_page':
shop();
break;
case 'c_page':
contact();
break;
}
function a_page(){
include_once(dirname(__FILE__)."/VIEW/a_page.php");
}
function b_page(){
include_once(dirname(__FILE__)."/VIEW/b_page.php");
}
function c_page(){
include_once(dirname(__FILE__)."/VIEW/c_page.php");
}

サンプルを参考にしながら、MVCのコントローラー部分、
引数に応じて表示させるページを変えるというのをやってるんですけど
ページを一個追加するたんびに 同じ名前なのに
case名 指定関数名 定義関数名 phpファイル名 と4箇所も
書いていかなくてはなりません。

なんかとても無駄なことしてる感じがするんですが
こういうものですか?
384nobodyさん:2011/11/11(金) 18:24:04.80 ID:???
>>378
ページ発行の度にDBに登録するのは手間ですが、
これならとりあえずは問題無さそうです。
ありがとうございます
385nobodyさん:2011/11/11(金) 18:29:18.58 ID:???
>>383
function作る必要ないじゃん

case 'a_page':
include_once(dirname(__FILE__)."/VIEW/a_page.php");
break;

でいいじゃない
386nobodyさん:2011/11/11(金) 18:32:26.28 ID:???
>>383
a_pageが来たらviewのa_page.phpを探しに行くのはダメなのかな?
a_page.phpのなかは一つのクラスにして、
そのクラスのなかでいろいろ処理をする
Zendはそんな感じだった記憶あるし
387nobodyさん:2011/11/11(金) 18:36:04.00 ID:Hw6ayFxo
>>385
変数がスコープされてどうたらこうたらで
セキュリティ的にヨシらしいです。
388nobodyさん:2011/11/11(金) 18:38:57.80 ID:???
>>387
どんな資料かはわからないけど、
関数の中では変な変数を作っても外に影響はないとか、
そういう意味なのではと予測してみる
389nobodyさん:2011/11/11(金) 18:58:12.64 ID:???
やりようによっては function まとめられるし
ページ増やすのも 配列に追加するだけで済ますことも出来るけど、

こうしないと出来ないこともあるわけで、なにがいいかは分かりません。
390nobodyさん:2011/11/11(金) 19:28:42.73 ID:jLYP25UJ
Fatal error は set_error_handler で補足出来ないって書いてあったけど
できます。
最近のバージョンで変わったんでしょうか?
391nobodyさん:2011/11/11(金) 20:40:20.86 ID:???
>Fatal error は set_error_handler で補足出来ないって書いてあったけど
ソースはよ
392nobodyさん:2011/11/11(金) 21:10:31.30 ID:???
>391
すみません、できませんでした
requireはwarning後にfatalエラー出るんですね
393nobodyさん:2011/11/11(金) 21:30:23.03 ID:???
>>383
無駄だよな。だからもっと省略しようぜって動きがフレームワーク

<?php
define('VIEW_DIR', dirname(__FILE__) . '/view/');
$page = 'page_' . (@$_REQUEST['page'] ? $_REQUEST['page'] : 'a');
if (function_exists($page)) { $page(); } else { die($page . ' not exists.'); }

function page_a() { include VIEW_DIR . 'a.php'; }
function page_b() { include VIEW_DIR . 'b.php'; }
function page_c() { include VIEW_DIR . (mt_rand(0, 1) ? 'c1.php' : 'c2.php'); }
394nobodyさん:2011/11/11(金) 22:24:04.51 ID:???
>>383
汎用的にしようという心意気が足りない
395nobodyさん:2011/11/11(金) 22:40:46.48 ID:???
>>383
MVC実装するならファクトリーメソッドパターンを覚えろ
396nobodyさん:2011/11/11(金) 23:05:15.81 ID:???
小学生の会話みたいだ
397nobodyさん:2011/11/12(土) 10:02:10.03 ID:???
PHPディスってる奴ってロクにPHPも知らない奴らなんだろうな
https://twitter.com/#!/ts_3156/status/121974805573545984
PHPでもGUIは作れます
PythonもRubyもGUIは作れますがライブラリを入れないと作れません
PHPも同じです
バカは一人前にディスるな
398nobodyさん:2011/11/12(土) 10:25:58.18 ID:???
知ってる知ってない関係ない。
ただのバカだ。 大事なのは反応しないこと。
荒らして反応があるのがたまらなくうれしいんだからな。

反応があってうれしいか?荒らしくんw
399nobodyさん:2011/11/12(土) 14:13:37.07 ID:y4Nx+kxF
現在 デバッグに関するテクニックを調べてたら

C0/C1/C2
検査網羅率(テストカバレージ)

というものを知りました。

これ・・・、
かなり手間がかかりそうな話なんですけど
みんな、ある程度やってものなんですか?
400nobodyさん:2011/11/12(土) 14:19:35.83 ID:???
みんながやっていたらやる問題なのか?
401nobodyさん:2011/11/12(土) 14:37:33.61 ID:???
業務用アプリケーション作ってるわけじゃあるまいし
402nobodyさん:2011/11/12(土) 14:46:53.12 ID:y4Nx+kxF
>>400
プログラミングの世界は
何が正しくて何が間違っているのか
自分がやってることははたして一般的なのか
というのがようわからん時があるので
その指標、参考の一つとして
一般的にどれくらいその技術、方法が
広まってるのかを基準にすることがある。
403nobodyさん:2011/11/12(土) 14:55:35.96 ID:???
>>402
だからだめなんじゃないかな
404nobodyさん:2011/11/12(土) 15:02:50.73 ID:???
>>402
それを2chで聞いても参考にならんだろ
ていうかスレチだ
コード出せ
405nobodyさん:2011/11/12(土) 17:25:35.49 ID:???
コード出すような話でもあるまいw
テストするならごく普通の考え方。
406nobodyさん:2011/11/12(土) 17:41:10.94 ID:???
手続き型でコード書いてる人いる?
実務レベル(中小企業からの外注など)で使っていいと思う?
407nobodyさん:2011/11/12(土) 18:01:45.63 ID:???
自分で分かっているくせにー。
408nobodyさん:2011/11/12(土) 18:55:45.32 ID:???
今時手続き型ですか(笑)
409nobodyさん:2011/11/12(土) 19:00:44.03 ID:???
企業だと納品後ある程度コードを読み書き出来る人がカスタマイズするだろうから手続き型の方が可読性が高くてウケがいいんだよね。
オブジェクト指向使うのは自社製品をプロジェクトチームで開発するかオープンソースで公開する時のみ。
俺はこの二つで使い分け(書き分け)してる。
410nobodyさん:2011/11/12(土) 19:40:03.15 ID:Y8SMtFp6
ssh2_connect()で接続した後、切断するコマンドが見当たらないのですが、リソースをunset()すれば良いですか?
411nobodyさん:2011/11/12(土) 20:03:45.64 ID:???
>>410
ttp://php.net/manual/ja/function.ssh2-connect.php#104758
こんな感じで実装すればいいんじゃない?
412nobodyさん:2011/11/13(日) 00:43:51.58 ID:???
>>409
状況にもよるけど、クラスを追加してもらう形のほうがシンプルになることがある
413nobodyさん:2011/11/13(日) 06:04:07.42 ID:???
>>406
クライアントから特に指定がないならなんでもいい
だがフレームワーク使ったほうがいいよ
手続き型にしてもオブジェクト指向型にしても
フレームワーク使わないと作業効率があがらないい
414nobodyさん:2011/11/13(日) 08:27:26.16 ID:???
フレームワークはPHPのバージョン依存が凄まじい。CakePHPまともに動かない事が多いし。
415nobodyさん:2011/11/13(日) 09:53:39.82 ID:Rs/FBYQk
フレームワーク初心者に
オススメのフレームワークってなんですか?
やっぱ CodeIgniter?
416nobodyさん:2011/11/13(日) 10:39:39.24 ID:???
今CodeIgniterを使うのはやめとけ
ライセンス問題でもめてるから
417nobodyさん:2011/11/13(日) 11:14:58.47 ID:VTZV0iGW
>>411
載ってましたか・・・失礼;;
nullを代入したら良いのですね
418nobodyさん:2011/11/13(日) 15:57:48.66 ID:N83gtIIz
Windows7にザンプ入れた環境で以下を実行するとエラーになります

<?php
echo '―';

実行結果
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE in test.php on line 2

文字列に―(ダッシュ)がある時のみエラーになります
クォーテーションはシングルでもダブルでも同じ

PHPのバグですか?
Linux系では大丈夫でした

PHPに報告送ったらなんかもらえる?
419nobodyさん:2011/11/13(日) 15:58:35.18 ID:???
本当XAMPPは死滅するべき
420nobodyさん:2011/11/13(日) 16:44:15.93 ID:???
>>418
大方 mbstring.script_encoding を指定せずにShift_JISで書いてるだろ
421nobodyさん:2011/11/13(日) 19:30:28.94 ID:MmYvGAeI
ある文章が有り、
Windows型のCRLFをLinuxのLFに変換したいと思います
この場合どのようにすればいいのでしょうか?
自分はpreg_replace()でもいいとは思ったのですが、処理速度が遅いとのことで
str_replace('\r\n', '\n', $a);のようにしたのですが、こんなものでいいのでしょうか?
ヒアドキュメントを使った文章に上のものを適用してみたのですが、改行はブラウザなどでは目に見えないので自分には分かりませんでした
アドバイスを頂けないでしょうか?
422nobodyさん:2011/11/13(日) 19:35:38.43 ID:Rs/FBYQk
プログラムの作成に実際に取り掛かる前の設計図段階の
図式ってどんな感じで作成するもんなんでしょう?
専用のツールを使うのでしょうか?
それとももっと原始的に紙と鉛筆で
ユーザーがここをクリックしたらこうなって
ここで、検証して・・・
みたいな感じで図に書いていく感じでしょうか?

423nobodyさん:2011/11/13(日) 19:50:12.09 ID:???
>>419
なんでもやってくれて勉強にならないからか?w
それとも自分で理解しなくちゃいけない役立たずだからか?w
マジでXAMPP使うなしか言わないやつは役に立たんなw
424nobodyさん:2011/11/13(日) 20:29:03.32 ID:???
>>422
少なくてもプログラマはそういうツール使わない。
UML図とかそういうの作るツールとかあるけど、
ほぼすべてにおいて、手書きに劣る
人に説明しなきゃいけない訳じゃないなら、
手書きで十分
425nobodyさん:2011/11/13(日) 20:36:18.82 ID:???
人による
426nobodyさん:2011/11/13(日) 20:36:52.00 ID:Rs/FBYQk
>>424
回答ありがとうございます。
boogie board
買います。


427nobodyさん:2011/11/13(日) 20:47:10.29 ID:???
>>421
str_replaceで改行を置換させるなら ' じゃなくて " を使え
あとベンチマークをちゃんと取ってからどっちが早いか決めろ
ブログで○○は遅いとか早いとか鵜呑みにするな
428nobodyさん:2011/11/13(日) 20:49:12.01 ID:???
>>423
xamppをバカにされて顔真っ赤になるなよ
429nobodyさん:2011/11/13(日) 20:56:41.46 ID:DyiGFRAw
初心者丸出しの質問ですみません。

行ごとに数字だけが入ったファイルを2つ用意しています(a.txt、b.txt)。
これらのファイルから、ある行を以下のようにして取り出しています。

$a = file("a.txt", FILE_IGNORE_NEW_LINES);
$b = file("b.txt", FILE_IGNORE_NEW_LINES);

それで以下のようにそれぞれを足してます。
$c = $a[0] + $b[0];//それぞれ1行目の場合

これで、2行目以降を取り出して足し算したときは問題ないのですが、
1行目を取り出した場合結果が変になります。

$a[0]が5で、$b[1]が10の場合、$cは10になってしまいます。
$a[1]が5の場合は、$cはちゃんと15になります。

どうも1行目の数字を計算しようとすると、それが0になってしまうようです。

ファイルの読み込み方に問題があるのでしょうか?
調べてもどうしてもわかりません。
どなたかご教示いただけませんでしょうか。
430nobodyさん:2011/11/13(日) 21:04:38.39 ID:Rs/FBYQk
>>429
このへんの問題なのかも↓
http://nyx.pu1.net/practice/file_ope/file_ope6.html
431429:2011/11/13(日) 21:10:31.27 ID:DyiGFRAw
>>430
早速の回答ありがとうございます。
ファイルポインタですか…勉強したいと思います。

ただ、先ほどは書き忘れたのですが、
echo $a[0];
とやれば、きちんと「5」と表示されます。
計算をした瞬間に「0」になってしまうんです…。
432nobodyさん:2011/11/13(日) 21:29:09.15 ID:???
>>431
var_dumpの結果を$a[0]と$b[0]それぞれ張って
433429:2011/11/13(日) 21:58:47.76 ID:DyiGFRAw
>>432
すみません、少し原因がわかった気がします。

array(6) { [0]=> string(5) "?28" [1]=> string(2) "29" [2]=> string(2) "29" [3]=> string(2) "30" [4]=> string(2) "30" [5]=> string(2) "31" }

ブラウザで見ると、[0]は"28"なのですが、
コピペすると「?28」で5文字になっています…。

用意したデータファイルがだめなんですね。
作り直してみます(どうしてだめなのかよくわかってませんが)。

お手数おかけしました。
434429:2011/11/13(日) 22:03:34.57 ID:???
UTF-8のBOMでした。本当にすみませんでした。

逝ってきます。
435nobodyさん:2011/11/13(日) 22:03:37.09 ID:???
>>433
たぶんファイルにBOMがついてる
436nobodyさん:2011/11/14(月) 00:49:41.32 ID:???
ここのページみてbitlyの短縮URLAPIを使ったんですが、
http://blog.flatlabs.net/20100605_065101/

500のMISSING_ARG_APIKEYというエラーが出ます。

APIKEYは何度もちゃんとコピペしたので間違ってるわけありません
同じような症状の方いますか?
437nobodyさん:2011/11/14(月) 00:49:55.52 ID:???
>>428
たかがあんなものに、毎回毎回よほどご執心ですな。
438nobodyさん:2011/11/14(月) 03:39:39.57 ID:???
>>436
GETパラメータにちゃんとついてることも確認した?
439nobodyさん:2011/11/14(月) 08:16:49.02 ID:???
>>436
ブラウザで http://api.bit.ly/v3/shorten?login=〜っていれて見えます?
440nobodyさん:2011/11/14(月) 08:35:48.52 ID:???
>>438-439
パラメータを変数に入れずに直で書いたらいけました・・・
意味わからん!
ありがとうございました!
441nobodyさん:2011/11/14(月) 08:41:53.38 ID:???
パラメータを変数?
."login={USER}" そのままじゃないよね?
442nobodyさん:2011/11/14(月) 10:36:43.97 ID:4eqYEG9C
・1つのテーブルにデータをすべて突っ込んで
accountフィールドでソートして表示するやりかた
・accountごとにテーブルをつくって表示するやりかた

どちらが早いでしょうか。全部で1000件ほどです。
443nobodyさん:2011/11/14(月) 10:39:43.99 ID:???
>>442
何をしたいのか分からんが前者の方が当然速い
444nobodyさん:2011/11/14(月) 11:09:55.29 ID:7NbDH7tB
fopenのaとwに相当することはmysqlではどうやるのでしょうか?
445nobodyさん:2011/11/14(月) 12:19:16.19 ID:???
insertやupdateのレベルの話ならphpじゃないので。
446nobodyさん:2011/11/14(月) 12:27:50.88 ID:aWGA7HGm
携帯向けのサイトを作っています。
なぜかAUだけ$_GETに値が入っていないようです。。
ドコモとソフトバンクは問題ないようなのですが、調べてるとAUの仕様が原因らしいのですが、解決法がわかりません。
どなたか教えて頂けると助かります。

PHP5.2.17 さくらレンタルサーバスタンダードプラン
447nobodyさん:2011/11/14(月) 12:47:36.72 ID:7NbDH7tB
>>445
PHPでやる場合の質問です
448nobodyさん:2011/11/14(月) 14:03:08.36 ID:???
http://www.php.net/manual/ja/
ここのsearch forって入力欄にmysqlって入れてみましょう
449nobodyさん:2011/11/14(月) 14:14:46.53 ID:7NbDH7tB
それは知ってます
もし該当するぺーじがあるならピンポイントで教えていただけますか
450nobodyさん:2011/11/14(月) 15:01:19.13 ID:???
何で読まないんだよ
最初の数ページも読む気ないわけ?
例って書いてあるじゃん
451nobodyさん:2011/11/14(月) 15:10:06.82 ID:???
あれどこに乗ってるんですか?^^
452nobodyさん:2011/11/14(月) 15:30:32.35 ID:???
>>446
なにをしたとき?(ただページを開いたとき、urlにパラメータつけたとき、フォームでGET指定したときとか)
453nobodyさん:2011/11/14(月) 19:03:06.81 ID:???
>>441
defineしてればいけるんでないの
454nobodyさん:2011/11/14(月) 19:04:40.96 ID:???
>>444
a → insert
w → truncateしてinsert
455nobodyさん:2011/11/14(月) 19:17:59.39 ID:???
>>443
まじで?分けてるほうが探す手間が省けそうに思えるけどそれは人間中心の発想か
456nobodyさん:2011/11/14(月) 19:58:08.35 ID:???
>>453
文字列中の定数は{}つけようが展開されない。

>>455
人間でも1000ページから該当ページ探すのと、
1000冊から該当本探すの変わらないけど、
本分けるのは、めんどうでしょ?
一冊になってれば、目次もつけられるし。
457nobodyさん:2011/11/14(月) 20:04:18.35 ID:???
>>456
勝手にブログみたいなサービスをイメージしてて、
そのユーザのブログではそのユーザの情報しか取り出さないからアカウント毎に分けてたほうがよさそうなのに、
って思ったけどそれでもブログサービスでもすべてのブログから特定の単語を含む記事を検索する機能とかありますね
言われてみれば確かに分けてると探しにくそう
458nobodyさん:2011/11/14(月) 20:09:47.59 ID:???
当然、全部を一冊にすると膨大になって遅いこともあるから
百科事典のようにテーブルを分けるようなこともある。
459nobodyさん:2011/11/14(月) 20:17:18.96 ID:???
質問者が合計1000件くらいって言っててそれを含めての回答なんすね
横からだけどありがとうm(_ _)m
元の質問者の人、横から茶々入れてごめんm(_ _)m
460nobodyさん:2011/11/14(月) 20:18:28.61 ID:???
テーブルの質問にちょっと便乗させていただきたいのですが
2chでたとえた場合
・板毎にスレ・レステーブルを作る
・板横断で(2ch全体で)、スレ・レステーブル作る
この場合は、分けたほうがいいんですよね?
ちょっと似たような設計で少し迷ってるとこがありまして
461nobodyさん:2011/11/14(月) 20:24:51.29 ID:???
レコード量を起点としてテーブル分割を検討するのはもっと後でいいよ。インデックスのサイズが問題になった頃から。
どちらかというとセキュリティや個別にレイアウト変更をするために分割することのほうが多いぐらい。

>>460
なので別に分けなくていいよ。
462nobodyさん:2011/11/14(月) 20:26:13.59 ID:???
スレチだからDB板に行ってね
個人的には2chの規模だと板毎にDB作るのはありだと思うよ
463nobodyさん:2011/11/14(月) 20:26:46.79 ID:???
ファイルI/Oがいいお
464nobodyさん:2011/11/14(月) 20:37:18.36 ID:???
>>1
465nobodyさん:2011/11/14(月) 20:55:53.69 ID:???
>>462
気に入らないならスルーしとけクズ
466nobodyさん:2011/11/14(月) 21:05:04.74 ID:???
>>465
何でもありな訳ではないだろうがクズ
467nobodyさん:2011/11/15(火) 08:30:27.73 ID:???
punbb-1.4の日本語パックってどこにある?
468nobodyさん:2011/11/15(火) 11:11:21.62 ID:/AFeSgs+
phpと若干ずれるんですが、
phpmyadminを操作してて
間違ってテーブル消してしまったり、レコード書き換えちゃった場合
もとに戻す方法はないんでしょうか?

また、phpmyadminのバックアップって
なんとかしてとれないんでしょうか?
レコード数が莫大になると、エクスポートしてくれなくて・・・

469nobodyさん:2011/11/15(火) 11:20:09.91 ID:???
>>468
phpmyadminって単なるツールだからな
バックアップはdumpでもしたら?
470nobodyさん:2011/11/15(火) 13:44:23.75 ID:nNXW0/FD
他社サイトのHTML入力フォームに、
自動で入力&送信するプログラムを
PHPで作成することは可能でしょうか?

例えば、懸賞サイトの入力フォームに毎回氏名や住所を入力するのは
大変なので、テキストに懸賞サイトURL、氏名、住所などを記載しておいて
PHPを動かしている自前サーバーからボタン一つで登録できるような
イメージです。

もし実現可能であれば、
関数などのヒントをいただけるとありがたい。。
471nobodyさん:2011/11/15(火) 13:49:12.31 ID:???
fsockopen
472nobodyさん:2011/11/15(火) 13:49:58.67 ID:???
入力値をPOSTした時にどういうデータがどこへ流れてるかをHTTPヘッダを見ながら確認しつつ
それを再現するプログラムを書けばいいだけ

cURLとかソケットとかその辺使えば出来るが
「PHPを動かしている自前サーバーから」
これがどこを指してるのかわからないが
この自前サーバがlocalhostでないならやめたほうがいい
473nobodyさん:2011/11/15(火) 13:53:47.73 ID:???
>>470
スパム業者視ね
474nobodyさん:2011/11/15(火) 13:53:50.27 ID:???
file_get_contentsとstream_context_createを組み合わせたほうが楽
475nobodyさん:2011/11/15(火) 13:55:41.59 ID:???
いまどき自動入力ならたいていのブラウザにフォームフィールドオートフィル機能が付いてるから
スパムだろうね
476nobodyさん:2011/11/15(火) 13:57:42.18 ID:???
まぁ教えても大丈夫だろ
質問してる時点で作れるレベルではないから
477nobodyさん:2011/11/15(火) 14:05:18.40 ID:nNXW0/FD
中小検索エンジンに自分のサイトを一括自動登録しようとしたのですが、
これはスパムになるんですね。。プログラミングはやめておきます。
失礼しました。
478nobodyさん:2011/11/15(火) 14:22:19.78 ID:???
おとといきやがれクズ
479nobodyさん:2011/11/15(火) 14:24:50.38 ID:???
自己のストレス発散のためなのかしらないけど無闇と強く煽るのは控えてくれるかな
質問者が暴れたりしてスレが荒れ出すから
480sage:2011/11/15(火) 14:24:57.18 ID:nNXW0/FD
うるせーバカ
481nobodyさん:2011/11/15(火) 14:36:45.60 ID:???
なんで擁護に暴言ww と思ったけど、時間差だったのなw
482nobodyさん:2011/11/15(火) 14:48:20.25 ID:???
ワロタ
483nobodyさん:2011/11/15(火) 15:26:47.47 ID:NkOq7hLN
すみません
以下のような.iniファイルをparse_ini_file()にて読み込んだのですが、
[hoge]
foo.title = 'こんにちは'
foo.text = 'hello'
bar.title = 'good bye'
bar.text = 'linux'
$inifile['hoge']をvar_dump()すると、foo.title => 'こんにちは'のような配列で返ってきます

これはいいのですが、この場合foo.xxxの部分だけを取り出すにはどのようにすればいいのでしょうか?
foreach()で回すのかなと思いましたが、
var_dump()の階層が一つしか無かったのでそれでは無理か、と思いまして
正規表現とか何かで取り除いていくしかないのでしょうか?
484nobodyさん:2011/11/15(火) 15:29:46.18 ID:NkOq7hLN
ごめんなさい、追記しておきます
上のような書き方をしたのは、Zend_Frameworkの書き方を参考にしました
485nobodyさん:2011/11/15(火) 16:28:54.71 ID:???
>>483
連想配列で調べてごらん
486nobodyさん:2011/11/15(火) 16:30:36.87 ID:???
検証云々ってCSRF対策入ってたら無理だろ
487nobody:2011/11/15(火) 18:05:42.21 ID:???
【OS名】CentOS
【PHPのバージョン】5.2.0

1. ini_set('session.cookie_lifetime', 3600) する(iniファイルは0のまま)
2. php.ini のsession.cookie_lifetime を3600に書き換える
1と2で何かブラウザの挙動って変わります?

今、すごいおかしなことが起こっていて、
1のときは主要5ブラウザ全てでセッション変数がセットも参照もできるんですが、
2のときはセットはできてるようなのですが、遷移先で参照できません。
それがFirefox以外のブラウザで起こります。

session.gc_maxlifetimeは14400にしてます。
それ以外のiniファイルのセッション関係の設定はデフォルトです。

・index.php
//ini_set('session.cookie_lifetime', 3600);
session_start();
$_SESSION['abc'] = $_POST['def'];
echo($_SESSION['abc']);
(中略)
<a href="./session.php">Check Session</a>

・session.php
//ini_set('session.cookie_lifetime', 3600);
session_start();
print_r($_SESSION);

【OS名】CentOS
【PHPのバージョン】5.2.0

どなかた教えてください。
488nobodyさん:2011/11/15(火) 19:28:08.15 ID:YCB66CHc
PDOやSQLite3に実装されている:bindValueは複数に分けて以下のように書けます
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);
$stmt->bindValue(':id2', 10, SQLITE3_INTEGER);
$stmt->bindValue(':id3', 100, SQLITE3_INTEGER);

このようにMySQLiでも書きたいのですがMySQLiにはbind_paramしかありません
ためしにbind_paramで複数に分けて書いてみましたがやはりエラーになります
複数に分けて書くテクニックなどございませんか?
489487:2011/11/15(火) 19:56:35.99 ID:vIxS7Rlf
すみません。>>487 sageてました。
改めて、よろしくお願いします。
490nobodyさん:2011/11/15(火) 20:25:31.77 ID:nzzLFJZT
if(!ereg("{$_SERVER['PHP_SELF']}", "{$_SERVER['REQUEST_URI']}"))

上記条件式をeregを使わずにpreg_matchなどで書く方法を教えてください。
491490:2011/11/15(火) 20:38:03.17 ID:nzzLFJZT
if(!preg_match("@{$_SERVER['PHP_SELF']}@", "{$_SERVER['REQUEST_URI']}"))

スラッシュ以外のデリミタを指定したらうまくいきましが、これでいいのかな?
492nobodyさん:2011/11/15(火) 20:40:49.75 ID:???
strpos使いなさい
493nobodyさん:2011/11/15(火) 21:51:42.62 ID:oC4G4RqC
Fatal error: require_once() [function.require]:
Failed opening required 'Calendar/Month/Weeks.php' (include_path='.:/php/includes:/usr/share/php/smarty')
in /opt/lampp/htdocs/samples/chapter6/6-4/calendar_pear.php on line 8

というエラーが出ているので調べています。

PEARのCalendar/Month/Weeks.phpってデフォルトではどこにインストールされるものなんでしょうか?
PEARはインストールしてあって、pear install Calendar-0.5.5もやっていて、
pear install Calendar
と打つと
pear/Calendar is already installed and is the same as the released version 0.5.5
install failed
と、既にインストールされてます、と出ます。

/usr/share/php/PEARが存在することは確認したのですが、find . "Weeks.php"と打っても
「find: `Weeks.php': そのようなファイルやディレクトリはありません」と出ます。
どうやって調べればいいのでしょうか?
494nobodyさん:2011/11/15(火) 22:03:42.67 ID:???
CURLでポストできたよね
495nobodyさん:2011/11/15(火) 22:57:37.07 ID:PPkF/yi6
【OS名】CentOS 【PHPのバージョン】5.2.14 【関連ソフトウェア】なし 【質問内容】 ○概要 top.php内で二つの別ファイルを呼び出したく。

○ファイル構成 top.php └ad ├001 │└001.php └002 └002.php

○ソース ... <?php include "./ad/001/001.php";?> ...

<?php include "./ad/002/002.php";?>

○問題 上記のソースのように記載して表示した場合、 001は表示されるが、002は表示されない。 試しに001の記述を削除して確かめてみると、 002が表示される。 001と002が両方表示されるためには、どうしたらいい のでしょうか?

ご指導頂けるとありがたいです。
496nobodyさん:2011/11/15(火) 22:59:06.35 ID:???
>>495
読み辛い

どうせ001.phpで exit なり die なりしてるんじゃないか
497nobodyさん:2011/11/15(火) 23:00:59.98 ID:???
>>495
001.phpでエラーがあって止まってるってことはないかね
includeというものは絶対パスで指定するようにしたほうがいい
498nobodyさん:2011/11/15(火) 23:08:51.62 ID:???
絶対パスで指定とか無いわ・・・
499495:2011/11/15(火) 23:11:07.52 ID:PPkF/yi6
>>496
すいません、
携帯で書き込んだところ、改行が崩れてしまいました。

現在帰宅途中ですので、帰宅次第 exit、 dieをググってみます。

>>497
なんとなくのイメージで、相対パスの方が、長い目でみたらいいと勝手に思ってました。(移管とかの際)

早速の返答ありがとうございます。
かなりの初心者なので、これらを参考に調べてみて、トライしてみます。

上手く行かなかった場合は、再度質問させて貰うかもしれません。
その際は、可能ならば、よろしくお願いいたします。
500493:2011/11/15(火) 23:16:44.24 ID:oC4G4RqC
>>494
それは私へのレスでしょうか?
困っているのでどなたかお願いします。
501nobodyさん:2011/11/15(火) 23:21:41.14 ID:???
>>500
スルーでいいよ
502493:2011/11/15(火) 23:25:23.02 ID:oC4G4RqC
本当にお願いします。
503nobodyさん:2011/11/15(火) 23:31:51.24 ID:???
>>498
相対パスを指定するとPHP実行時に絶対パスに変換するから
はじめから絶対パスで指定するとその変換作業のコストを減らせる
後、複数人でコードメンテナンスする場合は相対パスよりも絶対パスで書くのが常識
504nobodyさん:2011/11/15(火) 23:35:48.26 ID:???
パス。ゼッタイ。
505nobodyさん:2011/11/15(火) 23:38:56.42 ID:???
細くしておくけど
/で書くとドキュメントルートからのパスになるから
baseとなるパスをrealpathで取得してそれをくっつけて使うんだよ
506nobodyさん:2011/11/15(火) 23:39:19.80 ID:???
絶対パスって絶対URLのことじゃないよね?
507nobodyさん:2011/11/16(水) 00:10:38.38 ID:???
相対パス ./a.php
絶対パス /home/aa/public_html/a.php or / (Document Root)
URL http〜
508nobodyさん:2011/11/16(水) 02:02:05.31 ID:???
このスレのことだからソワソワしたわ
509495:2011/11/16(水) 09:19:23.57 ID:gD8mJFYY
絶対パスと相対パスの下り、ありがとうございます。
勉強になります。

昨晩、色々と試行錯誤したのですが、力不足のためダメでした。

【問題と思われるページのソース001.php】
<?php if (getUserAgent()=='P') { //PC include('p001.php'); } else if
(getUserAgent()=='ip') { //iphone include('s001.php'); } else if
(getUserAgent()=='an') { //Android include('s001.php'); } else if
(getUserAgent()=='m') { //Mobile include('m001.php'); }

次レスに続きます。
510495:2011/11/16(水) 09:22:55.04 ID:gD8mJFYY
//端末振り分け処理

function getUserAgent() {
if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone')){ $env = 'ip'; }
elseif(strstr($_SERVER['HTTP_USER_AGENT'],'Android')){ $env = 'an'; }
elseif(strstr($_SERVER['HTTP_ USER_AGENT'],'DoCoMo')){ $env = 'm';
} elseif(strstr($_SERVER['HTTP_ USER_AGENT'],'UP.Browser')){ $env = 'm'; } elseif(strstr($_SERVER['HTTP_USER_AGENT'],'J-PHONE')){ $env = 'm'; }
elseif(strstr($_SERVER['HTTP_ USER_AGENT'],'Vodafone')){ $env = 'm'; }
elseif(strstr($_SERVER['HTTP_ USER_AGENT'],'SoftBank')){ $env = 'm'; }
elseif(strstr($_SERVER['HTTP_ USER_AGENT'],'WILLCOM')){ $env = 'm'; }
else{ $env = 'p'; } return $env; } ?>

m001.phpなどには、広告タグを貼っており、
直接m001.phpやm002.phpをインクルードすると正常に表示されたので、このソースのページが駄目なのかなと。

長々とすいません。
511nobodyさん:2011/11/16(水) 09:35:21.42 ID:???
>>510
まさかとは思うが、、、
<?php if (getUserAgent()=='P') { //PC include('p001.php'); } else if

<?php if (getUserAgent()=='P') { //PC
include('p001.php'); } else if
改行入れてるよね?
さすがにそれはないかw
512nobodyさん:2011/11/16(水) 09:37:57.83 ID:???
>>511
なんかそれっぽい気がするwww
513nobodyさん:2011/11/16(水) 10:03:50.43 ID:???
$_SERVERは使うな
514nobodyさん:2011/11/16(水) 10:07:06.67 ID:???
>>513
なんで?代入しろってこと?
515nobodyさん:2011/11/16(水) 10:14:53.73 ID:???
>>510
何その半角スペース
516nobodyさん:2011/11/16(水) 10:24:59.78 ID:???
>>505
> /で書くとドキュメントルートからのパスになるから
includeの流れでそれっすか
517nobodyさん:2011/11/16(水) 10:25:18.14 ID:???
>>514
理由が分らないならググるか黙ってgetenvを変わりに使えっ!”!!!!!!!!!!!!
518nobodyさん:2011/11/16(水) 10:26:43.32 ID:???
Shift+2で@がでるほうがいい
519495:2011/11/16(水) 10:44:41.16 ID:gD8mJFYY
>>511
>>512
すいません、スマホからコピペして書き込むと、改行が上手く反映されてないかもしれません。
http://i.imgur.com/Q3QEc.jpg

>>513
どうして駄目なのでしょうか?
よろしければご教授を。
ひとつ目の読み込みでは上手くいってるのですが。

>>515
どこのスペースのことでしょうか??


くだらない内容をだらだらとすいません。
520nobodyさん:2011/11/16(水) 10:58:38.15 ID:???
久しぶりに登場の使うな厨
521nobodyさん:2011/11/16(水) 11:05:25.53 ID:???
無駄レスするくせに説明を求められると黙るね
522nobodyさん:2011/11/16(水) 11:29:05.76 ID:???
>>510
print getUserAgent();
523nobodyさん:2011/11/16(水) 11:51:54.72 ID:???
とりあえずPHPのエラーがでてないか確認を
524nobodyさん:2011/11/16(水) 12:16:58.51 ID:???
ググるの面倒くさいと煽って楽して聞き出そうとする奴もまた沸くよね
525nobodyさん:2011/11/16(水) 12:25:35.75 ID:???
ググるほうがよっぽど早いと思うんだが、
検索のノウハウが無いと大変なんかねえ
526nobodyさん:2011/11/16(水) 12:29:59.69 ID:???
どう検索していいか分からないこともあるしな。
嘘に引っかかることもあるし、それは古い話だってこともある。
527nobodyさん:2011/11/16(水) 12:48:57.64 ID:???
http://www.google.com/search?hl=ja&q="$_SERVERは使うな"
ググった
528nobodyさん:2011/11/16(水) 12:49:31.84 ID:???
1点
529nobodyさん:2011/11/16(水) 12:51:33.14 ID:???
その検索結果見ると笑える
530nobodyさん:2011/11/16(水) 13:53:16.04 ID:???
>>527
節子、URIには使える文字と使えない文字があるんやで
531nobodyさん:2011/11/16(水) 13:57:50.04 ID:???
エンコードした文字や短縮URL貼ったらネタが伝わらないじゃん
532nobodyさん:2011/11/16(水) 13:59:35.26 ID:???
デコードしたURL貼るなよ
533nobodyさん:2011/11/16(水) 14:02:40.03 ID:???
検索の初心者なのかもはや分らん
534495:2011/11/16(水) 14:08:22.17 ID:gD8mJFYY
解決しました。

微妙にお叱りを受けていたようなので、

>>510
print getUserAgent();

のレスを元に、

2つのinclude先ファイルに記載してみました。
すると、後で読み込むファイル(002)の箇所が表示されない。
後のファイルのみなら表示される。
ソースを半分に割って試行錯誤。(取得部分と再include部分)

結論は、002でユーザーエージェントを取得しなければ、思い通りの表示になりました。
考えてみると、001で取得してるので、必要ないので削除しました。

色々と助言をくれたかた、ありがとうございました。
535nobodyさん:2011/11/16(水) 14:08:26.73 ID:???
検索結果のURLをただ貼り付けただけだとエンコードされてる
そして不必要なパラメータを削っているところを見ると
536495:2011/11/16(水) 14:15:09.40 ID:gD8mJFYY
ググれというご指摘ですが、

必要な時に、必要最低限の勉強と公開されてるソースのコピペばかりをやってきたので、
phpの知識が全く系統だてられていません。

その状態で半年、だましだましやってきたので、
分からないことに出会った時に、上手く調べられないのも確かです。
また、ヒットしたページの通りにやってみても、バージョンのせいなのか設定のせいなのか、
上手くいかないこともしばしばでして。。

でも、僕の怠慢です。
不快にさせて申し訳ありませんでした。
きちんと勉強しながら、またどうしてもというときだけ、質問させてもらいます。

ありがとうございました。
537nobodyさん:2011/11/16(水) 14:18:59.43 ID:???
特定の環境ではうまくいかないかもしれないって話らしい。
PHP3や4でも動くコードを書け、みたいなノリ。配布するわけでもないのに
538nobodyさん:2011/11/16(水) 14:20:57.19 ID:???
>>535
削ったからデコードされたのがコピーされちゃったのか
539nobodyさん:2011/11/16(水) 14:21:59.65 ID:???
昔のバージョンで動くのはむしろ駄目
540nobodyさん:2011/11/16(水) 14:22:18.52 ID:???
>>538
デコードされるかやってみ
541nobodyさん:2011/11/16(水) 14:23:10.48 ID:???
>>540
された
542nobodyさん:2011/11/16(水) 14:25:22.03 ID:???
ブラウザとバージョン
543nobodyさん:2011/11/16(水) 14:28:24.89 ID:???
今探しているところです
544nobodyさん:2011/11/16(水) 14:29:08.75 ID:???
>>537
何の話?
545nobodyさん:2011/11/16(水) 14:30:38.25 ID:???
結局、$_SERVER じゃなく getenv を使う意味がよく分からんのだけど
546nobodyさん:2011/11/16(水) 14:33:58.74 ID:???
これ分らない奴って大抵Windows+XAMPP使い
547nobodyさん:2011/11/16(水) 14:35:53.11 ID:???
やっぱり105スレと同一人物か
548nobodyさん:2011/11/16(水) 14:44:33.54 ID:???
環境依存なので、どんな環境の人間がつかうか分からないものには使うなとは言えるが
(取得できないように設定しているサーバというものがある)
自分しか使わない、自分の環境が分かってる人間には問題ない。まして動いているなら。

彼が言ってるのは、環境なんか知る必要はないってことだな。
初心者への助言とはいえる。
549nobodyさん:2011/11/16(水) 14:52:46.53 ID:???
>>513は状況等を勘案せずに条件反射っぽいが・・・
でその助言で相手を混乱させてると・・・
しかも理由を聞かれても答えない素敵な助言
550nobodyさん:2011/11/16(水) 14:54:16.82 ID:???
>>548
あ、そーゆーことか。理解したサンキュ
551nobodyさん:2011/11/16(水) 15:11:03.11 ID:???
寧ろ検索すりゃすぐ出てくるネタを引っ張って叩いてスレを汚してる人のほうが個人的に邪魔
552nobodyさん:2011/11/16(水) 16:59:38.93 ID:???
>>542
FirefoxやChromeはデコードされた文字列をロケーションバーに表示してくれる
全体をコピーしたら元のURIがコピーされるけど、一部分のコピーだとデコード後の文字列がコピーされる
553nobodyさん:2011/11/16(水) 17:08:40.35 ID:???
>>536
どうしてもという時じゃなくてもいいよ。くだ質なんで。
回答者がいるかどうかは運
554nobodyさん:2011/11/16(水) 19:54:15.47 ID:eLkUclYQ
質問です。
PHPでのワイルドカードの使い方についてです。

まず、現在は

if($_POST['enter_1']){ echo $_POST['name_1'];}
if($_POST['enter_2']){ echo $_POST['name_2'];}
if($_POST['enter_3']){ echo $_POST['name_3'];}

<input type="text" name="name_1"><input type="submit" name="enter_1" value="送信">
<input type="text" name="name_2"><input type="submit" name="enter_2" value="送信">
<input type="text" name="name_3"><input type="submit" name="enter_3" value="送信">

となっています。
実際にはechoではなくMySQL文があるのですが、今回はわかりやすぐechoにさせていただきました。
送信ボタンを押すと、それに対応したテキストボックスに入力した文章が表示されるのがわかると思います。

本題です。
IF文の中が$_POST['enter_○'] となっていて、TRUEのときは○の中身が使用されます。
○以外は全て同じなので、ワイルドカードを使ってIF文をひとつにできないかと思いましたが・・・。
正規表現や配列等を考えてみて、やってみたのですがうまくいきませんでした。

IF文をひとつにする方法はありませんでしょうか?
よろしくお願いします。
555nobodyさん:2011/11/16(水) 20:06:05.98 ID:???
>>554
セキュリティgdgdな書き方だな
556nobodyさん:2011/11/16(水) 20:14:59.77 ID:???
$items = array("enter_1"=>"name1" ,"enter2"=>"name_2" ,"enter_3" =>"name_3" );
foreach( $items as $var=>$val)
if ($_POST[$var])echo $_POST[$val];
---------------------------------------------
for($i=1;$i<=3;$i++)
if ($_POST["enter_$i"])echo $_POST["name_$i"];


(セキュリティについてはサンプルってことで書かないけど、
こういうのが ネットにこう書いてあったって使われちゃったり)
557nobodyさん:2011/11/16(水) 21:12:17.78 ID:???
同じブラウザを複数立ち上げて、同じ場面で異なるデータを表示させ登録などの処理をさせたいと考えています。
普通h同じセッションになるので不可能だと思いますが何か方法があれな教えて下さい。
558nobodyさん:2011/11/16(水) 21:33:32.05 ID:???
>>557
あせりすぎ。何を言ってるのか訳がわからんので、もう一度日本語を読みなおしてくれ。
559nobodyさん:2011/11/16(水) 21:41:56.86 ID:???
>>557
たとえばIEだとAlt F I で別セッションはれる
560553:2011/11/16(水) 22:11:49.03 ID:eLkUclYQ
>>555
最近勉強し始めたので、セキュリティはあまりわかっていません…。
サニタイジングはもちろんします。今回は長くなるので省略しましたが…。
561nobodyさん:2011/11/16(水) 22:44:23.46 ID:???
var_dumpについて質問させてください。

var_dumpの結果をechoで出そうと思い、以下のスクリプトを作成しました。
~$ cat hoge.php
#!/home/php/bin/php
<?php
$data = 'aaa';
$result = var_dump($data);
echo "result=$result\n";
?>

ところがこのスクリプトを実行すると、結果が以下のようになってしまいます。
~$ ./hoge.php
string(3) "aaa"
result=

おそらく、var_dumpの結果がresultに入ってないと思うのですが、
そうするためにはどうしたらいいでしょうか?
562nobodyさん:2011/11/16(水) 22:51:04.72 ID:+5IKw5hh
ごめんなさいID出し忘れました
563nobodyさん:2011/11/16(水) 23:01:58.01 ID:???
>>561
http://php.net/manual/ja/function.var-dump.php
マニュアルを読もう
答えがそのまんま書いてある
564nobodyさん:2011/11/16(水) 23:08:04.54 ID:???
なやみそうだからprint_rにするといいよ
565nobodyさん:2011/11/16(水) 23:12:27.50 ID:???
>>561
ver_export使えば良いよ
566nobodyさん:2011/11/16(水) 23:13:03.42 ID:???
たいぽ・・・
var_exportね
567nobodyさん:2011/11/16(水) 23:24:57.87 ID:???
>>554
ワイルドカードなんてものはないのでループなり自分で調べるしかない
普通は配列で扱う

<?php
foreach ($_POST['enter'] as $id) { echo $_POST['name'][$id]; }
for($i = 1; $i <= 3; $i++) {
 printf('<input type="text" name="name[%s]"><input type="submit" name="enter[%s]" value="送信">', $i, $i);
}
568nobodyさん:2011/11/16(水) 23:40:12.68 ID:???
actionによるコントロールをだな・・・
569>>561:2011/11/17(木) 00:36:00.90 ID:P0oL6Kj5
みなさん深夜遅くにありがとうございます。

マニュアルをみたのですが、var_exportの説明は以下のようになっています。
説明:”変数の文字列表現を出力または返す”

そして、var_dumpの説明は以下のようになっています。
説明:”変数に関する情報をダンプする”

以下の3つの具体的な意味についてご教授ください。
「ダンプする」
「出力する」
「返す」
570nobodyさん:2011/11/17(木) 01:07:37.67 ID:???
実際動かしてみろよ
571553:2011/11/17(木) 01:37:36.08 ID:70iwFN0D
>>567
ありがとうございます。
Linuxにあるので、あるものだと思っていました…。
それを参考に書いてみようと思います。
572nobodyさん:2011/11/17(木) 02:09:20.00 ID:???
>>569
>>564はなぜスルーされたのか。。

>>571
Linuxにあるんじゃなく、シェルにある。
phpでなら正規表現を使えばいいよ
573nobodyさん:2011/11/17(木) 03:41:11.72 ID:???
ワイルドカードによるマッチはfnmatch
574nobodyさん:2011/11/17(木) 11:44:23.47 ID:???
エンジニアなめられすぎ、ワロタ
http://www.lancers.jp/work/detail/27050
575nobodyさん:2011/11/17(木) 13:59:57.52 ID:izk/KJxq
300円
576nobodyさん:2011/11/17(木) 17:29:14.46 ID:0Ntos03V
$date = '2011-11-17';
if (isset($date'day'])) {
 echo 1;
} else {
 echo 0;
}

とした場合、配列でもないのに1が表示されます。
「$dateが配列で、連想配列のdayが存在する場合」
という条件式はどう書けばいいのでしょうか?
577nobodyさん:2011/11/17(木) 17:30:10.36 ID:???
すみません。2行目は入力ミスでした。正しくは↓
if (isset($date['day'])) {
578nobodyさん:2011/11/17(木) 17:40:40.09 ID:???
is_array()
579nobodyさん:2011/11/17(木) 17:48:00.34 ID:???
if_array($date) {
if (isset($date['day'])) {

こんな感じですか。でも、これって$date自体がなかったらエラーになりませんか?
580nobodyさん:2011/11/17(木) 18:16:28.76 ID:???
>>579
$date = null;
var_dump(isset($date,$date['day'])); // false

$date = array();
var_dump(isset($date,$date['day'])); // false

$date = array('day'=>null);
var_dump(isset($date,$date['day'])); // false

$date = array('day'=>'');
var_dump(isset($date,$date['day'])); // true

$date = null;
var_dump(isset($date) && is_array($date)); // false

$date = array();
var_dump(isset($date) && is_array($date)); // true

$date = array('day'=>null);
var_dump(isset($date) && is_array($date) && isset($date['day'])); // false

$date = array('day'=>'');
var_dump(isset($date) && is_array($date) && isset($date['day'])); // true

これぐらいは自分で試せ
581nobodyさん:2011/11/17(木) 19:06:01.97 ID:???
>>576
すこし話はずれるけど、そもそもの事象について説明しとく。

isset($date['day']) が真になる理由だけど、
$dateが配列ではなく文字列のため、添え字演算子は文字列インデックス(整数)を要求することになる。
んで、'day'を整数評価した値は0になるため、
isset($date['day'])はisset($date[0])となり、$date[0]は1文字目、つまり'2'が設定されているため、真になる。

なのでこうする。
isset($date) && is_array($date) && isset($date['day'])
array_key_existsとの違いにも気をつけること。

>>580
関係ないことずらずら書いててワロタ
582nobodyさん:2011/11/17(木) 19:29:07.37 ID:???
>>581
関係なくはないだろ
583nobodyさん:2011/11/17(木) 19:38:01.70 ID:0Ntos03V
>>580-582
ありがとうございます。大変勉強になりました!
584nobodyさん:2011/11/17(木) 23:51:19.67 ID:???
echoで
<form 〜
<input type="hidden"〜
<a href="javascript:document.form.submit()">〜
</form>
の順で出力させてるのに、
ソースコード見たら
<form 〜 ></form>
<input type="hidden"〜
<a href="javascript:document.form.submit()">〜
の順で出力されてる…怖い…
585nobodyさん:2011/11/18(金) 00:04:54.25 ID:???
>>584
結果だけじゃわからん。ソース晒せ
586nobodyさん:2011/11/18(金) 00:09:05.38 ID:???
>>585
あとテーブル使ってますが絶対に記述してない<tbody>が出力されてます
ajaxで書き換えた後のソース部分なんですが…
587nobodyさん:2011/11/18(金) 00:11:05.06 ID:???
>>586
それって、Firebugの補完機能じゃなくて?
588nobodyさん:2011/11/18(金) 00:14:48.11 ID:???
PHP関係なさげJS部分をJSスレで聞いてこい
589nobodyさん:2011/11/18(金) 00:26:14.18 ID:???
>>587
firebugは入れてないです
別のPCのfirefoxだとソース部分ではちゃんと順番に出力されてますがそのリンク自体が表示されなくなりました…
590nobodyさん:2011/11/18(金) 00:45:57.86 ID:???
あ、選択したソースを表示すると補完されるんですね…失礼しました
591nobodyさん:2011/11/18(金) 00:49:20.18 ID:???
原因が判明しました。
ajaxで書き換えるソースコードが書かれているphpファイルに
ヘッダタグ等の必要な情報を一切書いていなかったのが原因でした。
大変失礼しました…
592nobodyさん:2011/11/18(金) 01:17:56.35 ID:???
>>591
書き換えるなら、headタグとかいらないんじゃない?
kwsk
593nobodyさん:2011/11/18(金) 13:07:57.29 ID:0E07J79Y
Googleとかもそうですが
リンク先のページの全体像みたいのが画像で表示されますが
HTMLを画像にするようなことができるのでしょうか?
何か関数やヒントになるキーワードがあれば教えてください
594nobodyさん:2011/11/18(金) 13:17:06.96 ID:???
>>593
キャプチャ PHP
でggr
595593:2011/11/18(金) 13:23:38.38 ID:0E07J79Y
>>594
ありがとうございます!
596nobodyさん:2011/11/18(金) 16:34:31.24 ID:CLCMBLd4
windows7とさくらのレンタルサーバーでphpを使っています。
ファイル名に日本語を使いたいのですが、文字コードの指定が分かりません。

まず、windowsのファイル名の文字コードはUTF-8との事ですが
UTF-8のphpから
error_log("test",3,"ログファイル.txt");
と書いて"ログファイル.txt"というファイル名のファイルを作ったつもりでも、作成されたファイルをエクスプローラで見ると文字化けしてしまいます。
mb_convert_encoding($file,"SJIS-win","UTF-8");とファイル名の文字コードを変換すれば正常なファイル名が作成されるのですが
UTF-8のはずのwinodowsで何故sjisへの変換作業が必要なのでしょうか

これが解決出来れば、ファイル名は全てutf-8で統一されてファイル名の文字コードに気を使う事が無いのですが。
597nobodyさん:2011/11/18(金) 16:59:21.29 ID:???
PHPが対応してないので。
598nobodyさん:2011/11/18(金) 17:08:53.82 ID:???
ファイル名に日本語を使うのを止めろ
599nobodyさん:2011/11/18(金) 17:27:57.11 ID:jAJu9/rr
様々な条件下で、生成されたGET要素入りURLの後ろに
sort系のGETを入れたいと思っています。

hoge.com?page=1&type=1… 様々な GET…  &sort=asc
hoge.com?page=1&type=1… 様々な GET...  &sort=desc

これにより、様々な条件下で抽出されたリストから
並びかえができるようになってるのですが、

"様々な条件下で、生成されたGET要素入りURL"

は、どうやって取得したらよろしいでしょうか。
600nobodyさん:2011/11/18(金) 17:56:56.87 ID:???
getenv('QUERY_STRING')のことかなと思ったんだけど、
$url = explode("?",$url);
print $url[1];
かもしれない。
601nobodyさん:2011/11/18(金) 18:42:37.23 ID:???
>>600
嘘教えるな
getenv('QUERY_STRING')の返り値に?なんて含まないぞ
602nobodyさん:2011/11/18(金) 18:46:18.02 ID:???
>>596
Windows内部でユニコードで扱われてても、cp932に変換されているから
603nobodyさん:2011/11/18(金) 18:52:56.78 ID:???
>>601
様々な条件下で、生成されたGET要素入りURLってのが、アクセスしてきたアドレスとは
限らないじゃないかというオチャラケだよ。
本人が違うって書いてくれればいろいろ分かるのに。

>>602
ユニコードで取得する方法はあるから、PHPが対応してないってこと。
604nobodyさん:2011/11/18(金) 22:23:23.54 ID:???
横でスマンがgetenv('QUERY_STRING')の返り値に?が入っていることを期待したコードなんて書いてなくね?
>>601は落ちつくべき。
605nobodyさん:2011/11/18(金) 23:04:14.52 ID:???
涙拭けよ
606600:2011/11/18(金) 23:05:20.43 ID:???
いや、俺が悪いんだよ。
607nobodyさん:2011/11/18(金) 23:25:01.53 ID:tf7WOWeB
PHPでWeb上の画像を取得するには、file_get_contents()以外には
どのようなものがあるのでしょうか?
608nobodyさん:2011/11/18(金) 23:26:24.08 ID:???
たとえばどういう機能がほしいとか、何が不満とか書いてくれないとどうにもならんと思わない?
609nobodyさん:2011/11/18(金) 23:33:45.04 ID:???
>>607
curl
610nobodyさん:2011/11/18(金) 23:41:33.43 ID:???
fopen
611nobodyさん:2011/11/18(金) 23:46:36.76 ID:tf7WOWeB
>>608
すみません
ただ単純に、画像を取得して例えばブラウザに表示させたいと思いまして
自分はcURLを使って全体を取得してテキスト文はDOM使って表示させたのですが、
画像の表示のさせ方が分からなかったもので

612nobodyさん:2011/11/18(金) 23:47:30.32 ID:???
>>611
<img src="DOMで取得したパス">
613nobodyさん:2011/11/18(金) 23:57:18.17 ID:???
ブラウザに表示させたいなら画像データをわざわざ取得する意味なくね?
プロキシみたいなことしたいのかな
614nobodyさん:2011/11/19(土) 00:01:05.04 ID:djjAwZHJ
>>612
なるほど・・・
確かにそうですね
教えてくれてありがとうございます
ちょっと試してみます
615nobodyさん:2011/11/19(土) 00:07:40.97 ID:???
っloadHTMLFile
616nobodyさん:2011/11/19(土) 00:07:46.89 ID:djjAwZHJ
>>613
データベースやディレクトリに保存しようと思いまして
ブラウザは簡単なテスト環境と思いまして
617nobodyさん:2011/11/19(土) 00:10:43.56 ID:???
エロ画像ダウンローダ乙
618nobodyさん:2011/11/19(土) 00:14:21.83 ID:???
話が変わってるワロタ
619nobodyさん:2011/11/19(土) 00:29:41.91 ID:djjAwZHJ
>>617
ハハハ、いや、エロ画像を集めるつもりはないのですが・・・

しかし訳がわからなくなってきました
cURLで取得したHTMLを(CURLOPT_RETURNTRANSFERを使用しているのでファイルには保存していません)、
DOMDocumentにてloadHTMLしてquery('//img/@src')などとしたし、
ブラウザに表示する場合はhttp://hoge.com/を付けるのまでは分かるのですが
こっからどのような処理をすればディレクトリやデータベースに格納できるのでしょうか?
ザッと見、cURLやDOMDocument系にはそのような関数がないように思えるのですが
620nobodyさん:2011/11/19(土) 00:36:38.62 ID:???
>>619
file_get_contents
621nobodyさん:2011/11/19(土) 00:40:35.70 ID:djjAwZHJ
>>620
あぁ、やっぱそうなると>>611で質問したように、
file_get_contents()しかないんでしょうか?
622nobodyさん:2011/11/19(土) 00:43:32.98 ID:???
fopenでもfsockopenでもcURLでもなんでも保存できるだろう
623nobodyさん:2011/11/19(土) 00:52:21.80 ID:???
>>621
file()
624nobodyさん:2011/11/19(土) 00:54:00.85 ID:???
imagecreatefromjpegなりでも使えばいいんでない
625nobodyさん:2011/11/19(土) 01:57:43.95 ID:???
>>621
>>611でブラウザに表示したいなんていうから…
626nobodyさん:2011/11/19(土) 11:06:26.33 ID:???
よそ様から拾ってきたものを自分のサイトで表示したいってパクル気満々だな
627nobodyさん:2011/11/19(土) 12:50:04.81 ID:???
proxyかもしれないじゃん
628nobodyさん:2011/11/19(土) 15:09:54.67 ID:djjAwZHJ
配列に値を格納していて、その中から正規表現等でフィルタリングして
マッチした値を排除するような使い方をしたいのですがどのようにすればいいのでしょうか?
foreach()で値を得て、それらを正規表現で・・・と思ったのですが
$iのように数字を使い、array_slice()を使うのかなとも思いましたが良く分かりませんでした
629nobodyさん:2011/11/19(土) 15:12:40.62 ID:???
>>628
配列内の値が分からないと何も言えないが
preg_match continue
で、ぐぐってみ
630nobodyさん:2011/11/19(土) 15:28:21.89 ID:???
>>629
その場合はarray_slice($arr, $i-1, 1)とかのようにするのでしょうか?
それとも全く別の配列を作成し、マッチしなかったものをその別の配列に入れるのがいいのでしょうか?
631nobodyさん:2011/11/19(土) 15:30:17.28 ID:???
>>630
ID
632nobodyさん:2011/11/19(土) 15:32:54.65 ID:???
>>630
自分は、他人(新人or後任者)が見てもわかりやすいように書いてるから、新しい配列に入れるね
自分一人だけだったら、いろいろなやり方試してみてもいいんじゃない?
633nobodyさん:2011/11/19(土) 16:18:00.10 ID:ZMwiibDD
PHPで、

hoge()[0]

のような書き方はできないのでしょうか?
(hoge()は配列を返す)。

array_shift(hoge())

で、いちおうできるのですが、
ちょっとカッコ悪いので・・・
634nobodyさん:2011/11/19(土) 16:19:02.24 ID:???
$array = array(1,2,3,4,5,6);

foreach($array as $key => $val )
if ($val % 2 == 0)
unset($array[$key]);

print_r ($array);
635nobodyさん:2011/11/19(土) 16:41:28.68 ID:???
>>633
php5.4
636nobodyさん:2011/11/19(土) 16:44:31.71 ID:???
PHP5.4になったらarray()なんてもう二度と書かない
637nobodyさん:2011/11/19(土) 18:58:14.72 ID:X5SG6smt
5.4でできるようになるのか
そういや6.xってどうなったんだ・・・?
638nobodyさん:2011/11/19(土) 19:43:45.93 ID:???
目玉になるはずだった部分があまりにも厄介すぎて頓挫
639nobodyさん:2011/11/20(日) 01:46:04.87 ID:???
6ってもう二年前から声聞いてるが未だに出てこないな
もし、これが企業のプロジェクトだったらマネジメント層全員減給またはクビだぞ
640nobodyさん:2011/11/20(日) 01:57:47.15 ID:???
企業でも年単位の計画でやるような物だから問題ないだろ多分
641nobodyさん:2011/11/20(日) 01:57:57.34 ID:???
トレイトって何?食えるの?
642nobodyさん:2011/11/20(日) 02:00:04.50 ID:???
>>641
神機能
643nobodyさん:2011/11/20(日) 02:11:39.42 ID:???
>>642
神とは思えないんだが

よく設計されたもの以外で使われるとスパゲッティー化されそうで怖い
644nobodyさん:2011/11/20(日) 02:46:59.47 ID:1V6hVVY4
$sql = 'SELECT id FROM table LIMIT 1';
$result = mysql_query($sql);
で、取得したひとつのデータを変数に代入したいのですが
while(mysql_fetch_array($result)){処理}
みたいに書くしかないんでしょうか。
データ一件しかないのにwhileを使うのが気持ち悪いので
他の方法があればそちらを使いたいです。
645nobodyさん:2011/11/20(日) 02:49:07.99 ID:???
公式見て、実装込みのインターフェイスみたいだな、
とおもったら大抵のサイトがそういう説明になってたから理解しにくいものじゃなさそうだね
646nobodyさん:2011/11/20(日) 02:54:04.97 ID:???
>>644
mysql_fetch_rowは?
647nobodyさん:2011/11/20(日) 03:00:08.98 ID:???
>>646
どんぴしゃです。ありがとうございました。
648nobodyさん:2011/11/20(日) 09:20:32.62 ID:???
>>644
データが一件しか無いならループさせなくても変数だけでデータ取れるよ
649nobodyさん:2011/11/20(日) 12:59:03.75 ID:???
>>640
そろそろ…って声聞いて二年経ってんだよ
PHP6.0の開発自体は2005年から開始している
こっちはどこがどう変更されるのかピリピリしてんのによ
もう出すなよ、PHP5.2193くらいまでやればいい
650nobodyさん:2011/11/20(日) 13:01:37.43 ID:???
php6の開発なんていましてないでしょ
php5.5の勘違いじゃないの?
651nobodyさん:2011/11/20(日) 13:42:09.57 ID:???
6 = 5.4
652nobodyさん:2011/11/20(日) 14:50:05.47 ID:???
5.4が6とかwwwwwwwwwww
653nobodyさん:2011/11/20(日) 14:52:32.63 ID:W2VBDeCo
あるリンクからそのページのレスポンスを確認したいと思います
そのリンクが200なのか304なのか、404なのかといった具合にです
その為だけにcURLやfile_get_contents()でページごと取得するのも
無駄だと思いまして
get_headers()というのがあり試してはみましたが、一般的にはこれを使えばいいのでしょうか?
それとももっといい関数やライブラリががあるのでしょうか?
ステータスコードのみ取得して軽いというなものがあれば教えていただきたいです
654nobodyさん:2011/11/20(日) 15:20:15.39 ID:???
PHP6とPHP5.4は違いますよ
655nobodyさん:2011/11/20(日) 16:05:24.08 ID:???
>>653
get_headers() でok
やってることはみんなHEADメソッドで取得してるだけだからね
http://php.net/manual/ja/function.get-headers.php#example-3635
656nobodyさん:2011/11/20(日) 16:30:35.68 ID:???
get_headersはGETなんだけどね
657nobodyさん:2011/11/20(日) 17:25:26.25 ID:???
>>649
どこがどう変更されるかでピリピリしてるのに頓挫したこと知らないとかおかしいんじゃない
658nobodyさん:2011/11/20(日) 17:29:27.82 ID:???
>>649
PHP6.0の開発はとっくに白紙になってますが・・・?
659nobodyさん:2011/11/20(日) 17:33:26.93 ID:???
煽りあいはソース出してやってくれ
660nobodyさん:2011/11/20(日) 17:50:25.85 ID:???
どこが煽りあいなんだろう
661nobodyさん:2011/11/20(日) 18:38:59.27 ID:???
そんな事も調べられないからPHPはバカにされるんだ
662nobodyさん:2011/11/20(日) 19:21:24.75 ID:8eiLpJTF
WEBプログラマー アルバイト 体験者の声
http://buzzbaito.com/e/jt/2-5-22/
663nobodyさん:2011/11/20(日) 19:25:25.11 ID:???
get_headers以外でヘッダを取得できる組み込み関数はありますか?
664nobodyさん:2011/11/20(日) 19:30:43.75 ID:???
PHP使ってる人にとってはかなりの重大ニュースだったからな。知らないのはもぐり
665nobodyさん:2011/11/20(日) 21:03:59.96 ID:hLo6zVzZ
PHPでオークションのようなシステムを作っています
例えば登録商品の締め切り時間が三日後だったとした場合、
三日後にその商品の生存フラグのようなものをオフにしたいです。(フラグはDBに保存されている)

この期限フラグをオフにする処理はどのように実現できるのでしょうか
ユーザーの閲覧やデータの参照ごとに残り時間を確認してフラグチェックを毎回するのは流石に処理が重い気がします。
また、cronなどで自動的に寿命チェックスクリプトを回すのも商品数が増えた場合にパンクしてしまいます。
何かいい方法は無いでしょうか。
666nobodyさん:2011/11/20(日) 21:20:22.93 ID:???
現在時間が締切時間超えてたら操作できないようにすればいいだけでそ
667nobodyさん:2011/11/20(日) 21:21:08.01 ID:???
俺ならフラグ立てないで参照時にチェックする。
たかだか日付の比較程度を心配して、なんの処理が出来るんだっての。
flgだろうが日付だろうが何クロックちがうって程度っすよ。
668nobodyさん:2011/11/20(日) 21:22:34.51 ID:???
>>665

締め切り日時 - 登録日時 = A
現在の時刻 - 登録日時 = B

B >= A なら締め切り
669nobodyさん:2011/11/20(日) 21:40:15.88 ID:???
>>666-668
フラグを使おうとしてたのは期限が残っているアイテムをDBから引っ張って一覧表示するのにDB負荷(メモリ等も)が軽くなるかなとの考えの下でしたが、
time() - 有効期限を事前に計算して生成日時との大小比較を条件にデータ取り出せば良かったですね

ありがとうございます
670nobodyさん:2011/11/20(日) 21:57:23.50 ID:vzLDxTjZ
jQuery.map()
http://api.jquery.com/jQuery.map/
みたいな関数はありますか?
PHPのarray_map()に加え、NULLが返されるとその要素を配列から取り除いてくれるような機能です。
やりたいことは、配列の各要素の文字列を正規表現で抜き出したものに置き換えて、
もしマッチしなかった場合はその要素を配列から取り除きたいのですが
arrayやpregの関数のところを見てもどれがその関数なのかわからなくて。
ひとつの関数では無理で複数の関数を組み合わせるとかforeachを使うとかですか?
671nobodyさん:2011/11/20(日) 22:07:09.83 ID:???
>>670
$a = array(1,null,2);
var_dump($a);
function f($v) {if(null !== $v)return $v;}
$b = array_filter($a, 'f');
var_dump($b);
672nobodyさん:2011/11/20(日) 22:32:27.44 ID:vzLDxTjZ
array_map()で処理(マッチしたら書き換えたのもを返す、マッチしなかったらNULLを返す)をしたあと、
array_filter()でNULLの要素を除去するという
array_map()とarray_filter()との二つの関数を組み合わせないといけないんですねやっぱり
673nobodyさん:2011/11/20(日) 23:33:46.09 ID:???
これも複数の関数といえなくもないけど

$arr = array(1,null,2,null,null,3,4) ;

$res = array_filter($arr, create_function('$val', 'return is_null($val) ? false : $val;'));

print_r($res);

Array
(
[0] => 1
[2] => 2
[5] => 3
[6] => 4
)
674nobodyさん:2011/11/20(日) 23:40:35.18 ID:???
これがCPUもメモリも最小限で効率が良い
function filter($a){
$temp = array();
foreach($a as $v){
if (is_null($v)){
$加工 = 加工;
$temp[] = $加工;
}
}

$a = filter($a);
675125:2011/11/20(日) 23:49:15.90 ID:yTe92qw6
SQLインジェクションについてイマイチよくわかってないのですが
PDOでプリペアドステートメントを使えばとりあえずおkということでいいんでしょうか?
676nobodyさん:2011/11/20(日) 23:49:38.62 ID:???
> http://api.jquery.com/jQuery.map/
を見ていただくとわかると思いますが、jQuery.map()は、
コールバック関数がNULLを受け取った場合(配列の要素がNULLだった場合)
ではなく、
コールバック関数がNULLを返した場合
に、その要素を配列から取り除く機能があります
677nobodyさん:2011/11/20(日) 23:51:16.88 ID:???
>>675
とりあえずじゃなくてちゃんと分かったほうがいいよ
678nobodyさん:2011/11/21(月) 00:12:44.04 ID:???
>>676
jQueryはforで回して、nullじゃなかったら新しい配列に追加してるみたいだよ
679nobodyさん:2011/11/21(月) 00:47:54.10 ID:???
まあ、 ないもんは 無いんだよ。
680nobodyさん:2011/11/21(月) 00:57:37.85 ID:???
s=100
ってかけるようになんないかな将来
681nobodyさん:2011/11/21(月) 00:59:15.93 ID:???
>>680
それ言うなら、
もうコード書かずに動かないかな将来
だろ?
682nobodyさん:2011/11/21(月) 01:13:40.78 ID:???
次にPHPがパクりそうなのって何かある?
683nobodyさん:2011/11/21(月) 01:16:59.48 ID:???
>>682
質問ならID出そうぜw
684nobodyさん:2011/11/21(月) 09:42:24.17 ID:GGnSchRT
$con = new PDO('mysql:host=localhost;dbname=test;charset=utf8', $user,
$pass);
$sql = 'DELETE FROM table WHERE id = :id';
$stmt = $con->prepare($sql);
$stmt->bindParam(':id', $_POST['id']);
$stmt->execute();

この書き方でSQLインジェクションを防げているでしょうか?
685nobodyさん:2011/11/21(月) 10:46:02.15 ID:???
データのインデックスを記録したいのですが、保存するファイル形式が決まりません。
日本語を扱い、かつテキストエディタで直接編集がしたくて、データ1件1行で処理したい。というデータなので
json_encodeは日本語が"\u3042\u3044\u3046\u3048\u304a"とエンコードされてしまうから直接編集の時に困り
serializeとvar_exportは直接編集に不向きで
SQLはテキストエディタで編集出来ません。

json_encode、serializeとvar_export以外に配列のデータを一行に、かつ日本語をそのままで確認出来るテキストに変換してくれる関数はありますでしょうか


又は、"\u3042\u3044\u3046\u3048\u304a"を"あいうえお"と変換するにはどうしたらよいのでしょうか
686nobodyさん:2011/11/21(月) 11:13:26.27 ID:cDijwsFN
phpであるファイルに定義された関数を使いたい時
そのファイルをインクルードするじゃないですか。

classの場合、別のファイルにクラスが書いてあった場合
それを利用するのに特にインクルード的なことは
しなくても良いのですか?
687nobodyさん:2011/11/21(月) 11:17:55.45 ID:???
>>684
はい

>>685
普通にテキストファイルで出力すればいい話でしょうか?


$text = "\u3042\u3044\u3046\u3048\u304a" ;
print mb_convert_encoding(preg_replace("/\\\\u([0-9a-zA-Z]{4})/e", "pack('H*','$1')",$text),"UTF-8","UTF-16");

688nobodyさん:2011/11/21(月) 11:19:55.89 ID:???
689nobodyさん:2011/11/21(月) 11:29:30.33 ID:???
>>685
使った事無いけどyamlとか
690nobodyさん:2011/11/21(月) 12:21:43.64 ID:???
>>685
\uxxxx形式をHTML 数値エンティティ形式に変換してから

$str = "あいう";
$convmap = array(0x0080, 0xffff, 0, 0xffff);
$encoding = "UTF-8";
echo $a = mb_encode_numericentity($str, $convmap, $encoding);
$convmap = array (0x0, 0xffff, 0, 0xffff);
$b = mb_decode_numericentity($a, $convmap, $encoding);
echo $b;
691nobodyさん:2011/11/21(月) 15:02:41.44 ID:???
オブジェクト指向ってあるじゃないですか。
あれってイメージとしては、
インターフェースをつかさどるファミコンという親クラスがあって
そこにカセットというゲームシステムのつまった子クラスを刺す感じ?
で、なんやったらそのカセットにも拡張スロットが付いてて
カセットにいろいろなカセットを差したら、
同じゲームシステムで色々なキャラクターが楽しめるみたいな感じ?
で、別のゲームシステムのカセットにそのキャラクターカセット差したら
そのキャラクターで別のゲームシステムが遊べるみたいな感じ?

692nobodyさん:2011/11/21(月) 15:09:10.30 ID:???
>>691
ってかスレタイ嫁
>カセットにいろいろなカセットを差したら、
イミフ"な感じ?"
693nobodyさん:2011/11/21(月) 15:28:44.14 ID:???
>>691
スレチ
もうちょっと勉強しなおせ
694nobodyさん:2011/11/21(月) 15:37:00.68 ID:???
ファミコンの頃だとダビング機ぐらいしか思いつかんなぁ。カセットにカセット
695nobodyさん:2011/11/21(月) 15:39:32.40 ID:???
スーファミでゲームボーイができるあれ
696nobodyさん:2011/11/21(月) 15:44:45.94 ID:???
ファミコン世代も老後の楽しみにプログラミングをする時代になったか
697684:2011/11/21(月) 16:31:37.44 ID:???
>>687
ありがとうございます。安心しました。
698nobodyさん:2011/11/21(月) 16:36:48.44 ID:???
>>696
そらそうよ
699nobodyさん:2011/11/21(月) 16:46:49.12 ID:???
今からはじめるファミコンプログラム
700nobodyさん:2011/11/21(月) 18:11:05.02 ID:p9LTZGBk
あるスクリプト中にフラグを使う部分があったとします
foreach()内で、まずデータベースからフラグを確認し、TRUEであれば未処理、FALSEであればフラグを立てるとします
例えば
foreach ($abstractlinks as $link)
{
$flag = $prowl->flagCheck($link);
//If we have visited or scheduled to visit
if ($flag !== 0) {
continue;
}
$prowl->raiseFlag($link);
}
のようにです
この場合、2つの各関数毎に同じデータベースに接続しないといけませんが、
無駄なように思います
このような場合どのようにすればいいのでしょうか?
キャッシュというのもraiseFlag()にて更新を用いるので不可能なような気がします
効率的なDB接続法を教えていただけないでしょうか?
701nobodyさん:2011/11/21(月) 18:13:41.26 ID:???
オークションの人こん
702nobodyさん:2011/11/21(月) 18:16:12.29 ID:???
>>700
一度に必要な全部のデータをもってきてforeachして、
updateするIDをarrayに貯めといて、後でupdateじゃだめなの?
703nobodyさん:2011/11/21(月) 18:29:21.66 ID:???
>>700
コネクションを保持しておく関数あるいはクラスを作って
コネクションプーリングするのが定石
必要なときに取得、不要になったら切断せずに返却、という流れで
704nobodyさん:2011/11/21(月) 18:36:17.97 ID:372LMnzX
すべてのページに共通して使いたいコードがあります。
index.htmlならAコードを表示させ、それ以外のURLならBコードを表示させるというように
index.htmlとそれ以外のhtmlで表示を変えたいです。
使われるURLによって表示の振り分けはできるのでしょうか。

振り分けについてはユーザーエージェントで振り分けることができるくらいの理解度しかありません。
705nobodyさん:2011/11/21(月) 18:38:57.13 ID:???
>>704
require phpでggr
706nobodyさん:2011/11/21(月) 18:40:05.17 ID:p9LTZGBk
>>702
ご回答ありがとうございます
ごめんなさい、自分の実力がないせいかイメージが沸きませんでした

リンクを100個とか入れた配列があり、
それを0:未訪問(デフォルト)、1.訪問予定、2.訪問済みのようにフラグを立てようと思っています
で、それぞれをまずフラグの値を確認し、0なら1に変更、2なら無視といったことをしたいと思っています

このような場合は配列に貯めて一気に更新させるにはどのようになりますか?

>>703
ご回答ありがとうございます
PDOを自分は使っているのですが、
$db = new PDO($dsn, $username, $passwd, $options);
を格納した関数を用意するだけでいいのでしょうか?

>必要なときに取得、不要になったら切断せずに返却
というのが自分にはスクリプトが浮かびませんでした
707nobodyさん:2011/11/21(月) 18:43:27.40 ID:???
>>706
>このような場合は配列に貯めて一気に更新させるにはどのようになりますか?
それくらいupdateでググってみたら?
708nobodyさん:2011/11/21(月) 18:46:26.37 ID:???
効率的な処理を考えてふらふらしてる暇があったらちゃんと動くコード書いてくれ
709nobodyさん:2011/11/21(月) 18:53:06.18 ID:???
>>706
接続が一つだけでいいなら
function get_connection() {
    static $pool;
    if (!$pool) { $pool = /* 接続 */; }
    return $pool;
}

ちなみにフラグを操作するだけだったらこれで済む
UPDATE table SET flag = 1 WHERE flag = 0
710nobodyさん:2011/11/21(月) 19:00:15.72 ID:372LMnzX
>>705
include、requireも理解しています。
使われるURL(ファイル)で振り分けができるかどうかです。

現在のファイル位置がindex.htmlの場合は
Aコードを表示

現在のファイル位置がindex.html以外になら
Bコードを表示

のように振り分けたいです。
711nobodyさん:2011/11/21(月) 19:03:57.56 ID:???
>>710
getenv('REQUEST_URI')で振り分けたいってかんじ?
712nobodyさん:2011/11/21(月) 19:21:23.10 ID:???
>>711
REQUEST_URIでも絶対パスでもいいので
位置つかんで該当する場所ではコードを変えるようにしたいです。
713nobodyさん:2011/11/21(月) 19:22:16.51 ID:372LMnzX
>>712
ID表示わすれてました。もうしわけない
714nobodyさん:2011/11/21(月) 19:36:20.75 ID:cDijwsFN
SELECTボックスで作成するドロップダウンがあるとします。

10月から数えて現在までの間を1ヶ月ごと選択できて
現在だと

2011月10月▼
2011月11月

と表示され、月が増えるごとに

2011月10月▼
2011月11月
2011月12月
2012月1月
2012月2月

と増えていく処理を作成したいのですが、
単純に30日ごとに増やせばいいというものでもなく
どう計算、処理していいか分かりません。

ご指導お願いします。

715670:2011/11/21(月) 20:02:04.04 ID:???
PHPにはそういった組み込み関数は用意されていないんですね。やっぱり
ひとつの関数では無理で複数の関数を組み合わせるとかforeachを使うとか
になるんですね。どうもありがとうございました
716nobodyさん:2011/11/21(月) 20:03:35.67 ID:???
>>712
え、そこから先がわからないと言っている?
717nobodyさん:2011/11/21(月) 20:06:55.30 ID:???
1、日付型にして計算してるんだったら、
 DateTimeだったら 日を1とかにしといて  DateInterval('P1M') やら modify('+1 month')
 昔の方法だったら mktime( 0,0,0,$m+$i,1,$y)とか

2、 年と月を別の変数にして月足していって12超えたら年繰上げ
718nobodyさん:2011/11/21(月) 20:31:19.98 ID:???
>>715
どうも言い回しが気になるんだけど、Javascriptにもそういった組み込み関数はないよ
719nobodyさん:2011/11/21(月) 20:32:24.70 ID:372LMnzX
>>716
すまん。甘えたわ。後は調べればわかります。
ありがとうございました。
720nobodyさん:2011/11/21(月) 20:35:07.04 ID:???
>>718
もちろんJavascriptとアホほど組み込み関数を用意しているPHPとは比較していません

721nobodyさん:2011/11/21(月) 20:39:50.46 ID:???
似てるようで微妙に違う組み込み関数が探しきれないほどありますがjQuery.map()のような関数はないんですね
ってだけで他意はありません
722nobodyさん:2011/11/21(月) 20:42:24.85 ID:???
array_filterで代用できない?

723nobodyさん:2011/11/21(月) 21:25:32.28 ID:???
>>714
日数で足すな。月数を足してけ
やりかたはこの2ページ見ればできる
http://www.php.net/manual/ja/datetime.add.php
http://www.php.net/manual/ja/dateinterval.construct.php
724nobodyさん:2011/11/21(月) 21:26:41.28 ID:???
>>722
既出
725nobodyさん:2011/11/21(月) 21:39:51.21 ID:???
>>721
preg_filterは?
726nobodyさん:2011/11/21(月) 21:40:21.33 ID:cDijwsFN
>>723
date_interval_create_from_date_string....

長い…
727nobodyさん:2011/11/21(月) 22:39:24.86 ID:vmm+j8qy
Smarty2での質問です。

{foreach from=$hoge item=val}
{php}{/php}
{/foreach}

というテンプレートで、
{php}{/php}内でvalにアクセスするには
どう書けばいいですかね?
728nobodyさん:2011/11/21(月) 22:42:44.69 ID:???
テンプレが読めませんかね?
729nobodyさん:2011/11/21(月) 22:50:27.82 ID:???
{php}
print_r($this->get_template_vars('val'));
{/php}
スレ違い
730nobodyさん:2011/11/21(月) 23:17:35.15 ID:???
まだ2使ってんのかよさっさと3にしろや
731nobodyさん:2011/11/22(火) 01:05:08.33 ID:???
smartyのテンプレは無駄が多すぎるな
<?php foreach ($hoge as $val) : ?>
<?php echo $val; ?>
<?php endforeach; ?>
でええっちゅうに
732nobodyさん:2011/11/22(火) 01:29:26.20 ID:???
foreachしか使わない初心者にはお似合いかもね
733nobodyさん:2011/11/22(火) 01:52:41.16 ID:???
ZendFrameworkとSmartyの相性の悪さが異常だということをわかってくれない
734nobodyさん:2011/11/22(火) 07:49:03.06 ID:???
シスうんこ居る?
735nobodyさん:2011/11/22(火) 08:51:45.91 ID:???
スマーティ使ってて、
なんて便利なんだ!
とか
これ考えたやつすげえ!
とか
感じたことないんだが。
736nobodyさん:2011/11/22(火) 09:13:09.27 ID:???
確かに。
<?php include("header.html");?>で済む話だな。
737nobodyさん:2011/11/22(火) 09:22:29.01 ID:???
機能理解してない上にスレ違いの話を続けるバカか
738nobodyさん:2011/11/22(火) 10:55:24.01 ID:???
制作とエンジニアの切り分けは楽になる。マジで。
ま、どのテンプレートエンジンもそうだけど、
PHPベタ書きよりはいい
739nobodyさん:2011/11/22(火) 12:55:43.29 ID:spTidUMW
>>738
うん、だからスマーティを習得しようとしたとき、
スマーティに感動したというより
MVCに感動した
740nobodyさん:2011/11/22(火) 13:03:39.72 ID:???
smartyはMVCでいうところのVだけだよね。
MとCは分離できてない。
741nobodyさん:2011/11/22(火) 13:07:08.85 ID:OIOakh7V
馬鹿にも解りやすいように作ってあるんだから、
そうそう凄いって事はないだろ。

テンプレートエンジンでこれはすごいとかあるの?
742nobodyさん:2011/11/22(火) 13:57:42.44 ID:???
>>741
結局、制作と開発の分離だけだとは思ってる。
複数人開発でも、ひとりでも、その部分は相当楽になった。
<?php ってかくか、{って書くかで、HTMLソースの見やすさは全然違うけどな。
ま、そこは慣れか。
743nobodyさん:2011/11/22(火) 14:11:52.71 ID:???
smartyは全然賢くないところが問題だ
ただのオーバヘッド発生源
744nobodyさん:2011/11/22(火) 14:27:17.60 ID:64j3oBDQ
EC2でAmazon Linuxを使ってますが、PHPを使う度に
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/json.so' - /usr/lib64/php/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown on line 0
と警告が出ます。
直し方を教えて下さい
745nobodyさん:2011/11/22(火) 14:40:40.14 ID:???
参考になれば
http://d.hatena.ne.jp/jksy/20110128/1296227136
コレで治るかは分からんが
746nobodyさん:2011/11/22(火) 16:02:57.23 ID:64j3oBDQ
PHP全部入れ直したら直った
最新のPHPを入れた後に、pecl install jsonをするとおかしくなるようだ
PHPのセットアップに昔作ったスクリプトを使ったのが敗因か
747nobodyさん:2011/11/22(火) 17:01:49.19 ID:???
関数で値(配列)を作って
関数から別の関数に値を渡して
その関数で渡された値を処理して、また別の関数に渡して・・
としていると、今関数に渡された値(配列)にどのようなデータ、配列のキーが入っているのかが分からなくなる事がよくあります
こういう状態を防ぐのによい方法がありましたら教えて欲しいです。
748nobodyさん:2011/11/22(火) 17:06:41.84 ID:???
>>1
749nobodyさん:2011/11/22(火) 17:36:21.47 ID:???
>>747
そんなあなたはクラスを覚えなさい
750nobodyさん:2011/11/22(火) 17:41:38.13 ID:???
求めてるものかどうかは分からんが、リファレンスを使う
よけいにややこしくなる可能性も大w
751nobodyさん:2011/11/22(火) 18:12:58.70 ID:???
一般的には常識とされている普遍的なテーマ、例えば
 真実は一つだけ
 怒りは自然な感情
 戦争・テロは無くならない
 死刑には殺人の抑止力がある
 虐められる側にも虐めの原因がある
 自己チューな人間ほど自己愛が強い
などの命題の間違いとその論拠を解説
義務教育では絶対教えない最新合理主義哲学
   感情自己責任論
752nobodyさん:2011/11/22(火) 18:19:13.97 ID:???
ねこをなでたら爪でひっかかれた
まで読んだ
753nobodyさん:2011/11/22(火) 18:25:47.38 ID:/8xSqwNz
現在日時の年、月を除いたタイムスタンプをミリ秒単位でほしいです。
ex.現在の時間が2011/11/22 18;24;30なら22日18;24;30のミリ秒のタイムスタンプがほしいです。
どのようにすればよいでしょうか?
754nobodyさん:2011/11/22(火) 18:36:13.34 ID:t9MFvl4K
ミリ秒 php でググるくらいの努力してみ?
microtimeかなんかがすぐ出てくる
755753:2011/11/22(火) 18:42:27.85 ID:/8xSqwNz
調べ始めはmicrotimeとmktime を組み合わせたらいけるような気がしてやってたんですが、以下で詰まっています。

ceil(microtime(true)*1000); で年月含めたタイムスタンプ(ミリ秒)
を取った後年月以外の値を0にした タイムスタンプ(ミリ秒)を用意して 前式から引き算で
目的の年月を含まないタイムスタンプ(ミリ秒)を取得しようとしてました。

しかし年月以外の値を0にした タイムスタンプ(ミリ秒)の取得ができません。
mktime(0, 0, 0, date("n"), 0); で 年月以外の値を0にした タイムスタンプ(秒)
なら取れるのですが、ミリ秒ではとり方がわからないです。
756nobodyさん:2011/11/22(火) 18:54:25.87 ID:???
>>753
すいません日本語を整理して分りやすく説明してください
757nobodyさん:2011/11/22(火) 18:56:59.35 ID:???
>>755
float()使って差とれば
758753:2011/11/22(火) 19:01:51.25 ID:/8xSqwNz
すみません。整理します。
まずほしいタイムスタンプは、現在日時より年、月を除いたタイムスタンプです。
年月を含めたタイムスタンプだと桁数の関係上不都合があります


ex.1970年1月1日午前0時のタイムスタンプ(ミリ秒)が
102241660710だとします。
ほしいタイムスタンプはこのタイムスタンプから
1970年1月0日0時のタイムスタンプを除いた値です。
1970年1月0日0時のタイムスタンプが102240000000だとすると
求めるタイムスタンプは102241660710-102240000000=1660710です。

759nobodyさん:2011/11/22(火) 19:15:26.51 ID:???
>>757で取得したミリ秒を足せばいいんじゃない
760753:2011/11/22(火) 19:19:02.13 ID:/8xSqwNz
すみません。floatで目的の値を取る方法がわかりません。
式で書いていただけませんか?お願いします。
761nobodyさん:2011/11/22(火) 19:30:59.53 ID:???
ごめんfloorだった
762nobodyさん:2011/11/22(火) 19:32:17.62 ID:???
1970年1月1日 0:00のタイムスタンプは0です。 そこからの秒数ですから。
桁数の問題で下駄履かせるなら、もっと最近じゃないと

桁数の問題として 何桁にしたいの?
数値が秒なんだから 7桁  9999999 までにしたいとして も 115日しか取れないよ?
763nobodyさん:2011/11/22(火) 19:33:24.23 ID:???
現在日時より年、月を除いたタイムスタンプ

↑これ意味がよく分かりません
764nobodyさん:2011/11/22(火) 19:35:04.85 ID:/8xSqwNz
桁数は10桁です。10に足りない場合は左詰めで0を加えて10桁にします。
よろしくお願いします。
765nobodyさん:2011/11/22(火) 19:42:35.73 ID:/8xSqwNz
>>761
$date = floor(microtime(true)*1000) - floor(mktime(0, 0, 0, date("n"), 0)/1000);
ですか?
ありがとうございます。試してみます。
766nobodyさん:2011/11/22(火) 19:53:12.40 ID:???
$mtime = microtime(true);
$time = floor($mtime);
$date = mktime(date('H', $time), date('i', $time), date('s', $time), 1, date('d', $time), 1970);

echo ceil(($date + $mtime - $time) * 1000);

こうじゃね多分
767nobodyさん:2011/11/22(火) 20:01:05.46 ID:???
>>765
現在時刻から 0時0分0秒の0月の同日  つまり先月の同じ日(一ヶ月まえですらない)を引いてて意味分かんない数値になってるし。

みんなが出してくれた式の意味分かんないんじゃない?

768nobodyさん:2011/11/22(火) 20:10:41.90 ID:???
>>767
× 0時0分0秒の0月の同日  つまり先月の同じ日
○ 0時0分0秒の0月の同日  つまり昨年12月の同じ日

mktime(0, 0, 0, date("n"), 0)は
× 0時0分0秒の0月の同日
○ 0時0分0秒の同月の0日  つまり先月末
769nobodyさん:2011/11/22(火) 20:11:36.29 ID:???
何これ頭コンガラガルわ
770nobodyさん:2011/11/22(火) 20:24:31.09 ID:???
つまり、その日の始まりのタイムスタンプを出せばいいだけってことなんだよな?
771nobodyさん:2011/11/22(火) 20:27:10.56 ID:???
その月の始まりからのタイムスタンプをミリ秒でってことだと思うよ
772nobodyさん:2011/11/22(火) 20:29:05.97 ID:/8xSqwNz
>>771
その通りです。説明していただきありがとうございました。
>>765ではだめでした。。すみませんがご教授ください
773nobodyさん:2011/11/22(火) 20:38:41.35 ID:???
>>772
両者とも整数部の単位は秒
$milli_sec = ceil((microtime(true) - mktime(0, 0, 0, date('n'), 0)) * 1000);
774nobodyさん:2011/11/22(火) 20:40:07.47 ID:???
>>772
>>766は?
775nobodyさん:2011/11/22(火) 20:53:22.39 ID:???
>>773
date_default_timezone_set('UTC');
$milli_sec = ceil((microtime(true) - mktime(0, 0, 0, date('n'), 1)) * 1000);

じゃない?
776753:2011/11/22(火) 20:58:18.67 ID:/8xSqwNz
>>766,775さんの式でできていました。
ありがとうございました!
777nobodyさん:2011/11/22(火) 23:36:59.19 ID:L81haohX
komodo editが上級者向けって本当ですか?
ttp://demo.phpbeginners.net/setup2/editor/
778nobodyさん:2011/11/22(火) 23:56:27.54 ID:???
>>777
コドモ向けだろ?













って返信欲しかったんだよな?ダヨナ?
779nobodyさん:2011/11/23(水) 00:33:07.96 ID:???
leap time セットしたらphpのmake testでtest failerおおすぎなんだけど
閏秒は無視したほうが良いのだろうか?
780nobodyさん:2011/11/23(水) 03:46:05.98 ID:???
>>777
一応破線は引いてあるけど非推奨にEclipseがあるのは理解できない。
781nobodyさん:2011/11/23(水) 03:53:16.90 ID:???
>>777
男は黙ってvimだよな
782nobodyさん:2011/11/23(水) 04:00:07.99 ID:???
>>781
viは出すな。Emacsとの宗教戦争になるwww
783nobodyさん:2011/11/23(水) 06:59:51.55 ID:???
vim使うと最後に改行ついちゃうじゃん、なんて言われたことがあるよ。
うん、ファイルだからね、と返したらハテナついてたけどめんどくさいからほっといた
784nobodyさん:2011/11/23(水) 09:00:34.23 ID:???
男は黙ってedline
785nobodyさん:2011/11/23(水) 09:54:41.56 ID:???
たまに環境設定してない状況でedが起動してしまうことあるな
ありゃ混乱するw
786nobodyさん:2011/11/23(水) 10:41:12.32 ID:dmtpqfj9
nanoだろ普通

>>780
初心者向けとしてNGなら納得はできるな
787nobodyさん:2011/11/23(水) 10:45:27.92 ID:pg1I2OrG
windows + apache2.2 + php5.3で
localhost/以下はモジュールで動かせました
localhost/cgi-bin/以下はcgiとして動作するようにしたいのですが
ruby,python,perlは動くのですがphpだとソースコードがそのまま表示されたりページを開くたびにソースコード自体がダウンロードされたりします
マニュアルやら検索でヒットしたページの通りにやってますが上手く来ません
モジュールとCGIを両方使う正しいapacheの設定方法を教えて下さい
788nobodyさん:2011/11/23(水) 10:52:46.68 ID:dmtpqfj9
スレチ
789nobodyさん:2011/11/23(水) 11:22:02.38 ID:???
var_dump(strpos('(',"123()"));
falseになるんだけどどうしたらマッチするようになりますか?
790nobodyさん:2011/11/23(水) 11:24:55.01 ID:???
>>787
CGIで動作させるためには拡張子をCGI扱いにするかファイルの拡張子をCGIに変更しないと無理ですよ。
またはディレクトリ毎に設定するか。
あとは自力でどうぞ!
791nobodyさん:2011/11/23(水) 11:26:47.32 ID:???
>>789
あ、引数反対かw
792nobodyさん:2011/11/23(水) 13:35:17.80 ID:pg1I2OrG
>>790
そのへんはマニュアルや検索で十分見て試したので知ってます
793nobodyさん:2011/11/23(水) 13:49:45.09 ID:???
>>792
どっちか行ってこいPHP関係ない

Apache統合スレ 11 (HTTPServer以外も含む)
http://hibari.2ch.net/test/read.cgi/mysv/1286137109/
Apache関連 Part11
http://hibari.2ch.net/test/read.cgi/unix/1222729860/
794nobodyさん:2011/11/23(水) 13:55:13.49 ID:???
>マニュアルやら検索でヒットしたページ
の内容書かないから、
こっちが答えても片っぱしから知ってますと言われるだけだし
答えるだけ無駄な気がするw
795nobodyさん:2011/11/23(水) 14:40:47.62 ID:???
XAMPP使いがたむろってるスレで聞いても答えられる奴なんていねえよ
796nobodyさん:2011/11/23(水) 14:44:51.23 ID:???
だいたい、そのソースがcgiなのかphpなのかを
鯖から見てどうやって判別するんだよって話だな
797nobodyさん:2011/11/23(水) 14:56:29.71 ID:???
>>796
手軽なのはやっぱり拡張子でわける方法だよね。
試したこと無いけど,htaccessでAddTypeで切り替える?

>>786
>初心者向けとしてNGなら納得はできるな
でもそれ上級者とかプロ向けとかも書かれている。
そのプロ向けのZendStudioなんてプロ向けと言うよりキワモノ向けの気がする。
798nobodyさん:2011/11/23(水) 14:59:02.30 ID:???
みなさんってデバッカは何使っている?
Zend Debbuger?xdebug?

自分は現在はxdebugを利用している。
799nobodyさん:2011/11/23(水) 15:17:05.82 ID:???
>>421
$data = file("対象ファイル");
foreach ($data as $line) {
  echo rtrim($line) . "\n";
}

いまさらだけどね。
最速かどうかはわからん。
800nobodyさん:2011/11/23(水) 15:25:54.18 ID:???
hahaha

$a="〜";
$b=file($a,FILE_IGNORE_NEW_LINES);
$c=implode("\n", $b);
801nobodyさん:2011/11/23(水) 15:32:10.45 ID:???
>>798
var_dump();
echo 'passed check point ?'; // ? は適当な数字
だけですましてる。
802nobodyさん:2011/11/23(水) 15:39:10.42 ID:???
FILE_IGNORE_NEW_LINESか、覚えとこ。
803nobodyさん:2011/11/23(水) 15:53:08.82 ID:???
>>801
Xdebug使ってみなよ。
var_dump()をものすごく綺麗に生成して表示してくれるから。
804nobodyさん:2011/11/23(水) 19:33:34.32 ID:???
【OS名】windows 7 32-bit
【PHPのバージョン】5.3.8 (XAMPP 1.7.7)
【連携ソフトウェア】MySQL
【質問内容】
基本的なことですが、
PHPで生成されるウェブサイトを表示したユーザーには
PHPのソースが見えることはありませんか?
障害発生時でも見えませんか?

言うまでもありませんが、変数名やデータベース名などが見えると
セキュリティ上まずいので。
805804:2011/11/23(水) 19:34:03.70 ID:9QlOj3Cf
age忘れていました。
806nobodyさん:2011/11/23(水) 20:18:11.71 ID:???
>>804
人為的ミス、サーバーのアップデート時とかCGIだとパーミッション設定ミスなどで
ソースが見れたケースは過去に何度か経験あるので絶対に見れないとは言わない。
それよりもエラー表示を隠し忘れていて情報晒しているサイトならよくみかけるw
807804:2011/11/23(水) 20:53:18.61 ID:9QlOj3Cf
>>804
ミスやセキュリティホールは仕方ないですね。
仕様では「見えない」と承知しました。
ありがとうございます。
808nobodyさん:2011/11/23(水) 21:21:22.49 ID:???
ちょw
そんな仕様ない
「見えない」ように鯖で設定しないとダメ
809nobodyさん:2011/11/23(水) 21:29:56.02 ID:???
>>804
見えたらまずいようなものはドキュメントルートに置くなっ!!!!!!!!!!!
810804:2011/11/23(水) 21:34:21.21 ID:9QlOj3Cf
>>809 >>808
hoge.php
で生成されたページを表示したいが、ソースは見せたくないときは
hoge.phpを見えない場所に置いてページを表示させるには
どのようにするのが適切でしょうか。
811nobodyさん:2011/11/23(水) 21:42:14.31 ID:???
>>810
フレームワーク使う
812nobodyさん:2011/11/23(水) 21:43:23.90 ID:???
禅問答のように思えているのかもしれないけど、
公開ディレクトリにあるスクリプトは非公開ディレクトリのスクリプトを読み込むことができるので。
813nobodyさん:2011/11/23(水) 21:45:24.00 ID:???
>>808>>809もセキュリティー側に関してはド素人だと言うことがよくわかりますね。
問題は人為的なミスなどって考えないのかな?

それと
>見えたらまずいようなものはドキュメントルートに置くなっ!!!!!!!!!!!
レンタルサーバによってはそのFTPで接続できるのがそのドキュメントルート以下って事もあることを理解できないのかな?
814804:2011/11/23(水) 21:50:51.45 ID:9QlOj3Cf
>>812
hoge.phpから../mienai/mienai.phpを実行すればいいわけですね。

>>811
すみません。ピンとこないので精進します。

>>813
そういう仕様のサーバもありそうですね。
815nobodyさん:2011/11/23(水) 21:51:41.50 ID:???
それを言ったら
管理できる人間はアクセスして盗み見ることができるからソースコードを暗号化しないといけないな
キリがない事は言わないように
816nobodyさん:2011/11/23(水) 21:55:17.36 ID:???
>レンタルサーバによってはそのFTPで接続できるのがそのドキュメントルート以下って事もあることを理解できないのかな?

kwsk
817nobodyさん:2011/11/23(水) 21:55:32.44 ID:???
>>813
そのレンタルサーバを使うのがよくない。

>>815
ヒューマンエラーによる問題発生時にいかに被害を抑えられるかという話だろ
818804:2011/11/23(水) 21:56:50.89 ID:9QlOj3Cf
>>808
サーバで「見えない」設定をすれば見えない仕様ということですね。

Apacheのhttpd.confに
AddType application/x-httpd-php .php
と書いておけば「ソースは見えない」という意味ですよね?
819nobodyさん:2011/11/23(水) 21:59:08.55 ID:???
>>818
おいw
820nobodyさん:2011/11/23(水) 22:00:03.45 ID:???
>>817
レンタルサーバでpublic_html外に置けないなんて無料サーバぐらいじゃね
あなたは無料サーバしか使ったことないような人?
821819:2011/11/23(水) 22:01:07.48 ID:???
817じゃなくて>>813宛て
822nobodyさん:2011/11/23(水) 22:09:21.73 ID:???
>>820
サーバの仕様による。
そんなことも知らないの?
823nobodyさん:2011/11/23(水) 22:11:13.17 ID:???
>>821
アンカー一つまともにつけれない君の書き込みの何処を信用しろと?
この状態を勝手に推測すると
>>819=>>820?
で、819って名前の所に書いてあるのは実は820って書くつもりだった?

どっちにしてもおまえは馬鹿だと言うことは理解できた。
824nobodyさん:2011/11/23(水) 22:12:12.44 ID:???
825nobodyさん:2011/11/23(水) 22:15:05.66 ID:???
レンサバの話のまとめ


・ドキュメントルートに置くのは無駄派と有効派の戦い

続き再開

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
826nobodyさん:2011/11/23(水) 22:18:58.55 ID:???
>>825===>>819必死に話をそらして必死だな。

直接ファイルを覗いてほしくない場合は.htaccessでdeny from allを使っておけ。
でも.htaccessが使えるサーバかどうかもサーバのようによって違うから注意。

エラーは非表示にしておけ。
827nobodyさん:2011/11/23(水) 22:19:42.24 ID:???
>>823
はい、ではドキュメントルートの上に置かない方法を書いてください
もちろん書けますよね
よろしくお願いしますね^^
828nobodyさん:2011/11/23(水) 22:21:41.21 ID:???
>>826
へぇ〜ドキュメントルートの上に置くのはダメでhtaccessだとOKなんですね
後、やたら認定してるのは自分に味方を付けないと心細い証拠かね?
829804:2011/11/23(水) 22:22:31.10 ID:9QlOj3Cf
>>826
やはりエラーが非表示は基本ですか。

Notice: Undefined index: number in C:\xampp\htdocs\hoge.php on line 2
Notice: Undefined index: name in C:\xampp\htdocs\hoge.php on line 3
Notice: Undefined index: nyukin in C:\xampp\htdocs\hoge.php on line 4
Notice: Undefined index: zandaka in C:\xampp\htdocs\hoge.php on line 6
などと表示されると別のところからPOSTされて残高を勝手に増やされそうな
気がしたので。
830nobodyさん:2011/11/23(水) 22:24:48.66 ID:???
ひとり必死な馬鹿がいるwww
それはアンカーすらまともにつけれないアホ。

>後、やたら認定してるのは自分に味方を付けないと心細い証拠かね?
もうばれて必死www

>へぇ〜ドキュメントルートの上に置くのはダメで
駄目とは一言も書かれてない気がする。
妄想癖がつよい人みたい。
831nobodyさん:2011/11/23(水) 22:27:14.27 ID:???
>>829
テスト環境は表示で良いんだよ。
ただ本番サーバは非表示にしてエラーはファイルとしてログ出力するようにしておく。

>Notice: Undefined index
>などと表示されると別のところからPOSTされて残高を勝手に増やされそうな
wwwww
もう駄目としか・・・・
832nobodyさん:2011/11/23(水) 22:28:26.78 ID:???
>>829
Notice: Undefined indexがでるソースを書いている時点でもう馬鹿としか言いようがない。
しっかりチェック処理しろよww
833804:2011/11/23(水) 22:32:44.93 ID:9QlOj3Cf
>>831-832
ありがとうございます。
その前のページ(html)からpostされたデータを処理するphpですが、
PHPだけで実行するとそうなりました。
834nobodyさん:2011/11/23(水) 22:35:55.24 ID:???
>>833
>その前のページ(html)からpostされたデータを処理するphpですが、
>PHPだけで実行するとそうなりました。
ならねーーーーよ。
しっかりとチェック処理してない証拠。
最低限isset()は使ってチェックしろよ。

835804:2011/11/23(水) 22:41:32.24 ID:9QlOj3Cf
>>834
入力値のチェックですね。
まずは動くかどうかというレベルなので…
これから入れます。
836804:2011/11/23(水) 22:42:00.79 ID:9QlOj3Cf
>>834
入力値のチェックですね。
まずは動くかどうかというレベルなので…
これから入れます。
837nobodyさん:2011/11/23(水) 22:42:15.72 ID:???
質問です。

自分がphpで作成したwebページで、parse_ini_fileを使って、
hoge.iniというファイルから設定データを読みこんでいます。

hoge.iniを変更しても、時々parse_ini_fileで変更前のデータが読まれることがあります。

どのような原因が考えられるでしょうか?また対処方法はありますか?

よろしくご教示お願いいたします。

838837:2011/11/23(水) 22:48:06.53 ID:x/DZrHIk
ID出し忘れました
839nobodyさん:2011/11/23(水) 23:16:57.55 ID:???
>>837
キャッシュされる仕組みが入っているとか
840nobodyさん:2011/11/23(水) 23:51:05.42 ID:???
時々なんて動作をするとは思えないのでサーバー側ではなくクライアント側のキャッシュではないだろうか
841nobodyさん:2011/11/24(木) 00:26:28.39 ID:???
関数の引数について質問です。
デフォルト値が決まっている引数が沢山ある関数、例えばmktimeの様な関数は
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
後の方にある引数を指定だけ指定したくてもそれが出来ずに、引数を全部指定する必要がありますよね。
この場合は$is_dstだけ指定したい時があっても、第一引数から順番に指定しなければいけません。

この場合は、引数を配列にして
mktime(array("is_dst"=>1));と指定出来たら順番を気にする事無く便利だと思い、
自作関数の引数はこの配列のタイプで書こうかな。と思っているのですが、この方式の欠点というのがあれば教えて欲しいです。

組み込み関数でmktime(array("is_dst"=>1));の様な指定が出来る関数は(ほぼ?)無いと思うのですが
この方式には何か欠点があるのでしょうか。
842841:2011/11/24(木) 00:28:10.08 ID:FvXT6b8c
ID出し忘れました
843nobodyさん:2011/11/24(木) 00:37:52.27 ID:???
JavaScriptではよく見る手法だがPHPではあんまみないな
http://jp2.php.net/manual/ja/ref.funchand.php
可変長引数でうまくやってる感じはする
844nobodyさん:2011/11/24(木) 00:40:12.02 ID:???
jsだと["key":"value"]で配列が書けるけど、phpだとarray("key"=>"value")で6バイト増えるからかな
845nobodyさん:2011/11/24(木) 00:45:00.49 ID:???
>>844
key:value形式にするなら{}こっち使え。[]使うな。
846nobodyさん:2011/11/24(木) 00:45:02.73 ID:???
まぁだいたい飛ばす引数にnullいれとけばイイいい関数が多いしな
たいして指定も気にならない
mktimeのis_dstに限っちゃ5.1から廃止されてるしな
847nobodyさん:2011/11/24(木) 00:47:35.39 ID:???
別途setSummerTime(true)って関数作ればいいんじゃね
848nobodyさん:2011/11/24(木) 00:58:16.54 ID:???
>>841
しいて言うなら名前が強制されるところかなぁ
849nobodyさん:2011/11/24(木) 05:38:33.55 ID:???
サンプルコードに
$msg .= " File Size: " . @filesize($upload_name);
という記述があったのですが、filesizeは@なんて付けると
phpマニュアルには載ってません。
$msg .= " File Size: " . filesize($upload_name);でも
問題なく動いてます。
@は何のためについているのですか?
850nobodyさん:2011/11/24(木) 05:39:58.14 ID:???
>>1
851nobodyさん:2011/11/24(木) 11:24:33.95 ID:???
@使う奴は、手抜き大好き手こき大好き
852nobodyさん:2011/11/24(木) 11:36:07.10 ID:???
@使うとエラーのでない最強のスクリプトを書くことができますw
853nobodyさん:2011/11/24(木) 11:38:09.28 ID:???
error_report(0) だっけ?
これ付けても構文エラーの時は表示されるんだな
854nobodyさん:2011/11/24(木) 11:41:28.10 ID:dbWHUVya
んじゃ、ついでに関連質問
実際さ、@ってどれくらいの頻度でつかってる?orどーゆーときに使ってる?
自分はもうクセで、基本的にissetとかでUndefinedの判断とも入れてるから、ほとんど使わないんだけど
使うタイミングとか教えてくれたらウレシス
855nobodyさん:2011/11/24(木) 12:01:37.50 ID:???
ネット経由などチェックコストの高い場面では使っている
あと気が向いたら0で割るなぼけ!といわれる場面の一時しのぎにw
856nobodyさん:2011/11/24(木) 12:07:59.73 ID:???
よくわからずfopenに@を付けてます
ローカルのファイルでファイルがない場合は新規作成するモードならいらないすか
857nobodyさん:2011/11/24(木) 12:15:23.16 ID:???
PHP4の環境で・・・  やめたい。
858nobodyさん:2011/11/24(木) 12:33:45.25 ID:???
loadHTML
859nobodyさん:2011/11/24(木) 13:31:39.15 ID:???
> 基本的にissetとかでUndefinedの判断とも入れてるから

不思議な日本語を読むときに @ を入れてるかな…
860nobodyさん:2011/11/24(木) 14:57:50.20 ID:oV1VI/p5
今JAVAのソースのPHPへの変換作業を行っています。

final int yOffset = -1942;
final int mOffset = 65;

Date date = new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int y = cal.get(Calendar.YEAR);
int m = cal.get(Calendar.MONTH);
char yc = (char)(y + yOffset);
char mc = (char)(m + mOffset);

以上JAVAのソースです。
これをPHPで同じことをしたいのですが最後の二行のキャストでの
数字→アルファベットへの文字変換をどうしたらよいのかわかりません。
よろしくお答え願います(T_T)
861nobodyさん:2011/11/24(木) 15:07:43.50 ID:???
型無しのPHPにそんなのを期待されても・・・
862nobodyさん:2011/11/24(木) 15:46:54.67 ID:???
chrだな
アルファベットじゃねーけど。
863860:2011/11/24(木) 16:00:19.02 ID:oV1VI/p5
PHPだと同じことはできないんでしょうか?
すみません初心者なもので何ができないかの判断もつけがたいです
864860:2011/11/24(木) 16:11:49.75 ID:oV1VI/p5
chrを使ってみろということですね。
ありがとうございます。試してみます
865nobodyさん:2011/11/24(木) 16:14:27.92 ID:???
たとえば2000年なら58になるから文字は :
Calendar.MONTHは 0-11だから65足した文字コードなんで
AからL
866860:2011/11/24(木) 16:41:25.32 ID:oV1VI/p5
できました!ありがとうございました。
867860:2011/11/24(木) 16:57:51.46 ID:oV1VI/p5
すみません。もう一個質問お願いします

またJAVA→PHPの変換作業なんですが、
getBytes("Shift-jis")というのをPHPでどうやったら表せますか?
868nobodyさん:2011/11/24(木) 16:59:32.38 ID:???
さてはマニュアルを読む気ないな!
869nobodyさん:2011/11/24(木) 17:01:48.81 ID:???
お前ら俺の質問にも答えろよ
わからないんだったらちゃんとわかりませんって額に地面こすりつけて謝れ
870nobodyさん:2011/11/24(木) 17:13:33.03 ID:???
お前の質問どこだよw
871nobodyさん:2011/11/24(木) 17:27:29.89 ID:???
http://my.chiebukuro.yahoo.co.jp/my/drdamaga
一部で有名な最近暴れているPHP教えて君&お礼や返信なしで質問連続立て&逆ギレ。
確認できているだけでもPHPPro,OKWave,Yahoo知恵袋の大手で暴れている。
872nobodyさん:2011/11/24(木) 17:34:25.15 ID:???
unpack("C*",$str);だな。
文字コードは必要ならshift-jisに変換後な
873860:2011/11/24(木) 17:56:52.94 ID:oV1VI/p5
お返事ありがとうございます。
mb_convert_encodingでエンコードしてから
unpack("C*",$str);でいけました!
助かりました(^o^)
874nobodyさん:2011/11/24(木) 22:00:13.17 ID:SvbOG3Rx
配列中に存在する値を出現回数によってソートするにはどのようにすればいいのでしょうか?
sort()関数だけでは、あいうえお順になるだけで、その他の関数で上記のようなものを見つけられませんでした
875nobodyさん:2011/11/24(木) 22:13:38.12 ID:???
array_count_valuesとかで
876nobodyさん:2011/11/24(木) 22:14:35.70 ID:???
そんな都合のいい関数はないので自分で作るしか無い
計算量はかなり膨れると思う
877nobodyさん:2011/11/24(木) 22:49:20.59 ID:SvbOG3Rx
そうですか・・・
>>875さんの教えてくれた関数も駆使して自分で作らないといけないようですね
以前JavaScriptでにたようなのがあったような気がするのですが・・・
作り方をど忘れしてしまいました

今ざっと考えてみたのですが難しいですね
ちっとも作り方のアイデアが浮かんで来ません
array_count_values()を使うと出現回数は求められるようですが、
それを単純にsort()すると数字だけのソートになりますし
878nobodyさん:2011/11/24(木) 22:57:50.34 ID:???
>>877
その為の関数が array_multisort()
http://php.net/manual/ja/function.array-multisort.php#example-4383

<?php
$list = array('1unko', '2chinko', '3manko', '2chinko', '3manko', '2chinko');
$weights = array_count_values($list);
$sort_keys = array_map(function ($v) use ($weights) { return $weights[$v]; }, $list);
array_multisort($sort_keys, SORT_DESC, SORT_NUMERIC, $list);
var_dump($list);
879nobodyさん:2011/11/24(木) 23:04:35.59 ID:Ed0cMJSk
$str = 'あいうえおかきくけこさしすせそ';
「お」と「か」の間に'<br>'を挿入したいのですがどうしたらいいですか?
880nobodyさん:2011/11/24(木) 23:06:00.39 ID:SvbOG3Rx
>>878
おぉぉぉ!
ありがとうございます
今、array_count_values() -> arsort() のような事を試していました
listの値はともかくとして(笑)、教えていただき本当にありがとうございました

881nobodyさん:2011/11/24(木) 23:15:33.12 ID:???
>>879
置き換えれば
882880:2011/11/24(木) 23:21:57.84 ID:SvbOG3Rx
テストとして英数字でやっていたので上手くいったのですが、
日本語のようなマルチバイトでは上手くいきませんでした

振り出しに戻った感じがします(苦笑)
マルチバイト、難しい・・・
883nobodyさん:2011/11/25(金) 00:17:52.06 ID:???
うまくいかない?
884nobodyさん:2011/11/25(金) 11:07:07.03 ID:Vtscy08p
変数$wwwに値を代入するなら$www=12;というるのは知ってますが、
$www .="";
$www .=12;
などのように.を付ける代入は何を表してるのですか?
885nobodyさん:2011/11/25(金) 11:10:58.30 ID:???
$www .= "";  は  $www = $www . "";
886nobodyさん:2011/11/25(金) 12:22:00.00 ID:Vtscy08p
>>885
ありがとうございます。
www=www+1;というC言語等でよくある意味なんですね。
887882:2011/11/25(金) 14:03:13.02 ID:???
>>883
うまくいきます?
自分の配列は全部日本語が格納されておりまして、それをarray_multisort() やarray_count_values()のようなものを使ってみたのですが、上手くいきませんでした
確か日本語をどんどんarray_push()で格納していった配列だった気がするのですが

自分、PHP5.3.8です
888nobodyさん:2011/11/25(金) 14:38:35.77 ID:???
駄目なソース貼るとか、どうなるとかないと分かりません。
すくなくとも上の例でウチでは動く
889nobodyさん:2011/11/25(金) 14:54:15.77 ID:WdRVkcPU
【OS名】CentOS
【PHPのバージョン】5.1.6
【連携ソフトウェア】特になし
【質問内容】
functionについて質問です。

function sample($post, $get)

としたときに$testや$getが空だと当たり前ですがエラーが出ます。
$postや$getは既存のシステムのもので、空の場合や値が入っている場合があり一定していません。
function の引数定義時にissetでも使えればいいんですが、そういったことは出来ませんでした。
この時に$postや$getが空の場合でもエラーにしない方法はありますか?
890nobodyさん:2011/11/25(金) 14:58:07.25 ID:???
あります。
>空だと当たり前ですがエラーが出ます
そんなことはありません。
891nobodyさん:2011/11/25(金) 15:01:11.28 ID:???
>>889
なんか勘違いしていると思うわ
function sample($post = null, $get = null)
こんな感じの事がやりたいのかな?


892889:2011/11/25(金) 15:08:41.55 ID:WdRVkcPU
>>891
回答ありがとうございます。
ちょっと原理はまだ理解できておりませんが、やりたかったことが>>891で出来ました。
$postにnullが入るので中身が無くなる?ようにも見えるのですが、nullの場合は扱いが異なるのでしょうか。

とは言えこれで目的の事ができました。
ありがとうございます。
893nobodyさん:2011/11/25(金) 15:11:44.87 ID:???
>>887
> 確か日本語をどんどんarray_push()で格納していった配列だった気がする
そこ調べてみたらどうかな(苦笑)
もしくは同じ環境でちゃんとテストしてみたら
894nobodyさん:2011/11/25(金) 15:24:08.85 ID:???
>>892
そんな発言をしているようだと求めている結果にはならないはず。
ソースを開示するかマニュアルを一通り読んだ方がいいぞ。
895nobodyさん:2011/11/25(金) 15:26:22.75 ID:???
>>892
function chinko ($manko = null ){
return $manko;
}
//kapikapiが返る
$status = chinko('kapikapi')
// nullが返る
$status = chinko()

要するにデフォルト値ってイメージでいいと思うよ。
896nobodyさん:2011/11/25(金) 15:32:51.64 ID:???
空の場合や値が入っている場合がありっていうのに、それで解決したというのが
俺にはさっぱりわかんねーや。
897nobodyさん:2011/11/25(金) 15:40:40.24 ID:???
たぶん、functionの呼び出し方を理解していないだけだと思うんだ。

function func_name($a,$b){}

本来ならfunc_name($g_a,$g_b)で呼び出す所をfunction()だけで呼び出そうと
してエラーが出ているのだろう。だから$a=nullとするとエラーがでなくなる。
呼び出しが()だからグローバル$g_aがfunctionの$aに入らずにおかしい!
と感じているのだろうw
898nobodyさん:2011/11/25(金) 16:10:38.30 ID:???
funcを呼び出す時点のスコープで$post $getがあったりなかったりする。
それがなかったとき
func($post, $get)とすると、undefinedであるというNoticeが出力される
かといって
func( , ) とするとエラーが出る
という状態だったのかな
899684:2011/11/26(土) 14:30:34.63 ID:???
おそろしあ
900nobodyさん:2011/11/26(土) 14:31:06.18 ID:???
誤爆orz
901nobodyさん:2011/11/26(土) 16:28:05.43 ID:???
orz誤爆
902nobodyさん:2011/11/26(土) 16:34:20.38 ID:???
>>900
どのスレと間違えたのかkwsk
903nobodyさん:2011/11/26(土) 20:09:33.52 ID:mMk8E5Ms
ここにいる PHPERさんは、
結構数学とか、得意なクチですか?

微分積分とかフツーに理解してる人ですか?
904nobodyさん:2011/11/26(土) 20:14:26.83 ID:???
>>903
微積理解してなかったり、中学生もいるし、文系の人も多いです
学業関係なく慣れです
905nobodyさん:2011/11/26(土) 20:21:00.62 ID:???
微分積分理解しないと高校卒業できなくないか?
906nobodyさん:2011/11/26(土) 20:22:58.44 ID:???
高校卒業くらいならいらないんじゃね?遠い昔でわすれた
907nobodyさん:2011/11/26(土) 20:29:18.45 ID:???
高校レベルで理解まで到達しないやろ
単に微積の答えの導き方覚える程度だろ
908nobodyさん:2011/11/26(土) 20:40:23.97 ID:???
習わないこともあるよ
909nobodyさん:2011/11/26(土) 20:55:52.34 ID:mMk8E5Ms
こんなん↓
http://www.geisya.or.jp/~mwm48961/kou2/joken_p.html
とか、さっぱりわからんけど理解してたら
絶対プログラミングに役立ちそうなんですが・・・

910nobodyさん:2011/11/26(土) 20:58:38.47 ID:???
アルゴリズムの話をしたいのかな
911nobodyさん:2011/11/26(土) 21:11:15.83 ID:???
>>909
スレ違いながら
役立つのではなく必要になることがある。
分からなければ出来ないことがあるということです。
912nobodyさん:2011/11/26(土) 22:32:17.05 ID:???
>>907
理解ってどのレベルのことを言ってるの?
913nobodyさん:2011/11/26(土) 23:05:01.72 ID:???
その議論ってPHPに関係あるの?
914nobodyさん:2011/11/26(土) 23:20:20.41 ID:???
もうそろそろスレ終わるし、やりたいならやるのもいんじゃね?
915nobodyさん:2011/11/27(日) 00:05:26.55 ID:???
高校数学はなんとなく理解できるだろ?
916nobodyさん:2011/11/27(日) 00:39:55.55 ID:???
サーバサイドWebプログラムに数学は必要ないし
少なくともこのスレではできてもできなくてもどうでもいい

JavaScriptでゲーム作るとかなら関係あるけどね
917nobodyさん:2011/11/27(日) 00:58:58.36 ID:ooaVNxa6
最悪の成績で高校行けなかった俺に高校数学を理解しろと?
918nobodyさん:2011/11/27(日) 01:05:17.35 ID:???
それでもPHPは理解できるんだなw
919nobodyさん:2011/11/27(日) 01:12:49.83 ID:???
Webプログラム全般、数学はいらんとおもうが
仕組み覚えるって話だから、工作に近いんじゃない?
920nobodyさん:2011/11/27(日) 01:25:20.94 ID:???
数学知識が必要なアプリを作ってないだけの話だろ
微分積分を解くアプリを作るなら微分積分の知識は必要になる
そこまで行かなくても、例えば2進数の計算を知ってたらビット演算子で楽に表記できる場合があるとか
921nobodyさん:2011/11/27(日) 01:30:40.13 ID:???
逆にWebProgで必要な数学の知識ってなんだろな
2進数とかは数学しらなくても、プログラム勉強したら自然と知識として入るだろうし
高校数学レベルの数学知識が必要なWebProgがおもいつかん
922nobodyさん:2011/11/27(日) 01:36:00.87 ID:???
必須なのは四則演算くらいじゃね?

Cでポインタを扱ってた頃は常に番地計算を行いながら
プログラミングしてたものだが、その頃に比べるとはるかに楽になった
誰でもプログラミングに参入できるわけだ
923nobodyさん:2011/11/27(日) 01:36:13.03 ID:???
経理とか統計とか普通にサーバーサイドで数学使うよ。三角関数とかも使わなくはない
924nobodyさん:2011/11/27(日) 01:41:03.59 ID:???
>>923
あれ?三角関数とかって中学じゃなかった?
925nobodyさん:2011/11/27(日) 01:51:56.02 ID:???
サーバサイドなんてDBに格納して取り出すのがメインだしな
926nobodyさん:2011/11/27(日) 01:56:23.71 ID:???
微積ってサーバーサイドでつかったことないや
アナライズするときも、そんな小難しいのを作った記憶ないな
数字の四則演算くらいか
927nobodyさん:2011/11/27(日) 04:31:13.17 ID:cim/zCBY
アップロードした静止画のurlをhttp〜/upload/001.jpgとしたとき
http〜/upload/001.jpgにアクセスしたときパソワードを入力しない
とアクセスできなくすることはphpで可能ですか?
928nobodyさん:2011/11/27(日) 04:35:10.37 ID:???
はい可能です
929nobodyさん:2011/11/27(日) 06:50:15.25 ID:???
フレームワークの混交とか普通なんでしょうか?

python の turbogear と django を混ぜて使うとか
聞いたことあまりないです…

たくさん覚えないと駄目ですか?
ふれいむわーくは幾つくらい併用していますか?
わからないことだらけです><;
930nobodyさん:2011/11/27(日) 07:02:25.44 ID:???
スレチ
931929追記:2011/11/27(日) 07:11:24.87 ID:???
フレームワークの間で命名規約が異なってると
require_once 'Zend/Loader/Autoloader.php';

とかやっても普通に呼び出せないような
気がするのですが…うむむ…
932nobodyさん:2011/11/27(日) 07:23:34.79 ID:???
http://stackoverflow.com/questions/39364/failed-to-load-zend-loader-php-trying-to-work-out-why

require_once '../../library/Zend/Loader/AutoLoader.php';
して

public function setUp() {
Zend_Loader_Autoloader::getInstance();
}

とセットアップするみたいなかんじでやれば
ライブラリみたいなかんじでそこだけ利用できるようになるとか…

って各フレームワークのことはそのフレームワークのスレで
質問した方がいいですよね…お騒がせして申し訳ありませんでしたton
933nobodyさん:2011/11/27(日) 07:47:38.28 ID:???
Webprogに必要な数学
というスレがあってもいいかもしれん
934nobodyさん:2011/11/27(日) 08:12:31.57 ID:???
限定する意味なんてないからこっちでやれ
http://hibari.2ch.net/test/read.cgi/tech/1197063023/
935nobodyさん:2011/11/27(日) 18:59:26.16 ID:???
( ´・ω・) ( `・ω・´) ( ´・ω・` ) (・ω・` )
936nobodyさん:2011/11/27(日) 20:17:40.78 ID:pnNAW0Jm
phpでインクルードする時、
include_once("/hoge.php");
だと、Dreamweaver上のプレビュー画面で確認できるんですが
include_once(dirname(__FILE__)."/hoge.php");
だとDreamweaverで表示されません。
プレビューでも表示できる何かうまい手はないでしょうか
937nobodyさん:2011/11/27(日) 21:22:14.18 ID:cim/zCBY
phpはformで日本語や記号を送信するときに
urlエンコードしてるときにブラウザでurlエンコードして
php側でurlデコードしてるのですか?
938nobodyさん:2011/11/27(日) 21:33:37.99 ID:???
>>937
マヌアル読みましょう
http://php.net/manual/ja/faq.html.php
=====
フォームの内容を送信するとき、GET か POST かにかかわらず data は
ブラウザによって URL エンコードされ、PHP によって URL デコードされます。
要は、URL エンコード/デコードを自分で行う必要はなく、これらの処理は
すべて自動的に行われると言うことです。
939nobodyさん:2011/11/27(日) 22:17:59.53 ID:UV6OYU9k
mod_phpって何?
Apacheのモジュールですとか抜きにして具体的に説明できる人
教えてくれ

自作HTTPサーバーに組みこむ場合はどんな処理になるんでしょうか
940nobodyさん:2011/11/27(日) 22:22:59.44 ID:???
Apacheのモジュールです
941nobodyさん:2011/11/27(日) 22:27:31.48 ID:UV6OYU9k
>>940
モジュールってなんやねん。
cgiならforkしてパイプで標準出力ドンまでは分かった。
自分でHTTPサーバー作ってmod_phpを組み込みたいねん。
教えてーなぁ。賢い人求む。
942nobodyさん:2011/11/27(日) 22:31:41.04 ID:cim/zCBY
>>938
ありがとうございました。

$title="あ.jpg";
if (@unlink("uploads/$title" )){
echo "画像ファイル削除成功!!";
} else {
echo "画像ファイル削除失敗!!";}
で日本語の名前の画像が削除できないのですが、対処法って
あるのですか?
943nobodyさん:2011/11/27(日) 22:59:42.57 ID:???
>>942
前にテストやった時、それで日本語も削除できてたような気がしたけど・・
944nobodyさん:2011/11/27(日) 23:03:26.31 ID:???
PHPで初めてDBに触ってみてるんだけど、正規化した後で
あるテーブルのデータ欲しい時、そのテーブルのキー持ってない場合なのですが、
結合とか使ってテーブルまたいで1回の命令でデータ取って来ていいの?
それともちまちまテーブル1個ずつ辿ってデータ取って来るべき?

結合使うと楽チンっぽいけど一度に複数テーブル扱うから
代わりにデメリットとか発生したりしないものかと愚考してます。
945nobodyさん:2011/11/27(日) 23:50:14.99 ID:???
>>942
まずその方法で日本語のファイルを作ってみてはどうか
946nobodyさん:2011/11/27(日) 23:51:18.25 ID:???
>>941
うーん。
考えが逆で、Apacheのモジュールを使えるようなHTTPサーバを作らないとだめだよ
947nobodyさん:2011/11/27(日) 23:52:56.09 ID:???
>>944
OR/Mとかなら更新系が素直にいかないかもしれないけど、結合して抜いてくる分にはなんのデメリットもないかと
948nobodyさん:2011/11/28(月) 00:07:25.54 ID:0WCVNoA5
>>946
というと、Apacheのmod_phpがつかえるように
HTTPサーバーを構築するということ?

このmod_phpって具体的にはどんな処理なんでしょうか?
949nobodyさん:2011/11/28(月) 00:16:05.44 ID:???
プロセスが・・・、おや、誰か来た
950nobodyさん:2011/11/28(月) 00:30:46.49 ID:0WCVNoA5
>>949
phpみたいなインタプリタだとアクセスごとの起動時に処理を食いますよね
これを解決するにはどうすればいいんでしょうか
つまり、一つのプロセスを永続的に利用して、phpを実行させるには〜
951nobodyさん:2011/11/28(月) 00:52:23.45 ID:???
それがmod_phpやん
952nobodyさん:2011/11/28(月) 01:02:08.85 ID:FBsM2dj0
PHPで商品管理ツールを作っているんですが、設計でどうしようか悩んでいます。
商品が1・2・3・4・5・6・7・8・9と9個あった場合

商品カテゴリA
1・3・5・7・9
商品カテゴリB
1・2・3・4・5
商品カテゴリC
2・4・6・8

とカテゴリを複数登録することができます。
商品ごとにウェイト付けをしてるんですが、並び替えをどうしようか迷ってます。
ツールで、カテゴリ毎に商品の並び替えをする場合、どのようにしたらいいとおもいますか?

スレチだったらすいません。よろしくお願いします。
953nobodyさん:2011/11/28(月) 01:14:26.13 ID:???
>>952
テーブル設計が聞きたいの?
954nobodyさん:2011/11/28(月) 01:15:29.41 ID:0WCVNoA5
>>951
どうやってやるの?

webサーバーでlistenしてアクセスがきたらfork

forkした後に、URLをパースして、目的のファイルを探した後に
実行ファイルのパスと実行結果をphpプロセスとパイプで共有することになる
んでしょうか。

この場合、phpは常駐してイメージではforループで待ち受けている感じになるの?
955nobodyさん:2011/11/28(月) 01:21:48.16 ID:HiuRKhp3
$size=@filesize($upload_name)/1024;$size=round($size);
というように1024で割ってKBにしてますが、
1024で割るのであってますよね?
956nobodyさん:2011/11/28(月) 01:22:01.41 ID:???
それ結局リクエストごとにプロセス起動してるじゃん
957nobodyさん:2011/11/28(月) 01:24:08.71 ID:???
この前から知ってることを質問してるアフォがいねぇか?
958nobodyさん:2011/11/28(月) 01:34:04.00 ID:0WCVNoA5
>>956

よくわからないのですが、phpってC言語を利用して構文解析を行って
その結果を実行して標準出力する訳ですよね

こいつをリクエストごとに"起動して終了"という一連の動作を省略させて
使い回しを行うには、どうすればいいのでしょうか?

小生はあまりプログラムが得意ではありません。ましてOS周りには疎いので
伝わりにくいかと思いますが、お願いします。
959952:2011/11/28(月) 01:38:18.80 ID:FBsM2dj0
>>953
設計というか、アルゴリズムに近いですかね。
カテゴリA内をツールで順番代えたら、カテゴリBと重複しているものは、並べ替えの影響をどうしようかなとか・・・
という感じです。
960nobodyさん:2011/11/28(月) 02:13:46.61 ID:???
優先順位付けを行えばいいのでは?
自動で決めたいってならカテゴリ登録数が少ないやつを上位にするとか
(少ない=その商品との関連が強いということだから)
961nobodyさん:2011/11/28(月) 02:25:22.15 ID:???
>>959
それは、どうしたいかによると思うが・・・
962nobodyさん:2011/11/28(月) 05:05:54.70 ID:???
>>958
リクエストごとに、リクエストされたphpを解析して結果を返せばよくね
apacheはhttpdプロセスを複数起動していて、各子プロセスはシングルスレッドで動いてると思うよ
963nobodyさん:2011/11/28(月) 05:23:45.45 ID:???
スレ違いだけど、思ったより簡単に作れるんだな
http://codezine.jp/article/detail/2502
964nobodyさん:2011/11/28(月) 08:17:53.50 ID:7HJ2BA72
PHPの問題かどうかわからないんだけど
あるURLに、GETではアクセスできるけどPOSTでアクセスすると404になる
何故だかわかりません
Apacheのログ見ても普通に404になってて、エラーログなし

何が起きてるんでしょうか…
965nobodyさん:2011/11/28(月) 09:31:58.84 ID:???
GETで何もないときに、存在しないページに飛ばすだけでそうなるな
966nobodyさん:2011/11/28(月) 10:32:53.78 ID:HiuRKhp3
「php」って名前のリア充感とオサレ感は異常。
プログラミング言語で一番のリア充が使う言葉のような
響きがあると思います。みなさんどう思いますか?
967nobodyさん:2011/11/28(月) 11:09:38.61 ID:???
つphp研究所
http://www.php.co.jp/

おっさん臭ささしかしない
968nobodyさん:2011/11/28(月) 11:22:33.03 ID:???
ネタにマジレスw
969nobodyさん:2011/11/28(月) 11:50:37.98 ID:???
え?
970nobodyさん:2011/11/28(月) 18:39:46.51 ID:HTuNqc32
php関連でオススメの本とかってないですか?
971nobodyさん:2011/11/28(月) 18:40:39.92 ID:HTuNqc32
あ、宣伝だとあれなんで
どういうところがいいとかも言ってくれるとうれしいです。
972nobodyさん:2011/11/28(月) 18:49:57.39 ID:???
>>971
K&R
973nobodyさん:2011/11/28(月) 19:17:06.30 ID:???
webフレームワークデザインみたいな本ないかねえ・・・
974nobodyさん:2011/11/28(月) 20:23:41.64 ID:???
>>971
このスレ的にはphpマニュアル>>>phpの書籍
って感じでphpの本なんて住民が徹底的にdisってるからな。
君がphpをどの程度理解してるかでも変わってくる。
phpの初心者向けの本なんて、htmlの説明して、webサーバの
アパッチ、AN HTTPD(1.42p)、xampp、mysqlの説明で1/4〜1/3
くらいページ取ってるしな。
975nobodyさん:2011/11/28(月) 20:45:46.38 ID:FBfO9m/G
levenshtein()はマルチバイトには対応していないようですが、ライブラリだとか何かいい方法とかありませんでしょうか?
976nobodyさん:2011/11/28(月) 21:31:08.85 ID:???
>>975
レーベンシュタイン距離の計算アルゴリズムは各所で入手できるから
関数を自作するのがいいんじゃね。
つーかプログラマならそれぐらいやれ。ライブラリばかりに頼るな。
977nobodyさん:2011/11/28(月) 22:30:17.76 ID:???
mb_levenshteinで検索
978nobodyさん:2011/11/29(火) 02:01:12.98 ID:???
車輪の再発明はご遠慮願います
979nobodyさん:2011/11/29(火) 03:48:19.96 ID:???
児童ポルノ画像を集めるためphpを勉強して
ケータイサイト作って、貼られる画像を保存してる
変態友人がいる。
980nobodyさん:2011/11/29(火) 04:12:11.75 ID:???
俺も似たような目的で無料掲示板サービスを運営してたな
携帯持ってなかったのに携帯3キャリアとPCで絵文字相互変換ライブラリを書いた
ガキどもが「絵文字使えねーし」って騒いでたらデバッグしてたw
981nobodyさん:2011/11/29(火) 06:58:15.04 ID:???
>>979
法整備進んでなかった数年前ならまだしも
もうそれ逮捕されますから
通報しとけ
982nobodyさん:2011/11/29(火) 10:00:54.03 ID:WD7XMt4a
.htaccess、configファイルの設定など、
ローカル側とサーバー側で 設定が違う場合
いっぺんにアップしたりダウンしたりすると、
誤動作を起こしてしまうことがありますが、
この差を意識することなくアップしたりダウンしたりする
うまい方法はないですか?
983nobodyさん:2011/11/29(火) 10:27:36.46 ID:???
FTPソフトで設定ファイルはアップ・ダウンしないよう除外設定すれば?
984nobodyさん:2011/11/29(火) 13:19:08.42 ID:pb/9Q2Ix
$tab = (isset($_SESSION['tab'])) ? $_SESSION['tab'] : '';

この一行で?はどんな役割をしているのですか?
985nobodyさん:2011/11/29(火) 13:27:12.16 ID:???
$_SESSION['tab'] があるかどうかチェックしてる
986nobodyさん:2011/11/29(火) 13:27:30.20 ID:???
>>984
三項演算子
987nobodyさん:2011/11/29(火) 13:42:39.53 ID:???
phpの初心者向けマニュアルは、Cを知っている前提で書かれているものばかり
>>971 さんお薦めのK&Rとか、Cの本を読んでからじゃないと
何が何だかわからないw
988nobodyさん:2011/11/29(火) 14:52:58.58 ID:???
>>987
PHP勉強するのにCの知識は必要ないと思うけど。ポインタの概念とか不要だし。
初心者向けのPHP本を読んでも理解できない人はきっとプログラミングに向いてない。
そういう人はN88BASICから勉強するのを勧める。
989nobodyさん:2011/11/29(火) 17:43:11.35 ID:???
phpマニュアルがわからないっていうなら何読んでも理解できないだろ
関数リファレンスの読み方がわからなかったけどそれも慣れの問題
990nobodyさん:2011/11/29(火) 17:49:21.36 ID:???
何でもいきなり読んだだけじゃなかなかわからんよ
やってみないとな。
991nobodyさん:2011/11/29(火) 18:06:34.98 ID:dAGutuld
【PHPのバージョン】5.2
switch(true){
case strcmp($param,'a') == 0:break;
case strcmp($param,'b') == 0:break;
default:break;
}
$paramに何も入っていない時に、defaultに飛ばしたい
・if文[if(isset($param)){swicth(true){〜}}else{〜}等]
・isset($param) && strcmp($param,'a')
・関数
これらを使用せず、エラー表示(Notice: Undefined index、レベル下げ×)
させずにdefaultに飛ぶ簡潔な書き方はありませんか?
992nobodyさん:2011/11/29(火) 18:08:28.53 ID:???
PHPはC++の簡易版、スクリプト化といえる。
993nobodyさん:2011/11/29(火) 18:20:10.53 ID:???
>>991
ありません。
994nobodyさん:2011/11/29(火) 18:45:15.71 ID:???
>>993
ID変わりましたが991です
諦めてisset($param) && を使うことにします
回答ありがとうございました
995nobodyさん:2011/11/29(火) 19:25:01.74 ID:???
switch(true){
case isset($param) && strcmp($param,'a') == 0:break;

まさかこうしたんだろうか…
996nobodyさん:2011/11/29(火) 19:50:35.59 ID:???
>>988
ポインタ以前の話で
初歩的なことで言えば、逐次処理、ループ、条件分岐なんかは
Cの初歩の本の方が詳しく解説しているのに対して、PHPでは知ってて当然になってるし
関数の使い方も、Cで学んでいることが前提になっている(引数の渡し方、受け取り方など)
挙句の果てに、C言語では○○に相当するとか、C言語で言うところの○○であるとか
初心者向けには全然解説になってない解説が書いてあったりw
PHPの本を読んでもちんぷんかんぷんだったけど、Cの初歩の本を読みながら
簡単なテキストエディタくらいが書けるようになってからPHPに戻ったら
スラスラ書けたし、マニュアルもすんなり入ってくるようになった
オブジェクト指向的な作り方も、C++がちょっと書けるようになってから戻るとマジ捗る
歴史が古いから、解説できる人材が多いからなんだろうか?
997nobodyさん:2011/11/29(火) 19:51:57.95 ID:???
>>995
そのまさかだ 俺の頭で他の方法になるとswitchの前にifしか出てこない
if(isset)の分岐はelseとdefault両方に同じコード書くことになる
それなら面倒でもisset($param)をcaseに入れてdefault一つに纏めようかと

それかswitchの前にif(!isset($param)){$param = null;}も考えていた
998nobodyさん:2011/11/29(火) 19:58:14.43 ID:???

http://hibari.2ch.net/test/read.cgi/php/1322564127/

>>980はちゃんと立てるか他のやつ指名しようぜ
999nobodyさん:2011/11/29(火) 21:38:51.60 ID:???
そんなミクロなところにこだわって意味あんの
1000nobodyさん:2011/11/29(火) 21:53:28.42 ID:???
>>998
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。