【PHP】下らねぇ質問はここに書き込みやがれ 53
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易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プログラムとして実行された結果になる。
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に保存?
→ 好きにしてください
--- ──ァ- 、
/:.:./::>、
/:.:.:.:/::/_ノヾ
, /:.:.:.:/''´ 0′', 下らねぇ質問は
:\{|:.:.:.:.i} レ^) ここに書き込みやがれ
::l:::{|:.:.:.:.|} 〔 ですぅ
::l:::{|:.:.:.:.|} 人_) \ -、
::l:::{|:.:.:.:八 / (__丿
コウノトリの赤ちゃんは誰が運んでくるんですか?
XAMPPを使って自分のパソコンでPHPを実行してるんですが、fopenなどのファイル操作関数を使うとエラーになってしまいます。
permission errorと表示されてるんですが原因がわかりません・・
12 :
nobodyさん:2007/08/26(日) 16:47:23 ID:QJUdjxQZ
MySQLにデータを追加する時、
$values = "'$data1', '$data2', ... , '$dataN'"; // ココの記述がスマートでない
とした後に、
mysql_query("insert into table_name values ($values)");
としなければならないのですか?
もっとスマートな記述(例えば配列を使ってクエリを送信する方法)をご存知の方、宜しければご教示ください(人∀・)
>>12 配列で入ってんなら
$values = "'".inplode ("','",$vArr)."'";
でいいんじゃね
変数の型は全部CHAR?
15 :
nobodyさん:2007/08/26(日) 18:03:04 ID:QJUdjxQZ
>>14 いえ、NULLやINTも混ざっています。
それらを連結する関数を自作するしかないのでしょうか\(^o^)/
16 :
nobodyさん:2007/08/26(日) 19:24:32 ID:OJlTW9jg
すいませんcgiについておしえてください。
phpをcgiで動かす場合、perlみたいにhtmlのヘッダとかも送信しないとダメですか?
>>16 やってみてから質問してくださいといいたいところだけど
送信しなくてOK
>>16 特に必要ありません。必要ならheader()で生ヘッダを出力。
あとcli版をcgi用に使っている場合、こちらはcgi版違い生ヘッダの出力が必要。
(昔のバージョンではcliなのにヘッダが出力されてることもあったけど)
改行コードは何を使えばいいんですか?
\n
22 :
nobodyさん:2007/08/27(月) 05:38:29 ID:SYysa4Rs
ある配列が、
連想配列なのか、普通の配列なのかを調べる方法を
教えてください
>>22 if( is_numeric(implode('', array_keys($arr))) ) {
echo "普通";
} else {
echo "連想";
}
とか…?
print_rやvar_dumpして見極める!
連想配列と普通の配列って区別あんのか疑問だったんで試してみた。
# cat test.php
<?php
$arr[0] ='foo';
$arr['0']='bar';
print '$arr[0] = ' . $arr[0] . "\n";
print '$arr[\'0\'] = ' . $arr['0'] . "\n";
?>
# php test.php
$arr[0] = bar
$arr['0'] = bar
よって普通の配列は、ない。
26 :
nobodyさん:2007/08/27(月) 09:22:07 ID:5Ot+aWgg
キーはハッシュ化される
配列のキーが全部数字なら配列
普通の配列も連想配列も同じ実装になってることはマニュアルで明記されてる。
だから
$arr[3] = 'a';
$arr[2] = 'b';
$arr[1] = 'c';
みたいに1個ずつセットした配列をforeachで頭から取り出すと、
a b c と添え字順ではなくセット順で取り出されたりする。
ただ、sortとか使った際にインデックス順だけじゃなくキーも数字で振り直される等、
意識して処理を使い分けないと困ってしまうケースってのはあるんだよな。
29 :
nobodyさん:2007/08/27(月) 10:09:43 ID:ICxB7mvC
そりゃ当然そのとき作るシステムによるだろ
31 :
29:2007/08/27(月) 10:16:39 ID:ICxB7mvC
有難うございます。
そうですよね、使わないはずないですよね・・・。
新しい質問ですが、
携帯サイトでSNSを製作するときに何か便利なライブラリなどはありませんか?
OpenPNEを改造するよりは一から作ってみたいのです。
PEARで携帯の機種判別はありますが、他に何か便利なのを探しています。
画像を投稿する処理を作っていて
thumbnail.inc.php を使用してサムネイル画像も生成してます。
その記事が削除された場合に、投稿画像とサムネイル画像を
削除しようとするのですが、なぜかサムネイル画像だけが削除できません。
サムネイル画像だけがis_fileにもひっかからないし
unlinkしようとしても、ファイルが無いと言われます。
でもFTPで確認すると存在しますし、パーミッションも両画像とも664で同じですし
ブラウザで確認しても、サムネイル画像は表示できます。
FTPからだと削除できます。
これって、何が原因なんでしょうか?
よろしくお願いします。
33 :
32:2007/08/27(月) 14:27:26 ID:???
32ですが1も読まずに質問してすみませんでした。出直してきます。
34 :
32:2007/08/27(月) 14:33:38 ID:iThHKhO2
あ、すみませんでした...
Linuxでapache、PHP4です。
連投すみません。
よろしくお願いします。
35 :
nobodyさん:2007/08/27(月) 14:46:21 ID:IOt3tJBu
配布されている簡単なPHPを自鯖に設置しようとしている者ですが
PHPのタグを入れる時、例えば
<script language="javascript">
<!--
document.write('<img src="***************.php?ref='+document.referrer+'" width="1" height="1">');
// -->
</script>
のような場合、最低このタグを何行まで縮めることが出来ますか?
(// -->←こういうのは改行無しにしたら正常に動かなくなってしまうのでは無いかと思ったので…)
>>1にあるサイトさんの
>改行に関する注意: HTML においては改行にはほとんど意味がありません。
>ただ、 HTML の見栄えをよくするためにも適宜改行を入れておくとよいでしょう。
>?> の直後の改行は、PHP によって取り除かれます。
>複数の PHP ブロックを使用している場合や、 何かを出力するのかどうかがわからないファイルを include する際などに、 この挙動は非常に便利です。
>と同時に少々混乱するかもしれません。
>強制的に改行させるには、?> の後に空白を置くか、 あるいは PHP ブロック内の最後の echo/print で明示的に改行を出力します。
こちらを読みましたが、これはつまり改行は見やすくするためのもので
改行はしなくても良い、ということで良いのでしょうか…?
>>35 <?php
require_once('******.php');
?>
37 :
nobodyさん:2007/08/27(月) 14:47:59 ID:5Ot+aWgg
>>36 ごめんなさい、phpなどスクリプトの知識が全く無いので
伝えようとして下さる意図が分からないです、すみません…
でも、それは基本的な公式ですよね、分かるように調べてきます
>>37 改行の代わりとなるものがあるのですね、参考にしたいと思います
お二方アドバイスありがとう御座いました!
41 :
32:2007/08/27(月) 15:15:43 ID:???
>>38 こんな感じで処理しています(関係あると思われる部分のみ抜粋してます)
include('thumbnail.inc.php');
// 画像アップロード処理
$dest = $path.$up_file_name;
move_uploaded_file($up_file, $dest);
// サムネイル画像を作成(ファイル名_thunb)
createThumbnail($path,$file,$ext);
サムネイル作成部分
function createThumbnail($file_path,$file_name,$file_ext) {
$thumb = new Thumbnail($file_path.$file_name.$file_ext);
$thumb->resize(160,160);
$file_name = $file_path.$file_name."s".$file_ext;
$thumb->save($file_name,100);
}
// ファイル確認or削除部分
if(is_file($path.$dfile)) unlink($path.$dfile);
if(is_file($path.$dthunb)) unlink($path.$dthunb);
確認or削除の部分の上の行はファイルあると判断し削除します。2行目のはファイルが無いと判断されて、削除処理に行きません。ためしに、
if(is_file($path.$dfile)) {
unlink($path.$dfile);
unlink($path.$dthunb);
}
と、やるとunlink($path.$dthunb);の行で
Warning: unlink(/home/hogehoge/img/1188194003s.jpg ) [function.unlink]: No such file or directory in /home/hogehoge/hoge.php on line ***
とエラーが出ます。
結果はオリジナル画像は消えてますが、サムネイル画像は残ったままになります。
ちなみに変数の中身は、echo等で途中で出力したりしてチェックしたので
空とかファイル名がおかしい等は無かったです。
サムネイルファイルの存在チェックや削除処理が上手く行かない以外は
問題なさそうですので、やっぱサムネイル作成処理の何か足りないのかな...と思ってるんですが。よろしくお願いします。
42 :
32:2007/08/27(月) 15:17:05 ID:iThHKhO2
すみません、またsageちゃいました。。。
41は32です。
>>32 >thumbnail.inc.php を使用してサムネイル画像も生成してます。
おかしいな公開してない筈なんだが...
貴方はスパーハカーですか、いつ私のPCから持ち出した!
つか同じファイル名を採用してるのなんてザラなんだから
出所が何なのか示そうよ。
宣伝か・・・
うん自分の立場だけで回答者側のこと全然考えてないよね。
まぁスルーして自分で検索して調べたけど。
46 :
32:2007/08/27(月) 15:32:40 ID:iThHKhO2
人の立場になって物考えられないってよく言われない?
>>46 だから俺の書いた「thumbnail.inc.php」だと、そんな問題ないよ。
>>41 createThumbnail($path,$file,$ext);
$dtf = $path.$file."s".$ext;
if(is_file($dtf)) unlink($dtf);
作ってすぐ消してみ
49 :
32:2007/08/27(月) 16:00:50 ID:iThHKhO2
>>48 サッパリわかってないのですが
ダウンロードしちゃいけない、もしくは非公開のをダウンロードしちゃってたとかなんでしょうか。
すみません。
ちなみに作ってすぐ消してみましたが
やっぱり消えませんでした。
エラーも出なかったので、is_fileで引っかかってない感じだと思います。
どう考えても釣り、でなければどちらも間抜け
HTML_QuickFormつかったら全部テーブルタグワロタ
みなさんこんにちは
小さな英会話教室をしていて、ホームページを作っています。
そこでスケジュールカレンダーをphpで、できるとのことだったので、
友人からもらったプログラムをリンクさせましたが、
ログインすると、
Parse error: parse error, unexpected T_STRING in /www/a-mail/muse-eng.jp/public_html/schedule/Calendar.class.php on line 85
と、このようにでます。
ド素人なのでプログラムの書き換えもわかりません。
デザインは出来ていています。
phpプログラムを見て適正に修正して頂ける方探しています。
もちろん謝礼贈呈します。予算がないので10,000円で考えていますが、
お力添えいただける方、宜しくお願いいたします。
対象のホームページ www.muse-eng.jp
ご連絡先メールアドレス
[email protected] 宜しくお願いいたします。
よく見るといろんなスレにコピペしまくってる、笑えなくなった
53,54の方へ
真剣なのでお願いします。
>>55 マルチしておいて「真剣」?
自分が何をしているのか知ってるの?
よくわかりませんが、ホントにあてがなかったので...
ご迷惑だったなら無視してください。
すみませんでした
>>52 典型的なメールアドレス収集のためのマルチスレじゃんww
大量に引っ掛けたいなら、細々スレとか行けよw
>>57 迷惑だったら無視?
お前人間間違ってるぞ
普通に困っていただけです。
そして普通の女です。
よくわかっていないだけです。
そこまで言わなくてもいいじゃないですか
なんでその友人に聞かないの?
全く連絡が取れません。
だから困っているのです。
>>52 2ちゃんねる自体始めてのようだから
まずは2ちゃんねるのお約束をよもうね♪
解決しました
お金の代わりに授業料ただにしてくれるなら引き受けます。
>>60 >そして普通の女です。
誰も、男か女か聞いていないのに、なぜ女だと主張するの?
68 :
nobodyさん:2007/08/27(月) 17:10:41 ID:Dd+D38dK
例えばsitemap.xmlのように
<loc>〜</loc>で囲まれたurlのみを抜き出すのは何を使えばいいのでしょうか?
>>68 urlのみってどういう意味?
<loc>テスト</loc>
だったら「テスト」を抜き出したいってこと?
だったら
preg_match
例えばsitemap.xmlのように
って知るかよ、んなxmlファイルw
71 :
nobodyさん:2007/08/27(月) 17:58:53 ID:XzEqAL1W
yum install phpとやってphp5.1.6をインストールし、
その後yum install php-mysqlとやったのですが、
phpinfo()すると--without-mysqlとなっています。
これを有効にするにはどうしたらいいでしょうか?
>>70 >例えばsitemap.xmlのように
>って知るかよ、んなxmlファイルw
sitemap.xmlのフォーマットを知らないで威張っている奴がいるなw
メジャーな検索エンジンが対応しているのに。
馬鹿丸出し。
>>71 remove
入れなおす。
>>72 使わん奴はしらんだろ
お前は全知全能の神かw
>>73 >使わん奴はしらんだろ
>お前は全知全能の神かw
使う使わないは別に、だいぶ前に話題になった話だが。
>>72 ほう、それはどこの標準化団体が定めた仕様なんだ?
それは"sitemap.xml"という一般名詞なのか?
俺が適当に書いたsitemap.xmlはsitemap.xmlではないのか?
特定の形式で記述されたxmlファイルを検索エンジンが「対応」してるだけだろ。
つまりはそういうこと。
馬鹿丸出しはお前だ。
日記のスクリプトを作りたいとおもっているのですが、
ログファイルは、今のところひとつのファイルにまとめて、
file_get_contentsで一気に読み込んで分割して表示
という方法しか思い浮かびません。
この方法ではログが多くなったときに重くなりそうなので、
何かほかにログ保存&読み込み方法があれば教えていただけませんか?
>>76 ファイル形式にこだわるなら月別に纏めるという手もあるよ
火別にまでするのはどうかと思うけどindexを作れば問題ないかな
>>75 お前は必死すぎwww
そういう屁理屈で自分の無知を誤魔化すやつは実務では使いものにならない典型。
>>77 月別というやり方がありましたか…
ありがとうございます。それでいこうと思います。
80 :
nobodyさん:2007/08/27(月) 18:30:52 ID:C5rbwAW+
俺もsitemap.xmlとか知らない
自作?自作ならニュース配信しか作ったことないや
Cakeスレで以下のようなレスを見たのですが
>> secureな方のcookieにhttpのsession id情報持たせておけば基本的に終わりじゃん
>違うぞ。セキュリティの勉強をしたほうがいい。
>Amazonとかみればわかるように、商品をカートに入れるまではhttp
>そのあと会計時はhttps。つまり一連の処理がhttpsだけで完結する処理ではない。
>セキュアな方のクッキーにセッションIDを持たせた場合、
>それをhttpで送ると盗聴されセッションハイジャックできてしまう。
>だからhttp用ととhttps用と二つのセッションIDを使用することになる。
>そしてサーバー内でその二つを紐付けしておかなければならない。
>もちろんhttp用セッションIDは盗聴される可能性があるから
>それを奪われても、その情報だけからhttps用セッションIDを取得できてはいけない
httpとhttpsを行き来する場合、それぞれ2つのセッションIDを作って、
裏で紐付けするのが一般的なのでしょうか?
83 :
82:2007/08/27(月) 18:56:39 ID:???
追記。
さらに、HTTPSからHTTPへ行きながらセッションを継続させる場合は、
セッションIDをPOSTで送らないと意味がないですよね?
>>82 はじめからhttps使えば良いのでは・・・
でなければ鯖にhttpセッションID名の別ファイルを作っておいてhttpsセッションIDと関連付けとくとか
85 :
71 :2007/08/27(月) 19:06:01 ID:XzEqAL1W
removeしてからもう一度installしましたがダメでした。
なにかヒントはないでしょうか?
php.iniの設定でしょうか?
86 :
82:2007/08/27(月) 19:09:02 ID:???
>>84 そういわれてみればそうですね。
全てをhttpsにした場合に起こる弊害ってあるんですかね?
>>85 yum remove php php-mysql
yum install php php-mysql
同時または先にmysqlを入れてないとダメですよ?
--without-mysqlはmakeの段階なのでiniを弄ってどうにかなるものではありません。
今、手元に犬がないから確かめれない。他に何かあったっけ?>ALL
>>86 負荷がかかるくらい
88 :
nobodyさん:2007/08/27(月) 19:25:58 ID:Dd+D38dK
89 :
nobodyさん:2007/08/27(月) 19:30:59 ID:UW8c1qdS
質問です。
SQLのLIMITみたいなものをファイル操作で行いたく
指定した行から何行取得する関数を作りました。
function read($file, $start, $end){
$fp = fopen($file, "r");
flock($fp, LOCK_EX);
$pos = $l = 0;
$line = array();
while(count($line) != $end){
$c = "";
$pos = ftell($fp);
while($c != "\n"){
$c = fgetc($fp);
}
if($l >= $start){
fseek($fp, $pos, SEEK_SET);
$line[] = trim(fgets($fp));
}
$l++;
}
return $line;
}
正常に動作はするのですが、1バイトずつデータを読み込んで行く為
ファイルサイズが膨大になれば遅くならないかな?と思っています。
何か他にいい方法があればご教授お願い致します。
>>89 ないのでは?
しいて言うならfile関数で全行を一度配列にほりこんで
配列番号で該当区間を取得するとか・・・
92 :
nobodyさん:2007/08/27(月) 19:38:36 ID:UW8c1qdS
>>91 file関数でやるのが手っ取り早いのですが、ファイルサイズがでかすぎると
メモリ関係のエラーが予想できますよね。
ですので、その方法は排除しました。
>>92 メモリエラーって何万行読み込ませるつもりだよ…
>>92 行単位で読む関数があるけど結局後ろの方を読もうとすれば遅くなります。
別プロセスを嫌うならsqliteなどを検討してみるのも悪くないかもね。
95 :
nobodyさん:2007/08/27(月) 19:45:30 ID:UW8c1qdS
>>93 今回、使用する上ではいいとこファイルは10M程度だと思います。
ファイルを操作するクラスを作成しているので、あくまでこれから先を考えての話です。
96 :
nobodyさん:2007/08/27(月) 19:52:44 ID:X39h0Mb6
$mlto = "
[email protected]";
$mlfr = "From: " . mb_encode_mimeheader("あああ<
[email protected]>");
mb_send_mail($mlto,$mlsb,$mlms,$mlfr);
上記のようなFromに全角文字を含み、且つniftyドメイン宛に
メール送信を行うと、受信者側では、Fromヘッダが
あああ<
[email protected]>@nifty.com
や
あああ<
[email protected]>@Return-Pathの@以下
といった形で送信されてしまいます。
環境1:
ロリポのレンタルサーバ
OS:Linux
Server:Apache
PHP:4.4.6
環境2:
自前のサーバ
OS:Win2003Server
Server:IIS
PHP:5.2.3
上記2つの環境で試しても同じ結果になりました。
niftyドメイン以外への送信は問題ないのですが、
何が問題として考えられますでしょうか。
ちなみに、niftyに問い合わせても回答はもらえませんでした。
97 :
nobodyさん:2007/08/27(月) 19:56:29 ID:UW8c1qdS
>>95 元々、PHP5+MySQLで作成していた問い合わせシステムなんですが
クライアントの都合により、サーバーの環境が変えられないらしく
PHP4+ファイル操作に直してくれと、要望があったんですよね…
SQLiteは自分も検討したのですが、クライアントの環境の詳細が分からないので
やめたほうが無難かなっと考えました。
>行単位で読む関数があるけど結局後ろの方を読もうとすれば遅くなります。
やはりこれはしょうがないと割り切り素直に作成した関数で乗り切ろうと思います。
98 :
nobodyさん:2007/08/27(月) 19:57:08 ID:UW8c1qdS
>>97 表示の仕方によるけど削除等で空ブロックを作る事を前提とするなら
ID等から複数のファイルに分割して読み込み速度を向上させる事は
可能ですね。
>>95 そんな先の事考えるなら先にファイルの分割や
DBの利用を検討するような方向のほうがいいんじゃないの?
>>95 ファイルが極端にでかくなったら、PHPでいくら必死に頑張っても
素直にシェルでheadとtailを繋いだ方が速かったりするよ。
いっそCで書いてPECL拡張で使えるようなもの作んなきゃ。
78ですが、日記スクリプトの制作でもうひとつ質問が・・・
月単位でログを保存しているのですが、
ログ月の移動の為に簡単なカレンダーを表示して、その月のログが保存されている所だけをリンクしたいと思っています。
2007 01 02 03 04 05 06 07 08 09 10 11 12
上のようにしたいのですが、
「一つ一つログの存在をfile_existsで確認して、trueの場合だけリンクを出力する」以外に方法はないでしょうか?
file_existsの負荷が心配で・・・どなたか教えてください。
「作ったときにどっかに作ったことを記録しとく」
>>103 何度もすみません。
ありがとうございます。
長い文字列を短くする関数ってありませんでしたっけ?
どこかで見た覚えがあるのですが、忘れてしまって…
106 :
105:2007/08/28(火) 00:04:31 ID:ed8362dv
すいません、ID出し忘れです。
短くするっていうか部分をカットするっていう感じでいいならsubstr
ばかじゃねえのsubstrじゃええよバカだね。
ほんとにレベルひくいな
109 :
nobodyさん:2007/08/28(火) 02:32:07 ID:VJugMAtZ
>>108 煽るだけしかできないカスは黙ってろ
ていうかそうおもうなら自分で答え言えばいいだろ
まぁまぁそう熱くならずに、自分のおならの臭いを嗅いでエクスタシー感じようよ。
少ないヒントで答えを出そうとする
>>107のエスパーぶりは評価しないとな
115 :
nobodyさん:2007/08/28(火) 08:29:23 ID:oYOChStQ
おかしな事になっているので
お暇な方いたらちょっとお付き合いください。
OOPの勉強していて、あるプログラムを作ってみたのですが
エラー表示が出ずに
http://www.gomo.jp/exp/ref_logger.php 「表示が出きません。サーバーが見つからないか、DNS エラーです。」という画面
(たぶん他の方もそう見えると思うのですが、うちではこのページはそういう画面です。)になります。
このプログラムがなぜ動かないかはさておき、なぜエラーじゃなくこういう画面になるのでしょうか?
以前にも別のサーバーで同じような状態になり、デバッグに非常に手間取ったことがあります。
その時はたしか、存在しないファイルをrequireしていたのか、存在していないクラスをnewしてたとか、そんな感じの間違いだった思います。
くどいようですけど、いちおう確認のため・・・
私が疑問に思っているのは、このソースがなぜ動かないかではなく、なぜエラー表示が出ないかです。
ちょっと恥ずかしいけどソースさらします。
http://www.gomo.jp/exp/ref_logger.txt お願いいたします。
>>115 うちの環境でも動かないから大丈夫w
ループして落ちているようにしか見えませんよ
>>115 エラーメッセージが出るような間違いをしてれば画面も出るだろうけど、
何も表示せずに終わってしまうようなバグも多いよ。
バグってのは必ずしもエラーとは限らない。
(ロジックミスとかは、エラーではなく変な動きのまま正常終了してしまう)
その場合、出力が空っぽのためブラウザが認識できず
相手先のサーバーが繋がってないようだ、と誤認識される。
むしろ
> その時はたしか、存在しないファイルをrequireしていたのか、存在していないクラスをnewしてたとか、
このケースでメッセージが出てこないってのが不思議。
php.iniでエラー出力を「なし」に設定してたんじゃあるまいな?
118 :
nobodyさん:2007/08/28(火) 11:40:28 ID:/qxtkLLI
変数$nameに
AAA_○○○
AAA_○○○_BBB
AAA_○○○_BBB_CCC
AAA_△△△
AAA_△△△_BBB
AAA_△△△_BBB_CCC
のような文字列が格納されている時、○○○や△△△の部分のみを取り出すにはどのような記述をすれば良いですか?
preg_match('/AAA_(\w+)/', $name, $matches);
ここまでは考えたのですが、その先が思いつきません。
宜しくお願いします。
$a = explode('_', $name);
echo $a[1];
AAA_(\w+).*
121 :
nobodyさん:2007/08/28(火) 12:00:05 ID:/qxtkLLI
お二方、ご回答ありがとうございます。
わざわざ正規表現を使わなくても良かったんですね^^;
122 :
115:2007/08/28(火) 12:20:51 ID:oYOChStQ
>>116 >>117 レスありがとうございます。
エラーは全部出るようにしています。
ループして、PHPが何もヘッダーを送らずダウンしたってことでしょうか?
不正終了したときもエラーを出すように設定できないものでしょうか?
何かしらヒント出してくれると、デバッグも楽なのですが。
> その時はたしか、存在しないファイルをrequireしていたのか、存在していないクラスをnewしてたとか、
このケースは、勘違いでしょう。すいません。
いろいろな部分をコメントアウトして、やっと動いたのしか覚えてません。
何かをnewしてるとこあたりだったので勘違いしたんでしょうかね。
その時も、ループしてひたすらインスタンスつくりまくってたのかも。
今、マニュアル見てみたんですけど、staticなメンバーってstaticなメソッドからしかアクセス出来ないみたいですね
そこでエラー表示出してくれても良いような気もするけど
質問があります
本当にくだらないのですが、簡単なスクリプト(掲示板やカウンター)などを作られるときに、関数を沢山作って管理するほうですか?
参考にしたいので、よろしくお願いします。
ファイル入出力やフィルタリングは
外部ファイルにクラスを作って使い回していますが何か?
まぁ、確かに関数より記録リソースの操作モジュールでも作っといたほうが色々楽だろうけどねぇ。
128 :
96:2007/08/28(火) 13:53:56 ID:y77U9tuf
自己解決しました。
$mlfr = "From: " . mb_encode_mimeheader("あああ<
[email protected]>");
を
$mlfr = "From: " . mb_encode_mimeheader("あああ") . "<
[email protected]>";
とすることで正しくFromヘッダが送信されました。
niftyのメールサーバは何か特殊なんですかね・・・。
129 :
nobodyさん:2007/08/28(火) 13:56:39 ID:Vlzye/6Z
$data = array(
array('id'=>1,'cnt'=>5,'title'=>'hoge'),
array('id'=>2,'cnt'=>4,'title'=>'foo'),
array('id'=>3,'cnt'=>0,'title'=>'bar')
);
こんな配列があったとしてcntの順にソートしたいのですが可能でしょうか?
どんな方法で出来ますでしょうか?
130 :
nobodyさん:2007/08/28(火) 13:59:22 ID:YkG/SsxW
>>4の簡易FAQの5ですが
print <<< DOC
<form method="POST" action="$_SERVER['SCRIPT_NAME']">
DOC;
のように他の文字列が隣接してないのにエラーが出てしまうのは、
どういう解釈がされるからなのでしょうか?
あと変数を波括弧で囲む時
{$_SERVER['SCRIPT_NAME']}
${_SERVER['SCRIPT_NAME']}
の2種類の書き方がありますがこの違いってなんなのでしょう?
131 :
nobodyさん:2007/08/28(火) 14:24:19 ID:GM5VT/dP
$format="%-s %-35s %-60s %-s";
printf($format, $a, $b, $c, $d);
1行目にある「%-s」や「%-35s」などにあるマイナス文字はどのような意味
なのでしょうか。
オプションの符号指定子。これは、 数値で符号 (- あるいは +) を使用するよう指定します。 デフォルトでは、数値が負の場合の - 符号のみが使用されます。 この指定子により、正の数にも強制的に + 符号をつけることができます。 これは PHP 4.3.0 で追加されました。
マニュアル読まないクズは市ね
>>129 cntでソート用の配列作ってarray_multisort( )
>>131 文字列の場合は-は左詰で表示
$sumの値がokでなければループ
while ($sum != "ok"){
..........
}
これでできないんですがどこがおかしいのでしょうか
136 :
135:2007/08/28(火) 18:32:18 ID:???
すみません、
>>1読むの忘れてきたのと、
マニュアルに載っていたのを見ていませんでした
出直してきますね
137 :
nobodyさん:2007/08/28(火) 18:34:42 ID:wOTpbT+K
フォームに\だけを書いてポストして
$_REQUESTを表示させると\\になります
この現象は何ですか
139 :
nobodyさん:2007/08/28(火) 18:38:35 ID:wOTpbT+K
>>138 これを中止させるにはどうすればいいですか?
>>139 エスケープを解除する関数
「PHP エスケープ」出てくるんじゃね?
>>139 PHP.INIのマジッククォートを停止させる
function en_stop($str)
{
$tmp=ereg_replace("[\][\]","\x5c",$str);
$tmp=ereg_replace("[\][']","'",$tmp);
$tmp=ereg_replace("[\][,]",",",$tmp);
return $tmp;
}
>>合ってるとオモ
動かないか?
内部コードutf8、pcサイトutf8、携帯サイトsjis
で運用しようと思っています。
この運用だと、ポストされるエンコードがsjisとutf8になりますよね
sjisだった場合は当然utf8に変換しないといけないのですが、
mb_detect_encodingは
携帯の絵文字が混ざった文章もちゃんとsjisと判定できるのでしょうか?
あるいはもっといい方法があれば教えて下さい
まぁまぁ、そう熱くならずに自分のおならの臭いを嗅いでエクスタシー感じようよ
>>147 そうなんですか
絵文字はsjisの範囲内で実現してるんですね
ありがとうございました
150 :
nobodyさん:2007/08/29(水) 06:42:45 ID:uYM+HrXL
$test = "テスト";
$template = <<<_TMP_
テンプレートです。
タイトル:{test}
おしまい
_TMP_;
preg_replace('/{(.*)}/', '$$1', $template);
{hogehoge}を$hogehogeに格納されている値に置き換えたいのですが
何か良い方法はありませんでしょうか?
このやり方では、「$test」と出力されてしまいます
>>150 <?php
$test="テスト";
?>
テンプレートです。
タイトル:<?=$test;?>
おしまい
152 :
nobodyさん:2007/08/29(水) 09:19:27 ID:uYM+HrXL
>>151 早速のご回答ありがとうございます
「テンプレートです。
タイトル:{test}
おしまい 」
これは外部ファイルとして保存しておいて
呼び出してから文字列の置き換えを行いたいのです
153 :
nobodyさん:2007/08/29(水) 09:25:27 ID:bOc70w1/
拡張子phpにしてincludeでおk
154 :
nobodyさん:2007/08/29(水) 09:54:17 ID:uYM+HrXL
何度もすみません
詳しく言うと、アップーロードにて一般の方にテンプレをUPしてもらい
そのテンプレを元に作成したいのです
なので、拡張子はtxtがメインになると思います
>>154 アップロードしてもらって移動した時点で拡張子を変えればおk
>>154 指定先にファイルがあれば拡張子がなくてもincludeできる
>>154 preg_replace('/{(.*?)}/e', '$$1', $template);
>>154 外部のユーザからアップロードされたファイルをincludeして実行するという話を
本気にしてはダメだ。eスイッチも同様。
動的にやりたいならpreg_replace_callbackで。
そうでないなら preg_replace(//,array("hoge"),array($hoge)); とか。
>>148 理由は単純で殺人未遂だから。
おならには、硫化水素という有毒なガスが含まれていて、
量によっては即死する。
つまりおならによって人が死ぬことも理論的にはありえるわけで、
そのような殺人未遂行為(不可罰であるが)が、人から嫌がられるのは当然。
160 :
nobodyさん:2007/08/29(水) 11:27:16 ID:uYM+HrXL
>>157-158 ありがとうございます
preg_replace_callbackを参考に
$test = "aaaaaa";
$text = <<<_TEXT_
test
{test}
test
_TEXT_;
function getVar($matches){
$matches = trim($matches[1]);
global $$matches;
return $$matches;
}
$text = preg_replace_callback("/{(.*)}/","getVar",$text);
echo $text;
としてみると見事に解決しました。
Basic認証をしてアクセス管理をしているのですが、
ブラウザを閉じない限りログアウトできませんよね?
再度認証できる方法はないのでしょうか?
すいません、やはりBASIC認証では無理みたいですね。
失礼しましたm(..)m
>>159 DHMOの危険性に比べたら、とてもとても
>>160 それでいいのなら別にいいのだけど、
その実装だとテンプレートをアップロードできる人が
変数を全部参照できることになるから注意してね。
つまり、$mysql_passwordにパスワードを入れとくとやばいとかそういうこと。
166 :
nobodyさん:2007/08/29(水) 13:34:48 ID:uYM+HrXL
>>165 ありがとうございます
特に重要なものは取り扱わないので大丈夫です
>>166 個人的にはテンプレート用の配列のみを置換するようにした方が便利だと思うよ。
$replaceStr['test'] を {test} に置き換えるとか。
ヒアドキュメントの中に関数(例えばif)などを入れて動作させることは可能でしょうか?
以下のようにやってみたのですが出来ないようです。
echo <<<EOF
I am <?php if($test == 1) {echo 'hoge'} ?>
EOF;
1はtrue
>>168 echo は与えられた文字列を出力するだけ。
eval() なら出来る。
ヒアドキュメント内はすべて文字列として出力されちゃうんじゃない?
一度ヒアドキュメントを抜けないと無理だと思う
mysql_connect関数の第一個目のパラメーターはホスト名なんですが
ホスト名が無い場合は使えないんでしょうか
ひあどきゅめんとにはいるまえにいふなりなんなりへんすうをしょりして
ひあどきゅめんとないにへんすうをいれれば
ふつうにできるじゃん。
>>173 localhostか127.0.0.1でいいんじゃ。
>>174 さすが行政書士だなw
漢字も満足に書けないんだなぁwww
>>175 そう書いておけばたしかに動くんです
そうしておきます
179 :
nobodyさん:2007/08/30(木) 00:08:26 ID:6umYOf5a
多階層のxmlのパースで困っています
domxmlを利用しています
このような感じです
<one>
<title>
<main>あ</main>
<man>
<blue>
<a>い</a>
<b>う</b>
</blue>
<pink>
<a>え</a>
<b>お</b>
</pink>
</man>
<woman>
<blue>
<a>か</a>
<b>き</b>
</blue>
<pink>
<a>く</a>
<b>け</b>
</pink>
</woman>
</one>
<two>
(↑の同じ構造)
</two>
180 :
179:2007/08/30(木) 00:12:36 ID:6umYOf5a
このような多階層のXMLで、twoの要素を全て、変数に入れたいのです。
(配列ではダメです)
まずは、
$dom = domxml_open_file("xmlのURL");
$root = $dom->document_element();
$node = $root->get_elements_by_tagname('two');
みたいに書いたのですが、ここから効率のよい取得方法が分かりません。
自分で書いてみたプログラムは200行ぐらいになりました。。。
どなたかご教授ください。
utf8でhtmlソース吐く時って
BOMを付加するべき?しないべき?
つけてはいけない
つけてはいけないをつけてはいけない
184 :
nobodyさん:2007/08/30(木) 01:40:21 ID:uPaIz1km
携帯絵文字一文字だけでdetect_encodingしてみました
mb_detect_orderは("sjis, UTF-8, EUC-JP")
すると、utf-8で判定されたり、euc-jpで判定されたりしました
太陽(f89f):UTF-8
ATM(f8c9):euc-jp
これは「絵文字だけでエンコーディングを判定するのは無理ぽ」
ということでしょうか?
またshift-jisを最初に設定しているのにマッチしていないのが気になります
判定方法にバグでもあるのでしょうか?
>>184 絵文字は外字領域(SJISで未使用の範囲)を使ってるので
SJISコードとして判定されないのが正しいとオモ
preg〜ってなんて発音してる?
ぴーしーあーるいーれげっくす
188 :
nobodyさん:2007/08/30(木) 02:54:56 ID:cbvqe7SV
>>186 プレグ
csvファイル専用関数を使うメリットってありますか?
普通のファイル操作系の関数で全然問題ないのですが
Perl Regexの略だよね?
そうだとおもうからpとregをわけてピーレグって読んでるけど
preg_matchのことを
プレグマッテと読んでるが
人それぞれだな
matchはマッチだろ・・・
プレグマッチ
プレグマッチアール(オールだがついついアールと読んでしまう
プレグリプレイス
194 :
186:2007/08/30(木) 03:57:17 ID:???
プレグが多くて安心した
犯人はヤスw
196 :
nobodyさん:2007/08/30(木) 04:37:15 ID:cbvqe7SV
require_once('config.php');
で、
Warning: require_once(1) [function.require-once]: failed to open stream: No such file or directory
Fatal error: require_once() [function.require]: Failed opening required '1' (include_path='.;C:\xampp\php\pear\')
というエラーが出てしまいます。
「No such file or directory」はファイルがないということですが、同じフォルダにその名前のファイルが存在します。
他に何か思い当たることはないでしょうか・・・?
大文字小文字とかじゃねーのw
198 :
nobodyさん:2007/08/30(木) 04:50:46 ID:cbvqe7SV
すみません、超初歩的なミスでした
or die()ってできないんですね
返り血考えるの忘れてました
殺人事件キタコレ
201 :
nobodyさん:2007/08/30(木) 10:18:40 ID:3muSx8fZ
お願いします。
PHPである項目を、セレクトボックスでの選択か、もしくは
テキストボックスへの入力にさせたいのです。
つまり、セレクトボックスでの選択かテキストボックスに入力かが
されていればOKで、両方になにもない場合のみ「選択しろ」という
エラーメッセージを出したいのですが、どうしたらいいですか?
// 営業所コード
if($_POST['g_c'] == '') {
$err_u .= '[営業所コード]が未選択です。<br>';
}
// 営業所の名前
if($_POST['g_n'] == '') {
$err_u .= '[営業所の名前]が未入力です。<br>';
}
現在エラーメッセージを出させる記述はこうなっているのですが、
この場合はどちらかが未入力・未選択でもエラーが出ます。
[営業所コード] か、[営業所の名前] どちらかが選択・入力されていればOK
というようにはどうしたらいいのか、すみませんが教えてください。
||
203 :
nobodyさん:2007/08/30(木) 11:00:36 ID:Qqw8XwhJ
array_push()に関して質問なのです
array_push()はどんな利用目的で使うのが正しいのでしょうか?
マニュアルを見る限りarray_push()をつかうなら関数を呼ぶオーバーヘッダ
のない$array[] = のほうが良いとかいてありました。
204 :
201:2007/08/30(木) 11:03:53 ID:3muSx8fZ
解決しました、&& でいけました。ありがとうございました。
>>203 自分でインデックス管理して最後尾に追加するなりのコードを
書くなら$array[] =...でいんじゃね。
>>203 pop, shift, unshiftと作ってpushも作らざるを得なかっただけなので使う必要なし
配列に配列を加えるときには使ってもいいよ
似たような関数にarray_merge( )もあるけどね
207 :
nobodyさん:2007/08/30(木) 11:44:06 ID:Qqw8XwhJ
209 :
nobodyさん:2007/08/30(木) 14:33:45 ID:OWaQUMa6
ラフなログイン認証コードを書きたいのですが
basic認証よりはセッションで管理するほうがいいですか?
>>209 basic認証はログアウトがだるくなるからやめたほうがいい
211 :
nobodyさん:2007/08/30(木) 14:47:36 ID:OWaQUMa6
ありがとうございます。
セッション使うことにします
212 :
nobodyさん:2007/08/30(木) 17:43:29 ID:bLGc1mde
悪ブログ ですよ?
むしろゴミブクロ
PerlからPHPに現在移行をしております。
Perlの場合、日本語や絵文字を処理することを考慮し、例えばSJISで
画面を出力する場合でも、ソースはEUC、処理内でJcode等を使用
してSJIS出力するようなことをしておりましたが、PHPの場合はどの
文字コードで書くのが一番問題等発生しにくいのでしょうか。
ご教示いただけますと幸いです。
ISO-2022-JP
217 :
nobodyさん:2007/08/30(木) 18:36:08 ID:Qqw8XwhJ
>>217 早速のご返答、有難うございます。
PHPをよくSJISで書く方がいらっしゃるので、日本語処理関係が
充実しているのかなと多少期待してしまってました。
SJISでデータを受けてEUCに変換してSJISに戻すというのが
非常に手間だったので。。
同じくEUCで書きたいと思います。
ご教示有難うございました。
今時EUC(笑)
アルファベットを数字に変換する関数とかないでしょうか。
aaa05130
といった感じのIDを使用しているのですが、
これを一意な数字列に変換したいのれす
ord
>>219 携帯サイトを作っているのですが、ソースからSJISにしたほうが
都合いいのでしょうか。
>>219 今時、EUCというが、処理コストの関係で、
EUCにせざるを得ない現場はたくさんあるぞ。
あまり知ったかぶりするなよw
処理コストの問題ってなに? エロイ人教えて
今どきというか主流だけどな
>>218 PHPをSJISで書いてる人が多い!?
それ、どこの馬鹿サイトの受け売りだよ。
PHPは確かにマルチバイトに強いが、
コードをSJISで記述するのは正式サポートしていない。
専用コンパイルした特殊なバージョンを使わないとダメ。
逆に、PHPはマルチバイト処理がPerlより強力なので、
その辺は自動変換でやってしまうのも1つの手ではある。
>>223 出力だけSJISにしてりゃ、さほど処理コストには大差ないわけで
例えば、UTF-8で全て文字コードを統一させようとすると、
EUCの場合と比べてサイズが増大する。
西暦を4桁ではなく2桁で処理していたのと同じ問題。
サイズが増えれば、ストレージのコスト、バックアップコスト、日々のプロセスコストが増える。
こういった諸々の理由から、クライアントからEUCを指定してくる場合も多い。
231 :
nobodyさん:2007/08/30(木) 20:10:04 ID:CeKsBD3c
Linux、apache php4.30
いつもお世話になっております。
アニメーションgifのサムネール画像を作ろうかと思い、
ソースのgif画像をイメージ関数のimagecopyresampledでリサンプリングしたんですけど、
ノイズの入った画像静止画像が得られてしまい、失敗しましました。
どうすりゃサイズ縮めたアニメーションgifをえられるでしょうか。オネガイシマスm(_ _)m
232 :
222:2007/08/30(木) 20:14:52 ID:???
なんだかすごく勉強になりました。
PHPをSJISで書いている人が多いのは、うちの職場の
方々なんです。
別にルールとかは一切ないんですけどね。
グローバル変数を使いまくるようなタイプなので、ちょっ
とこちらで質問させていただいた次第です。
決してそれが悪いということを言っているわけではなく、
僕の書き方とだいぶ異なると思ったためです。
>PHPは確かにマルチバイトに強いが、 コードをSJIS
>で記述するのは正式サポートしていない
ということも知らなかったので、非常に説得力のある
ご意見でした。
やはりEUCで書くことにします。
皆様有難うございます。
今日のレスは、久しぶりにとても参考になりますね。
このスレを毎日読んでいて良かった。
sjisでもまったく問題ないよ
文字といってもコンピュータにとってはただの数字だし
>文字といってもコンピュータにとってはただの数字だし
>文字といってもコンピュータにとってはただの数字だし
>文字といってもコンピュータにとってはただの数字だし
sjisでphpコード書いたら
特定の日本語文字で\を入れないと
コンパイルエラーになるけどな。
ーなんかもエラーになりやすいですね
ダメ文字だな
それは、文字コードのせいじゃなくてphpの言語体系が糞なだけ。
たとえば、javaでいえば、sjisで書いても内部でutfに自動変換される。
>>231 自己レス。どうも標準のGDじゃだめみたいっすね。また何か考えます。じゃ。
レベル下がってきたね
>>242 行政書士が紛れ込んでいるせいじゃねwww
夏休みは、免許取得ラッシュだから、あっちこっちで行政書士が暴れまくりだよwww
ほんと、大した法律知識も持たないで金稼ぐ阿漕な商売だぜ
244 :
nobodyさん:2007/08/30(木) 22:54:46 ID:sqac9GrM
文字コードEUC-JPを使い、MySQL(バージョン: 4.1.20)でデータベースをphpMyadminで管理・運用していましたが、
この度、ドイツ語を取り扱うことになり、文字コードをUTF-8に変えました。
もちろんデータベースのレコードもUTF-8にエンコードしました。
文字化けなどはしてません。
しかしここで問題が発生しました。
phpmMyadminでの検索機能で、あるはずのレコードが検索にひっかからなくなってしまうことが起きています。
例)TBL_exampleというテーブルに、Namaeというフィールドがあり、その中にドン・ジョバンニというレコードがあります。
SELECT *
FROM `TBL_example`
WHERE `Namae` LIKE '%ドン%'
と入れると、きちんとドン・ジョバンニが結果に出てきますが、
SELECT *
FROM `TBL_example`
WHERE `Namae` LIKE '%ジョバ%'
と入れると、ドン・ジョバンニが出てきません。
Namaeフィールド以外に、英語で情報が入ったフィールドがあるのですが、そちらでは問題なかったです。
解決のためのヒントをいただければ幸いです。どうぞよろしくお願いします。
>>240 >たとえば、javaでいえば、sjisで書いても内部でutfに自動変換される。
これが「言語体系」?
そんなにSJISが好きなら--enable-zend-multibyteすりゃいいのに。
もっとも全ての入出力で変換が掛かる訳じゃないけどね。
そもそもJavaとPHPじゃ単純比較できんだろ
mysqlとの連携ってどれぐらい早いですか
たとえば掲示板の書き込みデータを区切り文字で区切って保存、読み込みするのと
mysqlのテーブルとして保存、読み込みするのはどちらが早いですか
>>247 データ件数とデータの複雑さにもよる。
100件以下で参照関係なし、とかならテキストファイル使った方がさすがに速かろう。
データ件数による
250 :
nobodyさん:2007/08/31(金) 00:41:05 ID:icDPlmBN
すみません。
テキストファイルから文字を読み出し、
1024文字で分割し、それぞれをテキストエリアに表示。
ってのがうまく出来ないんです。
どなたか教えてほしいです。
今までどういうコード書いた?
252 :
nobodyさん:2007/08/31(金) 00:52:54 ID:icDPlmBN
文字を1024文字ごとに<>を加え、それを<>を区切りに分割
までは考えたんですけど、だめですかね?
コードだよコード。
PHP語話せ
>>252 ダメっつーか、それで思った通りの結果が得られなかったのか?
それが良いコードかどうかはともかく、動くことは動きそうだが。
そもそも1024文字ごとに<>を加え、ってのがどうやったのか不明だけど。
255 :
nobodyさん:2007/08/31(金) 00:56:56 ID:icDPlmBN
携帯からなんで無理なんです。
じゃあパソコンから書き込んでください。
257 :
nobodyさん:2007/08/31(金) 01:01:08 ID:icDPlmBN
chnuk_split
explode
使いました。
chunk_splitなんて関数初めて知ったよw
使いどころがなさそうな関数だな。
どんな発想でこんな関数を見つけてこれるんだ?
どっかのコードのコピペ?
しかも脆弱性情報満載
>>257 あー、まー、てめー、もっと
どんな関数があるのか調べろというこった。
260 :
nobodyさん:2007/08/31(金) 01:06:09 ID:AXGaJdGV
>>250 ファイルを読み出すときにどの関数を使っていますか。
261 :
nobodyさん:2007/08/31(金) 01:08:06 ID:icDPlmBN
脆弱性ですか。
どこに穴があるのか教えて下さい。
262 :
nobodyさん:2007/08/31(金) 01:10:01 ID:icDPlmBN
file_get_contentsです。
263 :
nobodyさん:2007/08/31(金) 01:10:32 ID:AXGaJdGV
>>257 freadを使わないのは、 freadを知らないからですか。
それともfreadでは駄目な理由があるのですか。
宿題なんだからそんなに簡単に正解のヒントをあげちゃダメっ
265 :
nobodyさん:2007/08/31(金) 01:37:05 ID:icDPlmBN
freadで1024ごとに分割して出力はどうするんですか?
HTMLの出力すらできないんかいっ
267 :
nobodyさん:2007/08/31(金) 01:49:36 ID:icDPlmBN
1024ごとに分割された出力が出来ないので、
htmlはわかりますよ。
ループ処理くらい知ってるんだろ?
269 :
nobodyさん:2007/08/31(金) 02:02:43 ID:icDPlmBN
ループ…foreachで出来ますか?
270 :
nobodyさん:2007/08/31(金) 02:05:34 ID:AXGaJdGV
272 :
nobodyさん:2007/08/31(金) 02:32:31 ID:icDPlmBN
わからないです。
携帯ってこんなに長くIP変わらないの?
IDおんなじだよね。
>>272 ソースかけ
学校で何を習ってるんだ、君は…
275 :
nobodyさん:2007/08/31(金) 02:40:34 ID:icDPlmBN
IP帯域は頻繁に変わりますね。
自分のサイトはPCのアクセスを.HTACCESS使って制限してます。
>>269 他のループは知らんのか。
関数より、制御構造を一通り使えるようになっとかないと何も作れないぞ。
ほとんど正解書かれてるじゃん >レス
255 名前:nobodyさん[] 投稿日:2007/08/31(金) 00:56:56 ID:icDPlmBN
携帯からなんで無理なんです。
↑こういう嘘つくやつに答える必要はない。
278 :
nobodyさん:2007/08/31(金) 02:49:30 ID:icDPlmBN
>>276さん
ループ
fread
を使う、ということでしょうか?
279 :
nobodyさん:2007/08/31(金) 02:50:59 ID:icDPlmBN
>>278 好きなのを使え。
それ使ってもできるし
使わなくてもできる
違いは、どれが一番簡単にやれるかどうかって話しなだけだ。
で、お前が今まで書いたコードは?
>>279 275 名前:nobodyさん[] 投稿日:2007/08/31(金) 02:40:34 ID:icDPlmBN
IP帯域は頻繁に変わりますね。
携帯はIPじゃなく個体識別でID振られるんじゃなかったっけ?
283 :
nobodyさん:2007/08/31(金) 02:56:17 ID:icDPlmBN
AUのIP帯域表見てこいよ
俺はDocomoだけど、
WILLCOMなんて糞多いぞ?
>>283 それ、反論になってないw
>>277>>281は「2chのIDは接続IPごとに振られるはずだから、
IPが頻繁に変わる携帯なら毎回違うIDになるはず」と言ってる。
だが、それ自体が勘違いなので、気にする必要なし。
そんな糞仕様だったら携帯使ってるやつは自演しまくり、
他の携帯のやつとID被りまくりになる。
で、お前が今まで書いたコードは?
chnuk_split
explode
foreach
こんだけ知ってて作れないってのもどうかと思う。
効率は決して良くないが、できないことはないぞ。
>>284 お前の論理展開もおかしいぞ。
> そんな糞仕様だったら携帯使ってるやつは自演しまくり、
頻繁に変わるIPでIDが決まるなら、自演なんか出来ないだろw
お前馬鹿すぎ。
288 :
nobodyさん:2007/08/31(金) 03:15:10 ID:icDPlmBN
>>284 俺自身個体識別番号でIDなんて知らなかったんだから仕方がないだろ。
携帯に関してIPでIDという意見だったんだから、その可能性は低いだろうということを指しただけだ。
>>286 効率のいい方法が気になるんですけど、速度的にも違うんですかね?
いいから、さっさとお前が書いたコード書け
290 :
nobodyさん:2007/08/31(金) 03:18:45 ID:icDPlmBN
コードは明日でいいですか?
あぁ、来月で良いよ。
292 :
nobodyさん:2007/08/31(金) 03:22:00 ID:icDPlmBN
まずは出来る限り自分でしてきます。ヒント貰えましたから。
お休みなさい。
293 :
nobodyさん:2007/08/31(金) 03:24:27 ID:nPx6LHaB
夏休みの宿題は大変そうだな、こんな時間まで。
来年はもっと早くやろうな。
強気になったり低姿勢になったり全くなんて感情の起伏が激しい子
295 :
nobodyさん:2007/08/31(金) 03:27:18 ID:icDPlmBN
夏休みの宿題なんてとっくに終わったが?
もういいから寝ろよw
297 :
nobodyさん:2007/08/31(金) 03:30:00 ID:icDPlmBN
寝たいんだが…不眠症でな…
わりぃ
不眠症か
どうりで感情の起伏が激しいわけだ
299 :
nobodyさん:2007/08/31(金) 03:37:52 ID:icDPlmBN
そうらしいな。
まぁ…今日は朝日でも見に行くかな。
発言が脂肪フラグくさいなw
強くイ`
302 :
nobodyさん:2007/08/31(金) 05:44:34 ID:qJAlQosv
JISでもダメ文字ってんの?
UTF-8→JISに変換して送信したら
勝手にエスケープ入ったんだけど。。。
さぁ、エスパーさんの出番ですよ
よーしまかせろ
>>302 それはきっとあれだ。
EUC>UTF-8>そのまま保存>取り出し>JIS
とやったんだな。うん。
popen()実行時のPATH変数はどこで設定されているのでしょうか?
CentOS4.5です。
306 :
nobodyさん:2007/08/31(金) 11:59:02 ID:icDPlmBN
分割表示出来た。(`・ω・´)
みんなありがとう!!!!!!!!!!
>>305 そもそもPHPからプロセス起動するときは常にフルパスにしてるし
そうすべきものだと思うからそんなの意識したことも無かったけど、
多分rootユーザの環境設定じゃないの?
PHPはApacheプロセスなんだから、Apache起動時のユーザ環境を
そのまま引き継いでるんだと思うけど。
バイナリ文字列をchrで作成するのって問題ないですか?
何か切り捨てられるasciiコード番号ってあるんでしょうか
>>307 Apache起動スクリプトでPATHを変更してみて確認しました。
Apache起動時のPATH変数を引き継いでました。
ありがとうございます。
>>308 一般にバイナリ文字列ならpack()の方が便利だと思うよ。
つか、バイトオーダーとか、charのサイズとかバイナリの基礎知識ある?
>>247-249 んーmysqlつかって掲示板システム組んでるけど目的は早い遅いじゃないなぁ。
データと外観を別個に扱いたいというか。
外観変えようと思ったら全部のファイルにバッチ流したりってのがメンドイんで
データDBに突っ込ませてるけど間違った用法かなぁ。
トンチンカンキターーー!
314 :
nobodyさん:2007/08/31(金) 13:23:12 ID:WC6dpiwK
質問です
1.hoge.com/hoge.php?test=1234
2.hoge.com/hoge.php/1234
1は$_GETなんですが、2はどうやって1234というキーを取り出せばいいんでしょうか
apache設定
>>314 $_SERVER['PHP_SELF']
>>312 データ形式(ファイルかDBか)と外観はぜんぜん関係ないと思うけど
318 :
nobodyさん:2007/08/31(金) 13:41:36 ID:WC6dpiwK
>>316 $_SERVER['PHP_SELF']でURLを拾って分解するしかないということでしょうか?
>>318 簡単な方法はそれ
.htaccessかApacheの設定で静的URLを動的URLにしてGETで取得できるけど、
そうするのだったまずググってみ
320 :
nobodyさん:2007/08/31(金) 13:45:53 ID:WC6dpiwK
parse_url
322 :
nobodyさん:2007/08/31(金) 14:12:15 ID:icDPlmBN
…見間違えだったやっぱ分割表示出来ない…
for文でやってみたんだが…
もぅだめだ…
スクリプト教えてくれ
コード出すんじゃなかったの?
>>322 freadで1024Byteずつとりだしてechoで吐き出せばいいんじゃね?
>>322 まず自分で書いたコードを出せ。そしたら添削してやる。
327 :
nobodyさん:2007/08/31(金) 14:22:07 ID:icDPlmBN
$source = fopen("./a.txt","r");
for($i = 0; $i < mb_strlen($source) $i++)
{
$x = fread($source,1024);
echo "$x";
}
ワロタ
>>327 > mb_strlen($source)
この条件はおかしい。fopenの戻り値はリソースIDでしかないので
文字列の長さを取得できるようなものではない。
ファイルを全部読みきったかどうかは feof() で判定できるぞ。
このソースはワロタwwwwwww
ヒント
$source = fopen("./a.txt","r");
while(){}
$x = freas($source, 1024)
echo "{$x}"
これ組み合わせれ
必要性はないが別にforでもできる。
ま、普通はwhileを使うだろうが、この場合は根本的な解決にはならん。
これはソース出せんわな ハズカシクテ
333 :
nobodyさん:2007/08/31(金) 14:42:03 ID:icDPlmBN
335 :
330:2007/08/31(金) 14:45:47 ID:???
>>333 大ヒント
マニュアルなり何なりでwhileの仕組みを調べろ
336 :
nobodyさん:2007/08/31(金) 14:47:26 ID:icDPlmBN
whileの条件がわかりません。
50人くらい釣れたのにまだ満足しないとは
>>336 わかりませんじゃねーよ、調べるんだ
携帯だったらPCが使える環境に移動して調べろ
339 :
nobodyさん:2007/08/31(金) 14:53:35 ID:icDPlmBN
学校の宿題って何の話ですか?
家に自作PC一つあるがネット繋がってないんです。
あーー、
わからねぇーーーーーーーーーーーーー、ー、
>>339 while (式)
{
}
式がTRUEの状態のときに{}内を繰り返す
FALSEになるとループから抜け出す
これでわかる?
あと、わからないなら何がわからないか明確に言え
ここにエスパーってめったにこないんだし
342 :
nobodyさん:2007/08/31(金) 15:01:53 ID:1M6g8luz
なぜ
>>314の質問に$_SERVER['PATH_INFO']という答が返らないのでしょうか。
343 :
nobodyさん:2007/08/31(金) 15:02:25 ID:icDPlmBN
344 :
nobodyさん:2007/08/31(金) 15:02:30 ID:1M6g8luz
ID:icDPlmBNがどうやってPHPを勉強しているのか、 そもそもなぜPHPを勉強しているのか、 非常に気になります。
まずマニュアル読めよ・・・
347 :
nobodyさん:2007/08/31(金) 15:05:56 ID:icDPlmBN
あなたが出してくれた条件式の中身だ。
私が求める結果に適する条件式がわからない。
349 :
nobodyさん:2007/08/31(金) 15:10:17 ID:icDPlmBN
>>349 条件式の中身←whileの()の中?{}の中?
351 :
nobodyさん:2007/08/31(金) 15:15:04 ID:icDPlmBN
()
ちょっとみてたがテキストファイルのときは
file_get_contentsのほうがなにやらいいって書いてあったよ
>>351 結果がTRUEになり、終了するとFALSEになるような式
お前がどういう条件でループしたいかだ
>>342 Apacheの設定が必要だったりして説明が面倒くさいから。
>>357 >file_get_contents() はファイルの内容を文字列に読み込む方法として好ましいものです。
もしかして、これ見て何も考えずに「あ、file_get_contentsはなにやらいいんだ!」とか思ってる訳?
>>358 freadでなければならない理由が特に無ければ使わないに越した事無いだろ?
PHPプロマガジンってのがあるんだ
年4回発行かな?
>>359 使わないに越したことはないって…freadに何の不満があるんだお前。
ちなみにfile_get_contentsは「テキストファイルの場合」じゃなく
「文字列変数に取り込みたい場合」にパフォーマンスが高いもの。
ファイルの種類は全く関係ないし、入力したものを出力するだけの
今回のケースではかえってパフォーマンスが低い。
俺がfile_get_contents使うのは特定のURLのページを読み込むときくらいだが
他に使った記憶ない・・・
まぁ、DB使ってるからファイルとか全然つかんw
363 :
nobodyさん:2007/08/31(金) 15:34:39 ID:1M6g8luz
364 :
nobodyさん:2007/08/31(金) 15:35:17 ID:yIsfOZYg
>>361 パフォーマンスというのは速度的、若しくはメモリ的ななもの?
その実測値の比較データを見せてくれたら納得してやる
366 :
nobodyさん:2007/08/31(金) 15:40:33 ID:icDPlmBN
>>354 freadで1024づつ取り出し、ファイルの終端まで取り出したらループを停止。
>>365 は?つーか、逆におまえこそfreadを使うべきでないという理由を実測データをもって示せよ。
普通に検索すればfile_get_contentsのほうが効率的だとでているのを
たかが匿名掲示板の一人が騒いだところで何の説得力も無いわな
>>366 freadでどうすればTRUEが返る?どうすればFALSEが返る?
>>369 ファイル全部を丸ごと読み込みたい場合の話だろそれ。
今回みたいに1024バイトずつしか読み込む必要がない場合でも効率的とか
相当に頭が眠ってるようだな、おまえ。
372 :
nobodyさん:2007/08/31(金) 15:46:11 ID:icDPlmBN
>>370 もうスクリプト出してくれたほうが早い。
>>372 は?スクリプト出したら宿題にならないだろ
しかも聞いておいてその反応は何?
じゃあわからないなら学校の先生にでも聞け
俺はもう答えるのやめる
>>372 そんなの当たり前だ。
だが断る。
不勉強なやつが怠けるのを手伝うほどお人好しじゃない。
今日は盛況だね
夏休みももう終わりだ。もうしばらくの辛抱さw
今日で8月も終わりか…
全部読み込んで分割。これ最強
そっか、高校だったら明日が宿題の提出日か
>>372 ざまぁwwwwwwwwwwwwwwwww
380 :
nobodyさん:2007/08/31(金) 15:54:04 ID:icDPlmBN
商業の先生にPHPわかる奴なんていないですから
商業高校の先生にPHPの宿題出す奴いないですから。
二年、三年は知らないがな。
なぁ、恥ずかしくてソースも出せなかった俺の身にもなれよ、
あのソース見たら俺がどれだけPHPについてわかってないかわかるだろ?
なぁ、もぅソース出してくれよ
>>378 それなら分割しながら出したほうが効率よくね?
>>380 だ が 断 る
努力もしないで他人に頼ってばっかりのゆとりのお前に答えるものなどない
>>380 おまいが商業高校の1年というのはわかった。
384 :
nobodyさん:2007/08/31(金) 15:55:57 ID:icDPlmBN
>>379 馬鹿?w
明日土曜日ですけど?w
学校は9月3日ですからw
ずいぶん前に学校教育が終わってしまった人から質問だが、
実際今の普通科高校じゃどのくらいの事やるんだ?
?モレ?モレはベーシックヤッテタヨ。歳バレソウダケド。
>>380 宿題じゃないなら焦る必要もないじゃん。
まずはPHPのマニュアル本買うか、自宅のPCをネットに繋げてオンラインマニュアルにアクセス。
話はそれからでも遅くはあるまい。
387 :
nobodyさん:2007/08/31(金) 15:57:56 ID:icDPlmBN
>>382 昨日の夜からPCに向かってるが、わからないもんはわからないんだ
お前にとっちゃわからない=努力していない
かもしれないが、俺はいろいろといじくりまわして頑張ってんだよ
>>378 PHPの文字列・配列処理はそんなに効率よくねーよ
>>385 ベーシックどころか普通高校では授業でパソコンすらさわらなかった俺\(^o^)/オワタ
>>387 いいけど、すでに回答は書かれてるんだけどな…
読み落としてるお前も悪いと思う。
>>387 本当に努力しているやつは自分を「頑張ってる」なんて言わない
>>385 工業高校だったから
F-BASIC
アセンブラ
VB
>>387 きっとみんなはいろいろいじくりまわした結果達成したときの喜びをお前に教えてあげたいんだよ
>>387 エネルギーの使い道を間違ってるよ。
よく考えないでいじってるだけだろ?
>>389 うちの高校週一か二ぐらいでPC触る授業あったな。
中学からPCさわってたオレはヒーローになれたから楽しかった。
>>392 やっぱ工業高校はつよいね。モレが高校のときはVBなんて影も形もなかった。
DOSの原型はさわってたけど。
>>387 それ、なんの課題なんだ?
それを隠されてもアドバイスのしようがないし。コードだけじゃなくてさ。
あと本当にPHP勉強してるの?
なんかプログラムを全く知らない素人が適当にコードをつなぎ合わせて何とかしてるように見えるんだが。
397 :
nobodyさん:2007/08/31(金) 16:03:20 ID:icDPlmBN
BASICは中学の技術の時間にやった。
インターネットつなげたいんだが
、まだ金が貯まってない。
FTTHかADSLって考えたら俺の家は親子電話でADSL不可能
FTTHだと27800、
バイトは学校側から駄目だと言われてる
アセンブリ言語か、羨ましいな。
マジで
逆汗してkrack学習とかもしたんですか?
そもそもPHPのマニュアルは持ってるのか?
>>250 設問はこれか?150レスもよく遊んだもんだw
1024バイトづつか。2バイト文字の真ん中とかだったらどうすんだべ?
それでもぶった切るんかな?
ってか、PHP使う環境が整っていないのに
使おうとする
>>397には誰もつっこまない件
ブラインドタッチできるだけで凄い凄い言われたなぁ。
ちょっとスクリプト書けたり、レジストリ弄れるだけでハカー扱いだったしw
BASICでHit&Blow作ったときは皆からすごいすごい言われたな
ネットでまかなえるが本当に勉強しようと思ったら関数のリファレンスくらいはもっといたほうが楽だぞ
俺はWebのPHPマニュアルだけでほとんど全部身に付けたよ
いい言葉を紹介しよう。
ぐ ぐ れ
>>404 いくつか参考書買ったけど、
今一番気に入ってるのがPHP5大全
でも最近はネットでの検索が多いな・・・
PHPマニュアルは関数の使い方のサンプルみたいなのあるけど、
PEARってそういうサンプル載ってないのが辛いな・・・
>>406 俺もPHP5大全。
関数調べるのオンラインだとなんか作業効率悪くなるんだ
>>407 仲間いて嬉しいよ
後ろの索引での検索ができないのが辛い・・・
>>406 たしかに、今は本の売れ行きは良くないな。
Javaで本を一冊書いたけど、増刷しないことが決まっちゃった。
>>409 PEARの全てを書いて出版してくれ
PEARの本ってamazonで探しても1冊しかなかった
専門書ってかなり高いけど、あれってどうにもならないもんなの?
411 :
nobodyさん:2007/08/31(金) 16:17:11 ID:icDPlmBN
>>393 そぅでしたか。
余談だが
確かに…あの頃は感動したなぁ。
ドライアイスによる竜巻発生装置作った
まだ俺がカメラのフラッシュ回路を訳も分からずに触って感電した時だった。
コッククロフトウォルトン回路作りたかったんだ。
>>401 俺の親父はレジストリいじくってPC壊れたw
ハッカーか。凄いな。
BotVirusとか作りまくったりしてんのかな。
懐かしいがWordでメリッサやったりした。
ブラクラもやってみたり、
FLASHやったり、
crkmeいじくったり
VVSおじさんに憧れたりもしていた。
とにかく中途半端だった。
本は一冊買った。
PHP5
逆引き
500の極意
基本から勉強しようと思う。
なんかラクダの絵とかかかれてる本はどうなんですか?
>>410 多分無理だろうな。phpのニーズがそれほど大きくない上に、
PEARってライブラリーの一つに過ぎないから
どの出版社も企画会議で、類似書籍の販売実績が高くないものは通りにくいらしい。
専門書が高いのは、売れないから。
大学入試用の参考書が分厚いのにものすごく安いことを比べれば分かること。
ニーズないのか
webの発達が急速化してるのに本って売れないんだね
>webの発達が急速化してるのに本って売れないんだね
いや
webの発達が急速化してる「から」本って売れないんだよ
なるほど、そういうことか
>>410 リファレンスが日本語化されてないライブラリでも中学校程度の英語力でもなんとかなる。
っていうかなんとかなってる
417 :
nobodyさん:2007/08/31(金) 16:24:15 ID:icDPlmBN
なぁ、
俺が先生に「今からPHPやります」って言った時、
何て言われたかわかるか?
>>417 中途半端に終わるからやめとけ
ってか、ここはお前のスレじゃないから
とっとと消えろよ
>>417 「今から、PHP出版を殺(や)るのか?」
と言われたとか。
420 :
nobodyさん:2007/08/31(金) 16:25:59 ID:icDPlmBN
「今頃PHP(笑」
今頃って何なんだ!!!!!!!!!!!!!!!!!!!!!!!!!
>>411 基本構文くらい理解していれば
後はネットにあがってる他人のコード追ってみて
ちょっとあそんでればそれなりに習得できるのがphp。
できなければ素質が無かったと思ってあきらめる。
422 :
nobodyさん:2007/08/31(金) 16:29:58 ID:icDPlmBN
>>421 …今から公共のPC使いに行ってくる…
片道一時間だけどな…
>>422 勝手に行ってくれば?
いちいち報告しなくていいよ
ところでSmartyのスレってないの?
こーりゃ ID:icDPlmBNは大学生じゃまいか?
他の言語一つでもやったことあればPHPはかなり入りやすいとおもうけどな。
デバグはちとメンドクサイかもしれんが。
環境なんてレンタルサーバ月150円だせばどんだけでもうごかせるし。
426 :
nobodyさん:2007/08/31(金) 16:32:44 ID:hmrJM+EB
現状ではPHP以外に選択種はないからな
>>423 その質問よくあるけど、Smartyのレスはないよ。
Smartyなら、今まで何回も案件こなしているし、
カスタマイズもしているから、俺に聞けば分からないことはない。
>>411 早くスクリプトキディを卒業できるといいですね
>>427 PHP+MySQL+PEARがある程度理解できてきたのでSmaryでも勉強してみようかなと・・・
Smartyスレ立てたらたたかれるのかな・・・
430 :
nobodyさん:2007/08/31(金) 16:35:12 ID:icDPlmBN
431 :
nobodyさん:2007/08/31(金) 16:37:01 ID:icDPlmBN
432 :
nobodyさん:2007/08/31(金) 16:39:57 ID:QupiSU+k
433 :
nobodyさん:2007/08/31(金) 16:41:35 ID:QupiSU+k
>>432 よく分からないけど、インストールの際のオプションとかどうしたの。
通常は、phpinfo()で出力されるはずだけど。
あとは、文法的にエラーってない?
ちょwwww
何がだよwww
>>432 どうせ変な所からソースを引っ張ってきたんだろ、ちゃんとした所からダウンロード
してやり直した方が良いぞ。
神奈川県 株式会社 インターリンク なんだこりゃ?
437 :
nobodyさん:2007/08/31(金) 17:07:35 ID:hmrJM+EB
面倒くさくて軽く100レスくらい読み飛ばしたけどなんか問題ありますか
1+1=
>>439 <?
1+1=
?>
Parse error: parse error, unexpected '=' in C:\www\test.php on line 2
1 + 1 = 2
Google 電卓機能について
このキーワードを含むドキュメントを検索する 1+1= .
ちんこまんこー
もしかして、このスレの住人は工業(商業)高校の出身多いの?
高校 普通科
大学 医学部
俺は平均偏差値74の超進学校だぃ(^_^
・・・ウソだけど
医学部2年ですが・・・なにか?
馬鹿田大学医学部ですが、なにか?
桐堂大学ですが・・・?
武蔵中学3年ですが、何か文句がありますか?
幼稚園児ですが、PHPのエキスパートです
胎児です。こんにちは。
どうも。精子です。
454 :
nobodyさん:2007/08/31(金) 20:33:12 ID:FU/+7uRQ
フォームから入力された文字列に「'」が入っている場合があります。
これをhtmlspecialchars使ってもサニタイズされず、困っています。
どうしたらよいのでしょうか?
まずマニュアルのhtmlspecialcharsのページを全文コピペしろ
addslashes
458 :
454:2007/08/31(金) 20:43:09 ID:???
自己解決しました。。↓ですね。
htmlspecialchars($_POST["name"], ENT_QUOTES);
こんだけヒントもらっといて自己解決たぁいい度胸だ
姫井ゆり子で自家発電中です。
>>460 お前は人間として最悪だな。
お前のような腹黒い人間は早く死んだほうが世の中のためになるよ。
462 :
nobodyさん:2007/08/31(金) 22:39:41 ID:7jATCbIM
phpのセーフモードで一部のユーザーやディレクトリを非適用にしたいのですがどういった方法がありますでしょうか?
ググってもわかりやすい回答に出会えませんでした
よろしくお願いします
変数の前の&ってなにを意味してるんでしょうか。ビット演算子じゃないっぽいし…
例) hoge( &$ss , $int ){
464 :
463:2007/08/31(金) 23:47:28 ID:???
吊ってくる
FAQにありましたね・・
465 :
nobodyさん:2007/09/01(土) 00:22:33 ID:2rZ2o9PE
あるテキストにある単語の中で、もっとも使われている単語などを順番にリストアップしたいです
どうすれば良いのでしょうか?
>>465 英文か日本語か、又はどこかの言語かによって違う。
活用形がある場合とかも考えて揺らぎ除去するとか考えるともっと複雑。
>>466 レスありがとうございます
kakasiなどを利用すればきちんと出来るのかもしれませんが
今回の場合は「ゆらぎなし」の「日本語」を想定しています
言葉足らずで申し訳ありません
>>467 日本語を単語レベルで集計するのにphpの力だけでやろうとしているの??
形態素解析器から出力したものを集計する方が早いだろ?
469 :
nobodyさん:2007/09/01(土) 00:48:43 ID:2rZ2o9PE
「形態素解析」恥ずかしながら知りませんでした
もっと簡単なものだと思っていましたが、私がやろうとしていることはそんなに面倒なことなのでしょうか?
文字レベルでやるならphpの力でも出来るけど。
単語レベルなら、自然言語処理の知識がないと無理。
>>470 ありがとうございます
もう少し自分で勉強してみます
kakasiを知ってて形態素解析がわからんとは
,. _,... __,..
/レ' |,, -‐''´∠-‐'´,∠-z_,.
_l ´ ∠__
、) / ∠___
〉 _l_.∠..__/ -‐<_
〉´:::7:。'´ ̄`'ー-、_,. - -‐<__
__l;;;;;;;;|;゚_......,,∠@ `ヽ._,..- -<_ よんだ?
,-r―‐‐''''´| ト、`i/'´..三.ヾ. \ Z´ ̄`''ー-、
λ| | ト、_|、 ´、_゚_,` iヽ. 。゚/Y'T´ |ト、
/人 | | |:::::ト、ー--‐'⌒'‐`ー、∠イ | | K}
く`'´::::::\ 、、、、ゝヽ;:::::\ /:::ノ ノ ........ ノ人}
/`:::::::::::;;;;;〉、 ゛゛゛。`X'、::::::`::、_____,.::´::::;:'X´o"""""__./∩::/7
〉:::::::::::;;;;;;;;;イ`ー--‐'^'、ヽ;::::::::::::::::::::::::ノノ`'ー-、...____/;;::::H/./
ノ:::::::::::::::;;;;;イ=〒〒=i `'''ー===i===‐'''´r=〒〒=iト;;;;;;;ハつ /7-,
/::::::::::::::::::;;;フ}{==+=+==}} || {{=+==+==}{;;;;;;;i,::::`iー'-^j
バカはスルーして
つづきどうぞ↓
475 :
nobodyさん:2007/09/01(土) 02:22:08 ID:Ym+xGTAW
そんなの関係ねぇ!
そんなの関係ねぇ!
つづきどうぞ↓
476 :
nobodyさん:2007/09/01(土) 02:24:24 ID:KtjHm3MJ
携帯サイトのアクセス解析のため、簡単なスクリプトを書いて対象のサイトにimgタグで貼り付けて動作させているんですが、
imgでphpファイルを指定すると画像表示不可能を表すマーク(×など)が表示されて見栄えが悪くなってしまいます
これなんとか非表示にできませんか?
できます。
はい、オッパッピー
ってだれかのってくれよ
479 :
nobodyさん:2007/09/01(土) 02:44:40 ID:KtjHm3MJ
自己解決しました
無能ども死んでください
PHP暦二ヶ月です。
>>250 ID:icDPlmBN が言ってるやつを試しにwhileとfreadで書いてみたんですが、
2バイト文字が境目で切られて、文字化けしてしまいました。
これの対応策を教えてくれませんか? 残念ながら見当が付きません。
まあ「区切ってないテキストを○○文字ずつ出力」という事は多分しないですけど。
自演乙
>>481 自演じゃないよ、別の馬鹿だよ。
>>330 さん見てて、とりあえずこう書いた。
$fh=fopen("test.txt","r");
while($str=fread($fh,1024)){
print "<p>".htmlspecialchars($str,ENT_QUOTES)."</p>\n";
}
実行したら、境目の文字が化けた。
↑のやり方で、境目の2バイト文字の片割れと1バイト文字の判別法がわからない。
483 :
480,482:2007/09/01(土) 03:59:01 ID:pRNvjrEd
ごめんID表示忘れてた。
484 :
nobodyさん:2007/09/01(土) 06:28:53 ID:r9rVpK15
さくらのレンタルサーバーでhtmlの拡張子のままphpを動かそうとしています。
.htaccessに
AddHandler myphp-script .html
Action myphp-script /php.cgi
と記述してアップしたところ、○○.phpのファイルはそのまま読めますが、
○○.htmlのファイルは500Internal Server Errorになってしまいました。
php拡張子のものが読み込めるということはパーミッションの設定ミスというわけでもなさそうですし
(念のためすべて755にしました。)
実は昨日までは普通に動いていたものをミスで.htaccessを削除してしまっため、もう一度アップしたらこの現象となってしまいました。
どなたかわからないでしょうか?
さくら以外のサーバーでは「AddType application/x-httpd-php .html」だけでいけたのですが、さくらだけはどうにも。
486 :
484:2007/09/01(土) 08:06:30 ID:r9rVpK15
>485さん
どもです。
検索ワードに.htaccessも加えてあちこち探して、
telnet直接乗り込みviで作り直したらうまくいったとあったので、
やったらうまく行きました。
たぶん改行コードかFTPのときのエラーかと思います。
どうもでした!
487 :
nobodyさん:2007/09/01(土) 12:49:26 ID:oiOJU//q
自ファイルへのリンクってどうでしたっけ?
$_POST[self]だったかと思ったら違いました
ファイルポインタを一行だけ戻したいんだけど
489 :
488:2007/09/01(土) 12:57:16 ID:???
自己解決しました><
490 :
nobodyさん:2007/09/01(土) 13:29:56 ID:WrlGqUhd
すいませんしてないです
id出してなくてすいません
>>487,488
二人とも、人に聞く前にまず自分で調べることを心がけたほうがいいよ
配列のインデックスを、数値にする=4バイトも使う
1文字の文字列にする=1バイトで済む
こう考えると、インデックスは文字にした方がよいのでしょうか?
493 :
nobodyさん:2007/09/01(土) 15:56:15 ID:NfVJpLYy
末尾が\の文字列を表記する時に、
'hoge\'や"hoge\"だと、クオートがエスケープされてしまうのでエラーになります
'hoge'."\\"
とか書くしかないですか?
もっといい方法あれば教えて下さい
"hoge\\"
>>488 1行読み込む前に現在のファイルポインター位置をftell()で保存しておいて
戻したいときはそのデータをfseek()でセット。
元の位置を保存しないでやるとしたらfseek()で現在位置を1文字ずつ
前にずらしながら読み込んでいって、改行文字を探しだすとかしないと
無理なんじゃないかな。
>>482 読み込んだデータの末尾1文字の文字コードを調べて
プリンタブルコードの最後の文字よりコードが大きい場合は
切り捨てて、次のファイル読み込み位置を1バイト手前に設定、
って感じじゃないのかな。
SJISで半角カナを含む場合は該当文字コードの範囲に気をつけないといかんけど。
文字コードで悩んでいるなら、素直にUTF-8にしとけよ。
時間の無駄だよ。
この辺が、Javaと違ってphpの言語仕様が糞なところだが、
どれでも使えるから使っていいじゃなくて、
何が使いやすいかを考えて文字コードを選択しないと、
あとで余計な時間を費やすことになるぞ。
趣味で時間がありあまっているなら、勝手にすればいいと思うが。
誰宛のレスだ
501 :
nobodyさん:2007/09/01(土) 17:44:48 ID:HTX0SqTD
ちょっとしたことですが、気になったので質問です。
フォームから受け取った値を出力する時、
$_POST["name"]というようにしていますか?それとも変数に変換して
$nameとして出力していますか?
郵便番号の書式を変換したりするとき、$zipというように変数に代入していますが、
それ以外は$_POSTのまま出力しています。こちらの方がセキュリティ的に
良いのかな?っと思いまして。皆さんの場合を教えて下さい。
・グローバル変数を増やしたくない
・同じ内容の変数が複数あるのは無駄
・スーパーグローバル変数である(関数内でglobal宣言無しにアクセス可能)
ってな理由でそのまま使ってるな。
503 :
nobodyさん:2007/09/01(土) 18:30:27 ID:epTGamb+
↑つながらん
>>501 元々のデータをそのまま使うなら$_POSTのまま、
データを様々加工する場合は別途変数に入れて、
としてる。
そのまま扱うのに別の変数に入れるってのは意味が分からん。
加工がある場合は元データを消失する構造にしてると
後の仕様変更で困ることが多いのでこれは別変数とする。
セキュリティはDB登録時やHTML出力時にそれぞれに合った形で
逐次エスケープするわけだから、別変数に入れる必要は全くない。
506 :
nobodyさん:2007/09/01(土) 19:49:34 ID:Ca6l/pzb
とりあえず変数(ローカル)に叩き込む派。
無駄でもなんでも変数ぐらいわかりやすく使えよ。さほどメモリ減るもんじゃなし。
自分の言い訳を考えるに、 読み込み→加工→出力 の一般的プロセスを分かりやすくするため
最初にリードしてる気分でローカル変数に叩き込んでる、つーかんじなのかもしれん。
グローバル変数で受け取る?つーかグローバル変数使うなんて阿呆のすることだと思うが?
507 :
501:2007/09/01(土) 20:12:35 ID:???
皆さん、ありがとうございます。自分は今まで505さんの言う方法をしていました。
それでふと「他の変数に入れた方が、わかりやすいんじゃないか?」っと
思って、他の方はどうしているか気になった次第です。
とりあえずこれまで通り、加工しない場合は$_POSTのまま出力し、
加工する場合は、別途変数に入れる出力方法で行きます。
ちなみにhtmlspecialcharsは常にやっています。
>>506 またすごい奴来たなwグローバル変数使ってると阿呆だって言い切ってるしw
そんなそんなグローバル変数がどこで入力されて、内容が加工されて、出力されてるか
プログラムを瞬時に理解できてミスもしない神プログラマーの
>>508さんには間違っても勝てませんて。
必要時にローカル変数化するならともかく、「とりあえず変数に叩き込む」レベルで
そのローカル化したという変数がどこで加工されて出力されてるか把握できるのもすごい。
というか、ローカルって言うけどPHPの先頭がいきなりmain()とかの関数呼び出しになってるの?
関数内ならともかく、PHPのメイン処理で変数にぶち込んだらそれグローバル変数だと思うんだけど。
神ではないが普通にグローバル変数使うときは、変数破壊には注意を払うね。
全く使わないというのは無理。
グローバル変数の意味とりちがえてるかも。
少なくとも俺はPHPはじめてglobal宣言はサンプル以外で書いたことはない。
全部関数に引数与えて処理してるし、スコープ考えて処理してる。
main()て書いて、いきなりスコープかましてるわけではないけど、
入力したデータはなにで、どこでしてるか
加工はどこでしているか
出力してるとこはどこか
ぐらいは簡単になるまで関数化、引数として何が必要か明確にしてるけど。
つか、そうそうソースの中のルートに書いた変数を関数内で扱う事に抵抗が無いわけ?
それじゃ簡単なものは作れても後々こまってくるとおもうんだが?
>>512 関数に引数として渡すこと=ローカル変数化、って言ってるの?
だったらこっちも同じだよ。
ってかふつーそんなの「とりあえず変数に叩き込む」って言わないだろう。
んーまた物議を醸し出しそうでこわいが、(w)
ほぼオレの書いたソースはこれに近い形になってる(してる)んだが。
やっぱオレ間違ってる?なんか説明まちがった?よろしくw
<?php
//入力
$a=$_POST[〜]; //←変数に叩き込み
//処理
$b=process($a);
//出力
output($b);
function process($aa){
〜
}
function output($ab){
〜
}
?>
>>514 確かに「とりあえず”グローバル変数に”叩き込んでる」のね。
> $a=$_POST[〜]; //←変数に叩き込み
> $b=process($a);
…これって意味あるのか?($a代入)
セキュリティ以前に開発ミスを防ぐって意味でも。
セキュリティ的な意味合いでは「それが外部から来たデータであること」を
常に意識できる形になってないと極めて危険、というのが俺の経験則。
>>514 global宣言したものをグローバル変数というのではなく、
グローバルスコープの変数をグローバル変数というのだよ。
$_POSTのままの方がユーザー入力だと解りやすいと思うけどね。
なーんかオレが劣勢っぽいけどw
もちろんprocess関数内では「グローバルとしては扱ってない」よ。
$aが外からきた変数の明示 ($a=_POST[〜];)と
加工部内でその$aが使われている証明($b=process($a);)
があるからいいんじゃね?
もしprocess内で$_POST[]がつかわれたらそれこそどこの環境の
どのデータとってきてるんだってことになるとおもうが?
どのデータを処理に使ってるか処理順序で明示してやるほうが分かりやすかろう
とおもってこうしてるわけだが。
>>516 んではサンプルのprocess内でも$_POSTで値とってきたほうが分かりやすいのか?
$_POSTにポストデータ以外の出所なんてあるのか。
ああ、あと一つ。
もし$_POSTをprocessにかける前に加工する必要性がでたら・・・・
おまえらソース書き換え大変だろwwwww
>>517 なんで関数内からグローバル変数を参照することを前提に書いているのか謎だが、
>>501が質問したのは$a=$_POST[〜];が必要かどうかってことでしょ。
>>502の直接参照出来るってのは利点として挙げただけでそうしろってことではないでしょ。
それに関数内からグローバル変数を参照することはほとんどないといってもケースバイケースだし。
521 :
nobodyさん:2007/09/01(土) 22:14:31 ID:qAbTQU9w
今まで、自分の考えていることに間違えなんて無いと思っていたけど、
このレスに来て、俺にも間違えが生じることがあることに気付かせてくれた。
悔しいけど、ありがとう。
>
>>517 > なんで関数内からグローバル変数を参照することを前提に書いているのか謎だが、
ああ、これはオレのグローバル変数の取り違え。正直すまんかった。
わざわざスーパーグローバルと同じ動きさせるために global $a; $a=$_POST[]なんてやんのか?
とかおもったんでアホか!っておもって書いた^^;
>
>>501が質問したのは$a=$_POST[〜];が必要かどうかってことでしょ。
>>519で論破でいいか?
>
>>502の直接参照出来るってのは利点として挙げただけでそうしろってことではないでしょ。
べつにおれもそうしろとはいってないよ。アホだとはいってしまったけど。^^;
プログラムはうごきゃいいんだよ。保守性なんて保守する必要なければ必要ないしね。
でも分かりやすく、ミスなく、とかおもったら俺の経験則でこうなったが。
> それに関数内からグローバル変数を参照することはほとんどないといってもケースバイケースだし。
ケースがないわけないじゃない。globalが用意されてんだから。
でも明示してないものを関数内で入力として使う危険性のほうがおれは経験則で怖いんで俺は明示するよ?
というかんじかな。
>>521 >>519で論破でOK?
もう、完敗宣言しているんだから、勘弁してやれよw
524 :
nobodyさん:2007/09/01(土) 22:44:58 ID:VWNhFO8z
PHPスクリプトを配布しているおすすめのサイトを教えてください。
ソースを見て勉強したいと思っています。
俺はglobal宣言せず、どうしても必要なら$GLOBALを使う派。
global宣言した変数ってコード追ってるときに判別しづらくて
バグの元にならない?
つかったことないけど、俺がそんな状況におちいったら
変数名$gblABCとかって接頭文字くっつける
かもしれない。
>>527 変数名にプリフィックス付けるなんて、VBじゃないんだから止めろよバカ
お前の頭は、10年前から進歩ないのかよ
>>528 お前、まさかハンガリアン記法とプリフィックスを
ごっちゃにしてないよな?
型を示すプリフィックスのハンガリアン記法は否定されているが、
スコープを示すプリフィックスは否定されてねーよ。
Javaだってメンバ変数の前かあとに _ をつけたりしてるだろ。
530 :
nobodyさん:2007/09/02(日) 02:14:22 ID:QvprOJVv
お揉めのところ申し訳ないのですが、質問です。
アクセス解析をつくっているのですが、ユニークをどうやって取得・カウントすればいいか検討もつきません
つまらない素人質問で恐縮ですが、ご教示願います
その日アクセスされたIPと照合
532 :
nobodyさん:2007/09/02(日) 02:32:34 ID:QvprOJVv
レスありがとうございます。
そこまでは自力でわかりましたが、具体的にどのようにすれば良いのでしょうか?
ifで条件判断すりゃいいだろ。
そこまでわかってんなら書け
534 :
nobodyさん:2007/09/02(日) 03:05:17 ID:t27ykBXA
apacheユーザで動かしているwebサーバ上でphpを使用しwebmailを作ろうと思っているんですが、
システムユーザを作らないとユーザが作成できません。
rootユーザでapacheを動かせば作れるんですが。。。。。
一時的にrootで動かすにはやっぱりsudoを使わなければならないでしょうか?
宜しくお願いします。
>>534 ちょwww 人が眠ろうとしているときにメールするなよ!!
答えられないのに無理に答えなくてもいいと思うよ
537 :
534:2007/09/02(日) 03:27:06 ID:t27ykBXA
>>535 ( ゚д゚)ダレニモメールシテナイヨ
538 :
nobodyさん:2007/09/02(日) 03:40:21 ID:QvprOJVv
>>534 webmail とシステムユーザの作成に何の関係が?
たぶんシステムのユーザのメールボックスを使いたいのだろうが、
エイリアスで不足な理由は?
やっぱり使わなきゃダメかなぁみたいなノリでroot権限を使わない方がいいよ。
540 :
534:2007/09/02(日) 03:49:52 ID:t27ykBXA
>>539 Web上でユーザの作成、削除をしたいんです。
formにて必要な情報を管理メールアドレスへ送ればいいのでしょうけど、
リアルタイムで作成したいと思っています。(yahooやgmailのような仕組み)
なのでやっぱりsudoとshellscript又はsystem()関数を使わなければいけないかなと思ったんですが。。。
>>540 いやいや、だからメールボックスだけが必要なら、
システムのユーザを作る必要はどこにもないんだよ?
エイリアスで十分でしょ。
postfixなどには、エイリアスをデータベースに格納する設定があるから、
まずはそいつを調べるんだ。
array(5,6,7,8,9,10)とか
連番の配列を作るにはどうしたらいいですか?
>>542 for($i=5; $i<=10; $i++){
$array[] = $i;
}
544 :
534:2007/09/02(日) 04:11:50 ID:???
>>541 Postfixにそんな機能があったのか、thxです!
ちょっと調べてみます。
ありがとうございました。
こんなに優しくされたの初めてです♪
548 :
nobodyさん:2007/09/02(日) 11:59:26 ID:IAvjtU3B
【やりたい事】
・HTMLのフォームに初期値を表示したい。
・初期値は別のテキストファイルからphpで呼び出したい。
・下記のソースではフォームに「$file_data[0]」,「$file_data[0]」と表示されてしまいます。
・本当に表示させたいメッセージは「名前を入力してください」,「問い合わせ内容を入力してください」です。
【data2.txtの中身】
名前を入力してください
問い合わせ内容を入力してください
【環境】
サーバーのOS:CentOS 4.5
Webサーバー:Apache 2.0.52
PHP:5.1.6
549 :
nobodyさん:2007/09/02(日) 12:00:44 ID:IAvjtU3B
>>548の続き
【index.htmlの中身】
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>フォームに初期値を表示する</title>
</head>
<body>
<?php
$file_data = file("data2.txt");
?>
<form method="post" action="form.php">
お名前:<input type="text" name="name" value="$file_data[0]">
<br>
問合せ:<input type="text" name="contact" value="$file_data[1]">
<br>
<input type="submit" value="送信">
</form>
</body>
</html>
>>549 お名前:<input type="text" name="name" value="<?php echo $file_data[0] ?>">
問い合わせも同様
551 :
nobodyさん:2007/09/02(日) 12:22:39 ID:IAvjtU3B
>>550 ありがとうございます。
正常に動作する事を確認しました。
※補足
>>550さんの記述+index.htmlをindex.phpにする事で動作しました。
何となく過去の経験上、phpは拡張子がhtmlでも動作した気がしたのですが、htmlのままでは動きませんでした。
>>551 AddType application/x-httpd-php .php .html
553 :
nobodyさん:2007/09/02(日) 12:44:03 ID:3ZNK8eVt
テキストファイルに"5"が見つかったらその上の行を表示するようにしたいんので
$file = fopen("xxx.txt","r");
while (!feof($file)) {
$line = fgets($file,1024);
if ($line == 5){
fseek($file, $get);
$line = fgets($file,1024);
echo ("$line<br>");
}
$get = ftell($file);
}
fclose( $file );
これじゃできないんです。どうすればいいでしょうか
if(strpos($line,'5') !== false)
555 :
nobodyさん:2007/09/02(日) 13:37:02 ID:IAvjtU3B
>>552 ありがとうございます。
ググッて意味が理解でき、htmlでも動作するようになりました。
556 :
nobodyさん:2007/09/02(日) 15:36:12 ID:bbqIMTHD
htmlの勉強をしてください。
>>556 今時ブラウザの自動判定に頼らずに、
ちゃんと文字エンコーディング情報を伝えてあげてください。
559 :
nobodyさん:2007/09/02(日) 16:06:39 ID:bbqIMTHD
IEの自動判定ってどこで設定すんだよ
FFxだとうまく表示されるんだがIEだとなぜか西ヨーロッパ言語(ISO)になっちまうんだよ
ちなみにFFxだとエンコードはうまくいってるのにPHP5がちゃんと動作しない
どうすりゃいいのさ
だからhtmlの勉強をしろ。
>>559 >ちなみにFFxだとエンコードはうまくいってるのにPHP5がちゃんと動作しない
なんでPHPがブラウザに依存するんだよ
ずるぽんあぷろだのソースはもう配布されてないのですか?
どこかに落ちてませんか?
あんなもん1から作った方がいい。あれソース汚すぎ。
564 :
nobodyさん:2007/09/02(日) 16:25:36 ID:cq55lstZ
function jikan(){
$jikan = time();
$_SESSION['jikan'] = $jikan;
}
jikan();
echo $_SESSION['jikan']
jikan関数を定義して、$jikanに現在の時間を入れて、$getに$jikanを代入したのですが、
ブラウザを更新するたびに$getの値が変わってしまいます。
$getにはtime()って関数がそのまま代入されてるからでしょうか?
$getにはじめに取得した時間のまま値を変えずにするにはどうしたらいいのでしょうか?
>>564 $_SESSION['jikan']が存在すればjikan();に行かないようにすればおk
566 :
nobodyさん:2007/09/02(日) 16:34:15 ID:cq55lstZ
アドバイスくださったとおりでした。
なんども定義関数を呼び出してました。
ありがとうございました。
ソースから余分な改行等を抜いてつめつめにしたら
高速化できますか?
できるよ
なるんじゃね?
1GhzのCPUは一秒間に1000000000の命令を実行できるから
改行一つ当たり0.00000001秒ぐらい。
>>569 CPUの命令の意味が全然分かっていない、知ったか厨
>>570 本当はお前がわかっていないんだろうなw
反論するときは、その理由を書くもんだよ。
>>571 その手に乗らねよ、厨www
知りたかったら自分で調べろ。
お前の(間違った)考えを
ネットで調べろとは、また無茶なことを言うな。
ほれみろ、反論できやしない。
>>570 たかが改行を一つ飛ばすぐらい。
機械語でも、比較命令・アドレス加算、ジャンプの
数命令程度ですむわけだが?
コードキャッシュ入れたら無意味になるけどな。
>>573は、自分の疑問を他人に調べさせようとしています。
以後、餌をあげないように。
>>570はPHPの1命令は機械語に直すと
もっとかかると言いたかったのだろうが、
改行を飛ばすコードなんて機械語でもほんの数命令でしか
ないことに気づかなかった馬鹿ということでFA?
それ以外に何を言いたいのかわからない。
盛り上がってまいりました
>>577 お前さ、自分で反論していて、
その反論の理由をいえないなんて恥ずかしくないの?
私はあなたの意見の反論する。
その理由はお前がググレ。
これを議論の場で言ったら恥をかくだけだと思うよ。
これでどっちが知ったかかはっきりしましたねw
もちろん
>>570のことですよ。
とりあえずネットよりまずPHPのC言語ソースを調べろと。
スクリプトの解析処理がどういう仕組みになってるかによって
改行コードの有無による処理コストは変わってくるし、
そこを調べずに論議してもまるで無意味。
でも多分、改行コードは単独で判定されてるわけじゃなく、
正規表現での構文解析で他の記号とまとめて処理されてると思うので、
構文解析としては改行があっても無くても速度はまるで変わらず、
差が出るのはディスクから読み込むときにバッファが小さくて済み、
サイズが数十〜数100バイト小さい分だけディスクI/Oが早く完了する、
という点に尽きると思う。
この速度差はCPUのクロックだけじゃなく、ディスクのI/O速度にも依存する。
583 :
nobodyさん:2007/09/02(日) 17:36:40 ID:7yTluSfa
PHP4+Apache+MySQL(PostgreSQL)+Smartyが使用できるおすすめのフレームワークを教えてください
できればデファクトスタンダードになりそうなので
>>583 今更PHP4がデファクトスタンダードになるわけないじゃん。
公式サポートはもう終了しちゃったよ。
>>582 正規表現といっても、結局は最終的には
単純な機械語による比較とループとして実行されるわけで、
結局改行一つで増加するコードは10命令文にもならないだろうな。
0.00000001秒は妥当なんじゃね?むしろそれ以下。
586 :
nobodyさん:2007/09/02(日) 17:40:01 ID:cq55lstZ
$array = array("aa"=>"1234","bb=>"2314","cc"=>"5814","dd"=>"3501");
$arrayに格納された値に含まれる1を削除したいのですが、
以下のコードよりももっと良い書き方ありませんでしょうか?
foreach($array as $k => $v) {
$hairetu[] = str_replace("1", "", $v);
}
>>584 > 今更PHP4がデファクトスタンダードになるわけないじゃん。
デファクトスタンダードになりそうな
フレームワークを聞いてるんだろ。
お前は日本語もわからんのかw
589 :
583:2007/09/02(日) 17:47:43 ID:7yTluSfa
>>584 Zend FrameworkのようにPHP5のみじゃなくて
現状でPHP4が使えて今後デファクトスタンダードになりそうなフレームワークということです。
改行を全て削除したらファイルサイズが1割くらい減るから
1割くらいは高速化するだろう
スカスカのプログラムだなw
592 :
nobodyさん:2007/09/02(日) 17:50:17 ID:7yTluSfa
>>586 コールバック関数使うとか参照foreachとか。
597 :
nobodyさん:2007/09/02(日) 18:37:55 ID:SjqAaNKw
内容:
初心者です 参考書を片手に勉強中なんですが
PHP mysqlでチェックボックスを使い フォームでチェックされた名前のも
のだけを取り出したいのですが 上手くいきません
チェックボックス側
<form method="GET" action="./hoge.html" >
<table width="778" border="0" cellpadding="0" cellspacing="1" bgcolor="#999999">
<tr> <td width="70" height="32" valign="top" bgcolor="#FFFFFF" class="unnamed2"><b>名前</b></td>
<td valign="top" width="229" bgcolor="#FFFFFF" class="unnamed2">
<?php
for ($si = 1; $i <=10; $i++) {
echo <input type=\"checkbox\" name=\"c1[]\" value=\"{$row['id']}\">{$row['id']};
}
?>
表示側
//データーを受け取る
$c1 = @$_POST["c1"];
$sql = "SELECT * FROM hoge";
//データーが選択されているときはWHERE以下を組み立てる
if (count($c1) > 0) {
//分割されたここのキーワードをSQLに反映
$where = "WHERE (id IN (";
for ($i = 0; $i < count($c1); $i++) {
$where .= $c1[$i];
if ($i < count($c1) - 1) {
$where .=","; }
else {
$where .= "))"; } } }
for ($i = 0; $i < count($c1); $i++) {
echo "$c1[$i]"; }
echo "<p>e".$sql.@$where;
598 :
nobodyさん:2007/09/02(日) 18:38:39 ID:SjqAaNKw
↑よろしくお願い致します。
何が上手くいかないんだよ
何を教えてほしいんだよ
ひどい質問だ
とりあえず、inputのvalueを改ざんされて
" 1 )); delete * from hoge; --"
とか送ってこられたら楽しいことになるぜ。へっへっへと
関係ないことを指摘しておく。
@$_POST["c1"];
.@$where;
何言語?
603 :
602:2007/09/02(日) 18:50:51 ID:???
ちなみにarray_mapはforeachとかより若干遅い。でも便利だから使ってる。
605 :
nobodyさん:2007/09/02(日) 20:57:00 ID:lMwXxY/u
Javaのパッケージみたいな概念はありませんか?
あと、PHPでのファイル・クラスのネーミングルールとか。
$a="うんこ";
として、
echo "$a ちんちん";
と
echo $a." ちんちん";
のどっちが速いっすかね?
608 :
nobodyさん:2007/09/02(日) 22:37:36 ID:O0vZytK1
>>608 これ読めってのは無理あるわー
zipで固めてどっかのうpろだにでも上げた方がよくね?
テンプレートエンジンのsmartyを自鯖(Linux)にセットアップしてみたけど上手くいかないorz
検索するとたくさんヒットしたので試してみたけど上手くいかず
誰かセットアップ方法の解説願います
611 :
nobodyさん:2007/09/02(日) 23:18:10 ID:pKjcWHTr
>>608 なんでろだにあげなかったの?バカなの?
612 :
nobodyさん:2007/09/02(日) 23:38:24 ID:O0vZytK1
>>610 セットアップというか
Smarty.class.phpをincludeする
$smarty = new smarty;
$smarty->template_dir = "./templates/";
$smarty->template_c = "./templates_c/";
みたいに宣言する
./templates/ 内にテンプレートファイルを作成する。
./templates_c/ のパーミッションを707や777にする
PHPファイルで
$smarty->display("template.html");
のようにテンプレートを指定して表示する。
615 :
nobodyさん:2007/09/02(日) 23:40:55 ID:pKjcWHTr
本丸写しかよ
本作ったトコにでも聞け
自分で作れないうちは会社で運用なんてすんな
>>612 とりあえずショートタグ「<?」は推奨されないからやめとけ。
最近のPHPのデフォルトじゃ動作しない可能性がある。
正しくは「<?php」と書く。
>>612 ちなみにこれ、最初に表示されるページはどれ?
あと ktouroku.php はPHPコードを含んでないようだけど、これも表示されないの?
>>616 > とりあえずショートタグ「<?」は推奨されないからやめとけ。
それよく聞くんだけど、この前理由を探したんだけど
よくわからなかった。なんで?
あとショートタグは<?=とは違うんだよね?
こっちは使っていいの? 単純に変数の内容を表示するだけなら
タイプ数が減っていいんだけど。
619 :
nobodyさん:2007/09/03(月) 00:17:29 ID:KucjbbQW
最初はktouroku.phpです。
これは表示されます。
それ以降が表示されません。
<?phpって
<?でいいのかな?
>>618 「<?=」もショートタグの1種。これは「<?php echo 」の省略形。
ショートタグはPHPしか使わない環境であればそれほど困らないけど、
XMLなどの他にも「<?***」形式の特殊タグを使うシステムが混在すると
「<?」だけでPHPと認識することはできなくなるので、将来性・拡張性に欠ける。
特に昨今はXMLとの混在環境も増えてきているので推奨されないというわけ。
その辺をきちんと意識して設計できる上位の人間なら好きにすれば、ってとこだが
分かってもいないのにその環境に慣れてしまうのは教育上よろしくないかと。
>>619 ktouroku2.phpを呼び出すと何も表示されない、ってこと?
ちなみにURL直打ちでktouroku2.phpを呼び出しても真っ白?
require('./include/init.inc');
の行を
//require('./include/init.inc');
とコメントアウトしてみたらどーなる?
ところで凄い気になるんだが、
<meta http-equiv=content-type content="text/html;charset=euc-jp">
とEUC-JP指定してるようだがソースはSJISで書かれてるよな。
これは本当はどっちにしたいんだ?
622 :
nobodyさん:2007/09/03(月) 00:36:02 ID:KucjbbQW
真っ白です
やってみました。
ktouroku2.phpが表示されました。
でも登録画面のktouroku3.phpはだめでした。
EUCでやりたいです。
このソースの書き方ではだめなの?
>>620 あー。やっぱり人間(コンピュータも?)の混乱が理由なのね。
もっと重大な、セキュリティ上の問題があるのかと思っていた。
<?=もやっぱり使っちゃだめなのだろうか?
php以外でこれ使うやつある?
まあ、phpだとわかりにくいが理由なら
その理由には納得するから、大きなプロジェクトでは
<?=も使わないけどね。
ただ、セキュリティ上の問題がないのなら、
個人的な小さなツールやテスト的になら使うけど。
624 :
nobodyさん:2007/09/03(月) 00:39:08 ID:KucjbbQW
ktouroku3.phpもrequireの部分をコメント
アウトしたら表示されました。
どうしたらいいのでしょうか?
>>622 つまりini.incの実行で失敗してるわけだ。
こいつの内容は
$con = pg_connect("dbname=touroku");
とDBに接続してるだけなんだが、ちゃんとDBは用意されてるのか?
まずDBのアクセスだけの実験プログラムを作って
テストしてみた方がいい。
このプログラムだと接続失敗時はエラー表示がされるはずだが
それすら出てこないとなるとタイムアウトを起こしてる可能性が高い。
接続先のDBサーバー自体が正常動作してない可能性もありうる。
>EUC
だったらまずEUCのテキストが書けるまともなテキストエディタを用意すれ。
>>623 人間は別に混乱しない。コンピュータが混乱するので使えない。
「<?=」は他に無いというか、これも「<?」までの時点でPHPかどうかを判定できないと
PHPに処理を回せないので結局使えない。
セキュリティ的な問題はないと思うので、ちゃんと理解して使う分には問題ないかと。
<?=使ったことないけどなんでみんなこれ使うの?
楽だから。
余計な単語が混じらずほとんど変数埋め込み気分で使えて見やすいし。
>>627 使わない。<?=を使う時点でロジックとデザインを分離されていな糞プログラマーだから。
まぁ、趣味でやるなら別にいいけど。
ロジック混在??
<?php if() 〜 ?> とかならともかく、<?=変数?> だけならテンプレのパラメータ埋め込みと一緒だぞ。
それをロジックが分離されてないと思うのは単なる脊髄反射思考だろう。
631 :
nobodyさん:2007/09/03(月) 00:56:55 ID:kOE1ZsUi
PHP初心者です。
サーバーはxamppを使っています。
mysqlを使わずにindex.php , archive.php , post.phpの3つで
フォーム入力、提出(post.php)すると、自動的にfilesにタイトル.txtを作って保存
(index.php)では提出した記事を表示とpost.phpへのリンクと(archive.php)へのリンク。
archive.phpへのリンクはindexの画面で、記事ごとのリンクになっている。
これは可能なんでしょうか?
ついでにphpの簡単なブログのコードがあるサイト知っていたら教えてもらえませんか?
よろしくお願いします。
>>630 いや、だから趣味でやるなら別にいいって言ってんだけど。
まぁ、多少心得がある人なら{変数}とやるけどな。
>>631 大雑把すぎて何とも言えないけど、多分可能。
634 :
nobodyさん:2007/09/03(月) 01:06:39 ID:KucjbbQW
<?php
$con =pg_connect("dbname=test2");
if(!$con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
で成功と出ているんだけど実際はtest2です。
後どこ見ればいいのでしょうか?
DBもちゃんと作ってあるんですが、
635 :
nobodyさん:2007/09/03(月) 01:08:01 ID:KucjbbQW
したと上が反対です。
>>634 tourokuってDBは作ってあるの?
<?php
$con =pg_connect("dbname=touroku");
if(!$con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
を動かすと接続成功って出るの?
637 :
nobodyさん:2007/09/03(月) 01:14:48 ID:KucjbbQW
接続成功って出ます。
後プログラムのinit.incに名前とパスワードを入れたら
ほかのものも一気に表示はされるようになりましたが、
うけわたしてDB登録ができません。
>>626 > 「<?=」は他に無いというか、これも「<?」までの時点でPHPかどうかを判定できないと
「<?」までの時点でPHPかどうかを判定する方法なんてあるのかよ?w
639 :
nobodyさん:2007/09/03(月) 01:18:47 ID:KucjbbQW
またktouroku2.phpと
ktouroku3.php
はrequireをコメントアウトしないとでてこない。
ほかはでてきます。
>>637 DBのGRANT設定を間違ってるとかいう落ちじゃないだろうな。
ktouroku3.phpの
<a href=./kensaku.php>戻る</a><br>
下記のとおりに登録しました。<br><br>
の下辺りに
<?php echo pg_last_error($con); ?>
って1行入れたら何かエラーメッセージが出てこないか?
>>639 requireをコメントアウトしてちゃDBへの登録は絶対できないだろ…。
ktouroku2.phpの
require('./include/init.inc');
の行を
$con = pg_connect("dbname=touroku");
と差し替えたらどうなる?
644 :
nobodyさん:2007/09/03(月) 01:27:15 ID:KucjbbQW
DBのGRANT設定だと思います。
これの意味がわからんくて。
教えてください。
nobodyとかよくわからないんです。
grant allon kaiin_id to nobodyの意味がわかりません。
入れてないのですが.....
これの説明がなかったんです。
これが原因でしょうか?
>>643 だからな。<?phpであっても、
「<?」までの時点じゃPHPかどうかは判定できないんだよ。
646 :
nobodyさん:2007/09/03(月) 01:32:40 ID:KucjbbQW
エラーはでてきませんでした。
なんにも表示されなかった。
647 :
nobodyさん:2007/09/03(月) 01:33:19 ID:KucjbbQW
学校の宿題ではないです。
>>644 PHPの前にDBの勉強してくるか、
PHPからDBを使うのをやめるかどっちかにしろ。
649 :
nobodyさん:2007/09/03(月) 01:48:59 ID:KucjbbQW
grantの設定をpublicにしました。
でも表示されません。
なんででしょうか?
<?=変数?>は普通にテンプレで使ってるなぁ。
まあ自分しか触らない奴だからいいか。
>>649 <html>
<?php
$con = pg_connect("dbname=touroku");
var_dump($con);
$sql = "insert into kaiin_table (kaiin_id,company,name,address,tel,email,password) values('1', '2', '3', '4', '5', '6', '7')";
$res = pg_query($con, $sql);
var_dump($res);
echo pg_last_error($con);
$sql = "select * from kaiin_table";
$res = pg_query($con, $sql);
echo pg_num_rows($res);
?>
これ実行したらどんな内容が表示される?(pg_connectのとこはパスとか直せよ)
652 :
nobodyさん:2007/09/03(月) 02:15:13 ID:KucjbbQW
bool(false) bool(false)
です。
>>652 DBの接続からして失敗してる。
<?php
$con =pg_connect("dbname=touroku");
if($con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
これで接続成功って出るんじゃなかったのか?
あーもー、最初からやり直し!
<html>
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$con = pg_connect("dbname=touroku");
var_dump($con);
echo pg_last_error($con);
?>
これで何かエラーメッセージは出てこないか?
654 :
nobodyさん:2007/09/03(月) 02:33:33 ID:KucjbbQW
bool(false) です。
bool(false) bool(false) bool(false)です
よく馬鹿に付き合って時間無駄に消費できるな。
>>654 pg_connectのパラメータ内容を改めて再考すれ。
っつーか、コマンドラインのクライアントからは接続できてんの?これ。
658 :
nobodyさん:2007/09/03(月) 03:17:51 ID:KucjbbQW
だめだ。わかんない。どこが理由なんだろう....
接続できてない。
でもDB
<?php
$con =pg_connect("dbname=touroku");
if($con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
はOKと出る。
なぜだ?
まさかとは思うけど !$con みたいに"!"付いてないよね?if文のところ。
if文の方はどっか書き間違えてる可能性が高いから
var_dumpの結果の方を信用するのが吉。
661 :
nobodyさん:2007/09/03(月) 03:30:18 ID:KucjbbQW
<?php
$con =pg_connect("dbname=touroku");
if(!$con){
print "DB失敗"
}else{
print "DB成功"
}
?>
を動かすと接続成功って出る
662 :
nobodyさん:2007/09/03(月) 03:47:03 ID:Fj5tywcD
セッションを発行したばあい、サーバーのテンポラリディレクトリにセッションデータが作成されますが、
これは放っておいても、有効期限が過ぎれば勝手に消えるものなのでしょうか?
664 :
nobodyさん:2007/09/03(月) 04:42:03 ID:KucjbbQW
さっき別のテーブルをつくり入れようとしたんだが
エラーになった。
DBの根本的にだめなのかもしれないな。
でもまずDBを作る前にモジコードをEUCにして
テーブルを作るinsertで入力していくのだが
invalid byte sequence for encoding "EUC_JP": 0xe988
というエラーが出ます。
>>664 \xe9\x88 == '驤' // SJIS
DBの根本的にだめなのかもしれないことより
自分が何してるか根本的にわかってないことのだめなのかもしれないね。
// 何語なんだ?
666 :
nobodyさん:2007/09/03(月) 05:37:34 ID:KucjbbQW
僕のfedoracoreってUTF8がデフオルト
なんだが、それをeucに直してDBを入れていく様式
にしている。
根本的に間違っているのか、どう勉強していけばいいのだろうか?
eucとshiftjisの区別がわからないんだ。
667 :
nobodyさん:2007/09/03(月) 05:51:43 ID:KucjbbQW
なんかここ嫁。とか
こうするんだよ。とかあれぜひお願いします。
たぶん全部わかっていないと思うんですが、
ぜひご教授をお願いします。
Unix板にでもいってこれば?
だいぶそれてるし
670 :
nobodyさん:2007/09/03(月) 06:26:48 ID:KucjbbQW
1を読んでみようと思います。
今から寝ようとおもうので、ここが違うよとか
あれば至急直すので、わかった人コメントください。
671 :
nobodyさん:2007/09/03(月) 06:45:45 ID:KucjbbQW
後ほんみても本はeuc-jpがデフォルトなんだが、
俺のはUTF8でうまく入力できないんだが....
672 :
nobodyさん:2007/09/03(月) 07:05:20 ID:KucjbbQW
データベースの言語がeuc-jpが最初から書いてあって
俺のはUTF8なんだが、
それを無理やり変換してEUCで入力しようとすると、
invalid byte sequence for encoding "EUC_JP"
のエラーがでます。
673 :
nobodyさん:2007/09/03(月) 07:23:58 ID:KucjbbQW
さきほど書き忘れましたが、深夜遅くまで付き合ってくれた
方ありがとうございます。
また、意見くれた方もなんとかしたい一身でお礼の言葉
も忘れてしまいました。
立て方等ミスがありましたが、もう少しだけ教えてください。
よろしくお願いします。
php講座のサイトや本を見ると
環境変数を使うとき
$ua = $_SERVER['HTTP_USER_AGENT'];
if(!preg_match('/hoge/',$ua))
というように一度$uaなどに代入して使っている場合が多いですが
そのまま
if(!preg_match('/hoge/',$_SERVER['HTTP_USER_AGENT']))
としない理由があるのでしょうか?
675 :
nobodyさん:2007/09/03(月) 11:46:04 ID:ipYR2CKm
==とか!=とか<とか、==←こういうのを総称して呼ぶ名前って何?
>>674 多分メンテナンスとかのためじゃないかな。
たとえば、$uaに任意の値を入れてテストしたいときとか、
手間が多少違う
これはスタイルの問題だから、気にくわなければ従わなければいいだけ。
>>674 分かりやすい変数名を
タイピングの減少
くらいか?
特にこうしなければならないってわけじゃないがやると少し幸せになれるかもしれないおまじない
>>675 比較演算子
678 :
nobodyさん:2007/09/03(月) 12:59:28 ID:ipYR2CKm
679 :
nobodyさん:2007/09/03(月) 13:00:54 ID:ipYR2CKm
operatorでいいのかな?ありがとー
>>678 PHPマニュアルで比較演算子のページを英語にしたら
Comparison Operators
だったよ
PHP5.2.4が出てた
phpの掲示板の中にアクセス解析(忍者TOOL)を入れたいんですけど
javascriptを入れるとエラーになります。どうすればいいですか
682 :
681:2007/09/03(月) 14:53:02 ID:???
ごめんなさい、自己解決しました。
>>674 環境変数などは繰り返し使う場合一度ローカル変数に落としたほうが
動作が早くなる
微々たる物だが・・・
>>681 もちつけ
PHPのエラーなのかjavascriptのエラーなのか
その書き方だとわからん
685 :
681:2007/09/03(月) 15:00:19 ID:???
686 :
nobodyさん:2007/09/03(月) 15:07:30 ID:9rbjiygj
PHP+Sendmailでメールの自動返信プログラムを組みたいのですが、
メールを送り、特定のアドレスに送られたメールをhoge.phpに渡し処理させるというのを
してみたいのですが、Sendmailの設定をどのようにすれば良いのでしょうか?
Sendmailは「/usr/sbin/sendmail」のパスで通っていて使えるようです。
他に何か調べるようなことはありますでしょうか。
687 :
686:2007/09/03(月) 15:10:03 ID:9rbjiygj
ちなみにメールを受けたときに実行したいので、
.forwardが使えないといけないと聞いたのですが、これが使えるかどうか調べる方法はありますか?
688 :
nobodyさん:2007/09/03(月) 15:27:27 ID:5z4DsU1G
mbを使えないサーバで、mb_detect_encoding相当の機能を実装したいんですが、
何か良いライブラリのようなものはありますでしょうか?
同梱したいので、ライセンスフリーのもの(大体そうなのかな?)がいいんですが・・・。
>>845 エラー文にはなんて書いてあるの?
おそらくそれで全て解決するんでない?
>>687 メール受信時の転送先をコマンド実行のPHP書けばOK
.forwardは鯖缶にきくのが一番早い
690 :
nobodyさん:2007/09/03(月) 16:11:26 ID:9rbjiygj
>>689 使い方は.htaccessと同じような感じでいいのですね
有難うございます
質問です。
PHPのページをブラウザ(IE6/火狐)で開くときに、まれに30秒〜60秒待たされます。
サーバの設定が悪いのでしょうか。ご存知の方、お願いします。
-環境-
PHP 5.2.3 ソースからコンパイル
Apache 2.0.54
Oracle xe client 10.2.0.1
OS Debian sarge
設定 ほぼ初期値
エスパーおまちしてます
694 :
nobodyさん:2007/09/03(月) 16:31:17 ID:3A8ZdpHH
文字列の入った変数を外部のサーバに送信したいんですが、どうすればできますかね?
ネットで見つけたファイルロックの例で分からない部分があります
while (!@mkdir(DE_LOCKFILE))
mkdirが成功するまでループするという意味らしいことは分かるのですが
@は何ですか。どういう意味があるんですか?
php @ で検索しても要領を得ないので教えてください
698 :
696:2007/09/03(月) 17:03:28 ID:???
自己解決しました。
マニュアルに書いてました
mkdirが成功するまでループする処理とかってどんだけ・・・
権限がなければ実質無限ループかあ
@はPHPで最もコストの高い文字
ftp関数と
HTTP_Download あたりで
FTPサーバのデータを
直接ブラウザからダウンロードできるようにできないでしょうか。
現在は、
ftp_get で一旦サーバにダウンロードしてから
それをHTTP_Download で指定してダウンロードしてます。
ファイルを一旦サーバに落として、
ではなく、あくまでPHPはデータを
左(FTPサーバ)から右(ブラウザ)へ受け流す、
という感じでいきたいのです。
HTTP_Download使ってるくせにFTPからダウンロードしたいってどんだけ〜
706 :
nobodyさん:2007/09/03(月) 17:55:43 ID:7Ly2K7mT
ftp関数と
HTTP_Download あたりで
FTPサーバのデータを
直接ブラウザからダウンロードできるようにできないでしょうか。
現在は、
ftp_get で一旦サーバにダウンロードしてから
それをHTTP_Download で指定してダウンロードしてます。
ファイルを一旦サーバに落として、
ではなく、あくまでPHPはデータを
左(FTPサーバ)から右(ブラウザ)へ受け流す、
という感じでいきたいのです。
707 :
nobodyさん:2007/09/03(月) 18:05:50 ID:kOE1ZsUi
初心者です。
タイトルと文の2つのフォームがあって、提出ボタンを押すと
自動的に毎回タイトル.txtを作るにはどう書いたらいいんでしょうか?
>>707 とりあえずどの程度まで出来ているのか書け
$name = "自動的に毎回タイトル.txt";
fopen($name, "w");
fwrite
710 :
nobodyさん:2007/09/03(月) 18:20:02 ID:9rbjiygj
Smartyをインストールしたのですが、
#Smartyクラス用の定義
$smarty->template_dir = "テンプレートフォルダ";
$smarty->compile_dir = "コンパイルフォルダ";
$smarty->cache_dir = "キャッシュフォルダ";
と書いてあるのですが、各フォルダが見つかりません
自分で作成するものなのでしょうか?
>>710 そうだよ。つーか実行して試すなり、解説サイト見たほうが早いだろ。
712 :
nobodyさん:2007/09/03(月) 18:27:06 ID:kOE1ZsUi
>>708 今作っているのは、post.phpで、上の2つのフォームがあって
提出すると、タイトル(例:今日の晩御飯)に.txtをつけたファイルが
自動的にサーバーのfilesの中に作られる。
そして、次に作りたいのがメイン画面(index.php)で。それぞれのファイルへのリンクが表示され、
クリックするとその記事のみが表示される(archive.php)。
メイン画面にはその他にも最新の記事10個が上から順番に表示され、その下にはpost.phpへのリンクがある。
post.phpは最初からファイルを作っておけばそこに追加できるんですが、新しいファイルを記事ごとに
作る方法がわかりません。
そして、index.phpはデザインはできるんですが、postへのリンクと、archive.phpへのリンクの作り方が今いち。
結局ほとんどわかってないんですが、海外なもので日本語の本を探せず、困ってます。
>>712 意味がわからん
フォーム入力してpost.phpにデータを送信するのはできるの?
>>706 FTP関数じゃムリじゃないかな。
curlならいける。
HTTP_Download を使うのもAPI的にムリっぽい。
でも中身のファイルを読む部分をオーバーライドすりゃいいだけだね。
ていうか、単純にHTMLリンクをつかえばいいと思うが。
>>713 post.phpにフォームがあるんです。
そしてフォーム入力して送信すると、2つあるフォームのうち
タイトルがファイル名の.txtの前に自動的に行くようにしたいんです。
しかも、毎回送信するたびにタイトル.txtは作られます。
お前が勝手に作ったファイル名をくだくだ言われても分わかんねーよ。
もっと一般化して質問しろ。
>>715 とりあえず質問している間は常にID出しておけ
post.phpからどこにフォームのデータを送信するの?
タイトルがファイル名意外の.txtは作れるの?
ってか、ファイルを作る方法知ってるなら名前自分で決めてるの知ってるよな
718 :
nobodyさん:2007/09/03(月) 18:42:47 ID:EPVlEXdm
PHP5 + firebird2 on Apache2(win)
ibase_fetch_object で BLOB を含む SQL を実行すると、
Warning: ibase_fetch_object() [function.ibase-fetch-object]: conversion error from string "BLOB" in hogehoge.php on line 1183
と言われて失敗する。
マジ助けてくれ・・・
ちなみにSQLは単純なSELECT。
>>716 タイトルフォーム
本文フォームがあって
データ送信はできるんですが、タイトルを使ったファイルの作り方がわからないんです。
721 :
718:2007/09/03(月) 18:52:08 ID:EPVlEXdm
>>719 即レスthx!!
どこで予約語使ってるのかまったく不明・・・
SELECT IDXTEXT FROM HOGETABLE WHERE UPPER(IDXTEXT) LIKE UPPER('%hoge%')
上の IDXTEXT が BLOB(string) なんだけど、もしかして LIKE だめ?
724 :
718:2007/09/03(月) 19:01:38 ID:EPVlEXdm
>>722 thx!!
ただ・・・俺は本気で頭が悪いようだ。
何が問題なのかまったくわからん。
IDXTEXT は問題ないみたいだし、LIKE も単純な演算子だし UPPER は関数だし・・・
頼む答えを教えてくれ><
725 :
nobodyさん:2007/09/03(月) 19:05:01 ID:KucjbbQW
726 :
nobodyさん:2007/09/03(月) 19:10:21 ID:ZgE8wfr0
ファイルロックってどちらにしてます?
A,
while(file_exists($lf)){
sleep(1);
}
mkdir($lf,0755);
B,
while(mkdir($lf,0755) === false){
sleep(1);
}
727 :
718:2007/09/03(月) 19:11:41 ID:???
自己解決しますた。
BLOB に対し UPPER(BLOB) はサポートされてなかった・・・
INSERT 時に UPPER することにした。
スレ汚しスマソ。
729 :
nobodyさん:2007/09/03(月) 19:34:50 ID:LZnRmggr
>>728 それだとwで開いた時にデータが空になりますし
r+で開くとゴミに注意しないといけない。
( ゚д゚ )
>>729 なんのためにflock関数があると・・・
733 :
nobodyさん:2007/09/03(月) 20:18:42 ID:M+H83k8j
>>726 mkdirは時間がかかるから使えないだろ
734 :
nobodyさん:2007/09/03(月) 20:23:24 ID:LZnRmggr
あれ、flockって窓とかマルチスレッドだと使い物にならなかった記憶があるけど
今はそんな事ないのかな?
>>734 flock()により、(ほとんどのUNIXやWindowsさえ含む) ほとんど全てのプラットフォームで使用可能な簡易な読み手/書き手モデ ルが実現されます。
いろいろ見てきました。API以外は関係ないみたいですね。
基本的には読み書きに関わらずfopenする度にflock($fp, LOCK_EX); とすれば良いのかな。
掲示板などの処理だとそうなりますよね?。
名前付きのミューテックス使え
うぷろだを作成してるのですが、
ダウンロード機能をつけるのに一つ懸念があります。
ダウンロードするファイルに対するエスケープ?処理のような
ものを行なわなくてもいいんでしょうか。
ダウンロード時にXSSのように働くデータをアップされて、
それをダウンロードすると・・・・
みたいな心配はしなくてもいいんでしょうか。
ほかのうpろだのソースを見た限り、特にこの点を心配している
様子がないのですが。
741 :
nobodyさん:2007/09/04(火) 02:10:38 ID:bPRYri3Q
phproxy を、ブラウザからではなく、コマンドラインからアクセス出来るようにする事はできますでしょうか?
環境は、php 5とMAC OS X SERVER 10.3です。
宜しくお願いいたします。
Macだからだめだなw
743 :
nobodyさん:2007/09/04(火) 02:35:25 ID:bPRYri3Q
>>742 ご回答ありがとうございます。MACからじゃ駄目ですかorz
744 :
nobodyさん:2007/09/04(火) 04:06:26 ID:9L3FCPFc
PHPってPerlと違ってflockしなくてもPHPが保証してくれるんじゃなかったっけ?
最近はデータをDBに格納するのが当たり前になってきたから、それで悩まないけど。
>>744 SQLiteか何かを使ってる場合と混同してない??
PDO::prepare()の説明に、
>プリペアドステートメントに渡すパラメータは、引用符で括る必要は ありません。
>それはドライバが自動的に行います。 アプリケーションで明示的にプリペアドステートメントを使用するように
>すれば、SQL インジェクションは決して発生しません
とあるんですけど、mysql_real_escape_stringをしなくても問題ナッシング。
つう解釈でokなんですか?
747 :
nobodyさん:2007/09/04(火) 05:12:23 ID:E1xjDifv
---------------------
if($esse == 1) {
$flag = 0;
$length = count($eles) - 1;
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
if($var == "eweb_submit") ;
else {
for($i=0; $i<=$length; $i++) {
if($key == $eles[$i] && empty($var)) {
$errm .= "<FONT color=#ff0000>「".$key."」は必須入力項目です。</FONT><BR>\n";
$flag = 1;
}
}
}
}
---------------------
フリーのメールフォームのソースなのですが、
ここの中の
if($var == "eweb_submit") ;
else {
ってどうゆう意味でしょうか・・・
$varがeweb_submitならその下のelseの中を実行する・・・ってことでしょうか?
>>747 逆。$varがeweb_submitじゃないときにその下のelseの内容を実行する。
if($var != "eweb_submit"){
と同義。
PHPってperlのmy関数みたいなのってないの?
なるへそ。グローバルのやつだけ明示的にすればいいわけね。
昨日NHK特集で総務の仕事を中国では時間換算(人件費・経費込み込み)で650円でやるらしいが、
日本じゃ時間換算で5000円も掛かるらしい。
phpを仕事でやっている奴は、もう駄目だなぁ。
総務の非定型な仕事に比べて、日本語ができなくて誰でも手軽にできるphpじゃ、中国人なら500円位でやりそうだ。
中国人が売り込みに必死だなw
中国人PGって多いのかな。意外に今まで聞いたことなかったけど。
755 :
675:2007/09/04(火) 10:22:38 ID:9L3FCPFc
昨日、比較演算子について聞いたもんです。その節はどうも。
今日は新しいクエスチョンについて教えて下さい。
if( $a and $b) continue;
↑このandですが(orの場合もあり)、and や or は総称して何と呼べばいいんでしょうか?
英語での呼び方もついでにお願いします。
756 :
675:2007/09/04(火) 10:25:10 ID:9L3FCPFc
そういえば、以前、あるプロジェクトの発注を中国にしたことがあります。
でも日本のベンダーが間に入っていたので、発注額としては普通に安いくらいだった。
間に入ったベンダーが儲かってるんだろうなぁ。
>>755 これからずっと質問していくつもりか
前回の質問でヒント出したんだからマニュアル見るとか検索するとかしましょうよ
数年前からoffshore開発は言われ続けているけど、
業界全体として未だにメジャーにはなっていない。
昨今の技術者不足で単金が下がる所か上がっているしw
中国人は金儲けなら良い意味でも悪い意味でもなんでもする人間だよ。
日本では犯罪や、日本人が嫌うようなやり方で金儲けてる輩が目立つけど、
あれだけ人口がいれば多種多様なわけで、真剣に頑張ってるやつもいる。
ハングリー精神じゃないけどね。
そういうわけで学校すらいけなかったなんていう貧困層でも、
ちゃんと教えれば真剣にやって、そこそこ使えるようになるのが中国人。
これは貧困層の話だけど、中級層↑では学術機関で学んだハッカーもたくさんいる。
日本人相手にウイルスばら撒いたり、巨大な著作権違反SNSみたいのを開設したりするのは、
わりとこういう階級の人間。
761 :
675:2007/09/04(火) 10:40:03 ID:9L3FCPFc
おーマニュアルみてなかったよーサンキュ−
つまり
>>1の1行目すら読んでいなかったということか
おとといきやがれ
>>739 うpされたデータをあくまでも意味づけのないバイナリデータとして
扱ってる限り問題は特に問題はないよ。ただ勝手に意味があるものとして
処理してしまうブラウザとかがあるが。
765 :
nobodyさん:2007/09/04(火) 13:47:51 ID:kR6gSNsI
ftp_putでサイズに上限ってありますか?
10Gを超えるファイルを実行するとfalseを返して終了してしまいます。
300M程度のファイルを実行するとうまく行ってるのですが・・。
766 :
nobodyさん:2007/09/04(火) 14:42:53 ID:t7FQpoBy
forwardの質問はどこですればいいですか?
>>726 安全なmkdir
アクセスが以上に多くなければflock
>>739 昨日のftpとhttp_downloadの質問したやつか
idだしましょうね
>>766 MTAのフォワードの設定と仮定すると、
Unix板のくだ質か、該当のMTAスレじゃないかな。
770 :
nobodyさん:2007/09/04(火) 15:55:05 ID:t7FQpoBy
771 :
nobodyさん:2007/09/04(火) 16:22:15 ID:t7FQpoBy
Unix板、この板より人少ないのかな・・・
少ないよ 笑
773 :
nobodyさん:2007/09/04(火) 16:30:28 ID:t7FQpoBy
そか、気長に回答待つか・・・
それまでに自己解決できれば理想なんだが・・・
windowでphpを始めて
ブラウザで動作確認をしているのですが
エラーメッセージは何処で確認できるのでしょうか
上手く動いていなくても空のHTMLのページが表示されるだけで
何が悪いのか分からないのですが
>>774 とりあえず、サーバーのエラーログを見てみようとか思いませんか?
776 :
nobodyさん:2007/09/04(火) 17:57:00 ID:jHnRn6Rz
sleep 関数 についてですが、
hoge.htmlに以下を記述
$i =0;
while($i < 500){
sleep(10);
$i++;
}
とした場合 hoge.html を 10秒ごとに 500回アクセスするのと、サーバーへの
負荷は変わらないのでしょうか。
>>776 何がやりたいかよくわかりませんがたぶん10秒リロードが必要なのでしょう。
そう仮定するとsleepは負荷以前に目的に合わないはずです。
>>775 サーバーのエラーログは何処にありますか
779 :
nobodyさん:2007/09/04(火) 18:45:16 ID:EHN55NHE
phpのsystem()関数について教えて下さい。
やりたいことは、
・ブラウザは web serverを稼働させる端末でのみ動作させる を条件で、
動作中のブラウザ(自身)を終了させたいのですが。
ボタンクリックで system( "ABC" ); を起動します。
コマンドABCは ブラウザのpid を調べてkillする Cで記述したプログラムです。
コマンド自体は実行されるのですがブラウザが死にません。
コンソールから ABC を実行するとkill出来ます。
実行ユーザーは同じです。
PHP-4.3.9
よろしくお願いします。
780 :
nobodyさん:2007/09/04(火) 18:48:40 ID:5f+cO2zZ
あるpearのクラス(B)を別のクラス内(A)で継承して使用したいのですが、
Aクラスの中で使用した変数をBクラスへ渡す方法が分かりません。
PHP4 / linux です。
どなたかヘルプミー
>>774 htmlじゃないんだからデバッガーつきのIDEで開発して下さい
>>774 php.iniの
error_reporting = E_ALL
にすれば出るはず
>>780 AでBを継承したのにAの変数をBに渡すってどういうこっちゃ。
「A内で」とか書いてるのを見るとまぁ継承じゃないんだろうが。
784 :
nobodyさん:2007/09/05(水) 00:50:24 ID:MdOFDt2P
16進数文字列(ffe1aa8033…)をバイナリ文字列にする
いい方法を教えて下さい
>>782 display_errors=ON
からじゃね?
>>779 >>1 勝手に推察するが、WinでApacheのNTサービスが相手なら、
サービスじゃなくすか、コンピュータの管理のサービスで、
「デスクトップとの対話をサービスに許可」してやってみれ
>>784 pack('H*','ffe1aa8033')
>>776 sleep中は負荷がないとでもいいたいのかね、きみ
>>787 こりゃいいですね
ありがとうございました
なんかずいぶん上から目線なやつが沸いてますね^^;;;;;;;
配列の値は何でも入りますが
キーにも何入れてもいいのでしょうか?
たとえばリソースやオブジェクト等を入れても問題ないですか?
>>792 ダメ。整数か文字列。
#マニュアルより
配列またはオブジェクトをキーとして使用することはできません。 これを行なうと、warning: Illegal offset type を発生します。
>>793 そんな表層的な回答じゃなくて、もっと本質を突く回答をしろよ。
795 :
nobodyさん:2007/09/05(水) 02:56:19 ID:QMlng57L
ディレクリー内のファイル数を取得する関数はありますか?
自作はできたのですができれば効率が悪すぎて実用的ではありません。
$dir = dir('hoge');
$cnt = 0;
while($file = $dir->read()){
if($file!='.'||$file!='..') $cnt++;
}
echo $cnt;
count(glob("hoge/*"));
ひさしぶりに公式見に行ったら5.2.4でてたのか
バグ修正だけだね
来年はPHP4のバージョンアップがなくなるから
4つかってるひとはいまのうちに5に移行したほうがよさげね。
バージョンアップしなければいいだけじゃね
それより6の正式リリースはまだか
PHP3使ってる俺には関係ない話
お前らも悟ればおk
802 :
nobodyさん:2007/09/05(水) 09:46:04 ID:HTNqPBp7
sage
803 :
nobodyさん:2007/09/05(水) 09:48:40 ID:HTNqPBp7
>>781 phpごときにIDEなんて必要?
で、PHPのIDEってDWのこと?Eclipceのこと?その他?
てか、何処でエラーが出ているのかわからんような奴に手書きができるわけないだろw
806 :
nobodyさん:2007/09/05(水) 11:01:56 ID:HV9qeu+U
データをダウンロードさせて、
完了した時点で、削除、という処理をしたいのですが、
どうもうまくいきません。
データ自体が正常にダウンロードできておらず、
例えば、画像だと1/10程度が表示され、残りが壊れているような
感じの画像としてダウンロードされます。容量も本来の
10分の1程度になります。
なんとなくダウンロードしきる前に削除しちゃってる気がします。
クライアント側でデータのダウンロード・取得が完了、
というのをサーバ側で判断したりすることは可能なのでしょうか。
ちなみに8kb以下程度なら正常にダウンロード・削除できます。
または別解決方法がありましたらおながいします
807 :
nobodyさん:2007/09/05(水) 11:45:36 ID:HTNqPBp7
>>804 Eclipceはiアプリの開発で使ってたから、PHPでも使えると聞いて、早速
Eclipceでやってみようと思ったけど、設定が多すぎてその時点で嫌になった。
Perlで苦労した俺からしたら、PHPなんて楽チン過ぎて、これ以上なにを求める?!
って感じなんですが。
ファイルのアップロードでmove_uploaded_fileではなくcopyでファイルを取ると
環境によっては取れない事があるんだっけ?
>>806 ダウンロードさせて、っていうことは、
ファイルシステム上に直接ファイルを作成して、それを参照させてるってこと?
PHPで直接データを送ればいいんじゃないの?
やることは適切なContent-Type: ヘッダをを渡すことだけ。
>>806 Ajaxをトリガーにして削除ってのが簡単カモネ
strposのサーチ対象の文字を複数("/" or "("など)にしたいんですが
そういう関数ないですか
正規表現
813 :
nobodyさん:2007/09/05(水) 13:48:31 ID:iFbT+y59
レン鯖のPHP実行ファイルまでのフルパスってどうすれば確認できますか?
phpinfo()でそれらしい設定が見つからなかったのですが・・・
814 :
nobodyさん:2007/09/05(水) 14:28:23 ID:vAG+Wys0
掲示板みたいなものを作るときテキスト保存で、
httpを含むその行の文字列をアンカーリンクとするようにしたいのですが、
何か巧い方法を教えていただきたいです
>>813 1、鯖かんに聞く
2、dirname(__FILE__)
3、あきらめる
すきなものを選べ
817 :
nobodyさん:2007/09/05(水) 14:33:06 ID:vAG+Wys0
すみません、自己解決いたしました。
ありがとうございます
818 :
808:2007/09/05(水) 14:48:19 ID:???
すまん、気づいたらいた違いの質問だったな。
あ、思い出した、。あの時はSELinux絡みで設定しなおしたんだった
>>818 貴方は誰ですかw
820 :
nobodyさん:2007/09/05(水) 16:01:49 ID:x3JtEU0u
<input type="text" name="name" value="<b>" />
valueの<b>という値はXSSが起こりうるのでしょうか?
一応確認してみたのですが、この行以降の文字は太文字にはなりませんでした。
htmlのお約束を覚えろ。
822 :
nobodyさん:2007/09/05(水) 16:10:26 ID:x3JtEU0u
XSSの心配がないので<の無害化などはしないでこのままにします
823 :
nobodyさん:2007/09/05(水) 18:57:53 ID:6UMtGkQv
PHPで掲示板のスレタイだけ抜き出して、フラッシュに文字を渡そうとしてます。
やってみたら、文字コードのフォーマット?か何かが違ってるぽいです。
PHPで出力文字列をunicodeにするにはどうすればいいですか?
>>823 mb_convert_encoding( )
825 :
823:2007/09/05(水) 19:15:51 ID:6UMtGkQv
$s = mb_convert_encoding($s, "unicode");
やっぱこれじゃダメですか
文字コードの知識が全然無い俺
unicodeは何て指定すればいいんですか
>>825 unicodeは、UTF-7,UTF-8,UTF-16,UTF-32と色々バリエーションがあるし、
さらにそのサブセットもあるから、detectして文字コードの種類を調べるのが先。
>>820 <input type="text" name="name" value="ココ" />
ってことだろ?
" /><script>alert("XSSですけど?")</script> <a href="
って値を入れてみようか。
<input type="text" name="name" value="" /><script>alert("XSSですけど?")</script> <a href="" />
駄目じゃね?
>>825 多分
$s = mb_convert_encoding($s, "utf-8", "sjis");
829 :
823:2007/09/05(水) 20:05:18 ID:6UMtGkQv
>>828さんの方法でできました!
皆さんありがとうございました。
830 :
nobodyさん:2007/09/05(水) 20:49:40 ID:9ANsBxrb
質問させてください。
◆やりたい事
・phpの中にindex.tplを表示する場合とend.tplを表示する場合の条件を記述したい。
・普通にphpにアクセスした時はindex.tplを表示させたい。
・end.tplはテキスト入力欄に入力した状態で登録を押した時に表示させたい。
・現状は分岐のさせ方が分からないため、index.tplの内容を表示し、その下にend.tplの内容が表示されてしまいます。
◆環境
CentOS 4 & PHP 4.3.9
◆index.php
<?php
require'Smarty/Smarty.class.php';
function get_smarty_object(){
$smarty = new Smarty();
$smarty->template_dir = "tmp/templates/";
$smarty->compile_dir = "tmp/templates_c/";
return $smarty;
}
$smarty = get_smarty_object();
// ここに何かしらの分岐を書く必要があると思いますが、書き方が分かりませんでした。
$smarty->display( "index.tpl" );
// ここに何かしらの分岐を書く必要があると思いますが、書き方が分かりませんでした。
$smarty->display( "end.tpl" );
?>
831 :
nobodyさん:2007/09/05(水) 20:50:52 ID:9ANsBxrb
>>830の続きとなります。
◆index.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>月入力前</title>
</head>
<body>
<form method="post" action="index.php">
<input name="month" type="text">月<br>
<input name="submit" type="submit" value="登録">
</form>
</body>
</html>
◆end.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>月入力後</title>
</head>
<body>
<form method="post" action="index.php">
{$month}月が入力されました。<br>
<a href="index.php">戻る</a>
</form>
</body>
</html>
まずはHTMLのフォームについて勉強したほうが
833 :
nobodyさん:2007/09/05(水) 20:56:17 ID:Owa32j3Y
全角「ABC」という文字列をgoogleに与えるキーワードとして
「%EF%BC%A1%EF%BC%A2%EF%BC%A3」という文字列にしたいのですが
何か上手い方法ありますか?
bin2hex使えば16進になることは分かったのですが、後%入れる方法がわかりません。
URLエンコードとかでググルと幸せになれるかも
835 :
nobodyさん:2007/09/05(水) 21:03:41 ID:Owa32j3Y
>>834 ギャーとっても幸せになれましたサンクス
$result=urlencode($keyword);
836 :
nobodyさん:2007/09/05(水) 21:13:33 ID:xhirHVJB
test
837 :
nobodyさん:2007/09/05(水) 22:10:46 ID:JCAEvDAB
phpによってphpファイル生成してもエラー出て実行できないよね?あれ実行できるようにできないの
838 :
nobodyさん:2007/09/05(水) 22:24:31 ID:9ANsBxrb
>>832 レスどうもです。
一応html+phpで動かす事は出来たのですが、ソースを見た所、htmlとphpが混在していて見にくかったので
php+tplに移植を試みていたのですが、中々難しいようで。
多分
if (submit押下後) {
$smarty->display( "end.tpl" );
} else {
$smarty->display( "index.tpl" );
}
でいけそうな気がしたのですが、このsubmit押下後をこの時点で判定するのは難しそうですね。
素直にhtml+phpで、htmlのsubmit押下でphpを呼び出す方向で検討しようと思います。
>>838 そのコードじゃ、ViewとControllerが全く分化できていない。
テンプレート使っている意味がないと思うけど。
840 :
nobodyさん:2007/09/05(水) 22:37:28 ID:9ANsBxrb
>>839 そうなんですか。
正直元のソース(html+php)がカオスすぎて
>>830、
>>831程度に分化してくれれば後から修正しやすいかなと思ったのですが、
本当はもっときっちり分化するものなんですね。
テンプレート難しいorz
いやだから、こんなの書いてる時点でHTMLのフォームからやり直したほうがいいって。
<form method="post" action="index.php">
{$month}月が入力されました。<br>
<a href="index.php">戻る</a>
</form>
842 :
nobodyさん:2007/09/05(水) 22:52:30 ID:9ANsBxrb
>>841 あ、そこはまだダミーの記述で未検証の所です。
まず分岐ができない事にはそこにたどり着かないので、
その部分はhtml+phpで書いた物をこんな感じかなと当てはめただけです。
843 :
nobodyさん:2007/09/05(水) 22:55:03 ID:9ANsBxrb
>>831の<body>と</body>の間は
<p>入力されました</p>
となっていると思っていただければ大丈夫です。
それじゃフォームとが何をするかググるんだ。
分岐する方法は全部そこに書いてあるから。
845 :
nobodyさん:2007/09/05(水) 23:30:39 ID:9ANsBxrb
>>844 ありがとうございます。
フォームでググッてきます。
846 :
nobodyさん:2007/09/06(木) 04:55:02 ID:5gplVXTA
>>827 ああ、、、、タグ閉じでXSS可能ですね。
無害化することにします。
ありがとうございます。
だめだこりゃ
エスケープは基本なのに
エスケープ・・・つまり逃げるってことか。
逃げるのは基本。
849 :
nobodyさん:2007/09/06(木) 09:43:53 ID:5gplVXTA
逃げたらそこで試合終了ですよ
しまった!sageわすれたw
あいかわらず暇そうだな
暇。その通り。エスケープにはサボるという意味がある。和製英語だけどな。
853 :
nobodyさん:2007/09/06(木) 12:31:25 ID:acTwpTPv
サーバー監視用のスクリプトを作っています。
stream_socket_clientで接続できるかどうかで判断しているのですが、
どうもサーバが動いてるかどうかだけしかわからないようです。
正常に稼動してるか、してないかまでチェックしたいのですが、
何か他に最適な関数や方法ありませんでしょうか?
具体的な例として、
ttp://rosv.lln.jp/ こちらのサイトでは
ttp://rosv.lln.jp/status.html の説明で、
Good, Closed, Dead, Downとステータス分けしていますが、
stream_socket_clientでは、GoodもClosedもDeadもおそらく同じ結果として返ってきます。
これをこのサイトのように別々のステータスとして受け取りたいのですが可能でしょうか?
854 :
nobodyさん:2007/09/06(木) 12:33:26 ID:dac6pXjB
2chのアンカーリンクみたいに掲示板に
>>1で指定URLに飛ぶような関数を作りたいのですが、
function A_Link($str,$url)
{
}
として、引数$strには投稿された文章、引数$urlには相対パスを入れようとおもっているのですが、
この場合どうすればいいでしょうか
splitで>>で区切って配列1のデータで作ってみましたが、文章全体がリンクになったりとうまくいかず・・・
>>854 難しく考えず
<a href="#1">1</a>みたいにレス番号全てにアンカーつけといて
書き込み時に正規表現で>>intのものを繰り出して
<a href="#int">int</a>に置き換えすればいいんじゃない?
>>854 PHPのリファレンス(関数一覧)を見ることをオススメする。
split以外の関数にどんなものがあるのか探せ
>>853 そのサーバがきちんと動いているかどうかは、
そのサーバの喋るプロトコルに沿ってアクセスして、返答を見る必要があるだろう。
タイムアウトか、エラーが帰ってきたら死んでるのでいいじゃん。
リファレンスはざっとでもいいから見ておくだけで、かなり勉強になるしな
なんというか知ってて当たり前のような事を知らない奴が多すぎる
こんなとこで質問する前に、まずはリファレンス嫁って感じ
859 :
854:2007/09/06(木) 13:17:01 ID:dac6pXjB
正規表現だけでなんとかできました・・・
>>855 最初それにしようとおもったんですが、ページ切り替えを作ったときにそれだと飛ばないので
無理にでもこの方法にしてみようとおもってました
プロファイリングのために
tickで割り込んだ時、元々いた場所の情報を知りたいんですが
どうすればいいですか?
phpでフォームを作ってるんだがサファリ以外は全てうまくいくのに
このクソブラウザだけがうまく動かん。
フォームに入力された内容が全く引き継げていない。
<form >タグにactionとmethodしか設定してないんだけど
他に設定すべき情報ってありますか??
>>861 actionとmethodが正しく指定されていればSafariでも問題ないはず。
まずは落ち着いて状況を再現できる最低限のコードを晒してはどうか。
>>862 最低限のコードなのでこんな感じかな(スマーティ使用)。
かなり省いてるけど分かる人には分かると思う。
どうもphp側の問題ではないような気がして、もしかしたらスレ違いなのかもしれない。
[index.html]
<form action="./confirm.php" method="post">
<input type="text" name="f_name" value="{$input.f_name}">
<input type="submit">
</form>
[confirm.php]
$f_name = $_POST["f_name"];
//エラー判断
if( $f_name == "" ){
//リダイレクト
}
以下、テンプレートconfirm.htmlを読み込んで表示。
エラー判断の時点で何も入っていないと解釈され元のページに戻されてしまう。
もちろん何回もやったので入れ忘れたとかはない。
他のブラウザなら全く問題なく動く。
SafariはSafariでもバージョンによっては不具合が出るとかあるのだろうか。
最低限ってfieldsetとlegendもいれないとinvalidじゃないのか
俺が馬鹿だったのか
865 :
nobodyさん:2007/09/06(木) 16:29:40 ID:dALDE1iv
アップローダー作ってます。
任意のファイルのアップロード・ダウンロードをできるようにしてます。
ダウンロード側で、以下のようにして正常に動作はしてますが、
$down_file のソース自体の影響でXSSなどが行われる心配はないでしょうか。
仮に行われる可能性がある場合、
ファイルのデータ自体のエスケープ処理なんてどのようにすればよいんでしょうか。
<?php
$down_file = $_GET['down_file'];
if( !mb_eregi("^[a-z0-9]+$", $down_file )){
exit();
}
Header("Content-type: text/plain; name=\"".$down_file."\"");
Header("Content-disposition: attachment; filename=".$down_file."");
readfile("/data/".$down_file);
exit;
?>
>>864 それってタブで移動できるようにする為のタグではないの?
Safariはそれでグループ化しないと値が引き渡されない?
そんなはずは・・・
昔サファリで投稿すると文字化けするって話あったよね
まだ初期のころ
>>867 なるほど、、色々といわく付きのブラウザって事ですな。
素直に諦めるか。。。
あえてそんなクソブラウザを使うようなやつが悪い。
869 :
nobodyさん:2007/09/06(木) 20:19:46 ID:BwUmyBl/
file関数を使ったファイルのように変数を配列化する方法を教えてください。
$file="a\nb\nc\nd\n";
(何らかの処理)
print "$file[0]";
で、「a」と表示といった感じです。
$file = explode("\n", $file);
871 :
nobodyさん:2007/09/06(木) 20:45:53 ID:BwUmyBl/
神様仏様
>>870様、初心者の質問に答えてくださりありがとうございます
BBSを作っています。
1レスのデータを1行にまとめてテキストファイルに記録しているのですが
新しい書き込みをテキストの上に記録していくには、
一度配列に全レスを読み込み、新しいレスを加えてファイルに書き込む方法
しかないのでしょうか?
ファイルポインタの位置から、テキストエディタのようにインサートで書き込む
ような命令はないのでしょうか?
一度配列に全レスを読み込むしか方法がない場合、例えば全書き込みが1000程で
安いレンタルサーバで利用する場合、高負荷と判断されるような処理なのでしょうか?
873 :
872:2007/09/06(木) 23:46:45 ID:???
友達に聞いて自己解決しました。
やっぱりデータベースを利用することにします。
SQLiteって便利ですね!
関数のオーバーライドを実現する方法を教えて下さい
875 :
nobodyさん:2007/09/07(金) 00:15:17 ID:iXE96r/B
すみません
for文で
0001〜0010〜0100〜1000
というふうにしたいのですが、
可能でしょうか?
日本語でおk
なんとなくsprintfでFAっぽい
878 :
nobodyさん:2007/09/07(金) 00:49:57 ID:fIAEM3os
phpで文字列比較を行う場合、"=="演算子を使っちゃっていいのかな?
javaのequal()メソッドみたいな物はありますか?
自分は==使ってます。関数で比較したのはみたことないからあっても有名ではないと思う。
880 :
nobodyさん:2007/09/07(金) 01:17:45 ID:iXE96r/B
0001〜1000でインクリメントさせたい
0を表示したまま
883 :
nobodyさん:2007/09/07(金) 02:15:53 ID:Y/cI9Wol
>>878 文字列の比較なら 「==」 よりも 「===」 がお勧めです。
以下のスクリプトは、 驚くべきことに 「True」 を表示します。
$x = 0;
if ('string' == $x) {
echo 'True';
} else {
echo 'False';
}
「==」 を使って比較すると、 'string' は0と同値とみなされてしまうのです。
「===」 なら型まで比較するので、 このようなことにはなりません。
884 :
878:2007/09/07(金) 02:39:35 ID:fIAEM3os
>>879>>883 レスどうもです。
>>883さんの例で、'string'という文字列だけが0と同値とみなされるって事は
'string'以外の文字列の比較だったら気にしなくてもいいって事かな・・・
あと、「==」が型を無視するって事は、下のサンプルはtrueを出力する
事になるんですか?
$iX = 5;
$sStr = "5";
if ($sStr == $iX) {
echo 'True';
} else {
echo 'False';
}
そうだとしたら、ちょっと気になるな・・・
文字列の比較は、「===」にして、数字と比較したいときは型変換する
ってコーディングルールを今後自分の中で作ろうかな。
これってまずいかな? なんか一般的な決め事ってあるんですか?
886 :
nobodyさん:2007/09/07(金) 02:57:47 ID:Y/cI9Wol
>>884 'string' は例であって、 'foo' でも 'bar' でも0と同値とみなされます。
ただ、 '3' や '49ers' のように整数型に変換すると0でなくなるものは0と同値とみなされないようです。
887 :
878:2007/09/07(金) 03:04:10 ID:???
>>'string' は例であって、 'foo' でも 'bar' でも0と同値とみなされます
そうですか。
'string'という文字列だけ例外とかおかしいですよね、失礼しました。
「===」演算子を使うようにしますわ。教えてくれてありがとう。
888 :
nobodyさん:2007/09/07(金) 04:32:50 ID:rfOwdTtE
>>866,
>>868 >それってタブで移動できるようにする為のタグではないの?
いや、HTMLはPHPのように動作を命令する言語ではない。
たしか、form要素直下にインライン要素は文法違反だったと思う。
これが直接の原因とは考えられないが。
889 :
nobodyさん:2007/09/07(金) 04:42:50 ID:OvuyfN7a
BBSを作っていて、
>>872さんと同じような事で悩んでいます
>BBSを作っています。
>1レスのデータを1行にまとめてテキストファイルに記録しているのですが
>新しい書き込みをテキストの上に記録していくには、
>一度配列に全レスを読み込み、新しいレスを加えてファイルに書き込む方法
>しかないのでしょうか?
>>872さんはデータベースを使う事で解決したらしいですが
データベースを使えないサーバでは、この方法でしか不可能でしょうか?
SQLiteはDB使えない鯖でも使えるんですが。
レンサバじゃ使えないとこもあるんですが。。。。?
>>892 場ジョン5.2.4に変えただけで中身は一緒かよ
All Aboutっててきとー記事多いよね。
allaboutの技術記事なんて見る奴いねーだろ
>>896 そんなallaboutも上場しているんだよな。
mixiもkakaku.comもphpで実装しても大したことがない機能ばかりなので、
あれで上場できるとは、誰でも上場できるような気がする。
>>896 そこらのblog覗くとphpの設置だけで四苦八苦してサイト徘徊してるらしいよ。
んなわけだから、中にはallaboutに引っ掛かる人もいるかもしれんわ。
899 :
nobodyさん:2007/09/07(金) 07:34:26 ID:5n6DmJVT
php+postgresqlでデータベースシステム
を作っているんですが、
構築中にpostgresqlモジュールのインストールをしないと
php、postgresqlはうまく動かないと書いてあるのですが、
その方法にてマニュアルや乗っているサイトはないでしょうか?
PHP5です。postgresqlは8.1.3です。
>>899 > うまく動かないと書いてある
どこに書いてあったの。
901 :
nobodyさん:2007/09/07(金) 08:30:28 ID:9skKCQS9
>>898 俺も何も知らないときひっかかった
今はXAMPPですぐなのにね
XAMMPこそ糞だろ
903 :
872:2007/09/07(金) 09:29:39 ID:???
>>872ですが
>>873で騙りで事故解決されてしまってます。
まあ873はSQlite使えと言いたいのだとは思いますが。
Windowsユーザのインストール記録は多種多様
Installerによるセットアップはさておき、php-zipファイル解凍後の作業パターン
case1
php.iniリネーム後、ini, *.dll全てシステムディレクトリにコピー
case2
php.iniリネーム後、phpフォルダにpathを通す
ini, php*ts.dllをシステムディレクトリにコピー
case3
php.iniリネーム後、PHPIniDirを設定
php*ts.dll他、拡張モジュールをシステムディレクトリにコピー
case4
php.iniリネーム後、phpフォルダにpathを通し、PHPRCを設定
ini, php*ts.dllをシステムディレクトリにコピー
動作不具合により拡張モジュールまでシステムディレクトリにコピー
みんな、自分が何やってるのかわかってないだろ?
国内のみならず海外までこの調子だからな
>>904 たしかに俺もわからんな
Apache+PHPの関連付けというくらいしか・・・
具体的にどうなっているのかはサッパリだ
面倒だからxamppに一任してます
テスト環境としたらxamppで十分すぎ
今時PHP4のレンタル鯖が多くてウザい
911 :
nobodyさん:2007/09/07(金) 13:26:12 ID:h8X9ZIw7
PHPでCGIモードをモジュールモードの違いって何でしょうか?
さくらレンタルサーバーを借りようと思っているのですが、
モジュールモードで実行できるのがプロからなんです。
今までPHP5で動作を確認してきました。
モジュール版は拡張子がphpってファイルをあげてそこにアクセスすればそのまま動く。
cgiモードはcgi-binとか専用のディレクトリ作ってそこでCGIが動くように設定しなきゃいかん。
ファイルの拡張子もcgiにしなきゃいかんし色々と不便。
913 :
nobodyさん:2007/09/07(金) 13:45:01 ID:h8X9ZIw7
>>912 つまり、全てのphpの先頭に「!#usr/bin/php」とかつけないといけないのかな?
さくら借りるの辞めたorz
914 :
nobodyさん:2007/09/07(金) 13:50:38 ID:nZ/hNLzg
>>912 ビジネス・プレミアム両方とも、
!#usr/bin/php つけなくても、さくらサバ動きますよ。
いたって普通に動きますよ。
質問ですが
・phpのsleepを使う意味(処理を遅くさせて何のメリットがあるのか。処理を
遅くさせることによってサーバーへの負荷を少なくするという解釈でOKなのでしょうか)
・php5 の private とか外から読めないようにする意味
を教えていただけませんでしょうか。お願いします!
915 :
nobodyさん:2007/09/07(金) 13:51:38 ID:nZ/hNLzg
>>914 すいません、
・php5 の private とか外から読めないようにする意味
これは class を使うときのことです。
916 :
nobodyさん:2007/09/07(金) 13:52:48 ID:h8X9ZIw7
>>914 なるほど、でも自分はスタンダートの予定ですorz
PHPのsleepはWindows(Winアプリ?)で実行させれる形にするときに長保しますよ。
それ以外では使ったことがないですが・・・
>>910 確かにレンサバにphp4しかないのは問題
今からphp4用作るなんて時間をどぶに捨てるようなもの
>>919 XAMPPなら知ってるけどXAMMPなんて聞いた事なかったんよ
皮肉で聞いてるのも分からないなんて酷いな。どうせ本人だろうけど。
>>922 質問するならID出せってことだよ
それすらできないなら最初から質問するな
>>923 なんでそんなにピリピリしてるの?笑
質問する意図があった訳じゃないのは
>>922見て分からないの?
頭悪いの?
926 :
nobodyさん:2007/09/07(金) 14:26:21 ID:rbBQhYL0
ここって本当に心にゆとりがない人多いよね。
頭はゆとり全開だけどさ。じゃあID出して質問しますね^^
XAMMPって何ですかー?
そんなの聞いた事ないんですけどー?
XAMPPなら聞いた事ありますけどー?
927 :
nobodyさん:2007/09/07(金) 14:26:37 ID:lQ1e3Ppz
>>917 php4とphp5の違いを教えてたもれ
>>927 使える関数など
最近のFWもPHP5.x以上のみになってきてるんじゃないかな?
http://www.php.net/manual/ja/install.windows.php >警告
>インターネットでオールインワンのインストーラがいくつか見かけられます。 しかし、いずれも PHP.net により公認されたものではありません。
>システムを最適化し、また、安全を保つためには、 マニュアルインストールがもっとも良い選択ではないかと我々は考えています。
だからXAMPPはやめとけな。
それぞれの手動インストールをマスターした上で使うのならいいが、初心者が楽だからといって使うのはただの思考停止。
クローズドなテスト環境の構築には便利だし問題ないだろ、xampp
>>913-914あたり
だれもつっこんでないが
!#usr/bin/phpっておかしいだろ
#!/usr/bin/phpだろ
Win版をソースコンパイルしてる香具師っている?
PHP4滅ぶのマダー
935 :
nobodyさん:2007/09/07(金) 17:00:15 ID:3IipQzMp
こんにちは。今日のお昼は蕎麦でした。
preg_replace で e指定子を付けるとシングルクォートがエスケープされるのですが、
これは必ずそうなるのでしょうか?
php.ini などの設定で抑制されるものなのでしょうか?
echo preg_replace('/./', '$0', "'") ; // そのまま
echo preg_replace('/./e', '"$0"', "'") ; // シングルクォートがエスケープされる
よろしくお願いします。
$day = date("d");
if ($day = 1){
echo "こんにちは";
}
これで1日に"こんにちは"が表示されるようになったのですが、
15日にも表示させたい場合、($day = 1)の部分をどのように記述すればよいのでしょうか?
幼稚園並みのつりだなw
>>931 テストならできるだけ本番と同じ環境の方がよろしいような...
ま、開発だけならパッケージのバイナリもいいかもね。
>>936 そのif文だと1日以外でも表示されると思われる
>>936 式は変更する必要ないよ。
if を while に変えればいいと思うよ。
>>933 VC++6持ってなきゃ cygwin か .NET版VC++ & platfosm SDK 用意しなきゃならんでしょ?
面倒臭くてやってられない。 (C++Builder5 しか持ってないもん)
だったら
・zip解凍→ルートディレクトリ(C:\ etc.)にフォルダを移動
・システム環境変数 Path & PHPRC 設定
・テンプレートファイルから php.ini 作成&編集
・httpd.conf 編集
・システムリブート
って、バイナリ展開の方が手間入らずで済むからいい。 by ナマケモノ
s/platfosm/platform/g
944 :
nobodyさん:2007/09/07(金) 18:06:20 ID:ArMFnOZS
>>937-940 >>936です。
すみません確かに1日以外でも表示されていました。
ifをwhileに変えた場合、その後のelse {でエラーが起きている表示になりました。
if($day == 1)にしたら今度は上手く行ったようなので、
if ($day == 1){
echo "こんにちは";
}
if ($day == 15){
echo "こんにちは";
}
にしてみようと思います。
945 :
nobodyさん:2007/09/07(金) 18:09:24 ID:ArMFnOZS
2番目のifをelseifにしたら出来ました!
さっき試した時に出来なかったのは==じゃなかったからなんですね・・・
ありがとうごじました
946 :
nobodyさん:2007/09/07(金) 18:23:53 ID:q1A+s3Q8
if($day == 1 || $day == 15) echo "こんにちは";
1行で済ませないのはおじいちゃんの遺言か?
948 :
nobodyさん:2007/09/07(金) 18:53:05 ID:ArMFnOZS
>>946-947 おおお、ありがとうございます。
1行にまとめる方法が分かりませんでした。早速直しますm(__)m
949 :
nobodyさん:2007/09/07(金) 20:28:54 ID:5n6DmJVT
php5はpostgresqlモジュールのインストールしなくても
php+postgresqlで動くのかな?
今本見て勉強しているんだが、
書いてあるのと書いてないのがある。
php4とphp5どっちをイントールすればいのだろうか?
>>949 php.iniで;extension=php_pgsql.dllのセミコロンを外して再起動するだけでおk。
バージョンは5
習うならPHP5やっておけばPHP4の違いも比較しながらつうのが
時期的に多いから結果PHP4にも対応できるようになるお
OSも書かない動作質問はするー
>>872と
>>889について
unix系環境のもとならcatとかsort使うとか。
fopen("newfile", "w");
1行書き込んでファイル閉じる
system('cat newfile , currentfile > tempfile', $ret);
で、rename("tempfile", "currentfile");やってリネーム
newfile…新規1行レコードファイル currentfile…既存ファイル
または
fopen("writefile", "a"); アペンドでファイルオープン
末尾に1行追加してファイル閉じる
system('sort -r writefile > currentfile', $ret);
ソートで書き込み一気に反転やぁ〜
writefile…書き込み専用 currentfile…読み出し専用
なんか問題出そうな気がしてきた…
954 :
949です。:2007/09/07(金) 21:40:26 ID:5n6DmJVT
fedora core4です。
自分はphp5はfedora core4でパッケージでインストールされているの
を使ってpostgresqlと連携したいのですが、可能ですか?