【PHP】くだらねぇ質問はここに書き込みやがれpart5
1 :
nobodyさん :
2005/04/30(土) 00:12:53 ID:OJfc9xBu
2channel
3様
4ピル
$link = explode… でいいじゃねえか
GW釣り来た〜
10 :
8 :2005/04/30(土) 08:59:48 ID:???
>>9 私のことですか?
大真面目なつもりなのですが、どこがおかしいのでしょうか。
>>8 PHPでちゃんとJavaScript吐いてるか?
よく、ページにアクセスすると、現在同じページを見てる人間が○人とか 出てきますが、これはどういった仕組みなのでしょうか?
コード解析しる
>>14 運用されているサイトで見たのですが、ソースコード配布までしてるところが無かったので、
質問させて頂きました。
できれば、お勧めのものを教えていただきたいのですが。
質問です。 いろいろやってみたのですが さっぱりわからないので 休みが終わる前に教えてください。
17 :
nobodyさん :2005/04/30(土) 14:39:59 ID:/qIyEef7
AN HTTPDの質問はこちらでいいですか?
>>13 説明するのが面倒なので、「今何人 cgi」でググってスクリプトを見つけてください。
PHPで書かれてなくても ロジックを追う事は難しくないと思われます。
>>17 PHPの質問にしてください。
19 :
nobodyさん :2005/04/30(土) 14:54:02 ID:/qIyEef7
>>18 検索しても引っかからなかったので
よかったら誘導お願いします。
21 :
nobodyさん :2005/04/30(土) 15:09:57 ID:/qIyEef7
>>20 本家は検索済みなので、2ちゃんで専用スレか、
該当スレがあればと思ったのですが、ないのでしょうか・・・
アプロダとかで偶にある、DL制限ってどうやってやるの? 例えば何かZIPファイル落としてる最中に、 違うファイルを落とそうとしたら、ダメだよってやつ。
こんにちは、phpのサンプルも表示できない状態なのですが、
どなたかアドバイスお願いします
PHPの教本を買って、APACHE2、PHPとインストールを終え
両方ともhttp//localhost/phpdev/index.thm
http://localhost/phpinfo.phpの テスト画面で”問題なく作動しているとの表示”がでました
その後、教本のサンプルのphpファイルをブラウザに表示させよう
とすると文字化け表示、または何も表示されない真っ白なページ
になります
以前は文字化けするようなことはなかったのですが、
問題は受け取り側の
PHP側のページにジャンプすると送信側で記入した情報は掲載
されるのですが、一行の文字の羅列として表示されます
その後、インストールも問題があったのかと、何度もphpとapache
をアンインストール、インストールしたあと、以前の一行の文字
の羅列として表示されていた送信側の情報も、文字化けで読めなく
なる状態になります
どなたかご指導よろしくお願いします
>>23 まず、受け取り側で送信した情報が1行の文字の羅列と表示されるというが、
これは、受け取り側のプログラムがどういった処理をしてるかによる。
そして、文字化けの問題も、鯖の設定などによる。
鯖の設定、ソースコードをどの文字コードで書いたか、
さらには、HTMLとしてブラウザに出力するときの文字コードは何か。
PHPとか以前に、HTMLやWebサーバがどういった仕組みになってるのか、
根本的な事がわかってないと思われる。
>>23 文字化けつーかブラウザの文字認識のタイミングは次の3つ。
1. webサーバが返すhttpヘッダ content-type: charset
2. htmlのmeta charset
3. html自体を読み込んで自動判別
それぞれの確認方法
1. httpヘッダ
httpヘッダを見るツールを使う -> ieHTTPHeaders proxomitron
telnetでポート80
2. htmlのmeta charset
見りゃ分かる
3. html自体を判別
保存時に文字コードの指定できるエディタを使えばよい。つーか使え
26 :
nobodyさん :2005/04/30(土) 17:10:15 ID:wFBRT4U/
$i = 'あいうえおかきくけこ'; $iから始めの10バイトだけ読み込むにはどんな関数をつかえばいいでしょう? fgets,freadではできませんでした
substr($i, 0, 10)
28 :
26 :2005/04/30(土) 17:51:46 ID:???
>>27 やっと先に進めます。
ありがとうございます。
フォームから入力された文字列が数字でない場合には false を返す、というのはどうすれば実現できるのでしょうか? よろしくお願いします。
preg_match("/^[0-9]+$/", $form)
is_numericじゃダメ?
おおそんな関数あったのかorz
33 :
nobodyさん :2005/04/30(土) 19:56:37 ID:gv0wwcUA
何とか以下ソースで日付を出すことができましたがどうがんばっても 曜日を日本語にする方法と日曜日を赤にする方法が分かりません。 どなたか分かる方ご指導願います。 <?php $ts = mktime(0, 0, 0, $mm, $i, $yyyy); $y = date("Y/m/d/", $ts); $w = date("D", $ts); $ymdstr = strftime("%Y年%m月%d日(%a)", $ts); ?> <td><?= $y ?><?= $D ?></td>
>>33 マニュアルのdate()の説明に、
> 他の言語で日付をフォーマットするためには、 setlocale() および strftime() 関数を使用する必要があります。
とある。
他にも、曜日の数字 date('w',$ts) を取得して自力で日本語や色付けする方法もあるべ
>>31 数字ってのがあいまいだけどこの場合はたぶんダメだと思うぞ
サーバーサイドプログラム(CGI、PHP等)でできることを できるだけお教えください。 自分はクリエーター業ですが、クライアントからっどのような 案件があったときに使用するのでしょうか?
>>36 案件として考えられる事を全て挙げてくれ。
○(できる)×(できない)△(条件付きでできる)で答える。
38 :
nobodyさん :2005/04/30(土) 21:28:23 ID:gv0wwcUA
<ul>     <li>A</li>     <li>B</li>     <li>C</li>      〜〜〜     <li>Z</li> </ul> というようにA〜Zまで全部出力したいのですが、どうやれば効率よくできるでしょうか? HTML全部手書きってのはどうも恥ずかしい…。
ループ処理
<ul> <?php for($s='A';$s<>'AA';$s++) echo "\t<li>$s</li>\n"; ?> </ul>
>>41 なんか、そのfor文の条件、ダサ過ぎだなw
。サーバーサイドによるWEB開発で 一体なにが作れるのでしょうか?サーバーサイドがのっている本を みても、練習として文字を書いていましたが、文字はHTMLで書けば いいのではないのでしょうか?違いを具体的に お教えください。
>>38 $wdays = array("日", "月", "火", "水", "木", "金", "土");
echo $wdays[date("w")];
色はご自分で
>>40-41 ありがとうございます。とりあえずできました。
>>45 そっちも勉強してみます。
PEARすらやった事ない初心者です…。
>>41 加算演算子って文字にも使えたのか・・・初めて知ったorz
マニュアルちゃんと読まないと駄目だね。
1<>Demon 2<>Ace 3<>Luke 4<>Xenon 5<>Raiden こういうデータがあるとして 2<>Ace 1<>Demon 3<>Luke 5<>Raiden 4<>Xenon このように並び替えるにはどうすればいいのでしょうか? バブルソートってのを調べてみたのですがちょっと違うみたいですね…。
まだPHPに自信の無い俺が答えてみますよ。
>>49 <>の右側を配列のキーに入れてksort()。
でどうでしょう?
ksortとは盲点でした!ありがとうございます!
1<>Sage 2<>Sage 3<>Sage 4<>Sage 5<>Sage
53 :
nobodyさん :2005/05/01(日) 08:18:04 ID:qz5EMJ99
このファイルがでかくて消したいんですが、javaの何につかってるんですか? C:\Program Files\Java\j2re1.4.2_02\lib\rt.jar 消しても大丈夫ですか?
>>53 問題無いよ。
そのファイルが無くてもOSが動かないとかそういった事は無いから。
<b>H</b>yper<b>T</b>ext<b>M</b>arkup<b>L</b>anguage 上の文字列から<b>〜</b>で囲まれた部分だけを探したい(上の文字列から HTML だけを取り出したい)のですが、方法が全く思いつかず・・・。 どうすればいいでしょうか。ご教授ください。
正規表現
$nukidasita = preg_replace("/<b>(moji)</b>/","\\1",$mojiretu);
phpマニュアル更新が滞ってると思ったら php5になってなんか新しい方式に変えたらしいね けどスキン対応とかぶっちゃけ要らんからw
送信ボタンを押すと特定の情報が次のページに渡され確認表示、 また別のページに飛んでそこから送信ボタンを押すと情報(最初の情報とname値が同じ)が 確認表示のページに渡され、最初の情報と2つ目の情報がともに確認画面に表示される。 そして確認画面の内容が正しければ送信ボタンを押して蓄積されたデータを送れるようなページを作成しています。 同じname値($book)を蓄積させるため下記のような記述を用いているのですが、 蓄積される情報の間を「,」でうまく区切る方法がわかりません。 確認画面からデータを送る際、どうしても「,」で区切らなければならないのですが、 どのようにしたら「,」で区切ることができるでしょうか。 ------------------------------- $book2 = $book; $book3 .= $book2; echo "<FORM ACTION='****.html' METHOD=POST>\n"; echo "<INPUT TYPE=HIDDEN NAME=books VALUE='$book3'>\n"; ------------------------------- ↑ここの$book3の情報を「****,****,****」という形にしたいのです。 -------------------------------
60 :
nobodyさん :2005/05/01(日) 22:50:58 ID:??? BE:308634899-
配列に入れてimplode()じゃだめなの?
>>59 ショッピングバスケットのようなものを作っているのかと予想してみる。
だとすると・・・・そのやり方、なんか違うと思うぞ。
まぁ、どうしてもってなんら、
$book3 .= ',' . $book2;
か
$book3 .= ",{$book2}";
だな
でも、きっと根本的に何かが違っていると思うぞ。
62 :
nobodyさん :2005/05/02(月) 10:38:28 ID:zPNJQI1N
PHPで Singletonの基底クラスを作ることは出来ないのでしょうか? 基底クラスから子クラスのクラス名が分かれば出来るのですが…
rmdirでディレクトリの中にファイルがあっても削除出来る方法はないのでしょうか?
>>63 (PHPの)rmdirはOSのrmdir(関数というよりOSのapiやシステムコール)を呼び出す。
こいつらには、空のディレクトリを消す機能しかない。
従って phpのrmdirでは「空のディレクトリを消す」機能しかないという事になる。
ディレクトリ関数+ファイルシステム関数を使ってファイルの存在チェック及び削除をしてから、
ディレクトリrmdirを使うしかないやね。
(system()系の関数を使ってOSのコマンドを使うつー手もあるが。)
65 :
nobodyさん :2005/05/02(月) 14:16:07 ID:v4+ywBHr
スレ違いだったらすみません。 ブログツール(php)を自前の鯖にインストールするのはいいんですが、 やめたい時ってアンインストールする必要あるんですか? ただファイルを消すだけでOKですか?
インストールってのがスクリプトを置くだけだったら消すだけでいいと思うけど データベースとか使ってるブログだったらデータベースもきちんと消そう
67 :
nobodyさん :2005/05/02(月) 23:26:25 ID:LLdi1lXW
index.php tempディレクトリ という構成で、index.phpからsessionファイルをtemp内に保存するように設定したいですが、 ローカルではちゃんと動くもののレンサバ上でうまくいきません。 session_save_path("temp"); session_start(); $_SESSION["hoge"] = "foo"; var_dump($_SESSION["hoge"]); とするとちゃんとfooが出力され、session_startの返り値を見てもtrueとなっているので セッション機能自体はうまく動いているようなのですが、tempディレクトリ内を確認しても tempファイルが作成されません。 ini_get()するとsession_save_path()で指定したディレクトリになったいるのに php.iniで設定されたパス上に保存されているようです。 何が原因と考えられるでしょうか?
ヒント:tempファイルのパーミッション
bool session_start ( void ) 〜(略)〜 この関数は常に TRUE を返します。 -> 読んでの通り。 セッション変数: $_SESSION 〜(略)〜 これは'スーパーグローバル'又は自動グローバルな変数です。 -> セッションの利用可・不可に関係なくvar_dumpできる。
ヒント: $dh=opendir("temp"); while(($file=readdir($dh))!==false) print "$file<br>";
> tempディレクトリ内を確認しても ヒント:確認できていなかった。
72 :
67 :2005/05/03(火) 02:45:34 ID:???
>>68-71 ありがとうございます。
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
としてみたら、どうやらセッション使えてなかったみたいですorz
sessionの使用がenabledなのになんで駄目なんだろ・・・。
WindowsXP SP2にApache2.0.54とPHP4.3.11をインストールしてうまく可動して いるのですがGDを使うソフトがありまして困っています。 GDなるものどこで手にいれてインストールしたらいいのか教えてださい。
初めから入ってるよ php.iniの extension=php_gd2.dll コメントアウトを削除で対応
質問お願いします。 include_path = ".;C:\php\pear" と指定して include("DB.php"); を実行すると、『ページを表示できません』となります。 C:\php\pear\DB.phpは存在します。 include("C:\php\pear\DB.phpp"); を実行すると、ちゃんと読み込みます。 include_pathにC:\php\pearを指定しているのに フルパスじゃないと読み込めないのが謎です。 どなたか原因わかりませんか? 環境 WindowsXP Apache2.0 PHP4と5で確認 よろしくお願いします。
>>74 ありがとうございました。
おかげで使えるようになりました。
>>75 読み込めないときは
Failed opening 'DB.php' for inclusion (include_path='.;c:\php\PEAR')
こんなエラーじゃないのかな
78 :
75 :2005/05/03(火) 08:17:58 ID:???
PHP+MySQLでショッピングカートを作るときに、みなさんが読んだ 参考になるようなよい書籍を教えてください。
PHPに限った話ではないのですが データベースに書き込むとき書き込むデータの長さがカラム長を超えてしまうと エラーになるので書き込み前にチェックしたいんですが、比較するカラム長は ・固定的に定義しておく(defineなどで) ・都度、取得する(mysqlならmysql_field_lenなどで) のどちらがいいんでしょう? データベースの定義が変更になった時のことを考えると都度、取得したほうが いいんでしょうが、なんかとても無駄なことをしているような気がして みなさんはどうされてます?
>>81 毎回のチェックは間違いなく無駄
データーはエラーではなくて切り捨てられるはず
うわぁぁ、すみません、すみません
>>82 さんの仰るとおりカラム長を超えたデータを書き込んでもエラーにはならず
切り捨てられました
テストしたときのデータがめちゃくちゃ長いデータだったのでコネクションが
切断されてたみたいです
mysqlのnet_buffer_lengthあたりの制限に引っかかたのかも…
スレ汚しすみませんでした
ココ↓のパスワード制限を使ってサイトにメンバー専用のページのbbsを設けたのですが、
ttp://php.s3.to/simple/ 他のページにもパスワード制限をかけたいと思いました。
この場合それぞれのページにいちいち制限をかけるのは入る人が面倒ですよね。
そこでたとえばメンバー専用のトップページを作って、そのトップページにパスワードを使って入れば、
そこに置かれているbbsなどは自由に入れるようにするにはどうしたらいいでしょうか?
サーバーのコントロールパネルのページとかでこういう方式になっていたりしますので、同じようにしたいのですが…
85 :
nobodyさん :2005/05/03(火) 16:14:42 ID:rT+xDv11
テキストフォームを10個ほど作り、値を入力します。 そして送信ボタンを押したときに すべてのフォームに値が記入されていればAを出力 どこか一つでも値が無ければBを出力 ということをするにはどうしたらよいでしょうか?
87 :
85 :2005/05/03(火) 16:48:00 ID:???
だいぶ幼稚なプログラムですが $row = 1; $column = 1; for($i = $_GET["det_size"];$i>0;$i--){ for ($j = $_GET["det_size"];$j>0;$j--){ $value = 'col'.$column.'row'.$row.''; $text .= '<input name="col'.$column.'row'.$row.'" type="text" size="4" maxlength="4" value = "'.$_GET[$value].'"> '; $row = $row + 1; } $text .= '<br>'; $row = 1; $column = $column + 1; } $text .='<input type="submit" name="submit" value="Submit"> <input type="reset" value="reset"></form>'; ここまででテキストフォームを作ります。 この前にdet_sizeを入力してもらってdet_size×det_sizeのフォームを作ります。
88 :
85 :2005/05/03(火) 16:48:48 ID:???
続き $row = 1; $column = 1; //$value = 'col'.$column.'row'.$row.''; $dis_result='<div class="result">Result<br>'; while($column <= $_GET["det_size"]){ $value = 'col'.$column.'row'.$row.''; $dis_result .= ' '.$_GET[$value].' '; $row++; if ($row > $_GET["det_size"]){ $column++; $row = 1; $dis_result .='<br>'; } } $dis_result .='</div>'; $text .= $dis_result; フォーム内の値をdivで作ったボックスのなかに表示させます。 フォームが空欄でもResultのボックスが空のまま表示されてしまうので もしフォームの値が一個でも空白ならエラーを返したいと思っています。
89 :
85 :2005/05/03(火) 17:22:11 ID:???
自己解決しました。スレ汚し失礼しました。
90 :
nobodyさん :2005/05/03(火) 17:44:16 ID:/WYzL+U+
Cで言うatoi()はありますか? "05"などという文字列を5という数値に変換したいのです。
91 :
85 :2005/05/03(火) 17:46:29 ID:???
92 :
85(本物) :2005/05/03(火) 18:02:48 ID:???
93 :
85 :2005/05/03(火) 18:20:32 ID:???
このスレダメポ
すみません、ホントに申し訳ありませんが、どなたか
>>90 お願いします。
>>90 暗黙の型変換が行われるから、わざわざ自前でやる必要はないと思うけど。
あえてやるならintval
$a="05";
$b=$a + 100;
$c=intval($a) + 100;
echo $b;
echo "<BR>";
echo $c;
96 :
90 :2005/05/03(火) 18:50:07 ID:???
マルチさんお疲れさん
99 :
nobodyさん :2005/05/03(火) 22:03:24 ID:XdSRtjaM
>>97 こんなんすぐ作れるぞ!
$_SERVER変数とか使え。
101 :
nobodyさん :2005/05/04(水) 01:43:31 ID:4XtCwxJF
ひとつのページに include(1) include(2) とやった場合 (1)で定義した定数は(2)には反映されないの?
102 :
101 :2005/05/04(水) 01:49:41 ID:???
すいませんやってみたらわかりました
103 :
nobodyさん :2005/05/04(水) 01:50:54 ID:4XtCwxJF
104 :
軟式PHP :2005/05/04(水) 03:25:40 ID:???
やれってことじゃないのか?
PEARのDB.phpを使って、SELECTしたデータをHTMLのテーブルで表示させているのですが 質問させて下さい。 SELECTして取得するフィールドは不特定の場合、 結果からどうやって取得したフィールド名を取得するのでしょうか? 今までは、DB::connectで接続したあと、queryにてSQLを発行し、 fetchRowにてループにて全レコードを出力する時に、 最初の1レコード目の時にフィールド名を出力していましたが、 この方法だと抽出したレコードが0件の場合、何も表示されません。 取得したdb_resultオブジェクトの内容をprint_rにて除いてみたのですが、 そういった情報は無いようでした。
106 :
nobodyさん :2005/05/04(水) 13:47:22 ID:CUAtPswU BE:452563799-
2chのCGIのソース キボン... read.cgi & bbs.cgi よろしく。 【参考】 ・厨房により、連続更新が多発!read.cgiが呼ばれる回数はbbs.cgiの百倍!
107 :
84 :2005/05/04(水) 14:02:33 ID:CEPwDzrn
109 :
105 :2005/05/04(水) 15:16:32 ID:???
>>108 ありがとうございます。
解決いたしました。
tableinfo()自体知りませんでした。
110 :
107 :2005/05/04(水) 15:45:24 ID:CEPwDzrn
111 :
nobodyさん :2005/05/04(水) 21:31:13 ID:tDb8HgqQ
みなさんSQLiteって使ってるんすか ごく小規模のメール配信とかサイトにDB使いたくて。 こんなモノがあるとは知らずPostgreのつもりだったんですが 存在を知って以来気になってます。 どのくらいまで使えるモノなんでしょう?
>>111 PHP4とMySQL4の組み合わせが最強
俺は、PostgreSQL使える環境にあるならPostgreSQLを奨めるけどね。 どんな利用方法しても、ライセンスが絡む事は無いし、 MySQLで出来ること以上の事がPostgreSQLは出来る。 確かに速度はMySQLだが、その辺はたいした問題じゃない。
WindowsやMacintoshならMySQLかSQLiteかAccess UNIXやLinuxならPgSQLかMySQL 本格的にやるならOracle
115 :
軟式PHP :2005/05/05(木) 02:29:14 ID:???
最初はOracleじゃなくてPostgreSQLやMySQLでいいんでないかい。
その前にPHPではなくJavaを使う罠。
117 :
nobodyさん :2005/05/05(木) 06:57:41 ID:j3QMEyoA
<? php echo"$total"; for($i=1;$i<=100;$i++){$total+=$i;} ? > $totalをfor〜より前で表示させたいんですけど、 どうすればよいでしょうか?
もう一度参考書なりマニュアルなりを読み直した方が・・・
119 :
nobodyさん :2005/05/05(木) 07:52:10 ID:2TWoJUS+
$words = abcd; $count = strlen($words); $num = 0; while ($num <= $count){ preg_match("/^.{0,$num}?(.).*/", $words , $spel); echo "$num | $spel[$num] <br>\n"; $num++; } 上記のようにwhileを使って、$wordの全部を一文字ずつ配列に入れたいのですが、 最初の一文字しか配列に入りません。 実行すると、 0 | abcd 1 | a 2 | 3 | 4 | となって、途中から配列に入らないのですが、どうしたら良いのでしょうか。
>>119 while ($num < $count){ // 4文字なので 0〜4でいいはず
preg_match("/^(.{0,$num})?(.).*/", $words , $spel); // $spelに入るのは括弧付きのサブパターン
echo "$num | $spel[2] <br>\n"; // $spel[0] : 全体, $spel[1] : 1つ目のサブパターン $spel[2] : 2つ目
}
アルファベットだけなら、whileループの中で echo $words[$num]."<br>"; だけでいい希ガス
121 :
119 :2005/05/05(木) 08:33:10 ID:???
自己解決しました。 文字列を配列として参照することで、一文字ずつ取り出せるのですねーー知りませんでした。
122 :
120 :2005/05/05(木) 08:33:55 ID:???
訂正 × // 4文字なので 0〜4でいいはず ○ // 4文字なので 0〜3でいいはず
123 :
119 :2005/05/05(木) 08:36:19 ID:???
>>120 僅差でw
ありがとうございました!もっと勉強してみます
$str = "abcdef"; $num = 1; while ($num <= strlen($str)){ $spel[] = substr($str, 0, $num); }
一文字ずつって a,b,c...って取りたかったのか。 マニュアルのpreg_replaceの項に まったく同じことするサンプルがあるぞ
126 :
119 :2005/05/05(木) 09:46:57 ID:???
>>125 わかりました。もう一度チェックしてみます
疑問になったので質問です。 クラス内の変数をさまざまな表現で表示したい時は 「表示させる関数を用意する」と 「表示させるクラスを用意する」、どちらが一般的なのでしょうか。 もし使い分ける、などならメリットとデメリットも教えて頂きたいです。 PHPもオブジェクト指向も初心者なので的外れな質問だったらごめんなさい。 なお環境はPHP4.3.10 AN http WindowsXPです。 */ //クラス内に表示させる関数を用意する----------------- $text = new Text; echo $text->i(); class Text{ var $a="AAA"; function i(){ return "<i>{$this->a}</i><br>"; } } exit; //クラス外に表示させるクラスを用意する----------------- $text = new Text; $html = new Html; echo $html->i(); class Text{ var $a="AAA"; } class Html{ function i(){ global $text; return "<i>{$text->a}</i><br>"; } }
下のは気持ち悪すぎる
具体的に何をしたいのか分からないけど、 とりあえず、そのサンプルに上げてるようなことしたいなら、 普通にHTMLのタグくっつけて書いた方が楽じゃないか? 融通も利くし。
global $text; なのがキモイんだと思われ
>128 俺ならクラス内にメソッドを追加する。つまり前者。 後者でやるとしたら function i($text){ return "<i>$text</i><br>"; } とする。こっちの方法も割と良く見かける。
>>129-132 なるほど・・・。何かをするクラスをひとつにまとめたらわかりやすいかな〜?
とか思ったのですが、
「何かをする->データ」より「データ->何かをする」が普通なんですね。
キモイとか言われましたが・・w どうもありがとうございます。
>>127 通常のApache2の設定であれば、スレッドじゃなくて
プロセスで動くから無効でも大丈夫。
HTMLのある部分にデータを書き込む・・・ということを実行するには、どうすればいいでしょうか。 (具体的には、日記スクリプトを作ろうとしています。)
>>135 htmlを読み込んで、処理を加えて、htmlとして保存する。
某所でアプロダを運営してるのですが、知恵をお貸し下さい。 DL数を制限するにはどういった仕組みなのでしょうか? 例えば制限数を10にした場合、同時にDLできる人数が10人にしたいのです。 また、1人の人間が異なったファイルをDLできないようにするにはどうすればいいのでしょうか?
言ってることがよく分からない
139 :
nobodyさん :2005/05/07(土) 02:07:16 ID:t8LZi6/K
スレ違っていたらすみません。 現在、PHPでツリー式掲示板を作っていて、そのログの保存形式で悩んでいます。 以前に作った掲示板では、ログの保存形式を 記事No<>親記事No<>タイトル<>内容<>投稿時刻 のようにしていたのですが、あたりまえですがログが増えてくると処理が遅くなってしまいました。 ルート直下の記事(親記事Noが0の記事)のみを抽出するという処理にもかなりの時間がかかってしまいます。 ほかの掲示板を調べてみると、ログを、ツリー構造を保存したファイルと記事の内容を保存したファイルの2つに分けているものもありましたがあまりしっくりとは感じませんでした。 もし、アルゴリズム的に処理のしやすい(速い)ものがあれば、教えていただきたいのですが…。よろしくお願いします。
>>139 HTMLで表示させるようにしたらどうだろう
毎回ログファイルを読み込む手間がはぶけるし、投稿したときにのみ多少の負荷がかかるくらいだし。
DB使えや
> ルート直下の記事(親記事Noが0の記事)のみを抽出するという処理にもかなりの時間がかかってしまいます。 もしかして、ログファイルの内容全てを、一気に読み込んで、 そこから取得→表示ってやってる?
143 :
nobodyさん :2005/05/07(土) 06:17:15 ID:XxbRXpor
ユーザーの登録処理の部分を作ってるところなのですが、PHPがおかしな挙動をし始めた。(PHP5.02) フォームから入力してもらったメールアドレスを、正規表現を使ってチェックするところで変になる。 1.アドレス(〜@〜)だと認識するとオカシクなる 2.アドレスじゃなくて、aaaa だとセーフ 3.アドレスじゃなくても、unko だとオカシクなる 4.同じ文字でも、おかしくなることがある 5.rrr はセーフで、kkk はアウト 7.1234はセーフで、0123だとアウト 6.全く別のテストページでは、アドレスチェックは出来てる アウトの時は、処理を中断してif構文の中から抜けている感じ。 もしくはページを読み込みなおしてるみたい。 一体なんですかね?
エスパーきぼんぬですか?
145 :
143 :2005/05/07(土) 06:43:19 ID:???
フォームから入力させる ↓ 入力文字がアドレス(xxx@xx)か否かをチェック ・ここで分岐 A:アドレス / B:アドレスじゃない Aだとおかしくなって、Bでも条件によっておかしくなる Bでおかしい時にも、挙動はAとおなじようになる わけわからん。でも、エスパーだったら分かるのかな?
その条件文晒した方が早いんでない?
147 :
143 :2005/05/07(土) 07:12:54 ID:???
if (preg_match("/^[A-Za-z0-9_\.\-]*@[A-Za-z0-9_\.\-]*\.[A-Za-z0-9_\.\-]+$/", $adad)){ echo "入力されたメールアドレス 「" . $adad . "」<br>\n"; } else { echo "入力されたメールアドレス 「" . $adad . "」<br>\n"; echo "正しいメールアドレスではありません。"; } 問題はここじゃないっぽい・・・もう一度全部見直してみます でも、aaaだとセーフでabcがアウトってありえないよ。
148 :
nobodyさん :2005/05/07(土) 08:08:54 ID:zpgwMbY/
149 :
nobodyさん :2005/05/07(土) 08:25:34 ID:kMJPLXnh
150 :
137 :2005/05/07(土) 08:52:25 ID:???
>>138 上手く説明できずに申し訳ありません。
あるアプロダですと、ファイルをダウンロードしようとすと、
最大接続数な為にダウンロードできませんといったメッセージが表示されます。
また、別なアプロダですと、そのアプロダにアップされているファイルを
ダウンロード中に他のファイルをダウンロードしようとすると、
他のファイルをダウンロードしてるときにはダメだよと言ったメッセージが表示されます。
この事から、誰がどのファイルをダウンロードしてるかを
リアルタイムで判別してると思うのですが、
この情報の取得方法がわからないのです。
151 :
nobodyさん :2005/05/07(土) 08:57:20 ID:mG8uUfDQ
152 :
nobodyさん :2005/05/07(土) 09:07:55 ID:CaH8/CoZ
実はPHP・MYSQL可能という事であるサーバーを借りました。で PHPMyAdmin の アドレス ID パスワード 及び MySQLの パスワード のみ 送られて来ました。 MySQLは同サーバー(localhost)にインストールされているようなので $sv = "localhost"; $dbname = "root"; $user = "root"; $pass = "送られてきたパス"; と記入しWEBサーバーに置きましたがSQLに全く接続できません。 PHPは使えるのを確認しました。 サーバー会社の担当者に聞いてもCGIですか??? などと聞かれて話になりません。PHPMyAdmin等に 接続情報は書かれているのでしょうか?
>>152 大抵のレン鯖のMySQLは、DB名とかユーザ名は、
その鯖に申し込んだ時のユーザ名と一緒。
>$sv = "localhost";
>$dbname = "root";
>$user = "root";
>$pass = "送られてきたパス";
まず、ユーザ名がrootなんて事は絶対に無い。
$dbnameと$userはお前さんのユーザ名に変更してみろ。
>>150 最大接続数とかはよく見かけるよね。
俗に羊と呼ばれてる所は、ファイル毎に同時接続数カウントしてるみたいだし。
他のファイルDL時にダメって言われるのは俗に1号って呼ばれてるロダかな?
気になってはいたけど、俺の知識じゃダメだ。
>>152 何に書いて置いたんだ?cgiですか?と言う意味で聞かれたんじゃない?
>>152 phpMyAdminには繋いでみたのかい?
全ての情報(pass以外)はそこで確認できるはず。
>>152 >$sv = "localhost";
>$dbname = "root";
>$user = "root";
>$pass = "送られてきたパス";
>と記入しWEBサーバーに置きましたがSQLに全く接続できません。
それだけ書いたって、DBに接続なんかしない、って事は判っているよな?
とりあえず、試したスクリプトをそのまま貼りな。
もちろんdbname、userはもう一回確認してから。
158 :
nobodyさん :2005/05/07(土) 10:04:36 ID:7dsJsB9/
159 :
nobodyさん :2005/05/07(土) 10:39:09 ID:OjAGpk+E
いろいろありがとうございます。152です。 このphpは他のサーバーではsqlに接続できました。 それの >$sv = "localhost"; >$dbname = "root"; >$user = "root"; >$pass = "送られてきたパス"; の部分を書き換えて試しています。 153さんの言われる >大抵のレン鯖のMySQLは、DB名とかユーザ名は、 >その鯖に申し込んだ時のユーザ名と一緒。 も試しました。
160 :
nobodyさん :2005/05/07(土) 10:47:18 ID:+RaGUvoB
先輩方、よければ教えてください。 本とか読んで調べまくってるんですが完全に止まりんぐです。 普通の掲示板のように、 フォームで内容を入力 → 区切り文字「<>」で各変数をログに格納 という感じでやっています。 ログの中身は 記事番号<>投稿者名<>タイトル<>内容 という形式です。記事番号は自動で付いてます。 ここまで出来ました。 この順次溜まっていくログをですね、例えばbbs.php?mode=記事番号 のように打つと 1つの記事だけ単体で表示されるようにしたいのです。 (この形式じゃなくても、単体で1件表示できるようになればOK) もしよければ、ヒントだけでもおながいします… orz
送られてきた記事番号と、ログの記事番号を比べて、同じであれば それを表示。 それ以外の方法をお望み? それともサンプルとか? いまいち何が知りたいのかわかんない if($_GET['mode']){ $fh=fopen($log, 'r'); while(!feof($fh)){ $line=explode('<>', fgets($fh)); if($line[0]==$_GET['mode']){ print_r($line); break;}} fclose($fh); }
163 :
nobodyさん :2005/05/07(土) 11:37:46 ID:9P63H0Em
>>137 PHPでは無理。
Apacheにmod_limitipconnを仕込むとよし。
ただし少しだけ負荷があがる。
165 :
nobodyさん :2005/05/07(土) 11:47:00 ID:+RaGUvoB
>>161 様
>>162 様
ありがとうざいます !
>>162 さんの通りやってみましたら、やりたかった事が出来ました…
ものすごく助かりました&勉強になりました。ありがとうございます。
166 :
nobodyさん :2005/05/07(土) 11:50:39 ID:L09Tc4GF
>>150 それを読んでさらに追加。
うpされたファイルのアドレスが単純にファイルのアドレスじゃなくて、
「xxxxx.php?file=zzzz.jpg」みたいにPHPスクリプトを呼び出してないか?
だとすれば、そのスクリプト内でipアドレスとかを一時ファイルに保存して、
集計している可能性がある。
168 :
137 :2005/05/07(土) 12:40:54 ID:???
>>164 調べてみます。
>>167 そういった呼び出し方法をしてるアプロダもありました。
ただ、IPアドレスを一時的に保存してというのは考えついたのですが、
大容量のZIPなどをDLしたとき、途中でキャンセルすれば、
別のファイルがDLできました。
DL時にIPアドレスの情報を取得できますが、
キャンセル時にその情報は取得できないと思いますので、
リアルタイムに接続状況を把握しているのだと判断しました。
169 :
nobodyさん :2005/05/07(土) 13:08:51 ID:WaKZc4H9
<?php mb_internal_encoding("EUC-JP"); mb_regex_encoding( "EUC-JP" ); $buf = '今日は良い天気ですね'; $replace_buf = mb_ereg_replace("^[ァ-ヶー\s]*$","@","$buf"); echo $replace_buf; ?> 漢字以外の部分(平仮名、カタカナ)を"@"に置き換えしたいと思いますが 上記ソースを実行したら「今日は良い天気ですね」とそのまま表示されてしまいました。 どのようにすれば漢字以外の部分を置き換えできますでしょうか? ソースはEUCで書いてます。 環境は下記の通りです。 PHP Version 4.3.10 configure(一部抜粋しました) --enable-mbstring --enable-mbregex --enable-mbstr-enc-trans
>>168 昔似たようなものを実装するときに面倒だったのでダウンロードだけポートを変えて
netstatの結果を使った事ある。もっと便利な方法ありそうだけど。
>>169 $replace_buf = mb_ereg_replace("[ぁ-んァ-ヶ]","@","$buf");
これに差し替えてみてはどうか?
実行されているページのURLを取得するにはどうすればよろしいでしょう? (パラメータは不要) SERVER_PROTOCOL、SERVER_NAME、PATH_INFO、SCRIPT_NAMEを 組み合わせるしかないでしょうか?
>>171 $_SERVER["SCRIPT_URI"]
パラメータが必要ないのであれば
?以降を削除するというのはいかがか。
>>172 ありがとうございます。
さっそく試してみましたが、SCRIPT_URIそのものが存在しないみたいです。
(var_dump($_SERVER)で確認しました)
PHPのバージョンorWEBサーバーによるんでしょうか。
PHP5.0.3、IIS5.1です。
>>173 WEBサーバの出力結果が$_SERVERに入るだけだから
IISだと駄目みたいだね。
175 :
nobodyさん :2005/05/07(土) 15:33:27 ID:gZ8Bg1tt
function Http($mess){
return eregi_replace("(https?|ftp|news)(://[[:alnum:]\S\+\$\?\.%,!#~*/:@&=_-]+)","<a href=\"./a.php?PHPSESSID=".$sid."&url=\\1\\2\" target=\"_blank\">\\1\\2</a>",$mess);
}
echo $sid; ←問題なく変数が展開されます
$text = "
http://www.yahoo.co.jp ";
$text2 = Http($text);
echo $text2; ←これだと./a.php?PHPSESSID=&url=
http://www.yahoo.co.jpのように$sidが展開されません 。
どのようにすれば望んでいる結果が得られますでしょうか?よろしくおねがいします。
176 :
169 :2005/05/07(土) 15:52:54 ID:???
>>170 $replace_buf = mb_ereg_replace("[ぁ-んァ-ヶ]","@","$buf");
でうまくできました。
アドバイスありがとうございました。
function Http($mess){ global $sid; return eregi_replace("(https?|ftp|news)(://[[:alnum:]\S\+\$\?\.%,!#~*/:@&=_-]+)","<a href=\"./a.php?PHPSESSID=".$sid."&url=\\1\\2\" target=\"_blank\">\\1\\2</a>",$mess); } とするか define("SID", $sid); function Http($mess){ return eregi_replace("(https?|ftp|news)(://[[:alnum:]\S\+\$\?\.%,!#~*/:@&=_-]+)","<a href=\"./a.php?PHPSESSID=".SID."&url=\\1\\2\" target=\"_blank\">\\1\\2</a>",$mess); } とする
フレームワークについて雑談レベルで・・・ 現在、MojaviとMapleを使用していますが、他にお勧めのものなどありますか?
179 :
nobodyさん :2005/05/07(土) 17:56:35 ID:G/b5sqln
1日一回自動的にPHP処理をさせるにはどうすればいいのでそうか? wgetで一応凌いでるんですがそれだとPHPファイルが毎日保存されていっちゃいますよね? どうすればいいんでしょうか?
wget >> null
cronつかえる環境じゃないなら タスクマネージャー使ってやればいいんじゃないかな
>>179 自前のUNI系鯖はあるが、自動更新させたいPHPがあるのはレン鯖。
だから、自鯖のcronでレン鯖のPHPをwgetでリクエストしている。
と、勝手に解釈してみた。
だったら、
-O > /dev/null
で解決じゃ
clockやwatchを使うのも手じゃねぇ?
最近だとレン鯖でもcron使える所が多いけど、ちゃんと調べたのか?
187 :
nobodyさん :2005/05/07(土) 19:27:57 ID:Cs/14Ugk
Zend Optimizerって使ってる人いますか? Smartyベースにしたら微妙にもっさり感があるので 導入したいと思ってるのですが どんなモンでしょう?
188 :
nobodyさん :2005/05/07(土) 19:49:15 ID:m8iQZGLE
OSXの方(当方Pantherです) php.iniどこにあるか分かりますか /etc/以下のphp.ini.distしか見つからないんですが
189 :
179 :2005/05/07(土) 19:52:55 ID:???
>>180-186 うまくいきました(´∀`)
どうやらwgetについてよく分かっていなかったみたいです・・・。
スレ違いな質問でしたが皆さん本当にありがとうございました。
>>188 設定(ファイル)が無い場合にどう動作するかってのを「デフォルトの設定」って言うんじゃないかなぁ。
それはさておき、phpinfo()でどのphp.iniを見ているか表示されていた希ガス
>>188 sudo cp /etc/php.ini.default /etc/php.ini
sudo apachectl graceful
192 :
nobodyさん :2005/05/07(土) 22:00:11 ID:CaH8/CoZ
153・157です。いろいろありがとうございました。何とか解決?です。 みなさまもびっくりかと思いますがroot権限が使えました。 rootのパスワードはFTPからconfig.inc.phpが見えたのでそれから調べました。 データーベースに接続も出来ました。が他のユーザーの作った残骸?まで見えてしまいました。 月曜日にサーバー管理会社に抗議するつもりです。それとサーバーは変えようと思います。
193 :
nobodyさん :2005/05/07(土) 22:02:38 ID:CaH8/CoZ
↑153・157←まちがい<<152 <<159です。すいません
え、むしろうはうはじゃん? データベース作り放題。使い放題。盗み見し放題。 rootで違う名前のroot権限持つユーザ作ってから、rootの権限を制限。
195 :
nobodyさん :2005/05/07(土) 22:46:18 ID:CaH8/CoZ
>>192 です。
PHPMyAdminもrootでログインできますがこれっておかしいですよね?
ちなみに専用サーバーではなく共有サーバーです。
さらに送られてきたパスワードはなんの関係もありませんでした。
196 :
175 :2005/05/08(日) 00:31:19 ID:???
>>177 どちらでも期待した結果が得られましたありがとうございます。
正直どちらも初めて見る記述で理解できません。
勉強してみます。ありがとうございました。
2chで書き込み時に生成されるIDは、PHPではどうやって生成するのでしょうか。
ぐぐれよ
199 :
197 :2005/05/08(日) 01:16:52 ID:???
Googleで粘ってみましたが、これだ!というサイトが発見できず・・・orz $ip = $_SERVER['REMTOE_ADDR']; $date = date("ymdgis"); crypt($ip,$date); これで代用効いたりしませんでしょうか?
それだと毎回変わる気が… date("ymd)これのほうが良くない?
201 :
200 :2005/05/08(日) 01:25:53 ID:???
変わらなかった…
>>201 ここで説明すると長くなるのでマニュアルのcrypt()を参照。
205 :
204 :2005/05/08(日) 04:45:48 ID:???
嗚呼よく見てなかった。IDか
くだらない質問スマンが getimagesize関数を使うと「Warning: getimagesize: Read error!」がでるのはバグか何かですか? とりあえずちゃんと機能はしてるみたいなんで@つけてエラー表示回避してますが。 というのは、getimagesize: Read error!でぐぐってみると、いたるところのホームページで普通にそのエラーが出てるんです。 サイト管理者も諦めて放置してるのかな?
207 :
206 :2005/05/08(日) 11:26:17 ID:???
208 :
206 :2005/05/08(日) 11:29:19 ID:???
あ、俺リモートファイルなんか使ってないや 連続カキコすまん
>>197 こんなもんでどうだろうか?
2chの板キーみたいなのも使えば板ごとにID固定にもできる
function getID();
$ip = $_SERVER['REMOTE_ADDR'];
$rand = md5(date("Ymd"));
//↑一日一回代わるランダムキー"Ymd"のとこは適当に変えてくれ
return substr(base64_encode(md5($ip.$rand)),0,8);
}
phpのプログラム(Coppermine Photo Gallery)でテンプレートの一部を
外部htmlファイルからincludeしようとしてるのですが、うまくいきません。
theme.phpを編集しています。template.htmlがtemplate.phpにできれば手っ取り早いのですが。
ttp://php.s3.to/man/function.include.htmlを参考にしながら 、
'{HTML_TEST}' => htmltest(), を追加して
function htmltest()
{
global $html_test;
include 'inc/test.inc';
echo "$html_test";
}
と、やってみてもうまくいかず。
inc/test.incには直接htmlを書いてあるのでそのまま取り入れたいのですが、
どうすればできますか。よろしくお願いいたします。
何がうまくいかないの? パースエラー? 500? 何も出力されない?
fputsするとか、CLIでphp foo.php > foo.htmlとかやる以外に、HTMLをファイルに出力する方法何か無いですかね?
配布されているスクリプトの多くは一つのphpファイルにたくさんの機能が入ってますが、 使う側が使いやすい為でしょうか? 例えば掲示板なら閲覧するスクリプト、書き込むスクリプト、管理用のスクリプトなどわかれていたほうが 一つのファイルにアクセスが集中しないし、後から編集するのにも見やすいと思うのですが一つのファイルに 多数の昨日を入れるのにはどのようなメリットがあるのでしょうか?
>>214 掲示板程度だと、1ファイルにまとめても、特に問題無いからじゃない?
といっても、複数ファイルに分けてもソースの可読性やらメンテナンスが楽ってだけで、
使う側のメリットってのは全く無い。
ニュー速VIPがピンチです。みなさんの力で我々を助けてください。
1:
http://tiger513.maido3.com/~bs6000/2ch/ でコードを取得して投票例に上書き
※取得ページにアクセスしてから約10分間待たされます
2: 投票所
http://etc4.2ch.net/vote/ 『第2回2ch全板人気トーナメント』投票スレッド-5xx の埋まっていない中で、一番数字の小さいスレを開く
(書き込めなくなるまで、一番小さい数字のスレを使わないと投票が無効になる!)
3:
[[コード]]
<<ニュー速VIP>>
と入れる
∧_∧
( ´Д` ) VIPに支援おながいします
/ ヽ
し、__X__,ノJ
/´⌒⌒ヽ
l⌒ ⌒l この通りです
⊂ ( ) ⊃
V ̄V
217 :
211 :2005/05/08(日) 20:19:09 ID:???
>>212 {HTML_TEST}の位置を無視してヘッダに強制的に張られる形になってしまいます。
218 :
214 :2005/05/08(日) 20:25:47 ID:???
>>215 レスありがとうございます。
使う側のことを考えて一つのファイルってことなんですかね。
219 :
215 :2005/05/08(日) 21:29:37 ID:???
>>218 ファイルに分けるってのは使う側からすれば関係無いんだよね。
ただ、管理者とか設置する人という意味では関係無い事も無いけど、
設定ファイルだけ別ファイルにしてあったり、1ファイルでも先頭行から設定項目があって、
そこを弄るだけというのが殆ど。
1ファイルになってるというのは、あくまでも掲示板とかの簡易的なものに限って言えば、
開発側も使用者側も、メリット・デメリットってのは殆ど無いに等しい。
単純に1ファイルにしてるだけと割り切って考えるように。
別に複数ファイルに分けてもいいんだよ。
そうすれば、管理者用画面とか使用頻度の少ない部分を読み込むだけの手間が省けるし。
だけど、書いたように、その程度のソース量なんて大した事無いから、殆ど変わらない。
使い手から「パーミッションが」とか「パスが」とかいちゃもんつけられるのを最小限に防ぐため。特にさくら鯖、isweb鯖
レンタルサーバでモジュールを標準で入っていないインストールしたいときは、 やはりサーバを運営している側に要望を出さないとインストールされませんか?
どれをさしてモジュールと言っているかによる。 pear php(pearとか)なら手を加えたりすることで可能。 peclなら難しい。 モジュール版のphpなら つ[出口]
223 :
nobodyさん :2005/05/08(日) 22:25:25 ID:xWdNRJbu
>>222 PHPの書籍スレでおすすめしてもらった本に書いてあったものなのですが、
zlib圧縮関数 イメージ関数 などの拡張モジュールです。
たとえばその2つだけに限らず、そういったモジュールを同じサーバスペースにおいて
includeするとかでは使えないですよね。
拡張モジュールはどれがインストールされているかは、phpinfoで調べることが出来ますか?
>>223 イメージ関数ってGD2だと思うけど、これは大体の鯖で入ってるな。
zlibは鯖によりけり。
こういったモジュールをincludeできるかというと無理。
phpinfo()で調べられるかは可能。
>>224 ご親切に教えてくださってどうもありがとうございました。
phpinfoが禁止されてたりしてなw
227 :
nobodyさん :2005/05/09(月) 15:12:56 ID:f0YFXCF9
オープン元のウィンドウにPOSTで変数を渡す方法ってありますでしょうか?(php4) よろしくおねがいします。
言ってる意味わからん
PHPで画像の直リンクを防ぐ方法はありますでしょうか?
あるよ。
>>229 $_SERVER から、HTTP_REFERERを取ってきて、ごにょごにょする。
$_SESSION 使って、ユーザをコントロールして、ごにょごにょする。
地味に、自前でクッキー発行して、ごにょごにょする。
PHPをよくわかってない初心者ですがお邪魔します。 PHPを使ったwebページを右クリックで保存することはできないんでしょうか? 某新聞サイトの記事を保存したかったのですがエラーになるので・・・ 調べてみてもそれらしい答えが見つけられませんでした。 どうかご指導お願いいたします。
元のソースを保存したいってことか?
ううぉーPHP面白そー っといってみつテスト おれもPHP勉強してみようかな・・・
235 :
232 :2005/05/09(月) 23:02:57 ID:???
インターネットで見つけたページをマイドキュメントにhtmlファイルとして保存 ということなんです・・・ URLの末尾がphp3になってるんですが、 そういうページは保存しようとしてもエラーになるんです。
PHPの問題じゃなさそうだな
mysql_query("SELECT * FROM $table WHRER $where;") or return FALSE; うう、returnが悪いらしいってことはエラーで分かったのですが、どう修正すればいいのかわかりません。。 どなたがご教授して頂けると嬉しいです。。
238 :
237 :2005/05/09(月) 23:26:45 ID:WdisNjWE
すみません。途中で送信してしまいました。前述のコードでエラーが出てしまうんです。
ランダムで文字列を出力するにはどうすれば良いのでしょう。
つ rand()
241 :
nobodyさん :2005/05/10(火) 08:03:25 ID:jY6RiK1Q
微妙にスレ違いですが TCPソケットで接続できない設定のPostgreSQLに 同サーバ内のphp/apacheから pg_connect()するには何か方法あるんでしょうか SQL側の設定は弄れません。
>>241 TCPがダメなら unixドメインソケットしか無いんじゃないでしょうか?
243 :
241 :2005/05/10(火) 08:36:26 ID:jY6RiK1Q
ですよね。 一通り調べてみたんですが、対処法として見つかるのは皆 SQLのconfでTCPソケットを使用可能にする、というもので… unixドメインソケットでのpg_connectの構文、 pg_connect("dbname=DBNAME"); で問題ないですよね(コレでも接続できません)。 上記の構文が正しいなら、他の部分に問題があるのかも知れません どうでしょう
244 :
nobodyさん :2005/05/10(火) 08:40:43 ID:AG0pWcBC
>>243 ユーザ名やパスワードは要らないの?
>>244 4.3.10 から 4.3.11に変わる時に 文字コード判定のエンバグがあった希ガス。
snapshotのは直ってるのかも?
246 :
nobodyさん :2005/05/10(火) 09:37:23 ID:GS/y/2r+
PHPでPOSTのデータを扱うときに問題に突き当たってしまいました。 普通のPOSTデータの場合は、たとえば'variable=test'などの場合は $_POST['variable']などを使うことが出来ましたが、 今回送られてくるPOSTデータは、イコールやアンドで連結されていない ただの文字列'only messages'となっているために、$_POSTが機能しません。 具体的には$_POSTの内容は空Arrayとなってしまっています。 生のPOSTデータを扱うglobal変数を探したのですが、どうやら無いようです。 何とか内容を取得したいのですが、どのようにすればよいでしょうか?
>>239 こうだ
<?
$comment = array(
"ランダム文字列1",
"ランダム文字列2",
"ランダム文字列3",
"ランダム文字列4"
);
$num = array_rand($comment);
echo $comment[$num];
?>
248 :
nobodyさん :2005/05/10(火) 09:41:41 ID:zlviU+dy
>>246 どこからそれはPOSTされてるんだい?
249 :
246 :2005/05/10(火) 10:03:22 ID:???
>>248 社内LANの相手方のサーバで、私はクライアントのソースコード変更の権限を持っていません。
出来れば書き換えてくれという要望を出したくないのですが、
ほかに良い方法がないならそれも候補のひとつとして考えています。
>>249 例えばnameが君の言うonly messagesになっていた場合
それを取得するには
$_POST['only_messages']になる
空白は_として認識される
print_r($_POST);
を試せばわかると思う
>>250 すみません、言葉が足りませんでした。_POSTは、完全な空配列になってしまっています。
下がPOSTで「message」をポストした時に_POSTをprint_rした結果です。
Array
(
)
252 :
nobodyさん :2005/05/10(火) 10:53:47 ID:F6arxgcN
253 :
軟式PHP :2005/05/10(火) 10:54:03 ID:???
>>251 $_SERVER['QUERY_STRING']はどうなってるん?
ていうか原因は >>ただの文字列'only messages'となっているために、$_POSTが機能しません。 これではない気がする
工エエェェ(´д`)ェェエエ工工
257 :
241, 243 :2005/05/10(火) 11:11:57 ID:jY6RiK1Q
>>245 ソースには書いてあります。すいません
結局、問題はSQLのconfのように思います。
pg_connectで
ホストを指定しTCP接続
-> confにTCP/IPの許可が無く蹴られる
ホストを指定せずUnixドメインソケット接続
-> identはTCP/IPなので蹴られる
…のジレンマ
上のような認識で良いでしょうか。
また、conf弄る以外に手は無いのでしょうか
スレ違い度々すみません
>>253 POSTでQueryStringは関係ないだろ?
259 :
軟式PHP :2005/05/10(火) 11:18:55 ID:???
>>258 まぁそうなんだがGETの可能性もあるかなと。
まぁ恐らくだとphp.iniの設定が間違っているから only messagesをonly_messagesと読み込んでくれないんじゃないかな 試しにphp4.3を入れてphp.iniの設定は初期のまま 以下のソースを実行したがちゃんと「test」が出力されている <form method="POST" action="<?=$_SERVER['PHP_SELF']?>"> <input type="hidden" name="test area" value="test"> <input type="submit"> </form> <?=$_POST['text_area']?>
訂正 <?=$_POST['text_area']?> => <?=$_POST['test_area']?>
関数の戻り値は一つしか指定できないんですか?
関数側で配列で返してlistで受け取る、とかかな。
>>261 POSTデータがHTMLのformでは送信できない形になってしまうのです。
具体的には、getallheaders()で取れるHTTPヘッダが以下のような形になっています。
-------------------------------------------------
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: ja
Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 7
Content-Type: application/x-www-form-urlencoded
Host: ***.***.jp
method: POST /cgi-bin/php/test.php HTTP/1.1
Referer:
http://***.***.jp/working/ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
-------------------------------------------------
多分"Content-Length: 7"の指す内容は"message"でしょう。
たとえばGETの場合だと、
somescript.php?message
とリクエストがくるようなものです。
ちなみにGETの場合は、上のリクエストを出して$_GETをprint_rすると
Array
(
[messgaes] =>
)
となります。
>>266 配列にするってのも手だけど、何のために参照渡しがあるのか考えてみよう。
>>267 <?php
$putdata = fopen("php://stdin","r");
$data = fread($putdata,4096)
fclose($putdata);
echo $data;
?>
これで取得できないか?
270 :
229 :2005/05/10(火) 14:48:04 ID:eATLLovc
>>230 231
私が思いつくのは
header("Content-Type: image/jpeg");
imagejpg($src);
のようにPHPで出力?する方法しかないのですが、
これだと画像を右クリックで保存しようとするとbmpになってしまいます。
なにか良い方法あるでしょうか?
ルートで出した値が整数かそうでないかを判別するには どうしたらよいでしょうか?
272 :
軟式PHP :2005/05/10(火) 15:29:19 ID:???
方法は色々あると思うけど一例。 <?php $num = 9; $num_sq = sqrt( $num ); print$num_sq . 'は、'; if( $num_sq == intval( $num_sq ) ) { print'整数だね'; }else{ print'整数じゃないね。'; } ?>
273 :
nobodyさん :2005/05/10(火) 15:42:38 ID:U3zxbNO5
274 :
271 :2005/05/10(火) 15:47:13 ID:???
一部設定だけが違ってて、それ以外は全く同じスクリプトを、異なるディレクトリに置きたい場合ですが、 シンボリックリンクとか使えないのでしょうか? 例えば、 /home/www/htdocs/abc/にaa.phpとdef.inc があるとします。 aa.phpのシンボリックリンクを /home/www/htdocs/xyz/aa.php に置いたとします。 aa.phpから、 <?php require( "def.inc" ); ..... ?> みたいにして、設定のみをdef.incよみこませるとして、 /home/www/htdocs/xyz/aa.php(シンボリックリンク) を実行した場合でも、 /home/www/htdocs/abc/def.inc が読込まれてしまいます。当然と言えば当然なのかもしれないけど。 これを、/home/www/htdocs/xyz/def.incが読込まれるようにするには、どうしたら良いでつか? よろしくおながいします。
>>267 $_POSTが空なら$HTTP_RAW_POST_DATAに入ってるかも
>>269 やってみましたが駄目でした。
fopenはうまく行っているようですが、内容がなく、即EOFでした。
>>276 空文字列でした。
278 :
267 :2005/05/10(火) 20:32:27 ID:???
ちょっと残念ですが、POSTデータを取得するのは諦めることにします。 皆さんありがとうございました
>>627 スクリプトがおかしいんじゃなくて、画面のフォームが
タグの閉じ忘れなんかでうまく受け取れないのでは?
以前同じようなトラブルがあったもんで。
ロングパスですな
283 :
nobodyさん :2005/05/11(水) 13:42:34 ID:AwvRVDab
283ゲット
ロン毛カコ(・∀・)イイ!
くだらない疑問があります。 PEARってPHP4とかPHP5とか区別は無いのですか? 偶にPHP5じゃないとダメってのはありますが、 基本的には両方とも使えるんでしょうか?
287 :
nobodyさん :2005/05/11(水) 20:15:32 ID:fr0Q+Hmi
PHP5が使えるレン鯖がぜんぜん増えないんですが・・ PHPはもう終わってるのでは・・・って気がしてきました。 PHP5なんだか評判悪いですよね・・どうなんでしょう?そのあたり
すれ違いだったらスマソン エロイ人教えてください linuxでもききましたがオセーテくれないのでおせーてください kagoyaのサーバーを使用して うんたら@kagoya.net でメールをもらったらプログラムを実行して返信したいのですが .procmailrcをhomeのすぐ下において 中身は PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/sbin:/usr/local/bin:. MAILDIR=$HOME/Mail LOGFILE=$MAILDIR/procmail.log :0 * ^To:.*うんたら@kagoya.net * ^From:.*\/.* #| /usr/local/bin/php /home/うんたら/public_html/getmail.php "$MATCH" regist > /home/うんたら/public_html/getlog.txt #*| /usr/local/bin/php /home/うんたら/public_html/getmail.php "$MATCH" regist とかいたのですが動きません どこがまちがっているのでそう
あなたが童貞あるいは処女を卒業する頃までには広がります 既に卒業しているのであれば広まることはありません
290 :
237 :2005/05/11(水) 21:20:31 ID:???
mysql_query("SELECT * FROM $table WHRER $where;") WHEREのまちがえでないの?
>>288 VERBOSE=1(だっけ)にして詳細ログをみるとなにかわかるかもしれない。
基本中の基本だけど、パーミッション関係は大丈夫なんだろうね。
あとは、、いや、すれ違いだからどっか適当なとこで続けなよ。
293 :
237 :2005/05/11(水) 21:41:13 ID:???
>>291 あ、そうですねありがとうございます(_ _)でも、依然エラーが出るのがなぜか分かりません;;
mysql_query("SELECT * FROM $table WHRER $where;") or die(FALSE);
だと構文チェックは成功して
mysql_query("SELECT * FROM $table WHRER $where;") or return(FALSE);
だとなぜかエラーになります。。
mysql_query("SELECT * FROM $table WHRER $where") or die ("FALSE"); これでどうでそう
何気に気になってたんだけど、「or die」ってどういう意味? 今まで、詳しく分からないで何となく使ってたんだけど、 そもそも or って and とか xor とかの論理演算子じゃないの?
>>295 orは左辺の式が偽の場合、右辺の式を評価します。
297 :
237 :2005/05/11(水) 22:04:13 ID:???
>>294 すみません、やりたいのは
mysql_query("SELECT * FROM $table WHRER $where;") or return(FALSE);
を正常に動かすことです。dieの場合は正常に動くのですが。。
$result = mysql_query("SELECT * FROM $table WHRER $where") or die ("FALSE"); $rows = mysql_num_rows($result); if($rows>0){ return true; }else{ return false; } これでどうだボケェ
if(! mysql_〜) return false; にしておけば、意味も分かり易いしええんでないの?
>>296 え?
ORってさ論理和だよね?
a or b だとしたら a または b のどちらかが 真の場合に真になるんだよね?
それとも、PHPでの特殊な処理なの?
あと、左辺の式が偽の時、右辺の式を評価するのがorだとすると、
逆に、左辺の式が真の時、右辺の式を評価するものとかあるの?
だから〜 WHRER はキモいので WHERE にしといてくれー
>>297 return は式でも関数でもないから
>>300 >逆に、左辺の式が真の時、右辺の式を評価するものとかあるの?
and
左が偽なら偽確定なので右は評価しない
>>300 aが真だったら bが何でも(真でも偽でも)、真になる。
つーわけで、
>>296 のような解釈をする言語が多い。PHPも然り。
or dieつーのが最もよく使われる例だね。
後半に関しては、次の例を試してみれば、右のオペランドのand orで扱い方に違いがあることが分かると思う。
function hoge(){ print 'func hoge'; exit; }
$a = 'hoge' or hoge(); // orにしたりandにしたり
print $a;
>>303 なるほど、そういうことか。
ORだから左辺が真なら真だから右辺は評価しない。
左辺が偽なら右辺を評価しないと結果が出ないから右辺を評価するって訳か。
306 :
305 :2005/05/11(水) 22:25:03 ID:???
書いてる間に、
>>304 に突っ込まれた・・・orz
307 :
297 :2005/05/11(水) 22:25:15 ID:???
ふと思ったのですが、jcode.pl使ってると遅い気がするんですが... 使わない方がいいかな?でも、使わないと文字化けするんだよね... ここで、jcode.plを改造しない?もう5年もバージョンうpしてないし、おk?
PHPでjcode.plなんて使わない。
へ?
ぷぅ。
proxyはじきたいんだが、どうすれば。 正規表現とか使うんだろうか。誰か教えてplz
<?PHP という様に、頭に<?っていうカッコワルイヘッダを書かなきゃならないっていう仕様はなんとかならんのか。 せめて </PHP とか、なんか工夫がなかったのか? なんでいきなり ? なんだよ? そういえば、昔のIBMの端末のキーボードには{っていう記号がなかったので Cのプログラムでは、 { を ??( って書いていた っていうのを今思い出したぞ。 なんだっけか? トリグラフ表記(trigraph)だっけか? というわけで、 ?>
PHPでtrackback pingをしようと考えているのですが excerptの長さに規定はあるのでしょうか? スパムはしません(--;
jcode.phpのこと言ってんのか?
>>313 <script language="php">〜</script>
>>313 <% echo ("オプションでASP形式のタグを使用可能です"); %>
質問があります。
レン鯖なのでインストールされていないPEARがあるので、
PEARマニュアルに書いてあるように、
ttp://go-pear.org を go-pear.php という名前で保存し、
インストールして使用しています。
今までは、PEARを使うPHPの中で、ini_setを使用していました。
最近、これでは面倒だと感じ、色々調べたところ .htaccess で php_value を使用して
設定できることが分かりました。
そこで疑問があります。
単純にPEARだけを include_path に設定することは出来るのですが、
ini_set を使用していたときは、 ini_get も使用して、現在設定されてるパスに
使用したいもの(PEARなど)をプラスする形にしていました。
.htaccess の php_value を使用して同様のことをしたいのですが、どうしたら良いのでしょう?
.htaccess の中でPHPを記述してもいいのでしょうか?
>>320 .htaccess でPHPの設定って変わるか?
確かにマニュアルとか書かれてるけど、俺の環境(W2K+PHP4.3.10)じゃ設定変わらないんだけど?
>>322 Apache再起動ってのはチョット的外れだな。
そんな動きだったら、レン鯖とかだと困るだろ?
普通は即時に反映される。
>>321 ひょっとして<IfModule mod_php4.c>でくくってないか?
インターネット上で載ってるサンプルが殆どこの形式だけど、
Windowsだとこれでくくってると動かない。
行き成りphp_value と記述汁。
>>320 御免。
その方法は俺も知らない。
だけど、PEARだと既存の設定を上書きしたいはずだから、問題無いんじゃ?
でも、他に設定されてたら、全部設定するの面倒か・・・
>>320 .htaccessでprepend_fileを指定して、その中でini_setすれば
グローバルに設定が反映されるよ。
.htaccessの話が出てきたので聞いてみたい。 仕事とか趣味でもどっちでもいいんだけど、パーミッションってどうしてる? よくインターネットで公開されてるようなスクリプトだと ログ用のファイルのパーミッションはどうしろだの書いてあるけど、 .htaccessつかってアクセスできないようにすれば良いだけじゃないのか? 例えパーミッションが777でも.htaccessで隠せばアクセスされないよな? 何か問題があるのかなぁ・・・(その鯖で.htaccessが使用できないって場合以外で)
>>325 設定ミスっていうのはたいてい起きるもんだよ。
777なんて例えば共有サーバーなら他のユーザーに自分の権限を
すべて与えている事になるし、激ヤバすぎる。
>>327 ゴメン間違えた。suidビットと勘違い。
>326 スレタイ嫁
>329 jcode.pl の改造はどこのスレがイィでしょうか? 丸投げスレか....?
検索しろよ とりあえずここはPHPのスレだしPerlは関係ないぞ
ググれば出てくるのに… たくさん釣れて良かったね
ファイルの、一行だけ消す時とか、書き換える時、 何か良い方法は無いですか? ファイルがでかいので、一行ずつ読み込んで、 tmpfileでテンポラリファイルを作り、そこに書き出し、 そこから更に元のファイルに一行ずつ書いてゆく。 思い浮かんだのはこれくらいです。 知恵をお貸しください。
$obj=new e; a($obj); b($obj); c(&$obj); d(&$obj); function a($o){$o->v="a";} function b(&$o){$o->v="b";} function c($o){$o->v="c";} function d(&$o){$o->v="d";} class e{ var $v="ABCDEFG"; } ↑の4つの関数は aだけが値渡し b〜cは参照渡し(書き方は違うが渡し方は完璧に一緒) で合ってるでしょうか?
336 :
nobodyさん :2005/05/13(金) 23:40:07 ID:aoWOUNW7
PHPで、外部のサーバにあるシェルを実行することはできますか。 TELNETか何かでログインできれば可能な気がするのですが。 最終的にやりたいことは、WEBのPHPから対象のサーバを選んで、 そのサーバのシェルを実行するということです。 アドバイスよろしくお願いします。
>>336 外部のサーバの状況による。
中に入るための扉が無けりゃ初っ端から無理っす。
winXPにPHP、アパ、MySQLぶち込んだんだけど、 ローカルテストでmb_send_mail()使って自身のパソコンにメール送るのって、 また別にメールサーバ入れなきゃいけないのかな?
はい
340 :
nobodyさん :2005/05/14(土) 06:27:48 ID:OEZ8BJ6L
スレタイ通りくだらねぇ質問をさせてください。 PHPを学ぶかPerlを学ぶか迷ってるんです。 最初に学ぶとしたらどちらが良いでしょうか? Perlはクセがあるとどこかで聞いたのでPHP のほうが良いのかなぁと思ってるのですが。
341 :
nobodyさん :2005/05/14(土) 07:32:01 ID:IfWBq4ix
変数の前についてるvarってなぬ? 基礎PHP改訂版のクラスの項ででてきたんだけど何も説明がない var $hensu と $hensu はどういったときに使い分けるのです? 過去スレPa1にも同じような質問があったけどスルーされてたみたいなんで くだらねぇのかもしらないけど たのむ!
>>340 もし貴方がC言語の経験を少しでも持っているなら、
迷わずPHPですね
夏の日の1993 by class
344 :
nobodyさん :2005/05/14(土) 09:22:33 ID:OEZ8BJ6L
質問させて下さい。 Mojaviを使用したWebアプリでフレームで分割されたページを作るにはどうしたら良いですか? 最初はフレーム部分はHTMLで作って、左右それぞれの部分をMojaviで作った メニューとコンテンツを表示していました。 ログイン機能をつけようとしていまして、フレームが表示される前にログインさせたいのです。 それと、皆さんはどういう単位でModuleとActionを分けていますか? 例えば、商品の発注システムとかだと、在庫の確認機能なり発注機能、請求書の発行機能、 顧客管理などなど幾つかの機能に別れると思いますが、 その機能別にModuleに分割した方がいいのでしょうか? それとも、1つのシステムをModuleにして後はActionで分割した方がいいのでしょうか?
>>345 dクス!
っておい!
VBでググちゃったじゃないか
有効範囲と寿命って感じか?
まあなんとなく理解でき(ry
結果的に
dクス!
>>346 フレームは普通にデフォルトのアクションとかでフレーム表示させるようにすればいいだけじゃ・・・
ModuleとActionの分け方はその時その時のような気がする。
ただ、俺は○○システムという単位で1つのMojaviを使う形にしてる。
というのはConfigが1つだから、デフォルトの設定を変えられない。
ログインやらデフォルトのモジュールやらエラーやら、
複数のシステムで共有するにはちょっと無理が出てくる。
各Module毎にConfigが設定できれば良いんだけど・・・
ひょっとして出来るのかなぁ・・・そこまでは分からないや。
varってクラスのメンバ変数じゃないの?
>>335 マニュアルより
関数コールの際には、リファレンス記号がないことに注意して下さい。関 数定義にのみリファレンス記号があります。リファレンスで正しく引数を 渡すには、関数定義のみで十分です。
352 :
nobodyさん :2005/05/14(土) 16:07:01 ID:a9dccOHa
スレタイ通りくだらなくてごめん。 str_replaceで("\n", "<br>", $com)つーのよく見かけるんだけど \n=改行は分かるんですが\tや\rってのは何を指してるんでしょう?
>>352 エスケープ文字の扱いは、C言語と一緒。
\tはタブ。
\rは復帰。
ちなみに、OSによって改行は\nだけじゃない。
Windowsなんかは\r\nで改行。
うそつけ Windowsも\nに復帰は含まれないぞ
355 :
352 :2005/05/14(土) 16:21:46 ID:???
!?(゚Д゚;≡;゚Д゚)!? とりあえず復帰ってなんぞやw Googleに飛び込んでくるw
>>354 Windowsでメモ帳開いて改行して、そのファイルをバイナリエディタで見てみな。
0x0D 0x0A ってなってるから。
Windowsでの改行は\r\nの2つ使う。
>>356 放っておいてやれよ。
>>354 はWebプログラム書く奴にとっての常識を知らないで、この板に居るんだろうから。
358 :
354 :2005/05/14(土) 16:34:28 ID:???
悪い、よく見てなかった fputs()で\nしても復帰ははいりませんぞってことが言いたかった
>>358 自分で書いてて、馬鹿だな・・・って思わないのかなぁ・・・
\nしか入れてないなら\rが入る訳無いのに・・・
Perlじゃ\r入るから間違えた
\rと\nと\r\nの三つか。
362 :
nobodyさん :2005/05/14(土) 18:20:54 ID:3PEPLp0F
何これ
PLESKでサーバのPHPメモリのクリーンアップってどうやるのか教えて
引数で値だけを書いて、それをPHPスクリプトで取得することって出来ますか??
たとえば、QRL.jpで圧縮した後のURLって
http://qrl.jp/?189637 みたいになる。
ここでは「?189637」が引数だけど、この引数をスクリプトで取得するにはどうすれば…??
「?id=189637」みたいになってれば「$id=$_GET['id']」で取得できるけど、
「?189637」の場合は・・・???
array_keys($_GET)
>>365 その類の質問って、ちょくちょく出て来てるとは思うんだけどね。
phpinfo() だけを実行する PHP ファイルに対して ?189637 付けてリクエスト
してみて、どの環境変数に ?189637 がセットされているか、確認するといい。
つ$_SERVER["QUERY_STRING"]
>>367 ありがとうございます!!
そんな確認の仕方があるとは気が付きませんでした。orz
実際にやってみたら理解できました。マジでありがとうございます。
ところで、「?189637」でさらに「?」を抜いた場合は、引数じゃなくて
URLに含まれるディレクトリとしてブラウザが解釈しちゃいますよね?
これを「189637」だけで引数だと解釈させるには、サーバ(Apache)の設定を変更
しないと実現でき・・・ませんよね?
>>368 ありがとうございます。たしかに$_SERVER["QUERY_STRING"] と確認できました!
MagickWandについて質問なのですが、 画像の容量を下げたいときはどうすればよいのでしょうか?
>>371 画像の容量を減少させるような処理を行いましょう。
画像の縦横サイズ、利用カラーパレット数、画像品質 等々。
373 :
371 :2005/05/14(土) 22:27:19 ID:???
374 :
nobodyさん :2005/05/14(土) 22:34:59 ID:jUn5DTgY
DBやsendmail等、処理待ちが出る場合に レスポンスを待たずに次のphpに移行する方法があったと思うんですが 分かりますでしょうか
>>369 「?」抜きってのは実現不可能なんじゃないのか??
漏れはあんま詳しくはないけど。。。
>>374 処理結果を気にしない場合は、プログラム実行関数 + 各OSでのバックグラウンド実行。
処理結果を気にする(シグナルをどうにかする)場合は、プロセス制御関数。
>>375 mod_rewriteやPATH_INFO
>>377 おおぅ。。。なるほど、「l50」も引数!? 今までディレクトリ名だと思ってた。
でもどうやんだろ?
mod_rewriteはちょっとググったけど相当難しそうだ。。。
サーバーに関する知識がないと実現できなそうね。
あと、これってphpと直接関係ない話。だよね?
376に書いてる。>PATH_INFO 環境変数で取得。
ついさっきANHTTPD+PHP5の環境を作った初心者ですが、もしかしてPHP5は一般的じゃありませんか? PHP4とどう違うのかわからないんですけど、PHP4の方にしといた方がよさそうですか
>>380 PHP5とPHP4ではオブジェクト指向の書き方が違う
まあネットで検索したときの情報量はPHP4の方が多いけど
迷うなら4の方が無難
C#やJavaをやったことがあるなら5の方がやりやすいかも
Cはまだ経験がありません。
C++なら経験済みです
C++は見たことも無いけどPHPを触ってしまいますた ごめんなさい
積極的ねッ♪
昨日、初めてCを体験しました。 隣の浮江お姉さんが優しく教えてくれました。
390 :
nobodyさん :2005/05/15(日) 19:17:15 ID:SkLBQSTL
同じサーバ内で、セッション(くっきー)を2つに分けて保存したいのですが a.phpだと session_name("abcdef"); session_start(); $_SESSION['test'] = 'abcdef'; b.phpだと session_name("123456"); session_start(); $_SESSION['test'] = '123456'; で、$_SESSION['test']がどちらかのデータに上書きされてしまいます。 どうすれば同一サーバ内で2つのセッションを保持できるのでしょうか?
セッションとクッキーは違います
392 :
390 :2005/05/15(日) 19:56:40 ID:SkLBQSTL
>>391 僕の勉強不足でした orz
えーと、ということはセッション(session_start())で、複数のスクリプトで
$_SESSION['test']の変数を2種類使い分けるのは無理ということですか?
php.iniにそういう設定なかったっけ 複数のスクリプトの間で引き継ぐか、引き継がないか
セッションIDを2個持ったユーザ(ブラウザ)を作りたいってこと? そういうのはしたことないけど、多分標準のセッション関数じゃ出来ないんじゃないの。 1つのセッションを名前で分けて使うか($_SESSION['sess1'][test] $_SESSION['sess2'][test)、 pearのライブラリにそういうのがないか探すか、自前でセッションを実装するか。
396 :
390 :2005/05/15(日) 22:32:13 ID:???
session.use_only_cookies On にしたら出来たっぽいです。
社内のチーム用に小規模なデータベースを作ろうと思って、 WindowsXP上でMySQLとApacheを動かそうと思っているのですが 日本語の取り扱いは、 php.iniの default_charset = "Shift_JIS" mbstring.language = Japanese mbstring.func_overload = 7 extension=php_mbstring.dll でよろしいんでしょうか?
398 :
nobodyさん :2005/05/15(日) 23:13:48 ID:dziYZJyD
1つのereg_replace()のみで a -> b c -> d e -> f のように複数の変換はできないのでしょうか。 …正規表現はマッチした/しないの2通りしかないから無理かなぁ
>>398 ereg_replaceを使わずにstr_replaceで。
$arr1 = array('a','c','e');
$arr2 = array('b','d','f');
echo str_replace ($arr1,$arr2, $string);
>>397 細かくいうとキリがないから入門書をまねるといいよ。
401 :
398 :2005/05/15(日) 23:37:30 ID:dziYZJyD
>>400 その入門書によって、書いてある事がマチマチなのでー。
晒せ
>>397 どこで悩んでるのか
まず動かしてみるからじゃないのか
ループ内で、HTMLのテキストを、少しずつ表示したいのですが どうしたらよいでしょうか
407 :
nobodyさん :2005/05/16(月) 01:09:56 ID:1b4tK92/
PHPの変数名の付け方って"_"で区切るのとfooBarみたいな感じのと どっちが推奨なんですかね?
どっちでもいいんじゃない。memberNameみたいにしてもいいけど、HTMLフォームのnameとあわせようと思うと、member_nameの方が好まれたりするんだよね。
410 :
406 :2005/05/16(月) 01:37:39 ID:???
>>409 <BODY>foreach($text as $str){ echo $text; }</BODY>
みたいな感じで出力してて
echo文の後ろで flush(); 読んでみたけどダメでした
$textの前に、無駄なスペース256バイトとか入れてもダメでした
環境作って入門サイトを一通り見ましたが、習作に何を作ればいいか迷っています 助言ください
412 :
406 :2005/05/16(月) 01:39:24 ID:???
>>410 えーと、、、ちょいととは言いましたが、関係する部分を全て真面目に書いてください。
>>410 foreachの使い方をもう一度勉強しなおそう。
415 :
406 :2005/05/16(月) 02:12:24 ID:???
>>413 ob_start()とかつかってるとだめみたいでした
<?
mb_http_output('SJIS');
ob_start('mb_output_handler');
$str=array("あ","い","う");
foreach($str as $text){
echo $text;
ob_end_flush();
sleep(5);
ob_start();
}
?>
あいう がひとつずつ5秒おきに出力されるようにしたいです
勉強するならHTTPからですね。 JavaScriptかFLASHでどうぞ。
417 :
406 :2005/05/16(月) 03:51:50 ID:???
>>416 ありがとうございます。
JavaScriptやFlashを使わずに
PHPでの変更のみで無事解決いたしました。
違うブラウザでも試してみましょう。
419 :
406 :2005/05/16(月) 04:33:11 ID:???
どうもご心配おかけしてすみません IE,Opera,Firefoxで確認したのでたぶん大丈夫だと思います
420 :
nobodyさん :2005/05/16(月) 06:24:36 ID:Mf9AQ7/C
PHPでcrontab生成してる方、いらっしゃいますか どんな感じなんでしょう
別のサイト(.html)を取得してその内容について処理をするにはどうすればいいですか
422 :
421 :2005/05/16(月) 07:42:35 ID:???
すみません自己解決しました
つ [ファイルシステム関数 CURL関数 ソケット関数]
424 :
nobodyさん :2005/05/16(月) 08:18:07 ID:WsRbPHFD
phpファイルのサイズ制限ってありますか? 例えば、abc.phpってファイルが20kb以上になったときに異常な動きになるとか。 DB操作のところのコードは変更していないにも関わらず、 abc.phpのサイズが25kb過ぎたあたりから、DB操作のところでエラーが起きるようになりました。 試しにファイルを分けてみたら、正しく動作するようになりました。 ひとつのファイルで済ませたいのですが、対処法があれば教えてください。 環境:Apache2、PHP5、Mysql3.23.58、WinXP
mysqlに対して、検索するとき $result = mysql_query("SELECT フィールド FROM テーブル名 WHERE フィールド = $_POST['hogehoge']"; な感じで、$_POSTを使うと何も結果が出てきません。 SQL文で使う場合は、一度変数に入れなければならないのでしょうか?
つ [マニュアル 言語リファレンス 型 文字列 変数のパース]
>>425 とりあえず、それは非常に危険なコードだ。簡単にデータベース破壊できる。
428 :
425 :2005/05/16(月) 10:57:41 ID:???
危険なコードなんですか・・・。 POSTで取ってきたデータを変数に入れて、 $hogehoge = $_POST["hogehoge"]; $result = mysql_query("SELECT フィールド FROM テーブル名 WHERE フィールド = $hogehoge)"; しか頭に浮かびません。 これでもダメなコードなのでしょうか?
つ [SQLインジェクション]
>>428 とりあえず以下で。
mysql_query("SELECT フィールド FROM テーブル名 WHERE フィールド = " . $_POST['hogehoge']);
>>427 が指摘しているように、$_POSTや$_GETみたいに外部からくる値をチェックせずに、そのまま
使用するのはやめたほうがいい。
SELECTでデータベースが破壊できるかどうかはさておき、外部から来る値は「汚れている」可能性を
考えておかないと危険。
SQLインジェクションあたいりでググってみそ。
$query = "SELECT フィールド名 FROM TABLE WHERE フィールド = '$hogehoge'"; $result = mysql_query($query, $this->Connect) or die ("error:$query"); ってやったらどうだぼけぇ
432 :
425 :2005/05/16(月) 11:22:44 ID:???
>>429 >>430 ・・・ググって見て寒気がしました。
こんなやり方があるのですね。
掲示板等にタグ防御があるように、SQLを扱うフォームデータは、
厳重に不要なものを取り除いたり、注意深く扱わなくてはだめなのですね。
勉強になりました、ありがとうございます。
久しぶりにすんげーこのスレの有意義さを感じた
WEBサーバがどういう手順でブラウザにデータを送っているか。 データを受け取ったブラウザはそのHTML部をどうやってパースしているか。を考えればおのずと分かること。
436 :
nobodyさん :2005/05/16(月) 15:41:23 ID:2P24wsbp
会社の業務システムにPHPを採用するかJavaを採用するかで悩んでます。何か アドバイスあればください。
>>436 わかる人を雇う。まともな請負に頼む。自分で努力する。他いろいろ…
438 :
nobodyさん :2005/05/16(月) 15:49:38 ID:2P24wsbp
PHPはJavaに比較して業務システムに適さない?
437をスルーして更に質問を重ねるID:2P24wsbpは、 PHPやJavaよりもまず社会人のマナーを学んでこい。
440 :
nobodyさん :2005/05/16(月) 17:20:52 ID:2P24wsbp
失礼しました。 >>わかる人を雇う。まともな請負に頼む。自分で努力する。 他いろいろ… アドバイスありがとうございます。ですが、JavaとPHPという側面では どんなもんでしょうか?
>>440 真面目レスすると、言語だけではなんともいえない。
まずは、そのシステムの規模。
お金はどれぐらい掛けられるのか。(サーバも含む)
周囲(社内や良く使っている外注)などにJavaやPHPの技術者がどれだけいるか。
などなど、色々な要素が絡みます。
例えば客が「絶対にPHP」とか「絶対にJava」と言えば、それで開発するしかないのです。
言語という側面だけで見た場合、中規模までであればどちらでもOK。
小規模ならJavaを使うまでも無いのでPHP。(別にJavaでもいいけど)
大規模ならJava。PHPの技術者が多く、技術力も高いならPHPでもOK。
結局の所、言語レベルでは判断がつきません。
周囲の技術者が多い方。
担当者が得意な方。
そういったもので全然OKです。
技術者が多いとか得意というのはそれだけで強みです。
442 :
437 :2005/05/16(月) 17:59:07 ID:???
>>440 >>437 は、物凄いマジレスだったんだけどね。
PHPとJavaの、特徴すら理解できてないんだから、自分を磨くか、人雇うかしかないでしょ。
しかも、その自分を磨くってのを2chに頼るってのは、プロとして確実に問題だぜ。
例えば、上司にどう報告するんだい?
2chで、こう言われたから、PHPでやることにします。とかか?冗談だろ。
付け焼刃じゃなく、実力をつけるしかないんだぞ。
>>441 が親切に言ってくれてるが、これも一般論にしかすぎない。
実務になれば、自ずと異なった視点が必要になるんだが、それすら理解できてないんだろ?
こんなとこで時間つぶしてる暇に、やることあるだろ。
みんなマトモな人だな。 おまけにイイ奴だ。
すいませんhtmlの内容と書きましたが、ブラウザで表示される状態を取得できたらと思っています。
446 :
444 :2005/05/16(月) 23:40:45 ID:???
2バイト文字がグチャグチャになってしまっていますがこれはどうしたらいいのでしょうか。 というかやはり表示結果を取得したほうが楽そうですね・・。
mb_internal_encoding , mb_http_input mb_http_output 等を変えてみるなど。
mb_internal_encoding
を取得するhtmlの文字エンコードに合わせたら表示できました。
ありがとうございます!
$encoding = mb_internal_encoding(shift_jis);
$file = "
http://www.f7.dion.ne.jp/~moorend/news/2005040201.html ";
$fp = @fopen($file,"r");
fpassthru($fp);
としたらいい感じにはなったんですが
何故か
Notice: Use of undefined constant shift_jis - assumed 'shift_jis' in /home/ryota/httpd/php_work/first.php on line 6
と怒られます。
なにかセットで定義する必要があるのでしょうか。
> Notice: Use of undefined constant shift_jis - assumed 'shift_jis' 注意: 未定義の定数 shift_jis が使われています。'shift_jis' だと想定します。 mb_internal_encodingの引数は、文字列 あるいは 定義済みの定数。
mb_internal_encoding( "SJIS" )
450-451さん ありがとうございます なぜか $encoding = mb_internal_encoding(shift_jis); でも怒られながらも表示されていたのが不可解でした。 shift_jisを消すと文字エンコードがおかしくてまともに表示出来なかったです。 また ("shift_jis") ( "SJIS" ) どちらでもエラーを吐かずに表示できました。
>>452 マニュアルの定数の部分にも書いてありますが、
> 未定義の定数を使用した場合、ちょうどstringとしてコールしたかのように(CONSTANT vs "CONSTANT")、
> PHPはその定数自体の名前を使用したと仮定します。 この際、E_NOTICE が発生します。
今回の場合は、定数shift_jisが存在しなかったので文字列(string)'shift_jis'を指定したと仮定されます。
notice:の出力部分は、上記の事を英語で簡単に書いてあります。
ほんとうにそうなのかを確認するには、$encoding = mb_internal〜 の前後で
print mb_internal_encoding(); を実行してみれば分かるかと。
Notice: Use of undefined constant shift_jis - assumed 'shift_jis' 未定義のものを使ったので、文字列を勝手に入れてくれたのかな・・ まだ私には難しい表現なのでゆっくり噛み砕いてみます。 指定した語句を含む行を抜き出す関数というものはあるでしょうか? 出来ればそのHTMLから該当する語句を含む行を全て抜き出したいのです。 またはある語句からある語句の範囲を削除するというのでも解決出来そうです。 とにかく無駄な部分のほうが多いので・・
リファレンス本を買うか・・ 色々とありがとうございました <(_ _)>
引用符でくくられてない文字列を見つけて定数かなと思い探してみたけどそんな定数は定義されてない そこでPHPは、おばかなプログラマが文字列に引用符をつけ忘れたんだなと判断して文字列として扱ってくれる
457 :
nobodyさん :2005/05/17(火) 07:42:05 ID:Ph4M31UZ
phpから別の.htmのフォームへ遠隔的にデータを送信することはできますか?
460 :
軟式PHP :2005/05/17(火) 10:07:12 ID:???
>>455 リファレンス本て勿体ない。PHPマニュアルで十分やろ。
かなり分かりやすいと思うよ>PHPのマニュアル
本を買うならもっと別の本にしたほうがいいと思われ。
461 :
nobodyさん :2005/05/17(火) 11:33:51 ID:wrsgSSon
for($i=0;$i<10;$i++){ for($ii=0;$ii<5;$ii++){ } } PHPに限ったことではないのですが、ループが2重になる時、 内側のインクリメント変数はなんて名前にするのがいいですか?
462 :
軟式PHP :2005/05/17(火) 11:42:59 ID:???
重複しない名前
$i $j $k $l …という順番で使うオイラはFortran世代。 最近、老眼で $i $j $l の区別がつきにくい… マジな話をすると、それぞれのループには意味があるだろうから 外側のループも $i にこだわらず、意味のある名前にしたら?
464 :
461 :2005/05/17(火) 11:51:38 ID:???
特にセオリーがある訳ではないんですね。 ありがとうございました。
俺はPHPが初めてだったから数学でよく使ってたi、n、mが多い。 でも3重のループ構造なんて作ったこと無いからnまでだな。
>>465 20年やって初めて知った
ベーマガにも書いてないトリビアだ
昔、雑誌に載ってたBASICのプログラムが for i = 0 to 9 : for j = 1 to 100 みたいな感じだったから今でもループカウンタは i j だ
469 :
nobodyさん :2005/05/17(火) 13:34:27 ID:Apwp1iic
質問っす。 preg_replaceでマッチした結果を、連想配列の添え字に使用できないかな? ---------------------------------------------------- <?php $hash = array( "100" => "100_text", "101" => "101_text", ); $str = "string101"; echo preg_replace("/.+?([0-9]+)/", $hash['$1'], $str); exit; ?> ---------------------------------------------------- 101_textを期待してるんだけどまったく駄目です。 /eを使うのかと思うんだけどいまいち理解できません。 よろしくお願いします。
471 :
470 :2005/05/17(火) 14:20:01 ID:???
preg_match + str_replace か preg_replace_callback + function
PHPで、クライアントとは関係ないHTTP通信を行いたいのですが、 どのメソッドを使えばよいでしょうか? 開くターゲットはhtmlファイルなのですが、 クッキーなどのいくつかのヘッダも出力してやりたいので、 fopenではない専用のAPIがあれば助かります。 よろしくお願いします。
>>469 > /e修飾子は、 preg_replace()が replacementパラメータを
> 適当な置換を行った後、PHP コードとして処理するようにします。
echo preg_replace("/.+?([0-9]+)/e", '$hash["$1"]', $str);
HTMLソースをゲットして、必要な部分だけを切り出したいんですが効率的な方法はどのようにすべきなのでしょうか。 タグの部分は置き換えで出来るのですが、予期しない文章部分等への対応をどうしたら良いのか困っています。
>>476 ゲット先のソースを管理している人間に、
ソース内で貴方の必要な箇所を明示的に記述してもらうように頼む。
クラス内部で自分のメソッド呼ぶ場合って $this->hogehoge()使うのと CLASS::hogehoge()使うのと どっちが正しいとか早いとかってある?
普通$this->func()でしょう。 だってクラス名変わったらアウトじゃん。
後者は親クラスのメソッドを呼び出す時に使うんじゃないの?
>480 再帰ループとかに使うんで自分のクラスです。 親メソッドだったらparent::hogehoge()で呼ぶのが正解だと思っとりますが。
>>478 クラスの作成意図による。
class test {
function hoge(){ echo 'hoge'; }
function hoge1(){ $this->hoge(); }
function hoge2(){ test::hoge(); }
}
test::hoge1(); // fatal errorになる。インスタンスが無いのでhoge1での$this自体が無い。
test::hoge2(); // hogeを出力
>482 なるほど・・・ インスタンスを必要としないように組んでれば$thisじゃなくても良いわけですな。 とりあえず、>479の言うとおりクラス名変わったら面倒になりそうなので $thisを使う事にします。 さんくす。
class test2 extends test{ function hoge(){ echo 'hoge2';} } ってしたくなると困るね。 Javaとかでは、なんかセオリーみたいなのあるの?
>>482 class test {
function hoge(){ echo 'hoge'; }
function hoge2(){ test::hoge(); }
function hoge3(){ self::hoge(); }
}
test::hoge2(); // hogeを出力
test::hoge3(); // hogeを出力
っちゅう手もある
488 :
nobodyさん :2005/05/17(火) 18:44:35 ID:ceDjCL+B
phpでヤフオク等のページデータを引っこ抜きたいんですが、 出品途中ではなく終わった出品物の場合、URLデータを引っこ抜く時に ログインしろ!ときます。 ログインをPHPのスクリプトで行い、ページデータを引っこ抜く手段はあるでしょうか? お願いします。
489 :
488 :2005/05/17(火) 19:15:06 ID:ceDjCL+B
意味不明な記述がありました。すいません URLデータ>ページデータです。
PHPのエラーメッセージの一覧はありますか? T_STRINGとか…
PerlならLWPとか使うんだろうけど、PHPだとどうなんだろ。 シェルスクリプトでw3mのマクロを書いたほうが簡単なような気が。
cURL でしょ。
JavaScript使う手もあるけど、<a href="xxx.php?page=top">とかした方が簡単だよ。
495 :
493 :2005/05/17(火) 20:05:56 ID:???
hoge.html からフォームで fuga.php にアクセスするシステムがあって、 直接 fuga.php にアクセスされたときに 「ぬるぽ」 と表示したいのですが、どの変数があるなしで判断したらいいでしょうか? GETさせたく無い方法を教えてください。
$_POST
postデータがあったら通常処理 postデータがない場合、引数がない場合、getデータがある場合はぬるぽ。
>>496 if (isset($_SERVER['HTTP_REFERER'])
&& strpos($_SERVER['HTTP_REFERER'], 'hoge.html') !== FALSE) {
//何か処理
} else {
echo 'ぬるぽ';
}
$_POST ですか。 ユーザー名が入るテキストフィールド(name = username)があるとして、 <? if (!$_POST["username"]){ print ぬるぽ } ?> これだと、ユーザー名を未入力でボタンを押しても「ぬるぽ」と表示されてしまいます。 アクセスされた人が「ぬるぽって何?」って思われたり、または脊髄反射的に「ガッ」っと言う人が言うかもしれません。 $_POST は 連想配列である、とマニュアルに書いていますが、 そもそも $_POST という配列が無いという分岐はできるのでしょうか?
>>499 あぁ、すいません、書いている間に答えいただいてしまって…、ありがとうございます。
10万バイト分の文字列を200回mb_ereg_replace()―正規表現は使わずただの全角文字の置換に使う―をしたいのですが、負荷から考えてレン鯖で使うのは危険ですか?
ローカルでやるのは駄目なの?
php4 + GD でページの中に動的に生成したグラフを表示させたいと思っています その際、普通は <img src = "graph.php?param1=<?php echo $param1; ?>"> などのようにimgタグの中からgraph.phpを呼んでついでに引数を渡すのですが、 グラフのデータそのもの(大きい配列)を引数として渡したいので、この方法だとうまくいきません どうしたら大きい配列を渡すことができるでしょうか?
10万バイトと言われると凄そうだが、たかだか100KB弱なんだな。。。
>>505 どううまくいきませんか?
getのサイズ制限、urlで使えない文字 etc.
セッションを使うか、serialize()を使うか、ダメならPOSTメソッドを使う
509 :
505 :2005/05/18(水) 00:20:12 ID:???
>>507 うまくいかないというか、サイズが不確定な配列をうまく渡す方法がわからないんです
>>508 serialize()を使う場合、どう記述すればいいでしょうか?
EUCコードで書かれたCGIをShift_JISに変換ツール(秀丸など)で変換すると エラーが出るのですが、いい方法ないですか?
フリーでダウンロードできる掲示板を探しています ほしい機能としては、 1.各携帯から見ることができる 2.RSSを出力できる こういうものはありますかね? もし知ってる方いらっしゃいましたらよろしくお願いします。
>>509 graph.php?data=<?php echo serialize($array_data); ?>
--
$array_data = unserialize($_GET['data']);
>>510 Shift_JISだと気をつけないといけない事が多々あるのでEUCで書いてあるのでしょう。
Shift_JISで動くように気をつけて書き直すしかありません。
>>511 幾らでもありますよw
とりあえずグーグルか何かで糞で見ようよ。
2^9get
Perlのx演算子に相当するものは何ですか?
>>513 CGIではみつかったんですが、
PHPではみつからないんですよね・・・
もしよかったら教えていただけませんか?
検索ワードでも構わないのでよろしくお願いします
>CGIではみつかったんですが、 >PHPではみつからないんですよね・・・ 難解な文章だな
判りやすく言うと、こういうことか? 日本ではみつかったが、 独島ではみつからない。
面白いな 日本にあって大阪にないものなーんだ? 答え:安全 みたいなもんか
サッカーにあって日本-北朝鮮戦にないものなーんだ? みたいなもんか
VBにあってASPに(ry
523 :
nobodyさん :2005/05/18(水) 12:37:42 ID:6htWVmYW
フォームでテキストやコンボを入力後、submitして表示される確認画面で ブラウザの戻るをクリックするとフォームの内容が消えてしまうのですが、 これが消えないようにHTML内で小細工できますでしょうか?
524 :
nobodyさん :2005/05/18(水) 12:38:31 ID:kL0uKaiJ
perl の user Strict; みたいなのありませんか?
use Strict; でした。
>>523 フォーム画面のhttpリスポンスヘッダのキャッシュ関係を適切に設定する。
ってHTMLかぁ。<meta>である程度は制御できるんじゃないかな。
つーか消える(=鯖へ再リクエスト)ってのは、既になにかキャッシュ関係を操作しちゃってる気がするんだが。。
HTMLの話が続くようならweb制作板へ。
>>524 エラーの出力レベルをE_NOTICEを含むようにした時の挙動がそれに近いかな。
>>527 チャット側の方に認証の仕組みを組み込む事になるから、結構めんどくさいと思われ。
自分でスクリプトを書けない人なら丸投げスレで頼めばやってくれる人がいるかも知れず
>>528 ありがとうございます≦(._.)≧
丸投げスレでお願いしてみます(感謝)
E_ALL
$info['name'] = 'taro'; $str = '%db{name}'; $ret = preg_replace("/%db{(.*?)}/", $info[$1], $str); printf("%s", $ret); このような感じで「taro」と表示するのを期待しているのですがエラーが出てしまいます。 シングル、ダブルクォーテーションで囲っても期待通りの動作はしませんでした。 どのような方法を使えば「taro」と表示出来ますでしょうか。 それから foreach (range(1,5) as $key) { なんとか $i; print ++$i; } print $i; この結果が「11111」になるよう$iを局所変数にするような関数ってありますか?
>>531 もっと基本的なとこからマニュアル読み直して、やり直してこい
ttp://php365.com/bbs/forum.html でログが現在MAX返信数で設定出来ますが、例えば1000などに設定した場合ログの容量が増えるたレスカウント、参照数をそのまま残して古いレスから消えるようにしたいでのです。
例)MAXログ保存数が例えば500に設定出来ましたら(例:レス300参照数1000などが複数あった場合レスカウントと参照数はそのまま生かして)ログ500未満の古いレスから消えていくという感じです。
ちなみにMySQLは使えないサーバーです。
お願いします<_o_>
><_o_> 頭小せえな 参照数やレスカウントをどうやって取得してるのかが問題だ。 別ファイルで保存してんなら、古いデータが消えても 値をクリアししなけりゃいいんじゃないの?
>>534 頭小さいです<_o_>
別ファイルで保存してます。
//ログの最大保存数
maxlog = 500
みたいに設定出来ればいいのですが。
やり方教えてください<(_ _)>
536 :
nobodyさん :2005/05/19(木) 03:05:10 ID:HiH0MLZ7
PHPとPerlはどっちが、今時なの?
どっちーも ってPHSと携帯のやつ昔あったよな
>>536 今、一番旬なのは、PHPコーディングの内部にPerl構文を埋め込む技術です。
>>535 頭の大きさが戻った。
いやいやそーでなくて。
設定したって、反映する動作組まなきゃ意味ないだろ。
でもソースがわからなけりゃ、どこをどう改造するか特定できねえよ。
>>536 両方とも6になるまで待て。
スクリプトエンジン統一するらしいから。
541 :
nobodyさん :2005/05/19(木) 15:13:14 ID:JciC6cGi
FreeBSD5.4にPHP4.3.10をインストールし、 PostgreSQL7.4.7を連携を取るため、 phpizeoを実行しましたが、 acloacl: not found と出てきます。 aclocalってなんですか? また、インストールしなければならない場合の方法を教えてください。
私だけだろうか・・・ isset($abc) || $abc = 1234; ではなく isset($abc) || = 1234; という形にして欲しいのは-;
>>542 $abcがセットされていたら1234を代入する、ってことだよね。
オイラは || を論理演算以外に使う事自体が気持ち悪い。。
工エエェェ(´д`)ェェエエ工
>>541 autoconf の m4 マクロかなにかじゃない?
gnuにある
>>544 そうそう。それにPHP5だと以下の書き方は少し予想外の動作をするからなぁ。
isset($abc) || $abc = 1234;
if (!isset($abc)) $abc = 1234;でも良いけどわざわざ!を使うのも好きになれない-;。
どうせ型無し(厳密にはあるけど)言語なんだから初期化なんて気にしなくても良いんだろうけどね。
549 :
軟式PHP :2005/05/19(木) 16:52:59 ID:???
別にどう書こうがかまわないがメンテしやすい方向でヨロシク。
>>549 心配するな間違えてもあんたがメンテする事はない
551 :
軟式PHP :2005/05/19(木) 17:21:33 ID:???
うむ
これってPerlの人が良くやるけどなんで? パフォーマンス? 個人的には人間が理解しやすくってセオリーを支持したい
だいたい他人のスクリプトは見難い。 一連の流れだけ見て書き直した方が早いと想う事がある。 もしビジネスとかでやるのならその会社なり個人独自の関数があるだろうし、 そうそう汚く書けないでしょ。
>>552 別にPerlの人だけじゃないでしょ。
PHPでよく見る形式だとor。
○○ or die
なんて良く見るでしょ。
やってる事と意味は同じ。
書き方が違うだけ。
>>552 わしもそー思う。
短く書けば書くほどカコイイというのがPerlの文化で
もうそれはどうしようもないけど、PHPは逆の方向でひとつ。
557 :
sage :2005/05/19(木) 18:35:07 ID:hR7Hdele
XML-RPC実装ではまってるんですけど、お助けください。 metaWeblog.newPost APIでブログに投稿する場合、 「struct content /*content構造体 (記事情報)*/」 は、どのような形で生成すればよいでしょうか? $struct = array( "title" => utf8_encode( $title ), "description" => utf8_encode( $description ) ); $content = new xmlrpcval( $struct, "struct" ); という形で生成して投稿すると、以下のWarning文が出力されます。 Warning: reset(): Passed variable is not an array or object in パス略\xmlrpc.inc on line 1687 Warning: Variable passed to each() is not an array or object in パス略\xmlrpc.inc on line 1688 一応投稿は成功しているのですが、要の連想配列の解析に失敗しているようなので、 タイトルと本文がない状態です。 すいません、アドバイスください。
558 :
557 :2005/05/19(木) 18:36:42 ID:???
sage間違えた・・・。 すんません。
559 :
557 :2005/05/19(木) 19:33:49 ID:???
自己解決しました。 1行目のarrayの中身も xmlrpcval を通すんですね。
PHPってインクルードしたファイルから更にインクルードすると変な文字化けを しませんか?。どう考えても文字コードの問題が見えないのに文字化けする 場所がある・・・。
約1ヶ月放置した自分のプログラムを見ると鬱になって弄りたくなくなるんだけど 1年放置してもまた弄りたくなるためのプログラムセンスとか秘訣があったら教えてください
1年放置したら一周回って楽しくないかね
こんなやり方があったか!と感心したりすることもw
565 :
nobodyさん :2005/05/19(木) 21:29:58 ID:x+Iui2vH
お馬鹿な私に教えて下さい ID:???←なんでこうなるのでしょう?
─- 、::::;;;;;;;;;`゙゙''‐ 、 __,,,,......,,,,_/:::::::::/: !| またまた ご冗談を . : : : : : : `゙'ヽ、:::゙ヾ´::::::::::::::::::::::`゙゙゙'''‐'、. l| 、、 . : : : : : : : : r'":::::::::::::::::::::::::,r':ぃ::::ヽ::::::::ヽ! ,、- 、 .ヽ:゙ヽ; : : : : : :ノ:::::::::::::::::::::;;、-、、゙::: rー-:'、 / }¬、 . \::゙、: : : :./::::::::::::::;、-''":::::::::: ,...,:::,::., :::':、 _,,/,, ,、.,/ } ヽ:ヽ、 /::::::::::::::::::::::::: _ `゙''‐''" __,,',,,,___ /~ ヾ::::ツ,、-/ `ヽ、:::::::::;;;、、--‐‐'''''',,iニ- _| 、-l、,},,  ̄""'''¬-, ' ''‐-、 .,ノ'゙,i';;;;ツ _,,,、-‐l'''"´:::::::' ,、-'" ,.X,_,,、-v'"''゙''yr-ヽ / ゙゙'ヽ、, ,.' j゙,,, ´ 7 ,、-''" .l:::::::::::;、-''" ,.-' ゙、""ヾ'r-;;:l 冫、 ヽ、 / __,,.ノ:::::ヽ. / l;、-'゙: ,/ ゞ=‐'"~゙゙') ./. \ / '''"/::::;:::;r-''‐ヽ ,、‐゙ ヽ:::::..,.r'゙ ,,. ,r/ ./ ヽ. ,' '、ノ''" ノ
567 :
nobodyさん :2005/05/20(金) 03:32:05 ID:49y750Em
便乗だけど、IDの後に BE:249941568-### とかってたまに出てるのが何か知りたい
569 :
nobodyさん :2005/05/20(金) 04:12:27 ID:vxAEd/3q
570 :
nobodyさん :2005/05/20(金) 05:12:27 ID:rCvj+1uX
フォームから送信されたデータが空なら〜 を if (!($_POST)) { 〜 } としてみたらうまく動きません。ヘルプメ
572 :
nobodyさん :2005/05/20(金) 23:37:17 ID:p7xt4QDe
1から勉強してオークションをつくるのにどれぐらいかかりますか?
573 :
nobodyさん :2005/05/21(土) 00:03:26 ID:F35tYXG6
flashを使ってtextを 読み込みたいのですが flashでは同じフォルダにあるファイルしか読み込むことが出来ません そこで phpを使って何とかならないでしょうか 他のサーバの htmlを 取得 textに変換後保存とか 出来るのでしょうか? 出来るのでしたらその方法教えて下さいませんか?
574 :
nobodyさん :2005/05/21(土) 00:29:24 ID:nculEuMQ
htmlファイルをインポートして<html>や<meta>など余分な個所を削除し表示させたいのですが 参考になるソースやヒントを頂けないでしょうか
2chなどでhttp〜になっていると自動的にリンクがつきますが、これはどのように探せばよいのでしょうか?
>576 正規表現でマッチしたら置換
質問させて頂きます 現在レンタルサーバを借りて、サイトを公開しているのですが そこですこし、PHPを使って処理をしようと思いました ですがわからないことがあったのでここで質問させていただきます 複数のディレクトリに渡って同じ画像を使いたいと思ったのですが 相対パスだとディレクトリ構成に変更があった際、調整が難しくなるので その画像の位置を絶対パスで記そうと思いました、 ですが、それでもディレクトリ構成に変更があった際に全てのパスを変えなければならないので あるファイルにそのパスを一括して書いておきそのファイルを読み込んで そのファイルのパスのがぞうをとるということにしたいのですが なかなかうまくいきません 私がためしてみたことは /home/user/html/path.dat と言うファイルに <?php define("imgpath", "/home/user/html/img/"); ?> と書いておき その画像を使うPHPファイルの上で <?php require("/home/user/html/path.dat"); ?> で読み込み <img src="<?php echo $imgpath; ?>"hoge.jpg > としたのですが、うまくいきません 何処か間違っているのでしょうか? もしほかに、このほうがいいよみたいなのがあればそれも教えていただけるとありがたいです すいませんが、よろしくおねがいします
>>579 <img src="<?php echo $imgpath; ?>"hoge.jpg >
の結果がどういう文字列になるかちょいっと考えてみませんか?
581 :
579 :2005/05/21(土) 07:46:37 ID:???
すいません 失礼しました、 <img src="<?php echo $imgpath; ?>hoge.jpg" > のうち間違いです もうしわけありません
サーバー上のルートパスとhttpdのドキュメントルートの違い
584 :
583 :2005/05/21(土) 09:20:03 ID:???
鯖がApacheなら$_SERVER関数使ってゴニョゴニョする方が良いんじゃないかな?カナ?
すごい関数ですね
<html><body> aaaaaaaaaa <!--あいうえお--> bbbbbbbbbbbbb ccccccccccccc dddddddddddddddd <!--かきくけこ--> eeeeeeeeeeee </body></html> ファイルを読み込んで<!--あいうえお-->から<!--かきくけこ--> までを読み込もうと思ってるのですが <!--あいうえお-->以下はstrstrで切り取れたのですが <!--かきくけこ-->より↑の切り取り方が解りませんorz 何か良い方法無いでしょうか?
>>588 strposとsubstrの組み合わせとか。正規表現とか。
590 :
588 :2005/05/21(土) 12:49:45 ID:???
>>589 やはりそうなるのですか(´・ω・`)
ありがとう
ぱれぐりぷれーす
592 :
nobodyさん :2005/05/21(土) 13:47:20 ID:K/dchezA
間違えたorz ぱれぐまっち
preg_matchか?
594 :
nobodyさん :2005/05/21(土) 14:10:08 ID:KdX50Oy9
ローカルで実行するとうまく機能するのに、サーバにあげると 致命的エラーがでます。 Fatal error: Call to undefined function: mb_convert_encoding() in 関数がサポートされていないんでしょうか、ちなみに契約サーバは php4.3 利用している本はphp4.2.2です もともと付属してたプログラムでためしてもやはりこれがでます。 完成したやつでためしているので、プログラム自体に問題はないのですが どうすればなおるのでしょうか、おしえてください。おねがいします
>>594 マニュアルのmb_* のページに、
「mbstringは拡張モジュールです。 configureスクリプトでモジュールを有効にする必要が あります。」とある。
言い換えれば、phpのインストールからやりなおせやゴルァ、って事になる。
鯖の設定を弄る権限が無さそうなので、jcode.php等の変換用のライブラリを使うのがよいと思われ。
596 :
nobodyさん :2005/05/21(土) 15:17:38 ID:9r1mGjdL
PATH_INFO
文字列をくっつけたいと思い <?php $hoge = "hoge"; $geho = sprintf("%sguho",$hoge); echo $geho; ?> としたのですが、"guho"と出力されるだけで連結されません %sではないのでしょうか?
>>599 うちでは希望通りに表示されたよ。
連結だけなら . (結合演算子)でもいいんじゃないかな。
pathlist.phpに $path = "/root/"; echo $path; main.phpに include("./pathlist.php"); echo $path; と、記述しているのですが pathlist.phpのechoは表示されるのですが main.phpのechoは表示されません 読み込んだファイルの中で、作成した変数はローカル変数として扱われるのでしょうか? それとも、わたしがおかしいのでしょう? すいませんが、指摘のほどをよろしくお願いいたします
>>601 残念ながら、これもまた希望通りに表示されてしまいました。
マニュアルのincludeのページにも説明がありますが、
main.php側でもpathlist.phpの$pathは有効な変数になるはずです。
603 :
601 :2005/05/21(土) 18:52:04 ID:???
>>602 ありがとうございます
私の環境ではどうしてもうまくいきません。
何か環境依存の関数がありそうなわけでもないですが、
一応、正確に書かせていただきますと
main.phpの
include("./pathlist.php");
と言う行は実際は
include("
http://www.--/pathlist.php ");
と言う風に、www上から読み込んでいます
wwwからの読み込みは
echoがうまくいっているので ちゃんと行われていると思います
>>596 mod_rewriteとかでURLを書き換えるんだよ。
>>603 URL wrapperを経由する場合は、ローカルファイルをincludeする場合と違う挙動をします。
詳しくはマニュアルのincludeのページを参照してください。