【PHP】下らねぇ質問はここに書き込みやがれpart11
2GET
3GET
4さま
五月蝿い
ろくでなしどもめ。
ななしさま
8 :
nobodyさん:2005/10/18(火) 09:52:55 ID:i5K/wskH
PHPってなに?
魔法の合い言葉
胃痛の原因
phpスクリプトでコマンドプロンプトを実行するには
どうすればよいのですか?
意味不
>>11 system(), exec()
レンタルサーバ等,セーフモードで運用されている場合は使えない場合がある.
15 :
14:2005/10/18(火) 11:15:34 ID:???
あ、間違えた。コマンドプロンプト「で」実行したいのかと思った。
16 :
11:2005/10/18(火) 11:23:10 ID:???
>>13-15 みなさんありがとうございます。
system()とchdir()を使うことでできました。
17 :
nobodyさん:2005/10/18(火) 13:36:04 ID:BK6jpjuT
すいません、前スレが埋まってしまったのでもう一度質問させてください。
$fp=fopen("*.txt","w");
fputs($fp,"*");
fclose($fp);
このようなソースで、PHPをブラウザから普通に呼び出せば問題なくファイルに書き込めるのですが、
Ajaxを使いたくてXMLHttpRequestから呼び出しを行うとファイルへの書き込みがされません。
これは仕様なのでしょうか。
XML(ryからPHPを呼び出してファイルへの書き込みが出来る方法があれば教えていただきたく思います。
18 :
nobodyさん:2005/10/18(火) 14:17:37 ID:J3Qm7IQ6
脊髄反射。権限の問題じゃないかな。
19 :
17:2005/10/18(火) 14:21:31 ID:???
>>18 WindowsXP+apacheで動かしているのですが、それでも権限の問題があるのですか?
20 :
nobodyさん:2005/10/18(火) 14:28:39 ID:nQAMQYvG
>>17 XMLHttpRequestから本当に呼び出されてる?
21 :
17:2005/10/18(火) 14:33:43 ID:BK6jpjuT
>>20 $fp=fopen("*.txt","w");
fputs($fp,"*");
fclose($fp);
print "*";
このようにして呼び出すとjavascript側でinnerHTMLの書き換えは成功するのでそれは問題ないと思うのですが・・・
23 :
nobodyさん:2005/10/18(火) 14:41:15 ID:BK6jpjuT
>>22 ポカミスですか・・・
仕様でできないとかそういうわけではないんですね。
調べてみます、ありがとうございました。
24 :
nobodyさん:2005/10/18(火) 15:19:25 ID:Im4kkPK4
ヤフーとか、ログイン後ブラウザを閉じて
再度立ち上げてもログイン状態となるのは
どういう仕組みなのでしょうか?
セッションIDをクッキーに保存するやり方だと
一度ブラウザを閉じると再ログインが必要になってしまいます。
何か設定があるのでしょうか?
レンタルサーバなのでphp.iniはいじれません・・
>>24 セッション使わないで普通にCookieにID情報を保存してるだけだよ。
>>24 クッキーは保存期限が決められます
何時間とか何日とかブラウザを閉じるまでとか
>>27 出来る出来ないの話じゃない。
この場合はヤフーが例に出てきたから、
ヤフーはセッション使わないでCookieのみだよと発言しただけ。
本来ならセッション管理にしたほうが
セキュリティ的にはよいわけだが。
まぁ、そう熱くなりなさんな
>>24は、「CookieでもSessionでも出来る」と学べたんだし
>>24 ブラウザを閉じた後でも(cookieを使用する方法での)セッションを有効にするのに必要な手順。
・cookieのみでセッションを使うように鯖の設定を適切に変更
・鯖側のセッションデータが消えないように、鯖のセッションgc周りを適切に設定。
・ブラウザを閉じた時に消えないように、session.cookie_lifetimeに該当するものを
リクエスト毎にsession_set_cookie_params()で設定。
31 :
31:2005/10/18(火) 18:23:27 ID:fdQa1YD9
PHPはCGIよりも軽いの?
( ´д)ヒソ釣(´д`)釣ヒソ(д` )
重さを量ったことは無いなぁ
>>31 サーバによって違うんじゃね?
ウチは普通のタワー型だからそこそこ重たいけど
キューブ型やらノートの鯖なら片手でも持てるでしょ?
35 :
nobodyさん:2005/10/18(火) 18:54:51 ID:Yne7aJ8c
CGIBOYのチャットの闇落ちの仕方教えて。
36 :
nobodyさん:2005/10/18(火) 19:44:39 ID:CyA7ywFN
質問です。
phpコード内で
:
↑はどのようなときに使用するのでしょうか?
ディレクトリ内のhtmlファイルの一覧を表示するphpを作ってるんですけど
各htmlから<title></title>の内容を取ってくるスマートな方法ないでしょうか?
>>37 考えついたスマートじゃない方法をお教えください。
>>39 アクセスする人が本人だろうがその他の人であろうが関係ありませんよ。
あまりに基本的な事なのでそれを知らないとは思えないですし
ひょっとしたら宣伝でしょうか?それでしたら宣伝板があります。
そこ以外で宣伝する場合は禁じられていた気がしますが、
あまりに基本的な事なのでそれを知らないとは思えないですし
ひょっとしたら2ch初心者でしょうか?それでしたら半年ROMってろ!!
41 :
37:2005/10/18(火) 20:40:08 ID:???
>>38 各ファイルの先頭から300byte位までを読み込んで抽出
という方法を考えていたのですが、どうもスマートじゃないような気がして。
>>41 いいんじゃないの、それでも。
俺なら最初に</title>が出てくるまでにしておくがね。
>>38 $list = scandir();
foreach ($list as $l) {
if ($l == '.' || $l == '..') continue;
$s = file_get_contents($l);
$s = substr(stristr($s, '<title>'), 7);
$s = substr($s, 0, stripos($s, '</title>'));
echo $s;
}
これじゃだめかな
アンカーミス
>>37です
あ、<title >みたいなのが認識されないや
45 :
37:2005/10/18(火) 21:06:33 ID:???
>>42 行で読み込んでいって</title>にマッチしたら代入って感じでどうでしょうか?
>>40 >ひょっとしたら宣伝でしょうか?それでしたら宣伝板があります。
アドレスを書き込めば理由はどうであれ宣伝になりますね。
>そこ以外で宣伝する場合は禁じられていた気がしますが、
>あまりに基本的な事なのでそれを知らないとは思えないですし
>ひょっとしたら2ch初心者でしょうか?それでしたら半年ROMってろ!!
千里眼のごとき憶測、恐れ入ります。
無根拠の仮定で罵詈雑言を言われても・・・
47 :
37:2005/10/18(火) 21:12:13 ID:???
>>43-44 サンクス
やりたいことはそうなんですが、file_get_contentsでは
ちょっとスマートでないような気がするんですが。
素人なんで強烈に勘違いしてたらすいません。
ファイルが小さいなら一度に読んだほうがいい
どの辺が分水嶺になるかはシラネ
一気に読むのと一行ずつ読むのじゃ負荷て変わるもんなんですかね?
純粋な質問です。今まで一行ずつの方が負荷が少ないと勝手に思い込んでいたので・・・。
51 :
36:2005/10/18(火) 22:14:02 ID:CyA7ywFN
度々すいません。
:
↑これを使用する場合はどういう場合でしょうか?
;
↑行末のと間違っているのでしょうか?
それともソース改行無視みたいな記号でしょうか?
>>50 一般論としてはディスクアクセスが増える分
一行ごとに読み出すほうがディスクへの負荷は増える。
でも、実際にはシステムやOSでキャッシュしてたりするのでなんともいえない。
だから普通は処理性能や負荷状況もテストを行う。
でも負荷やスマートさを考える前に
まず確実に動くソースを書いてからジャマイカ?
>>51 三項演算子のこと?
>:
>↑これを使用する場合はどういう場合でしょうか?
だけじゃ何を知りたいのか分からないよ。
まあ、ここはPHPスレだから三項演算子と仮定するね。
使用例
<?php
$HardGay = 2;
$SoftGay = 1;
$HardGay > $SoftGay ? echo 'オッケ〜イ、フゥー' : echo 'ゴリエハァハァ ';
?>
変数の数値をかえて試してみてねん。
ちなみにecho文は戻り値を持たないからだめよん。
if{ } else{ }でも同じ処理できるよ。
>$HardGay > $SoftGay ? echo 'オッケ〜イ、フゥー' : echo 'ゴリエハァハァ ';
のechoをprintに変えて試してね。
コピペはだめよ うふっ
へんな回答者があらわれたなぁ
echo $bool ? 'a' : 'b';
psql上で
\d table_name;
と同じ事をPHPからしたいのですが、
pg_query()を使っても不可みたいです。
テーブルの定義を取得したいのですが、
PHPでそういう関数って用意されていますか?
マニュアル一通り見たんですが見つけられませんでした。
$a = 1; $b = 2; $c = 3; $d = 4;
$x = ($a == $b ? 'b' :
($a == $c ? 'c' :
($a == $d ? 'd' : 'e')));
echo $x;
144 名前:nobodyさん[] 投稿日:2005/10/18(火) 22:40:04 ID:CT5T2kGw
postgresでテーブルの定義を知りたいときのコマンドを教えてください
WebProg初心者スレで質問してた人かなぁ。。レスしたのオレオレ。
psqlから実行するのはシェルコマンドのようなもの。
一方pg_query()はSQLをデータベースに渡すためのもの。
psqlを使う時と同じ環境(実行ユーザの権限、使用するライブラリパスなどの環境変数 etc)
になるようにしてsystem()等のコマンド実行系の関数を使うか、
テーブル内容を取得できるようなSQLをpg_query()で実行すればよい。
って、今マニュアルを見直してみたら pg_meta_data()ってのがあるじゃん。
PostgreSQLでは、テーブルの構造等のシステムで使う情報も特別なテーブル(システムカタログ)に持っているから、
それに対してSQLを実行する、つー方法もある。
ttp://www.postgresql.jp/document/pg804doc/html/catalogs.html
62 :
nobodyさん:2005/10/18(火) 23:37:34 ID:tn/yEB1K
Linux + Apache 2 + mod_php
でサーバーを建ててphpの勉強を始めたんですが
a.phpというのをブラウザから開いても真っ白なページしか出てきません。
下のようなごく簡単なものならしっかりと意図したページを表示してくれました。
<?php
phpinfo();
phpinfo(INFO_MODULES);
?>
エラーとかを調べて解決していきたいのですが、Apacheのログとかにはこれといった
エラーが出てくれません。
こういう時のデバッグの仕方とかでよく使われる手法って何かありますでしょうか?
何でもいいのでとにかく何かエラーが出ているかどうか知りたいです。
>>62 php 以外の,html 等は正常に表示される?
真っ白なページのソースを表示すると何か書かれてる?
開けてびっくり!じゃないだろうね?
>>65 zencartというオープンソースのphpとmysqlのショッピングカートです。
とりあえず危険ではないです。。。
この辺を参照して、php.iniを適切に設定する。
ttp://jp.php.net/manual/ja/ref.errorfunc.php error_reporting E_ALL
display_errors on
んでも、まぁ、HTTPヘッダのcharset指定が適切じゃなくて、文字エンコーディングを
誤判定してあたかも何も出力されていないように見えるだけじゃないかな、っと。
apacheの設定httpd.confでDefaultCharsetを適切に設定すれば表示されるんじゃないかな。
スクリプトを書いていくうちにHTTPヘッダを見る必要が出てくると思うので、
そのあたりをカバーしてくれるツールを入れておくのもいいんでないかと。
ieHTTPHeadersやProxomitronあたりと、firefoxのアドインツールでも見れるんだっけ?
って、書いてるうちにスレが進んでた。。
>>64のようなページのソースは鯖からのリスポンスに表示データがない時にIEが勝手に作り出したりしてた希ガス
>>67 php.iniの設定を変えてApahceを再起動してみましたが、
残念ながら特に画面にエラーは出てきませんでした。。。
火狐ってvbs非対応?
ってレスあったか・・汚しスマソン
寝ます・・
PearのDBクラスで、getOneやexecuteメソッドでクエリを送信する場合、Pearはmysql_escape_string()や%→\%などのエスケープ処理はしますか?
驚かないで聞いてくれ。
実はpearのDBクラスはPHPで書かれているんだっ!
自分で確認する事ができるねっワッセローイ
foreach ($a as $v)
の$aの配列の取り出される順番について質問です。
これって、$a[0],$a[1] $a[2]の順番で取り出される事が”保障”されていますか?
>>74 ”保障”されていません。まずこれを実行してみそ
$a = array(2 => "two", 0 => "zero", 1 => "one");
foreach ($a as $v) echo $v, "\n";
>>74 されていません。
順序は添え字の大小(数値上だとか文字コード上だとか)の比較によらず、
PHPでは内部的に「順序リスト」によって処理しています。
その順序の順番通りに取り出されます。
こんな深夜にありがとうございます。
なるほど、ではちゃんとforを使って書く事にします。
ありがとうございました。
初心な質問、失礼致します。
「->」という演算子がどういう機能をしているのかがわかりません。
当たり前のように見かける割には、意外とどの文献にも説明がなく困っています。
>>78 「->」は正式には"演算子"には分類されないと思うが。
機能についてはクラスとかの説明を参照。
演算子でOKです
82 :
nobodyさん:2005/10/19(水) 09:56:30 ID:RXCGepdO
質問させて下さい。
「人気ブログランキング」に代表されるようなランキングサイトが多々ありますけど、
こうしたランキングを自分用にカスタマイズ出来るサービスってないでしょうか?
「ブログビープル」や「マイブログリスト」といったサービスが近いと思うのですが、
ping送信がうまく機能していない所があるせいか思い通りに行きません。
ttp://spok.soccermath.com/index.html 上記にあるような自分用ランキングをブログのプラグインの1つとして表示させるのが理想です。
業者に頼む方法もあるかと思いますが、他の解決策があれば教えて頂きたいのです。
そもそもこうしたランキングを自作することが可能なのかもよく分かっていません。
「逆アクセスランキング」などは作成ツールをよく見かけるのですが。。
83 :
nobodyさん:2005/10/19(水) 10:43:36 ID:EZ58Jn44
クラスってどういう時に使うと便利なんですか?
85 :
83:2005/10/19(水) 11:07:57 ID:???
いや、PHPのことなんだけど…。
PHPから入った人間なので、オブジェクト指向とか良く分からんのです
>>83 一言で言えば、プログラムを整理したいとき。
>>85 PHPでなら作れるだろうさ。そういうサービスを探してるって
>>83に書いてあるぞ。
先生,この人たちは何をしゃべっているのですか?
全然噛み合ってない気がするんですけど
82-88は無かったことにしよう
変数を複数使うのと
$a0、$a1、$a2、$a3…
配列でまとめるのと
$a[0]、$a[1]、$a[2]、$a[3]…
配列の方がプログラム組むのは楽ですが、どっちがメモリ消費を抑えられますか?
微々たるものなんでしょうが大量の変数を扱うので出来る所は最大限メモリ消費を抑えたいのですが。
誤爆しまくるスレはここですか?
>>91 そんな次元でメモリ節約を考える必要があるほどなの?
アルゴリズムの工夫でなんとかならない?
一時的にファイルにデータを出力しておくとかさ.
やり方によっては速度差は出るけどね
処理次第でどっちにも転ぶ
ベンチとって疑問があれば質問しろよ
>>91 PHPの配列($a[0] $a[1])は他の言語の配列とは違ってキーの数字も記憶されるからメモリ食いそう
ということで配列を使わないプログラム組んで苦しんでください。
(´-`).。oO(メインメモリがメガバイト単位で搭載されている時代に何言ってるんだか・・・)
(´-`).。oO(きっと
>>91のPCはキロバイト単位でしか積んでないのさ・・ってPHP動くのか・・・?)
(´-`).。oO(カセットテープにデータを保存しているんだろうなぁ・・・)
大量の変数...
$a1,a2,$a3,$a4...........$a100,$a101......$a49578264017484568467265674836754
>>101 ワロス
>>100 は
最大何個の変数が作れるか知ってる?
($a49578264017484568467265674836754 なんて制限以上だから作れるわけねーよwプゲラ)
って意味じゃないのか?
postgresにファイル(画像や動画など)を突っ込むのは普通しませんか?
ファイル名だけ突っ込んで、ファイル自体は別の場所に管理した方がいいですか?
>>102 気づけないやつは一生気づけないからさ、そっとしといてやれよ・・・
105 :
82:2005/10/19(水) 14:37:16 ID:RXCGepdO
すみませんが適切なスレを教えて頂けませんでしょうか?
RSSの質問スレがあれば良いのですがないようですし、
上記
>>82のリンク先にあるランキングサイトを作成した業者さんの所で
「PHP」の欄に紹介されていたものですから、ここかなと思って質問しました。
>>103 あなたが何をしたいのか分かりませんので何ともいえないのですが、
管理のしやすさから言えば、フォルダ作ってそこに画像を収納したほうが・・
目的のサーバー外部から、内部のファイル更新時間を取得することは可能ですか?
>>106 全部DBに入れた方が管理しやすくない?
>>103 俺はあんまりしないけど
ヒント:ケースバイケース
管理のしやすさから言ったらDBに入れた方がいい気が
112 :
nobodyさん:2005/10/19(水) 14:56:59 ID:e62ag6fh
JISコードの「分」をEUCへ変換したいんだけど、mb_convert_encodingで変換
できないのは俺だけ?
>>112 1文字だけで変換すると,ってこと?
「分」が含まれてる長い文章でも無理なの?
>>112 文字コードを自動判別させるんだろ
俺は自動判別は使わないから大丈夫
>>112 mb_detect_encodingやってみて。
それで文字コードが何に変わってるか分かると思うから。。。
つ [ string mb_convert_encoding ( string str, string to-encoding [, mixed from-encoding]) ]
117 :
nobodyさん:2005/10/19(水) 17:19:34 ID:e62ag6fh
112ですが、自動判別を使っても固定で書いても同じ結果です。
たとえば、2005年10月11日 水曜日 09時10分11秒 <-JISでこれをEUCにコンバート
すると 2005年10月11日 水曜日 09時1011秒 で帰ってきます。
何ででしょうか? PHPのバグ?
118 :
nobodyさん:2005/10/19(水) 17:29:29 ID:M9vMYwgG
mb_send_mailを使ってメールを送信についてなんですが、
送信先アドレスが合っていない(アドレスが存在しない)場合、
一応FALSEも返されるのですが、それとは別にServer Errorが出ます。
こんな感じです(Warning: Server Error in c:\・・・・・.php on line 55)
アドレスが合っている(アドレスが存在する)場合は、
何も問題なく処理されるのですが・・・。
アドレスが存在しない場合でもServer Errorを出さずに
FALUSEだけ返す方法はないですか?
119 :
nobodyさん:2005/10/19(水) 17:41:02 ID:e62ag6fh
php.ini -> display_errors = On <- Off が手っ取り早い
>>118 mb_send_mail云々より
php on line 55って行ってるんだからそれ以前の行を
先になにかまずってないか調べた方がいいんでないの?
イージーミス臭い気がする
そもそも、アドレスが存在しなくてもTRUEが返って来るだろ。
>>121 確かに。
その後postmaster宛てにエラーメールが別途行くんだよな確か。
Win版なので余りアドバイスできないがエラーが出る辺り120同様ミスを疑ってみるのも・・・。
>>73 ここまで長いソースを読んだことがなかったので、自信がありませんが、
必要に応じてquoteSmart()しなければならない、で合っていますか?
# %がクオートされない気が…
>>118 >アドレスが合っている(アドレスが存在する)場合は、
そもそもどうしてアドレスがあっているかどうかを判定しているんだと
メールなんて送ってみて遅いときは数日後にメールが存在しませんでしたとかの
メールが返信されてくるわけで、それまで君は画面の前に張り付いているのかと
激しく聞きたい!
メールアドレスの整合性を検証しているだけなら120の言うとおり
エラーを出している部分を特定して修正るだけで解決すると思われる
認証に成功した人にだけ画像をダウンロードできるようにしたいのですが、
どういう風に実現できますか?
認証に成功→画像にリダイレクト
だと画像に直接アクセスしたらダウンロードできてしまいますよね。
>>125 ・セッション
・認証に成功した場合に画像を結果として出力
一般的な方法なのかどうか知らないけど,
php を経由して画像を出力するようにすればOK
129 :
nobodyさん:2005/10/20(木) 00:33:12 ID:AJY8FzbY
$data[0][0]=1;
echo "$data[0][0]";
とダブルクォートつけたまま、二次元配列の中身を出力したいのですが、
これだとArray[0]しか出力されません。
どう書き換えればよいでしょうか?
130 :
nobodyさん:2005/10/20(木) 00:35:09 ID:TNE3rFHb
echo "{$data[0][0]}";
>>129 こんな感じ?
echo '"';
print_r($data);
echo '"';
それともこっち?
echo '"'.$data[0][0].'"';
>>133 ダブルクォートも出力したい
もしくは二次元配列の中身+ダブルクォートも出力したい
のだと思ったわけだが違うというなら130のやり方だね
ちなみに
echo "{$data[0][0]}";
と
echo $data[0][0];
の違いって何なの?
出力結果は同じだよね??
>>134 同じです
>>129は
echo "今日の晩ご飯は{$data[0][0]}です";
みたいな使い方がしたいのかと
>>129 >>とダブルクォートつけたまま、
echo "\"{$data[0][0]}\"";
Redhat7でPHP3+PostgreSQLのシステムを、Redhat9のPHP4PostgreSQLに
移行(移動しただけ)してみたところ、ユーザ認証がエラーではじかれるようになってしましました。
PHP3⇒PHP4の仕様の違いに詳しいサイトor書籍があったら
ご紹介願います。
↑一応、PHP4は--enable-versioningオプションでコンパイルしています。
つ [ エスパー ]
141 :
137:2005/10/20(木) 04:40:46 ID:???
↑調べてみます。
>>117 俺の環境(Windows PHP4.4.0とPHP5.1.0)では問題ない
まあそりゃそうだろな
エスケープシーケンス?について質問です。
ダブルクオテーション""内にダブルクオテーションを書くとすると、
"<img src=\"\">"といった具合に書くことはわかったのですが、
シングルクオテーション''内にシングルクオテーションを書くとすると、
どういう風にかけばいいのでしょうか?
\'\'ではどうもだめなようなのですが・・・
駄目なのはお前だ
だめなのは承知しています。答える気がないなら黙っててください。
>>144 \' を2つ並べている理由は判らないけど、\' で大丈夫。
echo 'あああ\'いいい';
「\'\'ではどうもだめなようなのですが・・・ 」
どうだめなのかを書いた方がいいのでは?
149 :
145:2005/10/20(木) 10:04:38 ID:???
十分答えになってるはずだがねえ
頭が膿んでるのも承知しています。答える気がないなら黙っててください。
答えてるじゃん?
ヽ(`Д´)ノ┌┛)ω・`)
くだらない質問ですいません、htmlファイル
<a><b><c>hogehoge1</c></b></a>
<a><b><c>hogehoge2</c></b></a>
<a><b><c>hogehoge3</c></b></a>
から「hogehoge*」を全て取り出すスマートな方法とかありますかね?
エロい人おせーて
156 :
nobodyさん:2005/10/20(木) 12:45:21 ID:MKGw3uam
phpプログラマーを雇う予定なんだけど、
1.デスクトップ
2.デスクトップ、別途ノート支給
3.ノート支給
どれが一番お勧めだろう?
ノートは暗に家でも仕事してよね的な感じです。
普通の企業は3かな?
2はコスト的には若干避けたい。でも効率が結構変わってくるのであれば、
2でもいいかなと考えてます。
若干すれ違いだけど、レスよろしこです!
デスクトップを持ち歩かせてみよう
>>157 1年後、異色のプロレスラーとしてデビューしてたりして
>>156 2.3は家にPCがないPGって少ないだろうから、ノート支給するより
圧力かけたほうがコストパフォーマンスいいと思うよ
だから1がオススメ
select * from table_name;
を実行して
$r = pg_fetch_all(...);
echo count($r);
とすればレコード数が取得できると思いますが、
レコード数だけを取得すればいいときに、
これだけのために一旦全てのレコードを取り出すのは
効率が悪いように思えます。
何か他に方法がありませんか?
>>156 家で仕事なんかしないよ。
自由に使って勉強してねって感じでも最近の子はね。
>>162 スレ違いのような気もするが…
ヒント つ[SELECT count(*)]
>>156 15万円くらい渡す.
「これで開発環境ととのえて」という.
安っ
>>156 1。安いから。支給するならPHPの書籍。本なら遊べない。
>>156 俺にノート買ってくれるのが一番効率いいな。
昔のPHPのデフォルト設定だと、getやらpostやらで送られたクエリーが
勝手に同名の変数に入ってしまいますよね
今使ってるサーバがそういう設定なんですが、
気分的にすごく嫌なので
自分のスクリプトだけ$_GETや$_POSTを
必須にするような設定方法ってありますか?
>>170 「勝手に」は入らない。(意図してるかはともかく)そう設定しているから入る。
register_globalsをOffに設定すれば求める挙動になるけど、
指定できるのはPHP_INI_PERDIR、PHP_INI_SYSTEMだから
運がよければ設定したいディレクトリの.htaccessで
「php_flag register_globals Off」と記述すれば可能。
CGI版のPHPの場合は、自分の利用してるディレクトリに置くphp.iniかな。
まあ、4.1.x以前だと、インストールした状態で入ってるから「勝手に」だとは思うけどな。
>>170 「デフォルトで」とかここらの言い方覚えなよ。
173 :
nobodyさん:2005/10/20(木) 15:48:08 ID:7izyihiQ
PHPってフレームワーク使って開発するのがいいのか
それともべた書きのほうがよいのか?
それともTemplate使ったほうがよいのか?
だれか教えてくれーーー
>>173 規模・予算・期間・クラの要望に応じて適当な方法を選択。
>>170 まあ、register_globalsの設定が答えではあるのだけれども・・・。
この際、クラスとか使って変数のスコープもちゃんと意識してみた方がいいかも。
>>173 174の言うとおりだけど、HTML出力するなら俺的にテンプレートエンジンは必須だな。
少し大きくなったらフレームワークが楽かな。
俺の場合、3ページ以上だったらフレームワーク使うかも。
177 :
nobodyさん:2005/10/20(木) 17:22:45 ID:P54wTQQ4
cookieの読み書きを行うphpスクリプトを用意し、
IFARAME内に上記スクリプトを呼び出しているのですが
cookieの読み書きができません。
IFRAME内からではクッキーは利用できないのでしょうか??
可能です。
Web制作版から誘導されてきました。
imgタグとPHPを使って、HTMLにランダムに画像を表示させたいのですが、
具体的にどう書けばいいのでしょうか。
リロード・アクセスする度に画像が変わる、という風にしたいです。
よろしくお願いします。
$var = mt_rand(1, 3);
if($var == 1){print"<img src=\"aaa.jpg.jpg\">";}
elseif($var == 2){print"<img src=\"bbb.jpg\">";}
elseif($var == 3){print"<img src=\"ccc.jpg\">";}
181 :
軟式PHP:2005/10/20(木) 18:01:39 ID:???
>>179 JavaScriptでも出来るよ。
PHPでやるなら180みたいな方法か、<img src="img.php">みたいにして
img.phpで画像出力を行う。
>>179 >imgタグとPHPを使って
ってことなら、
>>181の、<img src="img.php">が正解かもね。
その場合、「img.phpではどんな処理をしたらいいのですか?」
という質問が返ってくる、とエスパーしてみる。
>>182 img.phpではどんな処理をしたらいいのですか?
配列の中に変数を入れて、別の場所でprintで表示させようと思うのですが
$input_frame = array("<INPUT size=20 type=text name=zip value =$str>");
$str = pg_fetch_result($result,$j,$i);
print("$input_frame[$i]");
このような形で出力したら、$strに出力されません。
どうにかして、このような形で使う方法はありませんか?
よろしくお願いします。
君は苦労が絶えん人だね
そうなんですよ
わかりますか?
>>184 何をやろうとしてるのか理解できない.
「このような形」って何?
なんでいきなり pg_fetch_result() ? $j, $i ってどっから沸いてきたの?
>>187 文字列中にある"$str"を変数として認識させ、
$strをそこに埋め込みたいんじゃないか?
真相は
>>184しか知らんだろうけど。
もしそうならe(ry
2行目で取得されるだろう$strを、1行目の$strの部分に入れたいってことか。
もしそうならe(ry
190 :
nobodyさん:2005/10/20(木) 19:10:10 ID:Uz4S3mFQ
困ってます。
データベースサーバがmysql09.lolipop.jpの場合、単純に「if($sqlin=mysql_connect("mysql09.lolipop.jp","root",""))」と記述すれば良いのでしょうか?
このままだとエラーが出てしまうのですがどうすればいいでしょうか?
ど素人ですみません。
>>190 fatal error : 未定義のエラーが記述されています line:3
>>190 しかるべき場所で聞いてみたけど,良い回答は得られなかった.
あなたの発言:
困ってます。
データベースサーバがmysql09.lolipop.jpの場合、単純に「if($sqlin=mysql_connect(\"mysql09.lolipop.jp\",\"root\",\"\"))」と記述すれば良いのでしょうか?
ど素人ですみません。
ロリポおじさんの発言:
う〜ん、僕には難しいぽ。未熟者でゴメンね。
>>190 >エラーが出てしまう
俺のところでは"貴方と同じエラー"は出なかったよ。
まあレポーティングレベル最低な環境だが。
>>190 っとまぁおちょくるのはこれくらいで
1、\"mysql09.lolipop.jp\",\"root\",\"\"はなぜエスケープしてるんだと
2、データベースサーバmysql09.lolipop.jpは内部と外部どちらあるんだと
3、外部にあるならデータベースサーバにログインできるアカウントはあるのかと
4、そもそも外部にあるならポートは開いているのかと
3秒考えただけでもこれだけあるわけだが…
しまった1は無し
192に釣られてしまったorz
>>190 ろりぽでDB作るときに指定したパスワード、表示されたDB名、ユーザ名
を指定すればいいんじゃ?たぶんrootじゃだめぽ
199 :
192:2005/10/20(木) 20:56:07 ID:???
200 :
nobodyさん:2005/10/20(木) 21:39:16 ID:H5QCKuTq
教えてください。
$_POSTを使わずにPOSTで渡された値を得る方法はないですか?
同じkeyを持つチェックボックスが複数押されてると正しい値が得られそうにないんで、
$_POSTでなく自前でやろうかと思うんですが、print_r($GLOBALS);しても思い当たる値を持った変数がありません。
>>200 チェックボックス配列?
呼び方がわからんが、こういうの name="check[]"
でやればいいんでないの?
つphp://input
つ$HTTP_RAW_POST_DATA
まあ漏れならこんな面倒な事せずに
配列使うなり、別の手段考えるけどね
>202
ありがとうございまつ。
調べてみます。
>201
name="check[]"は
質問の内容と食い違いますが(>200はPOSTとGETの両方で使えるようにという質問で。)
URLの後ろにtype=はともかく、type[]=だとなんかプログラム過ぎてお客様に見せたくないとです。
何その顧客('A`)
わざわざそんな事やって、余計なお世話だって気がするのは私だけだろうか。そうしたいなら止めはしないけど。
205 :
軟式PHP:2005/10/20(木) 22:29:08 ID:???
テラアホス
>>203 いや、URLの後ろにつくわけじゃないんだが…
<form method="post" action="ほげほげ.php">
<?php for($i=0;$i<10;$i++){ ?>
<input type="checkbox" name="check[]" value="$i">
<?php } ?>
</form>
こんな感じじゃ駄目なのといいたかったわけだ
そんな脳みそでお客様にプログラムを書いてあげることがどうかと。
>>203 配列をGETで送ってもURLはxxx.php?type[]=xxxにはならないんだが。
209 :
nobodyさん:2005/10/20(木) 22:52:03 ID:F9y0WL9y
phpを最近始めました。
C,C++,Javaの経験はあります。
この度スクリプト言語でWebアプリを作ってみようかと思ったので、
phpとperlの両方を調べつつ試している所です。
それで、いろいろなタイプのプログラムを参考にしたいと思っているので、
オープンソースのWebアプリを探しています。
現在、pukiwikiとp2を見ている所です。
他にもサンプルとしていいものがありましたら教えて頂きたく思います。
よろしくお願いします。
ブログ系のアプリも見たいです。
PukiWikiは・・初めて読むにはあんまりオススメ出来ないような・・・。
Cやってりゃわかんじゃないの?
似てるよね?
俺の誤認?
他の言語出来んだったらマニュアル読めばいいじゃん。
CとかJavaの経験があるのなら改めてオープンソースのコードを読む必要はないような…
Cの知識で書きながら判らない所はマニュアルを読めばそれなりに書けるのでは?
後はこのスレで聞きながら。なんだかんだ言ってもこのスレの住人は親切な椰子が多いと思う。
213 :
184:2005/10/20(木) 23:01:49 ID:???
188,189さんのおっしゃる通りです。
$result = $this->db->Query("SELECT * from data_area");
$rows = pg_num_rows($result);
$columns = pg_num_fields($result);
print("<TR>");
$input_frame = array("<TD><INPUT size=20 type=text name=zip value =$str></TD>","<TD><INPUT size=20 type=text name=address value =$str></TD>);
for($i=0;$i<$columns;$i++){
for($j=0;$j<$rows;$j++){
$str = pg_fetch_result($result,$j,$i);
print("$input_frame[$i]");
}
}
print("</TR>");
このようにして、テキストボックスの中に最初からDBの値を表示させて、
必要ならば値を変更して、再度DBに書き込むようにしようと思いました。
一般的には、このようにする、など教えてもらえないでしょうか。
よろしくお願いします。
215 :
209:2005/10/20(木) 23:17:21 ID:F9y0WL9y
>>210,211,212,209
レスありがとうございます。
言葉不足失礼しました。
言語の勉強にではなく、phpでどういうことがどのようにできるのかというのを
知るためにオープンソースを読んでいます。
Webアプリの経験もあるのですが、サーバサイドJavaや.Netで
スクリプト系の経験がないので、印象としては全く違い良く分かりません。
効率のよい書き方とか共通化のしかたとか
MVCモデルで書けるのかが全く分からないので
その辺りを意識して読みたいと思っています。
>>214 ありがとうございます。
OScommerce自体を知りませんでしたがとても面白そうです。
hogeDB内のhoge_dbテーブル内のHogeはある物としnaiyoは存在しない場合で
$aaabbb = "naiyo"
$query = "select * from hoge_db where Hoge = '".$aaabbb."'";
$hoge = mysql_query($query) or die("ほげ");
こんな感じのでクエリーが送信された時に
エラーの場合FALSEが返るとあるのですが
if ($hoge == FALSE){
echo "ないらしい";
$nanika = "nairasii";
}
というのを下につけても"ないらしい"が表示されません
間違ったクエリーが投げられた時に
$nanika等をセットしたい時はどうすればいいのでしょうか?
218 :
209:2005/10/20(木) 23:38:19 ID:F9y0WL9y
>>216 おー。あるんですね。
ありがとうございます。
>>217 mysql_queryが失敗した時点で、or dieに制御が移ってスクリプトが終了するんじゃね?
つか「ほげ」って出力されてね?
>>220 いや表示されなかった(;´Д`)
>>219 そこに書いてある事だと成功したらTRUEが返ってくるんでしょ?
失敗したらFALSE何か違うの?@@
>>221 URLの先の12行目に
次のクエリーは、文法的には間違っており、 mysql_query()は失敗し、FALSEを返します。
とあるのは読めるよな?
ここで注目する部分は「文法的」の部分だ
>>221が書いたSQL文は間違っていると思うか?
文法的に間違っているというのは以下のようなことではないのか?
$query = "select * form hoge_db where Hoge = '".$aaabbb."'";
ぼけとは何だ!
224 :
217:2005/10/21(金) 00:15:53 ID:???
文法的か・・・
確かに217のでは文法的には間違ってはいない筈・・・?
間違ったクエリー投げられた時
どうやってそのクエリーが
間違ったクエリーと判断してるんでしょう?@@
queryの結果が0件なのは失敗と言いません。これはおk?
226 :
217:2005/10/21(金) 00:25:03 ID:???
>>225 ありがとうございます
うまくいきました(´・ω・`)
>>224 >確かに217のでは文法的には間違ってはいない筈・・・?
間違っていないからTRUEが返されている
よってif文に引っかからない
クエリーの判断はあくまでDBが行っている
mysql_query()はDBに対してSQL文を投げつける関数
やりたいことはの9割は出来ているんだから
あとはどうやればやりたいことが実現できるか自分で考えて
ヒントは行数だ
PHPにぬるぽってありますか?
>>228 is_nullpo() が is_null() のエイリアスとして定義されている.
function is_nullpo($a) { return is_null($a); }
select * from table
で取り出したデータが例えば
ID key
1 100
2 130
3 200
4 50
5 95
であるとします。
このときID=2のkeyの値が何番目に大きいかを取得するのに
スマートな方法ってありませんか
いちいちソートしないと駄目でしょうか。
SELECT で返って来たものって値ですか?参照ですか?
あるカラムにでかいデータが入っているとき
そのカラムをSELECTで取り出すと
そのコピーが与えられるんでしょうか
それともただの参照ですか?
後者ならいいんですが、前者だと効率悪いですよね
>>236 前者(値渡し)でも効率悪くないので安心しましょう。
PHPはあなたが想像しているより幾分賢いんです。
内部ではrefcountというもので管理されていて(本来はゴミ集め用だが)、まあわかりやすい説明としては、
「文字列・配列・オブジェクトは値を書き換えようとしたときに初めてコピーが作られる」
・・・散々ガイシュツなんだけどね
PHPのデータの扱いではなく、データベースのカーソルの話のような気がするが。。。
>>238 236は
>返って来たもの
の話をしているようだけど。
カーソルの話ってよくわからんな。
DBサーバからソケット伝ってくる分はもちろんそのデータの大きさに応じたコストがかかるけど。
それ以上の不必要なコピーは特にないと思われ。
>>236 238のいうリザルトセットのカーソルの話だとすると
それをDBMSが実装してるか、PHPのドライバが実装してるか
その辺に依存する。普通にやった場合は大抵
リザルトセットは実体をクライアント側(PHP管理下)のメモリーに持ってくるよ。
>>240 リザルトセットの実体の場所なんて
>>236の質問と関係ねーべ。
まさかサーバ側のメモリに配置されたデータに対して「参照かどうか」聞いてるはずないし。
(もしそうだとしたらスレ違い)
まぁ、なんだ、PHPでの参照(リファレンス)というとPHPの管理下にある実体が存在するわけで、
その実体がPHPの管理下に作られた(DBから取得された)時点で
(DBからの)コピーか参照かの優劣は無くなってるな。
243 :
nobodyさん:2005/10/21(金) 11:13:59 ID:+5Hvdb6f
phpというかcgi全般の質問なんですけど、
タイマーみたいな機能(一定時間毎に処理させる)を実現するにはどうしたらいいんでしょうか?
たとえば、あるファイルに日時がついていて、その日時が過ぎれば、違うフォルダに移動させる、みたいな
cgiにアクセスしたら、過ぎた日時のファイルを移動させる、という擬似的なものしか思い浮かばないんですが、
やっぱそんな感じでしか無理なんでしょうか?
わかりにくくてすいません。
244 :
軟式PHP:2005/10/21(金) 11:15:58 ID:???
>>243 UNIX,Linuxならcron。
Windowsならタスクスケジューラー。
imap_fetch_overviewでヘッダ情報を取得したんですが。
fromの値が途中で切れてしまいます。
実際のfromは下記の通りですが
common.gsc <
[email protected]>
取得したfromはこうなってしまいます。""が付くのも謎です・・
"common.gsc"
$head = imap_fetch_overview($mbox,113);
foreach($head[0] as $key => $value)
{
print $key . ":" . $value . "<br>";
}
よろしくお願いいたしマフ
247 :
軟式PHP:2005/10/21(金) 12:09:32 ID:???
>>246 それさ、そのまま出力したんじゃ<>で囲まれた部分がタグとして
認識されて表示されないんじゃないのかな?
ソースを表示して見てミソ。
>>247 おお、ありがとう・・
俺レベル低っ! orz
>>248 外部から取得したデータをHTMLとして出力するときは
サニタイズするようにしたほうが身のため.
phpでポートの監視は可能ですか?
>>250 監視の意味する所がよく分からんが、いわゆるsocketのbindなら可能。
>>251 自鯖の状態を、別のサイトから見ようとしてます。
socketのbindですか…調べてみます。ありがとうございました。
httpサーバーが動いているOSの名前や種類を判別する方法ってありますか?
UNIX系とWindows系でファイルパスの区切りが/と\のように違うので
OSを判別できれば個別にプログラムで対応できるかと思いまして。
>>252 その目的だとbindではなくてfopenやfile等で自鯖の適当なファイルを
読み込むスクリプトを書いてcronで回すような形になる。
でもワザワザPHPで書かなくてもwget等を使ってシェルスクリプトをcronで回した方が楽だと思う。
255 :
254:2005/10/21(金) 14:16:08 ID:???
ちょっと言葉足らず。
自鯖のhttpの状態を監視したい場合の話。http以外の監視なら別の手段になるね。
>>253 仮に出来たとしても
人のサーバーならやめれ
自分の管理のサーバーなら勝手にやって
258 :
253:2005/10/21(金) 14:32:17 ID:???
>>256 一般に公開するときはレンタルサーバー(UNIX)上なんでパスの区切りは
/(スラッシュ)というのはわかっているんですが、公開する間に自鯖で
表示テストなどをするときはWindows上で動くApache+PHPで表示させて
ます。このときはパスの区切りは\(円マーク)になるんでその違いを
吸収させるスクリプトを作りたかったのですが・・・
259 :
253:2005/10/21(金) 14:36:26 ID:???
>>257 PHP_OSですね。
サンクスです( ´∀`)ノ
ちなみに、プログラミングやるなら、円マークとか言ってると笑われるぞ?
バックスラッシュって言うようにしといたほうがいいよ。
”お金のしるし”でいいですか?
バックスラッシュ書き込みたいんだが意外と難しいな・・・
\
↑バックスラッシュに見えるか?
>>254 や、phpのお勉強がてら…。
80以外にも25と110を監視します。
$http = fsockopen($host, 80, $errmp, $errmsg, 1);
echo "http:";
if(!$http){
echo "NG" . "<br>";
}else{
echo "OK" . "<br>";
こんな感じの処理が思いついたんですが、
問題点があったらご指摘願います。
>>258 ・DIRECTORY_SEPARATOR (string)
・PATH_SEPARATOR (string)
http://jp2.php.net/dir そこに書いてあるとおり拡張(ext/standard/dir.c)での定義だから
使えない環境があると思うけど。
OSの種類、名前は隠してなければPHPINFO、種類だけなら定義済み定数PHP_OS。
他にはunameコマンドの実行結果から取れる可能性もある(Unix系)。
>>262 たまに\の変わりにその全角バックスラッシュ使う人がいるけど
あれはやめてほしい.. かえって見にくい.
266 :
264:2005/10/21(金) 14:59:49 ID:???
>>255 Listenしてるかどうかだけならtcpで叩けば万事OKじゃん
>>258 DIRECTORY_SEPARATOR
>>263 真面目にやるなら、そんな感じで各鯖のポートへアクセス。
んでも接続ブッタ切りになるので、きちんとプロトコルに従って接続終了した方がよいような。
httpならgetなりheadなり。
不真面目というか手抜きというか、psとかのプロセスのリストを取得して
確認したいプロセスが存在するかチェックするPHPスクリプトをwebサーバ経由で叩く。
269 :
253:2005/10/21(金) 15:10:11 ID:???
>>267 > DIRECTORY_SEPARATOR
(*´∀`)
>>269 /で統一してればWindows版のPHPは内部でちゃんと処理してくれるから問題ないよ。
つまり内部じゃないんだろ
PHPでSQL文は、外だし(外部ファイル化)にする事は可能なのでしょうか?
273 :
253:2005/10/21(金) 15:38:16 ID:???
>>270 php.iniの設定次第でつか(,,゚д゚)
274 :
nobodyさん:2005/10/21(金) 16:26:12 ID:8sbI4mJR
質問です!配列がありまして、「配列の中身が無くなるまでループ」というのはどうやるんでしょう。
ちなみに、配列は $_FILES[] です!
っ PHPマニュアル
277 :
nobodyさん:2005/10/21(金) 16:32:30 ID:8sbI4mJR
while($_FILES){
処理
}
これでできますかー?
ループなのでミスったら怖いから試せません(><)
278 :
nobodyさん:2005/10/21(金) 16:41:13 ID:8sbI4mJR
誰か教えて下さい(><)
お母さんに聞いたら、2ちゃんねるならすぐ答えてくれるよって言ってたのに(><)
自分用の開発環境で、動かしてみましょう。
確実に動作する事が確認できるまでは、間違っても共有鯖に上げてはいけません。
聞く前に実行してみろ
if (i++ > 10000) die("stop");とでも放り込んどけ
みんな付き合いのいい奴だな
>>277 もしループが止まらなかったらときは
急いでPCの電源ケーブルを引っこ抜けばいい.
そうすれば熱暴走による爆発炎上は避けられる.
たいていの場合30秒で停止するから便利だな
285 :
nobodyさん:2005/10/21(金) 16:57:41 ID:8sbI4mJR
if でやってみたら出来たんだけど、これをループでスマートにならない?(><)
if($_FILES["img1"]["tmp_name"]){
echo "ファイル1あるよ<br>";
$i++;
}
if($_FILES["img2"]["tmp_name"]){
echo "ファイル2あるよ<br>";
$i++;
}
if($_FILES["img3"]["tmp_name"]){
echo "ファイル3あるよ<br>";
$i++;
}
if($_FILES["img4"]["tmp_name"]){
echo "ファイル4あるよ<br>";
$i++;
}
>>285 while(list() = each()) {
}
または
foreach(){
}
foreach
foreach って、二次配列で使ったことないんだけどどうすればいいのですか。
foreach($_FILES as $value){
echo $value."<br>";
}
結果
Array
Array
Array
Array
こっちが「あれ〜ぃ?」と言いたいよ。
いいからマニュアル読め
マニュアルとリファレンス本と母親の知識とを総合した結果であります。
(´-`).。oO(すげえ母ちゃんだな・・・)
テキストファイル($log_file)から最初の1行目だけ読み込みたいと思っています。
抽出した文字列は$ip_addressという変数に格納したいです。
テキストファイルの最後に改行マークがあっても無くても無視したいのですが
それを実現するもっとも簡単な方法といったらなにがあるでしょうか?
$ip_address = @readfile($log_file);
この方法で読み込むと、文字列以外に意味不明な数字が最後に
付与されてしまいました(おそらく読み込んだバイト数?)
分からんかったらこれでもつかっとけ
for($i=1;$i<5;$i++){
$img = "img".$i;
if($_FILES[$img]["tmp_name"]){
echo "ファイル".$i."あるよ<br>";
}
}
>>288 foreach ($_FILES as $array) {
echo $array["tmp_name"]."<br>";
}
やっべ、
>>295に感動した。まさにコレをしたかったんです!
ありがとうございまっする(≧▽≦)フォー
>>292 とりあえず
$ip_address = trim(fgets(fopen($log_file, "r")));
298 :
nobodyさん:2005/10/21(金) 17:34:54 ID:tv2tmgT4
×××○○○××××××
×××△△△××××××
×××□□□××××××
×××☆☆☆××××××
・・・
(この先同じような形がずっと続く)
上の文字列を下のような形に書き換えるには
どういう正規表現を使ったらいいのでしょうか?
×××○○○××××××○○○
×××△△△××××××△△△
×××□□□××××××□□□
×××☆☆☆××××××☆☆☆
説明が下手ですみません
>>297 trimなんて便利な関数が有ったんですか。
どうもです
>>298 同じ記号は同じ文字を表してる?
たとえば
×××○○○×××××× なら
AAABBBAAAAAA
っていう具合?
もうちょっと具体的な文字列を教えてもらえると答えやすいと思う.
アミノ酸とか遺伝子系かしら・・
303 :
nobodyさん:2005/10/21(金) 18:01:29 ID:tv2tmgT4
304 :
nobodyさん:2005/10/21(金) 18:09:07 ID:tv2tmgT4
>>303 そのデータはどういうふうに存在してるの?
HTMLの中?
<html><body>hogehoge<img src="http....
$img = '<img src="http....
みたいにそのデータだけが入ってたり,配列にひとつひとつ入ってたりしないよね?
306 :
nobodyさん:2005/10/21(金) 18:25:47 ID:tv2tmgT4
それ以外なにもないhtmlファイルかtxtファイルどちらでも
よいです。
file関数でよみこみ、配列を分解するとき、変数の
10桁の数字を<a href・・・にくっつける
という方法がありますけど、どうやってそれをするか
分かりません
307 :
nobodyさん:2005/10/21(金) 18:28:07 ID:tv2tmgT4
PHPの正規表現のそういうとこが
他の言語よりなんかむずかしく感じます
CGI版PHPについて質問させてください。PHPのバージョンは5.0.3です。
#!/usr/local/bin/php
<?php
echo 'ぬるぽ';
?>
これはLinux上では正常に動作しましたが、Windows上では(Premature end of script headers)ヘッダーが変だと警告がでました。そこで、
#!C:\php\php
Content-Type: text/html
<?php
echo 'ぬるぽ';
?>
こうすると(ぬるぽ)正常に動作しましたが、今度はLinux上ではContent-Typeから全部出力されてしまいました。
Windows上で初めの方法でも動作するようにするにはどうすればよいのですか?
可変数個の引数を取る関数をPHPで記述するにはどうしたらいいでしょうか?
C言語で言うargc、argvのような機能があれば嬉しいです。
結局
>>303-304ぐらいの正規表現も書けない人間が集まっているスレです。
つ preg_replace
313 :
nobodyさん:2005/10/21(金) 19:20:26 ID:tv2tmgT4
>>312 preg_replaceってperlの正規表現が
PHPで使えるような関数だったっけ?
ずっと前それでやったけど
結局できないままです。
できるんだったら教えてください
出来るからマニュアル片手にやってみれ
316 :
nobodyさん:2005/10/21(金) 20:00:42 ID:tv2tmgT4
>>315 それ一応もってるんですけど
読むひまがなくて・・
回答者がそろそろ疲れて(呆れて)きたようです
というか、正規表現の質問だからスレ違いな罠
何だこの流れは
322 :
nobodyさん:2005/10/21(金) 20:54:12 ID:HUuZEDtu
アホな質問ですいません。超初心者なもので。ただいま勉強中です。
データベース(mysql)の更新をphpでさせようと
input type="text" size="3" name="test" value=""
value値にnullを設定してみました。
フィールドタイプがtextになっていれば、null値が代入されるのですが、
フィールドタイプがintの所だと、0になってしまうのです。
null値を代入したいときはどうすればいいのでしょうか。
>>322 PHPの質問じゃない。
MySQLのスレ池。
324 :
nobodyさん:2005/10/21(金) 20:58:07 ID:HUuZEDtu
>>322 フィールドタイプがtextでもnullではありませんでした。0ではないだけで、唯の空白でした。
325 :
nobodyさん:2005/10/21(金) 20:59:03 ID:HUuZEDtu
>>323 そうでしたか。ありがとうございました。そっちへ行ってみます。
>>322 NULLはNULLであって、NULL以外の何物でもない
327 :
nobodyさん:2005/10/21(金) 21:24:35 ID:HUuZEDtu
>>326 value="null" ならどうなんでしょうか。
やっぱりダメでした。
スレ違いなのにすいません。
>>327 だからvalueが空だったらDBには「NULL」を入れるのだよ。
長さ0文字の文字列≠NULL値≠文字列"NULL"
基本のような気が
hogeDBにhogetable1,hogetable2があって
hogetabale1には
a b d
1 2 3
5 6 7
8 9 0
hogetable2には
c
ggg
hhh
iii
と入ってた場合
while ($row = mysql_fetch_assoc($result){
echo<<<HOGE
<p>$row[a]</p>
<p>$row[b]</p>
<p>$row[c]</p>
<p>$row[d]</p>
HOGE;
}
これを表示するにはどうすれば良いのでしょうか?
今日はDB関連多いね.
333 :
330:2005/10/21(金) 21:59:25 ID:???
>>331 sql文で解決の話だったのね(´・ω・`)
ありがd
334 :
nobodyさん:2005/10/21(金) 22:00:11 ID:HUuZEDtu
>>328 どうすればvalueを空に出来ますか?
ホント馬鹿ですいません
ああ,そうか,つまり空っぽってことだな?
>>334 いい加減スレ違いだからどっか行ってほしいんだけど、とりあえずね。
>どうすればvalueを空に出来ますか?
valueを空にするんじゃなくて、
valueが空だったら、DBにNULLを入れる
と、言っておろうが、このタワケ!
>>334 これあげるから、どっか行ってね。
$value = $_GET['test'];
$value = ($value == '') ? 'NULL' : "'" . mysql_escape_string($value) . "'";
$sql = 'INSERT INTO hoge(column) VALUES(' . $value . ')';
mysql_query($sql...
339 :
nobodyさん:2005/10/21(金) 22:21:00 ID:HUuZEDtu
ありがと
(´-`).。oO(馬鹿を免責にしてるな・・・)
結局丸ごとソースを書いてもらえるのを待っていたという事だな…
馬鹿です,とか超初心者です,とか言われると,
答えたくなくなるね.
むしろ脅すぐらいの勢いで質問されたい.
やい、コラ! テンメェ教えろ!
ボケ!カス!アホンダラ!
教えねぇと、けつから手ぇ突っ込んで、奥歯ガタガタ言わせたろうか?
アンッ?
>>342 ですなぁ・・・
関数フニフニを使ってパフパフさせたいです。
これこれのエラーが発生しました。
エラーメッセージはプヨプヨで、その発生ラインは69です。
69の前のソースはプルプルです。見てください。
どのようにして解決すればいいのでしょうか?
せめてこれくらい提示してほしいな。答えにくい質問多すぎ。。。
このスレは、エスパー能力を開花させようと日々努力する人々が集うスレです。
関数フニフニを使ってパフパフさせたいです。
これこれのエラーが発生しました。
エラーメッセージはプヨプヨで、その発生ラインは69です。
69の前のソースはプルプルです。見てください。
どのようにして解決すればいいのでしょうか?
>>347 プヨプヨというエラーメッセージはフニフニをパフパフさせる時に起こるため、
ライン69以前のプルプルをブルブルにして改善すればよいでしょう。
>>348 > プヨプヨというエラーメッセージはフニフニをパフパフさせる時に起こるため、
そうさせたいと書いているんですが
hogehogeの類と察することもできないのか・・・
ってもうレスあったか
↓下らねぇ質問
先生、あそこが黒いんです。どうしてですか?
良スレの予感
↓百済ねぇ質問
print より echo を使ったほうが地球にやさしいって本当ですか?
ベンチとって出直して来い
1)-----------------
print 'hogehoge';
2)-----------------
echo 'hogehoge';
3)-----------------
?>
hogehoge
<?php
-------------------
便秘に効くのはどれが一番?
ごぼうくっとけ
360 :
nobodyさん:2005/10/22(土) 10:33:18 ID:JcGskMr8
ベンチとれと言われそうだけどeregとpreg_matchはどっちが早いの?eregが早いと聞いたが誰か確認した人いないの?
eregは僕だけのものです。誰にも渡しません。
最近ベンチとれ厨大量発生だな
「ググれ」と同じ感覚で使ってるらしいな
>>360 マニュアルも読まないで「聞いたが」とは素晴らしいな
マニュアルは前のエンジンのときに書かれたやつだからね
368 :
363:2005/10/22(土) 12:47:49 ID:???
え、俺?
クリックしたら写真とその下にその写真のEXIFを表示するページへのリンクをPHPで
作りたいんだけどどうしたらいいとおもう?
普通のリンクって
<a href="hoge.html">俺のここを押してみろ</a>
こんな感じでしょ。
それに写真のファイル名やらを関数の引数か何かで渡してやって表示させてやりたい。
<a href="hoge.php?name=jagi">俺の名前を言ってみろ</a>
>作りたいんだけどどうしたらいいとおもう?
何か模索しているような口ぶりで実は丸投げ君
372 :
369:2005/10/22(土) 13:17:07 ID:???
>>370 おれも最初それを考えた。
だが可変数個の複数の写真を縦列で並べて表示したいときどうすれば
いいんだということで見事に行き詰まった。
373 :
369:2005/10/22(土) 13:20:01 ID:???
写真に加え、2,3コメントも併せて表記したくなる可能性もある。
関数の引数なら可変数個の実装は用意だし、変数の末尾が".jpg"で
終わるか否かで写真なのかコメントStringなのか容易に判別が付く。
そこで関数でパラメータを受け付けられないかと思ったわけだが
それをリンクとどう絡めたらいいかでさっぱり分からなくなっちまった・・・
応援だけかよwww
376 :
369:2005/10/22(土) 13:27:51 ID:???
(´・ω・`)ショボーン
>>375 そもそも「"PHPの"質問」になってないんで、それ位しかできません
アルゴリズムの問題なら他の言語でもできるわけで
378 :
369:2005/10/22(土) 13:33:01 ID:???
すこし難しすぎたか(´・ω・`)・・・
写真の情報とかコメントとかはDBか何かの中に入ってるの?
<a href="image.php?name=foo.jpg">画像リンク1</a>
<a href="image.php?name=bar.jpg">画像リンク2</a>
<a href="image.php?name=hoge.jpg">画像リンク3</a>
ってあって,
image.php で,$_GET['name'] 使って情報とコメント取得してごにょごにょ・・
という単純な話ではない?
必要な条件は最初から言えと何度言えb(ry
file%5B%5D=file1&file%5B%5D=file2...
$_GET
381 :
369:2005/10/22(土) 13:39:29 ID:???
うん。データベース云々という話は全くない状態
$_GET['name']
で任意の数の複数のパラメータを受け取れればそれに超したことは無いんだけど無理歩でしょ?
>>380 > file%5B%5D=file1&file%5B%5D=file2...
> $_GET
( ゚д゚)ポカーン
>>381 >$_GET['name']
>
>で任意の数の複数のパラメータを受け取れればそれに超したことは無いんだけど無理歩でしょ?
やろうと思えばオブジェクトだろうが多次元配列だろうが突っ込めますけど?
<a href="image.php?name1=aaa.jpg">画像リンク1</a>
<a href="image.php?name1=bbb.jpg&name2=ccc.jpg&name3=ddd.jpg">画像リンク2</a>
<a href="image.php?name1=ddd.jpg&comment1=氏ね">画像リンク3</a>
こういうこと?
何をやろうとしてるのか理解できないです<>
なにやら昨日のDB関連の質問の香ばしさを感じますな
転用自由なXMLパーサー誰か作ってませんか?
387 :
369:2005/10/22(土) 14:06:06 ID:??? BE:182385173-
>>383 そうそう。そんな感じでいくつでも画像ファイルを加えていったり
気が向いたらコメントもあわせて表記していきたいのよ。
でもそれだと受信する方のPHPでそれぞれのパラメータにあらかじめ対応
させておく必要があるのね。
配列使えよ
>>387 >>380が言ってるようにやってみな
1.php
<a href="2.php?file%5B%5D=file1&file%5B%5D=file2&str%5B%5D=str1&str%5B%5D=str2">link</a>
2.php
print_r($_GET);
>>387 複数のファイル名を URL に埋め込むのは良いとしても,
コメントを埋め込むのはどうかと思うよ?
コメントって画像ファイルに対して追加されるんでしょ?
それなら image.php のほうで,画像ファイル名を元にコメントを引っ張り出せるよね?
<a href="image.php?files=aaa.jpg,bbb.jpg,ccc.jpg">画像リンク</a>
ってあって,
@ image.php
$files = explode(',', htmlspecialchars($_GET['files']));
foreach ($files as $file) {
$comment = getComment($file);
// 以下,各々のファイルに対する処理
......
}
でいいと思うんだけど.
391 :
369:2005/10/22(土) 16:14:51 ID:??? BE:69480724-
>>389 > 1.php
> <a href="2.php?file%5B%5D=file1&file%5B%5D=file2&str%5B%5D=str1&str%5B%5D=str2">link</a>
> 2.php
> print_r($_GET);
こ、これはいったい何?
?file%5B%5D=
って文字列初めてみた・・・。
ところでfile1、file2にJPEGファイルを、st1, str2にコメントを
かけばいいのかな?
>>390 > <a href="image.php?files=aaa.jpg,bbb.jpg,ccc.jpg">画像リンク</a>
> $files = explode(',', htmlspecialchars($_GET['files']));
そうか、この手があったか!区切り文字を決めて受け手のPHP側でその文字を
参考にセパレートしていけばいいんだよね。それなら画像ファイル名と
コメントを順番に羅列していけばいいだけになる。配列とかオブジェクトとか
面倒なものは使わずにすむね。それこそ「つれづれなるままに」だし。
393 :
369:2005/10/22(土) 19:46:26 ID:???
>>390 重ねて礼をいわせてくれ。
あんた天才やな( ゚Д゚)
馬鹿に天才と言われてもなぁ…
なーんか下らねぇ質問書き込まれないかなぁー
下らねぇ椰子からの質問は書き込まれるんだけどね…
398 :
軟式PHP:2005/10/22(土) 22:05:09 ID:???
お前らヒドスw
すいません、PHPでCを書きたいんですがどうしたらいいですか?
pngにするにはどうしたらいいんですか?
ImageMagick等の外部コマンドを使うのが楽。
>>402 $filename = preg_replace('/\..+$/', '.png', $filename);
なんか、下らねぇ椰子が答えるスレになってきたな…
何を今更
質問です。
アクセスした際にテキストファイルのサイズをチェックし、想定よりデータが追加されるまで10秒程度処理をポーリングするプログラムを組みました。
具体的には下の通りです。
for($i = 0; $i < 5; $i++)
{
if ($nFileSize >= filesize($strFileName))
{
sleep(2);
continue;
}
//ここに読み込む処理とprintとreturn
}// end of while
ですが、これだとこのポーリング中にファイルの更新があってもfilesizeが更新されないようなのです。
もしかしてPHPは、(負荷軽減のために?)一度取得したfilesizeをキャッシュしてしまうのでしょうか?
回避方法があれば知りたいです。よろしくお願いします。
>>409 >もしかしてPHPは、(負荷軽減のために?)一度取得したfilesizeをキャッシュしてしまうのでしょうか?
ここまで予測できてるのに答えにたどりつけなかったのはなぜ・・・
>>411-413 ありがとうございます。
初心者向けサイトで勉強中だったもので、マニュアルがネット上にあるとは…。
ブックマさせていただきましたので、今後はそこ読んでなんとかしてみます。
関数名で検索すればマニュアルくらいすぐ見つかりそうなもんだけどなぁ・・・
まあ特にテンプレを用意していないこのスレと、
スレタイに「質問」と入っていない本質問スレの問題もあるんだろうけど
416 :
nobodyさん:2005/10/23(日) 04:55:40 ID:b9OcfJpc
MySQL使う場合って、PHPより先にインストールしないとダメなの?
MySQLは単独で動くんだけど、PHPから接続が出来なくて。
>>416 PHPのインストールの仕方にもよる。
ソースインストールでMySQL拡張を静的に有効にする場合は
MySQL(のクライアントライブラリ)を先にインストールしとかないと駄目だね。
418 :
nobodyさん:2005/10/23(日) 05:18:42 ID:b9OcfJpc
>>417 rpmインストールでも、MySQLをPHPより先にインストールしないと駄目?
419 :
nobodyさん:2005/10/23(日) 06:47:40 ID:ulqHd62c
PHPでタイマーみたいな事って出来ますか?
決められた時刻に処理を実行するみたいな・・・・
421 :
nobodyさん:2005/10/23(日) 08:42:38 ID:VoqKVXZC
ここが本スレで良いじゃん。
423 :
421:2005/10/23(日) 09:00:33 ID:VoqKVXZC
まあそれはさておき、次の本スレ(part30)にはFAQなんかもあるといいのでは?
・ブラウザに何も表示されないんだけど・・・ → error_reporting、display_errors、log_errors
・include/requireに?a=b&c=dのようなパラメータつけたい → できません
・$a1,$a2,$a3...はどうしたら? → 可変変数・・・というかむしろ配列使え
・echo "$arr['hoge']['fuga']"; がうまくいかない → {おっぱい括弧}でくくれ
・echo?print? → echoはコンマ区切りで書ける。printは関数。パフォーマンスは気にするな
・値渡し・参照渡しのパフォーマンス → これまた気にするな
・csvやtsvを扱いたい → まずはfgetcsv
・ファイル入出力関数でリモートファイル扱う際の限界 → fsockopenでソケット通信
・一定時間ごとに何かしたい → cron
・画像処理一般 or GDの限界 → ImageMagick
・画像・音・動画はファイルで保存?DBに保存? → 好きにしてください
・クッキーの情報をユーザから隠したい → セッション使え
あたりの質問は頻出と言える希ガス。(他にも頻出するものけっこうありそう)
実際テンプレに載せるならもっと丁寧に書くべきだが、まあとりあえず案として。
DB、OO、PEAR、フレームワーク、テンプレート、正規表現、などの質問は誘導って感じの方向かな。
424 :
421:2005/10/23(日) 09:02:24 ID:???
>>422 ああ、たしかにそうだな。こっちが本スレな雰囲気になりつつあるか・・・。
>>418 インストールの方式がrpmを利用してても、
その辺はそのrpmのパッケージの作りによるが。
まあRHELの公式のパッケージあたりだと、後からで問題ない。
必要なのは
・php本体のパッケージ
・php-mysqlパッケージ(PHPのMySQL拡張のためのパッケージ)
・MySQL-serverのパッケージ
あとMySQL-clientにも依存してたかも(libmysqlパッケージってなってるかも)
依存関係はrpm使ってたら注意がでるので、解消しながら入れればいい。
yumを使ったrpmパッケージ管理の場合は俺は良くわからん。
それじゃ次スレの
>>1は仕切りなおしか。
いずれにせよテンプレはしっかりしたものが要るんジャマイカ?
今のままだと、
>>423みたいな質問が繰り返されるってのも去ることながら、
「このスレってスレタイと合ってなくね?」
「本スレのスレタイがね・・・」
というやりとりも定期的に繰り返されることになる悪寒。
質問するやつぁテンプレなんか見るわけない罠
428 :
nobodyさん:2005/10/23(日) 09:58:12 ID:FVsmFciD
smartytとの連携なのですが
[$arr]
0 => Array (2)
main => Array (13)
id => 1
date => 2005/10/19(Wed) 12:52:36
res => Array (2)
0 => Array (12)
id => 2
date => 2005/10/19(Wed) 14:10:04
1 => Array (12)
id => 3
date => 2005/10/19(Wed) 14:18:44
このような連想配列をテンプレート側で表示する場合
.tpl側にはどのように記述するのでしょうか
{section name=main loop=$arr}
ID: {$arr[main].main.id}
DATE: {$arr[main].main.date}<br>
{section name=res loop=$arr[main].res}
ID: {$arr[main][reply].res.id}
DATE: {$arr[main][reply].res.date}<br>
{/section}
<hr>
{/section}
こうした場合main表示は問題なく、resのループ回数も合いますが
res の方だけ id date などの値が入りません・・
429 :
nobodyさん:2005/10/23(日) 10:01:55 ID:FVsmFciD
すいません、[reply]は[res]に訂正です
430 :
nobodyさん:2005/10/23(日) 10:09:25 ID:FVsmFciD
すいません解決しました
{$arr[main].res[reply].id}
こういう書式みたいです
echoやprintで出力しようとしたものって、phpスクリプトの実行が終わってから
ブラウザに出力されているように感じるのですが
それをphpスクリプトの実行途中に出力させる関数ってないですかね?
>>427 質問者がテンプレ読もうが読まなかろうが、読んでない香具師には
>>1嫁ですむのがテンプレの意義
433 :
418:2005/10/23(日) 10:15:24 ID:???
>>425 >・MySQL-serverのパッケージ
これインストールしてなかったよー。すんごく初級レベルで恐縮だけど、マジ超助かった。
テンプレ案いいね.
そのテンプレは長すぎるな。良く質問されるのを厳選しないと。
初め少なめで必要に応じて増やす形にしないと1-100までテンプレという事態になって良い情報が埋もれるよ。
質問する前に
・マニュアルを嫁
・マニュアルを検索汁
・ググれ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
質問テンプレ
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc)
例:requireとinclude
・内容
例:requireとincludeはどう違うのですか?
・回答者は>>(アンカー)をつける。
テンプレに反対するわけではないけど、
あまりにも、基本的な質問をしてくる奴に、
皆でよってたかって「親切に」攻撃する、
そんな一連の流れが、ボキは好きだなぁ…
そんな流れが少なくなるのはチト寂しい…
くだスレはそのままで、本スレにテンプレを持っていくほうが良いかもな。
追加
・正規表現については正規表現道場スレで
・Smartyについてはこの板を検索
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
こんなのはどうだろう。
・何も出力されない、エラーメッセージが出ない
error_reporting、display_errors、log_errors
・echo "$arr['hoge']['fuga']"; がうまくいかない
{おっぱい括弧}でくくれ
・Perlのようにprintに複数の引数を渡したい
echoを使う
・csvやtsvを扱いたい
まずはfgetcsv
・ファイル入出力関数(fopen等)でリモートファイルを扱う際の限界
fsockopenでソケット通信で解決
・一定時間ごとに何かしたい
cron、タクススケジューラ
・画像・音・動画はファイルで保存?DBに保存?
好きにしてください
・クッキーの情報をユーザから隠したい
セッション使え、ただしクッキーとセッションは仕組みが違うから同じように扱うな
すみませんが、
>>308についてお分りになる方はいらっしゃいませんか。
マニュアル読め
が
テンプレ読め
になるだけじゃ・・・
くだ質の存在意義について
>>439 そりゃそうかもしれんが、FAQなんてあって害になるわけでもないでしょ。
本スレにはきちんとテンプレ用意して、質問者・回答者ともにレベル向上の方向で、
そしてここのくだスレでは
>>436のような要望にもお答えしつつ(?)、マターリやったらいいんでない?
時には本スレから誘導されちゃう質問者とかも、いじるなりなんなりしてやってくれよ。
とにかく本スレが死んでるに近いから、このスレでいわゆる「くだらなくない」有益な情報まで埋もれやすくなっているのはイクナイと思いマッスル。
ところで、以前の本スレのテンプレにあった「エスパーきぼんぬの八カ条」も個人的にはけっこう好きだったんだがw
(まあ微妙っちゃ微妙か・・・)
>>438 回答が無かった状況も鑑みると
PHP上での話なら「書き換えず実行する方法はない」
もしくは、あえてするなら、
c:\usr\local\bin\にphp.exeを配置する
程度ではないかと。
私はいつも書き換えてますが・・・そうしょっちゅう書き換えるもんでもないし。
サーバーの設定によってはできるのかも知れませんが(私はそちら方面にはあまり明るくないので)。
>>441 >ところで、以前の本スレのテンプレにあった「エスパーきぼんぬの八カ条」も個人的にはけっこう好きだったんだがw
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
詳しく.
漏れも好きだったんで探してきた
作った人GJ
----
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。
「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
プログラム板お決まりのテンプレですな・・・
>8. 情報は小出しに。
長期政権を獲得するために必須の手法ですな
select * from table order by id を実行して
for ($i = 0; $i < count($rec); $i++) {
if ($rec[$i]['id'] == 10) {
return $i;
}
}
っていう処理をしたいのです。
idでソートして、特定のIDが何番目に大きいかを知りたいのです。
これをSQL一文で実現する事ができませんか?
>>442 そうだったんですか。
WinとLinuxで違う動きをするとは思っていませんでした…
setcookieやheaderが激しく不便(というか無理)ですね…諦めてmod_PHPを使います。
ありがとうございました。
452 :
軟式PHP:2005/10/23(日) 15:15:27 ID:???
>>450 スレ違いじゃないのか。
しかもDBの種類も書いてないし。
Oracleと仮定して書くならrownum使って出来るっしょ。
目的のidより小さいレコードをcount()すればいいぢゃん。
にしても自分で「SQL一文で」って書いている時点でスレ違いって判らないのかぁ。
ここ2〜3日、バカがウヨウヨしてるな。
↓次の質問どうぞ
データベースにも彼女にもログインできません(><)
456 :
431:2005/10/23(日) 17:06:45 ID:???
そんな都合の良い関数はないんですかね。。。
>>455 いきなり root でログインしようとしてない?
>>456 >>431 の考え自体間違ってない?
普通はすぐに出力されると思うんだけど..
ob_start()/ob_end_flush() とか使うと
>>431 の挙動になる.
458 :
431:2005/10/23(日) 17:22:08 ID:???
>>431 の言ってるのってもしかして
@Aの処理が完了しました
@Bの処理が完了しました
って感じにだんだんとメッセージ出したいとか。
460 :
431:2005/10/23(日) 17:41:37 ID:???
461 :
軟式PHP:2005/10/23(日) 17:53:31 ID:???
>>459,461,462
やりたかった事ができました〜
マジでありがとう。
ん,結局どうやって解決したのかな?
465 :
ハイスピードうさちゃん ◆DMzTyHF5uc :2005/10/23(日) 19:32:33 ID:ibcXIcLi
ほんとに下らない質問で真に申し訳ないんですけど
PHPをホームページに組み込もうとしているのですが
いまいち仕組み等が良く分かりません
PHPを使うのにお勧めの本はありますか?
あれば教えてください
よろしくお願いします
xreaってphp使えますか?
xreaとはなんですか?
自分のHPにphpbb掲示板を置きたいがためだけに
xreaに登録するのはどうなんでしょうか?
くだらないかもしれないとおもったので、ここで聞きます。
すみません。
>>466 >xreaってphp使えますか?
⇒xreaで調べてください。
>xreaとはなんですか?
⇒ググってください。
>自分のHPにphpbb掲示板を置きたいがためだけに
>xreaに登録するのはどうなんでしょうか?
⇒人それぞれです。
>くだらないかもしれないとおもったので、ここで聞きます。
⇒別に良いですけど。
>すみません。
⇒許しません。
470 :
nobodyさん:2005/10/23(日) 19:52:54 ID:BdscBxiq
>>466 使える。まぁあんたにはスペースもらえなさそうだわな。
471 :
nobodyさん:2005/10/23(日) 19:54:03 ID:BdscBxiq
>>465 HTMLはわかるのかな?まずはそれからだ。
>>466 たぶん無料のレンタル掲示板探した方が早いよ.
473 :
ハイスピードうさちゃん ◆DMzTyHF5uc :2005/10/23(日) 20:30:25 ID:ibcXIcLi
>>471 ありがとうございます
とりあえずページを作れる程度のことは出来ます。
もう一度調べなおしてみます
配列のデフォルト値って指定できますか?
こんな感じ。
$arr = array('one'=>1, 'two'=>2);
$arr->default = -1; // デフォルト値を設定
$val = $arr['foo'];
echo $val; //=> -1
みんなイイ奴だな
>>473みたいなネタに付き合うんだから
>>474 無いよ。
若干近い挙動をする関数ならarray_fill。
いっその事クラスを使えば望み通りの挙動をさせる事も可能。
>>451 スクリプトにCGI版phpへのパスを記述する時点で
ポータビリティが下がるし、環境に合わせて書き換え前提になるから
phpの側でそういった機能はないのかもしれん。
俺はwebサーバの方で、.phpなファイルはCGI版phpをキックするように
設定してるから、WinでもLinuxでもCGI版phpを利用してる場合スクリプトに
CGI版phpへのパスを記述してないよ。よってWinでもLinuxでも同じスクリプトで動かせる。
まあスクリプトの処理で吸収しきれてない多少の差異はあるけど。
すごく初心者な質問ですみません。教えて下さい。
ベクターで配布されているphpのショッピングカートのsimple cartについてです。
商品の登録をしているのですが、商品の画像を表示させたいのですができません。
どうすれば表示させることができるのか教えて下さい。宜しくお願いします。
おーい,エスパーさん,出番ですよー.
Σ(゚Д゚;≡;゚д゚) もしかして呼ばれた!?
>>478 ・画像の指定方法が分からない
管理モードにログイン -> Products data -> File -> 参照をクリック -> 画像ファイルを指定 -> Save
・画像が表示されない
1.正常にサーバにアップロードされているか確認
2.ファイルのパーミッションが適切に設定されているか確認
3.ブラウザで画像ファイルにアクセスして表示されるか確認
4.配布元に問い合わせ
去年の10月24日に「半年ロムってろ」と言われ、
半年後にやっと書き込めたと思ったらまた
「もう半年ロムってろ」と言われたものです。
今日でようやく半年になりました。
おひさしぶりです。涙がでそうです。
また皆さんと一緒にお話できて嬉しいです。
PHP5で、自由に代入できる定義済みのグローバル変数ってないのでしょうか。
例えば$_GLOVALみたいな配列変数が用意されていて、
この中に代入したものはどこからでも参照できるとか
そういうのがあれば便利だと思うんですが。
マニュアルを見た所探せなかったので教えてください。
484 :
nobodyさん:2005/10/24(月) 02:57:48 ID:zkums6mo
phpとmysql使ってます
dbにつなぐにはphpファイル内にパスワード記述しなければなりませんが、
これが不安なんです。
なんかのダウンロードソフトとか使ってphpファイルそのままダウンされたり
しないのでしょうか?
ちなみに以前設定が悪かったのか、phpファイルにアクセスしたら
ダウンロードしますか?みたいなダイアログが出たことがあって超不安です。
絶対大丈夫だって説明してくれるか、パスワード記述しなくて良い方法が
あったら教えてください。
web鯖で公開しているディレクトリより下に置くと絶対危険です。
487 :
nobodyさん:2005/10/24(月) 03:57:30 ID:QQX+YZkl
携帯からの荒らしが酷いんですが
番号の特定って出来ますか?
488 :
445:2005/10/24(月) 04:17:23 ID:up55eUP1
>>487 試しに自分の携帯番号が特定できるか調べてみては?
>>484 俺の場合はDB接続関数を作って別ファイルに保存。
もちろんパスワードもそのファイルに記述。
それをユーザーがアクセス出来ないディレクトリに置いて include で読み込んでる。
>>484 パスワードファイルに関しては、既に言われているように、
直接参照の出来ないDocument_root上位におくこと。
それよりも、
>ちなみに以前設定が悪かったのか、phpファイルにアクセスしたら
>ダウンロードしますか?みたいなダイアログが出たことがあって超不安です。
こっちはもう大丈夫なのかな?こっちの方が遥かに問題は大きいですぞ。
httpd_confやphp.iniの設定は適切に行わないとね。
493 :
nobodyさん:2005/10/24(月) 11:37:35 ID:QoyBu+Ex
>>487 iはフォームにutn
eとvはprint_r($_サーバー)で出たうちのどれか。
iとvはユーザーの任意。
>>490 うわ、くだ質以下の質問だと思っていたらMLに投げる人がいるとは・・・
ML のほうもこっちも対してレベル変わらないね
こっちのほうが下じゃね?
JScriptでいうところのdocument.URLはどう書くのでしょうか。<php4.3
ヒント: $_SERVER
ヒントありがとうございます。
ttp://<?php echo $_SERVER[SERVER_NAME];echo $_SERVER[PHP_SELF]
こんなんできましたが、良いのでしょうか。
<a href='
ttp://validator.w3.org/check?uri=" + document.URL + "'>XHTML1.1</a>
のdocument.URL部分に入れて動いたのですが
もしもっとスマートな書き方がありましたらお願いします。
>>500 htmlspecialchars($_SERVER['PHP_SELF'])
>>501 ありがとうございます。一応エンティティ変換した方が良いのですね。
しかし、いずれにしてもdocument.URLと挙動が違うのが気になります。
document.URLは最後が/で終わるURIすなわちディレクトリ
にアクセスしている場合はディレクトリまでのURIを返します。
http://<?php echo $_SERVER['SERVER_NAME'],htmlspecialchars($_SERVER['PHP_SELF']); ?>
それに対して これだとディレクトリへのアクセスでもDirectoryIndexのパスまで入ってしまいます。
今まではJScriptでdocument.writeを使って
<a href='
http://validator.w3.org/check?uri=" + document.URL + "'>XHTML1.1</a>
を表示するという内容の.jsを作って複数のページから呼び出していたのですが、
これをphpのincludeに置き換えたいのです。
DirectoryIndexのファイルのパスを返さずに、
つまりdocument.URLと同じ動作をすることはできないのでしょうか。
>>502 DirectoryIndexが使われた事を知っているのはapacheだけで、
JavaScriptもPHPもその事を知らない。
dirname()やpathinfo()を使ってディレクトリ名を切り出せばええんでないかい?
ようするに≒リクエストURIなんじゃないの
クライアントからどう見えてるかをPHPから
特定するのは不可能だが
お二人ともありがとうございます。
> リクエストURI
要するにそういうことなんです。
> DirectoryIndexが使われた事を知っているのはapacheだけで、
> JavaScriptもPHPもその事を知らない。
> クライアントからどう見えてるかをPHPから
> 特定するのは不可能だが
そうか、そうでしたか。JScriptがクライアントサイドだから為せる業だったのですね<リクエストURI
そうなるとなかなか難しそうですね。
諦めて.jsのままでいくことにします。
ありがとうございました。
# ディレクトリだけ切り出すにしてもDirectoryIndexじゃないページからもincludeしたいわけで。
# ごちゃごちゃさせるならこのままで…。
507 :
nobodyさん:2005/10/24(月) 16:21:43 ID:Ag941LkA
508 :
nobodyさん:2005/10/24(月) 16:36:13 ID:g+BdaTEj
phpには直接関係のない話だと思いますが、
httpsで開いているページからhttpでリンクした先のページで
HTTP_REFERERが取得できません。
こうゆうのってブラウザとかW3Cの使用なのでしょうか?
>>506 あ、入れ違いでしたね、すみません。
実はDirectoryIndexがディレクトリごとに異なっているという、
一般的に見ておかしなことになってまして。
DirectoryIndexの把握だけですでに面倒…。
一応試してみましたがrootディレクトリのindex.phpの場合だと
$selfには\が入ってしまいました…。
これはどうにでもなるので良いのですが。
いろいろありがとうございました。
511 :
軟式PHP:2005/10/24(月) 16:49:51 ID:???
>>507 PEARをダウンロードしてきて適当なディレクトリにつっこんで、
set_include_path(ディレクトリ名);
で使えると思うよ。
手動インストールの補足.
$pear list package_name-0.1.2.tgz
で,そのパッケージがどの場所にインストールされるか調べられる.
大抵のパッケージは解凍した通りの位置のままで使えるけど,
ものによっては名前が変わったりする.
>>505 つ $_SERVER['REQUEST_URI']
PHPにはgoto文みたいなのはないのしょうか?
ある関数の結果がNGの場合、以降の処理は行いたくないので。
(関数内でしたら、returnとかってできますけど)
以降の処理をif文でくくれば可能ですが、それは最後の手段としたいです。
良い知恵を拝借したく存じます。
以降の処理は行いたくないのであればexitでいいかと。
ない。ラベルも使えなかった気がするので関数とか使って回避汁。
>>517 この場合返り値のbool固定だろうから、if文が適当かと。
レスありがとうございます。
以降の処理を全てスルーだったので、
exitかdieで逃げることができました。
助かりました。
男なら逃げるな!
立ち向かえ!
そして燃え尽きろ!
燃やせ、燃やせ、真っ赤に燃やせ
怒る心に火をつけろ!
真っ赤に萌〜えた〜
真っ赤に燃えた あの日の花火
今も熱く燃えて
あなた恋しい あなた恋しい 女の涙
あなた恋しい あなた恋しい 多摩川ブルース
microtime()でとったマイクロ秒を小数点第二位の形にして表示したいのですが、
以下のようにやると「120.27」のようにおかしな整数部分が表示されてしまいます。
(整数部分は不要でピリオド以降だけ欲しい)
どしたらよいでしょうか?
echo number_format(getmicrotime(),2);
function getmicrotime(){
list($msec, $sec) = explode(" ", microtime());
return (float)$msec;
}
用途はログ出力の際のタイムスタンプであり、マイクロ秒まで出力したいのです。
もっとスマートなやり方があると思うのですが、
有識者の方、教えて頂ければ幸いです。
substr($s, strrpos(getmicrotime(), '.'));
0以外の整数出ないんだけど
530 :
nobodyさん:2005/10/24(月) 22:07:22 ID:/DDxE1pe
POSTで送られて来たデータの例外処理について
何もセットされてないか(!isset)、何も入ってないか(=="")の場合エラーを出したいんですけど、
if((!isset($_POST['id'])) or (($id = $_POST['id']) == "")) { return "!IDが入力されていません"; }
みたいな事はできないんですか?
わざわざ、
・issetのif書いて
・代入して
・もう1回 =="" のif書いて、、、
ってしなくちゃダメですか?
それと、こういうノウハウというかCGIの知識はどこで学ぶんでしょうか?
他人のプログラムから学ぶのかな・・
531 :
nobodyさん:2005/10/24(月) 22:12:38 ID:GXm9iY9G
phpでwebアプリを作成しパッケージソフトとして
販売することを考えています。
そこで、いくつか質問があります。
phpで作った市販のWebアプリってありますでしょうか?
スクリプト言語なので、体験版として試用して頂きたくても、
ソースが流出してしまい体験版としての意味をなさないと思います。
また、DBを使用する場合、納品形体としてはDBの設置まで込めたものが一般的なのでしょうか?
DBは用意してもらい、webアプリ部分のみの配布でもありなのでしょうか?
movable typeのように企業で使用する場合は有料みたいなのが理想なのですが、
ソース流出の点はどう対処できるのでしょうか?
また、このような情報を得ることができる本、サイトってございますでしょうか?
>>527 何をしたいのか理解できない.
12.345678 秒っていう時間を取得したとして,
それの 34 だけ出力したいの?
小数点第二位までだったらマイクロ秒じゃなくてミリ秒だよなぁ..
>>530 or ではなくて ||
あと1個で済ませるなら
if(!is_string($_POST['id'])) { return "!IDが入力されていません"; }
または
if(!is_numeric($_POST['id'])) { return "!IDが入力されていません"; }
list($u,) = explode(' ', microtime());
sprintf('%d', substr(round(getmicrotime() * 100) / 100, 2))
とか
つーか秒以下だけとったらタイムスタンプの意味ないじゃん
0だったらNULLだし。整数すててポイント残す意味も分からん
536 :
527:2005/10/24(月) 22:20:11 ID:???
>>532 >>小数点第二位までだったらマイクロ秒じゃなくてミリ秒だよなぁ..
う、たしかにそうですね。
小数点第四位までとればマイクロミリ秒かな。
"2005.10.24 22:14:07.1234"
みたいな感じで時刻を取得したいのです。
小数点第四位が無理なら小数点第二位まででも構いません。
PHPから別のPHPを呼ぶときに、非同期に呼びたいのですが可能でしょうか?
538 :
527:2005/10/24(月) 22:22:59 ID:???
ちなみに秒までは以下のようにして取得してます。
date("Y.m.d H:i:s")
すいません。途中送信してしまいました。
PHPから別のPHPを呼ぶときに、非同期に呼びたいのですが可能でしょうか?
目的は、A.phpからB.phpを呼び、B.phpはSleep(10);してから何かを行うことによってタイマーを実装することです。
このスレをざっと検索したところ、PHPのみでタイマーチックなことはできそうになかったもので…。
540 :
nobodyさん:2005/10/24(月) 22:28:47 ID:PCKmF9zI
質問させてください。
プログラムがインターネット上にあるファイルにアクセスするのに、プロキシサーバを経由しなければならない環境にあります。
PHPでプロキシサーバを経由するようにするにはどのようにすればいいのでしょうか。
>>538 もひとつよく判らんのだが、こういうこと?
list($msec, $sec) = explode(" ", microtime());
echo date('Y.m.d H:i:s.', $sec) . substr($msec, 2, 4);
list($usec, $sec) = explode(' ', microtime());
$usec = substr($usec, 2);
echo date("Y.m.d H:i:s.$usec");
2005.10.24 22:31:36.91787800
こうかな?
>>539 意味が分からね。別プロセス走らせるなりフォークするなりじゃだめなの?
/ || :ヽ
┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::|::ヽ.__:):||(___ノ ::|::| │
|:|: .. :|| .. |:| │
:|: .. || ..|| <
>>540 HTTPでおk
:\ [_ ̄] /::| │
:: |\|_|_|_|_/:::| \________
__| | / / :|___
>>538 どうやってログを保存するのか知らないけど,
西暦とか月ごとに保存するディレクトリを分けたりすれば
毎回出力する必要ないような・・・
>>539 PHP と 時間のかかる処理 でググればヒントが見付かるかも知れない
>>545 ワロスw そのAA,本来は HTTP のところに 日本語 って入ってたはず
>>540 fsockopenでプロキシに接続して、
GET
http://〜 てな感じのリクエストをする。
細かい所はRFC2616あたりを参照。
550 :
527:2005/10/24(月) 22:40:31 ID:???
>>541さん
ビンゴです。
ありがとうございます。
結局、文字列操作関数を使わないといけないんですね。
フォーマット関数でなんとかしようとふんばってたのが間違いでした。
microtime()とtime()で別々に時間を取得するとずれる気がする
>>547 検索させるならPHPとバックグラウンドの方が・・
>>539 exec関数かsystem関数を使う。
>>530 if文は簡潔に。
if (empty($_POST['id'])) {
die('param err');
}
0以外の整数…
今日はエスパーだらけだな
557 :
531:2005/10/24(月) 22:57:10 ID:GXm9iY9G
>>544 レスありがとうございます。
こういうのあるんですね。
逆に言うとこういうの使わないとやはり無理なのでしょうか?
>>557 あなたのプランはノーマネーでフィニッシュです
559 :
540:2005/10/24(月) 23:13:35 ID:???
560 :
541:2005/10/24(月) 23:18:01 ID:???
お返事ありがとうございます。
>>543 PHPにはフォークが無かったかなと思います。
>543
>>547 別プロセスという手で解決されているのですが、レンタルサーバーのため、純粋にPHP以外は動かないようです。
>>552 コマンドラインからPHPを使用するというページが発見できました。早速試してみます。
>>559 そのまま答えだしそのページにもProxyアクセスのサンプルあるしググればいくらでも引っかかるしPHPと関係ねーし
564 :
nobodyさん:2005/10/24(月) 23:28:04 ID:RXos/Fpn
GDなんですが、WindowsのBMPって扱えないんですか?
WBMPは違う形式のようですし。
扱えるライブラリあったら教えてください。
GDのバージョンは2.0.28です。
WebでBMPは使わんからだろうね
>>559 Proxyサーバーにfsockopenで接続して
"GET
http://www.yahoo.co.jp HTTP/1.0\r\n\r\n" とか送ってやるとProxyサーバーが良きに計らってくれる。
>>549 氏が RFC2616 を見れ、って言ってくれているんだが読んでみたのかな…
読む気がないのならwget辺りをインスコしてsystem()で呼び出した方が早いんヂャマイカ。
>>562,566
ありがとうございました。
リクエストの送り方がよく分からなかったのですが、サンプルがそのままリクエストを送っているんですね、
勘違いというか思い違いをしていました。
> 勘違いというか思い違いをしていました。
これは使える!!
じゃんじゃん使え
570 :
539:2005/10/25(火) 00:14:51 ID:???
無事phpから、バックグラウンドで別のphpを呼び出すことができました。
タイマー代わりに使おうと思います。ありがとうございました。
一応同種の質問がきた時用に
<?php
system("/usr/local/bin/php timer.php > /dev/null &");
echo "OK.";
?>
/usr/local/bin/php がコマンドラインでphpを動かすための実行ファイル
timer.php が動かしたいPHPファイル。
> /dev/null は、echoなどの出力結果を無視する。
& は非同期で動かす。
質問です。RSSを作成したいのですが、
RSSのtitle部分に日本語が含まれるため、EUCを
UTF-8に変換しようとmb_convert_encoding($str,'UTF-8');と記述したところ、
RSSのtitleが文字化けしてしまいました。対処法を教えてください。
mb_convert_encoding($str,'UTF-8', 'EUC');
でどうよ
PHPで、メールを受信する(POP)関数はありますか?
関数名を教えてください<(_ _)>
>>565 BMPをページに貼り付けることはないが、WINユーザからうpされたBMPをJPEGかPNGに変換して貼るために、GDの関数を必死こいて模索したことはあったな。
ImageMagickで解決なわけだが、GDでも扱えたほうがよさげな気もする。
(内部構造が単純なだけに実装自体は楽なはず。ファイル形式の互換性に関してはよく知らんが)
576 :
軟式PHP:2005/10/25(火) 03:20:48 ID:???
関係ないけど、なんでBMPのデータって左下のピクセルから入ってるんだろうね。
つ [ OS/2 ]
BMPのヘッダの高さの正負で上下が決まってるんじゃなかったけか?
関係ないけど
質問です。
他言語含めて初心者で、PHPを勉強したいなーと思っています。
当面の目標として、スレッドやツリーなどのない、
シンプルな掲示板を作る事を目指そうと思っています。
MySQLなどは使わないものです。
そこで、お勧めの参考書や参考になるサイト、
お手本としてお勧めの配付されているPHPのソースなどありましたら、
教えていただけませんでしょうか。
ほんと下らない質問ですいませんが、お願いします。
m(_ _)m
んなもん、PHP、初心者、初めて、辺りでぐぐれ。
584 :
nobodyさん:2005/10/25(火) 13:04:11 ID:YHtqjGPc
CSV形式のファイルで指定した行のみ読み込ませ配列化したいのですが
どうやればいいのでしょうか?
やはり一度全てを配列に読み込ませ、配列番号で指定するしか
ないのでしょうか?
585 :
nobodyさん:2005/10/25(火) 14:29:48 ID:kvUtXjYL
>>584 一行ずつ読み込めないから質問しているの?
588 :
nobodyさん:2005/10/25(火) 14:47:14 ID:YHtqjGPc
>>586 ちがいます。
一行ずつの読み込み方法は知っています
私が聞きたかったのは例えば
1万行あるCSVファイルから5320行目のみをよみこみたいのです
>>584 fgetcsvを指定した回数呼び出せ。
1行ずつをメモリに読み込むのが嫌なほど1行1行が長いならDBの使用を検討。
fseekも候補としてはありうるかも。
>>587 そんな香具師がいたのかw
ユーザ関数でその手の処理やると概してクソ遅いんだが、まあニーズはあるかもしれんな。
htmlspecialcharsの逆変換する関数ってありますか?
「&lt;」を「<」に戻したいのですが。
>>591 htmlentities()の逆関数 で検索しれ
fseek使って好きな行を読み込まそうと想ったら別にポインタ用のインデックスファイルいるよね
594 :
nobodyさん:2005/10/25(火) 15:01:24 ID:YHtqjGPc
>>589 やはりfgetcsvで回数呼び出すしかないですか・・・
>>591 これじゃだめ?
$text = str_replace("<","<",$text);
596 :
nobodyさん:2005/10/25(火) 15:02:42 ID:YHtqjGPc
こうだった
$text = str_replace("<","<",$text);
>>594 fgetcsv知ってたのに使うの渋ってたのはなぜ?
こうだった
$text = str_replace("<","<",$text);
>>598 594じゃないけど、fgetcsv()はSJIS通らなくて
Excelのcsv読めねぇってうるさいから、自分でハンドリングすることも多い。
あれ、何度やっても違うなァ
これだァ
$text = str_replace("<","<",$text);
604 :
nobodyさん:2005/10/25(火) 15:25:09 ID:YHtqjGPc
>>600 カバーありがとうです
>>602 こうでしたねorz
$text = str_replace("<","<",$text);
>>591 >(>)はいいのか?
$trans = array (">" => ">", "<" => "<");
$text = strtr($text, $trans);
こんなんいらないって?
606 :
604:2005/10/25(火) 15:26:22 ID:YHtqjGPc
進歩なしorz
ごめんよ
ごめん、文字が勝手に変換された。
$trans = array (">" => ">", "<" => "<");
$text = strtr($text, $trans);
SJISだと特定文字でカンマ分割できなことがあるらしい
<と書くには&lt;と書けばよい
&lt;と書くには&amp;lt;と書けばよい
・
・
・
以下続く
>>610 fgetcsvでSJISが読めないとか、結構問題ありそうだから実験してみた。
一応、SJISの全ての文字をカンマ区切りで並べて(16個ごとに改行)、fgetcsvで読み込んでみたが、問題なかったけど。
具体的にどうしたら問題あるの?
(改行の境界部分に化ける可能性のある文字があったのかな?)
ちなみにPHP5.0.4で実験
614 :
612:2005/10/25(火) 16:22:26 ID:???
>>613 だよねー、やっぱ。問題ないと思うけどなー。
$n = "<hogehoge>";
$nからカッコを取るかっこいい方法を教えてなさい!
おながいします
str_replaceで一個ずつ"<"と">"を取る方法しか思いつきません。
618 :
615:2005/10/25(火) 16:41:22 ID:???
>>617 ありがとうございます、かっこいいです
>>616 正規表現もかっこいいですが書けません ;-;
で、出来るだけ正規表現使わないで済ましてしまう悪循環・・
620 :
591:2005/10/25(火) 18:12:52 ID:???
>>595 ありがとうございました。
助かりました。
>>615 trim($str,'<>')
はどうだんべ?
C言語でいうところの"ifdef"みたいなのはないのでしょうか?
デバッグモードの切り替えを簡単にやりたいのですが。
>>622 Cのプリプロッセサと違って、条件にマッチしない部分もパースされてしまうけど…
define('DEBUG', '');
if (defined('DEBUG')) echo 'debug mode';
624 :
nobodyさん:2005/10/25(火) 21:04:40 ID:lSoYCV0H
$a[0] = "あああ,12,10,2";
$a[1] = "いいい,5,12,4";
$a[2] = "ううう,7,3,3";
$a[3] = "えええ,5,1,8";
という配列の12,5,7,5の部分でソートして
$a[0] = "あああ,12,10,2";
$a[1] = "ううう,7,3,3";
$a[2] = "いいい,5,12,4";
$a[3] = "えええ,5,1,8";
としたいです。
(3,4行目の順番は気にしません)
自分では
$b[12] = "あああ,10,2";
$b[5] = "いいい,12,4";
$b[7] = "ううう,3,3";
$b[5] = "えええ,1,8";
と新しい配列を作りキーでソートしてみましたが
二つ目の$b[5]が出て来た時点で一つ目の$b[5]が上書(代入?)されてしまいます。
どうかいい方法をご教授下さい。
>>624 function cmp($a, $b)
{
$ta = explode(',', $a);
$tb = explode(',', $b);
if ($ta[1] == $tb[1]) return 0;
return $ta[1] > $tb[1] ? -1 : 1;
}
usort($a, 'cmp');
626 :
624:2005/10/25(火) 22:25:50 ID:???
>>625 ありがとうございます。
こういう時にusortを使うんですね。
まだ使い方がわかっていないのですが、マニュアルを見ながらじっくり試してみたいと思います。
ブーリアンはどのようにすれば使えるのでしょうか?
ブーリアン の検索結果 約 27,000 件中 1 - 10 件目 (0.29 秒)
どのブーリアンのことをいっているのかね?
ブーリアンテストだと思う
>>627 ・予約語のtrueかfalseを使う
・比較演算子(== や !=など)や論理演算子(&& や !)の演算結果を使う
・失敗したらfalseを返す関数を失敗させる
・(bool)を使って型キャストする
>>619 ふーん、昔はfgetcsvも酷かったんだな
まあ最新バージョンならfgetcsvに日本語使っても大丈夫だろう(PHP4は試してないが)
ダブルクォートのエスケープも問題なし。"" は " に置き換えられる。
バックスラッシュ \" でも一応エスケープはするけど、バックスラッシュつけっぱなしw
まあ漏れはCSVとかって使い捨てのスクリプトで思いつきで使うことしかないから、どっちでもいいんだけどね。
暇なので実験結果の報告。
>>615 str_replaceは配列を引数にできる。
echo str_replace(array("<",">"), array("",""), "<hogehoge>");
これも
echo str_replace(array("<",">"), array("",""), "<hoge><hoge>");
>>633 2番目の引数は同じものに置換する場合は配列にしなくてもいいよ
クライアントがcookieを受けつけなければURLにセッションIDを付加する
みたいな処理は可能でしょうか?
>>635 php.iniのsession.use_trans_sid=1
漏れは明示的に付加する方が好きだけど。
637 :
635:2005/10/26(水) 09:10:31 ID:???
>>636 ありがとうございます。
あっさり解決しました。
638 :
nobodyさん:2005/10/26(水) 14:42:09 ID:K5xqiemM
PHPでGDライブラリを使おうと思っています。
<?php
$image = imagecreate(200, 200);
$bcolor = imagecolorallocate($image, 0, 0, 0);
imagepng($image,"test.png");
imagecolordeallocate($image, $bcolor);
imagedestroy($image);
?>
ブラウザ上で実行するとtest.pngが生成されません。
ターミナル上では生成できるので、パーミッションの問題かと
思ったんですけど、このPHPファイルと上のフォルダを777にしても
やはり生成されません。
問題点を指摘していただければと思います。
天狗じゃ!天狗の仕業じゃ!
何がヒントだよバーカw
642 :
638:2005/10/26(水) 15:13:25 ID:K5xqiemM
>>640 今回はPNG画像を生成するだけなので、
Header(Contents-type: image/png);
はたぶん必要ないと思います。
>>638 filenameをフルパスで書いてみたらどう?
644 :
638:2005/10/26(水) 15:22:32 ID:K5xqiemM
>>643 やってみましたが、やはり動作しませんでした。
Fedora Core3を使っているのですが、SELinuxで何か弾かれている
とかも考えられるんでしょうか。。。
>>644 そういや、そんな事あったなぁ
SELinuxのログ見てみそ
646 :
638:2005/10/26(水) 15:59:21 ID:K5xqiemM
>>645 なんだかSELinuxを切らなきゃ動作しない雰囲気ですね。。
公共のサーバなのでSELinuxは必要らしいんですよ。
これはもう諦めろということなのかな…
ファイルのダウンロードですが、
Netscape 7/Firefox ではファイル名が化けます ( IE は OK )。
<?php
$filename = '日本語';
header("Accept-Ranges: none");
header("Content-Type: application/x-pdf");
header("Content-Disposition: attachment; filename={$filename}.pdf");
mb_http_output('pass');
echo "test";
?>
コードをどう変えればいいの?
HEADERの内容はURLエンコードすべきじゃないのかな?
>>648 アドバイスありがと。早速、
$filename = urlencode(mb_convert_encoding('日本語', 'SJIS', 'EUC-JP'));
としてみたら IE は CA8XMVSI、Gecko 組は %93F%FA%96... に…。
650 :
nobodyさん:2005/10/26(水) 16:40:51 ID:H/AFZPGW
>>650 最初そうしてたら、氏名をファイル名にしてほしい、と言われて
IE で大丈夫だったから「ふふふーん」と鼻歌歌ってたら
Netscaep/Firefox でダメで「ぎゃふふーん」ですよ!
Java による解法か。でも IE は大丈夫なんだよね。
みんなはどうしてるのよ。
会話で、PHPを「ぴーえぃっちぴー」と言うのが煩わしいです。
短く、かつ、相手に理解して貰える、最高の略語を考えて下さい。
parse_ini_file()でiniファイルの読み込みが正常終了したかどうかって判断はどうすればよかですか?
読み込んだini項目を参照して、値が入ってるかどうかを見て判断するしかなかとですか?
phpじゃないのですが新しくWiki Cloneを作成しました。
しかしこの板、過疎スレばかりで何処で施せば良いか分かりません。
どこで施せばいいのでしょうか?
ほどこす?
>>659 住所を教えてください。
ソースを印刷して送ります。
>>660 晒すの間違いだと今頃気づいたけど是からも使いつづけます。
>>661 教えてあげるのであなたの住所教えてください
東京都千代田区千代田1番
CD-Rに焼いたほうが良くないか?
ほんとくだらん会話だなペチペ住人は。
>>646 SELinuxが原因なら、制限しないようにポリシーを設定すれば良いんでないの。
もともとそういう風に使うもんだし>SELinux
晒すと施すを素で間違えるような奴のスクリプトなんか使いたく無いw
>>669 セキュリティホールはどこに知らせればいいの?
error_log()関数でログに出力する時、排他ロックされるのでしょうか?
LAMPでWebアプリ作ったんですが、ソフトを公開しなければイケナイんですか?
教えてください
ファイルをアップロードする場合
<input type=file name=hoge>
という風にした場合、アクセスするのは$_FILES['hoge']を使うとおもうのですが
inputタグのネームが任意の場合どうすればよろしいのでしょうか?
例えば、$filename='hoge';として$_FILES['$filename']って風にアクセスできるのでしょうか?
↑をやってみたのですがうまくいかなくて、いきずまってます。
シングルクォーテーションがイラネ
>>679 $_FILES[$filename] または $_FILES["$filename"] だな。
オマイさんの書いた ' と " の違いに注意ね。
>>680-681 レスありがとう!
ごめんなさいシングルクォーテーションはつかってなかったです。タイプミスです。
ほかに原因があることが判明していまいました。ごめんなさーーい
忘れてください。
>>682 なんぢゃぁ、それは。
初心者の微笑ましい質問かと思ったぢゃねぇか。コンチキショウめ。
いっぺん死ねよ。
<チラシの裏>
ctype_digit('') は true になる
is_numeric('') は false になる
ハマリかけたよ。。。早めに気付いて良かった。
</チラシの裏>
686 :
nobodyさん:2005/10/26(水) 21:10:17 ID:pZpCFSD9
cgi-lib.plのPHP版みたいなのがあるらしいのですが、
配布場所教えてくれませんか?
御願いします。。
>>686 それ使うと何ができるの?
更に言うと、何がしたくて探してるの?
688 :
nobodyさん:2005/10/26(水) 21:29:09 ID:pZpCFSD9
>>687 cgi-lib.plを使ったPerlを作ったことがあるのですが、
今度はPHPを初めて見たいと思い、
まずはそのPerlで作ったスクリプトをPHPにしたいのです。。
cgi-lib.php
マジレスするとPEARでも行けよ。
691 :
nobodyさん:2005/10/26(水) 21:39:55 ID:pZpCFSD9
>>689 そういうのがあるのですか…
Googleで検索してみます。
>>690 正直言いますと、PEAR等のサイトは私には難しい、というか…
英語ならあまり分かりませんが、翻訳サイトを使えば問題ないのですが。。
cgi-lib.phpがあったとして、その中身は何だ?
エイリアスっぽい関数が並んでるだけか?
>>691 何がしたいか知らんが
cgi-lib.plの機能のほとんどがPHPでは標準関数として揃っている。
どうせ、フォームリクエストのデコードぐらいでしょ。
$_REQUESTで事足りる。
694 :
nobodyさん:2005/10/26(水) 21:52:38 ID:pZpCFSD9
>>692 私のPerlのスクリプトでは
require './cgi-lib.pl';
としているので、
PerlからPHPに変換する時に、cgi-lib.plと同等のライブラリ(例えばjcode.plのPHP版でjcode.phpがあるように)
が有れば、
はかどるのではないかと思いまして。。
ですので中身としては、やはり関数ということになると思います。。
695 :
nobodyさん:2005/10/26(水) 22:00:02 ID:pZpCFSD9
>>693 そうなのですか。。
関数リファレンスをもう一度漁ってきます。。
Perlのスクリプトでは最初の方で、&ReadParse(*in);を使っているのですが、
その時点でつまずいてしまって…
ReadParseサブルーチンの役目は、フォームから引継いだ値を配列で持たせる機能
と認識しておりますが。。
いつまでグダグダ言ってんだか……
>>695 関数ではないんで関数リファレンスでは探しきれないかもね。
PHPではフォームから送信された変数は
$_GET, $_POST, $_COOKIE, $_FILES
というグローバル配列に *自動的* に格納されている。
また、これらを一つの変数に押し込んだ $_REQUEST もある。
詳しくはPHPマニュアルの "定義済の変数" 辺りを参照のこと。
本を買え。立ち読みでもいい。前半に出てくる。
699 :
nobodyさん:2005/10/26(水) 22:10:17 ID:pZpCFSD9
>>696 すみませんでした。。
>>697 ご回答有り難う御座いました。
また、他の方々も有り難う御座いました。
ROMで頑張ってみます。
700 :
nobodyさん:2005/10/26(水) 22:11:30 ID:OwFeh4eM
こんばんは。坊な質問で大変、恐縮ですが、
Apacheダウンロードが終わって、
XPのスタートメニューからApache HTTP Severの中にある筈の
Start Apache in Consoleがないので起動出来ません。
(Configure Apache Server…Review Server Log files…
Apache Dos Online…Help I'm Stuck!は有ります)
これはダウンロードの失敗なのでしょうか?
間抜けな質問で恐れ入りますが、
ご教示下さる様、よろしくお願い致します
インストールするといいと思うよ
702 :
700:2005/10/26(水) 22:24:34 ID:OwFeh4eM
すいません。
ダウンロード→インストゥールの間違いです。
(´-`).。oO(PHPどころかWebProgの質問じゃない気が・・・)
>>702 Apache2系なら、管理ツールのサービスにApache2が登録されているはずなので、
そこから開始すればいいのでは?
登録されていなければインストールが上手くいってないのかもね。
あと、ここはPHPのスレなのでApache本体の話はしかるべきスレに移動した方がいいと思われ。
705 :
704:2005/10/26(水) 22:37:03 ID:???
>>704 手動でサービスに登録してみたらどうなる?とかの話はあるんだけど
スレ違いだからあえて書いてないので、念のため。
なんだこのバカ
ディレクトリ(test)を生成してファイル(aaa.html)を保存したいのですが、
うまくいきません。
何がいけないのでしょうか?
<?php
$dir = "test";
mkdir($dir,0777);
chmod($dir,0777);
$file = "sample";
@$fp = fopen("./{$dir}/aaa.html","w");
@fputs($fp, $file);
@fclose($fp);
?>
何が起きているか分かるかもしれないのに自分で潰しているに1票
>>707 ファイル操作周りの命令の先頭になぜ @ を付けている理由は何?
意味が判って付けているのかな。
710 :
707:2005/10/26(水) 23:30:59 ID:???
分かってますよ!!馬鹿にしてるんですか!!!??
712 :
707:2005/10/26(水) 23:32:45 ID:???
頭に@をつけるのは配列という意味ですよね。
713 :
707:2005/10/26(水) 23:34:43 ID:???
すみません、自己解決しました
成りすましが迷惑です。
715 :
707:2005/10/26(水) 23:37:43 ID:???
>>714 @の意味が分ってない上に、自己解決したら原因も書かずに
立ち去ろうとするアホだから成りすまされるだよ(ゲラ)
どうせパーミッションが原因だろうがお前の方がもっと迷惑。
@で配列ってPerlじゃね?
なに、この流れ…
成りすまされたくなかったらトリップ付けろと
>>707 とりあえず、エラー制御演算子を外してどんなエラーが出てるか読んでみたら?
720 :
638:2005/10/27(木) 00:17:02 ID:MXg6eyU8
うあー、SELinuxいじってもやっぱり動作しなさげです。
<?php
$fp = fopen("./test.txt","w");
fwrite($fp, "This is a test file.\n");
$image = imagecreate(300, 300);
fwrite($fp, "a\n");
$yellow = imagecolorallocate($image, 255, 255, 0);
fwrite($fp, "b\n");
imagefilledrectangle($image, 0, 0, 300, 300, $yellow);
fwrite($fp, "c\n");
imagepng($image, "./testimage.png");
fwrite($fp, "d\n");
imagedestroy($image);
fwrite($fp, "e\n");
fclose($fp);
?>
ブラウザで実行すると
This is a test file.
とだけ書かれたテキストファイルが生成されます。
テキストファイルは生成できているからパーミッションとかは
問題ないのかなあと。
ターミナル上では画像ファイルも作られるのに。。
どなたかアドバイスをお願いします<(_ _)>
>>720 CLI版とモジュール版が別オプションでコンパイルされているとか
722 :
nobodyさん:2005/10/27(木) 00:49:53 ID:T3Iq0N9f
PEAR XML_RPCのバージョンを上げるにはどうすればいいんですか
>>720 ってことは、imagecreateの行でおそらくFatal Errorかなんかで止まってるってことだよね?
単純にエラーが出力されてないだけって事は無いの?
つ error_reporting(2047)
>>719 ありがとうございます。↓がエラー、、
Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is 10452 is not allowed to access /virtual/net/public_html/***/*** owned by uid 1000 in /virtual/net/public_html/***/***.php on line 10
Warning: fopen(./test/aaa.html) [function.fopen]: failed to open stream: No such file or directory in /virtual/net/public_html/***/***.php on line 10
Warning: fputs(): supplied argument is not a valid stream resource in /virtual/net/public_html/***/***.php on line 11
Warning: fclose(): supplied argument is not a valid stream resource in /virtual/net/public_html/***/***.php on line 12
>>724 書いてる通りだ。よかったな、解決したじゃないか。
…で、ここにいる全員が予想していた通り、
>>715だったと。
>>724 じゃ、1つ目のエラーを解決できれば、2つ目以降は問題無いよね。
で、つまり、セーフモードがTrue(1)になっていて、PHPがフォルダの所有者うんぬんが一致するか見にいって、
マッチしないからエラーを吐き出してるんじゃない?
そんなわけだから、
>>715 の言ってる事そのまんま。
そのまんまかよっ!
727 :
638:2005/10/27(木) 01:30:19 ID:MXg6eyU8
>>721 コンパイルはyum任せだから特別なオプションは付けてないです。
>>723 error_reporting(2047)でも
エラーは吐かれませんでした。。。
>>727 >721が原因とは限らないが、他人任せだからってオプションが同じとは限らない。
それは肝に銘じておけ。
そしてバグをつぶすときはすべての可能性をチェックしろ。
729 :
nobodyさん:2005/10/27(木) 02:48:54 ID:SR8ORD3F
>>724じゃないけど、質問します。
safe_modeがオンになってる(変更不能・共有型のレンタルサーバなどの)場合、
スクリプトによって(ウェブ鯖が)フォルダを作る時のuidと実行中のスクリプトのuidが一致しないと
1つのスクリプト実行中にフォルダ作成→作成されたフォルダをいじる(中にファイルなどを作る)って出来ないの?
とんちんかんな質問だったら申し訳ないんだが、誰かおせーて
>>729 そうだよ
必要なディレクトリは前もって作っとけ
PHP製の拍手システムスクリプトって配布されてないのでしょうか?
1つ見つけたんですが、セキュリティ上問題っぽいので却下
>>733 直してというのは、その配布プログラムのことでしょうか?
それとも既存のPrel版システムのことでしょうか?
前者はログを淡々とHTMLに書き出していくだけの機能なので、
考えている形(既存のほかのシステムに近い形)にするには
結局時間がかかりそうです。
後者に関しては、もし存在しなければその方法で行くつもりでした。
Prelに詳しくないのでとっつきづらいですが
>>734 >考えている形(既存のほかのシステムに近い形)にするには
>結局時間がかかりそうです。
>>732 にはセキュリティ上の問題って書いてあるから,
それを直して使え,って書いたんだけど・・・
機能不足なら具体的に何が足りないのか書いて.
あと,Prel ってなんですか?
>>734 Prelって何?プレル?
つーかまずその見つけたPHPのスクリプト晒せばいいのに。
「セキュリティに問題がある」と分かる知識があるはずなのに・・・?
変な見栄張りたい年頃なんじゃね?
温かく成長を見守ってやろうよ。
「web拍手 PHP版」でググっても、作ってくれとかいうのしかヒットしないなぁ。
公式ページを見た感じだとそう難しい事をしているわけでも無さそうだし、
機能を洗い出して一からPHPで書き直すのがいいんでないかい?
perlを良く知らないみたいだし、perl版に手を加えるよりもよいかと。
作ったものに自信が無い場合は、評価スレでコードレビューしてもらえばええよ。
740 :
軟式PHP:2005/10/27(木) 11:19:40 ID:???
Web拍手ってボタン押すだけの投票でしょ?
セキュリティ上問題ってどんな作り方してんだつーのwww
mb_convert_encodingでつまずいています
ISO-2022-JPとJISって全く同じものなのでしょうか
それともISO-2022-JPはJISの一つなんでしょうか
よろしくお願いします。
742 :
734:2005/10/27(木) 12:03:09 ID:???
派手にスペル間違えてた、ハズカシス
スクリプト自体は「PHP WEB拍手」でググって先頭にくるやつです。
セキュリティ上の問題って書いたのはそこが一番引っかかってたから。
(IP等の個人情報もベタにHTML出力している為、
出力先が分かれば個人情報駄々漏れ)
良く考えたら出力先をパーミッション変えて
直接参照できないようにすれば済む問題だったんですが、
それだと一々確認するのがメンドクサイな、と。
もしくはそういった情報を書き出さないようにするか。
(htaccessでパスワード制限かける手もあるか)
(そもそもセキュリティ上の問題とはちょっと違うかも)
どっちにしろ、一言メールフォームみたいな感じで
考えてたのと違ったので、改変するのに時間かかるなという話で。
結局、そういったスクリプトは無いでFA?
だとしたら、仰る通り一から作るのが早そうですね。
暇が出来たら頑張ってみます
743 :
729:2005/10/27(木) 12:18:39 ID:???
>>731 そか。ってことは、何かスクリプト作って不特定の人達に配布する時はその辺りも考慮しないといけないんだな。
勉強になったよ。ありがと。
>>742 暇だったのでそのスクリプトを読んでみたんだが。
IPアドレスをベタにHTML出力している件は、出力しないようにすればいいだけだし
ログファイルがURL直叩きで見える件は、ログファイルの出力先をURLでは参照できない位置に
変更すればいいし…
変更するのに5分もかからないだろ。
何が言いたいんだ?
>>744 ググったんですが、同じというような事しか書いてなかったんです。
でもどうみても違うような動作をしていたので
質問してみました。
>>746 違うような動作をする例も質問といっしょに書かないと伝わらない.
>>747 mb_convert_encodingの第3引数に
JISを指定すると文字化けが起きて、
ISO-2022-JPを指定すると文字化けがおきませんでした
同じものだと思っていただけに納得いきませんでした
>>748 具体的にどんな文字列を渡したのか,
どうやって出力したのか,
そういう情報を含めるとより伝わりやすい.
750 :
734:2005/10/27(木) 12:37:10 ID:???
>>745 いや、まぁ。
IPとか直接参照に関してはすぐ対処出来ないことは無いけど
結局、欲しい機能が大幅に足りないから
使うにしても結構手を入れなきゃいかんし、
だったら皆さんのレスにあったように1から作った方が早いかな、と。
それだけのことで
>>750 >>732 >PHP製の拍手システムスクリプトって配布されてないのでしょうか?
>1つ見つけたんですが、セキュリティ上問題っぽいので却下
↑↑どこをどう縦読みすれば
>欲しい機能が大幅に足りないから
が見つかりますか?
Content-Type: text/plain; charset=jis
って書いているだけだったりして・・・
753 :
734:2005/10/27(木) 13:48:47 ID:???
>>751 いや、1回目のカキコでは書いてる時点ではそれが問題だと思ってて、
あとから良く考えたらこの出力結果じゃ必要な機能無いことに気付いて。
2回目以降はそれ(セキュリティ面)は解決できるけどって言う前提で書いてた
まぁ、あんまり出てきてもうざいんで消えます。
作成頑張る
>>748 3番目の引数に"ISO-2022-JP"を指定するとISO-2022-JP、"JIS"を指定するとISO-2022-JP-1かISO-2022-JP-2になる希ガス。
前者には半角カナや補助漢字が含まれていない。
文字化けの原因は、具体例挙げてくれないと何とも言えないが、両者の間に動作の違いがあるのは確か。
この辺のmbstringの挙動についてドキュメント化されたものは見つからなかったが、ソース見れば動作に違いがあることは明らか。
PHP4ならext/mbstring/mbfilter_ja.c、PHP5ならext/mbstring/libmbfl/filters/mbfilter_jis.cを参照。
マイナーバージョンによって多少ソースの場所が違う可能性もあり。
>>753 別に出てきても構わんよ。
このスレはどっちかというと煽り進行なのであんま気にすんな。
>>753 次からは”自分だけの前提”を作らないように、よく考えてから書き込みましょう。
まぁ、あれだ。日本語勉強してくれ('A`)
自演乙
ワイルドカードを許すfile_existsみたいな関数って
用意されていませんか?
001.jpg
002.png
003.jpg
003.gif
004.png
というファイルが入ってるディレクトリdirに対して
file_exists('dir/001.*'); -> true
file_exists('dir/010.*'); -> false
file_exists('dir/003.*'); -> true
のような動作をする関数です
性器氷原
file_existsに性器評言が使えるとは知らなんだなぁ…
$list = 'hoge|hage|goo|boo|foo|var';
$tgt = 'hoge';
これで、$tgtが$listに含まれるかどうかを調べるとします。
この場合、
if(strpos($list, $tgt)){}
と
if(strstr($list, $tgt)){}
ではどちらを使うのが良いのでしょう?
>>764 下。上(strpos)だと{}は実行されないと思うが
766 :
764:2005/10/27(木) 18:59:11 ID:???
>>765 ごめんなさい。
質問自体を間違えました。
if(!strpos($list, $tgt)){}
と
if(!strstr($list, $tgt)){}
で、含まれない場合のみ条件分岐したい場合です。
>>766 下。上(strpos)だと
>>764の例($list,$tgt)でも{}内は実行されると思うが
phpのスクリプトは
ファイル先頭〜<?phpと
?>〜<?phpと
?>〜ファイル末尾の3種類の変数展開されないヒアドキュメントが
自動的に標準出力へechoされるという認識で問題ありませんか?
>>768 PHPの勉強の前に日本語の勉強をしてください
>>766 ワザワザ混乱しやすい書き方をしなくても、これでいいのでは?
if(strpos($list, $tgt) === FALSE){
echo "含まない";
}
if(strstr($list, $tgt) === FALSE) {
echo "含まない";
}
772 :
768:2005/10/27(木) 19:53:40 ID:???
>>771 ありがとうございます。
?>〜<?phpを跨ぐスクリプトを初めて見たときはギャグだと思いましたが、うまいこと出来てるんですねえ。
というか基本中の基本
質問なんですが、
<?php
$outputname="abc.xml";
header("Content-Type: text/xml");
header("Content-Disposition: attachment; filename=$outputname");
require('abc.php');
?>
と書いてabc.phpが作成したxmlファイルをダウンロードさせると
いうプログラムを書いたのですが、これをダウンロードではなく
他のサーバにアップロードさせるという事は可能ですか?
分かる方教えてください。
>>772 動くけどかなり読みにくいコードになるから,使わない方がいい書き方だけどね.
>>774 受け取る側(アップロードされる側)がどのようになっているかによるけど、
一般的な方法だと、RFC1867で定義されているHTTPファイルアップロード
(<input type="file">のやり方)か、FTP関数を使ってFTPでアップロード。
777 :
764:2005/10/27(木) 20:43:45 ID:???
>>770 ありがとうございます。
マニュアルを見たりすると、確かにその書き方が素直ですね。
勉強になりました。
ところで、本題に戻りますが、結局のところ、
この場合、strposとstrstrではどちらを使うのが良いのでしょうか?
>>777 既に二人が strstr() を上げてるわけだけど,
その問題はそんなに重大なの?
同じことをするのにあるところでは strpos, 別のところでは strstr,
ってなってなければどっちでもいいと思うんだけど..
あるいは専用の関数を作って,あとから strpos/strstr を切り替えれるようにするとかさ・・・
>>777 >>764-767の様式だと指摘されている通り、strposでは正常に動かない
>>770であればどちらでも同じ。
好きな方をどうぞ。混乱するなら"===FALSE"を使う770を勧めるが
780 :
nobodyさん:2005/10/27(木) 21:39:08 ID:Vm7GcHkR
hoge.php?foo
のfooの部分を取得したいんですが、どうやるんでしょうか?
hoge.php?foo=abc
こうやって渡さないとダメですか?
前者みたいなアドレスを見た記憶があるんですが・・・
>>780 phpinfo()を使って、どっかの変数に渡されていないか確認してごらん。
782 :
nobodyさん:2005/10/27(木) 21:48:39 ID:Vm7GcHkR
ありがとうございます。
783 :
nobodyさん:2005/10/28(金) 00:28:11 ID:Mre4QHxw
MySQLの応答でEmpty set (0.00ms)と出るのをPHPでどう判断したらいいですか?
if($result == "") { error(); }
if($result == NULL) { error(); }
if(empty($result)) { error(); }
どれもダメでした・・・
>>783 if (mysql_num_rows($result) <= 0) { error(); }
>>784 横からスマソ。
mysql_num_rowsって負の値が返ってくることはあるの?
784じゃないけど
負の値が返るって無いと思うけど、ありえない(と思われる)ことも考慮してエラーにする
ってことは普通してるけどな
>>786 まあ程度の問題。
fcloseとかもmanpageには戻り値見ないのは重大な問題みたいに書いてあるけど
実際気にしてないし。
>>777 strposで先頭にマッチ(戻り値が0)したときのことを理解していればどっちでも良い
レンタルサーバ上で、PHP_INI_ALLになっている設定項目(include_path)を
ini_setで変更しようとしているのですが、phpinfo()で確認しても変更されていません。
これはサーバ側で変更されないように制限しているということなのでしょうか?
>>789 ・ini_set(include_path)はどんな値を返してるんだ?(0か?)
・同じスクリプトの中でini_set()とphpinfo()を書いて確認してるよな?
> ・同じスクリプトの中でini_set()とphpinfo()を書いて確認してるよな?
これの予感 ビンビン
もちろんかいてます(`・ω・´)
<?php
phpinfo();
ini_set("include_path", "hogehoge");
?>
とか。(´・ω・`)
<?php
ini_set("include_path", "hogehoge");
phpinfo();
?>
794 :
nobodyさん:2005/10/28(金) 15:36:01 ID:traX7I47
質問です。
RHEL4にphp3はインストールできますでしょうか?
apache2がphp3に対応してないというのは調べたのですが、それ以外はわからないです。
OSが有償なので、手元に環境を作れなくて困ってます。
よろしくおねがいします。
>>794 >apache2がphp3に対応してない
してなくはない。CGI版のphp3を使え。
つか今時どういう用途でセキュアでないphp3使うの?
randとmt_randの違いって…
何?
>>797 ちっとはマニュアル読めよ。せっかく日本語訳(完全じゃないし、誤字脱字多いけど)があるのに。
ttp://jp2.php.net/manual/ja/function.mt-rand.php =以下上記アドレス先の中の抜粋=
古いlibcの多くの乱数発生器は、怪しげであるか特性が不明であったり し、また低速でした。
デフォルトでは、PHP は rand() においてlibcの乱数発生器を使用します。
mt_rand() 関数は、その代替品となるものです。
この関数は、その特性が既知の乱数生成器 Mersenne Twister を使用し、
平均的な libcの rand()よりも 4 倍以上高速に乱数を生成します。
ログをファイルに出力しようと思っています。
排他制御について聞きたいのですが、
ファイルを毎回操作するとファイルが消えないか心配なので
(ファイルロックを過信したくない)
postgresにログをダンプしておいて、
一定時間ごとにファイルに出力する
といった方法を考えていますが
こうすることで排他制御の信頼性はあがりますか?
排他制御は信頼性じゃなくて信頼できるかできないかのどっちかだよ
DB使えるならそっちでいいのでは。
802 :
797:2005/10/28(金) 17:45:58 ID:???
>>798 わざわざ抜粋までしてくれてありがとう。胸のもやもやが晴れました。
>>790 >
>>789 > ・ini_set(include_path)はどんな値を返してるんだ?(0か?)
ini_set自体は
string(41) ".:/var/tmp/httpd-1.3.33-root/PHP4/lib/php"
というサーバ規定値を返しています。
> ・同じスクリプトの中でini_set()とphpinfo()を書いて確認してるよな?
>>793と同じように記述しています。
えぇと・・エスパーかphpBB2利用者の方、出番ですよ
解決!!
いかなる状況でも
//index.html
<a href="hoge.php">クリック</a>
で呼び出したhoge.php側で、自分を呼び出したindex.htmlのファイルパスを特定することってできますか?
URLからファイルパスを推測してください
809 :
807:2005/10/28(金) 20:52:31 ID:???
/dir1/dir2/index.html
から
/dir1/hoge.php
を呼び出したとき
//index.html
<a href="../hoge.php">クリック</a>
それでもhoge.phpにて自分を呼び出したファイルのパスを推測することは可能ですか?
どうも
>>774の者ですが、FTPでの転送は下記のように出来ましたが、
$upload = ftp_put($conn_id, $destination_file, Auto.GIF, FTP_BINARY);
>>774に書いたようにPHPで作成(表示)したxmlファイルをアップロード
するにはどうしたらよいでしょうか?よろしくお願いします。
812 :
807:2005/10/28(金) 21:32:24 ID:???
>>810 > リファラー+自前処理
もしノートンとかリファラーが取れないシステムをクライアントが使っていたら
この方法は無理ってことですか?
いかなる状況でも <<これのせいで誰も答えられないと思われ。
セッションとか色々方法はあるけどな
>>813 セッションはCookie受け付けないように設定している香具師には無意味だったんじゃね〜のか?
816 :
807:2005/10/28(金) 22:10:11 ID:???
>>813 なるほど、セッションで可能になるんですね。
セッションに関して調べてみます。
>>811 関数の引数がファイル名を要求しているのだから、アップロード用に一時ファイルを作成すればよろし
818 :
nobodyさん:2005/10/28(金) 22:50:56 ID:deFUSwPy
821 :
nobodyさん:2005/10/28(金) 23:08:03 ID:deFUSwPy
ちがいますよぉw
ほんとにお願い。
>>818 >初期状態であれば /images/smiles にあります。
って書いてあるが。
array('a', '1', 'b', '2')
というただの配列を
array('a'=>'1', 'b'=>'2')
て感じに連想配列に変換してくれる標準関数というのはありますか?
マニュアルの配列のところをざっと見てみたんですけどそれらしいのは無かったので・・
825 :
nobodyさん:2005/10/28(金) 23:33:59 ID:deFUSwPy
>>822 ないのだ。
黄色い、外人がよく使うオーバーな顔文字しかないのだ・・・。
>>824 そうですか(´・ω・`)
SEO対策に、'PATH_INFO'で受け取った文字列を配列にしたかったんですけど、自分で書くしかないですね。
>>823 ないけど、速攻書けるでしょ。
$src = array('a', '1', 'b', '2');
$dst = array();
for ($i = 0; $i < count($src); $i++, $i++)
$dst[$src[$i]] = $src[$i + 1];
>>825 俺のテレパス能力を駆使したところ、おまえは「そのページにある
"2ch風のスマイリー画像"が欲しいのだがどこにあるのか?」と読めた。
管理人に聞けよ。問い合わせフォームあるんだからさ。
>>817 ありがとうございます。
参考にしてみます。
830 :
nobodyさん:2005/10/29(土) 04:59:06 ID:hGe3IwmV
PHP5のExceptionはどうしても手動で投げなくちゃいかんですか?
>>831 JavaScriptなら手動でthrowしなくても、try中のエラーを拾ってくれるんですが、
PHPではそういうことはできませんか?
>>832 そういうのってPHPではエラーとかwarning出すからねぇ
必要なら自分で投げるしかないよ
selfが使えるようになったのって、php5からでしたっけ?
関数内から、その関数の名前を取得することはできますか?
>>833 やはり手動になりますか。どうもありがとう。