【PHP】くだらねぇ質問はここに書き込みやがれpart3
2 :
nobodyさん :05/02/07 21:59:22 ID:yRcV3K5k
乙
PHPはくだらない質問が多くてスレも活発でいいなぁ
5 :
nobodyさん :05/02/07 23:02:34 ID:ugDz3ClP
ある、Blogのサイト(XML)があり、そこの記事が追加されたら、 特定のサイトの index.html の新着情報を更新したいと思います。 具体的にいうと、ココログなどはポータルサイトに、時間ごとの、新着記事が載っています。 これをPHPで実現したいのですが、どうやれば、いいでしょうか? XMLのパーサーを使うというのはわかるのですが
オススメの書籍を教えてください
>>5 やりたいことは分かるんだが、もう少し具体的に何が分からないのか書いてくれ
9 :
nobodyさん :05/02/07 23:34:06 ID:ugDz3ClP
10 :
nobodyさん :05/02/07 23:52:17 ID:W2PCIlVp
HTMLソース内に記述されている画像ファイル名を抽出しようと四苦八苦しています。 画像ファイル名は相対パスで指定されており、「../../」の部分も一緒に抽出させたいのです。 検索条件をお教えいただけないでしょうか。 $html = HTMLソース; eregi("xxxxxxxx", $html, $var); -- このような結果が返ってくる -- $var[0] == "../../aaa.jpg"; $var[1] == "image/bbb.gif"; ・ ・ ・ お力添えをお願い致します。
12 :
10 :05/02/08 00:17:47 ID:aXE3qbDZ
>>11 ありがとうございます。
さっそく移動します。
>>9 >まず、わからないのはどのタイミングでか?
>新着情報が登録されたら、 自動的に、(p)
http://www.cocolog-nifty.com/ >を更新することは可能か
条件的には可能だが、相手側と連携しているのでなければ不可能。
その場合は擬似的に処理をする。
相手側の新着情報の更新と共に自分側に何らかの信号が送られてくるのでなければ
自分の方から確認を相手側の新着情報の更新のある・なしを確認しなければなりません。
相手側の更新のタイミングは通常はわかりませんので、ある一定の周期で確認する
(これはcronなどを利用して周期的に自動で動かす)か、誰かが自分のページを見た時点で
現在の新着情報の更新を確認しにいくかのどちらかです。
後者の場合、誰かが自分のページを見る度に確認していると非常な負荷となり
ページ表示も遅くなりますので、ある一定の時間内に確認が出来ていれば再確認はしない
(キャッシュする)ように工夫すべきです。
>>9 タイミングの質問はプログラミングとか深く考えないで、
「自分が手作業でそれを行う」と考えたらおのずと答えが出るんじゃないの?
それを形にするのがプログラミング。
後半の質問に対してはPHPの勉強をしろってしか言えない。
17 :
nobodyさん :05/02/08 05:39:35 ID:7ghetwi3
セッションハンドラを書き換えて MySQLにセッションデータを保存するようにしました。 include "db.php";←ここでdbに接続 include "dbSession.php";←ここでセッションハンドラ書き換え という順序なのですが、ごく稀に、 dbに繋がってないうちにハンドラが呼び出されているようで エラーになります。 原因はどのようなものが考えられますか? またこのような現象に出くわされた方はいないでしょうか? バージョンは4.3.10です。
>>17 エラー処理してないからだろ
データベースにコネクトできなかったらエラー
クエリー処理できなかったらエラー
正規表現で "/abc.*?z/" みたいなのがあって *の後にくる?はどういった意味になるのでしょうか?または、どういったときに そういう風にするんですか? 実行してみても、あってもなくても変わらない気がします。。。
>>19 最短マッチせよ、の意味。最短マッチさせたいときにそういう風にする。
>>20 レスありがとうございます。
最短マッチですか。それで、
ちょっとわからなくて調べてみたんですけど、
"/abc.*?z/"で
.*だけじゃ、次にでてくるzも読み飛ばしてしまうときがある。
だから?で次にくるzまでって意味にするんですかね?
?をつけたほうが確実だから?
".*"とかいたとき、.*はすべての文字にマッチする。すべてということは、"も含む。 したがって、デフォルトは最長マッチ。 たとえば <img src="foo.jpg" alt="bar" /> とあったとき、".*" では、"foo . . . bar" までマッチする。 しかし最短マッチで"の直近の"までを取りたいことがある。 ".*?" では、"foo.jpg" までマッチする。これは、"[^"]*"と書くのと同じ。 現実には *や+が、後方に続く正規表現まで喰ってしまわないように指定することが多い 調べたなら、どのサイトでも上と同じような説明があっただろ。 スレ違いだけど、正規表現くだスレがないので答えてみた。 >飛ばしてしまうときがある どうでもいいけど、したりしなかったり、、、なんてファジーな挙動はありえねえええええええええですよ。
>>22 なるほどわかりました。
ありがとうございました!
それは全然違う手法なので全く使い物にならない $fp = fopen(”html.html”,’w’); fwrite($fp,$html,64000); fclose($fp); のようにhtmlを代入してphpが自動生成してくれないと困る
>>24 webサーバの設定。
apacheの場合なら、mod_rewriteやmod_actionあたりを使ってPATH_INFOでQueryStringを受け取る。
鯖の設定に深く関係するから、管理者に聞いてみそ。
>>26 は何言ってるのか分からんな。
>>24 と同じ人なら(WebProgも)諦めることを薦める
わらた
アドレスバーに表示されてるのを、別のアドレスに見せかけるのは ブラウザを弄るしかねぇんじゃないのか?
26のアホぶりにワロタ
いや28さんの言うとおりであり、PATH_INFOかmod_rewriteを使うのが一般的である 特にmod_rewriteが良く使われるらしい ただ俺はこの手法でやりたかったんだ。 htmlを$htmlに代入してhtmlを生成するということを・・・ 何をいっているのかわからんといわれたorz $fp = fopen(”html.html”,’w’); fwrite($fp,$html,64000); fclose($fp);
久々に気持ちいいくらいの馬鹿だな。
BlあるBlogのサイトから、記事の題と、そのリンクを含むHTMLを 吐き出すプログラムをおしえてください 環境は、phpで、パーサーをつかいますog の
馬鹿じゃないんだけどPHPを1時間前にはじめたから基礎が全くわかってないんだ javaやcならできるからとりあえず感覚でものをいってる(笑 要するにphpでの生成でなくてhtmlとすることでseo効果をあげたいんだけれども いまいちうまく伝わっていない。。。というか馬鹿にされている
違う間違えた つまり test.php=3333k となるアドレスバーの表示を test/3333k.htmlのようにしたいということなんだけど 全然伝わらない(笑
PHPの知識の有無と関係なくやっぱ馬鹿じゃねーかよw
質問者は、コテつけろや。
>>38 37の言うとおりなら毎回test.phpスクリプトが呼ばれて別に負荷削減になってないが、
SEO的なもの(拡張子で判別してる古臭いシステムも最近は少なくなったが)だけなら、
.htmlをPHPスクリプトだと判断して処理するようにサーバの設定を変えるだけでいいんじゃないのか?
・033k.html <html> <head><meta http-equiv="Refresh" content="0;URL=test.php=0333k"> </head></html> ・test.php 生成する処理 header("Location:生成したURL"); 夢がひろがりんぐwwww
コテの代わりにsageをsagとしてる 最初にミスってあげてしまったのでそのまま放置してるだけだけど
>>38 crontabで定期的にstaticファイル(html)生成しときゃ良いだけじゃないのか?
>>37 それならmod_rewriteでフロントコントローラに処理まわすだけだから
アホのやりたいこととはちょっと違うんじゃないのか
ああ、分かった。 header("Location:"$_SERVER["QUERY_STRING"].".html"); だろ?
少なくとも42のような処理は論外
簡潔にいうと PHPで表示しているHTMLを部分を、$htmlに代入する方法が知りたい 以上 $fp = fopen(”html.html”,’w’); fwrite($fp,$html,64000); fclose($fp);
>>50 「phpで表示しているhtml部分を」ってこと?
自分で作ってるんだから文字列として保存しておけばいいじゃん
オレを責めないでくれ(;´Д`)
オレにもsagが何をやりたいのか分からん。
>>50 $html = file_get_contents($filename);
>>50 いい加減馬鹿に付き合うのもしんどいんだが・・・
>PHPで表示しているHTMLを部分を、$htmlに代入する方法が知りたい
PHP(*1)で表示しているHTML(*2)を部分を、$htmlに代入(*3)する方法が知りたい
(*3)の処理をするPHPは(*1)なのか?
(*3)で代入するHTMLの内容は(*1)が吐いているのか?
>>50 while( 1 )
{
$myContents = "html.html";
$fp = fopen(”html.html”,’w’);
fwrite($fp,$html,64000);
fclose($fp);
}
低ビットレートwmaの参照量が意外に伸びてる。 HDや回線が〜という人はNyでダウソしないかと思ってたけど、さらっと聞きたい人がけっこういるということか。 個人的にはあの音質は厳しい・・。 48kbpsのwmaを落としてる人も結構いるね。 oggも伸びてるし、mp3じゃなきゃいかんということはなさそうだ。 けど、MyoUwT1u5C神のだと、S/Nはともかく、01c821e0...のmp3が聞きやすかった。wmaはかすれた高音がちょっと耳障りなことない? 上の方がつぶれて耳が痛いというか。oggにもやや同じような傾向があって、イコライザでごにょりたくなった。 うちのチューナはオンボロなので、まろやかなAMの音声に慣れすぎた耳の方がアレな可能性もあるけど。
前にも書いてあるようにまだphpのコードの2つや3つが理解できたばかりなので文字列として保存する方法すらわからないのです
>>56 だったら、なんで
>>50 みたいにえらそうなんだ?
で、
>>50 にある
$fp = fopen(”html.html”,’w’);
fwrite($fp,$html,64000);
fclose($fp);
は何?
ずいぶんこの3行にこだわっているみたいだけど。
2行目の$htmlにあらかじめHTML構文を入れておきたいって事か?
$html =<<<_HTML_
<html>
<head></head>
<body>
言いたいことやりたい事
</body>
</html>
_HTML_;
CやJavaの経験があればいきなり新規モードで更新ファイル開いたりしないよ。
idでないからわかりずらいな
失礼な
だから質問者はトリップまでとは言わないが、 とりあえず、最初の発言番号コテつけろって。
嫌だ
ずっとROMってるんだが質問の意味がさっぱり分からない
66 :
nobodyさん :05/02/08 16:57:48 ID:cdY+zNxz
ファンタスティポをループ再生させてるせいで頭がおかしくなっているのかもしれない ファンタスティポはジャニヲタや音楽の世界など超越した遥か彼方に存在する世界だからな うーむ・・・
livedoor適当だな
というのも国分のアホダンスがおかしくておかしくて
>>59 俺は普通に新規モードでやっちゃうんですけど、なんかまずいんですかね?
あぁ国分でなくてトラジ、 か
なんでPHPなのに拡張子がincなのですか?
インクルードパスの通っているディレクトリに置くファイル
>>73 別に何でもいいけど、includeさせる事を前提に作られたファイルだから、
昔から、よく使われる拡張子。
実はもっとも初歩的なセキュリティホールになりやすい罠。
とりあえずCでやりたいこと書け そっちの方が意図が伝わるんじゃないか?
phpにもswitch case 文があるのか・・・
いやもういい、今日は疲れた あとは自力でやるから(進歩なかったが)おすすめの参考書を教えてほしい 今はまるごとPHP vol1を買おうと思っている
というよりこれからvol終わりまで買い続けようと思っている
俺もinc拡張子は使ってるなぁ。もっともこんなアホな事はせんがw
.inc.phpって書かない?
スーパーサンプルもなかなか良さそうではあるんだけども 本は本屋で立ち読みして買う派なもので
>>71 スレ違いだが、排他制御不要なら無問題。アクセスがかぶれば当然ファイルが壊れる。
素人にありがち?なミス。マニュルのflockんとこにも注意書きあるけどね
↓
$fp = fopen('example.ext', 'wb');
flock($fp, LOCK_EX);
fputs($fp, 'hello, world.');
flock($fp, LOCK_UN);
fclose($fp);
まぁ、普通はinc拡張子の置き場所を ・ドキュメントルートより上 にするだわな。 もしくは、.incに対してPHP実行属性与えるか
> 本は本屋で立ち読みして買う派なもので ならスレ違いな書籍紹介依頼なんかするなよ馬鹿
で結局アホは何がしたかったの?
アホという言うやつがアホだと習わなかったか
上手い具合にURL打ち込んで当たったら中身を見ても良いよって場合は*.incや*.phps をつかえば良いと思うよ。
アホは形容じゃなくて名前だよ名前。 で、何がしたかったんだ?
いや問題解決がしたかったんだが理解に至らなかった
問題解決したいなんて当たり前の話はお前意外みんな分かってる 具体的な構成を説明できないのはどのフェーズでも致命傷だな
おう
I came to VIP !
mail ("
[email protected] ", "件名", "本文1行目\n本文2行目\n");
PHPからメールを送信させているのですが、"件名"の部分の日本語が
メール受信ソフトでは文字化けして表示されてしまいます。(OE6)
Windows用のメールソフトでも文字化けせず件名を日本語で記述するには
どうしたらいいでしょうか?
ちなみに本文の部分は問題なく日本語表記されています。
( ゚д゚)ポカーン
俺のIMEはこう 舞無縁高度
>>97 $new_subtitle = chunk_split (base64_encode($subtitle));
こんなんでいいか?
chunk_splitは余計だったかなぁ・・・
識者レスプリーズ
だから舞い無縁高度だと
俺のIMEはこう M微意千度目煎る
>>103 見飽きた質問だからって変換くらいちゃんとやれよ
俺のIMEはこう
ヱ厶匕~―匕冫├~乂ヰ儿
笑む微意千度目入る
舞無縁高度
携帯から 毎無縁高度
>>96 "^\.ht"とでもしとかないと、htmlファイルが含まれる恐れがある悪寒。
新スレ立ったばっかなのにもう100か おまえら昼間っからひまだな
110 :
nobodyさん :05/02/08 22:12:50 ID:oPFljb4F
全角の英数字、記号を対応する半角文字に変換するにはどうしたらいいんですか?
書き換える
>>110 記号は無理だが、mb_convert_kana()。
mb_*が使えない場合は、jcode.phpをググって拾ってくる。
今後 日本語関係で躓いた時は、マニュアルの「マルチバイト文字列関数」のカテゴリを参照。
>>112 さんくすー
マルチバイト関数一覧を見たんだけど mb_convert_kana() でカナだけじゃなくて
数字も変換できるとは気づかなかった
> 記号は無理だが
やりたいのは、全角の数字(2.3など)を半角の数字(2.3)に変換したいんだけど
小数点だけは別に処理すれば大丈夫そうだね
pealとかでよくjcodeつかうけど、phpはそーゆうの いらないんですか?
115 :
96 :05/02/09 02:11:09 ID:???
>>108 いや、Apacheの設定はそうしてるよ。
そもそも、
.ht*
は正規表現(のつもり)じゃないし。
118 :
nobodyさん :05/02/09 04:52:13 ID:zR7vkue5
PHPはAPACHEがないと組めないのですか。
>>118 PHPはAPACHEがなくても組めるのですよ。
chm版はPHP本家にも置いてあるわけだが・・・
124 :
114 :05/02/09 11:15:54 ID:???
>>117 さん
jcodeを使用しなくてもsjisが問題なく使えるようですが、
どういったときに使用するのでしょうか。
>>124 SJISを使うとは
・SJISを扱う処理ができる
・コードをSJISで書く
どっち?
>>121 うちでは文字化けしないから環境の問題かもね
ライセンス的なものは私がどうこういうものではないけど、
文字化けして困っている人がいるなら良いかもね
129 :
nobodyさん :05/02/09 14:01:37 ID:ghOW4cSF
配列に空の要素があった場合に、その要素を取り除くには どうすれば良いでしょうか? お願いします。 Array ( [0] => りんご [1] => [2] => みかん ) 配列に空の要素が含まれているかどうかと、空の要素の 出現する順番は決まっていません。
>>129 foreach($ary as $k=>$v) if(!$v) unset($ary[$k]);
131 :
129 :05/02/09 14:37:22 ID:???
>>130 できました! 求めていた通りの結果が得られました。
どうしてこういうことができるのかよくわかりませんが、
どうもありがとうございました。
-1とか0とか入った時が怖いから、ちょっといじった方が良いかも。
133 :
nobodyさん :05/02/09 16:34:51 ID:BltwhW1/
$in_tax=52; $out_tax=$in_tax/1.05; print($out_tax); とやると、 49.52380952381 となるです。なんで???
>>133 52を1.05で割れば
49.523809523.....
正しいでしょ。
税込金額が知りたいのなら、 $out_tax=$in_tax*1.05; って、既にPHPの話でもないが…
内税価格から本体価格を求めたいんでしょ 小数以下を切り上げでどうじゃ $out_tax=ceil($in_tax/1.05);
138 :
nobodyさん :05/02/09 17:05:59 ID:RnBs3yx3
こんちわ。 私はPHPを書くときOOP気味で書くのですが、同僚の男がベタベタのC風スタイルです。 Javaから言語に入ってC++/C→C#と来た私と、Cから入って→PHPと来たこの おじさんに本当にOOPにする必要あるの?とか良く聞かれます。 自分としてはPHPのAPI自体そういう構造なので別に反論もしませんが (年上だがいやな人ではない)、皆さんの「職場」でのスタイルを 教えてください。 つまり、効率よく仕事をこなしてく上で、という話で。
↑日本語変ですね、すいません・・・orz
>>138 折れの職場での素タイツ。
⇒「英数字は全角を使わない」
上に同じく
俺も上に同じく
じゃあおれもおなじく
質問スレから誘導されてきました。 簡単なvalidatorを作ろうとしています。 複数選択可能なフォームから送られてきた $query_string_array が フォーム表示に使った $options_array の中のもの以外が送られて来て いないかチェックしようとして、以下のコードを書いたのですが、 in_arrayの使い方が間違っていると言われました。 自分ででも賢くないコードだとは思いますが、プロの方はどのように 書くのでしょうか? よろしくお願いします。 $invalid_input = false; if(isset($query_string_array)){ foreach($query_string_array as $value){ if(!in_array($value,$options_array)){ print "Error!"; $invalid_input = true; } } } if($invalid_input){ $query_string_array = array(); }else{ $sanitized_array = $query_string_array; }
145 :
133 :05/02/09 17:45:22 ID:???
>>136 ceil()で出来ました!ありがとうございました。
>>135 そですね。ぼくがまちがってました。うちの電卓で50って出てたので
てっきり、50と思ってました・・・
どうもお騒がせ致しました。そしてアドバイスありがとうございました!
146 :
133 :05/02/09 17:46:30 ID:???
133の年齢が気になる。
>>138 俺もOOP気味っていうか、class {} の外にはほとんど何も書かないクチ
149 :
nobodyさん :05/02/09 19:38:36 ID:wM5ucCWD
perlで $str =~ s/$this->{var}//; で$this->{var}にあたる文字列を置換によって削除できるけど、 phpで同様のことをしようとすると、 $str = preg_replace( "/$this->var/", '', $str ); だとエラーになる。 preg_replaceの第一引数に"/$this->var/"という書き方はできないのかな? PHPの正規表現を扱う関数って、もしかしてパターンマッチに変数を とることはできない仕様なの?
>149 んなこたぁない!
151 :
149 :05/02/09 20:02:08 ID:???
できないんだけどー。 超マジむかつくー。 おしえておしえてー。
$thisが変数展開されてるんじゃないの "\$this->"もしくは'$this->'
151見てからならレスしなかったのに
お前は底なしの腹黒だな。
全部をclassで書けば良いってもんでもないと思うが。
それは->(アロー演算子)がPHPの正規表現ライブラリで、 後方演算に使われるからだ。\\1<->\\2といったような。 きちんとエスケープしないと通らないぞ。
vオプションつけてないからだろ preg_replace("!$this->var!v", '', $str);
北朝鮮に負けそうなんですけどどうすればいいですか
北朝鮮に賭けてるから勝ってもらいたい。
結局日本が勝ったけどな
負けちゃった。 10コイン損した。
ガバスガバスw
165 :
149 :05/02/09 22:39:57 ID:wM5ucCWD
はい、日本勝った!あげるぞ。 preg_replace( "/$this->var/", '', $str ); ができねー。 $var = $this->$var; preg_replace( "/$var/", '', $str ); こういう風に書いても通らないなあ。 vオプションって"/$var/v"ってこと? ->演算子のエスケープって\-\>しろってこと?
166 :
nobodyさん :05/02/09 23:00:52 ID:wM5ucCWD
自己解決キターーーーーーーーーー! $str = preg_replace( "|$this->var|", '', $str ); これでOK!!! PHPの正規表現でわくぁらないことあったら俺に聞くように!
167 :
anonymous :05/02/09 23:55:25 ID:RCmAm0yE
CronでPHPプログラムを動作させて、 HTMLファイルをそのディレクトリに作成させたい。 <html> < php > というコーディングだと、このphpファイルを開いたタイミングで、htmlファイルが作成されます。 これを自動的にhtmlファイルを作成させる方法を教えて下さい。
$fp = fopen("turi.html", "w"); (゚ν゚)ニホンゴムズカスィネー
>>167 php -q hoge.php > hoge.html
171 :
anonymous :05/02/10 10:20:43 ID:d4v4T8te
php の疑問点 ●php は動的に、HTMLを作成できます。よって、動的に、ほとんどの既存のWebページを作成する 事は可能でしょうか?Java等使用していない、シンプルな,HTMLです。 ●PHPをWEBである企業のサイトとして公開する場合、拡張子がphpより、HTMLの方が このましいので、こちらにしたいのですが、それは可能でしょうか? アドバイス、お願いであります。
>>171 前者の質問の意味がよく分からない。
PHPをHTMLエディタとかと勘違いしてないか?
後者は可能。Apacheの設定変更でいける
内容的にPHPから離れるから「php 拡張子 html」でぐぐって自力で調べてくれ
173 :
anonymous :05/02/10 10:42:17 ID:d4v4T8te
>>171 Thanks
後者は解決しました。
前者の質問ですが、やりたいことを書きます。
mysqlと連携して、そこに商品情報を蓄積します。
WEB上のボタンをおしたタイミングで、
サーバー上にその商品情報のサイトをあるだけ、作成したいと思います。
つまり、商品情報が100件登録されていれば、100個のhtml
サイトが作成されます。
商品情報のページは、雛型があり、
データベースのフィールドと、雛型の表示項目がちゃんとひもづいています。
このようなことをやりたいのですが、可能でしょうか?
可能であれば、流れでもおしえてください。
よろしくお願いであります。
結論を言えば可能。むしろそういう言語。 流れ教えろって言ってるけど自分で書いた「やりたい事」を そのままコーディングすればいいんじゃないの?
>>173 PHPをサイト管理に用いて、静的なHTMLを吐き出すツールとして使うのか?
サーバ上にサイトを作成、ってのは、ドメインを多数所有なりサブドメインをつかって
多数のサイトを作るって事か?
176 :
anonymous :05/02/10 11:15:24 ID:d4v4T8te
>>174 thanks
>>175 そうです。
静的なHTMLを吐き出すツールとして使いたいと思っています。
簡単に サーバー上の同じディレクトリに html ファイルを作成したい
と思っています。
177 :
175 :05/02/10 11:29:44 ID:???
>>176 それだけなら、簡単にできると思うよ。
動的に作れば?って気もするけどね。
178 :
anonymous :05/02/10 11:30:56 ID:d4v4T8te
>>176 動的にとは、どういった、コーディングを
行えばいいのでしょうか?
>>176 可否と、流れに関してはもう判ったと思う。
あとは、あなたがその流れをくみ上げていくに当たって、
どの程度までの能力を有しているのか。
という事になる。
SQLに関する知識は?
PHPのコーディングに関するスキルは?
180 :
anonymous :05/02/10 11:39:05 ID:d4v4T8te
>>179 sql はわかります。
phpは、あまりわかっていませんが、
BDのADOでのPG開発経験があるので、なんとかというレベルです。
phpの関数等をあまり把握していません。
181 :
175 :05/02/10 11:44:59 ID:???
>>178 PHP使ったこと無い、サーバサイドのスクリプト組んだこと無い、って事かい?
本買うとか、チュートリアル系のサイトを探すとかからだね。
HotwiredのWebmonkeyとかにずばりのチュートリアルがあると思うよ。
182 :
anonymous :05/02/10 12:00:25 ID:d4v4T8te
くだらねぇ質問にはくだらねぇ回答しかつかないね
それがくだ質スレクオリティー
185 :
nobodyさん :05/02/10 14:00:51 ID:3xg3w+YJ
ヤフー知恵袋で相談してみたんですが回答が得られなかったので こちらで質問させて下さい。 会社でPHPを使うのでプログラミングの基礎 の基礎から勉強をしてます。 今、クラス オブジェクトを勉強しているのですが、今いち概念が理解できません。 例でテレビに置き換えて・・・ ・テレビの設計図(クラス定義)があり ・実際にテレビを作る(オブジェクト) ・複数(派生) 製造できたり機能を追加 でき台数の制限はない。 ・このテレビには(変数)と(メソッ ト・ 関数) というチャンネルが付いてる このチャンネルの事を(メンバー)と呼 ぶ ・自分用のテレビだと判断する為に 「$this」と名づける。 ここまで合ってますか? それで「実体化」の概念は何なんでしょう? オブジェクトとは違うのでしょうか。 実際上司に教えてもらっているのですが 上司は「これが、どういう機能を果たすのかなど考えるな、概念と方式だけ覚えろ」 と言っているのですが、 こんがらがって解らないです。 *すみません。もうどうしたらいいのか解らずカキコしました。
ヽ、.三 ミニ、_ ___ _,. ‐'´//-─=====-、ヾ /ヽ ,.‐'´ `''‐- 、._ヽ /.i ∠,. -─;==:- 、ゝ‐;----// ヾ.、 [ |、! /' ̄r'bゝ}二. {`´ '´__ (_Y_),. |.r-'‐┬‐l l⌒ | } ゙l |`} ..:ヽ--゙‐´リ ̄ヽd、 ''''  ̄ ̄ |l !ニ! !⌒ // . i.! l .::::: ソ;;:.. ヽ、._ _,ノ' ゞ)ノ./ ` ー==--‐'´(__,. ..、  ̄ ̄ ̄ i/‐'/ おれたちはとんでもない思い違いをしていたようだ。これを見てみろ。 まず a=1 , b=0 と定義する。 このとき (a+a)b=b が成立することは誰の目にも明らかだ。 この式の両辺に b があるので、両辺を b で割るのが当然だ。 すると導き出される式は a+a=1 ここで、最初に定義した値を定数に代入する。 すると導き出される式は 1+1=1 つまり!1+1は1だったのだ…ッ!!
>>185 君の言っているテレビは何インチで何チャンネルが写るの?
例えばテレビを工場で作る場合、
機能を決めて(属性を決めて)形(実体)にするよね。それが「実体化」
>>186 マジレスするとb=0なので両辺を0で割ることは出来ない。
>>185 そういう覚え方すると、ろくなことにならんと思う。
使ってりゃ、そのうち概念自体がわかってくるさ。
つか、適当なソース読めば良いじゃん。
酔いがさめたらスレ違いであることに思い至れ
190 :
185 :05/02/10 15:37:49 ID:3xg3w+YJ
ご回答頂いた方々有難うございます!! 自分は形づくる事が「オブジェクト」だと 思っていたのですが、「オブジェクト」と「実体化」の 違いは何なのでしょうか。 うーーわからーん
オブジェクトという言葉は広義には、クラスもインスタンスも指す。 具体的な何かのシステムを構成する各要素で、狭義には一般性はなくインスタンスに近い。 語彙は定義ではなく用例から学べ。 このまま続けても話にならないレベルなので何冊か本を斜め読みしたほうがいい。 ム板マ板にスレがあるが、アレはあてにしないほうがいいな。
まあスレ違いだな PHP固有の問題について語るならOKだろうが
PHPセッションを使ったWebChatを見たんだけどセッションを使う メリットって作るのに楽が出来る意外に何かあるのだろうか・・・
セッションてそういう風に使う言葉だとは知らなかったよ。
俺には194が何を主張したいのかがわからん だれか説明してくれ
>>194 セッション使ってChatを組む必要性があるのか、という意味だろ。どうでもいい独り言だ
197 :
185 :05/02/10 16:13:20 ID:???
むむむ。 概念ばかり勉強しないで書きながら勉強した方が 能率いいですかね。 上司が一応研修(というか説明?)してくれるんですが 資料など一切無いものでプログラミングの 知識がくて、自分のような頭の悪い者には 理解できないんですよね・・・。 愚痴ってすみません。 解るようになってお世話になるような 事があったらまた宜しくお願いします。
198 :
194 :05/02/10 16:14:09 ID:???
なるほど。
おぅ
大抵のオブジェクト指向入門書はプログラミングの知識がなくても読めるが・・ 直接オブジェクトをコーディングしてたんじゃ全く汎用性がないだろ クラスという雛形に抽象化しておいて、場面に合った形にインスタンス化して使う
オブジェクト指向について簡単にイメージをつかみたいなら Javaで簡単なGUIアプリケーションを作ってみるのがベスト テレビクラスとか訳分からない事を考えているよりよっぽどいいと思う
>>193 入室時にのみ禁止ホストリストと照らし合わせたりできる。
串刺してるやつを弾きたい時に試しに8080叩いてみるとかやったりとかも。
まぁ、いろいろユーザ管理がしやすくなる。
>>193 しかも、「作るのに楽が出来る」と聞いちゃ使わにゃなんねえ!
>>202 193の見たWebchatがそう実装されているとなぜ判断できる?
確かに仕様を見てみないことにはsessionでメリットが出てるかどうかわからん
しかし「独り言」という意味はわかった希ガス
>>205 >>202 はセッションはユーザをトレースできる、という一般論を言ってるだけだと思われ
セッションを使うとユーザ管理しやすくなるというのはチャットとは関係ないからね
しかし、そもそもユーザをトレースできるからセッションなのであって、なあ・・・
207 :
名無しさん@ピンキー :05/02/10 20:21:41 ID:YoLQMp5n
VBとかだと、デバックできますよね。 PHPって、デバッグって、結局、Webを見て確認しかないとおもうのですが。。 Zendってソフトがありますが、あれって、デバッグで使えるのでしょうか? それと他にいいデバッグソフトあったら、教えて下さい
>>203 お前の脳がお花畑だということは分かった
>>207 サーバサイトVBSと比べてPHPで面倒なのはステップ実行くらいでしょ。
>>205 ,206
Webchatと言えばログをリロードするだろ、ここまで説明すればわかるね。
セッションを使うメリットは特に感じられないね
セッションファイルの読み書きを取るか作成の手間やユーザー情報の保守性を
取るかだろうけど情報を保守するまでのものではない気がする
>>208 PHPでステップ実行必要か?
デバッグは常にユニットレベルだし、ベンチとlog4風のダンプクラスで足りてる。
結局のところ想像上のアプリについてセッションのメリット・デメリットを語るのはナンセンスだ
214 :
211 :05/02/10 20:41:29 ID:???
(´・ω・`)
216 :
nobodyさん :05/02/10 23:45:42 ID:nzOaZ3HB
すいません初心者です、教えてください。 PHPやってたらエラーが出て急に繋がらなくなりました。 どこが悪いのかさっぱりわかりません、OSはWINMXです。
218 :
nobodyさん :05/02/11 00:00:32 ID:JrV8Uh14
ありそうで、ないと思うんですけど配列の一番最後のキーの名前が しりたいんですけど、わかる方いらっしゃいますか? $a[count($a)] だと、キーの名前が数字以外の時は行けるんですけど、キーが 数字の場合、ダメな時があるです。キーには日付が入っていて 最後の日付の値(value)をとりたいんですが、良い方法がわかり ません。どうかよろしくお願いします。
配列の内部ポインタを最終要素にセットしてキーを取得すればいい $end_value = end($a); $end_key = key($a);
220 :
218 :05/02/11 01:40:16 ID:???
>>219 ありがとございました。
ばっちり出来ました!
end()なんてあったの知りませんでした。勉強になりました。
221 :
nobodyさん :05/02/11 03:02:10 ID:X2JOoY08
人間の設計図 身長 チン長 体重 体毛 などがある これが100人いるとすると表し方として sintyo[0]〜sintyo[99] tintyo[0]〜tintyo[99] taizyu[0]〜taizyu[99] taimo[0]〜taimo[99] とやることができる。しかし!これは非常の非常にヒッジョーに非情に管理しにくいのだ。 そこで人体クラスを用意するのである。 zintai[0]〜zintai[99] このzintaiの要素としてsintyo,tintyo,taizyu,taimoを持たせてやると、 非情に管理しやすいのだ1わかったかこのあろ^−^
そういう理解の仕方だと、 array(array(sintyo,taityo,taizyu),...); 使えよ、で終わっちゃう。 逆に、クラスつーわけわからんもん使うより配列使ったほうが楽じゃんって事になる。
うるさい
宣伝すると一生2ちゃんに書けなくなるから気を付けようね^^
ttp://sozaifan.exblog.jp/839291/ こちらの「ファイル情報の表示」を参考に、各会員がアップロード
した画像のファイル情報を取得する機能を追加しようとしています。
$nameに各ファイル名が入っているとして(他は全て同じソースです)
$file = './upload/$name/';
としているのですが、スクリプトエラーが出ます。(Parse error: parse error in)
何か原因をお分かりではないでしょうか?
ダブルクォーテーションじゃないと変数が展開されません
MySQLのテーブルをPHPでCSVに変換してダウンロードしたいので
http://allabout.co.jp/career/database/closeup/CU20020914/ を参考にソースをコピペしてテストしてみたのですが
CSVのダウンロードはできるものの、中身を見ると
<br />
<b>Warning</b>: mysql_num_fields(): supplied argument is not a valid MySQL result resource in <b>/public_html
/test/backup.php</b> on line <b>28</b><br />
<br />
<b>Warning</b>: mysql_num_rows(): supplied argument is not a valid MySQL result resource in <b>/public_html
/test/backup.php</b> on line <b>31</b><br />
エラーが出ます・・。しかし、28と31行目を見てもおかしな点がよくわからずに、困っています。。
>>230 //SQL文を実行する
$rs = mysql_db_query($db,$sql);
が失敗してるんじゃないの?
print_r($rs)
とかしてみたら?
232 :
230 :05/02/11 13:54:17 ID:???
>>231 ありがとうございます。
$rs = mysql_db_query($db,$sql);をprint_r($rs) ;
にするんですよね?それでも同じエラーが出ます。。
>>232 書き換えるんじゃなくて
$rs = mysql_db_query($db,$sql); の下に
print_r($rs); を追加
print_r($rs); じゃなくて
echo mysql_errno().": ".mysql_error()."\n";
と書いてもいいよ
234 :
230 :05/02/11 14:09:15 ID:???
>>233 ありがとうございます。恐らく原因は下記かもしれません。。
>//SQL文 tab1表からnumber列の値の昇順にソートした全行を取り出す
>$sql = "select * from tab1 order by number";
「tab1表からnumber列」というのがテーブルのどの部分を見れば
いいのかわからないため、230のようなエラーが出るのかも・・。
もう少し、MySQLについて勉強します・・。
235 :
230 :05/02/11 14:13:45 ID:???
出来ました!! tab1=テーブル名 number=配列名 だったみたいです!231さん、233さん、ありがとうございました。
238 :
237 :05/02/11 16:15:57 ID:???
むはー、 とりあえずautomake,autoconf,libtoolをリネームして待避してから 展開、configure --enable-mbregexまでは通ったけど makeでこけたー。 ナンデダロ make -d って初めて知った。勉強になるなー
239 :
237 :05/02/11 18:29:44 ID:???
240 :
nobodyさん :05/02/11 18:55:57 ID:tOm8zrbS
Perlのようにrequireしてその中の関数を呼び出せるとこまでは わかったのですが、PHPでPerlのpackage関数にあたるものは ないのでしょうか。 Perlのようにpackage::kansuu();のような使い方をしたいです。 もしもございましたらご教授いただきたい次第です。
どーでもいい話だが、googleで「mssql」と検索すると 「もしかしてmysql」とリンクが出てくる。 何かバカにされた感じでならない。
2005-02-10T21:24:12+09:00からUNIXタイムスタンプを得るには どうしたら良いでしょうか。
strtotime
mktime
strtotime("2005-02-10T21:24:12+09:00")だと-1が返ってきますね^^; ばらしてmktimeに入れるしかないのでしょうか?
しっかりしろよ
なんだと
248 :
nobodyさん :05/02/11 23:45:58 ID:jptSwcjA
PHPに関して質問です 自分windowsでメモ帳を用いてPHPプログラムを作りました そしてレンタルサーバーを借りました そこではPHPはEUCで記述した物をご利用下さい、文字化けの原因と成ります。と書いてあったので <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> とタグを打ってレンタルサーバーにアップしてみたのですが文字化けしてしまします 他に何か方法ありましたらお願いします
>>248 PHPソースをShift_JISで書いて、ブラウザにEUC-JPで読めと指示してるんだから化けるのは当然だ
業者に指定された通りEUC-JPで書いて保存しろ。メモ帳では無理だから適当なエディタを落としてこい
これでとりあえず表示はされる。
本題だが、ローカルにテスト環境を作れ。必ずローカルでテストし、問題なく動作することを確認してから
アップロードしなければならない。
どうでもいいけど文字化け対策でEUC使えってのもふざけたレン鯖だな 初心者だけ寄せてるなら、まあ、ホイホイみたいな意義はあるか
flashを生成しようと思ってるんですが、練習でwindowsマークのようなものを作りたいんです。 $s = new SWFShape(); $s->setLine(5, 000, 000, 000); $s->setRightFill($s->addFill(204, 051, 051)); $s->movePenTo(50, 30); $s->drawCurveTo(150, -2, 190, 25); $s->drawLineTo(160, 185); $s->drawCurveTo(130, 163, 20, 190); $s->drawLineTo(50, 30); $m = new SWFMovie(); $m->setDimension(400, 400); $m->setRate(12.0); $m->add($s); $m->nextFrame(); header('Content-type: application/x-shockwave-flash'); $m->output(); で、Winマークの左上の赤いヤツが出来ます。次に右の緑のヤツを作りたいんですが、どうすれば作れますか? nextFrameとheaderの間に$sの8行を$gに名前を変えて値も変えて追加し、$mの5行も追加し、add($g)でやってみましたがダメでした。。
ドローツールを使って作る
254 :
nobodyさん :05/02/12 02:06:17 ID:m3IgiuI9
>>248 FTPソフトの文字コード変換機能使えば無問題
初心者ならツールにたよらず文字コードについて学習することを進める
256 :
252 :05/02/12 04:07:02 ID:???
自己解決しました。$sと$mの間に$gをたしてadd($g)を足したら出来ました。 お騒がせ致しました。
フォルダに入っているファイルの容量をサーバから取得して ブラウザ上で表示したいのですが、どこか参考となるサイトは ありませんでしょうか?
floor(29/100*100); で28となるのはなぜですか? floor(19/100*100); は19となりますが?
PHPが記述されているHTMLファイルの<title>タグの文字列を取得する 方法は無いでしょうか?
んなぁ〜こったない
<? echo $names['name'] ?>に名前が表示されているとします。 (サンプルとして、test1、test2、test3が入っているとします) $list= "./list/<? echo $names['name'] ?>/ "; として $listの値をprintで表示させると /list/test1/ /list/test2/ /list/test3/ と言うようにしたいのですが、なぜか$list=の行でエラーが出ます。 記述の問題かもしれませんが、理由がおわかりになりますでしょうか? また、<? ?>の中に<? ?>のコードを埋めるような事は、おかしいですよね? だからエラーになるのかもと思っていますが、他の書き方がわかりません。。
$list= "./list/".$names['name']."/ "; (ノ∀`)タハー
$list= "./list/$names['name']/ "; (ノ∀`)タハー
ふざけてるの?
(゚Д゚)
$list= './list/'.$names['name'].'/ '; (ノ∀`)タハー
フォーム投稿時に自動的にテキストファイルが指定のフォルダに 作成されるプログラムを考えているのですが、どうコードを書けばいいか いまいちよくわかりません。。何かヒントとなるサイトを ご存じ無いでしょうか?
>>269 ヒントとなるサイト…
たいていの解説サイトでファイルI/Oの話は出てくるんだけど…
あんた、少しは自分で調べてみたりしたのかい?
>>270 さっきからググっているのですが、ファイルに書き込みは
出来るものの、自動作成というのは難しくて・・。
>>271 参考にします。。
自動って言っても勝手にできるもんやないんやで〜 なんらかの条件によってファイル名を決めるんやで〜
ファイル作成ってただたんに書き込み専用でオープンすればいいじゃん そのときのファイル名をフォームから受け取ったものにすれば その名前で勝手にファイルが作成されるとおもうが
*.cgiファイルの中でphpって実行できる?
できる
>>275 そのCGIを処理するプログラムからPHPが呼び出せればね。
278 :
nobodyさん :05/02/12 22:35:03 ID:pXjfFvIf
Debian Linux woody 3.0+Apache1.3.26+php4 (libphp4とCGI版併用)環境です。 任意のコマンドを使用出来てしまうシステム関数等を使わせないようにするには どういう設定をすればいいのでしょうか。 safemode以外の方法が知りたいのでどなたかご教授願います。
iniに disable_functions = disable_classes = てのがあるだろ
興味ないし、わざわざここに書くなよ。
ガッテンガッテンガッテン
>>280 unkoておまえ、ふざけてるの?
俺はいつでも真摯に答えようとしてるのに
これを解説するためには、
「unkoが〜〜」 「unkoは〜〜」とかunkoっていう下品な言葉を
連呼しなきゃいけない。
っていうかおまえさ、女に「マンコ」って言わせたい中学生と
同じで、俺に「うんこ」って言わせたいだけだろ?
俺は、そんなことで「うんこ」とか下品ことは言わないし、
おまえの釣りに引っかかるつもりもないから、
そういうレベルの低い発言は控えろよ。この糞野郎。
セッションを使用しているページで、キャッシュが向こうになりますが ブラウザで戻ったとき、フォームに入力した内容などが消えないようにする方法は無いものでしょうか。 自分で考えた結果としては、 ・セッションを使わずにクッキーを使う。 ・change毎にJavascriptで入力内容をクッキーに記憶する。 ・エラー等表示する前にセッションに入力内容を記憶して置いて、エラーで戻ったときセッションに内容があったらそれを表示する。 これ以外にあったら教えてください。
クライアント側の処理だということが分かれば十分だ
>>284 困ったときは発想を逆転させるといいよ
※ブラウザの戻るを使うときは自己責任でお願いします
って書いておけば、おまいの責任は逃れられる
ファイルサイズを取得するコードを書いているのですが 「failed to open dir: No such file or directory 」とでます。。 ちゃんとそのディレクトリは存在しているのですが、なぜでしょうか? <?function getFileSizeInDir($dir){ $objDir = dir($dir); while($FileName = $objDir->read()){ if($FileName != "." && $FileName != "..") { $FileName = $dir.$FileName; if(is_dir($FileName)){ $Size += getFileSizeInDir($FileName."/"); }else{$Size += @filesize($FileName); } } } return $Size; } ?> <? print getFileSizeInDir("./files/") ?>
>>289 パスが違ってる。実行時のカレントがどこにあるかチェック。
291 :
289 :05/02/13 12:41:23 ID:???
>>290 パスって「<? print getFileSizeInDir("./files/") ?> 」
の部分ですよね?
チェックしても合っています。。
>>291 どういうチェックをして、何が合っていたのかな?
2ch互換のIDを生成したいのですが,どなたか式をご存知でないでしょうか? 板違いでしたら誘導をお願いします.
2ch互換のID生成をしたいのであればUNIX板のbbs.cgiプロジェクトに参加してください
295 :
nobodyさん :05/02/13 13:52:35 ID:hN5Lc3aa
>>293 このスレか本スレの過去ログで見たような気がする
どっかにリンクが貼ってあって、そこに書いてあった
296 :
nobodyさん :05/02/13 16:21:53 ID:iVFDDmsL
全角文字列を半角にするにはどうすればいいですか?
297 :
296 :05/02/13 16:25:01 ID:???
mb_convert_kana すいまっせんかいけつしました
298 :
nobodyさん :05/02/13 16:46:09 ID:jbQNMs6i
GDライブラリーを使って画像を表示させることはできたのですが、 その画像にリンクもつけたいのです。 はい、そうです。 PHPを使ってです。
>>298 画像自体にリンクをどうのこうのする機能は無いよ。
HTMLのレベルで<a href="〜"><img src="exec_gd.php"></a>てな感じにするのがいいんじゃないかな
2chみたいにIDを表示させたいんだが、IPをcrypt()でメチャクチャにすればOK?
301 :
300 :05/02/13 17:47:24 ID:???
スマソ、すぐ上に同じような質問があったorz
プロセスが動いている数を調べたいのですが。 たとえば、unko.phpの数を取得して表示したいのです。
>>303 プロセスの意味がわかってないな
調べ直してこい
MySQL等DBを使う場合、排他処理をする必要はありますか?
iアプリにネットランキングを付けようと思ってPHPの勉強を始めたんですが、 アプリからデータを送信してPHPでデータを取得するにはどうすればいいんでしょうか? 調べてみたら、アドレスの後に「?変数名=データ」というような形で変数を送れると書いてあったのですが、 これだとデータが丸わかりなので出来れば違う方法にしたいと思います。 「?変数名=データ」の他にデータを送る方法は無いんでしょうか?
>>305 かなりスレ違いな気がするが、場合による
>>306 基本的にユーザーが入力したデータを送信する場合、
基本的に全て見れるのでデータを隠すのは無理
サーバー側からのデータをユーザに持ちまわしてもらいたいとかなら
データにユニークなIDをつけてそれだけを与えればいい
309 :
306 :05/02/13 23:46:37 ID:???
かなり勘違いしてた iアプリとか分からないのですまんorz
せめてPOSTで…
改変されるのがイヤならMD5とかで正しさを検証するのもあり。
312 :
nobodyさん :05/02/14 02:02:20 ID:LPe9pAvG
ttp://php.s3.to/ ここの写メール掲示板を使おうとして、サイトにアップしたのですが
なぜかNotice: Undefined(このさきはアドレスみたいなもの)が
ずらーと出てしまっているんです。
ためしに、べつのサーバーでアップロードしてみたら、普通に機能しました。
サーバーはPHP対応です。
もう脳みそあわ立ちそうで、何か考えられる原因が合ったら教えて頂けるとありがたいです。
Undefined variable〜のことなら、未定義の変数を参照しようとしてますよ、というPHPからの注意。 エラーレベルとしては動作に支障のないものなので、サーバ管理者の設定によっては出力しないこともある。 表示されてないだけでエラーは起こってるんだけどね。 エラーがブラウザに出力されるとセキュリティ上問題になるケースもあるので、 とりあえず黙らせておくことを推奨。 PHPスクリプトの先頭付近に error_reporting(0); と追加すると一切エラーメッセージは出ない。 Noticeだけ抑えるには、error_reporting(E_ALL ^ E_NOTICE); 。 htaccessを使って設定を変更するなら、php_value error_reporting 0 と書く。 応急処置だけど、まあこのくらいでいいんでない?
314 :
312 :05/02/14 02:51:56 ID:???
返答、ありがとうございました。 そのすてきなタグを追加したら、見事にエラーメッセージは出没しなくなったんですが まったく写真メモをして機能しませんでした……orz 根本的にこのスクリプトは使えないサーバーなのかもしれません。 せっかく返答をいただけたのに、解決できず申し訳ありませんでした。
そか。鯖管/利用者に聞いたほうがいいかもな。 CGI設置に関しては専用スレがあるんで、利用するならそこのテンプレに従って。
316 :
nobodyさん :05/02/14 07:57:31 ID:mZmBq9e/
>>314 PHPのバージョンを確認。変数展開あたりで失敗してる可能性あり
>>317 >htmlにphpを組み込んで
ってどういうことだ?
まさかとは思うがhtmlファイルに<?php PHPスクリプト ?>とか書いて無いよな?
いや、もし書いててもhtmlをPHPでパースするように設定してるなら聞き流してくれ
><!-- saved from url=(0029)
http://localhost/test_php.php -->
これはIEで保存した時に勝手につけられるヘッダのはずだ
サーバから送られてきてるHTMLについてるわけじゃないから安心汁
ちなみにソースの確認するなら保存せずに右クリックメニューの「ソースの表示」を選べ
>>317 レスありがとう
htmlに、phpを書いて、そのphpの結果をhtml
ページに表示しようとしています。
Smartyで書くべきとういうことでしょうか?
>>319 .htmlにphpスクリプト書いてHTMLソースにスクリプトが丸見えになるのも当然のこと
とりあえずマニュアル読んで出直してくれ
>>319 たしかに「くだらねぇ質問はここに書き込みやがれ」ってあるけどよ
ここまでくだらないのはおまえが初めてだよ
早くチンポで障子に穴を開ける作業に戻るんだ
>>320 thanks
htmlをphp でパースするプログラムでした。
ところで、phpとhtmlを分けれるというので最近smarty があるみたいなのですが,
あれってどうなのでしょうか?
私がいろいろしらべが限り、新しい技術で、クラスを使うので少し複雑で、まだ、あまりpopular
ではないという印象を受けました。
ただ、html と php を別々(ファイルに)かけるし、キャッシュという機能もあるみたいなので、
興味がありますが、
みなさん利用されていますでしょうか?
Smartyはかなりポピュラー。 mojaviと組み合わせて使ったりしてるよ。アクセラレーターとの相性も いいと聞くけど、そこまでのパフォーマンスを求める必要性が出たことは 今んところないなぁ。
PHPとqmailを使って空メールのシステム(ユーザから空メールを送られるとPHPでURLを様々なパターンの発行し送信元アドレスへ送る) を作ろうと考えているのですが、 qmailが置いてあると思われる場所が存在しません。 あとqmailを使った場合空メールを受信する事が出来るアドレスは1つしか無理なのでしょうか?
>>324 ここはPHPの質問スレです。qmailの質問は他所でどうぞ
326 :
nobodyさん :05/02/14 16:45:57 ID:KIVsJVqJ
アカウント登録フォームで第一、第二、第三希望までまず入力してもらい 登録されているかどうか確認して登録されていないものを 第一>第二>第三の優先順位でひとつだけ抽選する、ということをやりたいのですが どうもうまくいきません。 アカウントは別ファイルに、1アカウントごとに改行で記録していきます。
>>326 まず、どうやって処理をしているのか書け!!
328 :
nobodyさん :05/02/14 16:53:06 ID:gx1qrG4J
<select name='myselect' size=4 multiple> と複数選択にしているのですが、submitしてから$_POSTをprint_rで 表示させると一つしか値が入っていません。 なにか間違えているのでしょうか? PHP4.3.10 IE5
329 :
328 :05/02/14 17:02:24 ID:gx1qrG4J
失礼しました。解決しました。 <select name='myselect[]' size=4 multiple> でいけました。
331 :
nobodyさん :05/02/14 17:05:13 ID:KIVsJVqJ
$user_all = file($user_file); $user_array = split(",",$user_all[$i]); $user_array[1] = trim($user_array[1]); $input_array = array($account_1,$account_2,$account_3); $flg = 0; for($i = 0; $i < count($user_all); $i++){ for($x = 0; $x < count($input_array); $x++){ if($input_array[$x]){ if(mb_strpos($user_array[1],$input_array[$x])){ $flg++; } } } } こ、こんな感じでフラグの数を数えようかと思ったのですが・・
>>321 難しく考えすぎ?
結果にも優先順位がつくのだったら、
希望1、希望2、希望3
を順番に、保持リストと全比較して保持リストに登録されていなかった時点で
それが、最終結果だから、次の処理(表示とか)にスキップすればよい。
ループでやるなら、その時点でループから抜ければよい。
333 :
nobodyさん :05/02/14 21:23:58 ID:Y9YqW93M
>>321 id1, id2, id3 と3つのIDを入力されたとする
ユーザーファイルから1行ずつ読み出して、既存のidと
id1, id2, id3 をそれぞれ比較する。
もしid1と、既存idが一致したら$flg_id1 = 1 とでもする。
同様にid2, id3 も同じようにやる。
さいごの行までいって、$flg_id1が0だったら、最初のを、
$flg_id1が1でも、$flg_id2が0だったら2を、って感じにやればいいと思う。
334 :
nobodyさん :05/02/14 21:27:59 ID:Y9YqW93M
if ($flg_id1) { if ($flg_id2) { if ($flg_id3) { return 0; //どれも使えませんYO!(・3・) } else { return 3; } else { return 2; } else { return 1; }
で、できたよーありがとう $input_array = array($account_1,$account_2,$account_3); $flg = 0; for($x = 0; $x < count($input_array); $x++){ for($i = 0; $i < count($user_all); $i++){ $user_array = split(",",$user_all[$i]); $user_array[1] = trim($user_array[1]); if($input_array[$x] == $user_array[1]){ $idx[$x] = 1; } } } if($idx[0]){ if($idx[1]){ if($idx[2]){ error(); } else{ $account = $input_array[2]; } } else{ $account = $input_array[1]; } } else{ $account = $input_array[0]; } こんな感じで・・・
>>335 2chだと半角Spaceやタブのインデントは消えるから書き込み時に全角Spaceに直すといい
>>335 ついでに、ループの途中でフラグが全部立ってたらその時点で
ブレイクさせるとかもありかと。
それによって逆に遅くなるか早くなるかはわからんが。。
アカウント処理ならロックも忘れない方が良いよ
perlだと、コマンドプロンプトに print 123;^D の様な感じでテスト出来ますが、PHPの場合これはどうすればいいのでしょうか?
apache+php入れればテスト出来るんでない?
?
>>339 php -r 'print 123;'
Windows版PHP 4.3.10ですが、-rオプションが無いみたいです…
CLI固有だったんですね PHP\cliのやつで出来ました
345 :
nobodyさん :05/02/15 13:42:45 ID:NEg6Wigy
こんんちは。 どなたかお助け下さい。 配列の値($value)から重複した分をひとつにしたいのですが可能でしょうか? $a=array(1,2,3,1,1,1) foreach($a as $value) { print($value."<br>"); } 結果 1 2 3 みたい感じです。
346 :
わはははははははは :05/02/15 13:50:03 ID:5Ng5Me3b
$a=array(1,2,3,1,1,1) foreach($a as $value) { $flag = 0; for($i = 0;$i < sizeof($a);$i++){ if($value == $a[$i]) flag = 1; break; else flag = 0; } if($flag == 0) print($value."<br>"); } 結果 1 2 3
>>345 配列の左はしにしるしをつける
・
[1][2][3][1][1]
このしるしからスタートして左に走査させる。
左はしにあればすぐに終了。
・
[1][2][3][1][1]
しるしをいっこずらす。同じく右側に走査させる。
←・
[1][2][3][1][1]
同じのがあればスルーして次のしるしに移動する。
左端までいったら同じのはなかったということなので表示する。
348 :
347 :05/02/15 13:54:44 ID:???
× しるしをいっこずらす。同じく右側に走査させる。 ○ しるしをいっこずらす。同じく左側に走査させる。
>>345 $a = array(1,2,3,1,1,1);
$a = array_unique($a);
print_r( $a );
352 :
345 :05/02/15 16:04:45 ID:???
お返事遅くなりました。 アドバイスどうもありがとうございました。 array_unique()で行けそうです。ありがとうございました!
セッション関連でつまづいています。 処理の流れは入力→確認→完了の3段階で 2ページ目、確認のページで入力必須項目を 満たしていなければ入力画面に飛ばして再入力を促す、 という予定なんですが入力したものを 全て保持しておきたいので 2ページで session_start (); while (list ($tag, $val) = each ($HTTP_POST_VARS)) { $tag = "sess_" . $tag; $HTTP_SESSION_VARS[ "$tag" ] = $val; } こうした後にheader()で1ページへ飛ばしています。 2ページ目でセッション登録したあとに print_r($HTTP_SESSION_VARS);すれば期待通りの値を 確認できますがheader()後に1ページ目で session_start (); print_r($HTTP_SESSION_VARS); してもArray()と、空ッポです。 なんかヒント下さい。 PHP4.0.6+RedHatVer?+アパッチVer1.x
>>323 Res Thanks .
htmlに埋め込むパースするPHPプログラムがかなり重いので、(表示時間が
かなりかかるので、)Smartyを使おうとおもうのですが、html自体が表示される
時間はかなり短縮されるのでしょうか?
1.Smarty自体、コンパイルして、処理するので、どうもはやそうなのですが、実際のところ、どうでしょうか?
2.Smarty って、簡単に、HTMLとPHPのロジックを分離できるのでしょうか?
私はあまりSmartyについてわかっていないのですが, html 内に、PHPのソースを直接書かなくとも、
別ファイルに、phpプログラムを書いておくという具合なのでしょうか?
アドバイスお願いします
俺もSmarty使ってるけど PHPのソースにHTMLは一つも書いてないPHPソースがすっきりしていい感じ
357 :
system V :05/02/16 10:40:40 ID:1Qb3n4kr
>>356 基本的にソースをコンパイルするという事なので、速度は
早くなるのでしょうか_?
>>357 Smartyで言うコンパイルは独自形式のテンプレート(HTML)をPHPに変換することを言う。
ただ、Smartyが作ったPHPは最適化されているらしい。
だいたい、そんなに速度が気になるならアクセレータいれろ。
それでも物足りないならCでかけ。
359 :
nobodyさん :05/02/16 13:20:59 ID:1xqIcAac
$hoge という変数(文字列)があり これに、(文字列の右に)半角空白を追加し23けたで桁そろえするにはどうすればいいのでしょう? 以下のようにやると、なぜか無限ループになるようでして。。。 //その長さを得る $length = strlen($param); //スペースでうめる if ($length < 23 ){ for ($i=1;$i++;$i< (23 - $length)){ $param .= " "; } } return $param;
360 :
nobodyさん :05/02/16 13:39:07 ID:fPO4Xozx
>>359 $a=str_repeat(" ",23);
$param=substr($param.$a,0,23);
return $param;
で、おけ?
その前にfor文の使い方を
for文ワラタ str_pad
364 :
nobodyさん :05/02/16 15:30:39 ID:rZSwCkuB
二次元配列を $hairetu = array( 0 => array( 0=>"a", 1=>"b", 2=>"c" ), 2 => array( 0=>"d", 1=>"e", 2=>"f" ) ); のように生成した場合、この時点で既に、 $hairetu[1][0]、$hairetu[1][1]、$hairetu[1][2] の領域も メモリ上に確保されているのでしょうか? どうかご教授おねがいします
366 :
原因不明 :05/02/16 15:55:19 ID:uWJf6Zq8
IE設定なのか、PHPもしくはMySQLなのか原因は分かりませんが、phpMyAdminで表示やWeb上からSubmitボタンを押すと、次のページに渡れないことが多々あります。(正常に動作することもある。) カチャカチャと何度もリロードみたいになったり、結局表示エラーになったりと。このような現象が発生した事がある方はいますか? また解決策などありましたら、ご教示願います。 原因予測 セッションが関係しているような気もします。 環境 WINXPHOME APACHE2.0.52 PHP5.0.1 MySQL4.0.20 MyAdmin2.5.7
367 :
nobodyさん :05/02/16 16:30:57 ID:rZSwCkuB
>>366 IEか、PHPかMySQL、もしくはApacheが原因。
369 :
nobodyさん :05/02/16 17:36:32 ID:4WvcImPZ
コードは正しいはずなんですが、なぜか正常に動作せずに困ってます。 調べてみましたら、 while(){ while(){} } といったwhleの2つ目で処理がとまってしまうことを確認しました。 なんかwhileを2重で使うと止まってしまう理由みたいなものはあるでしょうか? PHPのばーじょんは 4.3.10です。
whileの比較が間違ってるんだろ。
ついでにそのループ1重に出来るはずだ。
>>369 >コードは正しいはずなんですが、なぜか正常に動作せずに困ってます。
コードは、あなたが意図した動きかどうかは関係なくあなたが書いた通りにしか動きません。
これってPHP4.3.4のバグでしょうか? $a = 'aaajpgaaa'; echo preg_match( '/[a-z]+(?:jpg|gif)/', $a ); // 1 echo preg_match( '|[a-z]+(?:jpg\|gif)|', $a ); // 0 /regexp/ じゃなくて |regexp| にしてるのが問題みたいですが… もしかして、/ 以外は使えませんか?
>>373 $a = 'aaajpg|gifaaa';
echo preg_match( '|[a-z]+(?:jpg\|gif)|', $a );
え? つまり||では|は使えないって事ですか?
376 :
nobodyさん :05/02/17 16:17:54 ID:IwJn+K4G
fsockopenでPOST送信するスクリプトを組んだのですが それを受信するスクリプトで、データを正常に受け取れたか どうかを応答するにはどうすれば良いのでしょうか? 送信スクリプト send.php <?php $fp = fsockopen($uri['host'], $uri['port']); if (!$fp) { die("ERROR\n"); } fputs($fp, $request); /*応答データ受信*/ $response = ""; while (!feof($fp)) { $response .= fgets($fp, 4096); } fclose($fp); ?>
379 :
373 :05/02/17 16:22:42 ID:???
エビオス錠で精液ドバドバってことさ。
もういいです。[]や()でもおかしくなるので、//を使う事にします。
>>375 その通りです | を使いたいときは別のセパレータを使ってください
383 :
376 :05/02/17 17:30:00 ID:???
>>378 レスありがとうございます。
標準出力で、応答が返ってこないなぁ、と思っていたら
send.phpに
print $response;
を入れるの忘れてました orz orz orz
そりゃ応答が見られないわ。
384 :
nobodyさん :05/02/17 17:30:52 ID:sdNEcSRA
phpのスクリプト書くのに皆さんエディタは何をつかってますか。 ちゃんとif文とかでも字下げしてくれて軽いやつあったら教えて下さい。 なんか色々落としたけどどれも字下げしてくれない。 エクリプスはなんか大げさでめんどいし。
>>384 ViVi 19xx を使ってます。
if else for などをインデントワードに登録すれば自動でインデントしてくれます。
>>384 秀丸つかっとけ。*nixならVimがよさげだと思われ。
両方シェアじゃないです?フリーでいいのないですかね。。
388 :
nobodyさん :05/02/17 19:01:18 ID:ti92O2g1
パーセンテージを出す関数ってありますか? $i=10; $ii=100; print("関数($i,$ii)"); 結果 10% みたいやつ・・・ でもって、10.122%とかなっても、切り捨てて10%ってなるやつ。 そんな都合良いのありますか?
389 :
375 :05/02/17 19:02:33 ID:???
>>388 割って整数にすればいいだけじゃ?
関数があるかは知らない
>>388 切り捨てはfloor関数があるから、floor($i*100/$ii)でええんでないの?
$i,$iiが整数でもfloatで返してくれるみたいだし。
切り上げやら切り捨てやらの単純なやつは、マニュアルの数学関数あたりにあるよ。
板違いかもしれませんが、質問させていただきます。 携帯サイトを開発しようと思っているのですが、 その中のコンテンツとして、「曲のダウンロード」を装備したいです。 サイトの中に設置した音楽ファイルに携帯からアクセスし、ダウンロード することってできますか? また、ダウンロードした音楽ファイルを携帯で再生することってできますか? いろいろ調べてみましたが、どういった検索をしてもなかなか有益な情報が得られなかったので 質問させて頂きました。 よろしくお願いします。
>>392 端末のハードウェアやケータイのキャリアによっては
根本的に駄目な場合も、勝手サイトでは駄目なような仕組みの場合もあるけどな。
各ケータイのキャリアの公式サイトに情報は載ってるのでよく読んでみな
395 :
392 :05/02/17 21:28:32 ID:???
>>393 よろしければその方法を教えてください。
PCでならダウンロードしたい音楽ファイルにリンクを張ればよいだけかと思いますが、
携帯だとどういった方法でDLさせるのでしょうか?
MP3やMIDIなどの再生はやはり機種によって再生できるかどうかというのが
決まるのでしょうか?
396 :
nobodyさん :05/02/17 21:42:44 ID:USMiZu5A
phpを1ヶ月ほど前から勉強しはじめました。 zend とかphpのコード分からなくするやつあるじゃないですか。 そこで疑問なんですけど、 通常利用していて他人にphpのコードが分かってしまうものなんでしょうか? 場合によってはコード内にパスワードとかも含めている場合があるから、 他人に分かるって、非常に危険な気がしますが。 よろしこです
志村ー、上、上!!
399 :
388 :05/02/17 22:01:45 ID:???
$commentsという変数の中に、html文章が入っているとします。 $iに特定の1つのタグ(<HR>など)の個数を求めるにはどのようにすれば良いのでしょうか。 $comments の中のタグは<HR> のようにはなっていません。<HR>のままです。
401 :
400 :05/02/17 22:20:35 ID:???
>>396 httpdの設定をトチ狂ったり、共有サーバで間抜けな設定してなけりゃ
PHPのソースを直接見られるような状況にならない(というかそう設定する)ので
その心配は杞憂。
>>395 それぞれのキャリアにそういうページある(多分)から見ろよ。
auは確実にある。
404 :
nobodyさん :05/02/18 03:59:32 ID:YYkzUTub
fopenのモードでw+というのがあり、読み込み・書き込みができるとのことですが ファイルサイズを0にするのに何を読み込むのでしょうか?用途がイマイチわかりません。
>>404 $fp = fopen("test", "w+");
fwrite($fp, "hoge\n"); //書き込み
fseek($fp, 0, SEEK_SET);
$read = fgets($fp); //読み込み
echo $read;
fclose($fp);
filemtimeのmってなんですか。
まん
>>405 なるほど。上書きしたあと、読み込む必要があるときに使うんですね。
どうもありがとうございます。
>>406 change time (ctime), access time (atime), and modify time (mtime).
デザインパターンというかOOPを勉強し始めたのですが、PHPでの利用の意味合いが 腹におちないのでどなたか教えて下さい。 例えばインターフェイスの利用。(ポリモーフィズムっていうんでしょうか) class Shain()をインターフェイスとして定義 何もしない関数standUp()を定義 class Tanto() extends Shainで"担当が立ち上がりました"という文字列を返す関数 standUp()を実装 class Bucho() extends Shainで"部長が立ち上がりました"という文字列を返す関数 standUp()を実装 そうすると、呼び出し側で $shain = new Tanto(); $shain.standUp(); $shain = new Bucho(); $shain.standUp(); と変数名$shainをインスタンスとするだけなのでインターフェイスのShainは 不要だと思うのですが、何か意味があるのでしょうか。 共通の関数をShainに実装して継承する場合なら意味はあるかもしれませんが そうなると テンプレートパターンなんかの場合で共通関数がなさそう(ちょっとづつ違う) 場合などはやはりインターフェイスの意味合いが無いと思うのですが。 Javaのように親の型に代入するよなことがあれば意味もありそうなのですが。 なんか誤解してますでしょうか。 インターフェイスはこういう点で必要であるといったことなどを どなたか教えていただけませんか。
利用の意味合いが見出せないなら、無理に使わなければいい 何でもかんでもオブジェクト指向って拘るなよ。 Hello,World!!のプログラムにもクラスは必要か? もっと柔軟に立ち回ろうぜ
>410 そっちの世界で心ゆくまで議論していて下さいね。
413 :
410 :05/02/18 15:12:42 ID:???
うわっ反応早っ
>>411 確かにその通りなのですが、必要かどうかというよりも「どういう事なのか」
知りたいということです。例であげたShain.staudUp()は、まんまHelloWorldプログラムです。
>>412 どっち?どこらへんが適切?
414 :
nobodyさん :05/02/18 15:12:54 ID:Q7wlkIXa
>>410 親の型に代入するからインターフェイスが必要というのは考え方が逆だぞ
自分自身ちゃんと理解できてるか怪しいけど、インターフェイスってのは
意味的制約みたいな感じだと思う
インターフェイスなんて処理を行いたいってだけならJavaとかでも不要
例えば
>>410 の例だとShainを継承したクラスはstandUp()というメソッドが
定義されていることが保障され、実際の型が分からなくても実際の型に
対応した処理が行われる
例なんて挙げればきりがないけど、今思いついた例だと何らかのプラグインとかだろうか
アプリケーションからプラグインを呼び出す場合に何らかの取り決めが必要だろう
plugin()関数を定義する とか
これを
pluginインターフェイスを継承する
と考えてみる。pluginインターフェイスにはinstall() uninstall() main()があって
プラグインを作るには、このクラスを実装しなくてはならない。
そうするとプラグインを呼び出す側では実際の型や実際の処理によらずに同じコードで実行できる。
PHPみたいに型の弱い言語ではpluginを継承しなくてもメソッドが実装されていれば
問題ないがpluginというインターフェイスを継承することによってメソッド定義されていると保障できる。
PHP5では引数にヒントが与えられるようになっているみたいだな
ttp://www.php.net/manual/ja/language.oop5.typehinting.php 結論を言ってしまうとOOPをPHPで実現するにはどうするかというのはいいが
OOP自体についての質問はスレ違い
>>414 pear に XML_XSLT_Wrapper ていうのがあるよ
ていうか、マニュアルにあるっしょ。たぶん user notes に。
>>410 に必要なのはたぶん教科書を捨てて実地のソースをたくさん読むことだと思う。
まぁphp5のソースはまだないけど。
417 :
410 :05/02/18 15:58:34 ID:???
>>415 解説ありがとうございます。なるほど制約かぁ。例まであげてくれて
ありがとう。感謝します。アマチュアの独学なのでこういった形で
教えていただけて大変助かりました。
418 :
nobodyさん :05/02/18 16:08:11 ID:aVVVaBSB
UTF-8の文字列に日本語が含まれているかどうかはどうやって判断すればいいの?
420 :
nobodyさん :05/02/18 16:32:33 ID:aVVVaBSB
>>419 日本語に決まってんだろ。質問に質問すんなよ。
>>418 マジレスすると全ての日本語をデータベースにでも保存しておいて
文字列に含まれているか一個ずつ全部チェックすればいい
>>410 オブ脳読むより、憂鬱なプログラマ〜の方がOOP分かりやすいよ。
オブ脳はぶっちゃげすぎてる部分があるし。
>>418 マジレスするとUTF-8に日本語って定義がない
違いはシングルバイトコードかマルチバイトコードの区別だけだ
PHP固有の質問でもないから、あとはgoogleで調べてくれ。
フォームで送った内容を次のページでチェックされた状態にしたいです。 はじめ送られてきたフォーム内容を解析して、<input ... checked>などで 書こうとしたのですが、手元のPHP本を読んだらセッションを使った方法が 書いてありました。 この2つの方法の違いというか、メリット、デメリットはなんでしょうか?
>>426 2ページならセッションの出番が無いと思われ。
フォーム -(1)-> フォーム -(2)-> 確認画面等
セッション利用有無に関係なく、(1)は当然<input>になる。
セッションを使うと(2)の部分でセッションのデータを利用可能になり、
フォームデータの再送信による手間を防げたり、
(クライアント側からの)データ改竄を防げたりする。
>>427 丁寧な説明ありがとうございます。よく理解できました。
フォームデータが毎回変わり、一回切りのページ表示なので
セッションの意味はないことがわかりました。
ありがとうございました。
htmlの共通部分をrequireを使って、一度に更新出来るようにしようと思っているのですが、 Warning: main(xxxxxxxxxx.html) [function.main]: failed to open stream Fatal error: main() [function.require]: Failed opening required 上記二つのエラーメッセージが、<?php require(xxxxxxxxxx.html); ?>と言うのを、 htmlに埋め込んだところ出てしまいました。色々と試しているのですが、なかなか出来ません。 どなたかご教授頂けると幸いです。 ちなみに、サーバーはxreaをお借りしています。
<?php require('xxxxxxxxxx.html'); ?>
ちゃんとrequireできてないだけ
関数の参照渡しは調べて、値に変更が無い場合違いはないらしいとわかったのですが、 PHP4でのオブジェクトの参照渡し $foo &= new Hoge(); はどういう時に使うべき ものなんでしょう? php 参照渡し オブジェクトでgoogleさんに聞いてみましたが出てこなかったです。
すみません、ちゃんと「'」で囲んでます。 ですが、それでも無理なんです。
434 :
nobodyさん :05/02/18 22:53:38 ID:JUw9WZei
こんな感じのフォームでファイルを特定のディレクトリにアップロードしたいと思ってます。 その際に、投稿者の名前や、メッセージなどの情報も記入してもらい、これをmysqlに入れてしまい、ファイルパスもDBに入れて管理するものを作ろうとしてます。 <form action="hoge.php" method="post" enctype="multipart/form-data"> 名前: <input type="text" name="name"> メッセージ: <input type="text" name="message"> ファイル: <input type="hidden" name="MAX_FILE_SIZE" size="*****"> <input type="file" name="file"> <input type="submit" name="submit" value="送信"> </form> multipart/form-dataにすると、2バイトの文字だとまともに値(ここでは$nameと$message)を受け渡し出来ません。 ファイルのアップと、その他の情報を2回に分ければすむ話ですがなんとか 関連情報の記入、ファルの選択 確認画面 ファイルアップ、ならびに、DB登録、(場合によっては管理者への告知メール、登録者への確認メール) という流れにしたいと思っていますが、$nameと$messageに対してどういう処理をすれば、値が取り出せるのか解りません。この辺について、解りやすい説明や、サンプル等あるサイトがあれば教えて下さい。
>>434 >multipart/form-dataにすると、2バイトの文字だとまともに値(ここでは$nameと$message)を受け渡し出来ません。
んなこたぁない!
437 :
434 :05/02/19 00:26:14 ID:d9KdIK2z
>>432 > PHP4でのオブジェクトの参照渡し $foo &= new Hoge(); はどういう時に使うべき
> ものなんでしょう?
$foo = & new Hoge();
なら、”使うべき”つうか、インスタンス生成するときは大概そうするよ。
439 :
nobodyさん :05/02/19 11:04:17 ID:a1KdI/7k
php5が使える無料スペース知ってる人いたら教えて下さい。
Webプログラムを勉強しようと思いました。 JSPが凄そうなのでJSPを一生懸命勉強しました。 勉強の成果を試そうと、HPスペースを探しました。 JSPを無条件で使えるところはほとんどありませんでした。 泣きそうになりました。 これに懲りたので、今度は普及度の高そうなPHPを勉強しました。 最新バージョンであろうPHP5の書籍を参考に勉強しました。 勉強の成果を試そうと、HPスペースを探しました。 PHP5を使えるところが見当たりませんでした。 死にたくなりました。
どう考えても自業自得だろ
だろじゃねーよ糞野郎。 はやくphp5がつかえる無料スペースを教えて下さい。
いいから氏ね
PHP5を試してから死にたいです。 自分で鯖を立てるほどの根性はありません。 どなたか、php5を無料スペースで使ってる方はいませんか。
ごめんなさい。死ぬとか冗談でいう事ではありませんでした。 本当は超生きたいです。120歳くらいまで生きたいです。 110歳くらいまでPHPをやりたいです。 ですから無料スペースを教えて下さい。
446 :
434 :05/02/19 12:14:30 ID:62TgDRLY
FedoraCore2 で自宅サーバを立てているのですが、 ページのテストの度にFTP を使うのが面倒になって クライアント(win2000)にapache1.3 とphp4 を インストールしました。 クライアントのphp から自宅サーバのpostfix を使って php スクリプトでメール送信を実現するには クライアント側のphp.ini をどう設定すればいいのでしょう? ご教授お願いします。
>>447 FeroraにSamba入れてWindows共有しろ
requireで読み込んだテキストファイルが文字化けするんですが、何故なのでしょうか? 読み込むファイルをHTMLなどにして、charsetなどを指定した方が良いのでしょうか? 誰か教えて下さい。
451 :
447 :05/02/19 14:30:24 ID:???
すみません、情報が不足していましたね。
> やってみどんな問題が・・・・
Warning: mb_send_mail(): SMTP server response: 501 Bad address syntax in f:\hoge\fuga.php on line 246
というエラーになります。
現在のクライアント(win2000)のphp.ini には、
[mail function]
; For Win32 only.
SMTP = 192.168.11.xx ← サーバのローカルIP アドレス
smtp_port = 25
; For Win32 only.
sendmail_from =
[email protected] と記述しています。
このhuga.php はユーザ登録時に登録完了メールを自動送信するというようなもので、該当個所は
//メール送信処理
$mail_subject = "メンバ登録を完了しました";
$mail_body = "登録ありがとうございました。\n";
$mail_body.= "あなたのログインIDとパスワードは以下の通りです。\n";
$mail_body.= "ログインID : " . $_SESSION["user_id"] . "\n";
$mail_body.= "パスワード : " . $_SESSION["passwd1"] . "\n";
$mail_headers = "From: " . mb_encode_mimeheader("振り込め株式会社") . "<
[email protected] >\r\n" ;
$mail_headers .= "Cc: " . $cc . "\r\n" ;
$mail_headers .= "Bcc: " . $bcc . "\r\n" ;
$mail_headers .= "Content-Type: text/plain; charset=ISO-2022-JP\r\n" ;
$mail_headers .= "Content-Transfer-Encoding: 7bit\r\n" ;
$mail_returnpath = "
[email protected] "; //エラー返送メールの受取
mb_send_mail($_SESSION["mail"], $mail_subject, $mail_body, $mail_headers, "-f".$mail_returnpath); ← line 246
です。"振り込め株式会社" というのは創作です。
ちなみにサーバにFTP 転送すれば問題なく動作します。
452 :
447 :05/02/19 14:31:49 ID:???
つづきです。 > Samba入れてWindows共有しろ・・・・ 一番先にそうしようと思っていたのです。 Samba は導入済みで運用もしているのですが、 その共有ディレクトリはWebDAV でも見えるようにACLアクセス制御を 設定しています。 で、クライアント(win2000)にapache1.3 のドキュメントルートを 共有ディレクトリ内に変更したのですけど、何故か全く見えない (だったと思います、当時の記憶がおぼろげ)。 ん゛〜分からん、ということでほったらかしにしていました。 win2000 にapache_1.3.xx-win32-x86-no_src.exe からインストールした apache はwindowsログインしているユーザアカウントではなくて、 nobody とかでドキュメントルートにアクセスするのですかね? windowsログインしているユーザアカウントと同名のアカウントは ACLアクセスの対象にしていて、ファイルサーバ的には問題なく 動作しているのですけど。
453 :
447 :05/02/19 14:41:27 ID:???
> 450 php.ini の[mbstring]の各ディレクティブはどうなっていますでしょう? mbstring.http_input = auto mbstring.detect_order = auto などに設定して、webサーバを再読込した後でも文字化けしますか?
454 :
450 :05/02/19 15:15:02 ID:???
すみません、PHPの知識は皆無でして…… php.iniとは何処にあるものなんでしょうか?
以下の流れでUndefined index: key($id)というエラーが出ているのですが、
$box[$id]は正しく表示されています。通常変数がセットされていない時に
出力されるエラーだと想うのですが他にはどのような状況で表示されて
しまうのでしょうか?。
$box['hoge'] = '123456789';
$sql = mysql_fetch_assoc($result);
$uid = $sql['uid'];
echo $box[$id];
>>450 テキストファイルをrequireしているというのが良くわからないけど
requireしているファイルの文字コードは確かめてる?
456 :
450 :05/02/19 15:24:30 ID:???
文字コードはUTF-8です。 さきほどGOOGLEで調べてみたんですが、 Shift_JISかEUC-JPじゃないといけないんでしょうか?
457 :
450 :05/02/19 16:16:00 ID:???
Shift_JISとEUC-JPでも試したんですが、やはり駄目でした。 読み込んだHTMLファイルに直接アクセスして見たんですが、 そこでは普通に表示されているのに、requireした先では、 文字化けしてしまいます。 xreaを使っているんですが、php.iniの設定などを弄ることは 出来るのでしょうか?
>>457 xrea固有のことはxreaのサポート掲示板で訊くのが筋(近道)。
確かサーバモジュール版とcgi版の両方が使えるような環境だったと思うので
変更が可能なら、それぞれ設定が違うやり方になる筈。
459 :
447 :05/02/19 16:33:00 ID:???
>>450 さん
xrea って、レンタルサーバのことですね。
そのサーバでの設定がどうなっているかですね。
php の内部コードがどのエンコードで動いているかとか、
その他もろもろの固有情報を集めないと答えられないと
思います。
>>458 さんのおっしゃる通りですね。
ワタシのくだらねぇ質問は流れていってしまったのかなぁ・・・
460 :
450 :05/02/19 16:41:42 ID:???
わかりました。 質問に答えてくれてどうも有難う御座いました。
>>459 postfix側でリレーの許可を出してphp.iniを設定すればいい
踏み台にされるなよ
462 :
447 :05/02/19 16:56:54 ID:???
>>461 さん
リレー防止関係ですか・・・
「メインテナンスのため、現在メール受信及びユーザ登録はできません」と
ページを更新したので、ルータのメール関係のポートを閉じて
LAN内で実験してみます。
うまくいってもいかなくてもまた報告に来ます。
>>447 サーバの設定もろくに出来ないくせに自宅サーバ立てるなよ。
踏み台にされたら周りも迷惑なんだぞ。
464 :
447 :05/02/19 17:31:29 ID:???
>>461 さん
以下の不正中継防止及びsmtpAuth関係全てコメントアウトしてLAN内で
実験してみましたが、同じエラー表示が出ますね。
はぁ・・・。
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
allow_percent_hack = yes
swap_bangpath = yes
allow_untrusted_routing = no
smtpd_client_restrictions = permit_mynetworks, reject_rbl_client, relays.ordb.org, reject_invalid_hostname, reject_unknown_client, permit
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_unknown_client, permit
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_sender_login_mismatch, check_relay_domains
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_etrn_restrictions = permit_mynetworks, reject_invalid_hostname
smtpd_use_tls = yes
smtpd_tls_cert_file = /usr/local/ここは内緒
smtpd_tls_key_file = /usr/local/ここは内緒
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
tls_random_source = dev:/dev/urandom
virtual_maps = hash:/etc/postfix/virtual
>>463 さん
周りも迷惑というのは全くその通りです。
ですから、LAN内で実験すると書いたじゃないですか。
幾種類かの不正中継防止に関する試験はクリアしていますし、
上記のディレクティブではかなり細かく設定しているつもりですが、ダメですかね?
SMTP鯖にはアクセスできてるわけだし、なんか別のアプローチは考えられないですかね
>>464 何もわかってないな・・・
posrfixを勉強しなおした方が良いよ
エラーログも見ろ
板も移動した方が良い
467 :
447 :05/02/19 18:52:29 ID:???
サーバに転送すれば動作したのでphp 側の問題と思い込んでエラーログも見ていませんでした。
ログは以下です。
192.168.11.yy はクライアント(win2000)のローカルIPです。
client01.example.jp はクライアント(win2000)のローカル内向きDNS上の名前ですね。
connect from client01.example.jp[192.168.11.yy]
56FF7807C69: client=client01.example.jp[192.168.11.yy]
warning: Illegal address syntax from client01.example.jp[192.168.11.yy] in RCPT command:
disconnect from client01.example.jp[192.168.11.yy]
「 Illegal address syntax RCPT command 」でぐぐるとぞろぞろ出てくるので明日丹念に見直そうと思います。
私用で外出しますし、php からそれてしまっているのでこのスレでの私のくだらねぇ質問は一時終了に
しようと思います。
>>466 さん
posrfix は勉強したくないけど、postfix のsmtpd.c とか見直した方がいいのかもしれません。私。
468 :
nobodyさん :05/02/19 19:31:29 ID:1PmY20I2
Postgresをpg_hda.confで各DBにアクセス制限をかけているのですが、 phpPgAdminでどれか一つのDBへアクセスできると、他のDBにも アクセスできるようになってしまいます。 各DBを完全に独立させるのはどのような設定を行えばよいのでしょうか。 ご教示いただけますと助かります。
469 :
nobodyさん :05/02/19 22:40:47 ID:J52hsPlw
中国人のメール登録.cnを拒否りたいのですが、
if (ereg("\.cn", $email))
こうすると、
[email protected] も拒否られてしまいます。
解決方法をきぼんうでございます
471 :
nobodyさん :05/02/19 23:52:30 ID:bvx2N1A1
pearのCache Liteをレンタルサーバにインストールして自作スクリプトで使いたいのですが いまいち理解が乏しくうまくいきません。そもそもpear自体インストールするというより置くだけ? な感じで、あら?
Parse error: parse error, unexpected T_STRING これはどう言う意味でしょうか? requireで外部phpファイルを読み込もうとしたら出てきました。
>>472 PHPファイルの実行時には、PHPの中の人がPHPファイルの中を読んで行きますが、
その読み方ってのは日本語の場合の主語・述語・名詞・形容詞みたいな感じで解釈していきます。
その時に日本語としておかしい場合にParse errorを出して読むのを止めます。
主語・述語・名詞・形容詞のようなパーツを トークンといいます。
ttp://www.php.net/manual/ja/tokens.php 今の場合だとT_STRINGというトークンが来ないはずなのに出てきたってことになります。
表でT_STRINGを探すと、、、説明が無いですね。
仕方ないのでトークン名からSTRING=文字列(''や""で囲った文字列等)と推測しましょう。
<!--#config timefmt="%j" --> これだと1月1日から現在までの日数になるのですが 自分で特定の日にちに設定できませんか? 2月3日とか9月30日とか。
すいませんです。 そこよく読んでみます。
$x = $_SERVER["HTTP_USER_AGENT"]; if ( ereg ("DoCoMo", $x)){ echo $x; exit; } else { echo "携帯端末以外 $x でしょ?ココは携帯用サイトです。"; exit; } あの〜携帯サイトを作りたいんですが、 上記を試すとUndefined index: HTTP_USER_AGENTって出るんです。未定義? コレではダメなのでしょうか?それともphp.iniの何かを弄らないといけないのでしょうか? ちなみにwake.php等で保存してindex.phpに<?php include('wake.php'); ?>等と挿入するとそれ以降が表示されなくなります。 なぜでしょうか?教えてください。
<?php echo $_SERVER['HTTP_USER_AGENT'] ?> だけ書いたPHPで試してみたら?これでごるぁされたらgetenv使うとか 関係ないけど、 eregよりpregの方が速いらしい exitは条件分岐から抜けた後に書けば1つにまとめられる
479 :
nobodyさん :05/02/20 12:40:55 ID:TyCJwqCV
スライドショーのような感じでリンクを貼らせたいので $page = ($_GET['page']) ? $_GET['page']: $next = sprintf("<a href=\"%s?page=%s\">NEXT</a> ", $PHP_SELF,$page+1); $back = sprintf("<a href=\"%s?page=%s\">BACK</a> ", $PHP_SELF,$page-1); print "$back $next"; と書いたらBACKしか出力されませんでした。 これを「BACK NEXT」のように二つ一緒に出力するにはどう書いたらよいのでしょうか?
480 :
nobodyさん :05/02/20 13:03:09 ID:VBegR7N/
>>479 $next = の行が三項演算子のfalse側になってる
$page = ($_GET['page']) ? $_GET['page'] : 1;
$next = sprintf("<a href=\"%s?page=%s\">NEXT</a> ", $PHP_SELF,$page+1);
$back = sprintf("<a href=\"%s?page=%s\">BACK</a> ", $PHP_SELF,$page-1);
print "$back $next";
ただ、これだとおかしな事になるのが目に見えてるから
if( $page > 1 ){
$back = sprintf("<a href=\"%s?page=%s\">BACK</a> ", $PHP_SELF,$page-1);
}
みたいな感じにしといた方がいいと思う
>>479 のままのソースで $next = の行と $back = の行を入れ替えれば同じ事出来るけど、
読みにくくなるから止めといた方がいい
session_register("abc") と $_SESSION['abc'] ってまったく別物ですか?
482 :
481 :05/02/20 15:32:40 ID:???
すみません補足します。 私の持っているマニュアルではsession_register()を使って変数名を登録するとあるのですが、 $_SESSION['']でいきなり変数を入れれます。 session_register()の使い方間違っていますでしょうか?
483 :
nobodyさん :05/02/20 15:52:58 ID:HD8VrkSM
フォームから送られるデータって同じ名前の物は一つにまとめられて $_REQUESTに入っちゃうけど、加工前のデータはFORMの上の方から 順番になって送られてくるんでしょうか?それとも順序はでたらめ?
>>482 公式のマニュアルにそのことについて書いてありますよ。
>>483 html4の仕様では特に規定されていないので、どんな順番でくるか不定と考えた方がよいでしょう。
本スレでも言われてたことだけど、順序にこだわるなら自分で制御(sort)した方がいいですよ。
486 :
482 :05/02/20 16:36:32 ID:???
>>484 ありがとうございます。
こんなとこでつまづくのは私くらいかと思いますが一応
>$_SESSIONの場合、 session_register(), session_unregister(), session_is_registered()は不要です
とのことです。
ありがとうございまいした。
487 :
nobodyさん :05/02/20 16:37:59 ID:buvb0b1/
XOOPSって登録した情報は安全なのですか?
オイラのサイトでもxoopsを使ってますが安全なのでクレジット番号や住民登録番号を必ず入力してください。
PHPでクラス使う利便性って少ないな。 わざわざ->とか使わんといかんし、thisつかうのにも$thisとかダサすぎ。コーディング速度が明らかに落ちる。 広く使えるPHP4だとインタフェースはおろかprivateやpublicの指定もできないし で、クラス使って管理して楽になるようなものって何かある?
490 :
nobodyさん :05/02/20 17:06:23 ID:/OfJuMCV
if文て下記のように省略していいもんなの? --------------------- if ($a == "hoge"){ $b = "fuge"; }else{ $b = "muge"; } --------------------- ↓省略? --------------------- $b = ($a == "hoge") ? "fuge" : "muge"; ---------------------
三項演算子はif文の省略と考える必要はないよ。
492 :
nobodyさん :05/02/20 17:26:47 ID:VBegR7N/
同じ結果が得られるなら使う使わないは自由でしょ。
>>490 の内容なら普通に三項演算子で書いたほうが早いけど、
使うと見難くなるようなところで無理使ったり、
似たような判断処理でifと三項演算子混在させて使ったりするとわけわからんソースになる事必至。
>>489 クラス使うかどうかはスタイルの問題でしょ。
とはいえ、他人のプログラムを読むならまっとうなOOPに則って書いてあるとホッとする。
OOPじゃないと、相当ドキュメントとか、コメントがちゃんとしてないと苦しい。
て訳で、他人のソースを読むときに楽になる。
問題は参考にできるようなまっとうなOOPで書かれたソースが少ないことだな。
>490,491 有難うございます。 三項演算子なんぞ知らんかった…。
496 :
483 :05/02/20 17:54:37 ID:???
>>484 うーん、そうですか。
仕様で決められてないのならブラウザに依存してるってことだから
危険ですね。ありがとうございました。
htmlentitiesでHTMLエンティティされた文字を戻す関数はないのでしょうか?
498 :
497 :05/02/20 21:41:44 ID:???
自己レス 関数はないけど作れるんですね;
別にOOPじゃないと掛けない言語じゃないんだから 全部をOOPに書こうとしなくてもいいんじゃない。
classを使わないと関数や変数でごちゃごちゃになると想うけどなぁ eacceleratorのキャッシュファイルが350kbを越えた!
ダメな奴は何をやってもダメ
クラス使うときは、ある機能をその場で一気に使いたいときに重宝する。 俺はCookieとMySQLのクラスを作ってるよ。 もちろん再利用性が重要。
関数いっぱい作って再利用するとき関数名がかぶった経験があるから 今はクラス使ってる派
こうするとパースエラー シンタックスエラー アンエクスペクテッドT_STRINGになってしまいます。どこがおかしいですか?エラーになる行は $fp = @fopen("hoge.dat","r+"); です Apache モジュールPHP5.0.3 WinXP SJIS CGIのPHP4でも同じです
>>504 >>473 の説明を流用すると、
その行で出てくるはずの無い文字列がでてきたってことだから、
それより前の行で " で文字列を開始したまま閉じてない、とかじゃないの?
hoge.dat の直前の " で文字列終端になって、
次にきた hoge.datが来る筈の無い文字列なのでエラーつーことで。
>>504 てかエラーメッセージは見えるとまずい情報以外はそのまま載せれ
>>504 内部エンコーディングでSJISが使えるPHP5って何処から入手したの?
508 :
504 :05/02/21 11:37:35 ID:???
505 1行目は<HTML><BODY> 2行目は<?php Parse error : Syntax error, unexpected T_STRING in .php on line 3 となってしまいます SJISはEUCの間違いでした
エラー行の前のほうで、ダブルクオートを閉じ忘れているとか
>>508 とりあえず、3行目までソース貼ってくれ
携帯電話のリファラーを取る方法ってありませんか? _SERVER['HTTP_REFERER']だとリファラー取れないんで なんとかならないですかね?
>>508 <html><body>
</body></html>
次に
<html><body>
<?php
?>
</body></html>
と一行づつ増やしてどこでエラーがでるかやってみそ。
それぐらいのこと、やってから質問しる。
513 :
504 :05/02/21 13:05:33 ID:???
ソースは <HEAD><BODY> <?php $fp = @fopen("hoge.dat","r+"); 処理 ?> </BODY></HTML> 全角文字はPHP内にはありませんでした。 また、ソースを改造してもエラーは必ず$fp = @fopen("hoge.dat","r+");のある行で出てきました
>>513 他のファイルからインクルードされてるってことはないよね?
515 :
nobodyさん :05/02/21 13:28:14 ID:hTSJdz6/
phpinfo で Server API Apache 2.0 Handler となっているのはモジュール版ですか?
>>513 ダブルクォーテーションと思ったらシングルクォーテーション2つだったとか。
"
''
@ついてるしエラーはその行以外でしょうね。
普通の無料レンタルサーバーで個人サイトを作ったんだが。 全てのページをPHP化するというのは無謀か? 負荷とか大丈夫か?
文字列の中の ##XXX## という箇所を全て空白に置き換えたいんですけど、 正規表現の記述がわからず 正常に置き換えられません。 $reg = '##.*##'; ereg_replace($reg, $key, $str) これだと最初の##から最後の## まで全てが空白になってしまいます。 どなたかアドバイスください。
さいたんまっち
522 :
504 :05/02/21 15:57:01 ID:???
>>514 いえ、直接です
>>517 いえ、そのまま張りつけたのでないと思います
ちなみに処理の部分はfcloseです
>>504 なんか誰も答えてあげる気がないらしいので・・・
全角スペース使ってるだろ(笑
しらべてみそ
>>519 負荷が問題になるくらいのサイト作成が先決
>>520 文字の最初、一文字を現すワイルドカード(3)、文字の終り、PHPの質問じゃない。
>>522 思いますってどういうこと?自分でやってる?
1.$fp=fopen...の部分を別ファイルにして
include("other.php");
とかしてどっちのファイルでエラーメッセージが出る?
ちなみにエラーがでて解決できないのになぜ@をつける。
(関係ないとは思うけど)
2.<?phpと?>行頭にスペースとかない?関係なかったかな。
<? phpとかさ。
>>523 すれよめ。
相手のスキルを考えてエスパーしろよ
526 :
504 :05/02/21 19:21:42 ID:???
すみません 漢字コードをEUCにしたところちゃんと動作しました マルチバイト文字は使ってないんですが… ありがとうございました
$x = $_SERVER['HTTP_USER_AGENT']; if ( ereg ("DoCoMo", $x)){ header("Location:m.php"); exit; }elseif(ereg("J-PHONE",$x)){ header("Location:m.php"); exit; }elseif(ereg("UP.Browser",$x)){ header("Location:m.php"); exit; }elseif(ereg("Vodafone",$x)){ header("Location:m.php"); exit; } else { header("Location:pc.php"); exit; } これにauのA3012CAでアクセスすると「URLが正しくありません」と怒られます。 何が原因でしょうか?
>>438 なぜインスタンス生成する時に、大概
$foo = & new Hoge();
のように参照渡しするのか教えて頂けないでしょうか?
$foo = new Hoge();
との違いというか、メリット、デメリットがわからないので
どっちで書くべきなのかがわからないのです。
>>527 それってPCでアクセスしてもちゃんと動かないでしょ?
Locationの使い方が間違ってるよ。
530 :
527 :05/02/21 19:55:30 ID:???
変数で絶対URLを指定して Location: $xx とやったらうまくいきました。 お騒がせ致しました。
>>526 てめー508で何ていったんだ。向いてねーよ。
>>528 参照渡ししとけばメモリも無駄にならないし、
コピーする手間もはぶけるでしょ。
>>526 ,531
コードを変換した時に自動で弾いたか変換されたんだろうね
とりあえず参照渡ししとけば、メモリも食わないし、早いからそうしとけ って感じですかね。 値渡しのメリットってないのでしょうか? なぜPHP4のデフォルトは、参照渡しじゃなかったのだろうという疑問が 残ります。
>>533 オブジェクトをコピーしたい時って、あるよね?
デフォルトが値渡しなのは、ほかの整数型とかとの整合性をとったんじゃないの?
または後方互換性とか。
また、ちょっと特殊だが、$thisを書き換えて自分自身を違うオブジェクトに
したい場合、値渡しでなきゃダメだった気がする。
これはthisの性質で、リファレンスとは直接関係はない気がするけど。
include_pathの用途がはっきりしません。 mysqlのパスワードがかかれたconnect.inc.phpなどincludeするファイルを include_pathに置いてそこから呼び出せばスクリプト経由でしかアクセスできない からより安全。という使い方で間違いないでしょうか? fopenを使って呼び出す場合の書き方はどのようになるのでしょう? a.phpをinclude_pathにおいて fopen("a.php")でよいでしょうか? すぐに実験できない環境の為教えてください。
>>535 include_path = ".:/php/includes"
今のディレクトリにファイルが無かったら/php/includesディレクトリから探してくれ
というふうに解釈している
include_pathから読み込んでれば
>>66 のようなことにはなりませんよね?
今はもう見れなくなってますが、以前はMYSQLのパスワードが記述されたファイルが見えてました。
拡張子をincじゃなくてphpにすれば中身見られないよ
include_path がウェブサーバーの公開ディレクトリ外なら大丈夫。
>>537 いやいやinclude_pathから読み込んでそうなったと思われる
すべての接続から見て、共通な変数を定義したいのですが出来ますか? register()を使ってもセッション単位でしか変数を永続化出来ないよう なのですが、これをmod_php全体から見てグローバルな変数が作りたいです
542 :
nobodyさん :05/02/22 20:19:57 ID:WO7XFPFB
記述上のまとまりの良さを主目的として インスタンスを生成せずに クラスを使ってる人いますか? そんなプログラムの書き方は邪道でしょうか?
543 :
537 :05/02/22 20:28:14 ID:???
拡張子を*.inc.phpなどにしてinclude_pathにおけばより安全ってことですね。 include_pathを使うのはセキュリティ面に配慮してということでよろしいでしょうか?
include_pathはincludeのときに毎回フルパス指定すると保守性がさがるため用いる。
545 :
◆JA..mLrN7g :05/02/22 21:37:00 ID:9e743wBI
#!/usr/local/bin/php <?php $diceA = mt_rand(1,6); $diceB = mt_rand(1,6); $diceC = mt_rand(1,6); $all = $diceA + $diceB + $diceC; echo "<HTML>\n<HEAD>\n<TITLE>ダイス振り(リロードでもう一度)</TITLE>\n</HEAD>\n<BODY>"; echo "あなたは3D6を振った!<BR>結果は、$diceA + $diceB + $diceC で、$allだ!<BR>"; echo "</BODY>\n</HTML>\n"; ?> #--- ↑のスクリプトで実行したら、500エラーが出るのですが、どうすればいいのでしょうか。 意図した結果: あなたは3D6を振った! 結果は、1 + 2 + 1 で、4だ! ようするに、3つの6面体サイコロを振りたいわけなのですが。
#!/usr/local/bin/phpって何?
>>546 うわ、いつものクセでCGIの宣言やっちゃってました。orz
ちなみに、それを抜いても同じ結果でした。500エラー。
<?phpって何さ
>>549 改行コードは全て試してみました。
残念ながら、全て同じ結果でした…。
>>545 print "あなたは3D6を振った!<BR>結果は、{$diceA} + {$diceB} + {$diceC} で、{$all}だ!<BR>";
552 :
551 :05/02/22 21:57:29 ID:???
>>545 print <<<_RESULT_
<HTML>
<HEAD>
<TITLE>ダイス振り(リロードでもう一度)</TITLE>
</HEAD>
<BODY>
あなたは3D6を振った!<BR>
結果は、{$diceA} + {$diceB} + {$diceC} で、{$all}だ!<BR>
</BODY>
</HTML>
_RESULT_;
うちではエラーにならなかったけど$all以降が変数扱いになっちまった
FFFTPの機能が働いてて、バイナリで送信してた…
アスキーで送信しなおしても、同じ結果でした。(改行コードももう一度試しました。)
>>545 それに変えても、同じ結果でした。
何が原因なのかな…
>>552 変えましたけど、結果変わらず。
Tabでインデントしちゃダメですか?
ごめんなさい、僕は非常にバカでした。 さくらサーバのライトタイプを使用しているのですが、 PHPはスタンダード以上でないと使用できないそうです。 お騒がせしてすみませんでしたorz
>>552 print <<<_RESULT_
_RESULT_
これって何?
たまに見かけるけどよくわからない。
$body=ごにょごにょ;
print $bady;
ってするようなもん?
$body=ごにょごにょ; print $body; ですスマン
sakuraか…。最初から言えばいいものを。 というか、誰か気付いてやれよ、500鯖鰓が出てるってことはCGIモジュールだろ。 パーミッションを705なり、実行権を与えるもんにしろ。
ねみぃ
564 :
nobodyさん :05/02/23 02:10:44 ID:3lWUKcoH
初心者です。どなたか教えてください。 フォームのデータをPOST変数で受け取るのですが、 入力したテキスト内容(POST変数に格納されている)の全角が文字化けしてしまいます。 なにか設定が間違っているのでしょうか? お願いします。
566 :
nobodyさん :05/02/23 09:36:09 ID:yBSmZfws
初心者でよくわからないので質問させてください。 Mysqlのデータベースを使っています。その中で商品説明のカラムに重量が 記入されているのを商品IDを元に他のテーブルに抜き取りたいのですが、そんな ことはPHPでできますか?説明がうまくできていなかったらすみません。
2レスほどあぼーんされてるけど、なんか問題あった?
>>567 「しょしんしゃ」(ほんとは漢字)をあぼーんしてるっしょw
569 :
564 :05/02/23 13:33:09 ID:2ladzgdI
>>565 ありがとうございます。
解決しました。PHPの設定ミスでしたorz
570 :
nobodyさん :05/02/23 13:54:12 ID:eVm9jlrT
配列の取り扱いで質問させて下さい。 $i=array(1,2,3,4,5,6,7,8,9) があったとして、これを三つづつ取り出した後に、<br>を入れたいのです が、どうすればよいかわかりません。お手数ですがアドバイス頂ければと 思います。今は、print(join(",",$i)) とコンマで区切って表示してます。 理想としては、結果を 1 2 3 4 5 6 7 8 9 ... としたいんです。お願いします。助けて下さい・・・
>>570 何がしたいのかよーけわからんが、これでも出来るというお話。
全然最適化されているとは思えないけど。
$i=array(1,2,3,4,5,6,7,8,9);
while(list($k,$v) = each($i)){
$count++;
print "$v\n";
$join .= $v;
if($count == 3){
$count = 0;
print "{$join}\n";
$join = "";
}
}
572 :
571 :05/02/23 14:15:59 ID:???
わり、<br>だったか。 \n → <br> としてくれ。
573 :
570 :05/02/23 14:29:05 ID:???
>>571 ありがとございます!
なるほど。インクリメントしてけば出来るんですね。勉強になりました。
最近の携帯ならfotmでPOST使えますでしょうか? GETで書いておいたほうがよいですか?
>>574 POSTで問題になるのは、Vodaの昔の機種だけなので、
全てPOSTで書いて問題なし。
(糞Vodaなんかの事は気にする必要は無し。キッパリ)
576 :
574 :05/02/23 16:59:00 ID:???
>>575 ありがとうございます。どこかでGETで書いたほうがいいみたいなこと読んだんでGETで書いてたのですが
GETで書くとURLが長くなるので気になってました。(私の書き方が悪いのかも。。)
POSTで書き直します。
ありがとうございました。
phpでメニューやヘッダーをテンプレート化して 共有しようと思ってます。 色々方法があるみたいで、 どれにしようか迷ってるんですが、 おすすめは何ですか?
580 :
nobodyさん :05/02/23 19:37:22 ID:gCV2DQAp
レンタルサーバー等で mod_php なのか CGI php なのかを 見分ける方法を教えてください
>>580 shebang(#/usr/bin/phpのこと)が必要か不要かを鯖のサービス説明やFAQに書いてあるだろうから、
そっから判断するのじゃ駄目?
>>580 セキュリティがらみで、サーバーモジュール→CGIに変更するところも多いし、
phpinfoの出力が見えるようにしてあっても、貴方が実際に使うサーバの設定と
イコールとは言えないのでので現状でどうなってるか、
ハッキリした事は直接訊くべき。
cgiでも結構はやいねぇ パーミッションはめんどいけど
584 :
nobodyさん :05/02/23 20:39:25 ID:dzVQVqEG
すみません、以下のperl文の処理を phpで同じように処理させるには どのように書けばいいのでしょうか? eval { local $SIG{ALRM} = sub { die "OK" }; alarm 3; 〜処理〜 alarm 0; } alarm 0; if ($@ =~ /OK/) { die "成功"; }
586 :
584 :05/02/23 21:01:05 ID:???
>>585 マニュアルは読んでいたのですが、
さっぱり理解出来ないんで・・・
出来れば処理文を書いて頂けないでしょうか?
丸投げスレ池
>>586 PHPで構文を書いてあげるから、
>>584 が何をしている処理なのか、順を追って細かく教えて下さい。
UTF-8にするとBOMが出てきます 全てのPHPファイルをUTF-8にしてincludeすると、各ファイルのBOMがロードしたページに漏れなく付いてきます。 これはUnicodeを使うならUTF-8N以外にないってことでしょうか。
>>590 サンクス
エディタのほうの設定を調整してみます。
サーバとブラウザーのやり取りのhttpを覗くプロクシみたいなツールってありましたよね? 名前が思い出せない。布だったかそんな名前で、トレイに常駐してる、白いアイコンのやつ。 探してます。
>>592 ベクターでも漁れや。いくらでもあるだろ。
例 3. URLからドメイン名を得る
// URLからホスト名を得る
preg_match("/^(
http:\/\/ )?([^\/]+)/i",
"
http://www.php.net/index.html ", $matches);
$host = $matches[2];
// ホスト名の最後の二つを得る
preg_match("/[^\.\/]+\.[^\.\/]+$/",$host,$matches);
echo "ドメイン名: ".$matches[0]."\n";
マニュアルのpreg_matchからですが、上記のスクリプト中に出てくる
「^」や「?」や「+」や「$」はなんとか演算子ってヤツですか?
それぞれどんな意味と、役割があるのでしょうか?
またなぜ2つ目のpreg_match()はパターンを()ではなく[]で囲ってるのでしょうか?
それとマニュアルに載ってますか?
595 :
:05/02/24 15:08:17 ID:???
>>594 >それとマニュアルに載ってますか?
とりあえずマニュアルを読め。
話はそれからだ。
597 :
595 :05/02/24 15:41:21 ID:???
漏れはJS/AS/VB/Perlをやってる人です。 オブジェクト指向に慣れ親しんでるからver5が良さげなんですが、現在の主流や将来性を考えると今からPHPを学ぶとした場合、Ver4と5のどちらが良いんでしょうか?
>>600 「学ぶ」んだったらPHP5
「使う」んだったらPHP4(プログラマだったらPHP5か)
602 :
nobodyさん :05/02/24 18:36:51 ID:S+cLCUGy
指定した個数分($inv)、同じ文字('a')を連結したいのですが、 つまり、 $inv = 5 なら、aaaaa ループ以外にやり方ないでしょうか?
アンケートを取りたいんですが、 ・賛成 ・反対 のradioボタンで選択させ、反対票だけ2倍にカウントするには どうしたらいいんでしょうか?
全然PHPじゃないな
>>606 ありがとうございます。
助かりました。
>603 そんな某国の情報操作みたいなことはヤメレ
>>600 将来性を考えればどちらがいいか明らかだと思うけど
将来性より、明日の受託業務
612 :
nobodyさん :05/02/24 23:35:47 ID:sdrJy1MC
PHPでチャットって作れるん?
>>612 <?php
$DATFILE = 'hoge.dat';
if($_GET['msg']){
$fp = fopen($DATFILE,'a');
fwrite($fp,$_GET['name'].' says:'.$_GET['msg']);
fclose($fp);
}
print_r(file($DATFILE));
exit;
?>
615 :
nobodyさん :05/02/25 00:53:28 ID:VA4tKjSS
掲示板を作りたいのですがどうすれば良いでしょうか
>>613 header('Content-Type: text/plain');
入れとかなきゃデフォルトだとhtml扱いされて(+д+)マズー
PHPというか他のプログラムに共通するかもしれませんが、 検索して検索結果が表示されてそのページ内の個々のデータを 見てブラウザの戻るボタンで前に戻ろうとすると 「警告 : ページの有効期限切れ」が表示されます。 Javascriptのhistory;back()でも同じ状態になります。 これを回避して検索結果の状態に戻す方法は無いのでしょうか?
>>618 別にブラウザのキャッシュを表示しても構わないようなものなら
静的なhtmlにすればいいような気がするけど。
header() で Cache-Control: とか設定すればよかった気がする。
httpのRFCを読むなりしてそれらしいヘッダがあれば設定してみれば?
ああ、検索結果なのね。データベースが頻繁に更新されないようなものなら ブラウザのキャッシュに戻れた方がいいのかな。 google は確か検索結果をキャッシュするようにしてたから、 telnet google.co.jp 80 してみて、それらしいヘッダを設定する手もあると思う。
621 :
618 :05/02/25 12:32:03 ID:???
>>619-620 いや、検索結果というのは自身で作成したプログラムです。
例えば会員検索のPHPプログラムがあったとして
検索フォーム(HTML)→検索結果(PHP)→詳細情報(PHP)→
検索結果に戻る→有効期限切れエラー
やはりブラウザに依存するんですかね。。
検索フォーム(HTML)→検索結果(PHP) ここをmethod="get"にしたらどう?
623 :
618 :05/02/25 14:40:24 ID:???
>>622 出来ました!!!盲点でした!ありがとうございました。
624 :
nobodyさん :05/02/26 00:15:54 ID:DKGm/bS1
sessionの一つのキーに連想配列で100個近く情報を保持する ことになったのですが、sessionに保存できる上限値みたいな ものはあるのでしょうか。 昔Perlでcookieを使っていたとき、一つのキーに3000バイト くらい入れたら500エラーが出たことがあるので、質問させて いただきました。 サーバサイドで持つものなので大目に取れるのではとは 思っておりますが、ご教示いただけますと幸いです。
php-nukeについてなんですが Lovemorgue.orgで使われてる右側のメニューのモジュールは なんですか?
>>624 実装上の制限はあるかも知れないけど、100程度だったら問題無いんじゃないの?
心配ならphpのソースコードを見てみれば良いかと。
cookieに関しては、RFC 2109(新しいものが出てるかも知れない)の
6.3 Implementation Limits に、
at least 4096 bytes per cookie の一文がある。
628 :
nobodyさん :05/02/26 07:28:59 ID:1NcE1tZV
fopenしようと思ったら Resource id #2 と出たんですがこれって何をうったえてるんでしょうか? ちなみにやりたい事は↓これなんですけども… $handle = fopen('aaa.txt', 'r'); echo $handle; fclose($handle); もしかしてaaa.txtのパーミッションは644じゃダメですか?
>>628 PHPは型にうるさくない言語なので普段は意識しないかも知れないが、
スカラー型 - 論理値・整数・浮動小数点数・文字列
複合型 - 配列・オブジェクト
特別な型 - リソース・NULL
の計8個の型が存在する。
リソース型の一覧は、
ttp://www.php.net/manual/ja/resource.php に載ってるが、このうちfopenはファイルハンドルを扱うリソースを生成する。
ファイルハンドルつーのは、、、説明していくとキリが無いな・・
そのページにファイルハンドルを扱う関数の一覧もあるから、それらの説明を参照してくれ。
630 :
nobodyさん :05/02/26 08:56:17 ID:LIYJX+3j
すいません、いつのまにか、すべてのphpファイルが Internal Server Errorになってしまいました。 なお、mod_php5, freebsd5.3,apache1.3.33です。 上記の「いつのまにか」が思い出せないのですが、 どなたか、可能性のあるコトや解決方法を教えていただければ幸いです、 なぜmod版なのにInternal Server Errorなのかも不思議ですが。。。
631 :
630 :05/02/26 09:06:46 ID:LIYJX+3j
なお、php.iniが原因かとおもい mv php.ini php.ini.tmp してみても、症状変わらずです
632 :
630 :05/02/26 09:14:57 ID:???
すいません、apacheのmodwriteがわるさをしてることにきづきました、すみません
while($line = array_pop($log)){ } って使えないのですね $lineが空になります
>>633 マニュアルによると、
mixed array_pop ( array array)
だから、$lineになんらかの値が入るよ。$logがnullや非配列だったら論外だが。
むしろ疑うならwhileの方じゃないかねぇ。
while(boolean) だから、$lineにarray_popの結果が入った後に
booleanとして評価される(型の変換)。
$lineが FALSEなら当然そこで終了になるし、数値の0や空文字''、文字列の'0'なんかもfalseになる。
635 :
633 :05/02/26 11:46:04 ID:???
>>634 apacheのアクセスログを\nで分割して配列に入れていたのですが
今ログを開いてみたら最後に改行が入っていました;
お騒がせしました
別ファイルの<!--- --->で囲まれた部分を読み込んで出力したいのですが $GrabURL = "hoge.html"; $GrabStart1 = '<!--- aaa1 --->'; $GrabEnd1 = '<!--- /aaa1 --->'; $GrabStart2 = '<!--- aaa2 --->'; $GrabEnd2 = '<!--- /aaa2 --->'; $OpenFile = fopen("$GrabURL", "r"); $RetrieveFile = fread($OpenFile, filesize($open_file)); $GrabData = eregi("$GrabStart1(.*)$GrabEnd1", $RetrieveFile, $DataPrint); fclose($OpenFile); echo $DataPrint[1]; だと当然のことながら<!--- aaa1 --->しか出力されません。 これを<!--- aaa2 --->も一緒に出力させるにはどうしたら良いのでしょうか? # $GrabDataとechoのあたりが怪しいと思うのですがどこをどう書き換えたらいいのかさっぱり…
>>636 $reg = "/<!-- (.+?) -->(.+?)<!-- \/\\1 -->/";
preg_match_all($reg,$RetrieveFile,$DataPrint);
こうかな?
638 :
636 :05/02/26 13:33:05 ID:???
すみませんなんとか自己解決しました…力技で、ですが…_| ̄|○
>>636 =638
まさか、
$GrabData1 = eregi("$GrabStart1(.*)$GrabEnd1", $RetrieveFile, $DataPrint1);
$GrabData2 = eregi("$GrabStart2(.*)$GrabEnd2", $RetrieveFile, $DataPrint2);
・
・
echo $DataPrint1[1];
echo $DataPrint2[1];
じゃないよな?よな?
637が一番綺麗でスマートだと思うぞ・・・
640 :
nobodyさん :05/02/26 13:52:37 ID:zRP2Hji7
掲示板を作っているのですが、設定ファイルを別ファイルにして管理しています。 設定ファイルには掲示板のタイトルや表示件数などがあり フォーマットは ---------- Sample BBS,10,5 ----------------- のようにカンマで区切られています。 カンマで区切ると、ユーザーがタイトルのところにカンマを入れた場合 区切り文字だと誤認してしまいます。 これを回避するには、特殊文字に変換するか、URLエンコードして保存するというの があると思うのですが、通常はどちらの方法をとるのでしょうか?
フォーマットを変えよう
データベース使おうよ
カンマ変換すれば。
もの凄くくだらない質問でわるいのですが、教えてください。 echo $_SERVER["REMOTE_ADDR"]; echo $_SERVER["REMOTE_HOST"]; echo $_SERVER["HTTP_REFERER"]; echo getenv("REMOTE_ADDR"); echo getenv("REMOTE_HOST"); echo getenv("HTTP_REFERER"); これを試すと表示されるのは両REMOTE_ADDRだけで、HTTP_REFERERに至っては怒られます。 php.iniの設定の問題でしょうか? どこを見れば良いのかわからないんですが、関係ありそうなところは register_globals = OFF register_argc_argv = On くらいでしょうか?他に見る必要がある場所ありますか?
>>644 <pre>
<?=print_r($_SERVER)?>
</pre>
REMOTE_HOSTはサーバーからDNS逆引きしてるわけじゃなく、
クライアント側で付加するかしないかなので、
表示するやつとしないやつがいるのは仕方が無い。
んで、「怒られる」とか訳の分からない表現を使うな。
エラーが出るならそのエラーをまるまるコピペ。
あと、バージョン周りの表記も必要。
php.iniは関係無い気がする。
何となく匿名関数を使って見たのですが、string codeに<?が含められないので
絶対パスでファイルの内容が丸見えになってしまいますね。
拡張子でアクセス制限するのではなく他に良い手だてはないものでしょうか?。
>>644 E_ALLで変数が存在していないだけでは?
エラーはNotice: Undefined index: HTTP_REFERER in D:\(略)test.php on line 6です。 バージョンはPHP Version 4.3.6 Server API ISAPI Virtual Directory Support enabled Configuration File (php.ini) Path C:\WINDOWS\php.ini PHP API 20020918 PHP Extension 20020429 Zend Extension 20021010 Debug Build no Thread Safety enabled Registered PHP Streams php, http, ftp, compress.zlib こんなもんでいいでしょうか?
>>646 error_reportingですか?
確かにE_ALLにしてます。
E_ALL & ~E_NOTICEにしたらエラーは表示されなくなりました。が、REMOTE_ADDRしか表示されないのは変わらずです。
表示されないのもあるとの事なのでしょうがないんですね?HTTP_REFERERもそういうことなんですか?
>>648 しょうがないのではなく、そういうものです
環境変数が何であるのかを勉強して来た方が良いですよ
650 :
636 :05/02/26 22:20:10 ID:???
>639 ご、ごめ…そのまさかです…動くからいいかなって…w >637のは大変有り難いのは分かってるんですが仕事が鮮やかすぎて 今の俺のスキルではどう使ったらいいのかすら分からなかったんだ… 現状はこのままで、試行錯誤していずれ>637のアイテムを理解できるように頑張ってきます # 本音:マニュアル読んでも全然わかんねぇ…
>>648 REMOTE_HOST はWebサーバ自身が逆引きをしておかないと設定されない。
apacheなら HostnameLookups on。
全アクセスに対して逆引きが実行されるのであんまりお勧めできない。
(webサーバではなく)PHPが逆引きするにはgethostbyaddrという関数が用意されている。
652 :
nobodyさん :05/02/26 23:43:58 ID:zgM2ruO5
ちょっと自分の力量では無理っぽいので質問させて頂きます。 POSTでバイナリーデータを受け取り、変数に入れる場合、どのようにすれば 良いのでしょうか?どんな情報でも結構ですがので、どうかアドバイスお願い 致します。
654 :
652 :05/02/27 00:04:35 ID:Quvh5uNr
>>653 様
情報ありがとうございます!
クライアントから送られてきたバイナリファイルは、$HTTP_POST_FILES
でサーバ(PHP)側で受け取れるということであってますでしょうか?
655 :
nobodyさん :05/02/27 00:12:08 ID:G/Og0QBF
買い物カゴをperlで作成する際に、クライアントのカゴを保持したいのですが、 カゴとクライアントをどのようにつなげてよいかわかりません。 つまり、カゴにIPアドレスを付ければある程度誰の買い物籠か わかりますが、それではproxyを経由しているPCたちはみんな同じ カゴになってしまいます。どうしたらよいのでしょうか?
perlのスレにいけばよいかと
>>655 ここはPHP(言語)スレですよ。
買い物カゴのように複数のhttpアクセス間でデータを継続するには
セッションと呼ばれる仕組みを使います。
perlにもセッションを提供するモジュールがありますが、
簡単な物の場合は自作してしまってもよいでしょう。
自作する場合には、
1. cookieや urlの一部に データそのものを付加する
2. データ本体はサーバ上のファイルに保持しておき、
そのデータへのIDとなるものをcookieやurlの一部に付加しておく
の2つの方法があります。
658 :
nobodyさん :05/02/27 01:13:03 ID:G/Og0QBF
>>657 なるほど、ありがとうございます。場違いな場所…すいませんでした。
クッキーを使ってみます。本当にありがとうございました!!
659 :
652 :05/02/27 02:28:21 ID:Quvh5uNr
なんどもすいません。 受け取ったバイナリデータを$dataに入れ filesize($data); とやってもエラーになるのですが、バイナリデータのサイズはfilesize() では取れないのでしょうか・・・(T.T)
>>659 変数のバイト長ならstrlenでいいんじゃない?
アップロードされたファイルのサイズを知りたいなら一時ファイルのサイズで
filesize()すればいいだけだよ。
661 :
659 :05/02/27 03:51:26 ID:Quvh5uNr
>>660 そうでした。strlen()でいけました。
ありがとうございます。
662 :
nobodyさん :05/02/27 18:49:25 ID:/nNhQDUH
あるhtmlファイルを ftp_put でアップロードする際に、 内部の文字列を一部変更したいのですが、 どのようにすればいいでしょうか?
DBにアクセスするためのパスワードなど各種設定を別ファイルに保存しておいて 実行時に読み出すようにしているのですが、この設定ファイルを当該スクリプト以外から 読み出されないようにするにはどうすればいいでしょうか? ちなみに共用サーバーなのでサーバー側の設定はいじれません。
>>664 >当該スクリプト以外から
自分の設置するスクリプト以外からってこと?
んで、サーバの情報ヽ(`Д´)ノクレヨ
>>665 そうです。
もしくは読み出されても悪用されないようにデータを暗号化しておくなどでもいいのですが。
あと、サーバー情報ってどんな事を書けばいいのですか?
668 :
nobodyさん :05/02/28 09:08:11 ID:Cd7H0ok5
Win32のApache 2.0.48と、PHP4.3.5で、問題なく動いていたのですが、 PHPを4.3.10にしようと思い、 ・c:\php\以下を全部削除、 ・4.3.10の中身をコピー ・php.iniをwindowsフォルダにコピー そしてapacheの再起動しました。 エラーで起動せず、イベントビューワーにはphp4apache2.dllが見つからないと。 もちろんパスは合っているし、直前まで前VERで動いていた、 何か変更でもあったのでしょうか?
>>668 apache2.dllのパスが合っているならts.dllも入れ替えろ
窓ユーザーってこんなんばっかか・・・
671 :
668 :05/02/28 09:55:08 ID:???
672 :
669 :05/02/28 11:21:28 ID:???
参照元が検索エンジンからの場合にキーワードを抜きたいと 考えているのですが何処かにパターンマッチの参考になる スクリプト等をご存じないでしょうか?
674 :
nobodyさん :05/02/28 21:09:40 ID:NQSvt/75
自分で作った連想配列をスーパーグローバル変数にすることって可能でしょうか?
>>673 parse_url() を使うのはどうだろう。
$logfile = "***.dat"; のようにDATAファイルのファイル名を不特定にする表現ってどうするのでしょうか? 英字や数字もカバーしたいんですが「.*」じゃだめでした。 もう一つ質問なんですが、PHPとあまり関係なくて申し訳ないのですが Windowsは半角のバックスラッシュ(\)は普通に打ち込めるものなんですか? 当方Mac+miなんですがマニュアルサイトをIEで見ると\に化け、 iCabで見るとちゃんと半角バックスラッシュ、それをコピペするとやはり\。 文字パレットでバックスラッシュを打ち込もうとしたんですが 全角しか無く、参ったんですが…
>>676 とりあえずプログラミング…というか、PC自体素人?
半角の場合、¥と表示するか、「\」とするかはフォント次第。
Macの見やすいOsakaフォントをWinで使おうプロジェクト
http://osakattf.hp.infoseek.co.jp/ このOsakaフォントはきちんと「\」になってるよ。
漏れ、WinでのPGはOsakaしか使ってない気がする・・・。
で、"*.dat"だけど、どんなときに使うの?
使用する場所によりけりで実装の仕方変えるべきだぞ。
preg_match("/^[0-9A-Z]+\.dat$/i",$hoge)なり使うとかになりそう。
くだらない質問スレに池・・・ってここがそうか。。 ではドゾー ↓
679 :
678 :05/02/28 22:07:38 ID:???
ちょっと行き詰まってしまったので、質問させて下さい。
php4+smarty+jpgraphで、グラフを作っています。
以下を参考にして、MVC(よく理解してませんが)で作ろうとしています。
ttp://www.stackasterisk.jp/tech/php/phpMvc01_02.jsp この場合、グラフを出力する処理はどこに書くべきでしょうか?
1. index.phpでGETを受け付け、そのGETをそのまま、表示部で引っ付ける
<img src="index.php?action=display_graph&以降パラメータ" >
controller.phpの中でclass/graph.phpを呼び出して、その中で処理。
index.phpがページ表示とグラフ表示を両方行う。
2. graph.phpという別単独スクリプトを作って
<img src="graph.php?以降パラメータ" >
index.phpがページ表示、graph.phpがグラフ表示を行う。
2.は MVCでないような気がします。
1.もなんとなく間違っている気がします。
1.の場合だと、一度パラメータを受け取って、もう一度それを出力すると
いう無駄な処理があるのですが、これでいいのでしょうか?
スマートな方法を教えて頂けないでしょうか?
よろしくお願いします。
681 :
nobodyさん :05/03/01 21:32:45 ID:3VPrEAk/
変数は何個まで使っていいの?上限ってあるの?100万個使っても大丈夫?
何を考えてるのかな
>>681 マニュアル読め
Linux系は1000個、 Windows系は100個
>>664 呼ばれるファイルがPHPであれば定数の有無で判別できるけどな
完璧じゃないが‥‥
>>683 正確には
Uinux系は1024個、 Windows系は128個
じゃなかったか。リファレンステーブルの限度だよな。
掲示板を作成しているのですが、親記事と子記事を ひとつのファイルにまとめて 1<>0<>〜〜 2<>1<>〜〜 3<>1<>〜〜 1番目は記事番号、2番目は0が親記事、1が子記事として 読み込み時に判定させる方法と 親記事と子記事を別々のファイルに保存し、 子記事は親記事の記事番号をキーとして持っており、 親記事は子記事がいくつ存在するかの情報を持たせて、 3つ存在するなら、子記事ファイルのほうから自分の記事番号と 一致する子記事を3つ読み込む というような方法のどちらを使ったほうが効率がいいのでしょうか? 効率がいいか悪いかの判断は書き込みのほうが多いのか表示するほうが多いのかで 判断するのでしょうか?
>>686 親記事と子記事は入れ子になるの?
>効率がいいか悪いかの判断は書き込みのほうが多いのか表示するほうが多いのかで
>判断するのでしょうか?
意味がわからない。
>>686 単純に表示だけで考えたら
もしKENTのYY-BOARDのような表示形式を考えてるなら
前者の方が効率がいいと思う
2chのようにスレッドタイトル(親記事)を一覧表示させて
そこから子記事(スレッド)を表示させるっていうなら後者の方が効率がいい
あとファイルサイズとファイル数の問題もある
前者は大規模で使われると途端にファイルサイズがでかくなり
目的の記事を探すのに時間がかかるだろうし
後者は大量の親記事に1個2個程度の子記事が作られたとき
小さいファイルが大量に出来ていく
全然答えになってなくてゴメンって感じだが
要は用途を想定しないと効率なんて考えられないってことだ
689 :
nobodyさん :05/03/02 05:09:54 ID:XnVo8Giw
if 文の()内で、$name が文字列 abc または def に一致する、 という条件はどう書くんでしょうか? if ($name == ('abc'|'def')) ダメですorz
if($name == "abc" or $name == "def")
691 :
689 :05/03/02 06:37:20 ID:???
>>690 お早うございます。
やっぱりそう書くしかないんでしょうか?
$name が重複してしまうのが、何となく嫌な感じがして、
perlでは
>>689 のように書けたような気がしまして。
とにかく、どうもありがとうございました。
>>689 正規表現がそのまま書けてしまうのは
ある意味特殊(Perlの特色)なので、必要であれば
"普通"に正規表現関数を使って書けばよいのでは?
in_array($name,array('abc','def'))とか。 意味ねーナ
>>691 正規表現使いたければ
if (preg_match("/^(abc|def)$/", $name))
ただ正規表現使うと確実に重くなる
正規表現使う必要がなければorやandを10個並べても全然嫌じゃないです
個人的には >if($name == "abc" or $name == "def") なパターンは、switchで書くようにしてる。 switch($name) { case 'abc': case 'def': echo "Match"; break; default: break; }
>>694 こういう単純な比較を10個並べた場合、and/orとpreg_matchはそれほど変わらないと思う
とくにどれにもマッチしないとかそういう時は。
もちろん最初の一個にマッチした場合はorの圧勝だろうけど。
if($hoge == $hage){ print "PIKA"; } という条件式を、Perlの場合、 print "PIKA" if $hoge == $hage; という書き方ができました。 PHPで同じような書き方はできないでしょうか?
<?php echo 'Hellow'; ?> と、 <?php /* 複数行用のコメント 以下数万行(約10000K) */ echo 'Hellow'; ?> <?php echo 'Hellow'; /* 複数行用のコメント 以下数万行(約10000K) */ ?> では、リクエストされてから表示されるまでの時間に差異は出るのでしょうか? 実際に試してみたいのですが、今使っているサーバ自体が糞で、 同じスクリプトを呼んでも、レスポンスにばらつきがありすぎて確認できません。
700 :
nobodyさん :05/03/02 21:03:47 ID:SuYdpkb9
if ($hoge == $hage) print "PIKA";
変数の数って上限あったのか、俺知らなかった・・・ごめん。
ディレクトリの中のファイル一覧を知りたいのですがどうしたらいいですか? 配列とかで取得できると後が楽でうれしいです。 PHPポケットリファレンスとphp manualを読んでそんな関数が見つからなかったので教えてください。 お願いします。
元質問者じゃないんですが変数の数の上限はどこに記載されているのでしょうか? 調べてもわからなかったんで実際に変数作ってみたら100万個までは作成できるみたいなんですけど。
>>702 >PHPポケットリファレンスとphp manualを読んでそんな関数が見つからなかった
>>702 >php manualを読んでそんな関数が見つからなかったので
読みが浅い。
「opendir」の項を嫁
むしろ「readdir」だな
うわーホントだ。読んでねえ俺・・・orz
どうもありがd
>>705
708 :
689 :05/03/02 23:35:30 ID:???
>>692-696 詳しい解説と考察をありがとうございました。マニュアルには
>複雑な処理を行ったり、 重い繰り返し処理を行う場合、
>switchの方がより処理が速い可能性があります
とありますが、今回のは簡単な処理だと思いますし、行数を
減らしたいので if を使います。
PHPicalendarで↓のような警告文が出て参ってます もう何がなんだかちんぷんかんぷんです。 どなたかどういう警告で何が原因なのか教えてくださいお願いします・゚・(´Д`)・゚・ ------------------------------------------------------------------------------------ Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 11005 is not allowed to access /tmp owned by uid 0 in /PHPicalendarまでのパス/functions/ical_parser.php on line 1070 Warning: fopen(/tmp/parsedcal-Home-2005): failed to open stream: No such file or directory in /PHPicalendarまでのパス/functions/ical_parser.php on line 1070 Warning: fwrite(): supplied argument is not a valid stream resource in /PHPicalendarまでのパス/functions/ical_parser.php on line 1071 Warning: fclose(): supplied argument is not a valid stream resource in /PHPicalendarまでのパス/functions/ical_parser.php on line 1072 Warning: touch(): SAFE MODE Restriction in effect. The script whose uid is 11005 is not allowed to access /tmp owned by uid 0 in /PHPicalendarまでのパス/functions/ical_parser.php on line 1073 ------------------------------------------------------------------------------------
710 :
nobodyさん :05/03/03 00:58:57 ID:pcZIX8SU
$a=1 $_SESSION['$a'] こんなかんじで使いたいのですが、$aを展開する書き方はありますでしょうか? $_SESSION['$_SESSION[$a]'] ↑できればこれも。。 わかりづらい説明ですみません。うまく説明できないです。
711 :
710 :05/03/03 01:20:37 ID:???
>>709 上で710程度の質問してるくらいなので詳しいことはわかりませんが、
SAFE MODE phpで検索すればそれらしきものが出てきます。
一行目:今のUIDでは/tmpへアクセスができない
二行目:fopen(/tmp/parsedcal-Home-2005) 作成されるはずだったファイルがないため開けない。
三行目:存在しないので、ロックもできない
四行目:存在しないので、書き込みもできない
ということではないでしょうか?詳しい方どうでしょ?
>>710 シングルクォートを外せば良い。
$_SESSION[$a]
$_SESSION[$_SESSION[$a]]
>>709 711 の説明でだいたい正しいように思う。
SAFE MODE を外せないのであれば、テンポラリファイルを作成する
場所を /tmp から適当な httpd の動作権限で書き込み可能な
ディレクトリに変更すれば動作するのでは?
713 :
710 :05/03/03 02:13:20 ID:???
>>712 望んでいた結果が得られましたありがとうございます。
714 :
nobodyさん :05/03/03 09:13:21 ID:L91eb6rn
すみません。ちょっと、教えて頂けますでしょうか。 PHPで、リロードせずに時刻を常に更新させたいのですが、どのように すれば良いのでしょうか。 <?php while(True) { print(date("Y/m/d h:i:s")); } ?> と書くと、「2005/03/03 09:16:57」という文字が連続して表示され、 1秒も進みません。 時刻を更新し続けたいのですが、どなたかやり方を教えて頂けま すでしょうか。何卒、宜しくお願い致します。
>>714 print(date("Y/m/d h:i:s")) が実行にかかる時間をちょっと調べてみようか。
$start = microtime(); // マイクロ秒単位でunixタイムスタンプを取得
print(date("Y/m/d h:i:s"));
$stop = microtime();
print ($stop-$start);
一回だけの試行なので信頼性はあんまり無いんだが、
うちの環境だと 0.000204秒になった。4900回/秒 くらいってことだな。
sleep()を使って1秒に一回くらいのペースでdate()を実行させるか、
そもそも鯖側で実行させずにJavaScript等のクライアント側でやらせた方がよいと思われ。
>>714 metaタグでリフレッシュする(結局リロードと一緒なのであまりサーバには良くない)
表示するだけならJavaScriptでやっとけ
717 :
nobodyさん :05/03/03 10:40:32 ID:7OeoLBpl
mb_send_mailはメール送信先にメールが届けられて初めてTRUEが返ってくる ものですか?? でたらめなアドレスを送信先引数にしてもTRUEが返ってくるのですが・・・。
>>717 最初のMTAに処理を依頼した結果が返ります。
719 :
nobodyさん :05/03/03 11:24:02 ID:7OeoLBpl
MTAとは インターネット内で電子メールを配送するソフトウェア。 ユーザが送信したメールを受け取って、他のサーバと連携して バケツリレー式に目的地まで配送したり、 届いたメールをユーザが受け取るまで保管したりする。 ってことは送信先に届けましたよってことでTRUEが返ってくるわけでは ないということでしょうか??
>>719 例えばsendmailの場合、下のurlにあるような結果(終了コード)を返す。
ttp://www.linux.or.jp/JM/html/sendmail/man8/sendmail.8.html sendmailがどう設定されているかはその鯖の管理者にしか分からん。
そして、PHPはこの終了コードだけを見て適当に加工してmb_send_mailの返り値としている。
phpのソースコードをぱっと見た感じでは、EX_OKの時にtrueを返しているみたいだな。
つーわけで、mb_send_mail == trueになったからと言って、
そのメールが確実に相手に届いているかどうか(届く予定かどうかさえも)分からない。
確実に届いたかどうか確認したきゃ、メールの中にidを含んだURLを書いておいて
相手にアクセスさせるくらいしかないわな
721 :
nobodyさん :05/03/03 12:32:41 ID:7OeoLBpl
詳しい説明ありがとうございます。 感謝です。
722 :
nobodyさん :05/03/03 13:08:25 ID:T3a2sbue
PHPを使って、ページAを表示しています。 そのとき、ページAの中心部分に、外部テキストデータBを挿入したいと考えています。 しかし、外部テキストデータBを呼び出すには多少時間がかかるため、 可能ならばページAを表示した後、時間差で外部テキストデータBを表示したいと考えています。 これを実現するためにはPHP内でやるよりも、iframeを使うのがいいのかなと思っているんですが、 iframeだと最初に縦横サイズを決めておかねばならず、テキストの量が変化するし実に不便です。 時間差で後からテキスト文を挿入する方法があれば、教えてください。
なんだと
725 :
nobodyさん :05/03/03 15:11:55 ID:T3a2sbue
>>723 JavaScriptだと、時間差で読み込みできますか?
document.write(外部ファイル)
みたいな感じでいいでしょか?
726 :
nobodyさん :05/03/03 16:18:55 ID:7OeoLBpl
質問です。 mb_send_mailでエラー返送先Return-Pathを指定しなかったら fromで指定したところにエラー返送されますか??
727 :
709 :05/03/03 16:51:52 ID:???
>>711-712 丁寧なレスありがとうございます
-------
1067行 // write the new master array to the file
if (isset($master_array) && is_array($master_array) && $save_parsed_cals == 'no' && $is_webcal == FALSE && $cal != $ALL_CALENDARS_COMBINED) {
$write_me = serialize($master_array); ~~~~
$fd = fopen($parsedcal, 'w');
fwrite($fd, $write_me);
fclose($fd);
1073行 touch($parsedcal, $realcal_mtime);}
-------
色々試行錯誤した結果、力技といいますか
警告を受けていた「functions/ical_parser.php」の↑の波線部分の所をyesからnoに変えたらなんとか警告は出なくなりました
この変更によってどういう影響をもたらすのかさっぱりですが・・・('A`;)
>>722 しかし、外部テキストデータBを呼び出すには多少時間がかかるため
どんなでっかいテキストデータなんだ?
どれともローカル以外にあるとか?
いずれにしても、PHPでopenしたほうが手間無いと思われ。
現在のTV番組を配信してるrssはどこかないでしょうか?
730 :
nobodyさん :05/03/03 18:52:01 ID:sBw8KeR2
生まれて初めてphpというものを書いてみました。 いろんなphpの見よう見まねで作った、近々ある社会の用語テスト用のくだらないスクリプトなのですが、 うまくいかないのです・・・もしよければ相談に乗っていただけませんでしょうか? スクリプトの内容は <? $question = array( "問1","問2","問3" ); $answer = array( "答1","答2","答3" ); print("[問]<br>$question<br><br>[答]<br>$answer"); ?> この4行ですorz ためしに動かしてみたのですが、なぜか「問1」とか「答1」とか表示される所に「Array」と表示されました・・・ それでarrayを消してもう一度動かしてみたのですが、こんどはエラーで動いてくれませんでしたorz 構想としては「問1」とでるならば「答1」とでるように、つながってて(?)ほしいです・・ もしよければ悪い点を指摘して頂きたいです。phpの勉強もしてみたいので。。。 では宜しくお願い致しますorz
$question = array( "問1","問2","問3" ); この$question は "問1"、"問2"、"問3"、が入っている配列そのものを指していると思えばよい。 だから、配列を意味するArrayという文字が出てくる。決してarray()の"array"が表示されているわけではない。 問1(つまり配列の0番目)にアクセスするにはこの変数の後ろに[0]という添え字をつける。 $question[0] 問2であれば、 $question[1] だ。 配列の先頭は1番目から数えるのではなく、0番目からスタートする。
732 :
nobodyさん :05/03/03 18:59:26 ID:7OeoLBpl
>>730 配列一つづつ表示させたいんですよね??
以下のようなやりかたで表示されるのでは?
for($i=0;$i<3;$i++){
print "[問]<BR>$question[$i]<BR><BR>[答]<BR>$answer[$i]
}
733 :
nobodyさん :05/03/03 19:00:19 ID:7OeoLBpl
質問です。 mb_send_mailでエラー返送先Return-Pathを指定しなかったら fromで指定したところにエラー返送されますか??
734 :
nobodyさん :05/03/03 19:02:27 ID:sBw8KeR2
>>731 大変勉強になりますです 無事、表示できました。
ところで、ランダムに表示する事は可能でしょうか・・・?
また、その場合においてもquestionとanswerは結びついていて欲しいのですが・・・orz
735 :
nobodyさん :05/03/03 19:03:42 ID:W+vZoiDK
returnでfalseにせずに数字もしくは文字列の0を返したい場合、どすれば よいですか?やっぱり、無理ですか。
736 :
nobodyさん :05/03/03 19:04:40 ID:7OeoLBpl
return 数字; もしくは return 文字列; でできるのでは?
>>733 実際に試してみれば?
答えは「鯖の設定による」
もしランダムに選んで1回だけ表示でよいなら、 $i = rand(0, 2); // ← 0 〜 2 までの乱数を取得 print "[問]<BR>$question[$i]<BR><BR>[答]<BR>$answer[$i] ";
739 :
nobodyさん :05/03/03 19:20:32 ID:7OeoLBpl
>>737 SMTPの関係で今実際にメール送信ができないのです。
safe_modeを有効にした状態でmb_send_mailの第5引数に
Return-Pathを設定すると設定したアドレスにエラー返送できる。
ということまで分かっているのですが、
もし、このReturn-Pathを設定しなかったら。
”答えは「鯖の設定による」 ”ということは
safe_modeが有効だったらfromで指定したアドレスに返送される
ということでしょうか?
740 :
nobodyさん :05/03/03 19:24:31 ID:sBw8KeR2
>>738 ありがとうございます!!
できました!!
スレッドの皆さん、お世話になりました
これで勉強が少しやりやすくなりましたです 本当に有難うございました
日本語の勉強がんばってね
時代を感じるね phpで勉強とは。。。
オッサン乙
うるさい
>>739 Return-Path は、Recieved: ヘッダの情報を元に、最終的に
受け取った MTA が付けます。
746 :
nobodyさん :05/03/04 14:53:02 ID:isNQAP9U
外部のSMTPサーバを利用してメールの送信を行うにはどうすればいいですか?
>>746 どこまでやって、何につまってるのか書いてないので適当に答える。
・mail()関数を使う場合
Linux -> sendmail等を直接叩くので不可
Windows -> SMTPサーバ接続のみ利用可なので適切な設定でOK
・fsockopenでSMTPを直接喋る
SMTPに則って、適切に実行する。ググればサンプルもあるはず。
つーか、他の言語ではこの形式のものが多いから他言語のものであっても参考に汁
748 :
746 :05/03/04 15:22:55 ID:???
すいません、焦っていたもので環境を書き忘れてました。Linuxなんです。 でも、Linuxだと、mail()関数は使えないんですね。 参考になりました。ありがとうございます。
簡単なうぷろだを作ろうと実験してるんですが フォームから$_FILES['upfile']['tmp_name'] で取得できる一時ファイルはどのタイミングで消えるんでしょうか。 $_SESSIONに一時ファイルのパス情報をいれて他のページに移動、 移動先のページで処理(アップロードファイルの確認とか)した後に$_SESSIONに保存しておいたパス情報を 使って move_uploaded_file() を発行しても、時間がある程度経過した後でもファイルを保存できますか? それともアップロード直後に move_uploaded_file() で保存してやらないと一時ファイルは消えちゃいますか? 環境はLinux、Apache1.3系、PHP4.3.9 です。
>>746 「fsockopenでSMTPを直接喋る」ライブラリが豊富にあるので、それを利用する。
PHPMailerとか、Pearのクラスとか。
752 :
nobodyさん :05/03/04 16:28:34 ID:fHaVG3jY
>>751 ありがとう 読み飛ばしていたようだ(;´д`)
アップ後に一旦移動させる事にします
Configuration File (php.ini) Path を変更することってできるんでしょうか?
>>753 -c <path>|<file> Look for php.ini file in this directory
>754-756 まずお礼を言わせていただきます。 今の自分にはそこまでするスキルがありません。 Windows 環境ですし。。。
>>757 Visual C++(Ver.6以降)があればWindowsでもコンパイルできる
そこでVCかよ…(;´Д`)
>758 難しいものなんでしょうか?
761 :
760 :05/03/05 10:16:43 ID:???
C++ は持っていませんが、他で使える環境があります。 コンパイルの方法を教えてもらえないでしょうか?
>>761 つ【日本語マニュアル】
つ【Google】
764 :
nobodyさん :05/03/05 11:36:27 ID:pdjPLFTW
>>734 ちょっと亀レスですみません。
ランダムに出すと言う意味ではちょっと
>>738 さんとは違うと思うんですが、
<?php
$qa=array(
array('問1','答1'),
array('問2','答2'),
array('問3','答3')
);
$num=rand(0,2);
print ("<p>".$qa[$num][0]);
print ("<p>".$qa[$num][1]);
?>
これだと、リロードするたびに違う問題が出てきます。
だから用語テスト的にはよろしいのではないかと・・・・。
>762-763 わかりました。 自力でトライしてみます ありがとうございました。
PHPで変数中にある指定文字のX番目以降の文字を返す関数はないでしょうか? eregとsubstrの両方の機能があるような関数が欲しいのですが。 検索文字したい文字以降の X番目からY番目の文字を表示したいのですが。 たとえば$RR=あいうえをかきくけこさしすせそたちつてとなににねの;のとき。 検索文字=「かき」 X番目= 3 y番目= 6 とした場合 「こさしすせそ」 を表示させたいのですが。関数の名前だけでもいいので 誰かご存じないでしょうか?
昔はregister_globalsがデフォルトでonだったってのは 今考えるとかなりやヴぁいと思った 俺みたいな初級プログラマーは間違いなくハックされそう extractも安易に使うとやばいような気もするんだけど、どうなんでしょう?
>>766 strposとsubstrを組み合わせれ
例のように全角文字を対象とするならそれぞれのマルチバイト対応関数を使うべし
>>766 $str="あいうえをかきくけこさしすせそたちつてとなににねの";
mb_ereg("かき(.{2})(.{6})",$str,$arr);
print_r($arr);
>>767 むしろ、ヤバさはregister_globals=Onよりも強力です。
extractを記述するってことで本人が意図的にやってる部分でスポイルされてますが。
772 :
ico :05/03/05 14:47:38 ID:???
質問です。携帯電話での音楽のダウンロードサイトを作っています。 □やりたいこと 音楽ファイルを1曲ダウンロードしたらセッションフラグを立てるなどして、 一度ブラウザを閉じてセッションをリセットしないと他の曲をダウンロードできないようにしたい。 ダウンロード完了後、他画面に強制的に遷移できれば問題ないはず □問題点 ダウンロードまではできるのだが、各携帯電話によってダウンロード後の「保存画面」が存在する場合がある。 「保存画面」で「保存」が押下されたことを検知できない。 □打開策 案1:携帯の固定識別番号を取得しデータベースに登録。 データベースに存在する固定識別番号の携帯はTOP画面から入りなおさないと音楽ファイルのダウンロードを出来なくする。 →問題点:「固定識別番号を送信しますか?」とダイアログボックスがでる携帯がある。利用者が不審に思い、サイトの利用を控えるのではないか? □現在のソース $file_location=i18n_convert($strPath,SJIS); $filesize=filesize($strPath); header ("Accept-Ranges: none"); header ("Content-Length: $filesize"); header("Content-Type: text/octet-stream"); header("Content-Disposition: attachment; filename=$cm_file_place"); i18n_http_output("pass"); $fp=fopen($strPath,"rb"); fpassthru($fp); fclose($fp); //端末に保存されたら強制的に画面遷移する(このままでは端末にファイルが保存されない・・・) header("Location: ".COMPURL); 携帯にファイルが保存されたことを検知する方法ってないですかね? もしくは他の方法で「□やりたいこと」を実現する打開策とか。 いろいろ調べてみたけど良い方法が見つからないので質問させて頂きました。 宜しくお願い致します
空メール送信にしたら?
774 :
ico :05/03/05 15:04:39 ID:???
>>773 いい案だけど却下です。
いちいちそんな手間を利用者に踏ませたくないというのと
僕だったらめんどくさくてダウンロードするのあきらめちゃいます^^;
もうね、お前の場合、だぁれも相手してくれないと思っていいよ。 「却下」って何様?
,. -─- 、
,r'´,. ‐,‐'`` ‐、、 __ ←
>>774 ,' { ' rヽ'`ヽヽ{:::::}
i ヽ ヽ 。ヽ゚,r'ー‐t <あひょほほほほほ!!
! ,-- ゝ ー' ' ! _
_ ', { r、 ノ _ 、、 / /
r'´_``ヽ、ゝ、、 `iー,-,-,‐'´,r'´_`ヽ カタカタカタ/
(/,=ニミ= `ー'` ‐ヽ`ー'ノー-' 彡ニ=、\) / /
`ー'`ー'`ー-`ニ-'`ー´ i二二二二二二l
778 :
nobodyさん :05/03/05 15:35:26 ID:nfpa4x1+
htmlソースを簡単に変更する方法教えてくださいませ どんな関数使えば宜しいでしょうか
何がしたいのか書けよ
質問です fatal error; undefind function mysql_connect() というエラーが出てしまいます WindowsXP+PHP(モジュール) にMySQLを入れ、DOS窓では動きましまが、以下のPHPのソースではエラーになりました <html><body><?php $dbid = mysql_connect("localhost","root","pass"); ?></body></html> 何が原因なんでしょうか?
781 :
780 :05/03/05 15:44:33 ID:???
急いでるんですが・・・ 早く誰でもいいので答えてもらえませんか?
undefind
783 :
780 :05/03/05 15:46:54 ID:???
>782 即レスありがとうございました
784 :
780 :05/03/05 15:49:03 ID:???
誰ですかあなた 急いでいるのにsageるなんて面白い方ですね 調べながらマターリ待っています。
785 :
780 :05/03/05 15:52:14 ID:???
>>782 それがなぜか分からないのです
Windowsなのでコンパイル時にオプションを指定する必要はないはずですし…
786 :
766 :05/03/05 16:18:24 ID:???
>>770 ヒントありがとうございます。できました。
787 :
780 :05/03/05 16:28:55 ID:???
早くしてください。
すみません原因が分かりました PHP5からはDLLをコピーしたりする必要があったんですね。失礼しました
,、 /7 ,-、 ( <. | l //´ ヽ\,.ィ´ .ニニェ‐、// >、<・> < ・>) 〈 // ´ ノ( 、_, )ヽ ヘヘ. | l ノ、__!!_,.、 | l ヘヘ. ヽニニソ ././ ヽヽヘ、____,,..ィ,ン′ `''‐---‐''´
>>778 質問の内容が不十分で意味が不明なので、勝手に解釈して返答。
file()で読んでfopen()&fputs()で書き込み。
なんでPHPスレに… flashは画像じゃないからスクリーンショット撮れ。
793 :
nobodyさん :05/03/05 17:50:31 ID:LpD+DiyE
PHPで使うリクエストをPOSTで統一したいのですが、フレームを使った ページの場合、どうやってindex.phpにモジュール名とアクション名を 渡せばいいのか分からず悩んでいます。 具体的に言うと下記のソース(GET版)の6,7行目にモジュール名と アクション名を書かないでも済むようPOSTにしたいのです。 どうか皆様のお知恵をお貸し下さいませ。 <HTML> <HEAD> <TITLE>メニュー</TITLE> </HEAD> <FRAMESET COLS="20%,80%"> <FRAME SRC="index.php?module=Manu&action=Left" name="Left"> <FRAME SRC="index.php?module=Manu&action=Right" name="Right"> </FRAMESET> </HTML>
フレームを使っている時点で(ry
>>793 input type=hidden使え。
あとpostするにはなんらかのアクションが必要だから
たぶんJavaScriptでpostさせることになるだろう。
>>793 なんだ?そのindex.phpは?
そのindex.phpの内部で、action値をどうやって処理しているか
がわからなけりゃ、答えようもない。
まぁ、たぶんactionの値で、送出する内容を切り分けているだけだろうが。
で、解決策。
index.phpを2つコピー
それぞれを[right.php][left.php]にリネーム。
で、内部で$action = $_REQUEST['action'];とか、
$action = $_GET['action'];
とかになっているところを、
[right.php]なら
$action = 'right';
[left.php]
$action = 'left';
と書き換える。
あとは、
<FRAME SRC="left.php?module=Manu" name="Left">
<FRAME SRC="right.php?module=Manu" name="Right">
で桶。
moduleもうっとうしかったら上記応用で固定汁
797 :
706 :05/03/05 18:42:48 ID:???
訂正。 [right.php]なら $action = 'Right'; [left.php] $action = 'Left'; な。
>>796 > なんだ?そのindex.phpは?
フレームワークでも使ってんじゃねーの?
799 :
793 :05/03/05 20:15:26 ID:???
フレームワークにmojaviを使って、index.phpに渡すmoduleとactionで表示ページを 切り分けています。 URLやHTML内に表示したくない項目を各画面で引き継いで行く必要があるのですが、 POSTを使えない場面でどうすればよいのか悩んでいました。 index.php一つで対応する場合はやはりJavaScriptしかないのでしょうか。
フレームワークに振り回されて作りたい物が作れないのは本末転倒だろ。
802 :
nobodyさん :05/03/05 21:46:12 ID:NIxfXemZ
PHP5なんですけど、 あるクラスのプロパティ一覧をゲットして、foreachでまわすなんてことは、できないでしょうか?
>>802 マニュアルのクラス/オブジェクト関数嫁
804 :
nobodyさん :05/03/06 00:19:42 ID:cTj8jdFA
以下のようなPHPファイルを別ファイルのPHPでインクルードして fugaメソッドを呼び出すとNULLと表示されてしまいます。 $hogeはグローバル変数になっていないようなのですが、 使い方間違っているでしょうか? <?php $hoge = array("aaa", "bbb", "ccc"); class hoge { function fuga() { global $hoge; var_dump($hoge); } } ?>
805 :
nobodyさん :05/03/06 04:50:09 ID:+a6+jJiS
すみません、質問です。 PHPでアクセスする度にインターネット一時ファイルを削除したいのですが どのようにすればいいのでしょうか?
>>805 意味が分かりません。「インターネット一時ファイル」ってローカルに持つ
ファイルじゃないですか? PHPって、サーバーサイド言語じゃないですか?
どうやってローカルのファイルを削除するんですか?
っていうか、サーバーからそんなことできたら、危険じゃね?
>>805 <meta>で、制御できたと思ったけど。
>>807 すみません、知識がなくて…
>>808 ありがとうございます。解決できました。
答えてくれたお二人方、感謝しています。
>>808 で解決できたってことは、
インターネット一時ファイルを削除 -> キャッシュに残したくない
-> meta content="no-cache" http-equiv="Cache-Control|Pragma">
ってことだったのかのぅ。
811 :
802 :05/03/06 10:32:16 ID:???
>>810 はい、そうです。
header("Cache-Control:no-cache,must-revalidate");
header("Pragma:no-cache");
を書き加えたらキャッシュに残されなくなりました。
くだらない質問させてください。 if(ereg("[^._0-9A-Za-z]+", $_FILES['userfile']['name'][0])) { と記述されている部分があるのですが、 この場合、「ハイフン」も含めるにはどう書けばいいでしょうか?
すみません。 if (ereg("[^._0-9A-Za-z-]+", $_FILES['userfile']['name'][0])) { で解決できました。 スレ汚し失礼しました。
816 :
nobodyさん :05/03/07 00:56:19 ID:HlPlUaTA
phpとMySQLで簡単なデータ検索スクリプトを作りました。 携帯(i-mode)でも見られるように文字コードをsjisにしたんですが、 化ける文字に\を付ける他、 何か対策すべきことはありますか? 自分の携帯以外で逐一確認出来ないんで心配です。
explodeとpreg_splitではexplodeのほうが速いと思うのですが、 1文字ずつ配列に入れるためにはpreg_splitの場合 $string = "0123456"; $ary_data = preg_split("//", $string); とすることでできたのですが、explodeの場合 $ary_data = explode("", $string); とやってもエラーがでてしまいました。 この場合はどのようにすればよいのでしょうか?
>>817 そもそも$string{index}使えば配列に入れる必要が無いような
>>817 <?php
$string = "0123456";
echo $string[3]; // 3
?>
APACHEかもしれないのですが・・・すいません。 現在apache2.0.50PHP4.3.9jpgraph1.17を使っているのですが jpgraphでグラフを作るたびD:\にtmpファイルが出てきてしまいます。 (DocumentRootはD:\にしています。) キャッシュルートの設定だと思うのですがよくわかりません。 tmpファイルを特定のディレクトリに送る方法を教えてください。 初心者の質問で申し訳ありません。
821 :
820 :05/03/07 14:35:09 ID:???
追記。ちなみに apache2.0.50(WIN)です。 よろしくお願いします
>>820 よく分かりませんが、設定用のファイルの中で
define(〜〜)てな感じで設定するようになっていないんですか?
よく名前を聞くライブラリですし、それぐらいしてそうなんですが。
DBのバックアップをPHPでやりたいのですが(shellがかけないので) 試しに以下のものを実行しました -------------psql_back.php----------------------- #!/usr/bin/php -q <? //ファイル名の設定 $filename = "DBdump_data" . date( 'Ymd' ) . ".gz"; //dump開始 system("pg_dumpall -U postgres > $filename"); system("cp $dl_filename /mnt/dir/"); ?> --------------------------------------------------- これをSSHでログインして ./psql_back.php の形で実行してみましたがpg_dumpallで止まってしまいcpが実行されませんでした。 /var/log/messagesに何かでているかと思ったのですがログが膨大過ぎてどこに何があるかわかりませんでした。 「SSHでログインして./psql_back.php : #!/usr/bin/php -q」この条件で 何かログを検索するキーワードのようなものって想定できますでしょうか? もし板違いでしたら誘導もお願いします。
>>823 pg_dumpallの標準エラーを別ファイルに保存させるとか。
( command > file1 ) >& file2 (リダイレクトの利用)
>>823 ホントにpg_dumpallで止まってるの?
cpの引数が一個定義されていないのはなぜ?
#!/bin/sh
pg_dumpall -U postgres | gzip -c - > /mnt/dir/DBdump_dat`date +%Y%m%d`.gz
pg_dumpall って出力はgz圧縮されてるの? されてたらゴメン
system()を使うならshellを勉強してからにしたほうがいいよ。
826 :
823 :05/03/07 18:15:26 ID:???
>>824 ちょっとおっしゃる意味がわからんのでぐぐってみます
>>825 実際はcpの引数は足りてました
ただ圧縮はしていませんでした。
gzipのオプションも把握していなかった次第です。
実験する前に勉強しなきゃですね
質問ですが、MySQLにSJISで書き込む時に起こる文字化けをエスケープして化けないようにする関数があれば関数名を教えてください。
magic_quote_gcpはoffです。
>>816 手動で\を付けて書き込んでいますが、正しく表示されますよ(N900is)
ただクエリを送るページがSJIS以外の時は半角カタカナを使うとうまくいかないことがあるようです。
>>828 PEAR::PHP_beautifier
てのがあるよ。使ったことないけど。
831 :
nobodyさん :05/03/07 21:44:39 ID:eEc3+oc8
Parse error: parse error, unexpected $ in /public_html/***.php on line 最終行 こういうの困りますよね
832 :
nobodyさん :05/03/07 22:22:49 ID:KVf6uHOl
PHPで作られているオンラインでのウェブサイト管理ソフトって有りませんか? ソースが見たいのですが。
835 :
832 :05/03/07 22:44:16 ID:KVf6uHOl
>>833 それもいいんですが、いろいろなバリエーションを見てみたいんです。
それぞれの設計(画面構成も含めた)の良い点を取り入れたいので、
もっといろいろな種類を知りたいんです。
>>832 「ウェブサイト管理」の意味する範囲が広すぎ。
最近1000点ぐらいソース公開されてるPHPスクリプトを
紹介する本が出たからそれ見てチェックしてみ。
>>835 sourceforge.netあたりで CMS PHPで検索すれば、かなりヒットするかと。
玉石混交&ドキュメント無しですが。
変な質問ですけど、foreachを使って10個あるデータを 繰り返さずに1つしか表示させる方法は知りませんか?
832ではないけど、玉石混交じゃなくて最近人気だとか 評判の良いPHPスクリプト紹介している所ってないですか?
>>838 質問が変というより日本語が変で何をしたいのかよく分かりません。
例をあげてもらった方が伝わり易いかも知れません。
>>839 熱いスクリプトか、新鮮な肉で評価順で探せ。
PHPやってるオマエラは犬と猫どっちが好き?俺は犬だけど。
ぬこ
ねこになりたい にゃーん
>>843 なんつうくだらねぇ質問だ。そんなの100人中64人が
猫と答えるに決まってんだろ。
アップロードされたムービーの作成時刻(撮影時刻)を取得する方法はありますか? phpからファイル一覧を取得して、リスト表示するのを作っています。撮影時刻順に並べたいのです。 ファイルは静止画とムービーです。 JPEG画像はexif情報から作成時刻(撮影時刻)を取得できていますが、ムービーでも同じようなことができるのでしょうか? (更新時刻、すなわちアップロード時刻ではありませんのでねんのため…) よろしくお願いします。
>>847 ムービーつってもいろんな種類がある。
なかには撮影時刻を保持しているのがあるかも知れない。
対象とするムービーのファイル構造を調べるのが第一歩かと。
その辺の話はPHPやWebProgとは関係無くなる。
849 :
nobodyさん :05/03/08 16:33:01 ID:uOGRIuh4
>>841 新鮮な肉ってなんですか?
熱いスクリプトはぐぐったら出てきたのですが・・・
851 :
nobodyさん :05/03/08 18:16:05 ID:LGJ/YsME
レーダーグラフのスクリプトというのは どこかで配布されているでしょうか?
画像のID取得するのにimagecreatefromjpeg imagecreatefrompngという関数がありますが、 その他の画像のIDを取得するにはどうすればいいのでしょう?gifやtiffなど。 画像掲示板を作っていて縮小表示するためにサイズの変更をしたいのですが、 画像フォーマットごとに処理をかえなくてはいけないでしょうか?
854 :
852 :05/03/08 18:34:50 ID:1t4kry72
追記 GD2.0.28 gifcreate enable pngsupport enable jpegsupport enable です。
>>853 ありがとうございます。
画像フォーマットに関係なく縮小コピーなどできる関数があればと思ったのですが残念です。
imagecopyresizedを使う場合、
GD2.0.48ではgif,tiffの縮小コピーはあきらめるしかないでしょうか?
856 :
851 :05/03/08 18:44:11 ID:???
857 :
nobodyさん :05/03/08 19:16:04 ID:7EtI6IRz
IISの板には人がいないのでこちらに書きます。 IIS6.0上のPHPでWindowsのATコマンドを実行したいのですが、 「Warning: system(): Unable to fork 」と表示されてsystem() コマンドが実行できません。 何かいい方法はありますでしょうか? ちなみにIIS5.0では問題なく動きます。
858 :
nobodyさん :05/03/08 19:59:56 ID:miamZvaO
初歩的ですまんが フォーム→確認画面→完了画面 という単純な流れを行うときに確認画面から完了画面へパラメータを渡すのは 確認画面でhiddenタグに入れて飛ばすのかセッションに格納する方がいいのが どっちがいいのでしょうか?
>858 どっちでも好きなように汁
俺ならcookieにmicrotime()、hiddenにパスワードをcryptしたのを入れてMySQL
>>855 GDいじったことないけど、最近GIFの加工に関する関数が消されたとか。
862 :
nobodyさん :05/03/08 21:03:36 ID:KmS8l+Vh
PHPは、拡張子を.htmlのまま組み込む事は出来ないのでしょうか。 くだらなくてすみません。
>>862 鯖の設定に関係するので 管理者さんと相談かと。
htaccessが使えるなら自分で設定できる可能性もありますが。<AddTypeディレクティブ等
864 :
nobodyさん :05/03/08 21:48:23 ID:KmS8l+Vh
>>863 レスありがとうございます。
indexにphpのカウンタを置きたいのですが、サーバさんがphpを許可してなくて。
なので、phpを外部ファイルみたいにして別の(phpを許可している)サーバさんに置かせてもらって、
indexにくみこみたいのですが。これは可能でしょうか?
.htaccessはphp可能なサーバさんなら使えるのですが、やはりindexの方が使用を許可していないと無理ですか?
header("Content-type: image/jpeg"); $im = imagecreate(100,50); $white = imagecolorallocate($im, 255,255,255); $black = imagecolorallocate($im, 0,0,0); $font = "BGPENKB.TTF"; $moji = "aイうE尾"; $text = mb_convert_encoding($moji, "SJIS"); // Replace path by your own font path imagettftext($im, 15, 0, 10, 35, $black, $font, $text); imagejpeg($im); imagedestroy($im); こんな感じで画像に文字を入れたいんですが、上記では文字化けもせず表示されます。 ところが、フォントを変えるとSJISでは文字化けする物もあります。 使いたいフォントが10個くらいあるんですが、1個づつ調べるしか方法はありませんか?
携帯キャリア検索をPHPで作りたい。 090‐□□□×‐×××× □に数字を入れて検索ボタン押したら『ドコモ中国です』とかでるやつです 例だけでもお願いします
>>868 PHPスクリプトを回答するから
□の数字の組み合わせとキャリアのマッピングを教えてくれ。
今更Gifが復活しても使うメリットが無いわけだが。
>>869 は優しいなあ
お望みのものは総務省のホームページで
公開されてるから頑張れ
ちなみに俺は質問者じゃないけど
期待してるよ
872 :
nobodyさん :05/03/09 01:18:11 ID:TPYzASqD
同じHPの中にある、htmlの表示(呼び出し)とか可能でしょうか・・・? フレーム無し仕様なので、 メニューバーのところが、コンテンツが増えるたびにすべてのphpを更新しなくてはいけないんです・・・ もしできれば、やりかたも教えて下さい・・・ おねがいしますorz
873 :
nobodyさん :05/03/09 01:21:50 ID:TPYzASqD
まとめつくってくるお
>>872 require include その他もろもろ。
875 :
nobodyさん :05/03/09 01:29:46 ID:TPYzASqD
php-4.3.10のconfigure時にエラーになってしまいました。 osはRH9です。 config.logを確認すると configure:32396: checking for XpmFreeXpmImage in -lXpm configure:32415: gcc -o conftest -g -O2 -Wl,-rpath,/usr/X11R6/lib -L/usr/X11R6/lib -lX11 conftest.c -lXpm -lpng -lz -ljpeg -lz -lresolv -lm -ldl -lnsl 1>&5 /usr/X11R6/lib/libXpm.so: undefined reference to `__ctype_b' /usr/X11R6/lib/libXpm.so: undefined reference to `_fxstat' /usr/X11R6/lib/libXpm.so: undefined reference to `__ctype_tolower' libXpm.soが undefinedとなっております。 xpmはネットからxpm-3.4k-linux.tgzを落としたものです。
configureでxpmの場所を指定すればいい希ガス
>>877 さん
すんません。指定してまつ
./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--enable-mbregex \
--enable-zend-multibyte \
--with-zlib \
--with-mysql=/usr/local/mysql \
--with-zlib-dir=/usr/lib \
--with-gd=/usr/lib \
--with-jpeg-dir=/usr/lib \
--with-png-dir=/usr/lib \
--with-xml \
--enable-xslt \
--with-xslt-sablot \
--with-xpm-dir=/usr/X11R6/lib \
--with-freetype-dir=/usr/lib
>>878 何か場所が違ってる気がする。
> xpmはネットからxpm-3.4k-linux.tgzを落としたものです。
なんでそ?
だったら、/usr/local 以下に入ってるような・・・
(特に指定していなければ)
$ locate libXpm.so
して正確な場所を探すべし。
もし、見つからなかったら
# updatedb
してから再度locate汁
>>879 さん
やっぱし、configureで正しい場所を示してるようです。
/usr/X11R6/lib/libXpm.so
/usr/X11R6/lib/libXpm.so.4
/usr/X11R6/lib/libXpm.so.4.11
/home/horie/xpm-3.4k-linux/lib/libXpm.so.4.11
/home/horie/xpm-3.4k-linux/lib/libXpm.so.4
/home/horie/xpm-3.4k-linux/lib/libXpm.so
xpm-3.4k-linux.tgzにはインストールスクリプトも何も
ついていませんでした。
881 :
nobodyさん :05/03/09 02:44:46 ID:TPYzASqD
すいませんもう一つ質問したいことが・・・orz
imgというフォルダのなかに1.jpg 2.jpg 3.jpgというように沢山jpgが入っていて、
これ頻繁に更新するんです・・・
そこで、フォルダからファイルみつけて自動でリンク作成してくれるようなのを作れませんかね・・・?
<a href="
http://***/img/1.jpg ">1</a>
<a href="
http://***/img/2.jpg ">2</a>
このように・・
おねがいしますorz
882 :
855 :05/03/09 03:01:39 ID:???
>>867 失礼しました2.0.28です。
TIFのアップロードは許可せず、GIFは縮小表示無しとしました。
>>880 漏れにはお手上げだわ。スマソ
>>881 できるよ。
PukiWikiのソースが参考になるんでないかな?
ページの一覧を得るヤツとか。pagesとかでgrepしたら見つかると思う。
>>881 マニュアルのディレクトリ関数参照
それでわからないならマル投げスレいけ。
885 :
nobodyさん :05/03/09 03:38:26 ID:TPYzASqD
>>883-884 申し訳ありません サッパリでした・・・orz
丸投げスレでお願いしてみますです。。。
886 :
nobodyさん :05/03/09 06:29:18 ID:/L5CaHRV
質問させて頂きます。 現在PHP + MySQLでデータベースの勉強をしているのですが いきなり取っ掛かりで躓いてしまってます… 一通り設定し終わってから、MySQLに接続するだけの以下の様なコードを実行しました。 <?php $hdb = mysql_connect("localhost","root","test_pass"); if(!$hdb){ print("can not connect db\n"); exit; } mysql_close($hdb); ?> すると、以下の様なエラーが表示されてしまい、失敗します。 Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\www\test.php on line 2 can not connect db 色々と自分でネット上を調べた結果、新しいMySQLのパスワードのハッシュが 変更になった為に起こる問題だという事が分かり、my.iniに [mysqld-4.1] old-passwords を追加して実行したのですが、 やはり同じエラーが表示されてしまいます… 色々と自分で試行錯誤したのですが、どうしても問題が解決できず、ここで質問させて頂きました。 尚、PHPはMySQL関係以外のコードならキチンと動作し、MySQLもコンソールから問題なく接続出来てます。 [環境] WindowsXP SP2 Professional Apache 2.0.52 PHP 5.0.2.2 MySQL 4.1
ファイルがテキストかバイナリかを見分ける方法ってありますか?
889 :
886 :05/03/09 08:36:06 ID:???
>>887 今、言われた通りに、MySQLのバージョンを4にすると問題なく実行できる様になりました!
原因は分からず終いですが、とりあえず先に進みたいので、このバージョンを使ってみる事にします。
助言の方、ありがとうございました。
>>886 そのmy.iniの値が本当にサーバに反映されてるのか、
MySQLに付属してたmysqlクライアントでチェックしてみな。
Windows版バイナリのPHP5.0.2ならば、バンドルされている MySQLクライアントのバージョンが4.1.7だから、 もとよりそんな細工は要らんわけだが。 >原因は分からず終いですが、とりあえず先に進みたい まあ、この件はいいとしても(貴方の本筋でない可能性が高いから) 全般として自分がやってることを理解せずに、ただ書かれていることを 写すだけなら学習方法として間違ってるよ。
>>888 テキストにないコードが入ってたらバイナリと判断するかね。
テキストはある意味、特殊なバイナリという見方もできるから判別が難しい。
893 :
nobodyさん :05/03/09 09:07:40 ID:y1CZf8yX
895 :
886 :05/03/09 09:16:40 ID:/L5CaHRV
>>890 一応「show variable」で確認したんですが、
old-passwordsはONになってましたので、反映されてたと思います。
その後も色々試行錯誤したんですが、どうもダメでして…
>>891 > バンドルされているMySQLクライアントのバージョンが4.1.7だから、
> もとよりそんな細工は要らんわけだが。
そうでしたか。
> 全般として自分がやってることを理解せずに、ただ書かれていることを
> 写すだけなら学習方法として間違ってるよ。
いや、取っ掛かりでいきなり時間が掛かってしまい、先に進みたい気持ちが先行してしまいまして…
確かに仰る通りですね。解決しても原因を理解していないと、また同じ様な失敗をしてしまうでしょうしね。
あと、
>>886 で書き忘れてましたが、MySQLに付属の「libmysql.dll」をシステムディレクトリに置くと
起動時に「指定されたモジュールが見付かりません」みたいなエラーが表示されてしまいます。
PHPに付いている方の「libmysql.dll」ならば問題ないのですが…
MySQLに付属の物の方がサイズも大きく、更新日も新しいので、そちらの方が良いかなと思ったのですが。
何か
>>886 のエラーと関係があるのでしょうか?
>>893 期待されてもな...単なるマッピングの対応を引くだけの気が。
<?php
// csvは基底番号(5桁),0,1,2,3,4,5,6,7,8,9の6桁目の順序でキャリア名
// 実際のフォーマットはこんな感じ
// 08029,ドコモ中国,ドコモ中国,,,,,,,,ドコモ四国
// 09061,KDDI,KDDI,KDDI,KDDI,KDDI,KDDI,KDDI,KDDI,KDDI,KDDI
$fp = fopen('mobile.csv','r');
while($line = fgets($fp)){
$array = explode(',',chop($line));
for($i=0; $i<10; $i++){
$cmap[$array[0].$i] = $array[$i+1];}
unset($array);}
fclose($fp);
$fullnum = '(090)2091-2345';
$snum = substr(ereg_replace('[^0-9]','',$fullnum),0,6);
if(isset($cmap[$snum])){ $cmap[$snum] == '' ? $car = '未割り当て' : $car = $cmap[$snum];
}else{ $car = '未定義'; }
printf("電話番号[%s]のキャリアは%sです。",$fullnum,$car);
?>
こんな適当でいいか?
897 :
nobodyさん :05/03/09 11:04:19 ID:2B8elh44
こっちに書くかリナックスか迷ったのですがこっちに書かせていただきます。 現在linux8でphp4.3.1を動かしているのですが これをphp4.3.10にバージョンアップさせようと思います インストールはした事は有るのですがバージョンアップは今回が 初めてで、アップの方法を探しているのですが どうにも見つけることが出来ません。 どなたかやり方もしくは参考サイトなどあるようでしたら 教えてもらえませんか?
>>897 修正のあった部分だけが配布されるつー事はあんまり無いので、
古いものをアンインストール後 新しいのをインストールって形が基本的な方針かと。
真面目にやろうとすると、
・release notesやchangelogを見て、バージョンアップによる問題が起きないか確認。
・旧バージョンの関係ファイルを全てバックアップ
・新バージョンを(適切なコンパイル作業をしてから)インストール
・新バージョンの設定ファイルを修正
・動作確認後、旧バージョンを削除
ってな感じかな。
linux8つーのは無いのでredhat 8だと仮定すると、rpmでインストールしているだろうから、
その(PHPの)rpmの作成者の想定にそったバージョンアップをする方法もある。
rpmでのバージョンアップや設定の変更はWeb上にいろんな説明があるので割愛。
>>895 >一応「show variable」で確認したんですが、
>old-passwordsはONになってました
ならOKだね。ちょっと同じ環境で試してみるかね。
入手先はどっちも本家サイトのバイナリーで、
MySQLはインストーラ版でいいのかな?
>エラーと関係があるのでしょうか?
は関係ない。ビルドしたときのリンクの問題なので
PHPで使うときはバンドルされているDLLを使ってください。
>>898 いつか使うかもしれないからモロタよ。コード乙。
903 :
886 :05/03/09 12:42:14 ID:???
>>900 > ちょっと同じ環境で試してみるかね。
> 入手先はどっちも本家サイトのバイナリーで、
> MySQLはインストーラ版でいいのかな?
そうです、どっちも本家サイトからDLした物をインストールしました。
ファイルは、
php-5.0.2-installer.exe
mysql-4.1.7-win.zip
です。MySQLの方は、zipを解凍するとインストーラが入ってました。
何が原因か知りたかったので、検証の方期待してます。
一応Apacheの方も書いておきますね(やはり本家からDL)。
apache_2.0.52-win32-x86-no_ssl.msi
> ビルドしたときのリンクの問題なので PHPで使うときはバンドルされているDLLを使ってください。
なるほど、そうでしたか。
>>893 のリストって、
昔は、DoCoMo以外のキャリアにも地域があったような気がするけど、
白昼夢かな・・・?
>>904 おそらくJ-PHONEのことじゃないか(ツーカー セルラーは地域別あるし)
vodafoneになって各事業者が統一されたような
908 :
nobodyさん :05/03/09 13:34:34 ID:TPYzASqD
このスクリプトからみて ./test/にあるindex.htmlを丸ごと表示したいのですが、 <? require "./borujoa/index.html"; print ***("@@@@"); ?> ***と@@@には何をいれればいいのでしょうか・・・?
909 :
nobodyさん :05/03/09 13:35:01 ID:TPYzASqD
↑の修正ですorz このスクリプトからみて ./test/にあるindex.htmlを丸ごと表示したいのですが、 <? require "./test/index.html"; print ***("@@@@"); ?> ***と@@@には何をいれればいいのでしょうか・・・?
>>909 printも何も、requireだけで希望する動作をしてないか?
>>907 どっちにしろ番号ポータビリティやIP電話の普及で
番号からは地域は類推できなくなるよ。
>>909 <?
require ("./test/index.html");
?>
>>907 番号持ち運び制度が導入されても事業所の番号指定は残ると思われます。
番号持ち運びは事業者間の転送等で行われるはず。
914 :
907 :05/03/09 14:39:31 ID:???
>>913 サンクス。
しかしスレ違いのようなのでここまでで。
有難う
915 :
nobodyさん :05/03/09 15:01:46 ID:VFtRBRwk
$obj = method(); $obj->objMethod(); を method()->objMethod(); のように呼び出したいのですが 出来ますか?
切望しておりますが、PHP5でもできなかった希ガス。
>>916 そうなんですか。。。
回答ありがとうございます。
文字を縦書きにしたいんですが、phpでできますか?
919 :
918 :05/03/09 15:33:32 ID:???
すいません。 画像を生成して文字を書きたい。そのときに縦書きにしたいんです。 画像を生成して文字を書くところまではわかります。 わかる方教えてください。
920 :
nobodyさん :05/03/09 15:56:06 ID:TPYzASqD
921 :
888 :05/03/09 15:58:24 ID:???
>>892 ああ、なるほど。
でも何種類か用意しておかないと取りこぼしそうですね。
文字コードの自動判定の「美乳」wのような、これ、っていうのがあれば
助かるんですが・・・
>>921 テキスト・バイナリってわけじゃないけれども、
mime_content_type()ってのもあるよ。
力技になるけども、自力で(apacheで言うところの)conf/magicファイルを走査するとか。
Unix系のコマンドのfileを叩く、つーのもありなのかな。
923 :
tui :05/03/09 16:46:56 ID:JSBinyPl
裏2チャンネルのアドレス分かる人います?
>>919 縦書きになるように座標を求めて、
ばらばらにした文字列をひとつずつ置いていく。
N901iC(c100;TB;W30H15 ↑こんな文字列から ( が出てくる前までの文字列を取得したいのですが どのようにすればよいでしょう?
>>924 ありがとうございます。
配列を用いてやってみます。
>>925 $string = 'N901iC(c100;TB;W30H15';
$getString1 = substr($string, 0, strpos($string, '('));
$getString2 = preg_replace("/\(.+$/","",$string);
list($getString3,$dust) = explode("(", $string, 2);
$getString1〜3、ご自由にご利用ください。
928 :
925 :05/03/09 20:49:33 ID:???
>>927 ありがとうございます。
2番使わしてもらいます。
正規表現難しい・・
>>899 返事おそくなってすみません
情報ありがとうございます
まじか! ずっとやりたくてうずうずしてたんだが、そろそろ5に移行するか。
PHP5ってもう仕事に使っても大丈夫? turckMMcacheはベータ版が出てるけど、PHP5.0.3では上手く動かなかった。
933 :
nobodyさん :05/03/10 07:07:18 ID:7QnRxEoS
ttp://pear.php.net/manual/ PEARの日本語HTMLヘルプがダウンロードできません…
去年の10月頃からもうずっとダウンロードできないみたいです。
このまま待っていてもいつ復旧されるか分からないので、
宜しければどなたかアップして頂けないでしょうか?
>>903 >ファイルは、
>php-5.0.2-installer.exe
>mysql-4.1.7-win.zip
PHPのインストーラ版は殆ど何も組み込まれてないCGI版のPHPで、
またextenion類も全然入ってないんだが、mysql絡みのextenionは
どこから入手したの?
>>933 改善に繋がるようにPHP-docのMLに投げろよ
936 :
886 :05/03/10 07:26:02 ID:???
>>934 申し訳ない、よく考えたら、その後
php-5.0.2-Win32.zip
をDLして、そちらをインストールしたのでした…
考え違いをしていた様で、申し訳ありませんでした。
$bad = array("死ね","090"); if (is_array($bad)) { foreach ($bad as $xxxx) { if (preg_match("/$xxxx/", $message)) error("宣伝・中傷・誹謗・個人情報の書き込み禁止!"); if (preg_match("/$xxxx/", $title)) error("宣伝・中傷・誹謗・個人情報の書き込み禁止!"); if (preg_match("/$xxxx/", $name)) error("宣伝・中傷・誹謗・個人情報の書き込み禁止!"); } } これをa.phpで保存してBBS等のスクリプトにincludeして試したんですが、 死ねと090を入力するとエラーが出ます。 Fatal error: Call to undefined function: error() in ・・・a.php on line 7 on line 7ですが、上記は<?phpと1行スペース(改行)を除いて書いてあります。 これはerrorが未定義と言う事ですよね?errorを使うには何か必要でしたっけ?
>>937 つーか error("〜")って何をする関数なのか説明してくれ
>>938 ん〜実は何も考えずレッツPHPのスクリプトの一部を取り出しただけなんです〜
よーく見てみたら下の方にfunction error(・・・ってのがあった。失礼しました。
preg_matchよりstrposの方が速くない?
941 :
nobodyさん :05/03/10 19:29:35 ID:S8C012ZX
CSVファイルをダウンロードするプログラムを作ったのですが、 「保存」をすると普通に表示されるものが、そのまま「開く」で 開いてしまうとなぜか文字化けが起こってしまいます。 出力時の処理は下記のような感じとなります。 header("Cache-Control: public"); header("Pragma: public"); header("Content-Disposition: filename=" . $CSV_FILENAME); header("Content-type: text/csv"); print $csv; コードはmb_http_output("SJIS");で指定しております。 mb_convert_encodingだとうまくいかなかったので、こちらを 使用しております。 ご教示いただけますと幸いです。
<?php
/* HTTPGET by ToR *
* 2000/10/19 fopen->fileに *
* 10/31 source表示 *
* URLを読み込んで表示するシンプルタイプ */
?>
<html><body bgcolor="#88CCAA">
<font size=-2>HTTP GET<br>
<form action="<? echo $_SERVER[PHP_SELF]; ?>" method="GET">
URL: <input type="text" size="60" name="url" value="
http:// ">
<input type="submit" value="謀反"><br>
<?
if(ereg("^
http:// ",$_GET[url]) && isset($_GET[url]) && strstr($_SERVER[HTTP_REFERER],"php.s3.to")):
$page = readfile($_GET[url]);
echo "<hr>総バイト数 $page";
endif;
?>
上記スクリプトをレンタル鯖にあげて、自分のwebにアクセスしてみると
アクセス解析に自分のレン鯖のホスト名(jibun.com)が出ます。
もちろん他人のWebにアクセスしてもホスト名(jibun.com)がでると思いますので
自分のホスト名が出ないようにするにはどうしたらいいでしょうか?
例えばロリポップをレンタルしてる人は自分のホストじゃなく、ロリポップとでます。
>>941 mb_language("ja");
mb_internal_encoding("SJIS");
mb_http_output("SJIS");
mb_http_input("auto");
>>942 アクセス解析はアクセスしてきた相手の情報を表示するのを踏まえると、
今回の場合はアクセスしているのはレン鯖のホストなわけなので、
そういう結果になるのは当たり前といっちゃ当たり前です。
>>942 そりゃ、readfileでHTTP通信してるの鯖だからな
>>942 そうなるのが当たり前。
レン鯖じゃ回避策は無い。
ネットワークの基礎というか、なんというか…
947 :
942 :05/03/10 21:53:23 ID:???
>>943 ご返答有難うございます。
やはり化けます。
ダウンロードして開けば問題ないのですが、そのまま開くと
だめです。
ご教示感謝します。
>>949 ご協力感謝です。
私もぐぐっていてここにたどり着いたのですけど、結局やるだけ
やりましたがだめでした。。
もう少し頑張ってみます。
解決したら報告させていただきます。
951 :
nobodyさん :05/03/11 14:13:53 ID:1A4ovjYu
PEAR の Cache を 1.5.4 にしたら Cache/DB.php が 入ってないのだが、どこいったの?
>>951 それおもしろいな
____ r っ ________ _ __
| .__ | __| |__ |____ ,____| ,! / | l´ く`ヽ __| ̄|__ r‐―― ̄└‐――┐
| | | | | __ __ | r┐ ___| |___ r┐ / / | | /\ ヽ冫L_ _ | | ┌─────┐ |
| |_| | _| |_| |_| |_ | | | r┐ r┐ | | | / | | レ'´ / く`ヽ,__| |_| |_ !┘| ̄ ̄ ̄ ̄ ̄|‐┘
| r┐| |___ __|. | | | 二 二 | | |く_/l | | , ‐'´ ∨|__ ___| r‐、 ̄| | ̄ ̄
| |_.| | / ヽ | | | |__| |__| | | | | | | | __ /`〉 / \ │ | |  ̄ ̄|
| | / /\ \. | |└------┘| | | | | |__| | / / / /\ `- 、_ 丿 \| | ̄ ̄
 ̄ ̄ く_/ \ `フ |  ̄ ̄ ̄ ̄ ̄ | | | |____丿く / <´ / `- 、_// ノ\ `ー―--┐
`´ `‐' ̄ ̄ ̄ ̄ ̄`‐'  ̄ ` `´ `ー' `ー───-′
本当にくだらない質問かもしれませんが教えてください。 配列に関してですが、 $aiueo = array('りんご','なし','みかん'); のりんご、なし、みかんを別ファイル(テキスト等)から読み込みたいんです。 その方法はどうすればいいでしょうか? 'りんご','なし','みかん'とテキストファイルに書いて保存してfile()で読み込むとテキストの内容('りんご','なし','みかん')が1つの文字として読みこまれてしまいますよね? テキストにはどう書けばいいのでしょうか?それともfile()では無理でしょうか? どんな方法がありますか?よろしくお願いします。
955 :
nobodyさん :05/03/11 16:36:35 ID:6xJBbbER
>>955 cookie使ったほうがいいんじゃない
>>955 オイラには、わざわざ [ ] を付け足しているようにしか見えないが。。
>>955 Header("Location:".'
http://hoge.jp/hoge.cgi?USER= '.$_SERVER['PHP_AUTH_USER'].'&PASSWORD=hage');
というか、下手するとパスワードが平文で履歴に残るぞその仕様。
>956が言うとおりcookie使うとか、セッション使うとか。
まぁ、どの程度のセキュリティが要求されるかによるけど。
>>956 >>957 >>958 皆さんありがとうございます!!
今回はあんまりセキュリティー云々の話ではないので
これで行かせてもらいます:汗
ホントありがとうございました!
960 :
nobodyさん :05/03/11 17:58:49 ID:sAzKONad
GDを使って線を描画するとき、アンチエイリアス処理をするには手作業しかないですか? つまり、1本のラインを書いて、アンチ用のラインを2本隣に描く方法以外ないですか?
jpgraphで画像を出力しています。 そのプログラムの中でエラーメッセージを出したいのですが、ストリーム?のため エラーを出力することができないでいます。 何かいい方法はないでしょうか?
class a{ var $dat; ← これをstaticにする方法はあるのでしょうか? }
965 :
nobodyさん :05/03/11 20:00:35 ID:81hSBL8X
phpからmysqlのデータベースを作成する、といったことをしたいのですが、 どのような方法が考えられるでしょうか? PHPのCGI版でないと、権限の関係で難しいでしょうか。
967 :
965 :05/03/11 20:09:41 ID:81hSBL8X
よく考えたら、phpmyadminからは作成可能ですよね、 あれはどうやってるんでしょう?
>>965 別にPHPがMySQLのデータベースを作っているわけではないよ
PHPはあくまでクエリを送っているだけ
どのみちSQLに権限がないと出来ないけどね
970 :
965 :05/03/11 21:57:26 ID:81hSBL8X
>>968 レスありがとうございます。
なるほど、クエリで作成してるんですね。
ただ、その際の権限についてがよく分かりません。
CGI版じゃないPHPの場合、
nobody権限での動作となるわけですので、
sudoでnobodyに権限を与えでもしない限り、
データベースの作成は不可能って考えであってますでしょうか?
nobody権限とかは、あくまでMySQLを起動したりするのに必要な権限(OSレベル)であって、 データベースを操作するための権限(MySQLレベル)ではない。 MySQLのデータベース作成や諸々の操作は、MySQLに作成したアカウントで決まる。 アカウントに適切な権限の設定がされていれば問題ない。
>>970 sudoなんか使わなくてもできるよ。多分。
973 :
960 :05/03/11 23:30:23 ID:sAzKONad
>>961 マニュアルを読んだり、ぐぐったりしたのですが、やはりフォント以外でアンチエイリアスを
かける方法が分かりませんでした。マニュアルのどこら辺に記述してあるか教えてもらえますか?
974 :
nobodyさん :05/03/12 03:37:19 ID:c9DkSKJ/
セッションIDを付加したURLをお気に入りに入れたのですが、二日たってもセッション変数が有効になってます。 セッション開始から一時間くらいにしたいのですが、どのようにしたらよいでしょう?
session.gc_maxlifetime
976 :
974 :05/03/12 14:09:01 ID:???
session.gc_maxlifetime 1440 となっているのですがこれだと24分間有効で その後はセッション変数を取得できないということですよね? コードに問題がありそうなので見直してみます。ありがとうございます
977 :
nobodyさん :05/03/12 14:47:40 ID:GBkAM6nF
PHPでjavascriptみたいな名前取得って出来ますか? あるページで名前などを聞いて、別のページでそれを反映させたいんです。 javascriptがオフの時でも使用出来るようにしたいのですが、javascriptとphpってどちらが安定してるんですか? phpでも作動しなかったり、オフにする事ってできるんでしょうか?
>>977 サーバーサイドとクライアントサイドの違いを理解しろ。
979 :
nobodyさん :05/03/12 15:02:20 ID:GBkAM6nF
>>978 あ!そうだったんですか!
じゃあ、phpの方がcgi同様みんな見れるってことですね!
名前(情報)取得、別のページで反映。これは可能ですか?
その >名前(情報)取得、別のページで反映。 って何をしたいのかよくわからんのだが、 フォームから値を受け取ってクッキーに書き込み→別ページではクッキーを表示 でいいんじゃね?
981 :
nobodyさん :05/03/12 15:11:27 ID:GBkAM6nF
>>980 掲示板の要領でイイってことでしょうか?
ありがとうございました!!頑張ってきます!!
982 :
nobodyさん :05/03/12 16:36:42 ID:R/wCqhRc
Windowsのみの環境でActivedirectory上に登録された ユーザーとパスでログインを行ないたいのですが可能でしょうか。 LDAP関数でのアクセスまでは出来たんですが、これもちと筋違いな気がします。 ご教示ねがいますです
983 :
nobodyさん :05/03/12 20:15:27 ID:q5Oa04yf
Linux上のPHPから別のsmtpサーバを使ってメールを送りたいのですが どこで設定すればよろしいのでしょうか? PHP.iniのSMTPとかはwindows onlyとか書いてるし見あたらなくて・・
なんかどっかのスレで同じような質問を見た気が
>>983 ソケット関数で相手と話す。
984の言うとおり、どっかで出てたな。
>>982 なんで筋違いなの?
ActiveDirectoryもディレクトリーサービスのひとつでしょ?
987 :
982 :05/03/13 02:53:57 ID:j4nN0SnV
>>986 ツリーは検索できるんですが、同じパスワードで認証しようとすると行き詰まります。
samba + OpenLDAPで同期させるというLinux前堤の話をたぐるか、
IIS+IEの環境に限定させてWindows統合認証にたよるという方法しかなさげです。
ApacheかPHP側で解決できれば、、、というところなんですがいかがでしょう。
include_path のセパレータは PATH_SEPARATOR にはいってるけど、 ディレクトリの区切り文字(/ or \)ってどこにいるの?
>>988 例えばbasename()の場合、
(c = strrchr(s, '/')) || ((c = strrchr(s, '\\') てな感じで / \ ともに検出している
990 :
988 :05/03/13 09:44:44 ID:???
>>989 そなんだ…。
外部ライブラリのディレクトリを include_path にセットする処理を考えてて、
同じのが登録されるのは避けたい。(c:\lib と c:/lib)
だから、一回パスのリストを作って、それの \ と / をそろえて array_unique
してから、PATH_SEPARATOR 使って implode してからセット。
そのときどっちにそろえるか悩んでたんです。ありがとでした
ん?DIRECTORY_SAPARATORとかそういう話ではなくて? ただし、たまになぜか定義されていない環境があるので if (strstr(PHP_OS, "WIN")) { if (!defined("DIRECTORY_SEPARATOR") define("DIRECTORY_SEPARATOR", "\\"); if (!defined("PATH_SEPARATOR") define("PATH_SEPARATOR", ";"); } else { if (!defined("DIRECTORY_SEPARATOR")) define("DIRECTORY_SEPARATOR", "/"); if (!defined("PATH_SEPARATOR")) define("PATH_SEPARATOR", ":"); }
992 :
988 :05/03/13 10:05:22 ID:???
>>991 include_path にセットするから、\ or / って重要なのかなぁと思って…
DIRECTORY_SAPARATOR にいるなら、そっちにそろえよっと
定義されてないときのことも考慮に入れます。
$abc =& $_SESSION['array']['array']; while(array_shift($abc)){ } としても$_SESSION['array']['array']以下の配列は消えないのですね ちょっと不思議だった
994 :
993 :05/03/13 10:25:20 ID:???
自己レス obj変数と見間違ってた(,_,; 問題ありませんでした
埋め
埋め
埋め
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。