【PHP】下らねぇ質問はID出して書き込みやがれ 80
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/02/01(日) 18:10:57ID:PdwQzQch過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0739nobodyさん
2009/02/14(土) 00:56:22ID:t4r/C+ZK始めは、prepareとか使わずにqueryで、sql文の中にも直接変数を入れていたのですが
そのprepareを見よう見まねでbindしてみたところ、
今のところエラーもなく思い通りの結果がでてきました。
>>735
なるほど、prepare自体をしてなかったのがエラーの原因ということでしたか。
phpにもmysqlにもまだ慣れておらずpdoもよくわかってないのでもうちょい調べて
みることにします。
ありがとうございました。
0740nobodyさん
2009/02/14(土) 04:34:09ID:???Can Your Programming Language Do This?
http://www.joelonsoftware.com/items/2006/08/01.html
0742nobodyさん
2009/02/14(土) 11:12:36ID:???君のプログラミング言語で、これ、できる? - The Joel on Software Translation Project
ttp://local.joelonsoftware.com/wiki/%E5%90%9B%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%A7%E3%80%81%E3%81%93%E3%82%8C%E3%80%81%E3%81%A7%E3%81%8D%E3%82%8B%3F
無名関数はPHP5.3で実装予定。
MapReduceは、PHPにはarray_mapとarray_reduceという捻りのない名前で実装されている。
配列型(あるいは他のコレクション型)を定義しなおさない限り、PHPでは使いづらいと言わざるを得ない。
ArrayObjectも割と腐ってるしな。なんでksort()とかの戻り値がvoidなんだよ、と。
まあそれでも、無いよりはマシだけどな。
0743nobodyさん
2009/02/14(土) 11:22:10ID:???0746nobodyさん
2009/02/14(土) 12:09:55ID:???$data = sort($list);
なんてのをやったはず
0749nobodyさん
2009/02/14(土) 12:35:32ID:???何の意味があるのかさっぱり分かんねえ。
誰だよこんな糞言語作ったの。
0750nobodyさん
2009/02/14(土) 12:40:51ID:???0751nobodyさん
2009/02/14(土) 12:45:10ID:???そうか?
見やすくていいと思うけど
それより関数名がださすぎる、一貫性がない、引数の順番で混乱する
それでも楽だからPHPで書いてるが
0752nobodyさん
2009/02/14(土) 12:47:11ID:???0753nobodyさん
2009/02/14(土) 12:48:41ID:???もっと、配列は@、ハッシュは%とかわかりやすくしれ
0755nobodyさん
2009/02/14(土) 12:59:23ID:???0756nobodyさん
2009/02/14(土) 13:02:58ID:???0757nobodyさん
2009/02/14(土) 13:30:59ID:???>749は尤もだが、お前の言い分はPHPの言語特性を理解してないの丸分かりで格好悪いぞ。
0758nobodyさん
2009/02/14(土) 15:31:28ID:mQ2YcNed何か対策はあるのかな?trueを入れない以外で。
ゆっくりページ移動するとかリロードを連打しなければ切れないけど。
0759nobodyさん
2009/02/14(土) 15:41:51ID:???0760nobodyさん
2009/02/14(土) 15:42:50ID:???なんか、思いこみで書いてない?
F5アタックで切れても問題がないところで、regenerateするだろ普通、
0761nobodyさん
2009/02/14(土) 15:51:50ID:???そうですかとしか。
0762nobodyさん
2009/02/14(土) 16:26:31ID:???一覧を取得するとファイル名
'.'と'..'というファイル名が混じっているのですが、
これは何でしょうか?
0766nobodyさん
2009/02/14(土) 17:13:05ID:???難読になるだけだから実装しないでいいわ
0767nobodyさん
2009/02/14(土) 17:41:51ID:CGIm9AbT0768nobodyさん
2009/02/14(土) 17:45:21ID:???0770nobodyさん
2009/02/14(土) 18:06:39ID:???お美しい・・・
0772nobodyさん
2009/02/14(土) 18:30:26ID:???↓
(^ω^;)
これでいいお
0774nobodyさん
2009/02/14(土) 19:23:11ID:brjzsDYF0775nobodyさん
2009/02/14(土) 19:24:50ID:???0776nobodyさん
2009/02/14(土) 19:44:41ID:brjzsDYF0777nobodyさん
2009/02/14(土) 19:50:47ID:???0778nobodyさん
2009/02/14(土) 19:52:46ID:???普通はJavaScriptを埋め込むもんだ。そっちで調べてみ?
0779nobodyさん
2009/02/14(土) 20:50:35ID:VuUyjgB9こんなのってありなんですか?
$name = htmlspecialchars(mysql_real_escape_string($_POST['name']));
0780nobodyさん
2009/02/14(土) 20:52:30ID:???0781nobodyさん
2009/02/14(土) 20:56:12ID:???0782nobodyさん
2009/02/14(土) 20:57:58ID:???0783nobodyさん
2009/02/14(土) 21:00:14ID:???データーベースにつっこみたいなら、mysql_real_escape_stringだけをつかう。
画面に表示したいなら、htmlspecialcharsだけを使う。
これが基本
0784nobodyさん
2009/02/14(土) 21:00:42ID:???0785706
2009/02/14(土) 21:34:45ID:sjJzqBh5ありがとうございます。私の求めていたものはそれでした。
ただ試しにロリポでしてみたんですが、404 not foundに
なってしまいます。
http://hogehoge/mode/090214/を
http://hogehoge/?mode=mode&id=090214にしたくて
.htaccessの中身を
RewriteEngine on
RewriteRule ^/([¥w]+)/([¥d]+)/$ /?mode=$1&id=$2
としました。何か誤りがあるのでしょうか?
0787nobodyさん
2009/02/14(土) 21:38:47ID:???(2)思い通りにならないと泣き出す。
(3)自分がつまらない事はみんなもつまらないと思っていると勘違いするらしく
みんなの同意を得ているかのような発言。
(4)たしなめられると裏切られたと傷つく。
(5)自分の知っている事は世界認識だと勘違いしていて知らない人を見下す。
上司や取引先は自分の(偏った)知識以上の知識があって当然
無いなら無能。
(6)自分のやり方が一番合理的だと勘違いしているのでみんなに俺流を押し付けて引っ掻き回す。
(7)仲良くしてくれる人は自分を崇拝していると勘違いして無理を押し付けたり平気で傷つける。
(8)少し欠点を指摘されると消えたくなる。
(9)いつも主役の自分しか演じられない。
0788nobodyさん
2009/02/14(土) 22:01:45ID:???0789nobodyさん
2009/02/14(土) 22:03:43ID:???0790nobodyさん
2009/02/14(土) 22:29:32ID:???そう?
perlみたいだとどれが変数でどれが配列かを見分けやすいけど
使いわけるのめんどいし。
かといってjavascriptみたいに$さえないとどれが変数なのかさえ分からない。
自分で書いたソースでもjavascriptは久々に見ると分かりづらいよ。
0791nobodyさん
2009/02/14(土) 22:39:17ID:???0792nobodyさん
2009/02/14(土) 22:48:14ID:???> 自分で書いたソースでもjavascriptは久々に見ると分かりづらいよ。
そ、それ、$がついたら見やすくなるんですか。
0793706
2009/02/14(土) 23:00:51ID:sjJzqBh5これから返信する予定でした(*‘ω‘ *)
とりあえず$_SERVER['PATH_INFO']よりmod_rewriteの方が
スマートな気がしますので、まずはそちらを試してみます。
ありがとうございます。
0794nobodyさん
2009/02/14(土) 23:02:09ID:???0795nobodyさん
2009/02/14(土) 23:06:26ID:???・小文字、アンダースコアで始まる場合は一時変数
・大文字で始まる場合は定数(グローバル定数/クラス定数)
・@で始まる場合はインスタンス変数(PHPでいうクラスのプロパティ)
・@@で始まる場合はクラス変数(PHPでいうクラスのstatic変数)
・$で始まる場合はグローバル
Perlの命名規則もあれはあれでいいのだが、PHPとは相性が悪いしな。
>793
path_infoの方がオススメ。
mod_rewriteは、サーバーにmod_rewriteをインストールする必要がある。自分でいじれないサーバーだとお手上げ。
あと、書き方が結構難しいので初心者にはお勧めできない。
0796nobodyさん
2009/02/14(土) 23:19:07ID:???0797706
2009/02/14(土) 23:32:34ID:sjJzqBh5インストール?はされてるみたいです(ロリポップ)
難しいっていうのはどういうところがでしょうか?
0798nobodyさん
2009/02/14(土) 23:37:47ID:???実際お前は使えてないだろ。
0799nobodyさん
2009/02/14(土) 23:39:19ID:???実際お前は使えてるんだろ。
0801nobodyさん
2009/02/15(日) 00:00:40ID:???コミニュケーションとしてなりたってないからね。
0803795
2009/02/15(日) 00:03:46ID:???単純に、mod_rewriteのルールの書き方が難しい。
0804nobodyさん
2009/02/15(日) 00:10:54ID:???0805nobodyさん
2009/02/15(日) 00:27:40ID:???0806706
2009/02/15(日) 00:39:27ID:eLN8IqbH単純な正規表現での置換ですよね。
う〜ん……
0807nobodyさん
2009/02/15(日) 01:02:31ID:???ほれ
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?id=$1 [QSA,L]
0808706
2009/02/15(日) 01:58:27ID:eLN8IqbH出来ました。ありがとうございます。
^/の/が悪さをしていたみたいです。
あと、Baseも
0810nobodyさん
2009/02/15(日) 03:13:17ID:???0811nobodyさん
2009/02/15(日) 03:15:37ID:???0812810
2009/02/15(日) 03:23:28ID:Y9ylJZckPHPとMYSQLで一言掲示板を作ってるんですよ、でっ 文字数を制限させたいと思ったんですけど
<input name="post" type="text" value="" size="40" maxlength="100" />
これで制限されました
失礼しました
0814nobodyさん
2009/02/15(日) 03:34:21ID:???セキュリティ関係はちゃんと人に聞いたほうがいい。
あなたが思いついた方法は、画面の見た目を変えるだけ。
なんら制限になっていない。
詳しくは関連キーワードでググりまくるといい。
0815nobodyさん
2009/02/15(日) 03:36:46ID:Y9ylJZckお返事ありがとうございます
なるほど。
mb_strlenですね。調べてきます
0816nobodyさん
2009/02/15(日) 06:55:48ID:???0817nobodyさん
2009/02/15(日) 08:29:52ID:DOB4o/WN使える言語は,C/C++,php
phpでの(簡単な)スクレイピング処理ならやったことがある.
やっぱり
ttp://sourceforge.net/projects/phpcrawl/
みたいなの使って,コンテンツGETした後に解析をかけるんだろうかね.
(phpcawlはアクセス間隔の制御がないので叩かれていたが)
0818nobodyさん
2009/02/15(日) 08:42:38ID:???0819 ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄
2009/02/15(日) 08:43:05ID:???/::::::::::::::::::::::::::\ _
/::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \
|:::::::::::::::::|_|_|_|_| /、 ヽ はぁ?黙ってろデブw
|;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 |
|::( 6 ー─◎─◎ ) q -´ 二 ヽ |
|ノ (∵∴ ( o o)∴) ノ_ ー | |
/| < ∵ 3 ∵> \. ̄` | /
::::::\ ヽ ノ\ O===== |
:::::::::::::\_____ノ:::::::::::\ / |
0820nobodyさん
2009/02/15(日) 08:44:43ID:DOB4o/WNスマンコ
作るための指標やら知識へのポインタをいただければと存じます.
0821nobodyさん
2009/02/15(日) 08:49:14ID:???$file = htmlspecialchars($file); を使いたいのですが、
そうするとリンクが無効になってしまいます。
他に方法ありませんか?
また、$url は正規表現の判定だけでは不十分ですか?
$url = $_GET['url'];
if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $url)) {
$file = file_get_contents($url);
$file = strip_tags($file, "<a><br>");
echo $file ;
}
0822nobodyさん
2009/02/15(日) 10:04:31ID:???if (preg_match('!^(?:https?|ftp)://[\-\.~\w/\?&=\+%]+$!', $url)) {
$file= file_get_contents($url);
$file= mb_convert_encoding($file, "SJIS", "UTF-8,JIS,EUC,SJIS");
$file= preg_replace("!<img\b[^>]*alt=\"?([^\"\s]+).*?>!is", "$1", $file);
$file= strip_tags($file, "<a>");
$file= preg_replace("!</a>\s*!i", "</a><br>\n", $file);
echo <<<HTML
<html><head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
</head><body>
{$file}
</body></html>
HTML;
こんな感じでどうよ
0823nobodyさん
2009/02/15(日) 10:31:56ID:Ky9cwee/【ロジック】
$bunshou = "ここは文章です";
【デザイン】
<div id="bunshou">
<p>{bunshou}</p>
</div>
上のようなテンプレートで{bunshou}を書き換えるには
file_get_contents使って正デザインを$dezainに読み込み規表現で{bunshou}を見つけて$bunshouに置換し
デザインをすべて置換し終わったら、$dezainを出力という処理でよろしいでしょうか?
0824nobodyさん
2009/02/15(日) 10:42:16ID:???> $bunshou = "ここは文章です";
それは、ロジックじゃなくてモデルな。
モデルは、モデルオブジェクトを作っておく。
読み込んだあと、DOMパーサーにかけて、DOM毎に適切なクラスを割り当て、
そのクラスにモデルを注入。
それぞれに適切なビューハンドラーも作成して注入したうえで、
次にビジネスロジックを適用。
最終的な結果を出力する
0825nobodyさん
2009/02/15(日) 12:24:59ID:???置換が入ると重くなるのであまりお勧めはしない。
Smartyなどのテンプレートエンジンは、テンプレートを実行可能なPHPコードに変換したものをファイルとして保存して変換を最初の一回だけにしている。
PHPだけで処理するなら、OOPが良く分からない初心者にも手の届く簡単な方法はこんな感じ。
●1.グローバル変数を使う
---model.php---
$bunsyou = 'ここは文章です';
require_once'view.php';;
---view.php---
<div id="bunshou">
<p><?php echo $bunsyou ?></p>
</div>
●2.特定の名前空間に変数をextractする
60行で作るPHP用テンプレートエンジン
ttp://anond.hatelabo.jp/20071030034313
0826nobodyさん
2009/02/15(日) 14:21:42ID:X/0BOQfCテンプレートエンジンはpreg_replaceで置換する処理が入ってるのでしょうか?
0827823
2009/02/15(日) 14:22:29ID:X/0BOQfC0828nobodyさん
2009/02/15(日) 14:36:22ID:???ただ、単純にpreg_replaceを使ってるのは見たことない。
0829nobodyさん
2009/02/15(日) 15:16:40ID:U3AeQpvtPHPでuuidを生成したいのですが、
どうすればよいのでしょうか?
0831829
2009/02/15(日) 15:32:54ID:U3AeQpvt説明が足りずすみません;
http://ja.wikipedia.org/wiki/%E6%B1%8E%E7%94%A8%E4%B8%80%E6%84%8F%E8%AD%98%E5%88%A5%E5%AD%90
このuuidのことなのですが・・・
なにかライブラリなどあるのでしょうか?
0833829
2009/02/15(日) 16:14:44ID:U3AeQpvtエクステンションがあったんですね!
知りませんでした。
ありがとうございました!
0834nobodyさん
2009/02/15(日) 19:10:07ID:???入ってるか入っていないかで言えば、入っている事が多い。実際Smartyの実装を見たが、preg系の関数を使っている。
だが、単純な正規表現置換処理以上の事を行なっている事が多い。
テンプレートエンジンを使った事があれば分かると思うが、ループとか変数代入とかマクロの機能を備えたテンプレートエンジンが多い。
最低でもforeach/while/for相当のループ処理と外部ファイル埋め込み辺りは使えないと使い勝手が悪すぎるからな。
これらは当然単純な置換だけでは実現できないわけで。
ただ、>823の仕様で作るなら正規表現による置換でいいと思う。
0836nobodyさん
2009/02/15(日) 20:06:22ID:???0837nobodyさん
2009/02/15(日) 21:44:11ID:???0838nobodyさん
2009/02/16(月) 03:52:06ID:auGQVbhI■ このスレッドは過去ログ倉庫に格納されています