【PHP】くだらねぇ質問はここに書き込みやがれpart2
1 :
nobodyさん :
05/01/09 06:01:24 ID:tJkdKk+e お前の下らない質問に回答があるかも知れないスレッドです。
マニュアル読め
4 :
nobodyさん :05/01/09 06:10:42 ID:yJi8rWX7
過去ログを漁ってみるがいい
6 :
nobodyさん :05/01/09 08:14:08 ID:2fyg0lN1
フリーCGIでフリー鯖に使える携帯用うpロダない? メール投稿とか出来たらよいかも よろしくおにいちゃん!
CGI探しは板違い。web製作板の該当スレへ行け
8 :
nobodyさん :05/01/09 09:36:09 ID:O+gxswgn
配列を使った循環参照がうまく行きません! ────────────────── <?php class mother{ var $childs = array(); } class child{ var $age; var $mother; function child($age, &$mother){ $this->age = $age; $this->mother =& $mother; $this->mother->childs[] =& $this; } } $mother = new mother(); $x = new child(15, &$mother); $y = new child(10, &$mother); $x->age ++; $y->age ++; print_r($mother); ?> ────────────────── これで、motherの中のchildのageがそれぞれ16と11になってほしいのですが 実際は15と10のままです。何か良い方法はありますか?
$x =& new child(15, $mother); $y =& new child(10, $mother);
10 :
nobodyさん :05/01/09 10:35:19 ID:9fxwJrgA
$abcが "abc数字3文字"の時はエラー出したいんだが、 これは正規表現使って出来ますでしょうか? 正規表現複雑すぎてさっぱりなので、 誰か分かる人構文を書いていただけたら感謝感激なんですが。 例えば、 if(abc数字3文字の形かどうか){exit();} という風にしたいのです。 abc数字3文字とは例えば、 abc123やabc555などをさします。
Smarty使えるレンタルサーバーってありませんか?
>>10 ([a-zA-Z])+([0-9]){3,3}$
14 :
nobodyさん :05/01/09 17:09:16 ID:F+PYukjE
16 :
nobodyさん :05/01/09 18:09:14 ID:F+PYukjE
日付をYmdHis形式(20050101000000)の文字列として保存しています。 この文字列と現在のシステム日付の差分を計算し、 1時間以上経っていたら処理を行うようにしたいのですが、 YmdHis形式の日付文字列をdate型に変換できなくて困っています。 strtotimeとかでも上手くいかなかったのですが、何かいい方法は無いでしょうか?
18 :
nobodyさん :05/01/09 22:02:35 ID:hHfQCbQy
二次元配列に値をfor文で代入したいのですけどうまくいきません。 Cのように int x[10][10] ; int count=0 ; for(int i=0 ; i<10 ; i++){ for(int j=0 ; j<10 ; j++){ count++; x[i][j] = count; } } とこのようなものをPHPで行いたいのですがどようにすればよいのですか?
>>18 そのままのロジックだと何か問題が?
$count = 0;
for($i=0; $i<10; $i++) {
for($j=0; $j<10; $j++) {
$count++;
$x[$i][$j] = $count;
}
}
てか、Cって for(int i=0 とかできるんだっけか?
>>17 list($year,$month,,,) = scanf($YmdHis,'%4d%2d,,,,');
とかできたはず
あとは単純にsubstr()を使うとか、どうとでもなるでしょ。
質問させてください。初心者です。
ttp://syokunin.no-ip.org/sample/cart/view.php ここのショッピングカートを少しいじって使用するつもりです。
オプションの項目をちゃんと改行して表示したいのですが、
view.phpの中身のどのあたりをどうすればいいのかがよく分かりません。
ここかな?ってところに<br> タグをいれてみたけどうまくいきません。
例えば3段目の商品だと、
_________
生産国(日本)太さ
(10mm)
となっているのを
_________
生産国(日本)
太さ(10mm)
という感じにしたいのです。
ご教授ねがいます。
22 :
nobodyさん :05/01/09 22:57:01 ID:F+PYukjE
$str = '20050101000000'; $time = strtotime(preg_replace('/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/', '$1-\2-\3 $4:$5:\6', $str));
質問させてください。初心者です。
ttp://syokunin.no-ip.org/sample/cart/view.php ここのショッピングカートを少しいじって使用するつもりです。
オプションの項目をちゃんと改行して表示したいのですが、
view.phpの中身のどのあたりをどうすればいいのかがよく分かりません。
ここかな?ってところに<br> タグをいれてみたけどうまくいきません。
例えば3段目の商品だと、
_________
生産国(日本)太さ
(10mm)
となっているのを
_________
生産国(日本)
太さ(10mm)
という感じにしたいのです。
ご教授ねがいます。
24 :
17 :05/01/09 23:27:35 ID:???
>>20 ,22
ありがとうございました。
やっぱり文字列操作をしないとダメみたいですね。試してみます。
25 :
17 :05/01/09 23:41:43 ID:???
>>20 ,22
ありがとうございました。
やっぱり文字列操作をしないとダメみたいですね。試してみます。
>>19 C99仕様のコンパイラじゃないと無理と思われ
>>21 ,23
Selectタグ吐いてるとこにBrを追加するだけ
ありえないけど、もしそれすら出来ないなら丸投げ改造スレに移動
>>19 C99仕様のコンパイラじゃないと無理と思われ
>>21 ,23
Selectタグ吐いてるとこにBrを追加するだけ
ありえないけど、もしそれすら出来ないなら丸投げ改造スレに移動
>>19 C99仕様のコンパイラじゃないと無理と思われ
>>21 ,23
Selectタグ吐いてるとこにBrを追加するだけ
ありえないけど、もしそれすら出来ないなら丸投げ改造スレに移動
>>19 C99仕様のコンパイラじゃないと無理と思われ
>>21 ,23
Selectタグ吐いてるとこにBrを追加するだけ
ありえないけど、もしそれすら出来ないなら丸投げ改造スレに移動
>>19 C99仕様のコンパイラじゃないと無理と思われ
>>21 ,23
Selectタグ吐いてるとこにBrを追加するだけ
ありえないけど、もしそれすら出来ないなら丸投げ改造スレに移動
31 :
23 :05/01/10 00:14:21 ID:???
>>26 おお、できました!
ありがとうございました!場所をまちがってたみたいです。
連投できるのか?
連投できるのか?
連投できるのか?
連投できるのか?
36 :
23 :05/01/10 00:22:20 ID:???
>>30 おお、できました!!
ありがとうございます!ふう、これで進める・・・
なんだか板調子悪いすね
今日はbbs.cgiの様子がおかしいから、 書き込みエラーが出たりタイムアウトしてても 実は書き込めてるらしい。 しかも、書き込みが反映されるまでに10分以上かかるというすばらしい仕様だ(w
質問させてください。掲示板で検索結果を表示する際、検索文字をPOSTで 送信して検索結果をGETの結果(result.php?k=XXX)で表示したいのですが なにか方法はありますか?
41 :
39 :05/01/10 02:21:44 ID:???
>>40 すいません。リダイレクトってどのようにすればいいんですか?
ググってみましたけどrequire使うんですか?
42 :
39 :05/01/10 02:31:38 ID:???
すいません。header("location:");で飛ばすんですね。解決しました。 ありがとうございます。
宣言して無いメンバ変数を作るのは不味いかな? 例えば、 class hoge{ function make($name, $value) { $this->$name = $value; } }
44 :
nobodyさん :05/01/10 04:17:00 ID:FH4yAxR1
HTML部分 <FORM ACTION="xxx.php" METHOD="POST" name="MainForm"> <SELECT NAME="q01"> <OPTION value="0">---お選びください---</OPTION> <OPTION value="1type">1タイプ</OPTION> <OPTION value="2type">2タイプ</OPTION> <OPTION value="3type">3タイプ</OPTION> </SELECT><br> <INPUT TYPE="TEXT" NAME="q02" SIZE="30"><br> <INPUT TYPE="TEXT" NAME="q03" SIZE="90"><br> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="実行"> </FORM> 上のようにHTMLを記述し、下のプログラムからそれぞれq1,q2,q3の値を取り込 むプログラムを作ったつもりですが、実行してもq1の値だけ空で値を選択した値を 取り込みません。(q2,q3は正常に取り込んでくれます) どのようにしたらq1の値も正常に読み込むようになりますか? $q01 = $_POST["q01"]; $q02 = $_POST["q02"]; $q03 = $_POST["q03"];
>>43 そういうキャラクターのオブジェクトならOK。そうでないならNG。
ちなみに、生成済みのプロパティにアクセスしないためには__set()を
>>44 コードは間違ってないように見える。
var_dump($_POST['q01']);とやって変数の中身を確認してみたら。
44の言う通り「空」なら string(0) "" のはずだがどうだろうね
48 :
18 :05/01/10 10:39:49 ID:???
遅レスすいません。 なんとか自己解決しました。 echoを使って生成された配列の中身を確かめていたので勘違いしていました。 printを使ったら期待通りの値を得ることができました。
無茶言うな
>>45 ありがとう。__set()って使ったことなかったけど、こういう事もできたんだな…。
色々とありがたいヒントも得ました。2つぐらいしか思いつかなかったパターンが倍に増えたかんじ。
51 :
nobodyさん :05/01/10 15:04:58 ID:V+OrI4PO
JpGraph-1.16の日本語化ができず困っています。インストール後にグラフを表示 できる事を確認し、日本語が化ける問題に対処しようとgoogleで調べました。 まず、fonts用のディレクトリを作成し、そこにsazanami-gothic.ttfなどのフォント を入れて、jpgraph.phpで DEFINE('TTF_DIR','/usr/local/lib/php/jpgraph-1.16/japanese_fonts/'); このように参照できるようにしました。 次に // Japanese font DEFINE("FF_JPN_START", 40); DEFINE("FF_JPN_END", 50); DEFINE("FF_GOTHIC", 40); DEFINE("FF_MICHO", 50); DEFINE("FF_JPN_DEFAULT", FF_GOTHIC); DEFINE("TF_JPN_DEFAULT", "sazanami-gothic.ttf"); を追加しました。
52 :
nobodyさん :05/01/10 15:06:34 ID:V+OrI4PO
次に function TTF() { $this->style_names=array(FS_NORMAL=>'normal',FS_BOLD=>'bold', FS_ITALIC=>'italic',FS_BOLDITALIC=>'bolditalic'); // File names for available fonts $this->font_files=array( FF_COURIER => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf' ), FF_GEORGIA => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'' ), FF_TREBUCHE =>array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf' ), FF_VERDANA => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'' ), FF_TIMES => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf' ), FF_COMIC => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'', FS_BOLDITALIC=>'' ), FF_ARIAL => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf' ), FF_GOTHIC => array(FS_NORMAL=>'sazanami-gothic.ttf',FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf'), ); このように修正しました。グラフを描画させてみたのですが、インストール直後と同じで日本語が 化けてしまっています。どなたかアドバイスをいただけませんでしょうか。
53 :
nobodyさん :05/01/10 15:17:21 ID:iCuvDIZ1
54 :
nobodyさん :05/01/10 18:22:36 ID:2LPzHX5s
セキュ板にそれらしいスレがなかったので、ここで聞いてみます。 SSLの有効範囲がよくわからないのですが、 例えば、AサイトのSSLフォームでID/PASSを入力し、 SSL無しBサイトのPHP+MySQLと照合する、といった場合、 暗号化されてない状態で盗み見されてしまう可能性があるのでしょうか? 図では A ----------------> B という状況になると思うのですが、 この-----の部分もAでSSLを使用するだけで暗号化されるのでしょうか? イマイチ理解できないのです
55 :
nobodyさん :05/01/10 19:00:53 ID:MMRXO/4k
文字列 $a = "あいうえお かきくけこ さしすせそ たちつてと"; 変数$aの各行にアクセスしたいのですが、 どうすればいいでしょうか?
>>55 $lines = explode("\n", $a)
>>55 改行をデリミタとしてexplodeで分割する。
58 :
nobodyさん :05/01/10 19:12:48 ID:MMRXO/4k
$sql = "SELECT COUNT(*) FROM b_table " ."WHERE subject LIKE '%".$search."%'" ." OR message LIKE '%".$search."%'"; $count_result = mysql_query($sql, $object); $row = mysql_num_rows($count_result); print($row); でヒットした数が出ると思うのですがなぜか全部「1」になってしまいます。 なぜでしょうか?アドバイスお願いします。
>>59 mysql_num_rowsはSELECTで取得できる件数を返す。
つまり、COUNT(*) とやっている以上は必ず「1」になる。
61 :
60 :05/01/10 19:26:28 ID:???
書き方が分かりにくかった。 件数っていうのはCOUNT(*)の値じゃなくてレコード数のこと。 SELECT COUNT(*) だと COUNTの結果が1レコードだけ返るから mysql_num_rowsは常に「1」。
>>60 ありがとうございます。
trueが帰ってきてたんですね。
SELECT COUNT(*)をSELECT * に変えたところちゃんと表示できました。
あ、trueではないんですね(;・∀・)
>>62 てか、SELECT * にしてmysql_num_rowsを使うよりは
素直にSELECT COUNT(*) の値を取得したほうがいいんじゃないか?
66 :
nobodyさん :05/01/10 19:54:35 ID:nGVUH1Bq
文字列中で$ってどう使えばいいっすか? echo '$test'; ってして $test って表示させたいのに実際はブランクになっちまうっすよ。 どうか夜露死苦
67 :
nobodyさん :05/01/10 19:54:52 ID:MMRXO/4k
フォームでポストして var_dump($_POST); したら、カタカナの'ソ'の文字の後ろに ¥マークなどが付加されました。 ページのエンコーディングはshift-JISです。 PHPはmbstring.internal_encodingEUC-JPです。 なぜでしょうか?
68 :
nobodyさん :05/01/10 19:58:26 ID:MMRXO/4k
69 :
nobodyさん :05/01/10 20:00:24 ID:nGVUH1Bq
>>68 できたっすよ。
あんたすげーよ!!
アリガトさん
>>65 COUNT(*) ってのはヒット数を取得するための関数なんだから、
わざわざROWSを取得しなくてもCOUNT値を取得するほうが
本来の意味としては正しいんじゃないの?ってこと。
71 :
nobodyさん :05/01/10 20:04:18 ID:MMRXO/4k
>>69 おいおい
echo '$test';ホントこれか?
echo "\$test";これじゃないのか?
72 :
nobodyさん :05/01/10 20:08:08 ID:nGVUH1Bq
>>71 おいおい、あんまこまけーこと気にしてっとはげるぞ
ここに書くときちょっと書き間違えてるだけじゃねーか
じゃあな、ベイビーちゃん
香ばしいな(w
>>70 いえ、それのやり方を聞いてるのです。
$result = mysql_query("SELECT COUNT(*)〜);
で$resultにint型として数値が入るならいいですけどそうじゃないですし。
>>74 例えば SELECT subject FROM b_table とかやって
subject の値を取得したい場合はどうするよ?
取得する対象が subject か COUNT(*) かの違いだけで、やり方は一緒。
そのやり方すら分からないなら、素直にマニュアル読んでらっしゃい。
結局行数は同じなんだからどっちでもいーじゃん。
78 :
75 :05/01/10 20:34:00 ID:???
漏れはCOUNT(*)は見た目的にキライだな。 だから普段はselect * formだ。 でもヒット数用の関数といわれると使わないとかなとか思ってしまった。
○from ×form ;y=ー(゚д゚)・∵. ターン
どうでも良いけど(*)アナルっぽいね
レンタルで借りている鯖がPHP4とPHP5を両方積んでいるらしく PHP5は.php5という拡張子じゃないと動かないらしいんですが .phpという拡張子で動くように設定できないでしょうか? 今の設定では.phpでPHP4が動くようです。
83 :
59 :05/01/10 20:47:39 ID:???
COUNT(*)を使う方法と言うのは mysql_fetch_rowsを使うのですか? それとも他に何か綺麗な方法があるのでしょうか。
>>83 mysql_fetch_rowsでも構わないし、
カウント値しか取得しないならmysql_resultでもいいと思う。
mysql_result($result, 0, "COUNT(*)");
2ちゃんねるのまとめサイトをやっているのですが、 文書数が1500を少し超えてしまいました。 php使えばと言われたのですが、何をどうやっていいか全然わかりません。 参考にするべき書籍やサイトがあれば教えてください。
>>54 クライアント(ブラウザ)から鯖AまでがSSL。鯖Aと鯖Bの通信経路は別。
91 :
nobodyさん :05/01/11 01:14:12 ID:kHqHs+F6
処理する内容が多すぎて300秒のブラウザタイムアウトを食らってしまいます。 どのように解消すればよいですか?
>>89-90 すいません。自分でもよくわかりません。
というかなんでPHPを使えといわれたのかもよくわかりません。
とりあえず今サイト内検索にmserchというCGIを使っていて、
一昨日lime-wというページランキングのCGIを置いたところ
ものすごく重くなったので、コンピュータ関係の仕事をしている親戚に電話すると
PHPのことを言われました。が、忙しいので相談に乗る時間がないとのことで
ここに書き込んでみましたが、PHPで何がどうなるのかもそもそもわかりません。
>>92 2chのまとめサイトなんだろ?
ならURI晒せ。
暇なヤツが見てくれるだろ。
>>93 LimeCounter+Wのことでいいのか?
たぶん集計じゃなくてカウントが重いんだと思うが、アクセスがあるたびにログファイルをリライトしてるから、
ここがボトルネックのように見える。一アクセスの度に、千数百件のログデータを精査してまるごと更新する
のはページ数アクセス数が多いサイトでは無理がある。
しかし1500行程度でものすごく重くなることはないはずだけどなあ。
PHPで書き直してもプロセス立ち上げるロスが軽減される程度なんで、本質的な解決にはならんと思う。
例えばアクセス過多でログの更新が重くなってるなら、カウントとログ更新のロジックを変えてみるしか。
ページごとにログファイルを分ければ集計は遅くなるけど、アクセスの度に千数百件のデータを精査して
更新する負荷は軽くなる、とか。
書き忘れましたが、LimeCounter+Wは数時間毎にログがリセットされてしまうので削除しました。
>>95 そっちのはページごとにログファイルを作ってるし、カウントアップ時にページリストを
読み込むこともないから、ずっとまともだと思われ。(Lime counterは毎回全リスト全ログを読み書きするというトンデモ仕様のようだ)
それでもログが壊れるなら、なんか別の原因だろうね。
>>95 何をどうしたいのか、箇条書きでいいからまとめてくれ。
一応、漏れが理解できたのは、
現在1500ほどhtml文書がある。
それぞれのファイルに対するアクセス数のランキングを
知りたかったのでLimeCounter+Wを入れてみたが使い物にならなかった。
知り合いに尋ねたところ「PHP使え」と言われたが、どうしたらいいかさっぱりわからん。
と言うところまで。
#DB使ってみるとかになるのかな。
>>97 ページの数だけログファイルがあるとなると、集計結果を表示するときのファイルIOがすごそうだけどな
ランキングが頻繁に参照されるなら集計データをキャッシュするようにしたほうがいいだろう
作者じゃないので口だけだが
>>54 セキュ板行け、この板はセキュリティとは名ばかりですよ
101 :
100 :05/01/11 08:12:31 ID:???
>>この板は この板のやつは
>>97 ありがとうございます。
とりあえず新しいほうを試してみます。
>>98 ありがとうございます。整理してい頂いた
>それぞれのファイルに対するアクセス数のランキングを知りたかった
というのがやりたかったことです。
ただ、これと「PHPを使え」という指示がどうリンクするのかわからないです。
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆ ★ ★ ☆ 質問者が返信する際は、名前欄に「最初に質問したレス番号」を入れろ ☆ ★ ★ ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
1000を越えるログファイルがあるなら
>>99 の言うように集計のファイルI/Oが馬鹿にならないよ。
なさそうな気もするけどDB使ってるのを探したほうがいい。
あるいはHTMLファイルをグループごとにわけて、一ランキングリストあたりの登録ページを減らすとか、、、
>>99 >>104 ランキング一覧は手動で更新してるみたいだから大丈夫じゃね?
リクエストの度に大量のログを読むわけじゃないなら鯖管もおおめにみてくれるかもよ
106 :
87 :05/01/11 10:52:11 ID:???
>>105 ならXreaのアクセス解析を流用すればいいのでわないだろうか、、、
>>102 Apacheのログを解析した方が早いとおもわれ。
109 :
nobodyさん :05/01/11 12:30:43 ID:J22T2QN3
perlの @pairs = split(/;/,$hoge); phpでどう書けばいいですか?
$pairs = explode( ';', $hoge );
111 :
109 :05/01/11 12:46:01 ID:???
>110 (n‘∀‘)ηうおぉぉぉお即レス多謝!!
112 :
nobodyさん :05/01/11 16:12:17 ID:/YomWmAv
mySQL+PHPで掲示板を作成してます。 「\」を投稿するとエラーになってしまいます。 原因はエスケープしてないため、とは思うのですが 現在使っている参考書には「\」を「\\」に変換するなどの記述はありません。 これはどのような原因が考えられるでしょうか? よろしくお願いします。
114 :
112 :05/01/11 17:24:28 ID:???
>>113 当然magic_quoteは同じ設定です。(試したのはoff)
>>112 mysql_escape_string()
PHPの勉強をしています。
Smartyのインストール方法がよくわからなくて。
PHPは自宅のFedoraCore3サーバーにyumコマンドでインストールしました。
なので、個別にSmartyをダウンロードして展開・設定を行う、などの
手順が難しいです。
ご教授願えないでしょうか?
ちなみにPHP4の環境です。PHP5にしたいのですが、そうすると、
xoopsが動かなくなってしまいます。
PHP5環境には、下記サイトを参考に一度してみました。
http://www.sera.desuyo.net/php5/
117 :
112 :05/01/11 17:42:16 ID:???
>>115 いえ、エスケープの仕方はわかってるのですが、
なぜ参考書のサンプルではエラーにならないのかと思って質問しました。
ソースを見なければわからないとは思うのですが、
「\」をエスケープした記述はなくて不思議に思ってます
横レス失礼します。 mysql_escape_string()をやればmysqlのエラーになるような文字は全部エスケープできるのですか? それと掲示板に表示する際問題なく表示するためには mysql_escape_string,nl2br,strip_tagsを使えば大丈夫でしょうか。
119 :
nobodyさん :05/01/11 18:26:03 ID:hD8Gr+rz
問題なく動作すると思われます。 ただしmysql_escape_string()においてperlからphpsへの変更により FedoraCore3をSmartyをダウンロードして展開・設定するには 天ぷらを$pairs = explode( ';', $hogeへ変換し関連させなければ mysql_escape_string,nl2br,strip_tagsを使うことはできません
ほんとくだらない質問なんですが、XHTMLを組む場合、PHPの挿入も<? 〜 ?>と略さず <?php 〜 ?>と書くように、という記事を見つけました。 でも実際XHTML部分の解釈はブラウザ側、PHP部分の解釈はサーバ側なんだから XHTMLなんかにとやかく言われる筋合いはない!と思うのですがどうですか。
122 :
アップロードについて :05/01/11 20:01:43 ID:/7ZGSc21
すみません。PHPの、ファイルのアップロードの仕方について教えて下さい。 環境はPHP4.3.8+Apache1.3.31+WindowsXP なのですが、下記のように書いた datetime.phpの「送信」ボタンを押しても、「$upfile_name」や「$upfile_size」 が表示されず、何もアップロード出来ません。、「$upfile_name」や「$upfile_size」 を表示させるにはどうすれば良いのでしょうか。どなたか教えて下さい。お願 い致します。 <form method="POST" enctype="multipart/form-data" action="datetime.php"> <input type="hidden" name="MAX_FILE_SIZE" value="10000"> ファイル名を入力して下さい <input size="30" type="file" name="upfile"><br <input type="submit" name="submited" value="送信"> </form> <?php $MAX_FILE_SIZE=$_POST['MAX_FILE_SIZE']; $upfile=$_POST['upfile']; $submited =$_POST['submited']; if($submited !="") { //ファイルの情報を表示する print("ファイル名:$upfile_name<br>\n"); print("ファイルサイズ:$upfile_size<br>\n"); print("ファイルタイプ:$upfile_type<br>\n"); } ?>
>>122 そこでマニュアルですよ。
ずばり「ファイルアップロードの処理」なんて章があります
掲示板の検索フォームを作ってるのですが 2頁目以降にいくときにsearch.php?search=検索文字とGETで渡してるのですが 全角だと文字化けしてしまいます。 何かいい方法はないでしょうか?
urlencode('脳味噌使ったら?')
126 :
122 :05/01/11 21:19:38 ID:/7ZGSc21
>123
ありがとうございます!下のように書いたら出来ました!マニュアルって、
ttp://www.phpspot.net のことですよね?
<?php
$submited=$_POST['submited'];
$uploadfile =$_FILES['userfile']['name'];
if($submited !="")
{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print($_FILES['userfile']['name'] . "<br>");
print($_FILES['userfile']['size'] . "<br>");
print($_FILES['userfile']['type'] . "<br>");
print("<a href=\"" . $uploadfile . "\">$uploadfile</a><br>");
}
>>124 urlエンコードというものをご存知ですか?
128 :
124 :05/01/11 21:33:08 ID:???
129 :
nobodyさん :05/01/11 23:18:56 ID:blFDrsTZ
あのショップ作成のPHPのプログラムをSOHOの方に頼みたいと思うのですが、 相場は大体おいくらでしょうか?
業者に訊けよ
131 :
nobodyさん :05/01/11 23:24:06 ID:blFDrsTZ
いい業者はどこよ?
ツヤがよくて湿ってるのがいい業者
>>129 見積もりとか大抵あるので聞いてみては?
135 :
nobodyさん :05/01/12 05:58:33 ID:aUwThzOF
仮想パスから絶対パスを取得したいんですが、うまくいきません。 相対パス(realpath("../dir/file.ext"); )とかだとうまくいくんですが、 絶対パス(realpath("/dir/file.ext"); )とかだとダメです_| ̄|○ (c:\inetpub\wwwroot\dir\file.extが返ることを期待してるのにfalseが返る) どうやらルート(/)がC:\と解釈されちゃうみたいなんですが… 何か設定が悪いんでしょうか? php.iniで(doc_rootをc:\inetpub\wwwrootにしてもダメでした) 要はASPのServer.MapPathと同じことをしたいんです。 環境はWIN XP+IIS+PHP4.3.10です。よろしくお願いします。
>>135 環境変数 PATH_TRANSLATED
> どうやらルート(/)がC:\と解釈されちゃうみたいなんですが… 当たり前
138 :
nobodyさん :05/01/12 10:36:03 ID:2Rwu3ejI
処理する内容が多すぎて300秒のブラウザタイムアウトを食らってしまいます。 どのように解消すればよいですか?
139 :
nobodyさん :05/01/12 10:50:06 ID:5IhIpMX9
phpで、ランダムに文字を表示する方法があればおしえてください こんにちわ とか うぃっす とか こんちゃーっす とかいろんなバリエーションで出したいんです とりあえず <?php print('こんにちは','うぃっす','こんちゃーっす'); ?> これでやってみたんですがだめでした(´・ω・`) だれかおしえてください
ファイルマン(
ttp://fileman.n1e.jp/ )のように、
Flashの再生や停止ボタンを自動でつけるためのスクリプトはどのように書けばいいでしょう?
もしくは、Flash外部から再生や停止コマンドを送信、ということは可能でしょうか?
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。 1. ハードウェア、OSのバージョン等には一字一句触れない。 2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。 3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。 目の前で生じている現象をそのまま具体的に書くなどもっての外。 事実より俺様の脳内解釈を優先すべし。 4. 独り言文体で必勝。 「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」 5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。 6. もう試したことを得意げに指摘してくる奴には、厳しく対応。 「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」 "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。 7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。 「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」 示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので 絶対に避ける。 8. 情報は小出しに。 「エスパーきぼんぬ」 補足 上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。 そのような悪い質問に対して答えられるのは, 質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ, という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。 まちがっても「エスパーの方,回答お願いします」 なんて痛い質問するな。つうか氏ね。
143 :
nobodyさん :05/01/12 12:17:16 ID:o9cou9UP
PHP+mySQLで掲示板を作っています。 検索機能をある程度作ったところなのですが 検索ワードに「b」など入れるとスペース( )が引っかかります。 さらに文字色を変えるために置換をしてるのでスペースの部分が&n<FONT>b</FONT>sp;みたいになり 文字として表示されてしまいます。 スペースがヒットしてしまうのはとりあえずはいいとしてるのですが、文字として表示されるのは困ってます。 置換するときに(^ )などを検索条件に入れれば解決するとは思いますが 他の特殊文字など全部入れるのは汚いので何か簡単に解決する方法はないでしょうか?
144 :
143 :05/01/12 12:24:14 ID:???
投稿したときに消えてしまいましたが、 3行目 スペース(&nbsp;) 8行目 (^&nbsp;)です。
145 :
nobodyさん :05/01/12 12:29:48 ID:EzxAhEkT
東京ゲス女論 都市部にゲス女は集中してる これには理由があって、都市には働き盛りの若い男が集まってくるよな学生とか 当然、都市部には男ばっかりになる。 都市は慢性的な女不足なんだ そこに住んでる男は女がいなくて大変。女はウハウハ そういうところですごした女はタカビー女・ゲス女となる でも、男で東京に住んでるからって悲観することはない 東京に住んでるってことは毎日ゲス女に鍛えられてるってことだからだ 俺自身生涯で一番もてたのは東京を離れてすぐの頃だった 東京ゲス女に鍛えられてたからな。 地方の女は女神に見えた だから東京ゲス女に関わるなと、ちょっと地方に行けばいくらでもいい女はいる 東京で鍛えられてる男なら、モテモテだよと 「都会風吹かせて気取らないこと」 それさえ、気をつければ女なんていくらでも寄ってくる この考えに賛同する人はこのスレを色んなとこに貼り付けてくれ そんで、これ以上女日照りの東京に無謀な男が来ることを防ごうじゃないか!! もしかしたら、コレを見て上京してくる女の子が増えるかもしれないしな 協力頼むぜ!
>>143 スペースを&nbsp;にしてDBにINSERTするんじゃくて
スペースはスペースのままDBにINSERTしておいて
DBからSELECTしたときに
htmlspecialcharsでもつかって変換しておけばよいのでわ?
&nbsp →
149 :
143 :05/01/12 13:17:46 ID:???
>>146 ありがとうございます。
アタマが堅かったですね…
>>147 insertする時にmysql_escape_string();だけ使って
表示するときにhtmlspecialcharsってことですね。
nl2br や strip_tagsもDBから呼び出す時の方がいいでしょうか?
XSS対策のHTMLエンティティ変換なんかは、静的なドキュメントの出力直前にやるのが
よいとされている。
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html が、実際には毎回処理するのはコストになるということで永続化直前にやってしまう。
ハイライトがどういうロジックになってるか知らんけど、&.*; に含まれる文字列を除外したいだけなら
正規表現でなんとかなる。このくらいは捨ててもいいと思うけどね。
$string = 'foobar hoge'';
$keyword = 'b';
$keyword = preg_quote($keyword);
$hl = preg_replace('/((?:^|&.+?;)[^&]*?)('.$keyword.')/', '$1<font>$2</font>', $string);
あと一文字だけの検索ってあんまり意味ない上に負荷かかるから、
記号以外2文字以上とか基準を設けて弾くのも手。
151 :
150 :05/01/12 13:49:19 ID:???
$string = 'foobar hoge''; じゃなくて $string = 'foobar hoge'; ね
Flashの縦サイズ、横サイズ(原寸)を知るにはどうすればいいでしょう?
153 :
150 :05/01/12 14:18:40 ID:???
すまんバグってた preg_replace('/((?:^|&.+?;)[^&]*?)('.$keyword.')|((?:^|&.+?;)&.+)('.$keyword.')(?!:.+?;)/', '$1$3<font>$2$4</font>', $string);
154 :
nobodyさん :05/01/12 14:19:23 ID:PPEzW4f4
>>152 フラッシュに原寸てあるんでしたっけ。
現在、テンプレとなるhtmlの中に<?echo $title;?><?echo $comment;?>のようにDBなどから取得した
データを表示しているのですが、
これを、静的なページにしたいので、出力されたhtmlを別ファイルに書き出したいのですが、
どうすればよいのでしょう。
155 :
150 :05/01/12 14:25:14 ID:???
最終的にこうなりますた・・・(´∀`* ) preg_replace('/([^&]*)('.$keyword.')(?![^&]+?;)/', '$1<font>$2</font>', $string);
>>154 例えば
ob_start();
include('template.html');
$buffer = ob_get_contents();
ob_end_clean();
file_put_contents('static.html', $buffer);
158 :
154 :05/01/12 14:31:32 ID:PPEzW4f4
Call to undefined function: file_put_contents(、、 ああー。、PHP5専用でしたか。。 PHP4でいける方法ってないですかね。。
>>158 file_put_contents();はデータをファイルに書き出してるだけだぞ。しっかりしろ。
>>158 普通に書き出せば?
ファイルオープン
ファイル書込
ファイルクローズ
ウマー
>>158 つか、くだ質イケよ。
ここは、オマエが存在していい場所じゃない
162 :
154 :05/01/12 14:38:07 ID:???
うわ、ほんとでした。。もうしわけないありがとうございます。
>>161 ここが、そのくだ質のように見えるのですが・・・
上の >XSS対策のHTMLエンティティ変換なんかは、静的なドキュメントの出力直前にやるのが >よいとされている。 をやると書き込み時の1回変換だったのが 読み込み時だとレス数回変換になりますよね。 これは推奨されてるとなっているがどの程度の負荷になってしまうのでしょう。 素人考えかもしれませんがものすごい負荷になりそうでコワヒのですが。
165 :
150 :05/01/12 14:42:50 ID:???
>>164 レスを全部一つの変数に突っ込んでから変換すりゃー(゚з゚)イインデネーノ?
169 :
sage :05/01/12 14:59:25 ID:1cdGeyac
PHPのクラスについて勉強になるサイトを御存知のかた教えてください。 基礎は習得したつもりなのですが、配布されているソースには理解できない部分がたくさんあって、 困っています。
>>169 「PHPのクラス」と言えるほど風変わりなものはPHPにはないことないか。
オブジェクト指向そのものについて学んでおかないと直感的にソースを読み書きできないよ。
OOPの基礎が出来てるならオフィシャルのマニュアルで十分なような。
>>154 さん
ぐは、ありがとうございます。
原寸って無いんですね…
Flashについてあまりに無知でした、すみません。
>>164 そう負荷にならないんじゃないの?
1ページに数百件もレスがあるってのなら話はベツだけど…
100件くらいなら…大丈夫なのかな?
その辺は( ′∇ソ ヨーワカラン
ビューの生成パターンやコンテンツの大きさなんてマチマチなんだから、 負荷がどのくらいですなんて言えるわけないでしょ。ケースバイケースだよ。
174 :
nobodyさん :05/01/12 16:00:11 ID:1cdGeyac
>>170 お返事ありがとうございます。
オブジェクト指向関係が甘いのでそれを固めてから再トライします。
オブジェクト指向なんて習得するにはイパーン人なら10年かかるぜ
つまり習得してるヤツは大抵が30くらいの親父か。
変数に""で囲まなくても文字が入ってしまうのですが このような時にエラーが出るようにできるのでしょうか? $str = abc; エラーが出ずにabcが入る print $str; abcと出力される
>>174 PHPはメソッド名の大文字小文字を識別できないwので
そこだけは気をつけろよw
>>177 >未定義の定数を使用した場合、ちょうどstringとして コールしたかのように
>(CONSTANT vs "CONSTANT")、 PHPはその定数自体の名前を使用したと
>仮定します。 この際、E_NOTICE が発生します。
~~~~~~~~~~~~~~~~~~~~~~~~~~~
ってことでerror_reporting(E_ALL);で表示させられるはず
このスレをたまたま見つけて
>>150 さんが言ってたようにエンティティ変換を
出力直前にしてやってます。
しかし何故かフォームから投稿した改行が\nとなって<BR>では表示されません。
DBに書き込むときmysql_escape_string();
HTMLで表示するときnl2br,htmlspecialchars,strip_tagsを使っています。
手作業で\nを<BR>に変換するしかないのでしょうか?
181 :
177 :05/01/12 17:05:23 ID:???
ありがとうございます。 無事解決しました。 これでaspからの変換作業が楽になります。
182 :
nobodyさん :05/01/12 17:22:30 ID:KZ/Cebye
phpでショッピングカートや管理システムを構築するとしたら どれぐらい、時間がかかりますか?
>>182 自分で料理を作るとしたら
どれぐらい、時間がかかりますか?
>>180 nl2brしたタグが
strip_tagsで消去されちゃってるんじゃないの?
>>182 山田花子でせんずりするとどのくらいで
イキますか?
規模等の具体例無し + 個々の技量の指定無し、つー時に 山田花子なんて具体例を出してくるのはイカガ谷^hなものかと。 高見盛似の妹 なら可。
187 :
nobodyさん :05/01/13 02:34:30 ID:hKLwSoTE
phpでショッピングカートや管理システムを構築するとしたら どれぐらい、時間がかかりますか?
HTML_QuickForm_ControllerってPOSTするとurlに変な文字列加えるね あれはどうにもならないでつか?
でつ
192 :
nobodyさん :05/01/13 11:40:46 ID:eU6aIcYN
phpで作ったカウンタを abc.htmlで表示させたいのですが、何かよい方法はないでしょうか? .htmlなのでincludeもできず困ってます
193 :
192 :05/01/13 11:41:57 ID:eU6aIcYN
ちなみに<IMG src="phpカウンタのアドレス" border="0">と やってみましたが、表示されませんでした。 カウンターはテキストカウンタです
194 :
nobodyさん :05/01/13 11:51:55 ID:NtIaNDXJ
PHPのprint関数ってprintの後に半角スペースは絶対いるんですか?
197 :
192 :05/01/13 13:38:39 ID:eU6aIcYN
>>193 スクリプトエレメントは分かったのですが、
オブジェクトが良く分かりません。
オブジェクト指向のオブジェクトでしょうか?
198 :
nobodyさん :05/01/13 13:46:18 ID:Im2hBt0b
<? ・・・・ <img src="../pic/hinomaru.gif"> ・・・・ ?> ↑これを仮に"hinomaru.php"として保存するとしましょう。 その後このphpをよそのphpファイルからincludeして呼び出すとき、 ../pic/hinomaru.gif というファイルの相対指定は呼び出したphpファイルの居場所によって まちまちになってしまいます。こういうのを防ぐにはどうファイルを指定したら いいでしょうか? 呼び出される側のphpファイルが基準になればそもそもこんな問題は 起こらないんですがね・・・
>>198 相対パスじゃなくて ウェブサーバのルートディレクトリ からの絶対パスにしましょう。
200 :
198 :05/01/13 14:06:00 ID:???
>>199 私も初めウェブサーバーのルートからの絶対パスにしてみました。
リンクに関してはルートからの絶対パスで問題なかったんですが
<img src="">
に関してはルートからの絶対パスではうまく表示されませんでした。
<img src="">
は絶対パスサポートしていないのでしょうか?
あと万が一現在借りているウェブサーバーを引っ越さなければならないとき、
ルートの絶対パスも変わってしまうので全部記述し直さなければなりません。
できれば相対パス表記の方が汎用性があっていいかなぁと思っているのですが・・・
>>193 画像データを作成したプログラムにしないと表示されんよ。
dirname(__FILE__)
>>198 hinomaru.phpにはパス情報をもたせず、常にinclude側からパスを指定すれば解決
「サーバルート」と「ホームディレクトリ」の違いが判らん奴が(ry
207 :
198 :05/01/13 14:22:45 ID:???
<? $real_path = realpath ("../pic/hinomaru.gif"); echo '<img src="$real_path">'; ?> としてみたんですがダメでした。画像は表示されませんでした。
結論としては > というファイルの相対指定は呼び出したphpファイルの居場所によって > まちまちになってしまいます。 なってしまいません。
オマイら釣られすぎ。
おもしれえw
212 :
198 :05/01/13 14:32:16 ID:???
相対パスでもええやん。どうせパスが間違ってるだけなんだから。
セルフサービスで丑の刻参りかよ
>>215 includeは、指定したファイルの中身を貼り付けるだけだよ。
相対パスじゃincludeで
>>205 のように処理しないと呼び出したとき対処出来ないだろ。
例えば、/title.php を /test/index.phpからincludeで呼び出したら、相対が変わってくる。
つーかディレクトリ構成変えるつもりならハードコーディングするなよ
>>198 俺もかつて同じ問題にぶち当たったことがある。
そのときは呼び出した側から呼び出された側の相対パスを
検出するfunctionを作ることで解決した。
__FILE__変数使えばできなかないぞ。
一度作ってしまえば使い回しもできるし便利なもんだよ(´ー`)y−~~~
>>202 クライアントに提示する方のパスですから、
つーかおまいらnobodyknows
+
224 :
198 :05/01/13 15:14:09 ID:???
>>207 にあるとおり
<?
$real_path = realpath ("../pic/hinomaru.gif");
echo '<img src="$real_path">';
?>
はひょうじされませんでしたが
<img src="../pic/hinomaru.gif">
はちゃんと表示されました。
何ででしょう(;´Д`)・・・
RedHatLinux 7.3 PHP Version 4.3.3 Configure Command './configure' '--with-apxs=/usr/sbin/apxs' '--enable-mbstring' '--with-pgsql' '--enable-xslt' '--with-xslt-sablot=/usr' '--with-sablot-js=/usr' '--with-expat-dir=/usr' '--without-mysql' '--with-ldap' '--with-gd' '--with-zlib-dir=/usr' という環境です。 [質問] session_start()を使用しているプログラムなのですが、キャッシュコントロールに おおはまりしております。 php.iniでは session.cache_limiter => nocache になっていますが、あるプログラムの部分だけキャッシュさせたいと思っています。 ネットで調べたところ session_start()の前で ini_set("session.cache_limiter","none"); または ini_set("session.cache_limiter","private"); としたのですが、どうもHTTP_CACHE_CONTROLにno-cacheが設定されてしまいます。 そもそもPOSTではキャッシュさせることができないのでしょうか。 どうぞヒントをいただけますようお願いもうしあげます。
226 :
nobodyさん :05/01/13 19:54:01 ID:obCi5PQG
PHPとmysqlの掲示板の検索フォームで躓いております。 空白で区切ったときにandまたはor検索をしたいのですがどのようにやればよろしいでしょうか? 置換で空白部分に「 and 」と入れたのですが'%a and b %'となるのでそのまま文字として認識されちゃいますし…
$keylist = explode(' ', $key); $tmp = ''; foreach ($keylist as $key) { if ($key) $sql .= $tmp . " hoge like \"%$key%\""; $tmp = ' and'; }
228 :
226 :05/01/13 20:00:21 ID:???
とても速いレスありがとうございます! 助かりました
>>224 Webサーバのルートとファイルシステムのルートの違いもわからんのか?
230 :
nobodyさん :05/01/13 21:25:01 ID:eW3QGjHb
eAccelerator使ってる人いますか? 使用感(速度・安定性)はどうでしょう
231 :
nobodyさん :05/01/13 21:28:01 ID:mcYFj/Gd
PHP5+SimpleXMLについての質問です。 [test.xml] <?xml・・・?> <aaa file="c:\hoge"> ・ ・ ・ </aaa> [スクリプト] $xml = simplexml_load_file('test.xml'); $attr = $xml->attributes(); foreach($attr as $key=>$var) { echo "$key -> $var\n"; } ・・・と、こんな感じでXMLを読み込んでfileの属性値を取得しています。 その属性値を表示してみると\記号以降が文字化けしてしまうのですが、 どうやって解消すればよいのでしょうか?
>>231 マルチバイトの文字がエンティティ化されてるだけじゃないの?
もともとtext.xmlのどういう文字がどう化けるの?
233 :
231 :05/01/13 22:46:01 ID:mcYFj/Gd
>>232 >マルチバイトの文字がエンティティ化されてるだけじゃないの?
すみません、知識不足の為この部分がよくわからないのですが、
文字化けとエンティティ化というのはどのように関係してくるのでしょうか?
実際に発生している文字化けは上記の例だと「c:\hoge」が「c:ツ・hoge」となります。
どうやら「\」が 0xc2a5 という値に置き換わっているようなので
今のところ、上記コードのforeach内部で
str_replace(chr(0xc2).chr(0xa5), "\\",$var);
とすることで文字化けした部分を無理やり\記号に置き換えている状況です。
234 :
198 :05/01/13 23:06:37 ID:???
>>229 そうでしたか・・・両者は違ったんですか・・・
>>235 それは、ドザの>198に言っても意味ないよ。
確かに出来たらちょっと怖いけど。
PHPにとある変数に何か値がセットされているかどうかチェックする関数ってある?
>>237 isset
チェック系関数は殆どがisから始まるから覚えておくといいかも
>>238 激しくサンクス
あとdefineでセットした変数はdefined()で調べられるみたいだね
自家製MVCでサイト作ってるけど それでもmojaviつかったほうがいいでつか?
フォームでsubmitした後、ブラウザの戻るを押したときに 値を残したいんですけどどうすればいいのでしょうか
>>241 不可能。っつーかブラウザ側の問題だろそれ。。
244 :
nobodyさん :05/01/14 03:07:54 ID:gDcK7oTt
which prefer cookie or session?
サーバリソースを消費するのは得策ではない。 クライアント側で完結させてしまうのがいい。 そうなるとこの板のネタじゃなくなってしまうけど。
マジレスすると引きこもりにMojaviは必要ない
なんでひきこもりってわかったんだよ〜
stristrを使って、「い」で検索すると「中欧の」という文字にもヒットしてしまいます。 文字コードはEUCです。 UTF-8に変える以外でこれを回避する方法は無いでしょうか。
くだらなくないじゃん
なんか、PHP質問スレがとまってるんで 書き込みにくかったんです。・゚・(ノД`)・゚・。
PHPの環境変数にサーバの容量を参照できるものはありますか?
ない。disk_free_spaceかシェルコマンドで
>>252 あるかないか知りたいなら、phpinfo()で一覧表示できるだろ
257 :
nobodyさん :05/01/14 10:53:57 ID:dc+qAGeZ
<html> <form enctype=multipart/form-data action=upload.php method=post> <input type=hidden name=max_file_size value=10000> 画像:<input name=userfile type=file> <input type=submit value=送信> </form> </html> <?php $uploadfile = $_FILES['userfile']['name']; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { print "アップ成功"; } else { print "アップ失敗"; } 画像アップローダーを作ろうとし 上のように記述して送信ボタンを押したところ、 Warning: Unable to create 'xxxx.gif': Permission denied in /home/xxxx/xxxx/upload.php on line 15 Warning: Unable to move '/tmp/php49xHiN' to 'tohowww.gif' in /home/xxxx/xxxx/upload.php on line 15 のようなエラーが発生しました。 このエラーを回避するにはどのように直したらよいですか?。
>>257 みたまんまだ!バカ!
>Permission denied
259 :
nobodyさん :05/01/14 11:12:48 ID:gDcK7oTt
>>258 まぁ待て。257はPermissionの意味が解らないと見た。
メッセージをExcite翻訳してやったから、257はチラシの裏にでもコード書いてろ。な?
警告: 'xxxx.gif'を作成することができません: 許可は稼働中な/home/xxxx/xxxx/upload.phpで15を否定しました。
警告: 線15の上の/home/xxxx/xxxx/upload.phpの'tohowww.gif'に'/tmp/php49xHiN'を動かすことができません。
>>257 みたいなチンカスでもアップローダを作ろうという気にさせるPHPは凄いな。
まさに、1億総プログラマ化の兆しか・・・
cgiと違って、あぷした後にパーミッションの変更をしなくて(も)良い PHPならではの、弊害だな。
262 :
初心者 :05/01/14 11:54:21 ID:a1cFeSEO
Warning: Unexpected character in input: ' in /usr/home/xx/HTML_DOC/11-2.php on line 67 ↑よくこんなのが出てきたり出てこなかったりするのですが、 プログラムを見ると ' とかは見当たらないのですが、 これってどうしてでしょうか?
Redhat + Apache
PHP4.2で文字コードEUCにてテキストフォームをつくりました
入力された結果をメールでとばし、かつDB(PostgreSQL)に蓄積、というものです。
鰍ニか汲ニかの機種依存文字を入力されてしまった時にメール、DBとも文字化けしてしまうので
用途から括汲フ2文字だけは頻出しそうなので
(株)と(有)にそれぞれereg_replaceしたいのですが
http://www.shurey.com/Soft/JavaScript/font2.html にある表の8780の行のAとBはどう表記していいのか教えていただけますか
>>263 A, Bはそれぞれ一ケタ目
梶ィ\x87\x8A
求ィ\x87\x8B
>>262 引数に文字を受け付けない関数に文字列を渡してるんだろ
つーかなぜ肝心の67行目を隠すかねえ
265 :
nobodyさん :05/01/14 14:15:12 ID:sj4KYmxy
>>262 単なる記述ミス。
'とか"の閉じ忘れだったり、;で行を終らせてなかったりするとよく出る。
対処:
コードをよく見る。
それか、PHPコード中の文字列や関数、変数、コメントを色換えしてくれるエディタにする。
PHP4ではじめて動かしました。 すると、同じphpファイルなのに、ファイル名で挙動が違います。 「index.php」の場合、プラウザに表示されず、ファイルをダウンロード しようとします。 「foo.php」の場合、正常に動作します。 なにが問題で、このような動作をするのでしょうか?
>>262 NixならEUC-JPかUtf-8だろうから、閉じ忘れが有力なあ
エディタがないならhighlight_file()とか
>>267 Apacheの設定かと思われ。
httpd.confか.htaccessファイルを見れ
よくわからなかったらサバ管理者に聞いてくれ。
270 :
263 :05/01/14 14:40:17 ID:???
>>264 ありがとうございました
$hoge = ereg_replace("\x87\x8A","(株)",$hoge);
$hoge = ereg_replace("\x87\x8B","(有)",$hoge);
のようにしてみましたがダメでした、もうちょい格闘してきます
>>270 そのコードで動くはずだけどね。
$hogeの中身がSJISじゃないんじゃない?
272 :
263 :05/01/14 14:59:05 ID:???
>>271 ファイルエンコーディングはEUCです、ってーことは
参照する文字コード表が間違ってる…んですね。
orz
ごめんなさい、探してきます
(・∀・)ニヤニヤ
print bin2hex('');
275 :
263 :05/01/14 15:11:46 ID:???
対象をEUC=JPに変換してるなら $hoge = ereg_replace("", "カブ", $hoge); でいいじゃないか
奥義を伝授しよう mb_regex_encoding("EUC-JP"); mb_ereg_replace("\xAD\xAE", "(株)", $hoge);
278 :
263 :05/01/14 16:16:06 ID:???
>>276-277 自分はmacで制作しているんですが
自機ではOKなんですがwin機で変換できないです
win機でbin2hex('');してもmacでも同じ"adae"なのに…
bin2hexはASCII文字列を返してくれるようなのですが
EUCのコードを返してくれる関数ってないんでしょうか?
マクの特殊文字ってWInとはコードが違わないか?
釣れますかな
281 :
231 :05/01/14 16:50:07 ID:???
すみません、また質問です。PHP5+SimpleXMLでてこずってます。 外部実体エンティティが上手くオブジェクト化されないようです。 simplexml_load_file()でxml文書を読み込み、print_rで内容を表示してみると外部実体は展開されているように見えますが 実際にオブジェクトをたどってみると途中でNULLとなってしまい、外部実体の内容を取得できません。 これはPHPのバグなのでしょうか? [hoge.xml] <?xml version="1.0" encoding="Shift-JIS" ?> <hoge> test </hoge> [test.xml] <?xml version="1.0" encoding="Shift-JIS" ?> <!DOCTYPE test [ <!ENTITY hoge SYSTEM "hoge.xml"> ]> <fuga> &hoge; </fuga> [PHP] <?php $xml = simplexml_load_file('test.xml'); var_dump($xml); // ここでは展開されて見える var_dump($xml->hoge); // これだと見えない ?>
282 :
231 :05/01/14 16:52:53 ID:???
スミマセン、test.xmlのDOCTYPEが間違いです。 誤:<!DOCTYPE test [ 正:<!DOCTYPE fuga [
すみません。
>>284 は、俺じゃないです。
>>283 それが俺の掲示板の使い方です。
お金を払わずにわからない所があれば誰かが教えてくれる場所だと思っています。
なので、わからない人は返事しないで頂けませんか?
ここにいる人たちだって、わかる質問があれば答えるべきです。
それがこのスレの住人としての責務じゃないですか?
質問に回答がこないようじゃ質問スレとしては成り立たないと思います。
>>285 ごめん、俺が間違ってたよ。
お前の言うとおりだ。悪かった。
文字列中の「&」について、 「&」→「&」と変換したいです。 でも、"や∩や† 文字実態参照・数値文字参照として用いられる「&」 は変換したくないです。 preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[x0-9a-f]{2,6};)/", "?", strtr($string, $trans)); こういうのを見かけたんだけど、マニュアルよんでも strtrのあたりとかがよくわかりません。 こういう処理は必要なくて、ただhtmlentitiesに食わせるだけでいいんでしょか?
マークシートには専用の鉛筆を使いましょう。 効率が断然上がり、解答により多くの時間をかけることができるようになります。
290 :
263 :05/01/14 22:15:28 ID:???
できたー $hoge = ereg_replace("\xad\xea","(株)",$hoge); $hoge = ereg_replace("\xad\xeb","(有)",$hoge); 知り合いがもってる文字コード表の本でみてもらったorz そのあとで print bin2hex(''); print bin2hex(''); した結果を入れている事に気がついた。 "\xad\xeb"は264さんの書き方をまんまコピーしただけなんで \x○○の書き方を見直してきます ありがとうございました
文字列のある文字列と別のある文字列の間の文字列を 取得するにはどうすればいいですか? function GetText($word,$wstart,$wend){ preg_match("/($wstart)([^\n]+)($wend)/i",$word,$text); return $text[2]; } 文字列$word内の$wstartと$wendの間を取得する ような処理をさせようとしています。 なんか検索する文字によって↓のエラーがでる Warning: Unknown modifier 'a' とか Warning: Unknown modifier 't' 対処方法またはエロイ人用のすばらしいものを教えてください。
なんとなく。 function GetText($word,$wstart,$wend){ $pattern = "/$wstart([^\n]+)$wend/i"; preg_match($pattern,$word,$text); return $text[1]; }
293 :
nobodyさん :05/01/15 02:18:03 ID:wU+VTC+T
配布サイトからリンク集phpをダウンロードさせて頂きました。 全てのファイルをアップロードし、パーミッションも設定が終わりましたが、 Warning: array_shift(): The argument should be an array in /*/*/***.php on line 25 Warning: Invalid argument supplied for foreach() in /*/*/***.php on line 26 というエラーが出ます。 この前に出た絶対パスのエラーは原因を自力で探せたのですが、↑が分かりません。 ぐぐっても参考になるものは出て来なかったのですが、バグなのでしょうか? ちなみに***.phpの25、26行目はさわっていません。 教えてください!お願い致します。
>>293 ごめん、全く意味がわからない。
せめて、そのスクリプトのコードを見せて貰わないことにはどうにもならない。
#エスパーキボンヌなら帰って下さいね
296 :
nobodyさん :05/01/15 02:25:29 ID:wU+VTC+T
>295さん 説明不足ですみません。どこまで書けばいいのか分からず・・・ コードは25、26行目でよろしいでしょうか? $this->total = trim(array_shift($nums)); foreach ($nums as $tmp) { となっています。ファイル名はcommon.phpとなっています。
>>293 それだけじゃわかんないなぁ。
25行目のarray_shiftの引数が配列じゃないんだろうから、
その引数となってる変数をスクリプトから検索してみて、
定義されてるところを見てみたらいいかな。
で、ググる以前にwarningの部分を訳してみたのかい?
>>296 とりあえず、>297の言うとおり$numsが一番最初に出てくる場所を探してみ。
foreachのエラーはそれを解決したら自ずと解決するような気がする。
どっかから落としたものなら、配布元に聞くのが一番手っ取り早いんだけどな。
300 :
nobodyさん :05/01/15 02:32:36 ID:wU+VTC+T
お答えくださりありがとうございました。 で、せっかく答えてくださったのになんなんですが、 phpスクリプトのことはさっぱりなので・・・、作者さんに問い合わせてみることにします。 今後の為にこれから勉強していきます。 初心者が設置するなって感じですが、どうしても使いたかったものなので・・ すみません。
301 :
nobodyさん :05/01/15 02:36:47 ID:wU+VTC+T
わ、リロードし忘れました! >298さん エキサイトで訳してみると シフトを整列させてください、 供給された根拠のない議論とでました。 >297 phpファイルがたくさんあるんですが、 全部を検索すれば良いのでしょうか? 設置の際のエラーではなく内部のものなら、作者さんに問い合わせた方が良いとのお答えなので、 質問しつつ検索してみます。
>>301 まぁ…くだ質だから答えるけど、
common.phpから探してみてないようなら、
他のファイルでcommon.phpをincludeしてたり
requireしてたりするスクリプトの中から検索する。
ただ、検索して見つかったところで何もわからないんだったら、スレ違いになるのかな。
> Warning: array_shift(): The argument should be an array in /*/*/***.php on line 25 警告 : array_shift()関数: /*/*/***.phpの25行目、引数は配列でなければなりません。 > Warning: Invalid argument supplied for foreach() in /*/*/***.php on line 26 警告 : /*/***.phpの26行目、foreach()に正しくない引数が渡されています。
304 :
nobodyさん :05/01/15 03:00:36 ID:wU+VTC+T
>302さん common.phpには$numsも$tmpの文字はありませんでしたし、 ほんとに何も分からない状態です。 さわって変なことになるのは怖い気もするので大人しく作者さんからの回答を待ってみます。 その間、皆さんのレスを元にphpマニュアルと格闘します・・ お手数お掛けしてすみませんでした。 お知恵を貸してくださった方々に感謝致します。
305 :
nobodyさん :05/01/15 06:26:23 ID:8dAi9b4C
グローバル変数って関数内ではglobalしないと見えないんですよね… なんかめんどっちぃなぁ。よく忘れてエラー出まくり…_| ̄|○
メモ帳にでも書いてろ
>>305 本当に変数じゃないといけないのか良く考えて
値が変わらないヤツは定数にするとか
308 :
nobodyさん :05/01/15 19:10:23 ID:6vuxoIpW
トラックパックって何?
>>308 ピーッピーッ バックします
ピーッピーッ バックします
ってやつ
310 :
nobodyさん :05/01/15 19:44:59 ID:6vuxoIpW
>>309 なるほどよく分かりました・・・ってチッガーウよ
トラック/ \”ックでは無くてトラック/ \゚ックです
ピーッピーッ pack()しますじゃね?
312 :
nobodyさん :05/01/15 20:10:10 ID:vOEqqKZU
質問させていただきます。 最近HPを作り始めたのですが、 FTPで画像をアップロードしてHPに貼り付けた画像の、 プロパティを見たらURLが普通のフォルダ名とかになってるんです、 どうやってHTTPになるんですか? 教えてください。お願いします
素でトラックバックだと思ってた… 反応を返す意味合いだと。
>>312 まずは、そのHPとやらのURLを晒せ。
話はそれからだ。
てか板違いだろ
318 :
nobodyさん :05/01/15 20:54:30 ID:6vuxoIpW
ああっわてはアホやった〜〜〜 トラックバックやった〜〜スマン。 パソコンの解像度が悪いんや、わてがわるいんとちゃうで。 まっ下らない質問のスレだからゆるしてたもれ。
319 :
nobodyさん :05/01/15 20:56:54 ID:B4Q78ZKG
>>312 超初心者の典型だな
imgタグのURLの書き方を勉強しなおした方が良いぞ
あげてもた;
322 :
nobodyさん :05/01/16 11:46:47 ID:iPhUnTdV
おまえら、ちょとすれ違いゴメソ。 PHP中心に今後使用していきたいのですが、 資格の基本情報技術者でプログラム開発言語って アセンブラとC言語どっちがよかとでしょうか? アセンブラが一番点を取りやすいそうですが、 個人的にはC言語を身に付けたいと考えています。 PHPやる場合、どっち覚えた方がとくでしょうか? ヨロシコ!!
>>322 PHPはアセンブラよりCに似てる。
アセンブラを本当の意味で理解できればPHPなど屁でもない。(たぶん)
>>322 PHPなら1週間で覚えられる。
PHPを勉強して「こんなもの・・・」というものを漠然とつかんだら、Javaに移行した方がいい。
実際に使うのも、資格をとるのも、飯の種にするにも、Javaの方が数段有利。
Javaを覚えれば、CやC++なんかも簡単に使えるし、万が一、今後C#やらが伸びてきたとしてもほぼ完全に対応できる。
逆に、PHPを覚えてもPHPしか使えない。
>>322 CがかけるとPHPをソースハックでけるぞ
>実際に使うのも、資格をとるのも、飯の種にするにも、Javaの方が数段有利。 は同意するが、 >Javaを覚えれば、CやC++なんかも簡単に使える はちと無理がないか。Javaを覚えてるならCやC++で同じように使える といえそうな部分は、PHPを覚えてるならCやC++も…と同じ程度で そんな程度で「CやC++を使える」なんて言えないでしょ。
一匹目w
^^;
>>326 そうかなぁ〜
変数の扱いとか、その他の文法や作法はJavaもC++も同じだと思うけどな。
PHPとC++やJavaの文法や作法には大きな違いっていうか、根本的に違う。
文法・作法を覚えれば、あとは、その言語固有のロジックを覚えればいいだけであって、それは至極簡単なもの。
もっとも、アルゴリズムやデザインパターンを網羅した上での話しだが。
330 :
329 :05/01/16 14:03:44 ID:???
×それは至極簡単なもの ○それは至極簡単な事
俺のプログラム遍歴 Fortran(大学の授業) C(大学の授業&実務) VB(趣味) C++&VC++(実務) Java(実務) Delphi(実務) Ruby(趣味) PHP(趣味) C#(今後万が一の為・趣味)
文法や作法でブッた切って分けちゃうと 手続き型(C)、関数型(Lisp)、論理型(Prolog)をやっときゃいい、 って話で終わっちゃうからなぁ。 オブジェクト指向型でSmalltalkも混ぜてもいいかな。 (未来は分からんが今現在の)WebProg向けの入り口としては Java、PHP、Perlのどれかでいいっしょ。 上の3つともアセンブラで必要になってくる知識(レジスタとか)は (制御できないという意味で)必要無いし、演算子や制御構造の書き方に 慣れるくらいの心積もりでCをやっとけばいいんじゃないかなぁ。 で、続くようならプログラム板へGo。
PHPとJavaScriptってベン図を書くとどちらがどちらに内包されていますか?
そういう関係にはならんだろ
PHPの挙動についての質問です。 PHPは、XXXX.phpにコードを埋め込みますが、これは、そのページが呼び出される度にコンパイルしているのでしょうか? JavaServletやJSPでは、コンパイルされるのは、最初に呼び出された一回のみで、 あとは、コンパイル済みのクラスファイルを用いるんですが、PHPの挙動はどうなんでしょう。 呼び出される度にコンパイルしていたんじゃ、かなり不合理っていうか鯖側の負担が大きいと思うのですが。 いらぬ心配なんでしょうか?
>JSPでは、コンパイルされるのは、最初に呼び出された一回のみ どのJSPを使ってるんだ?
>>338 厳密さを求めるとアレだが、Servletのライフサイクルを考えればそう表現しても問題ないだろ。
#それを言い出すとOSの実装上、PHPも逐次処理のインタープリタではなくなってしまうが・・
Javaはバイトコードを実行時コンパイルするからマジ効率悪い立ち上がり遅せえ フォートラン最強
>>336 だからコンパイラとか(中間)コードキャッシュのソリューションが存在する。
有名どころだとZend社かionCube社の製品群。
【PHP】くだらねぇ言語談義は他所に書き込みやがれpart1
>>340 Javaは汎用言語だからね。
そもそもPHPのように高速に逐次コンパイルできる仕様じゃないから負荷比較するのが間違い。
って比較対象フォトランかよ
【FNN】滝川クリステル結婚談義はここに書き込めPart1
345 :
336 :05/01/16 17:10:54 ID:???
皆さん、ありがとうございます。 う〜ん、効率の面から言えば、どっちもどっちって事なんですね。 PHPは、簡単に作れて、簡単に実行できるが、変数などの定義が甘くまたインタプリタ言語のため、処理と表示が完全には分離できない。 昔作ったプログラムや他人が作ったプログラムをメンテする時は、地獄を見るかも。 Javaは、別途tomcatなどのサーブレットコンテナが必要になるが、 制御・処理・表示のロジックが完全に分離できてメンテが楽。 時間が経過しても、他の人が作ったものでも、見れば一発で何が何をしているかがわかる。 やはり、対象プロジェクトの規模によって使い分けるのが正解のようですね。
それ以上恥を晒す前にどの言語でもいいから勉強しろ。話はそれからだ。
くだスレはワナビー君も歓迎しますよ
そこなハードゲイも熱烈歓迎ですよ
連想配列のキーの値を変えた連想配列を作りたいと考えているのですが array_walkですと第二引数に渡す関数の第一引数を参照で渡せばよいのですが function change_val(&$val, $key) { $val = $val + 5; } array_walk($array, 'change_val'); 同様にキーを変更する時に参照で渡せばできるかもと考えやってみたのですができませんでした。 function change_key($val, &$key) { $key = 'prefix_' . $key; } array_walk($array, 'change_key'); foreachを使って新しい配列に入れるということならできるのですが 上手くできる方法・関数をご存知の方がいらっしゃいましたらご教授頂けないでしょうか。 どうかよろしくお願い致します。
残念ながらキーのみ書き換えることはでけん
無理ですかorz ありがとうございました
php5が本格的に商用サイトで使われるようになるのは、いつくらいだとおもいますー?
おととい
355 :
353 :05/01/17 01:26:26 ID:???
やまだくん、
>>354 のざぶとん5枚もってって
マニュアル見てたらSPLで汎用的な例外クラスが定義されてた。 どこぞの商用ライブラリなんかが出してくるという話もあったけど、 オフィシャルで対応してくれるのはありがたいな。 ファイルI/Oなんかも扱ってくれる予定はないんだろか。 6) Exceptions SPL provides a set of standard exception classes each meant to indicate a certain problem type. class LogicException extends Exception class BadFunctionCallException extends LogicException class BadMethodCallException extends BadFunctionCallException class DomainException extends LogicException class InvalidArgumentException extends LogicException class LengthException extends LogicException class OutOfRangeException extends LogicException class RuntimeException extends Exception class OutOfBoundsException extends RuntimeException class OverflowException extends RuntimeException class RangeException extends RuntimeException class UnderflowException extends RuntimeException
357 :
281 :05/01/17 11:55:23 ID:???
>>284 と
>>285 は俺じゃないです。
すみません、
>>281 の件ですが、本当にわからないんです。
XMLに詳しい方どなたか教えてください。
SimpleXMLのバグならバグであきらめますので・・・
358 :
nobodyさん :05/01/17 14:09:25 ID:SCuNVMMV
この仕事って学歴関係ある?完全に実力主義?
>>358 まぁマジレスすると、他の職種よりは、学歴は重視されない。
っが!若かりしころに勉強を放棄して低学歴になったような奴では、絶対にできない仕事。
こつこつマジメに努力してようやく勤まるか?って感じだ。
そもそも、こつこつマジメに努力するような奴に低学歴は少ないってこった。
学歴不問でプログラミングを仕事にするには、
最低 C/C++/VC/VB/Javaの5つの言語、そしてRDBを根本から理解し完全マスターしない限り採用されないだろ。
PHPだけ覚えても全くの無駄。
アルゴリズムと物理コンポーネント構成・ハードウェアは必須じゃね? サーバサイドだとVB/VBSは微妙だなあ。うちがMSで固めた仕事をあんま受けてない所為かも知れんけど。 *nixの勉強したほうがよさげ。PCばっかり弄ってて大学卒業できませんでしたって履歴は諸刃ですなあw
>>361 個人で弄ってても業務のコアな知識は身につかんだろ
363 :
358 :05/01/17 16:26:52 ID:???
むう・・。なるほど。 専門学校より大学のほうがよさそうですね。 親切さんどうもでした。
364 :
291 :05/01/17 17:32:22 ID:???
興味ない人がほとんどだろうけど、 原因がわかったので書いときます。 $word,$wstart,$wendのいずれかに" / "(スラッシュ)があったから エラーが起きてたみたいです。 Warning: Unknown modifier 'a' →</a>を含んでいた Warning: Unknown modifier 't' →</td>を含んでいた preg_match()を理解してなかったのが原因か・・・汗 まだまだPHP初心者だけどがんばります。
366 :
291 :05/01/17 18:25:01 ID:???
20050117.dat 等の日付を名前にして作られたファイルが存在すれば <p> 2005/01/17</p> と、正しい日付表示を書かせる方法は無いでしょうか?
ナニ人?
>>368 readdir()を勉強して後は自分の頭で考えれ
ヒント!
371 :
nobodyさん :05/01/17 23:54:36 ID:rYi/da2g
プログラムのプの字もわからない人間です。 板違いでしたらご指摘お願いします。 perlで書かれたあるプログラムを使おうとすると以下の様なエラーが出ます。 Can't locate Config/Simple.pm in @INC 色々とサイトを巡ってConfig::Simple;とやらをインストールすれば改善されることがわかったのですが、 ppm install Confing-Simple でインストールすることが出来ませんでした。 行き詰まってしまったのでどなたか手を差し伸べていただけないでしょうか。 宜しくお願いします。
372 :
371 :05/01/17 23:55:39 ID:???
上げてしまいました。 申し訳ありません。
はいはい
374 :
だいすけ ◆P0//Gikoow :05/01/18 00:14:23 ID:5AwhPu67
4,2,2ですが、 コマンドラインのphpで、 foreachのなかでsprintfしたら、 <sprintfの中身の最後に「\n」いれる>か<sprintfの直前に print "\n";をいれる>かしないと、 無限ループしてしまいます? いや、sprintfの返値をprintしても表示されないから、無限ループじゃないのかな? これってバグですかね???
お客さんに納品するスクリプトでmojavi使ってる人いますか?
378 :
nobodyさん :05/01/18 00:56:19 ID:VNKbaYT9
imageで作成した画像を バイナリとしてDBに入れたいのですが、 バイナリとして取り出す関数がないようです。 いったんファイルに落としてから読み込むしか方法はないのでしょうか?
DBによる
380 :
262初心者 :05/01/18 11:14:56 ID:RETkWYls
答えてくれた方、ありがとうございます。 warningですが、出るときと出ないときがあって あまりよくわからなくなってます。エディタは「サクラディタ」ってのを 使っています。warning部分ですが、 $password = $_POST["password" ]; POSTされたものを変数に入れるところです。 たまに出るくらいなのであまり気にしてませんけど。
380 名前:262初心者[] 投稿日:05/01/18(火) 11:14:56 ID:RETkWYls わざわざ「初心者」って書いてあるのを見ると「ムカッ」っと来るのは俺だけですか?
>>381 初心者と書かれるより質問の内容が・・・・笑
ある意味、面白いけどね
>>371 スレタイトルに丁寧にも【PHP】って書いてあるのにPerlの質問をするところがステキ。
385 :
nobodyさん :05/01/18 17:31:03 ID:bJTxBb/g
if文に関しての質問なのですが、 if ($chara == "a"){} 上のようにアルファベットとの比較なら可能なのですが、これが if ($chara =="あ"){} とひらがなになると比較ができません なにか方法はないでしょうか?
>>385 if( mb_ereg("^あ$",$chara) )
たぶん・・・
>>385 $charaに入っている「あ」と、スクリプトが書かれているPHPソースの
文字コードが違うんざしょ。
388 :
385 :05/01/18 18:25:58 ID:bJTxBb/g
>>387 さん
ご指摘の通りどうやら文字コードが違うのが原因のようです。
$charaにはmysqlのデータベースから読み込んだ文字列が入っています。
mysqlのdefault-char-setはsjisで、phpのファイルもsjisで保存してあるんですが
原因がよくわかりません。php.iniの設定も見直す必要があるんでしょうか?
なぁ。PHPがあればJavaScriptなんてイラネーなんて思ったりしたこと無い? JavaScriptはブラウザ側でスイッチ切られちゃうけどPHPは有無を言わさず 佐波川で実行しちゃうでしょ?
アホか・・・
>>389 お前頭いいな・・・夢がひろがりんぐww
395 :
nobodyさん :05/01/18 22:31:12 ID:yzPT/NPi
JSで書かれたmd5.jsやsha1.jsなどを見つけたので,PHPのmd5関数 やsha1関数と比較してみたのですが、アルファベットや数字だけなら JSもPHPも同じハッシュ値になるのですが、ひらがなや漢字などの入力 ではJSとPHPでハッシュ値が違っているのですが、これは何が原因なのでしょう?
md5等がどういうものか考えればわかるとおもわれ
398 :
nobodyさん :05/01/19 00:00:54 ID:/wCL7Oot
ファイルのアップロードについてなのですが。 PHP4+Apache1+FreeBSD4という組み合わせでやってます。 この環境だと、LAN内でのファイルアップロードが非常に遅いのです。 OSがRedHat9だとLANとしての速度が出ます。 Sambaもインストールしてあるのですが、これもLANの速度でコピーできました。 Apacheを2に代えてみても現象変わらず。 PHP側の設定で速度を速くするものがあるのでしょうか? RedHatのphp.iniをそのままコピーしてFreeBSDの方へ入れてみたのですが やはり現象変わらずでした。
phpの設定にはないんじゃない?
変数に関数名を入れて その変数から関数のコールって可能? $func = 'getAAA'; xxxxx($func); <-- getAAA()がコールされる
>>401 無理じゃないの?
どうせ、予め特定できる関数なんだから、
もう一個、関数呼び出しようの関数でも作って、
その中でcaseでも使って個々の関数を呼び出せば?
ってか、なんか関数の使い方間違ってない?
>xxxxx($func); <-- getAAA()がコールされる
>>401 call_user_func()
とか
>>402 ,404
サンクス!
出来ないかと思ったら意外と簡単に出来てビックリ
>>405 calll_user_funcのほうは
配列つかえばオブジェクトのメソッドも呼べるよ
>>407 せっかく教えてくれてるんだろ。お前こそ喋るな!
エク○ルでもやって喜んでろ
telnetでログインし 階層下の.phpファイルすべての属性を755にしたいんですけど どうすればいいのでしょうか。
>>409 何がわからんのかわからんけど、そんなこと聞いているようじゃ
危険だから、FTPでやれ。
find ./ -name "*.php" | ???
413 :
nobodyさん :05/01/20 15:29:09 ID:n01d2Bgc
数字を昇順に並び替えようと「sort」(以下プログラム)を実行したところ、Aのようになってしまいました。 Aを array(5) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [3]=> int(3) [4]=> int(4) } のような結果にするにはどのように書き換えればよいですか? $array = array(3,4,2,0,1); var_dump($array); // ←@ $array = sort($array); var_dump($array); // ←A @の結果 array(5) { [0]=> int(3) [1]=> int(4) [2]=> int(2) [3]=> int(0) [4]=> int(1) } Aの結果 bool(true)
sort($array);
>>413 マニュアルをジーーーーーっと10分間。
void sort ( array array [, int sort_flags]) ↑
ぶっちゃけこの仕様の方がどうかと思う木曜日の夜
配列をコピーしまくるのはイカガ谷^hなものかと。
>>398 の件ですが、FreeBSDのRWINが小さすぎるのが原因と判明しました。
増やしたら直りました。
配列関数ってまだ開発途中まきがする。 引数の順番とかあきらかにまちまち
PHPの配列関数は、 each(), reset(), current(), next()などの内部ポインタを使った 古い関数群からはじまって、あとからあとから考えなしに そのとき便利だろうと思いついた関数が追加されまくっているのだよ。 統一性も思想もなにもあったもんじゃないぞ。
だがそれがいい
システム入れ替えでPHPのバージョンがズガーンと上がってしまい 仕様変更による書き換えに苦しんでいまつ・・・・・・ すまん、裏が白いチラシがなかったもんで。
425 :
nobodyさん :05/01/21 11:53:33 ID:3XYRh2Rh
ページにアクセスしたときに今月のログファイルが無かったら 自動でログファイルを生成する方法はないでしょうか? 今は空ファイルをコピーすることで対応しています。 $getmon = gmdate("Ym", time()+9*3600); $monlog = "./log/$getmon.log"; $empdata = "./log/empty.log"; if(!file_exists("$monlog")){ copy($empdata, $monlog); chmod($monlog, 0666); } しかし、この方法だとエラーが起きてしまいます。 何かいい方法があれば教えてください。
エラー内容は?
428 :
425 :05/01/21 12:19:23 ID:3XYRh2Rh
>>426 aとは?なんでしょう?
PHP5だとOKなんですがPHP4だとだめみたいで、
ちなみnレンタルサーバーがPHP4なんで…orz イミナイ
429 :
425 :05/01/21 12:22:16 ID:3XYRh2Rh
>>427 パーミッションなんたら…
./log/200501.logファイルが見つかりません
ちなみにempty.logのパーミッションは666です。
質問です。 あるサイト(全部php4とmysql)で、 IDとパスワード(Basic認証でなくformの)で入れるページがあり、 入ったあと、特定のURLのページのソースをまるごとゲットしたいのですが、 どう新しくスクリプトをかけばいいのでしょうか? なお、「あるサイト」と「新しいスクリプト」は同じサーバ上にあり、 fopenやソケット通信は許可の設定になってます
>>429 logディレクトリのパーミッションを707とかにすればいいと思う
>>425 なんでログ生成時に書き込みしないの?
空ログだけを作りたいの?
434 :
430 :05/01/21 14:01:27 ID:???
すみません、pearいれてない(キマリでいれられない)んです。。。 で、lynxコマンドはいってません(いれなれない) で、wgetははいってます。 systemコマンドは使えます。 なお、4.9-RELEASE FreeBSD です
435 :
430 :05/01/21 14:14:16 ID:???
ちなみに、perlでhttpクライアントを自作したことはあります
>>430 ならperlでやれ。
それかPEARを入れられない理由を述べよ。
入れられなくてもコードを参考にすることはできるんだから見てみれば。
#我ながら支離滅裂w
$a = array('12', '40', '9', '01'); var_dump($a); //←natsort前 $a[] = natsort($a); var_dump($a); //←natsort後 natsort前 array(4) { [0]=> string(2) "12" [1]=> string(2) "40" [2]=> string(1) "9" [3]=> string(2) "01" } natsort後 array(5) { [3]=> string(2) "01" [2]=> string(1) "9" [0]=> string(2) "12" [1]=> string(2) "40" [4]=> bool(true) } 以上のように、配列を並び変えを行ったところ、 並び替えは正常に行われるのですが、配列の一番最後に「[4]=> bool(true)」のようなものが加わってしまいます。 natsort後の結果を array(5) { [3]=> string(2) "01" [2]=> string(1) "9" [0]=> string(2) "12" [1]=> string(2) "40" } のようにするには、どのようにすればよいのでしょうか?
>>439 413と同じやつか?それともネタか?
$a[] = natsort($a);
↓
natsort($a);
ネタだろ…
442 :
425 :05/01/21 15:04:50 ID:???
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
コード以前の質問はここ。
具体的なPHPのコードに関する質問は↓
【PHP】質問スレッドpart26【php】
http://pc5.2ch.net/test/read.cgi/php/1103636095/ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
★ ★
☆ 新規質問は名前欄・メール欄を空にして行え ☆
★ ★
☆ 質問者が返信する際は、名前欄に「最初に質問したレス番号」を入れろ ☆
★ ★
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
オブジェクトをセッション変数にして持ち回りって $hone = new Hogehoge; $_SESSION['hoge'] = &$hoge; ではできないんでしょうか?
間違えた 一行目は
$hoge = new Hogehoge;
です。
>>444
できなかったの?
横やりで申し訳ありませんが、出来るものなの? なんか前にやって失敗した気がするんだけど 効率面ではどうなんだろう
448 :
425 :05/01/21 18:11:38 ID:???
空ログだけ作りたいんです。 ひと月に一度だけ生成するので。 書き込みもしたほうがよいです?
普通に出来るよ。
>>447 ショッピングカートを作る際に実装したけど便利だったよ。
遷移先でHogeHogeクラスの定義が見つからないとか
セッション変数にする場合、そのセッション使うページでクラス定義読み込まないとデータが壊れる罠。
>>448 空ファイルを作るならtouchでいいじゃん
454 :
425 :05/01/21 20:36:15 ID:???
>>453 そんな関数があったんですね。
今回の場合、どんな記述をするのがスマートですかね?
455 :
425 :05/01/21 20:53:04 ID:???
あ、touch(空ログ);でいいのね。 ごめんなさいm(_ _)m
とてつもないバカ質問かもしれませんが、 PHPのバージョンアップをする際、 バックアップしておくべきファイル・フォルダはどれですか?
php.ini
>>456 バージョンアップで上書きされるファイル全部。
該当ファイルの調べ方は、インストールの仕方によるし
場合によっては調べる方法が無い(or泥臭い方法しか無い)場合もある。
PHPとpostgresでアップロード掲示板みたいな物を作っています アップしたファイルをpostgresにラージオブジェクトとして登録したり 取り出すといった一連の動きは分かったのですが、 私の作った物だとダウンロード後、すべて同じ名前になってしまいます ダウンロードする時に名前を変える方法がどうしても思い浮かびません どなたか救いの手をお願いします (以下作成した物) <a href="./Get_Object.php?loid=".$file_loid."&type=".$file_type.">ダウンロード</a> <以下、Get_Object.php内部> /* PostgreSQL接続 */ $database = 接続用の自作関数が入ります; /* HTTPヘッダの送信 */ header("Content-Type: ".$_GET['type']); /* ラージオブジェクトの取得 */ pg_query($database, "BEGIN"); $handle = pg_lo_open($database, $_GET['loid'], "r"); pg_lo_read_all($handle); pg_lo_close($handle); pg_query($database, "COMMIT"); /* PostgreSQL切断 */ DB_Close($database);
>>459 headerでfilename指定したらどうかね
>>460 早速の返事ありがとうございます
move_uploaded_file は確かアップロード時に
TEMPに入っているファイルを指定ディレクトリに
移動させる物ですよね?
今回はラージオブジェクトとしてファイルを管理したいのですが
ダウンロード時にも使用する事は出来るんでしょうか?
>>462 >>461 が言ってるようにheaderを使ってファイル名をブラウザに渡す。
こんな感じ。
header ("Content-Disposition: attachment; filename=$filename");
ブラウザの種類やバージョンによって効果が無い場合があるので、
更に幾つかヘッダーを付け足す必要があったかと。
>>462 ファイル名はどんな形で保存しているの?
返信遅くなって済みません
>>461 なるほど!
調べたら出てきました
ありがとうございます
>>463 そうですね
header("Content-Disposition: attachment; filename=ファイル名");
で行けそうですありがとうございます
>>464 ファイル名はアップロード時に$_FILES['file']['name']
で取ってきて同じくDBに保存してます
466 :
nobodyさん :05/01/22 04:20:49 ID:j0dmlBBw
459で質問した物です。もう1つ分からない部分が出てきたので お分かりになる方よろしくお願いします 先ほどまではDBに$_FILES['file']['name'] でとった名前をそのまま 上げていたのですが、バグ取り中に日本語名のファイルをアップロード しようとしたらInvalid EUC_JP character sequence found (0x8e51) と言われて怒られてしまいました とりあえず怒られている内容はEUC_JPなファイル名じゃないからダメって 事だと思ったので、エンコード関数使ってエンコードして見たり 色々して見たのですがさっぱりダメでした 仕方ないので ereg('[0-9A-Za-z._]',$flie_name) として英字だけに限定しようかとも思ったのですが、今度は半角英数 だけを入れても上記の判定の部分で止まって上手く行きませんでした。 ファイル名はテキスト文字と何が違うのでしょうか? 回避策を知ってる方教えていただけ無いでしょうか
>色々して見たのですがさっぱりダメでした >色々して見たのですがさっぱりダメでした >色々して見たのですがさっぱりダメでした
ログファイルの3行目だけを空っぽにしたいんだが、どうすればいいんだ? こんな感じ。 name<>title<>comment<>date<>ip name<>title<>comment<>date<>ip name<>title<>comment<>date<>ip
>>467 ありがとうございます
さっそく参照して解決したいと思います
472 :
nobodyさん :05/01/22 13:26:29 ID:T4jXVQZN BE:18344063-
SQLをSELECT * FROM UserにしてRecordsetをOpenするとFrom句の構文が間違ってると言われます。 データベースへのパスその他フィールド名などは間違ってないんですが、何で?
_,,. -‐‐‐‐‐- 、
lヽ ヽ ヽヽヽ ヽ
ノ::::゙、 ヽヽヽヽ ゙、
ヘ:::::::::;;: -‐''''""( )1
゙、::::::::-‐''""" ̄"'i
:V;;||:::: '~ニ=ッ, r='|
>>472 i!f !::::: ゙、i ピィエィチピィ
i!ゝ!:::: ‐/リ PHP 曰く、
i::/:、 :::、 /''ii'V オレと関係ねーじゃん
ハ::::‐-、_"''il|バ''
474 :
nobodyさん :05/01/22 15:28:44 ID:T4jXVQZN
スマン、書くとこ間違えたな。しかも自己解決したし。 スレ汚しスマソ
>>458 レスありがとうございます。
諦めてHDDまるごとバックアップします。
476 :
nobodyさん :05/01/22 18:38:07 ID:vE/RUN9v
20050122っていう数字を $year = 2005; $month = 01; $day = 22; って分けるにはどうしたらいいんですか?
477 :
nobodyさん :05/01/22 18:49:03 ID:qBMTLwGZ
>>476 文字列に変換して、mid系の関数使えばいい。
479 :
476 :05/01/22 18:57:00 ID:???
なるほど!やってみます。ありがとうございます
>>479 おまえ、プログラムの才能(というほどでもないレベルだが)無いと思う
$full = '20050122'; var_dump(strftime('%d',strtotime($full)));
質問させてください。 .htaccessで自作のエラー画面を表示させています。 どのファイルへのアクセスなのかを調べたいため、 エラーページをPHPで作成して解析を埋め込んだのですが、 肝心のファイル名を取得することができません。 $_SERVER['PHP_SELF']を使用すると エラーファイルの絶対パスが返り、 せめてリファラからファイルが推測できないかと $_SERVER['HTTP_REFERER']を使ってみましたが、 こちらは値が取れないようです。
>>480 おまえ、プログラムの才能(というほどでもないレベルだが)無いと思う
訳:おまえは、馬鹿だ
>>482 質問させてください。
Apacheのドキュメントも読んでからの質問ですか?
>>477 >リダイレクトされません
じゃあどうなってるのかぐらい書け
ttp://ponk.jp/flash_php/index.php?page=1 このサイトを見て、FlashとPHPの連携を作ってみました。
ランキングに送信した時のURLが名前がnullpo、記録が100の場合
jump.php?name=nullpo&meter=100
となるのですが、このURLの名前と数値を変えるだけで自由にスコアが登録できてしまいます。
これを防ぐにはどのようにすれば宜しいのでしょうか?
書かなくても分かる。 その記述ではLocationヘッダは送信されない。 まあ視力検査だな。
489 :
480 :05/01/22 19:31:20 ID:???
自己解決、失礼しました。 >484 Apacheのことは微塵も思いつきませんでした。
>489 >482の間違いでした >480さん、騙ってスマソ
>>486 スコアを登録できないようにすればよい。
492 :
486 :05/01/22 19:36:04 ID:???
>491氏 素早い御返答有難う御座います。 申し訳御座いませんが、もう少々詳しく教えて頂け無いでしょうか。
>>486 そんなのは設計上の問題だろ。
暗号化して送って復号するとか好きに考えれ。
うん
おれは嫌いだな
うを、
>>444 の「オブジェクトをセッション変数で持ち回り」は自己解決しますた。
ふつうにできました。 ありがとうございました。
気が合わないな
>>497 やっとこのスレ全部読み終えた(仕事ty
>>477 Locationのあとにスペース入れちゃだめ
>>487 >>500 ありがとうございます。
できました。
神様です。
のべ数週間も悩んでました。
本当にありがとうございました。
502 :
nobodyさん :05/01/22 23:57:58 ID:/UkhSKsY
新しくphpの参考書っつーか、そういうものを買ったんだが、 それを読んでいて衝撃を受けた。 PEARやらSmartyやらよくわからんが、色々と使いまわせる便利な機能がたくさんあるらしい。 今までhtml埋め込みとしてしか使ってきていなかった俺はなんだったんだ。 必死になってlogファイルで管理してきたのに。。。 かなりのカルチャーショックだったよ。やっぱりそういう便利な機能って使っていったほうが良いのかな?
>>502 よくわかんないなら使わない方が良い。
ただし、使わないとわかるようにはならない。
>>503 結局使って覚えるor使えるようにならないとだめだな。。。
でも、環境によってソフトの有無もあるしなぁ…(´・ω・`)
505 :
だいすけ ◆P0//Gikoow :05/01/23 00:38:01 ID:myKN9oc6
phpのコーディングをもっとうまくできるようになりたいので、 他人がつくったソースを参考として拝見して、勉強したいのですが、 「このソースを参考にしたらいい」っていうおすすめあります? なお、速さ重視より保守性重視なほうがいいです。 ふとおもったんですが、pearとかどうなのかな???
ふとおもったんですが、pearってなんだかわかってます???
洋梨。西洋の拷問器具のこと。
508 :
nobodyさん :05/01/23 04:42:16 ID:/gwBl8Vq
>>508 いまはじめてつかってみたけど、エクリプスとくらべて利点がわからない。
それに、中途はんぱにhtmlも挿入できるゆおうだけど、xhtmlになってないからきらい。
nl2beだってきょうび、<br />に変換するのに
510 :
509 :05/01/23 06:56:38 ID:???
誤字しまくりすまそ。ねむい。ねるわ
>>508 使いにくい、Standaloneと通常版を統合しろっツーの。
機能も中途半端。Eclipse使ってるほうが100倍マシ。まぁ一番いいのはDreamWaeverMXを使うのが最強だけどな。
秀丸最強
xyzzyでFA
>>508 他のエディタのショートカットに慣れてると使いにくい(使えない)。
マップ設定の変更が出来ればましになるのに…
ただメモ帳使ってどうこう言ってる香具師には薦めても良いかも。
locationって何ですか?
>>502 改訂新版 〇礎PHP?
本屋のWebコーナーに派手に飾られてて、読んだらPearやらSmartyやら…
オブジェクト指向とDBがフルパワーで使われているから俺の好みじゃないけど
# $$hogeを初めて知った
>>517 みたいなのを見てもサクっとスルーできるようになって、
俺も2chに馴染んできたなあなどと思う。
うむ、同感
>>517 hoge=1があるときの処理で何か出力してるんじゃないの?
//xxx.php
if($_GET['hoge']==1){
/* hoge=1のときの処理 */
}
/* 通常の処理 */
でいいんちゃうんかと。
別ファイルならincludeするとか。
522 :
520 :05/01/23 15:01:57 ID:???
Σ(゚∀゚;) 参照までつけちゃったよ・・・
>>518 スルーできてないじゃないか(*´∀`)σ)Д`)
524 :
518 :05/01/23 15:03:53 ID:???
| \ __ / _ (m) _ピコーン |ミ| / .`´ \ ('A`) 体技:スルーを覚えた! ノヽノヽ くく │ │ ≡ ('('('('A` ) │≡ 〜( ( ( ( 〜) │ ≡ ノノノノ ノ サッ ↓
適当に答えとけばOKだろ・・・ そんなふうに考えていた時期が俺にもありました
php解析ツールって何処にありますかね(´・ω・`)
>>527 Use the Source, Luke!!
ナンディスカ
530 :
nobodyさん :05/01/23 16:21:15 ID:r42gxvN5
は?
なに?
えっ?
>529-532 自演乙
>>512 やっぱそうだね。今日秀丸にOsaka使ってみたらかなり見やすくなった
TerapadなんでPHP非対応なんだぃょぅ
537 :
nobodyさん :05/01/23 19:52:25 ID:AEkMnpHL
なんだ解析ツールって 何を解析したいんだ?
Pear::DBが入っているかどうか確認する方法を教えて いただきたく思っております。 宜しくお願いいたします。
539 :
nobodyさん :05/01/23 19:56:04 ID:pZ0WjdwA
>>537 他の人のサイトのphpです。
ネットランキング等のphpもソースを見ても<phpの部分が見えず、普通に表示されるだけで分からないので
>>539 勉強熱心だね。
もっともっと勉強しなさい。
541 :
nobodyさん :05/01/23 20:43:12 ID:8DNR8uBk
どんな関数を使えばいいかわかりません。 google.com yahoo.co.jp ↓ *.com *.co.jp こんな風にはじめの"."ドットまでをワイルドカードに変換したいのです。 マルチバイト関数で探したんですが適切なものがわかりませんでした。 何を使えばいいでしょう?
>>541 www.yahoo.co.jpとかは*.yahoo.co.jpでいいの?
info.hoge.yahoo.co.jpとかは*.hoge.yahoo.co.jpでいいの?
何をしたいのか知らんけど前から"."を数えても
gTLDやccTLDは得られるとは限らないよ。
ereg_replace関数 ただ、良いコーディングが思いつかないorz
explodeも使い方しだいかな…
545 :
541 :05/01/23 21:27:14 ID:???
OKですよ。というよりもホスト名を集計したいんです
>>539 まさかブラウザの「ソースを見る」機能使ってるんじゃないだろうな…
PHPってのはサーバー側で「HTMLソース」を生成するためのアプリなんだが。
JavaScriptなんかと勘違いしてないか?
「サーバーサイドスクリプト」でgoogle検索しなさい。
>>539 普通にphpのソースが見れたら、それはセキュリティホールと呼ばれるものです。
つか、ついこの間のPHPのセキュリティホールもその類だったな。
549 :
541 :05/01/23 22:19:29 ID:???
ザク以下
>>549 ereg_replace("([[:digit:]]+)(.[[:graph:]]+)","*\\2","yahoo.co.jp");
552 :
551 :05/01/23 22:42:02 ID:???
ミスった・・・ ereg_replace("([[:alpha:]]+)(.)([[:graph:]]+)","*\\2\\3","yahoo.co.jp")
もうむちゃくちゃ ereg_replace("([[:alpha:]]+)(.[[:graph:]]+)","*\\2","yahoo.co.jp")
PHPスレって正規表現もまともに書けない奴が多いよな
555 :
541 :05/01/23 23:06:59 ID:???
2chの掲示板ように書き込みを行ったら そのままの状態で書き込みを行うのではなく 一度「書き込み中です」のような画面を出して 書き込みが終わったら元の画面に戻そうと思っているんですけど どうしたら言いのでしょうか? exit()を使って止めてからボタンを押して再スタートは出来ました (これは思っているものとは違うのでやめました) sleep()かなと思い使用してみたのですが駄目でした 他になにか言い方法があるのでしょうか?
>>557 さっそくの返信ありがとう
HTMLというのはどういう風に使えばああなるのでしょうか?
javascriptか何かなのでしょうか?
CGIが吐き出したHTMLを見てもjavascriptが使われているような
様子も無く、どうしたら良いのか分かりませんでした
申し訳ないです
__ __ __ __ __ __ __ ∠__∠__∠__∠_.∠_../ | __∠__∠__∠l__ ∠__∠__∠__∠__∠__/| | ∠__∠__∠__∠__/.|_ . ∠__∠__∠__∠_.∠_./| |/| ∠__∠__∠__/ /| |/| . / / ./ / / /! |/| | | / / /| ̄ ̄| |/| | | ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| |/ |/| |_| ̄ ̄| ̄ ̄| |__|/| |/| __ _| |__|__|__|__|/| ̄ ̄| | ∠__|__|__l/ /| |/| | . / / | ̄ ̄| |_|/| | | |__|/| | | | | ̄ ̄| |/| |/ | ̄ ̄| ̄ .| |/| | | |__|/| | | |__|__|__|__|/| |/| . ___|__|__.| ̄ ̄| |_|/ | | |__|/ | | | | | |/| | . / / / | |/|. |__|/| .|__|__|__|__|/| |/ | ̄ ̄| ̄ ̄| ̄ ̄| ̄ ̄| |. | | | .|_| | | |__|/ |__|__|__|__|/ |__|/ |__|__|/
性器表現の.(任意の1字に一致)を、1文字だけでなく何文字でも当てはまるようにするにはどうすればよいですか?
orz 性器→正規
自分で調べてみろよ池沼
正規表現でググればすぐに判る。 性器表現でググってるうちは永遠に判らない。
>>516 >>520 その通りだ。すげぇw
html埋め込み言語としてしか使ってなかった俺には衝撃的だったよ。
全部を鵜呑みにする気はさらさらないけど、使える程度に覚えたい。
まだ学生だしね
性器表現で調べているほうが>562には有意義かもナ
>まだ学生だしね いい言い訳だ
もうすぐ40間近の学生なんじゃないの?
>>556 で質問したものなのですが
557さんに教えてもらった方法でページの切り替えは上手く出来るのですが
やはり裏側で書き込み処理をさせつつ表示は
「おまちください」にする事が出来ませんでした
理想な処理の流れとしては
書き込みボタンを押す→即お待ちください表示→書き込み→元の画面
としたいのですが
私が作ったものだと
書き込みボタンを押す→書き込み→お待ちください→元の画面
になってしまいます。
表示処理を書き込みの前にもっていったりもしたのですが
どうしても駄目でした。
何か簡単な方法で終わりそうな気はしているのですが
どなたかヒントだけでも良いので教えてもらえませんか?
571 :
nobodyさん :05/01/24 12:24:04 ID:2FuT6qHe
すみません。 ほんとうにくだらない質問ですが、ちょっと上の方でもやり取りがありましたが、気になったので質問します。 サーバ上にあるPHPのソースは、本当に丸々読まれる事はないのでしょうか? 例えば、Flashならば、Flashgetなどで丸々取得する事が可能ですが、 PHPソースは、そういうツールを使っても普通の方法(セキュリティホール以外)では保護されるんでしょうか? 現在、とあるサイトを開設する為に、PHPを使っています。 PHPの内部で、リモートアドレスを読み取り192.168のローカルアドレスなら そのページのコンテンツを編集できるようにしてあるのですがこれは危険でしょうか? また、この$_SERVER['REMOTE_ADDR']で取得できるIPアドレスの偽装?というのは可能なんでしょうか? 編集用のPHPファイルは、Apacheの基本認証がかかったディレクトリに置いてあるのですが少々不安です。
?が多いな。まとめてくれ
>>570 それでいいんじゃないの?2chも書き込みが終了した後に
お待ちくださいだと思うんだけど。サーバーの処理速度の
問題だと思うけど。
>>571 >PHPソースは、そういうツールを使っても普通の方法(セキュリティホール以外)では保護されるんでしょうか?
はい。
>そのページのコンテンツを編集できるようにしてあるのですがこれは危険でしょうか?
以下のような人が来たら危険でしょう。
>また、この$_SERVER['REMOTE_ADDR']で取得できるIPアドレスの偽装?というのは可能なんでしょうか?
世の中にはできる人もいます。
>編集用のPHPファイルは、Apacheの基本認証がかかったディレクトリに置いてあるのですが少々不安です。
IPアドレスだけ見て編集できるのなら認証を通過して編集用ファイルに
アクセスできるようにしてるわけでしょ?
だったらそのディレクトリに置いてもあまり意味がない。
575 :
nobodyさん :05/01/24 13:14:32 ID:2tfulrKk
array = ([0] => A00 B00, [1] => A01 B01, [2] => A02 B02) っていう配列を array = ([B00] => A00, [B01] => A01, [B02] => A02) のように変換するにはどうしたらよいですか?
>>573 やはり処理速度の問題ですか…
javascriptで何とかするしかないのでしょうかね…
もう一ひねり頑張ってみます
ありがとうございました
>>575 foreach ($array1 as $value1) {
list ($value1, $key) = explode(" ", $value1);
$array2[$key] = $value2;
}
間違えた list ($value2, $key) = explode(" ", $value1);
>>574 ありがとうございます。安心しました。
別にPHPのソースを見られたら、一気に終わりというわけではなく、俺自身の精神的な問題です。
もちろん編集用のファイルへのアクセスは、IPアドレスがローカルIP、且つ、パスワードで基本認証通過後にアクセスできるようにしてあります。
>>579 糞管理のサーバーだと見られることもあるかも。
581 :
nobodyさん :05/01/24 18:24:58 ID:esy2MU0n
php画像掲示板で、ファイル毎に投稿者ipを取れる記述を教えてください もしくは、ip記録配布phpを教えてください
>>581 $_SERVER["REMOTE_ADDR"];
583 :
nobodyさん :05/01/24 18:43:25 ID:2tfulrKk
スラッシュのある項目に対しては配列に取り込まないようにしたいんですが、 下の記述だとうまくいきません。何故でしょう? ちなみに出来ればドットも飛ばしたいんですが。 誰か教えてください。 foreach ($du_ary as $value) { if(!ereg($value, "/")) { list ($used, $user) = explode("\t", $value); $disk_use[$used] = $user; } }
>>583 ereg()の使い方が間違ってるかな?
あと正規表現使うと出来るんじゃない?
586 :
nobodyさん :05/01/24 19:02:51 ID:2tfulrKk
$slush = "/"; if(!ereg($value, $slush)) { ってしてみました。スラッシュの正規表現が分からなかったです。。。 \/ ???
sub X{ if(X()){ return; } if($a == 0){ A; X(); B; X(); C; X(); D; X(); $a = 1; }elsif($a == 1){ E; X(); F; X(); G; X(); H; X(); $a = 2; }elsif($a == 2){ ・・・・・・・・・・・ } return; } これを実行するとBの直後でsub Xに戻るとA→B→C→D→C→Dと 実行されなかった部分が繰り返されてしまうんですが、 最後の実行されなかったC→Dは繰り返さずに A→B→C→Dだけまた繰り返すにはどうしたらいいんでしょうか? returnの数や位置がいけないのかな・・・必ず残った分が実行されてしまうんです。 なにとぞご教授の方よろしくお願いします。
588 :
nobodyさん :05/01/24 19:39:09 ID:esy2MU0n
>>582 topに付け足すだけでいいのですか?
ip取れませんでした。
>>588 その程度のスキルなら、
その掲示板の配布元に聞くよろし。
その掲示板のスクリプトも判らん俺らが、
君に教えられる事は
>>582 まで。
591 :
nobodyさん :05/01/24 20:44:02 ID:EEgoJdla
配布海外
>>586 いや、だから間違ってると思うよ
以下参照して勉強してね
tp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm
逆か!?
すみません初心者質問です。他スレを汚したのですがこちらの方がふさわしいと思ったので こちらで質問させてください。 print <<<EOT <a href="javascript:fnc_a('----');"> EOT; 上記の文を作ったのですが、ヒアドキュメントを使うことが禁止されています。 上記の文をヒアドキュメント無しで同じ働きにするには、どうしたらいいでしょうか?
595 :
nobodyさん :05/01/24 22:48:54 ID:Fh1K805s
URLの後ろに適当なコードを付けて、
どこからアクセスしたか・そこからどれくらいアクセスがあったか、わかるようにしたいです。
紙媒体などにURLが乗ってそこから来たときも取れるように。
http://xxxxxx.jp/baka で、.htaccessで404のとき、count.phpを通して、indexへリダイレクト。
という方法で、やってみたところリファラ取れませんでした。
もしかして根本的に間違ってますかコレ・・・
http://xxxx,jp/count.php?hoge=baka のように他のファイルを叩かせずに、jp/baka
だけで取得したいです。
何か良い方法はないでしょうか?
>>594 向こうで何て言われたのかもう忘れたのか!
597 :
594 :05/01/24 23:39:00 ID:???
>596 普通にprintやecho使え、って言われたのですが・・・。初心者過ぎて 正直言って上の文のどこにprintを加えればいいのかわかりませんでした・・。
>>597 とりあえず、本買ってこい。
そしてサンプルページ見ろ。
599 :
597 :05/01/25 00:08:34 ID:???
>598 とりあえず手元の参考書を読んでいるんですが・・・。 "と'が含まれる文をくくる方法はヒアドキュメント以外に見当たりません・・・。 qw()でくくってみたのですがエラーが発生しました。
>>599 ただの文字列なんだから、どうとでもなるだろうが!!
多少不細工でも動かしたいなら、いくらでも手がある。
文字列。
えすけーぷえすけーぷ
602 :
597 :05/01/25 00:47:17 ID:???
>601 ありがとうございました。お騒がせしました
なんだネタか
てか、ヒアドキュメントって設定で使用制限かけれるのか? マニュアル読んでもphp.ini見てもそんな項目見当たらないんだが そもそも制限かける意味も理由も見当たらないけど
606 :
597 :05/01/25 02:12:46 ID:???
>604 よくわからないのですが、先方からそういう指示だったので・・。 >605 そうでした
おい馬鹿ども釣られすぎだぞ
>>607 ∧_∧ バッ
( ・3・)_,ノて 素晴らしい夜の始まりだYO!
,/::) ゚づ:::::::(
/::Ο l |:::::::::/
^べ(_)_,)⌒゙
あと30分で朝だな。
?> <?でくくる
質問です。 php+GDで、画像のサムネイルを表示させるスクリプトを作ろうと思っているのですが、 デジカメの画像をそのまま使用すると、サイズが大きすぎるせいか、メモリエラーになってしまいました。 また、枚数が多いとどうしても動作が重くなってしまいます。 今やっている方法は 1・ディレクトリの中にあるイメージファイルの一覧を取得 2・一覧をwhileでまわして、<img src="resize.php?hoge.jpg">のようにして書き出し 3・resize.phpで画像を読み込み、imagecopyresizedで小さくして出力 というようにしています。 もっと動作を軽くする方法がありましたら教えてください。
>>612 リクエストの度に処理しているんじゃ効率悪すぎ。
未処理ファイルを対象に定期的にバッチまわして、
あらかじめサムネールを作成しておくべき。
614 :
612 :05/01/25 10:33:46 ID:???
>>613 早速のレスありがとうございます。
>リクエストの度に処理しているんじゃ効率悪すぎ。
やっぱりそうですよね…。
なんとか他の方法は無い物かと思ったんですが、なさそうなので諦めます。
これで踏ん切りがついた感じです。
ありがとうございました。
615 :
>>595 :05/01/25 11:51:06 ID:7O2DMtBF
618 :
595 :05/01/25 12:22:56 ID:7O2DMtBF
getenv('QUERY_STRING'); こういうことができたんですね。 ありがとうございます、勉強になりました。
馬鹿って書き込める?
↑馬鹿
>>617 関数使わなくても、すでに
$_SERVER["QUERY_STRING"]
に入ってるし
↑馬鹿
pearのソースなんかにかいてある///{{{ってなんていうソフトへのメッセージ?
V ´^?u^?`)y―┛~
625 :
595 :05/01/25 16:41:32 ID:7O2DMtBF
>>619 え、漏れですか?
無事出来上がりましたありがとうございます。
626 :
595 :05/01/25 16:43:01 ID:???
内容ないのに下げ忘れましたすいません
629 :
nobodyさん :05/01/25 17:47:42 ID:yhBhnvi/
php4.3.10です
mb_substrですが、
http://www.php.net/manual/ja/function.mb-substr.php によると、二番目と三番目の引数は、バイト数じゃなくて文字数となってるんですが、
なぜか、バイト数で処理しているようです。
さらには、日本語の真ん中でぶった切ってくれます。
mb_convert_kanaやmb_convert_encodingはちゃんと動いているので、インストール
は問題ないと思うのですが....
文字コードをEUCに変換してやってもダメでした
エロイ人おしえてください
エンコーディングが設定とずれてんだろ つーかまともに質問もできない低脳は質問スレに来るなよ
>>629 たまたまあなたのPHPがハズレだっただけです。
よくあることとあきらめてください。
( ● ・3・ ● ) エェー またご挑戦くださいNE
633 :
nobodyさん :05/01/25 18:19:22 ID:yhBhnvi/
634 :
nobodyさん :05/01/25 18:52:27 ID:ctOxddYx
どちらの書き方が正しいのでしょうか? @---------------------------- User-agent: searchpreview User-Agent: ia_archiver Disallow: / A---------------------------- User-Agent: ia_archiver Disallow: / User-agent: searchpreview Disallow: / ある複数のロボットを指定したい場合どちらが効果がありますか? googleで検索するとAは、ロボットが来てしまうような事があるらしいのですが ご教授お願いいたします
636 :
634 :05/01/25 19:05:50 ID:???
PHPとも関係ないが
Apache2.0.x+Tomcat5.5.x)での連携設定方法をご存知ありませんか? OSはWinXPSP2です。 ぐぐったのですがサイトによってかいてあることが違ってうまくいきません。 どなたかうまくいった方が折られましたら、参考にしたサイトを紹介していただけないでしょうか? あと成功例でも結構ですどうぞよろしくお願いします。
639 :
612 :05/01/26 10:12:33 ID:???
あの後ちょっといじって、
>>613 氏のいうように、サムネイル画像をあらかじめ
作成して置く形に変更しました。
しかし、デジカメの画像(2048*1536、約1MB)の画像をまとめて処理しようとすると
PHP Fatal error: Allowed memory size of 10485760 bytes exhausted とエラーが出てしまいます。
大体、10枚程度までなら処理できるのですが、それ以上はエラーになりました。
やっている事は
1・ファイルの一覧を取得
2・whileで回して「$src = imagecreatefromjpeg($file);」として読み込み、xとyのサイズを取得&サムネイルのサイズに設定
3・$img = imagecreatetruecolor($set_x,$set_y);としてイメージ生成
4・imagecopyresampled($img,$src,0,0,0,0,$set_x,$set_y,$x,$y);出力
5・whileの最後にimagejpeg($img,$output_file); imagedestroy($img); imagedestroy($src); として、繰り返し
これでは正常にメモリがクリアされないのでしょうか?
何か解決法がありましたらお願いします。
ぐぐったらいくつか解決法があったけどやってみた?
641 :
612 :05/01/26 10:54:07 ID:???
>>640 うーん「php」「gd」「メモリ」「Allowed memory size」などを中心に探してみましたが
php.iniの最大メモリを変更する以外の対策は見あたりませんでした。
その解決法とはどんな物ですか?
>>641 ってかさ、どうせ画像はローカルPCからアップするんでしょ?
だったら、PC上で一括してサムネール作っちゃえばいいんじゃないの?
その手のフリーウェアは探せば山ほどあるんだし。
全てをサーバ上でやろうとするから…
>>612 メモリリークでしょうかね
imagedestroyでメモリが開放されてないような感じですが。
PHPのバージョンとgdのバージョン(PHPバンドル版か別にインストールしたものか)は何でしょうか。
644 :
612 :05/01/26 13:43:17 ID:???
>>642 いや、それを言われちゃうと身も蓋も…。
ブラウザで全部すませたいな、と思うので。
>>643 PHP Version 5.0.3、GD 2.0.28です。
imagedestroyで解放されていないわけでは無いようです。
imagedestroyしてやると10枚程度までいけますが、しないと数枚でアウトでした。
>>639 画像が大きすぎ。
たまたま10枚目あたりの画像のメモリー消費量が多いだけちやうんかと。
共有鯖なら
>>642 の意見に賛成。
自鯖なら好きなだけメモリー増やせ。
646 :
612 :05/01/26 14:31:13 ID:???
>>645 10枚目がたまたま、という訳では無いです。
で、メモリを増やすにせよなんにせよ、クリアされなくてはいけないハズなのに
クリアされていないというのは何だか気持ち悪いので、このスクリプトを
実際に使うかどうかは別として、原因がわかったら教えてください。
私も自分で解決できたらまた来ます(´・ω・`)
というわけで、またしばらくコチコチやってきま。
ありがとうございました。
>>647 てか、$srcもしなきゃいかんな。スマソ。
後者は無視してhttpdのほう試してみてくれ。
連レスになるけど、どうしてもダメならImageMagickを使うこと等を 検討してみてはどうだろう。
650 :
612 :05/01/26 15:05:44 ID:???
>>647 とりあえずhttpd.confでは駄目でした(´・ω・`)
なので、ImageMagickも検討してみたいと思います。
しかし、なんかこのまま終わるのも癪なので、もうちょとやってみます(笑)
どうもです〜m(_ _)m
こういう奴ってできたらできたで共有鯖とかでもやるんだよな。
>>650 >>639 の処理手順は合ってるから、それ以上手の付け様は無いよ。
>>642 が言ってるように根本的なやり方を変えるか、
>>647 が言ってるような運用方法で軽減するかくらいしかない。
まぁ、jpegで1MBのファイルならメモリに展開した時に
10MB(php.ini設定か?)を超えてもおかしくないわな。
653 :
nobodyさん :05/01/28 00:31:06 ID:o6jrdeht
age
PHPたんの性器表現・・・・(;´Д`)ハァハァ
ミスだっつーの!\(`Д´)/
いつも性器とかやらしい事ばっかり言ってるから、変換で最初に出てくるんですよ
普通はこの辺が出てくるよな。 「正規・生気・世紀」 まあエロいことはいいことだ。
違うんだよ!同級生の携帯に2chブラウザ入ってて、記念眞紀子で質問したらこうなったんだよ!
メ欄の安っぽさがこのスレらしくていい
660 :
nobodyさん :05/01/28 14:35:04 ID:xpvGFlmu
PHPを最近始めた初心者です。 くだらない質問でごめんなさい。 DBからUTF-8形式のデータを呼び出し、それらをfopenを使ってファイルに書き込むときに、ファイルの出力コードが勝手にShift-JISとなってしまいます。 mb_convert_encodingやutf8_encodeなどを使って、DBから呼び出した個々のデータを全てUTF-8にしても、ファイルそのものはShift-JISのままになってしまいます。 どなたか、ご対応の程よろしくお願い致します。
662 :
660 :05/01/28 16:21:53 ID:xpvGFlmu
>>661 ご回答ありがとうございます。
php.iniについてはレンタルサーバなので正確に中身を見る事は出来ませんが、ユーザが指定できるので、そこに記述した内容をコピーしますね。
language = "neutral
default_charset = "UTF-8"
mbstring.internal_encoding = "UTF-8"
mbstring.http_output = "UTF-8"
このような設定にしています。
他のページ等に記載していることを、見よう見まねで書いてみたのですが、やはりファイル出力はShift-JISのままとなってしまいます。
ご対応の程よろしくお願い致します。
念のためphpinfo()の該当する結果を見せてちょ
>>660 fopenでファイルに書き込む際に自動的にエンコード変換を
掛けるなんてことはないのだがな。その「勝手にShift-JISとなってしまいます。」
や「DBにはUTF-8で格納されてる」つうのはどうやって確認してる?
あとDBMSの機能で、PostgresなんかはDBクライアントの機能として
MySQL4.1/5.0はDBサーバの機能としてデータのIN/OUTの際にエンコードの変換を
行うことができるので、その辺が影響して無いか確認。
影響してればPHPに取り込んだときには既に変換されてる
665 :
660 :05/01/28 17:49:52 ID:xpvGFlmu
>>663 ご回答ありがとうございます。
phpinfo()の該当する部分というのはこの辺りの掲載すればよろしいのでしょうか?
PHP Core
Directive Local Value Master Value
default_charset UTF-8 UTF-8
output_buffering 0 0
output_handlerno value no value
mbstring
Japanese support enabled
Directive Local Value Master Value
mbstring.detect_orderno valueno value
mbstring.encoding_translationOffOff
mbstring.func_overload00
mbstring.http_inputpasspass
mbstring.http_outputUTF-8UTF-8
mbstring.internal_encodingUTF-8UTF-8
mbstring.languageneutralneutral
mbstring.substitute_characterno valueno value
不要なものがありましたら、申し訳ございません。
また、必要なものがございましたら、お手数ですがご指摘の程、よろしくお願い致します。
666 :
664 :05/01/28 17:52:18 ID:xpvGFlmu
>>664 ご回答ありがとうございます。
勝手にShift-Jisになる確認方法の件ですが、fopenにて生成されたファイルをエディタ(Macユーザのためmiというエディタを使っています)で開いたところ、Shift-Jisになっているのです。
また、DB(MySQL)の件については、UTF-8でエンコードされたWebページのフォームから文章を入力し、PEARを使って
DBにInsertしています。そして、それを同じくUTF-8でエンコードされた違うWebページで出力させているのですが、文字化け等はおきずに正しく表示されています。
また、phpmyadminをutf-8に設定した状態でDBのデータを確認してみても、ちゃんと表示されております。これにより、MySQLのデータIN/OUTにおけるエンコード変換の影響はないと判断していますが、いかがでしょうか?
またCURLを使い、yahoo.co.jpを取り込み、同じようにfopenを使ってファイル出力してみたのですが、この場合は
EUC-JPとなるようです。
以下がスクリプトです。
$curl = curl_init("
http://www.yahoo.co.jp ");
$fl = @fopen('hoge.php', 'w');
curl_setopt( $curl,CURLOPT_FILE,$fl );
curl_setopt( $curl,CURLOPT_HEADER,0);
curl_exec( $curl );
curl_close( $curl );
fclose( $fl );
ご指摘の程、よろしくお願い致します。
667 :
660 :05/01/28 17:53:37 ID:xpvGFlmu
>>664 申し訳ございません。名前のところに664と書いて投稿してしまいました。
>>666 エディタのエンコードの自動判定が判定しきれなくて
間違ったエンコードと認識してる可能性がある。
バイナリエディタを入手して文字コードで確認してみてください。
データのIN/OUTにおいて変換されてしまってる感じではなさそうだな…
669 :
nobodyさん :05/01/28 23:37:03 ID:ZphJTcdt
フォームのradioボタンでチェック時の色が薄い緑で見にくいの ですが、色を変えることはできますか?
671 :
nobodyさん :05/01/29 16:48:34 ID:y8zIQf8h
PHPのpg_connect使ってPostgreSQLと接続しているのですが、 接続中に何回か実行クエリを発行してもpg_closeしないと 結果が反映されてないみたいんですが、そうゆうものですか? AUTO COMMITのようなことはできますでしょうか?
基本的にAuto Commitの筈だけど、不安だったらpg_trace()でも試してみたら?
>>672 そうですか、私の勘違いですかね。
ちなみに、PHPのバージョンは4.1.3です。
すいませんが質問させて下さい。 以前WIN環境(2k)のapache(1.3.27)+php(4.2.3)で作ってたんですが 今度同じWIN環境でapache(2.0.50)+php(5.0.1)に移行したら プリント関数が使えなくなりました。 php.iniに「extension=php_printer.dll」も追加し、phpのextフォルダにも php4環境からphp_printer.dllをコピって置いたんですが本来なら このフォルダにあるはずだし、apacheを再起動しても 「指定されたモジュールが見つかりません」と怒られます。 ひょっとしてphp5になってからプリント関数は無くなったんでしょうか?
>>674 セキュリティ上問題があるので至急PHPのバージョンを上げて下さい。
677 :
nobodyさん :05/01/30 05:45:15 ID:79430JFW
あるhtmlファイルから 特定の文字列を抜いて、 別のphpから表示したいのですが、可能でしょうか? 具体的にどんな方法が考えられますでしょうか? 例:a.html(abcdefという内容) b.php a.html からdefを抜いて、 abcと表示。
可能。何がわからないのかすら分からん。
>>678 PHPの事を何も理解してない奴にアドバイスするのはやめれ
680 :
nobodyさん :05/01/30 10:21:00 ID:/AMMda4B
404ですよ <a>か<object>だった希ガス
>>680 携帯用の動画は画面サイズがきまっています。
前に俺も携帯用の配信してた時にちょっとつまずいた。
正確な解像度はわすれたけど、ちょっと調べれば、わかったと思うよ。
あとは、.asfにアンカータグでリンクを張れば再生される。
PerlからPHPに移った者です。 nl2brという関数を知ったのですが、 ereg_replace("\n", "<br>", $hoge); とするのと何か違いがありますか?
>>683 nl2brは、\nや\rを置き換えるんじゃなくて、挿入します。
\n \rを区別しないし、消されることも無い。
つまり、改行コードが「\n」のみだったら、以下と同じになります。
ereg_replace("\n","\n<br />",$hoge);
なるほど、ありがとうございました
実際、調べてませんけどnl2brの方が専用に作っているので速いと思う
ereg_replace < str_replace < nl2br だぁね
>>687 もっというと、
ereg_replace < preg_replace << str_replace < nl2br だぁね
質問です、 もまえら、例えば低機能なカウンターや掲示板作ろうと思ったら、 どれくらいの時間かかる? 俺はかなりの初心者で数日かかりそうなんで、 参考までに聞きたい
カウンタなら10分 掲示板なら60分 ちなみにPHP暦1ヵ月
何か知らんけど、半年以上掲示板を作っているが完成しない。 完成に近くなると、設計をやり直したくなる。
よくあることだ
>>690 他の言語の経験は?
無しなら、、カウンタ飛びそう。
>>693 CとPerlを9ヵ月、JAVAを2ヵ月
カウンタって簡単に壊れるものなのか?よっぽどの人気サイトか、貧弱鯖か…
# とかほざきながら、自サイトのカウンタはFC2のレンタルだったりする
>>689 ガンガレ
695 :
EK :05/01/30 17:44:10 ID:4qD6156y
天才プログラマ様,おしえてください. PHPで簡単なアカウント認証システムをつくってます. 登録するときに,IPを調べて2重登録を防ぐということがしたいわけです. しかしプロクシを通されると,どう対処すればよいかわかりません. 非匿名のプロクシなら,環境変数でHTTP関連の変数を調べればわかるのですが, 完全な匿名のプロクシだと検出できないんです. エロいひと教えてください.
POSTクエリーに何もない、あるいは何かある、というのを調べるにはどうすればいいですか? また、hoge.php?val とアクセスした時、valはどうすれば取得できますか?
自分の持つ一連のWebPageで、<head>や<address>といった、全ページに (ほとんど)共通する定型句があります。これのテンプレを別途作製し、PHPで 呼出せば、すっきりしてイイかなと思いました。 1) こういうPHPの使い方ってOK?あるいは目立ったデメリット等ありますか? 2) もしOKなら、DOCTYPEなんかもテンプレに含めて良いもんなんでしょうか?
>>698 <!--#include virtual="/肛門.html"-->
フォームをクリックしてファイルをダウンロードさせたいのですが、 PHP側の関数は何を使えばいいのでしょうか。ご教授願います。
702 :
nobodyさん :05/01/30 19:48:56 ID:79430JFW
htmlファイルのソースを読み込むにはどの関数を使えばいいでしょうか? fopen??
703 :
698 :05/01/30 20:30:46 ID:???
isset($_SESSION['hoge']) || $_SESSION['hoge'] = ''; $obj =& $_SESSION['hoge']; って書いてるんだけど何か美しくないですよね。 実際には$_SESSION['hoge'][][]と配列になっているので一行にすると 長くなりすぎる気がします。 なんかスマートな書き方がないものでしょうか?。
705 :
nobodyさん :05/01/30 21:44:08 ID:vJLTbH4Q
$ip = getenv('REMOTE_ADDR');IPアドレス
>>695 ログインした時点でアカウントをロックすればいいだけだよ
ただ、ログアウトせずにブラウザ閉じると再ログイン出来ないけどね
タイムログアウト処理も加えておけば良いかと
707 :
705 :05/01/30 21:45:22 ID:???
うはっ間違って送信押してしまった(;´Д`) $ip = getenv('REMOTE_ADDR'); でサイトを訪問してくれた人のIPアドレスをゲットできるけど、 さらに一歩推し進めてその人の国籍やプロバイダー情報も 検出してくれる機能って無い?
改めて書き直してまでする質問か?
アホでしたか
PHPのBBS等のログファイルを隠蔽するにはどうしたら良いですか? Perlの場合拡張子をcgiにすればできましたが、PHPの場合拡張子をphpにしても覗けてしまいます
712 :
nobodyさん :05/01/30 22:39:00 ID:6jokYwmw
Aという要素でソートしたときにBという要素が○であるレコードが何番目にあるか が、わかる関数はありますか?
715 :
705 :05/01/30 23:15:58 ID:???
>>715 そんなものはない。
それぐらい作れよ。
getenv('HOGEHOGE')と、 $_SERVER['HOGEHOGE']って、 それぞれメリットデメリットってあります?
>>718 そんなものはない。
それぐらい作れよ。
>>719 そんなものはない。
それぐらい作れよ。
配列キーの検索ってないよね
>>721 キーで指定できるから検索する必要がない。
>>722 値も指定しているようなものでしょ
ただ、キーを検索した場合に何を返すかの問題だね
値を返そうにも唯一ではない場合もあるしね
返すならintしかないかな
PHP使いはプログラマじゃないね。
残念ながらw
スクリプタだよヽ(´ー`)ノperlもね。
データ構造もだが、英語も勉強しないとな
プログラムはコンパイル言語だけかい
マジレスすると724の周りにはSmaty使いしかいないんだろう。
Rが抜けた。Smarty。
Smartyのテンプレエンジンを使ってる人ってそんなに居るの?
↓グラフ理論の権威が一言
JavaScriptも立派なプログラミング言語だ!
721以降、マと素人の二極化が激しいな
「漏洩」が文字化け・・・鬱
m9(^Д^)プギャー
739 :
nobodyさん :05/01/31 21:59:26 ID:MOMf8Zhx
printf, sprintf のformatに * は実装されていないのでしょうか?
集計プログラムをもったPHPがある日を境に表示されなくなってしまいました。 それまでは正常に作動していました。 そして先日は集計結果が日に日に減っていく(0という数字が消されている?)という 事態にみまわれています。しかし入力データは無事に落ちています。 何もしていないのに、表示とプログラムが書き換えられているかのようです。 どのような理由が考えられるでしょうか。アホな質問で申し訳ありませんが、 どなたか考えられる原因を教えてください。よろしくお願い致します。
日付の差を求めるにはどうすればよいですか? time関数では秒数の差になってしまうので…
>>742 1日は何時間?
1時間は何分?
1分は何秒?
IMGタグからURIを抽出する方法を教えて下さいな。 (相対パス、絶対パス 両方できればありがたい。)
>>743 レッツPHPさんのを参考にしてできました
explodeとstr_replaceは、機能としては同じですか?
大阪弁変換みたいなPHP(URL指定でそのページの内容を全部読み取り、その内容を弄って出力)を
作りたいのです。手元の解説書を見る限りfopenでウェブページの取得ができそうなのですが
方法が分かりません・・・(パスにhttpで始まるURLを入れればよい、と書いてあるんですが・・・)
<?php
$target = fopen("
http://pc5.2ch.net/test/read.cgi/php/1105218084/ ", "r");
print $target;
?>
結果は「Resource id #2」です。どこかがおかしいのか、この方針では無理なのか(その場合
どういう方針を使えば目的の動作をさせられるのか)ご存じの方いらっしゃいましたら
よろしくお願いします
751 :
749 :05/02/01 18:04:45 ID:???
あ、なるほど、「ソケット」って言葉聞いたことはあったんですが、こういうことを するために使う話だったのですね。。。 ソケット自体使ったことがないのでちと色々勉強してみまつ。どもでした
PHP4で、フォームなどから取得した文字列の中に、特定の文字列を発見したら、 それを好きな文字に置き換えて出力する方法を考えています。 $text = $_REQUEST['text']; //フォームから文字列を取得 if(strstr($text,"特定の文字列")) //その文字列に、特定の文字列があったら、 と、このあとどうしたらいいか思いつきません。 何かアイデアをお持ちであれば御教授ください。 「こんな簡単なことも思いつかねえのか」と思うかもしれませんが、 どうぞよろしくお願いします。
754 :
753 :05/02/01 19:22:17 ID:???
>>753 もう、なんていうか、自分がつくづく馬鹿だと思いましたよ・・・
思いつくも何もそのための関数が・・・
とにかくどうもありがとうございました。
$_REQUEST['REMOTE_ADDR']とgetenv("REMOTE_ADDR")の違いはなんですか?
マルチポストの予感
どこに?
$hoge=123; とあって、これを00123としたいのですが、 $hoge=sprintf(%05u123); sprintf関数はこの使い方で良いでしょうか
なんで、みんなマニュアル見ればすぐに判る事を聞くかな?
おい、お前のことだよ!
>>758
760 :
nobodyさん :05/02/01 23:31:54 ID:b2vi9Wz/
すいません。質問です。 掲示板で書き込んだ文字が下のように化けるのはなぜでしょうか・・。 ホ。ク・ク・ァ・テ・ネ・ウゥ`・ケ・ソゥ`。、・ヂ・ケ。ケ あとこの文字列を元の分に直せますか?
762 :
760 :05/02/02 00:27:22 ID:???
スクリプトはShift JISで 表示もShift JISでしています。 でスクリプト中で mb_convert_encoding($hoge,"SJIS","auto"); してみたんですが化けてしまいます。 さっさとeucにした方が幸せですかね。。
>>759 マニュアルを見ても今イチ説明がよく分かりません。こんな気持ち悪い書き方で良いのでしょうか。
764 :
nobodyさん :05/02/02 00:55:56 ID:mszEXFeW
PHPで変数aとbのデータ比較を行っているのですが、 うまくいきません。 $a="2005051000000000201"; $b="2005051000000000301"; if ($a == $b) { echo "NG"; } else { echo "OK"; } 上記a,bの内容の場合、OKを表示してほしいのですが、 NGが表示されます。 どうすればよいのでしょうか。
>>764 比較するときstringに型キャストして味噌
if ((string)$a == (string)$b) {
if($a === $b) でいいんじゃない?
(string)でキャストしてみたのですが、うまくいきませんでした。 ===は、試してみます。 そもそも、このような長い数値の比較(""で括っているので文字列だと思うのですが)は 普通行わないものなのでしょうか。
とりあえず、この質問だけで答えは出せないと思う。 文字列として比較したいのか、数値として比較したいのかが分からない。 文字列として比較したいのであれば、stringキャストでは意味が無い。 「===」を使っても正常な結果は出るが、一番確実なのは、 echo strcmp($a,$b)==0 ? "OK" : "NG";
よく見ろよ馬鹿共! 中身が違うんだからNGが正常
なんだNGでいいのか
is_readable('./dir/file.php')としているのですが、その結果が1として 返って来ません・・・ ディレクトリ、ファイル共にothersはrxとしてあるのですが、どうして なのでしょうか?
772 :
771 :05/02/02 10:26:35 ID:???
自己レス・・・catしたらファイルが無かった; ファイル名間違いでした・・・失礼
773 :
nobodyさん :05/02/02 10:29:33 ID:3u11bF/6
プロバイダ(Webサーバ)で使っているPHPスクリプトを、 別のサーバでApacheでPHP4を動かそうとしたところ、 「Internal Server Error」と言うエラーが出ました。 どのようにすれば、今までと同様に動かすことが出来ますか? Apacheのバージョン : Apache/1.3.22 パス : 「/usr/local/lib/php.ini」
774 :
nobodyさん :05/02/02 10:38:28 ID:g6qcRaEP
>>773 その情報だけで分かるやつなんて居ないと思うよ。
>>773 Webサーバのログを見れる環境なら、それを見る。
単純なPHPスクリプト(例えば<?php phpinfo(); ?>等)でもエラーがでるか試す。
htaccessファイルが不正でエラーだしてる気もするがなぁ。
そもそもPHPが動く鯖なのか?
777 :
nobodyさん :05/02/02 10:50:07 ID:v52PFDLH
Fedoraのとき文字コードは何を使用するのがいいですか? やっぱりEUC?
>>777 Core 2使ってるけど、基本文字コードをLANG="ja_JP.eucJP"にして
phpのほうもEUCで使ってて問題なかったよ。
標準をUTF-8のままにしてPHPのみEUCの動作は分からないから試してみてくれ。
下らない質問 現行のHPのHTMLにそのままディレクトリで埋め込めて そのまま決算できるショッピングカートが見つからない 恐らくPHPでなら可能だとは思うのだけれど そういう現行のデザインを崩さないまま決算ページに行けるようなPHPは ありますかいな?
782 :
773 :05/02/02 11:49:36 ID:3u11bF/6
お答えいただきありがとうございます。 [Wed Feb 2 11:40:07 2005] [error] [client xxx.xxx.xxx.xxx] File does not exist: /home/xxx/xxx/xxx/xxx/ ↑ ログフォルダにはこのようなエラーが記録されておりました。 プロバイダ(Webサーバ)で使っているPHPスクリプトを、 別のサーバでApacheでPHP4を動かそうとしたところ、 「Internal Server Error」と言うエラーが出ました。 どのようにすれば、今までと同様に動かすことが出来ますか? Apacheのバージョン : Apache/1.3.22 パス : 「/usr/local/lib/php.ini」
783 :
773 :05/02/02 12:04:21 ID:3u11bF/6
すいません、動作しました。 お騒がせしました。
784 :
779 :05/02/02 12:41:16 ID:???
詳しく書くなら、現行のHTMLにPOSTでデータを PHPかクッキーに残したプログラム。当然ページ移動してもカートとしては 動かないと話にならないし 自分で書いたけど失敗した PARLとPHPが混在してたのかも 仕方ないから探したけど見つからず どこの板になるかな?
web製作にCGI捜索スレがあるにはある。
纏めるとこんな感じか。
「商品情報が書かれているHTMLファイルを特定のディレクトリの下に置いておくと、
不思議なチカラが働いてショッピングカートとして機能するスクリプトが欲しい。
決算ページ以降は別の仕組みを用意するから、そのページより前の仕組みを探している。」
PHPやJavaScriptを使うにしても、手作業で既存HTMLに手を加える
(or HTMLをparseして適切なデータを埋め込むスクリプト)ことになるから、
そんな面倒なことをするより、出来合いのショッピングカート+データ入力 に移行した方が良いと思われ。
さっきまで人の書いたサンプルコードを探すのに「こんなCGI探してます」スレを見てたんだけど、
ショッピングカートはゴロゴロ転がってたから、この辺りからスタートしてみそ。
ttp://pc5.2ch.net/test/read.cgi/hp/1106947416/2
なんか自演くさいレスが続いてるな・・・
過疎スレへのテコいれでつ
$fp = @fopen(xxx.dat, "w+"); rewind($fp); //←エラー fputs($fp, "$data \n"); //←エラー fclose($fp); //←エラー ファイルに$dataを記録する時に、指定のファイル「xxx.dat」が無い場合 「Supplied argument is not a valid File-Handle resource」 というメッセージのエラーが「←」の3行に発生します。 指定のファイルが無い場合「xxx.dat」を生成し 上のエラーを出さないようにするには、どこの設定をどのように変えればよいですか? 尚、「xxx.dat」がある状態で実行するとエラーは出ずに正常に記録されます。
>>764 if ("a". $a == "a". $b) {
これはどうよ?
なぜw+で開くのか
>>789 fopen後に$fpに正しいリソースが代入されているか検査しろ。
fopenでファイルが開けなかった(作成されなかった)理由はfopenの前の@をはずして確認しろ。
795 :
789 :05/02/02 18:01:24 ID:???
みなさんお答えいただきありがとうございます。 さっそく ini_set ( string varname, string newvalue)関数を使って一時的に設定を変更し、 ファイルを存在しないファイルを作れるようにしようと思います。 その時「varname」に入れる値は、どれであるか教えてください。 的外れな質問をしていたら指摘してください。
>>795 >ファイルを存在しないファイルを作れるようにしようと思います。
がわからない
>>795 どこを見てんだ?回答者の意見を少しは参考にしたらどうだね?
>794の例
$filename = "xxx.dat";
$mode = (file_exists($filename)) ? "r+" : "w";
$fp = @fopen($filename, $mode);
・
・
・
>>797 それだと、ファイルのパーミッションはあるけど、ディレクトリのパーミッションがないときに
>789と同じエラーがでる罠。
if(!!$fp=@fopen($filename, $mode))な。
というか、w+でファイルが作られないならおそらくそういうことナンジャマイカ。
ini_setで設定するしかないんじゃ?
801 :
nobodyさん :05/02/02 20:40:44 ID:q6Il3s7y
すいません、ちょと教えてください strrpos("あ い、う") //あ と いの間は全角スペース とすると6が返ってくるのですがどうしてでしょうか? 普通は2になりますよね??
803 :
801 :05/02/02 20:50:23 ID:q6Il3s7y
あ、失礼こきました。 strrpos("あ い、う"," ")とやると6になるんです・・
805 :
801 :05/02/02 21:41:19 ID:q6Il3s7y
>>804 ありがとうございます。
しかしエラーらしきところは・・・strposはちゃんと動作するんだけどなー
ふと、Webプログラムをはじめようと思いました。 全く予備知識なく、何某さんのネット連載記事とか本とかを読んでいると、 JavaサーブレットとかJSPというものがとてもすばらしいっぽく書いてありました。 なるほどそうなのかと思って、サーブレットJSP関連の本を買い、色々勉強しました。 さて、じゃあそろそろ適当にレンサバでも借りてみようかと思いました。 ……全然対応してるところがありませんでした。 どうしたらいいですか。しかもその何某さんは、別の連載では Linux+JSPサーブレットとWin鯖+ASPを比べて、ASPのすばらしさを語っていました。 もう何言語を覚えればいいのか分かりません。
>>807 PHP言語のスレに来たことですし、PHP言語をやってみてはどうですか?
どの言語だって一長一短 適材適所で言語を選べって事だよ ちなみにここはPHPスレ
>>807 Servlet/JSPをやるには、普通のレン鯖じゃダメだね。
使えるところも最近は増えてるけど、共有鯖のServletなんてつかえたものじゃない。
専用サーバ借りるか、自宅鯖にするしかないな。
ADSLで上り500Kbps程度あれば、普通の文字主体のサイトなら帯域に困ることも無い。
バーカ
808は馬鹿じゃないだろ。
>>807 apsはいいねぇ
phpも楽でいいよ〜
jspはしらねぇ〜けど、結構面倒そう。javaは設定が面倒だねぇ
PHP 素人お手軽Webプログラミング入門 ASP全般 ある程度の能力者・経験者用。 全般的になんでもこなし、極めれば、Javaテクノロジと互角に渡り合えるが、 WindowsServer専用化ってのが痛いところ。monoに期待する。 JSP/Servlet/EJB/JSF 達人御用達。開発者の能力次第では、あらゆる面でWeb系最強なのは間違いなし。 でも個人でプログラミングしていると、ここまでヤル必要あるのか?という疑問が常にあり、開発の妨げとなる。
>>814 思いっきり、業界の現状を理解していない、
うちの糞上司と同じ感覚だな(w
>>815 プッ
PHPしかできないド素人が業界人のフリしてこんな時間に書き込みですか??
実際の業界の現状というと、新規案件はJava系一色だよ。おれが業界にいた半年前まではね。
俺が業界に居た頃は、業務も趣味もCGI/Perlが主流だったぜ。
余程、大規模なページでない限りは大差がない
>>820 そんなもんコード書くのスキルに大幅依存だろ
何業界?
>>821 処理と表示とコントロールロジックが分離できないPerl/CGIやPHPでは話にならない
こればっかりは、開発者のスキルが云々の問題じゃない。
>>823 PerlやPHPにもMVCフレームワークが存在するご時世なのに・・・
>>824 >PHP4ではあまりちゃんとしたカプセル化/隠蔽はできないので、ここでは変数名の重複が起こりにくくする程度の意味しかありません
>>823 ギガワロスw
素晴らしい意見ですね。
>>826 君自身の意見を聞かせてもらいたいですな。
MVCの本当の意味はなんなんでしょう?
まぁ単純に分離するだけなら、include使えばいいだけだしな。
830 :
nobodyさん :05/02/03 16:44:03 ID:1pYIWrdl
はじめまして。t.phpをEUCで書いていますSJISで出力したいのですが、 mb_http_output('SJIS'); と一行書けばスクリプト内の日本語部分もすべてSJISとなりも文字化けしないのですか? サーバはLinux のredhatです
やればいいだろ
832 :
nobodyさん :05/02/03 17:08:59 ID:1pYIWrdl
>>831 はい出来ました。
ただこんなに簡単に変換できるものなのかなと思いまして。
sjisに変換する一般的なやり方などはあるのですか?
833 :
nobodyさん :05/02/03 17:40:49 ID:iLTZWlLI
$fp = fopen("test.html","w"); fputs($fp,$str); fclose($fp); ってやると、許可されてない権限とかエラーでて吐き出しが出来ないのだけど 普通は、ディレクトリを777にしておけば書き込みは出来ると思うのですが。 所有者もユーザレベルにしているし…。 PHPかApacheの設定でそんなんあったっけ?
>>833 test.html自体のパーミッションはいくつになっていますか?
お前ら優しいな
>>832 オマイでも簡単に使えるように作ってあるのさ
838 :
833 :05/02/03 18:46:57 ID:???
>>834 test.htmlは存在していません。ない場合は、自動作成されるはずなので。
test.htmlをためしに作って、666にして試してみましたがダメでした。
>>835 セーフモードはoffになっていました。
サーバを新しくたてたら、未知の壁にぶつかっていまつ orz
Core3にするんじゃなかった…。
840 :
833 :05/02/03 18:52:17 ID:???
>>839 777もダメでした。
/var/www/html/test.html
なんですが、 /varから777とかにしてみたがダメだった。
もうこんなんで職業プログラマなんて恥ずかしすぎる。
test.htmlとそのスクリプトのphpファイル自体は同一のサーバにあるんですよね? test.htmlとそのスクリプトのphpを同じディレクトリにおいて試すとか
てか、この馬鹿・・・エラー表示を書かないよな
おれはエスパーだからおk
844 :
833 :05/02/03 19:46:13 ID:???
>>841 >>842 Warning: fopen(/var/www/html/test.html): failed to open stream: Permission denied in /var/www/html/test.php on line 5
がエラーです。
test.htmlとPHPファイルは同階層においてあります。
むー、エラーのログは何か吐いてるかな?
846 :
833 :05/02/03 20:12:52 ID:???
エラーログも、ディスプレイログと全く同じで、それ以外は吐き出されていません。 もうこうなったら、ソースで入れ直してみます。せっかくパッケージ管理に移行しようと したのに…orz
848 :
nobodyさん :05/02/03 20:21:38 ID:1pYIWrdl
$sex = ($_POST['sex']=='male')?'男':'女'; これはどういう意味なのでしょうか? 私は$_POST['sex']がmaleなら男、 違うなら女を$sexに返すと思っているのですが。 これは何かの省略した書き方なのですか?
>>833 php.iniのdoc_rootが正しく設定されているか確認。
で、system("whoami");とかやってみて、実行しているユーザーを正確に把握して、
きちんと整備し直してみる。
>>847 (Fedora)Core3だと言ってるが。
>>848 マニュアルにterniary条件文として載ってる
ぐぐる時は、「三項演算子」で
誤字: ternary
852 :
847 :05/02/03 20:26:10 ID:???
>>850 なんと検索していいかわからなかったもので、どうもありがとうございました。
よくある三項演算子の使用例 $result = ($fp = fopen('foo.txt', 'ab')) ? flock($fp, LOCK_EX) ? ftruncate($fp, 0) ? stream_set_write_buffer($fp, 0) ? fwrite($fp, $string, strlen($string)) ? flock($fp, LOCK_UN) ? fclose($fp) ? true : false : false : false : false : false : false : false; if (!$result) print '何かエラー';
あとラジオボタンのon offとかね
>>854 みたことねぇぇぇえええええええええええええええええええええええええええええ
$fp = fopen('foo.txt', 'ab') and flock($fp, LOCK_EX) and ftruncate($fp, 0) and stream_set_write_buffer($fp, 0) and fwrite($fp, $string, strlen($string)) and flock($fp, LOCK_UN) and fclose($fp) or print '何かエラー'; これでいいじゃん
859 :
854 :05/02/03 21:32:08 ID:???
>>833 つまり、833はパーミッションを理解してないいって事で終わりだな
勉強し直すか窓に帰れ
>>833 なんかLinuxのパーミッションを理解していないとしか思えない
自分が何をやったかもわからずにディレクトリの権限とかも変更してそうだしね
うちもFC3を使ってるがphp.iniのdoc_rootの設定なし、セッションファイルを
tmpfsに置いている以外は弄ってないし、問題もない
PHPってさ、配列が空の場合にforeachで回すとwarrningが出るのな。 一回もループしないで抜ければいいじゃんとか思うが。 ホント屑言語だな。
そのPHPは別のだよ。スレ違い
>>862 空の配列ではなくて 配列でない変数に対して だけどな。
配列なら配列として宣言しろと。
>>864 それは正常な動作でエラーが出なくては困ると想うけどね
配列かどうかわからないならis_array()で判断してから放り込む
なりするしかないね
そもそもセットしていない変数を利用しているとかそういう事
ではないの?
釣れすぎwww
いたたまれないな
いくら他人を哀れんでもお前の地位は向上してませんから!m9(^Д^)プギャー
板玉れない
居た堪れない
872 :
nobodyさん :05/02/04 16:43:09 ID:RhhqzTFg
ヘッダやフッタ部分のHTMLをPHPの
requireで呼び出して使いまわそうと思い、このような記述をし、
$footer = "
http:// ".$_SERVER['HTTP_HOST']."/footer.php";
require $footer;
実機のWinにApacheをいれてテストすると以下のようなエラーがでました。
Fatal error: Failed opening required '
http://localhost/footer.php ' (include_path='.;c:\php4\pear') in *****.php on line 88
同じものをウェブにアップしてそちらのサーバで確認したところ、きちんとフッタが表示されました。
なのでApacheかphpの設定ファイルかなにか実行ファイルが足りないとか、そういうことだとは思うのですが
ググってもなかなか解決方法が見つからなかったのでこちらで質問させていただきました。
どうすればバーチャルホストのほうでも正常に表示されるのでしょうか?
ローカルにあるファイルをわざわざHTTPで読み出さねばならん理由を教えてくれ。
875 :
874 :05/02/04 17:03:28 ID:???
正規表現プログラム、というのをPHPで初体験しようとしている者です。 テキストエディタの検索で使ってるので「URLの表し方」とかそういうのは分かるのですが PHPで正規表現を使い文字列の一部を取り出すにはどうすればいいのでしょうか? $all = "今日も天気が良いので眠いな"; というような変数から「今日も天気が[.*]な」を検索し、左記の「[.*]」部分を文字列strに入れるには どう組めばよいのでしょうか・・・?(この場合なら$strに「良いので眠い」を代入させたい) 多分凄く初歩的なことだと思うのですが初歩的すぎて正規表現解説ページで該当する箇所を 見つけられません・・・。ご存じの方よろしくお願いいたします。
877 :
nobodyさん :05/02/04 17:13:51 ID:Edgmb0Vg
>>874 PHPを最新のものにしたら正常に表示されました。どうもありがとうございます。
>>873 ローカルパスで指定しているとウェブにアップするときに書き換えるのがめんどくさかったので
HTTPで開いてたのですが、普通だと皆さんどのようにしてるのでしょうか?
どこかに各ファイルへのパスを指定してあるファイルを用意して
それを毎回読み込んでフッタを表示させるようにし、
ウェブにアップする際にはそのパスを指定してあるファイルだけを
書き換える、という方法なんですかね?
>>877 ディレクトリ構造(DOCUMENT_ROOT以下、includeディレクトリなど)を本番と同じにしたテスト環境を用意する。
>>876 $strValue = "今日も天気が良いので眠いな天気がなんとな";
preg_match( "/今日も天気が(.*)な/", $strValue, $match1 );
print $match1[1] . '<br>';
preg_match( "/今日も天気が(.*?)な/", $strValue, $match2 );
print $match2[1] . '<br>';
正規表現はマニュアルからだと難しいかもしれんから
http://www5a.biglobe.ne.jp/~n_rieko/perl/8.htm とか簡単そうなところから勉強してみては?
簡単な文字列置換だとstr_replace()を使うって手もある
882 :
nobodyさん :05/02/04 19:16:34 ID:u3cic1J6
配列のキーと値を別々の配列に入れたいのですがarray_keysとarray_valuesで それぞれの配列を作った場合、対応関係は保持されることが保障されているのでしょうか? 例えばこのような例を考えた時に $a = array('a' => 'apple', 'i' => 'iron', 'u' => 'ugly', 'e' => 'english', 'o' => 'only'); print_r(array_keys($a)); print_r(array_values($a)); として自分で実験してみたら、結果が思い通りとなり順番どおりに並んでくれました。 Array( [0] => a [1] => i [2] => u [3] => e [4] => o ) Array( [0] => apple [1] => iron [2] => uly [3] => english [4] => only ) このように常に対応関係が保持されるのかされないのかご存知の方が いらっしゃいましたらどうかよろしくお願い致します。 もし対応関係が保持されない場合は foreach ( $a as $key => $val ) { $keys[] = $key; $vals[] $val; } のようにすればできると思いついたのですが、もっと良い方法をご存知の方が いらっしゃいましたらどうかよろしくお願い致します。
883 :
nobodyさん :05/02/04 20:30:00 ID:E7qef8MC
すんごいくだらない質問なんですが StrictなHTMLを吐き出すPHPスクリプトを作ろうと思い <?xml〜を直に記入したらエラーになったため <?php print "<?xml〜"; ?> <!DOCTYPE〜> <?php 本体 ?> と記述して事なきをえたんですが 設置後に見ると何故かHTMLソースの上に一行空白がありました。 これはどう対処すればよいでしょうか?教えて下さい
>>883 XREA なら、空行は広告の所為だからどうしようもない
エスパー乙
886 :
883 :05/02/04 20:44:21 ID:???
つかXreaってShortopentag、Onなのか 共有なんだからデフォルトOffで好きなやつだけHtaccess弄ればいいのに
888ゲット
>>883 こう書いてみたが別に隙間なんか出てこないよ
PHP4.3.10ね
------------
<?php
print "<?xml
aiueo
?>";
?>
------------
隙間が出来るのはホントに上が1行空いてるからだと思うよ
あるいはBOMかもな
---空行--- <?php ?> とか
892 :
nobodyさん :05/02/04 22:04:54 ID:HCHebah7
$file = file("xxx.txt") と同じ内容をwhileで書こうとおもい 下のように記述したのですが上手く動きません。 どこがおかしいのでしょうか?? $fp = fopen("xxx.txt","r"); while (!feof($fp)) { $dat = ""; while (substr($dat, -1) != "\n"){ $dat .= fgets($fp,256); } $file[] = $dat; }
お前がもう救いようの無いくらいの馬鹿だからだよ
894 :
892 :05/02/04 22:11:15 ID:???
事故解決。できました・・。
解決したのも不幸なような。
PHPとはXMLをベースにしないと埋め込めないものなのでしょうか? そしてPHPの<? ?>こういうのを埋め込んだら拡張子は.phpにしなければいけないのでしょうか? どこを見てもそんな事が書いてなかったので質問させていただきました。
>>896 何を言っているのかわからない。
PHPとXMLは直接関係無いぞ。
〜拡張子は.php〜別にどうでもいい・・・
Web鯖の設定さえできてれば、.htmlでもなんでも処理できる。Web鯖の設定ができていればね。
898 :
nobodyさん :05/02/04 23:57:01 ID:JB/Xwm8r
今日、初めてPHPを触った初心者です。 バージョン5.0.3を日本語対応させようとしたんですけど、 文字化けしてしまいます。 php.iniでは、 default_charset Shift_JIS mbstring.language Japanese mbstring.internal_encoding EUC-JP mbstring.http_input auto mbstring.http_output SJIS mbstring.encoding_translation On mbstring.detect_order auto mbstring.substitute_character auto mbstring.script_encoding EUC-JP 日経ソフトウェア1月号に載っていた設定そのまんまです。 SJISやSift_JISなんて表記が混在していても大丈夫なんでしょうか。 バージョン4なら日本語化されているので、最悪そちらを使う、 という手もあるのですが、それでは敗北なので。(笑 どなたか教えてください。
>>898 outputがSJISになってるが、ほんとにSJISでHTMLが出力されてるかソース表示して確かめよ。
SJISだったならばmetaタグにsjis指定を記述してブラウザに解釈させよ
>バージョン4なら日本語化されているので
初めて触ったのにこんな情報どっから仕入れてきたんだ?
901 :
898 :05/02/05 00:18:59 ID:???
早速のお返事、ありがとうございます。 バージョン4については、日経ソフトウェアに書いてあったのですよ。 1月号だから、今からは買えないけど、何ページにもわたって 書いてあったので、助かりました。 これから試してみます。
902 :
nobodyさん :05/02/05 01:14:38 ID:H2lo0MBg
>>902 そうならないようにしろよ。
お前がどうやって組んだかわかるエスパーはこの板にはおらん。
905 :
898 :05/02/05 05:40:44 ID:???
>>899 出力はEUCになっているみたいです。
ブラウザでエンコードをEUCに変更したらうまく表示できました。
以下、ソースを載せておきます。
<html>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
<title>php基本のキ</title>
</head>
<body>
<?php print("Hello,World! 今日は天気だ"); ?>
</body>
</html>
メタタグを入れてみたんですけど、うまく行きません。
何がいけないのでしょうか。
906 :
898 :05/02/05 06:22:05 ID:???
>>905 本には、.phpはEUCでセーブするように、と書いてあったのですが、
試しにSiftJISでセーブしたら、うまく行きました。
もう、何がなんだか・・・(汗
907 :
898 :05/02/05 06:38:30 ID:???
できました。お騒がせしました。
908 :
nobodyさん :05/02/05 15:35:45 ID:HfaJ2irn
よく画像やスタイルシートを指定する際に、ルートディレクトリを表す / を使い、 /css/〜〜.css という指定の仕方をしているサイトがあります。 同じようなことをPHPでもやろうとしたのですが、 require("/file/hogehoge.dat"); このようにすると、かなり上の階層(/usr/home/****/ここが本来の場所/)の 指定になっているようでHTMLでの / と異なる挙動をしています。 この場合、どのように書き換えれば同じような動作(ルートディレクトリからの指定)を させることができるのでしょうか?
PHPって、なんでもっさりしてるんですか? PukiWikiを使ってるとイライラするのですが、これはサーバのせいですか?
define("ROOT_PATH","/usr/home/****"); require(ROOT_PATH."/file/hogehoge.dat"); とかしとけば今後環境変わっても便利
>>908 なんで同じにせにゃならんのよ?
アホなこと考えないで正しい絶対パス指定か相対パスでも使え。
912 :
nobodyさん :05/02/05 16:02:16 ID:HfaJ2irn
>>910 ありがとうございます。defineを使うのですね。
でもまだ少し疑問点があります。
hogehoge.datをいくつものファイルで読み込む必要がある場合、
define("ROOT_PATH","/usr/home/****");
もそれぞれのファイルに書く必要があるんでしょうか?
1回記述するだけですむ方法が思いつきません・・
>>912 いちいち聞いてないでdefineがどういうものか先に調べれ
しょうがないのでとりあえず各ファイルへのパスを指定する変数を 定義したファイルをひとつ作っておき、それは相対パスで読み込み、 それ以外はその定義ファイルから読み込んで対応することにしました。 私の疑問はその定義ファイルの位置を変更した場合にも対応できるように ルートディレクトリから指定できないかなあと思っていました。 どうもありがとうございました。
>>909 PHPが遅い?
こんなに高速で軽快な言語が他にあるのか?(w
916 :
910 :05/02/05 16:27:40 ID:???
>>914 んじゃ、
require($_SERVER["DOCUMENT_ROOT"]."/file/hogehoge.dat");
ってのはどうよ?
>>909 鯖のせい・PukiWikiのせいのどちらか。
スクリプトを作って「Ver 1.00」とか書くが、次にバージョンアップしたら、バージョンはなんて書けばいい? ってか、決まりなんてあるのか? マジくだらねぇスマソ
>>918 メジャーバージョンとマイナーバージョンをどうつけるかは自由。
920 :
918 :05/02/05 17:59:50 ID:???
>>918 それ以前に「Ver. 1.00」にするか、「Ver. 1.0.0」にするか悩まなかったか?
あるいは最初は「Ver. 0.1」から始めるべきかな?とか
公開するものなら最初のリリースは1.0かそれに近いバージョンで出すべき。 というか、バグ取りして一応のレベルに達して1.0を名乗れるようになってから 公開するのが当然。 0.1とかじゃロクに出来上がってないものを利用者にテストさせる印象しかない。
俺としては ・ソースコード公開以前→0.x.x ・ソースコード公開した→1.x.x て感じかなぁ。 公開する気が全くなくても、「これならソース公開してもいけるかも」てなったら 1.0にする。
それが普通だね。 本来、メジャーバージョン1未満は公開すべきではないし、 評価など目的があって公開するならバージョンをつけずに PRとして出すべきだから。
>>909 ここだけの特別な情報だから他のやつには言うなよ。
PukiWikiは遅い。間違いない。
そうだよなぁ。 あんな重い思いしてまでウィッキーさんは使いたくはないな。
927 :
nobodyさん :05/02/05 21:46:21 ID:H7vZqk2F
PHP4 + MacOS X 10.2.8環境で以下のソースを実行すると signal Bus error を起こしてしまいます。 対処法としては2次元配列の代入元の値を変数ではなくて数値にすると OKになります。 なにが問題なのでしょうか? WindowsのPHP5では異常がありません。 //だめ <?php $n = 500; $in = 999999; for ($i = 0; $i < $n; $i++) for ($j = 0; $j < $n; $j++) $keys[$i][$j] = $in; ?> //OK <?php $n = 500; for ($i = 0; $i < $n; $i++) for ($j = 0; $j < $n; $j++) $adj[$i][$j] = 999999; ?>
0.xはβとかαって感じだね。1.0でついに正式版みたいな。 ゾヌとか永遠にβ版だけどね。
929 :
nobodyさん :05/02/06 00:19:19 ID:2wEgbafX
>>929 全くわからないなら何やってもムダ。諦めろ。
>>929 全く分からんようだと参考サイトを見ても分からん気がするが。
どういう処理をすればいいのか問題を分割していってごらん。
1. フォームを表示
2. フォーム送信内容から検索結果を表示
2-1. フォーム内容からmysql用のSQL文を作成
2-2. mysqlへSQL文を送信
2-3. SQL実行結果を取得
2-4. 実行結果を画面表示
こういう風な分割を繰り返していくと、PHPで用意されている関数にまで分割することができる。
それを繋ぎ合わせたものが1つのスクリプトになるわけだ。
ファイル名から拡張子を出力する関数ってありませんでしたっけ?
pathinfo()でも使っとけ
まさにその関数です! ありがとうございました!
Perl範囲演算子みたいなのをPHPで表現するには、どうすればいいんでしょうか? aからzまでを配列にぶち込んで、ランダムな文字列を作りたいのですが。
>>937 ・aからzまで配列にぶち込む
・乱数で文字列を作る。
以上。
srand();$str = range('a', 'z'); $str2 = ""; for($i = 0;$i < 10;$i++){$str2 .= $str[rand(0,25)];} ↑が実際動くかどうか分からんけど、 Perl範囲演算子みたいなのはrange()使えば実現できる
941 :
nobodyさん :05/02/06 18:18:38 ID:5y+gVtnD
$ip = getenv('REMOTE_ADDR'); サイトを訪問した人のIPアドレスはこれで検出できたんですが、 ホスト名までは検出できないんでしょうかね? $host_name = getenv('REMOTE_HOST'); こう書いてみたんですがうまく検出できません。
$host = gethostbyaddr(getenv("REMOTE_ADDR"));
>>942 なるほど。
PHPではREMOTE_HOSTは取得できないのですか!
サンクスであります!
>>943 いや、鯖が必ずREMOTE_HOSTを引いて値を設定するようになっていれば
PHPで"REMOTE_HOST"で取得できるよ。普通そんな設定に鯖をしとかないけど。
>>943 ちなみにgethostbyaddrを使うと、サイトの反応が遅くなるからね。
946 :
nobodyさん :05/02/06 20:38:03 ID:GClGxaTK
$data[0] = array(size=>20,hoge=>2); $data[1] = array(size=>10,hoge=>1); $data[2] = array(size=>30,hoge=>3); この場合、$data[num][size]を大きい順にソートし 2次元配列に、つまり最終的に、 $data[0] = $data[2] ←[size]=30 $data[1] = $data[0] ←[size]=20 $data[2] = $data[1] ←[size]=10 このようにソートさせたいのです。 なにか方法はありませんでしょうか。
948 :
nobodyさん :05/02/06 20:57:31 ID:GLYJwer2
MySQL+PHPで掲示板の書き込み作ってるのですが、 データベースに書き込めるときと書き込めないときが出るようになってしまいました。 なんでですかね?
>>948 ・書き込み内容によって不適正なクエリが発行。
・500人ぐらいで共有してる安鯖を使用しているため処理能力がアップアップ。
>>948 月の引力の関係。
理科年表とにらめっこすれば解る。
953 :
948 :05/02/06 21:55:09 ID:GLYJwer2
2つのテーブルに書き込んでて、 1つ目はいつも上手くいくのよ、で2つめの書き込みがたまに失敗する。 やっぱ月かな。
アクセス解析を作っています。 リファラを記録する際に、「リファラが自分のサイトのコンテンツであれば記録しない」ということはできないでしょうか?
>>954 記録する際に、リファラが自分のサイトのコンテンツであれば記録しなければいいのでは?
>>954 URLを配列かなんかに全部代入して、ifでひっかかれば弾く…ならいけるが、効率悪いかも。
クッキー発行するとか
アクセス解析という言葉を考慮すると、
「記録する際に、リファラが自分のサイトのコンテンツであれば記録しなければいい」
で、終わっちゃうんだよなぁ。。。
>>954 が何に困ってるのか分からん。
962 :
954 :05/02/06 23:26:52 ID:???
>>961 言葉足らずですみません。
「記録する際に、リファラが自分のサイトのコンテンツであれば記録しなければいい」
というのはわかっているのですが、それをプログラムにすることが出来ないのです。
>>962 だからどこがわかんねーんだよ…
まさかリファラが自分のサイトのコンテンツかどうか判断できないのか?
964 :
954 :05/02/06 23:43:56 ID:???
>>963 "URL"という言葉が抜けていましたorz
なので、もっと厳密に言えば「記録する際に、リファラが自分のサイトのコンテンツのURLであれば記録しなければいい」です。
>>959 氏のご助言を参考に、下のような方法を考案したのですが、どこか違和感があります…。
$referer = $_SERVER['HTTP_REFERER'];
$my_site = array(サイトの全てのページのURLをつらつら);
for($i = 0;$i < count($my_site);$i++){
if($referer == $my_site[$i]){
exit;
}
}
967 :
954 :05/02/07 00:19:41 ID:???
>>965 …なるほど。
しかし、どのようにすれば実現できるのでしょう?
リファラをexplode()で分割したりするのでしょうか…。
方法がいまいちつかめません。(^_^;
っと、すみません。
966さんのレスを読む前に書いてしまいました。(^_^;
書き込もうとしていた時にはまだレスがついてなかったので。。。
>>966 stripos()という関数を使えば実現できるのですか。。。
ありがとうございました。
まぁ、なんだ、いろいろ考えてみたところで、 最近、REFERER吐かない接続者が多いんで、そこんとこヨロシク! って感じですかね。
あぁ!! 最初に現れる位置だから用途が違うでしょうけど preg_matchよりstriposの方が高速でしょうか?
>>972 単純な比較と正規表現処理とだから、当然striposの方が速いんでないの?
数値で比較して安心したいなら、
print microtime();
for(〜){ 処理内容; } // 適当な回数
print microtime();
みたいな感じで実際試してみればいい。
かなり違うね strpos 0.61152000 1107746919 0.61356200 1107746919 preg_match 0.61358800 1107746919 0.62025600 1107746919
975 :
nobodyさん :05/02/07 15:06:02 ID:6YQico4I
同じページ内で、まず表1を表示、次へボタンを押したら表1の部分を表2に 変えたいんですがどうすれいいでしょうか?
Redhat7.3にPHPを先にインストールしてまして、あとからMySQLを インストールしてみたのですがPHPで認識してくれません。 MySQLインストール後にPHPに認識させるためになにか設定等は 必要なのでしょうか?
>>976 RPMで入れたのならphp-mysqlてな感じのrpmも転がってると思うのでそれを入れる。
見つけられなかったら諦めれ。ソースから入れる手もあるが君にはまだ早い。
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ..... はどういう意味ですか?でどうしろ言われてるの?
>>979 PHPの中の人がスクリプトを読んでいった時に、
〜行目で \ というここにあってはおかしい文字を発見した。
その行以前にコーディングミスがある筈なので、それを修正する。
>>979 てめーは期待してねーキャラだからすっこんでろ
という意味。
すいません、叩かないで下さい あのですね・・ -> 上の記号の意味を教えて欲しいんです・・ map {$_->[0]} こういう風に使われているのですが 検索したのですが、やり方が悪いせいか全然出てこなくて <=>これとか&&とかはいっぱい載ってたのですが・・
includeしたスクリプトの中にある関数に 引数を渡すことは可能ですか? 可能であれば教えてください。
>>982 オブジェクトのメソッドやプロパティにアクセスする演算子
ex) $obj->method();
>>983 やってみたら答えはおのずと出ると思う
やってみてムリだったらまた書き込んで
:-> にっこり君
>>982 それはPerlなのでPerlスレの方が良いかと。
>>983 includeの利用云々に関係無く、普通に関数を使う時のように引数を渡してあげてください。
includeでこだわる理由があるとすれば可変長引数を使ってたりするのかな?
その場合は、func_get_arg()等を使います。
>>984 >>986 レスどもです。引数は普通に渡せるのですね。
include("hoge.php('hoge')")
こんな感じでやってみたのですがエラーがでてしまいました。
>includeでこだわる理由
それはrequireの方がいいという意味ですか?
特にこだわりなどはないのですが。
いや、includeとか関係なしに普通に引数を渡せばいいんじゃ ■func.php function f($arg) { ...... } ■main.php include('func.php'); f('arg');
989 :
983 :05/02/07 19:19:43 ID:???
ああっ!なるほど!成功しました。 何か勘違いしていたようです。 どうもありがとうございました。!
勉強不足≠勘違い
つかどう見ても勘違いじゃないだろ
992 :
nobodyさん :05/02/07 20:20:56 ID:ugDz3ClP
MySQLと、PHPを連携させました。 そこで誰もが思う質問 ●IEから、ユーザーの選択したデータのPHPロジック中への受け渡しはどうするのか? ●フェッチアレイした結果をIEに表示する際に、色つきかつ、罫線をつけるには? このあたりいいサンプルがあるサイト、または、方法教えてであります
993 :
983 :05/02/07 20:22:14 ID:???
>>990-991 自分も後から「勘違い」は使い方が違ったなと思いました。
そして突っ込みが必ず来るだろうなと。
インクルードしたら、インクルード元にインクルード先のスプリクトが
書かれているような振る舞いになるのをすっかり忘れていました。
>>990 さんの言うとおり、これも勉強不足の内ですので、
どうか目を瞑っておいてください。
>>992 今から開いてる本屋行ってPHPの入門書とHTMLの入門書買って来い
ここがくだらねぇ質問スレといえどもあんまりだぞ・・・_| ̄|○
>>992 簡単だよ
まず、沢山のマニュアルを読む
>>992 ●$_REQUEST
●echo '<font color=#FF0000>'.フェッチアレイした結果.'</font><hr>';
>>992 確かに誰もが一番最初の最初の最初は知らないが・・・
>>992 >MySQLと、PHPを連携させました。
させたんかいっ!
お前は、パンツはく前にズボンをはく口だな(w
CSSで ■■■■■■■■■■ ■ ■ ■ 画像のりんく ■ ■ ■ ■ ■ ■■■■■■■■■■ httm:文字ののりんく という風にしたいのですが どのようにすればいいですか?
>>999 千ゲットそして最悪なミスしてすいません
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。