【PHP】下らねぇ質問はここに書き込みやがれ 27
1 :
1様 :
2006/08/23(水) 00:54:52 ID:uM5Jzzy0 PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
2 :
1様 :2006/08/23(水) 00:55:47 ID:uM5Jzzy0
3 :
1様 :2006/08/23(水) 00:56:49 ID:uM5Jzzy0
4 :
1様 :2006/08/23(水) 00:57:32 ID:ubWcpnlu
5 :
1様 :2006/08/23(水) 00:58:46 ID:uM5Jzzy0
6 :
1様 :2006/08/23(水) 00:59:29 ID:ubWcpnlu
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
7 :
1様 :2006/08/23(水) 01:00:07 ID:uM5Jzzy0
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ echoはコンマ区切りで書けるけど関数ではない。printは関数。パフォーマンスは気にするな
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
下らねぇ質問はここに書き込みやがれちび人間ですぅ
10 :
nobodyさん :2006/08/23(水) 09:56:47 ID:o70kg/ue
ob_flush() と flush() の細かな違いがわかりません。どのように違うのでしょうか?
>>10 flush 現在のバッファ(例:送信バッファ1)を出力する「だけ」
ob_flush 現在のバッファ(例:送信バッファ1)を次のバッファ(例:送信バッファ2)に送ってあげる
12 :
nobodyさん :2006/08/23(水) 11:32:04 ID:o70kg/ue
うほwBBQって思ってた以上に便利そうだな。 これをphpのサイトに組み込んだらひろゆき激怒しますか><; それとも使っていいものなのですか? 微妙にスレ違いですね、スミマセン><;
【その他諸注意】 ・SQLについての質問はデータベース板(PCカテゴリ)の各スレで ↑↑↑ これは大きな間違い!! PHPとデータベースには密接な関連があり、不可分の話題。 また、この板の説明でも「Oracle, PostgreSQL, MySQL といった データベースの話などをテーマにしています」とある。
それはデータベース板が出来る前の話
1.Excelのテンプレート(グラフ付)をコピーして 2.PostgreSQLからデータを引っ張ってきてデータ入れて 3.PDFでアクセス制限付でDLさせたい です。これ、全部フリーで出てるパッケージとかで実現できますか? 今まではExcelのXMLでやってたのですが、PDFとかでプロテクトしたいらしいです。 いろいろ調べてみてSpreadsheet_Excel_Writerだと、修正ができないらしいので。 一番いいと思う方法を教えてください。
17 :
軟式PHP :2006/08/23(水) 14:34:59 ID:???
>>14 接続周りなどの質問はいいけどSQL自体の質問をこのスレでやられても困るとオモ。
まぁ答えてくれる優しい人はいるけどさ。
>>16 グラフ付きってのがやっかいかもなぁ。。
しかもグラフ付きのテンプレートってなんやろ。
18 :
16 :2006/08/23(水) 15:26:35 ID:???
>>17 予めExcelファイルでテンプレートとしてグラフも設定しておいて、
売上の年月を指定するだけで、対象のデータが各セルに入力されて
そのセルを参照しているグラフも更新されると。
で、そのデータを末端社員にいじらせたくないからPDFに変換しろと。orz
Spreadsheet_Excel_Writerで生成から初めてもいいんだけど、
細かい違いしかないのに数が30以上あるからできるなら
テンプレートはExcelでつくりたいんだけど。
やっぱり無理ぽ?
19 :
nobodyさん :2006/08/23(水) 15:29:49 ID:pJ32ImL5
phpでhtmlを記述する時に、先頭に、 <?xml version="1.0" encoding="utf-8"?> という記述をすると、<? 〜 ?>の構文がphpの構文と判別してしまいエラーが表示されるのですが・・・ 対策はありますか?
22 :
19 :2006/08/23(水) 15:56:24 ID:pJ32ImL5
>>19 short_open_tagをoffにする
24 :
軟式PHP :2006/08/23(水) 16:31:43 ID:???
>>18 なるほど。PHPだけじゃ結構大変そうな気がする…。
フリーライブラリ&PHPだけじゃいい方法が思いつかん。
25 :
16 :2006/08/23(水) 19:21:33 ID:???
>>24 orz
外注にごりごり書かせることにします。d
26 :
19 :2006/08/23(水) 22:01:43 ID:oL3ygScs
素朴な疑問なのですが、formタグにname属性を付加してphpに値を送ることは推奨されているのですか?
前すれで、992でSQLについて教えてくれた方、ありがとう とりあえずそんなに重くは感じていないので、このままでいこうと思います
>>25 なんか涙が出ます。外注がんがれ
>>26 formタグは、nameは書けてもvalueは書けないことになってるんだけど
どうやって値を送るの?
29 :
あぼーんさん :2006/08/23(水) 23:19:35 ID:???
>>19 私はこうしている。
<?php echo '<' . '?xml version="1.0" encoding="utf-8"?' . '>'; ?>
関係無いけれど、Webプログラム板でp2の「ソースコード修正」機能を使って
シングルクオーテーションを書くと「?」に化ける。
31 :
19 :2006/08/23(水) 23:33:52 ID:oL3ygScs
>>28 formの内容が修正ならname=editとして、スクリプト側で$_POST['edit']が真なら修正の処理を施す...のような感じです。
しかし、formタグのname属性は互換性のためだけに対応したということなので、使用が推奨されているかどうかが分からないのです。
>>31 そういう場合、普通はhiddenを使うね
>>31 それは普通、formタグじゃなくてinputタグのhiddenかsubmitにつけないか?
formにnameをつけたところで送信されてこないと思うんだが。
session.gc_maxlifetimeで指定した秒数を過ぎているセッションを 「確実に」破棄するには、session.gc_divisorを「1」(すなわちgc起動の確率を100%)にすればいいの? また逆に、デフォルト設定のままでは、session.gc_maxlifetimeで指定した秒数を過ぎていても、 100分の1または1000分の1の確率でしかそのセッションファイルは削除されない・・・ってことだよね?
祝日かを判定するアルゴリズムか そのまま使える祝日リストはどこかにないでしょうか?
クラス内で使用している変数は、どこまで影響(有効範囲)があるのでしょうか? class HOGE{ var $a = '1'; function HOGE2(){ $b = '2'; } 上のようなクラスを作成した場合、 クラス外では $a や $b を使ってしまってもいいのでしょうか? というのも今までクラスを使ったことが全く無いのですが、 既に使っている変数を別の場所で違う用途で再度使用してしまう、 というミスをかなりの頻度でやってしまいます。
>>35 アルゴリズムで祝日判定は原理的には不可能だったような…
春分の日/秋分の日って確か目安があるだけで
正確な日は前年に閣議決定で官報発表じゃなかったっけ。
ただ、過去の経緯的には天文計算通りの日付で発表されてるんで、
100%ではないけどまずズレない祝日は計算できるはず。
(ただ、元が天文計算なので段々ずれていき、何十年か先までは通用しない)
>>36 $aはクラス内で$this->aまたはクラス外で$HOGE->aとした場合にのみ使えて、それ以外の$aとは完全に別。
$bはfunction HOGE2内でのみ有効でクラス内であってもそれ以外のメソッドのものとは別。
クラス以前に関数を使ったこともない人?
関数も知らないでクラスを使うのはいかがなものかと思いますが。
PHPってWeb2.0に対応してますか?
そもそもWeb2.0ってなんだと思ってるんですか
>PHPってWeb2.0に対応してますか? 対応って・・・w
42 :
nobodyさん :2006/08/24(木) 03:44:21 ID:+80+UMku
switch文では、'+' や '-'といった文字列は比較出来ないの? if文ではうまく出来るんだけど。 もしかしてswitch文では '+' や '-' は文字列では無く「代数演算子」扱いにされちゃう……というヲチじゃないよね?
>>42 普通にできるけど?できないソースを見せてよ。
44 :
nobodyさん :2006/08/24(木) 04:08:00 ID:+80+UMku
$hoge = "+"; switch ($hoge) { case "+" : echo "加算"; breake; case "-" : echo "減算"; breake; default : echo "どらちゃん、おやつよ!!"; } おかしいなぁ。「どらちゃん、おやつよ!!」と出力されちゃう。
>>44 breakeをbreakに直せば正常に動く。
・・・・つーかこれ、どういう挙動になってるんだろう。
46 :
45 :2006/08/24(木) 04:13:38 ID:???
ちなみに元々の結果は 「加算減算どらちゃん、おやつよ!!」 じゃないか?「加算」も「減算」も全部出てる。 breakeのとこで文法エラーにならない原因は不明。
47 :
nobodyさん :2006/08/24(木) 04:15:13 ID:+80+UMku
>>45 おぉ、私はなんと下らないミスをしていたのでしょう……
中学生レベルの英語だ。
>つーかこれ、どういう挙動になってるんだろう。
すみません、ソースそのまま書いちゃうとアレなんで
ちょっと改編しておきました。
ママ: 「ドラちゃん、おやつよー」
ドラえもん: 「はーい」
48 :
45 :2006/08/24(木) 04:15:32 ID:???
ああ、そっか。単に "breake"; と書いたのと同じ「式」と解釈されてんのか。 それで何の結果も及ぼしてないのね。
ママ: のびちゃーん、どらちゃーん、おやつよー!! どら&のび: わーい!
PHP用のエディタを使えば、スペルあってれば色つけてくれるから視覚的にわかりやすくて便利。
セッションで受け取った値をブラウザに表示し、「DBへ」ボタンクリック後にMySQLに流したいのですが "hiden"属性を使わない方法はありますでしょうか? //これが現在のアホアホなソースです <form method="post" action="test731.php"> <TABLE border="1"><TBODY><TR><TD>番号:</TD><TD> <?php session_start(); if($_SESSION['number']){ $cbr = $_SESSION['numer']; print($cbr);} ?> </TD></TR><TR><TD><input type="submit" value="DBへ"></TD><TD></TD></TR></TBODY></TABLE> <?php $zzr = $_POST['cbr']; $MySQL['HOST'] = 'localhost'; $MySQL['USER'] = 'root'; $MySQL['PASSWORD'] = '******'; $MySQL['DATABASE'] = 'test'; mysql_connect($MySQL['HOST'],$MySQL['USER'],$MySQL['PASSWORD']) or exit('mysqlへ接続できませんでした'); mysql_select_db($MySQL['DATABASE']); mysql_query("insert into hoge value(null , '$zzr')"); ?> </form>
>>51 セッションで受け取ってるなら、DBへの登録もセッションから受け取ってやればいいじゃない。
何でhiddenが必要なのかの方が分からん。
>>52 submit経由「DBへボタンを押す」で、フォーム内の値を変数に置き換える方法
をhiddenしか思い浮かばなかったです
どうすればいいんだろ・・・
>>53 いや、フォーム内の値を置き換えるなら確かにhiddenが必要だろうが、
そもそも置き換える必要あんのかそれ?ってことよ。
一体何をしようとしてるのかもうちょっと具体的なコードで示してくれ。
少なくとも
>>51 にはhiddenなんてないわけだし、hiddenで何をしようとしてるのかが全く分からん。
>>54 了解しました
//他ページから受け取った値を変数($cbr)に格納し、ブラウザに表示
<?php
session_start();
if($_SESSION['number']){
$cbr = $_SESSION['numer'];
print($cbr);}
?>
//変数($cbr)をhidden属性のテキストフォームに格納
<input type = "hidden" name ="nsr" value="<php print($cbr); ?>">
//ボタン経由で$_POSTにデータを格納
<input type="submit" value="DBへ">
//$_POSTのデータをDBへ登録
//略
こんな感じで一旦、hiddenを利用してみる方法です
>>55 POST後のプログラムを
<?php
session_start();
if($_SESSION['number']){
$zzr = $_SESSION['numer'];
$MySQL['HOST'] = 'localhost';
$MySQL['USER'] = 'root';
$MySQL['PASSWORD'] = '******';
$MySQL['DATABASE'] = 'test';
mysql_connect($MySQL['HOST'],$MySQL['USER'],$MySQL['PASSWORD'])
or exit('mysqlへ接続できませんでした');
mysql_select_db($MySQL['DATABASE']);
mysql_query("insert into hoge value(null , '$zzr')");
}
?>
とセッションでデータを引渡すようにするだけだと思うんだが
これだと何か問題があるのか?
>>56 それだと、$_POSTがNULLになってしまうのです
<FORM>内に値がないからだと思うのです
>>57 NULLで何が困るのか分からんが、必要ならsubmitにname="regist"とでも入れてやれ。
>>58 そうなんです、思い出しましたw
<input type="hidden" name="mode" value="regist">
これの意味がわからなかったから、思考停止になっていました
しかし、、、これってどのような役割をしてくれるのでしょうか・・・
60 :
nobodyさん :2006/08/24(木) 09:50:52 ID:X79pe6wS
>>59 考えてわからないなら試してvar_dumpでもしてみれ
>>59 POSTが送信されたので更新のプログラムを実行しましょう、
という合図用。
>>60-61 サンクス
うまく動いたのですが、DB観ると一度の処理で同じ値が2レコード入る
もう(><;;;
>>62 根本的にプログラムの流れもデータの流れも何も理解しようとせず
何となくだけでプログラム作ってるだろうお前。
>>64 その通りです
大まかな流れはわかったつもりなんですが、ちょっとした応用もできないアホです。。。
フォーム内のセッションで受け取った値を変数に格納しているのに
POSTに値が入らないからDBに送られなかったら、2重の処理させたり
しっちゃかめっちゃかです
スクリプトを1から練り直します
すみませんでした 結論として、INPUTボタンを連打していただけでしたorz 素直に「登録しますた」画面を飛ばせばよかた
「登録しますた」画面をリロードしたら また登録されたりしてねw
session_destroyしているから、そこはOKだけど QueryがTRUEかFALSEかで飛ばすページを分けさせようとすると、うまくいかん うんもー前に進まん(><;
がむばれ(><o
これまで何回も同じ処理を繰り返す場合、 requireを使用してきました。 そろそろ functionとclassを覚えていこうと思っているのですが、 require(include) と比べて function のメリット、 function と比べて class のメリット、 の2点がイマイチつかめません。 それぞれ教えてもらえないでしょうか? function に関しては引数を設定できる、というあたりでしょうか?
やっぱり<FORM>内の情報をhiddenで埋め込む方法しか思い浮かばない・・・ 一応、処理が問題なされているソース貼る hidden使わないソースに修正お願いしまつ <?php session_start(); //前ページからセッションを受け取る if($_SESSION['zz']){$aa = $_SESSION['zz'];} if($_POST['db']){ //フォームに値があるならば $gg = $_POST['ff']; //hiddenに埋まっている値を変数に格納 $MySQL['HOST'] = 'localhost'; $MySQL['USER'] = 'root'; $MySQL['PASSWORD'] = '*******'; $MySQL['DATABASE'] = 'test'; mysql_connect($MySQL['HOST'],$MySQL['USER'],$MySQL['PASSWORD'])or exit('mysqlへ接続できませんでした'); mysql_select_db($MySQL['DATABASE']); $hh = mysql_query("insert into hoge value(null , '$gg')"); //MySQL5にオートインクリ込みで送信 if($hh =="true"){ //MySQL5からTRUEが帰ってきた場合 header('Location: test3.php'); //「登録完了しまつた」ぺージへ飛ぶ session_destroy(); }else{ header('Location: test1.php'); //最初のページに戻り、セッションは破棄しない } }?> <form method="post" action="test2.php"> <TABLE border="1"><TBODY><TR><TD>番号:</TD> <TD><?PHP print($aa); ?> //セッション情報をブラウザに表示 <input type ="hidden" name ="ff" value="<?php print($aa); ?>"> //セッション情報をhiddenで埋め込み </TD></TR><TR><TD><input type="submit" name="db" value="DBへ"> </TD><TD></TD></TR></TBODY></TABLE></form>
74 :
nobodyさん :2006/08/24(木) 15:18:33 ID:BibIZoi3
>>70 require に比べて、function は明示的な変数の有効範囲を設定できる
[foo_req.php]
$a = 10000;
[foo.php]
$a = 10;
var_dump($a);
require('foo_req.php);
var_dump($a);
こんなコードを実行すると、2回目の var_dump() で $a の値が変更されているのが
確認できるだろう
単純な処理のうちはこれでもいいが、複雑になってくると不具合を作る原因になる
>>73 //フォームに値があるならば
//hiddenに埋まっている値を変数に格納
↓
//フォームに値があるならば
//セッションの値を変数に格納
なんのためのセッションだ
hiddenなんて嫌い。 GETで値を渡してあげればいいじゃん。 <form method="post" action="hoge.php?id=2&nullpo=true"> <input ...
>>75 ですよね
と思いつつ、修正したら、あっさり解決しました
あぁ hiddenから開放された
みなさん スペシャルサンクス
これから郵便番号AJAX始めますorz
あなたはそんなもん作るよりまずは HTML覚える→PHP覚える→セッション覚える→DB覚える をしたほうがいいと思う。フォームすら満足に使えないのに、時間の無駄。
Web技術の怖いところは素人がセキュリティ甘いものを公開すると、 踏み台となって他人に迷惑をかけたり、 素人が作ったと認識できない別の素人が利用して、さらに踏み台が増殖したりすることだ。 つまり素人はじっくり修行してから公開しろってこった。 まじめに修行する気のない素人は消えろカス
それで大人っ面したつもりなのかな?
php5+eacceleratorのレンタルサーバを探しています。どこかないですか?
>>78-79 一応、骨格は作れそうです
ただエラー制御やセキュアな環境にするためには、まだまだです
しかし、、、UIを作り上げるための時間が残り少なく・・・
お叱りはごもっとも
また叱ってください!!
84 :
nobodyさん :2006/08/24(木) 17:27:26 ID:wCBGqZdj
GETってセキュリティー的にはどうなの? POSTのほうがマシとかあるの? 関係ない?
GETの方がネットど素人でも簡単に目に見えちゃうからね。 ど素人でもなんとなく意味もわかればいじられるかもしれないし。 まぁどちらかと言えばGETが悪いってくらいで、あんま変わらんじゃね?
たとえば携帯からだと基本的にソースを見れないので、POSTにしちゃえば何を送信してるかもわからん。
87 :
nobodyさん :2006/08/24(木) 17:36:42 ID:wCBGqZdj
なるほどね。でもよくあるメールで本登録完了とかいうアドレスを送信するのってGETじゃないとできなくね?
全部HEADでいいよ
89 :
nobodyさん :2006/08/24(木) 17:44:08 ID:wCBGqZdj
HEAD?ド素人ですみません。
>>72 hiddenかどうかはXSSに関係ない。
エスケープしてるかどうかが大事。
つまりhtmlspecialchars乱用
乱用して何か問題でもあるのか、と小一時間。
$kore = 100000000000 + 1; //結果:100000000001 $kore = 1000000000000 + 1; //結果:1E+12 12桁を超えるとこんなになっちゃうんですが、どうしたらよいのでしょうか?
>>91 乱用しないために
htmlspecial(); というグローバル関数があったと思うが
この中に変数入れまくればいいんじゃまいか?
データベースから50件取ってきて表示させて次のページはその続きから表示させる みたいな感じで一定の件数ごとにページを切り替えるようにしたいのですが どこか説明しているHPなどありますでしょうか? ググり方が悪いのか思った通りのページがhitしません。
99 :
70 :2006/08/24(木) 19:59:41 ID:???
>>74 レスサンクスです、
function の classと比較してのメリットはなんでしょうか?
昨日 本で読んで、軽くプログラムを作っただけでは
クラスがfunction()と比較して
どういう場合に有効活用できるのかがあまり理解できませんでした。
継承とかはあとあとの修正時に便利そうだなとは感じましたが。
クラスは部品、という説明がよくありますが、
結局functionも部品ですよね?
どこが大きなメリットなんでしょう。
>>99 実際使ってみた方が理解早いと思うけどね・・・
例えるならfunctionはCPUやメモリ、ビデオカード、M/Bだ。
で、クラスはPC。
一台のPCを用意するときはパーツ用意してきて自作しても良いが、
10台20台となると同じPC一気に購入してきた方が楽っしょ。
つまり、そう言うことだ。
101 :
nobodyさん :2006/08/24(木) 20:19:34 ID:X79pe6wS
そもそもfunctionとclassは別物ですよ。簡単に書けば一連の処理をまとめたものを 定義したものがclass。
>>99 厳密な意味でのオブジェクト指向のプログラミングはそれ専門の本などを
調べてもらうとして簡単な例をあげる
関数
function foo($a) {
$a =+ 100;
return $a;
}
function bar($a) {
$a += 200;
return $a;
}
$a = 0;
$a = foo($a);
$a = bar($a);
print($a);
クラス function foo() { $this->a += 100; } function bar() { $this->a += 200; } $obj->a = 0; $obj->foo(); $obj->bar(); print($a); いまは $a しか foo() bar() の中で利用していないが、これが複数に なると関数だと記述するのがめんどうになったり、 処理内容を変更したときに変更箇所が広域にわたってしまうことがある クラスでまとめてしまうと、処理がクラスの中で閉じられるので、 そういったわずらわしさが軽減される。
>>99 難しく考えなくていい。
とにかくclassに関連するfunctionつめこんどけばおk
>>103 間違えた
print($a);
ではなく
print($this->a);
だ
セッションIDをクッキーに保存するにはどうしたらいいでしょうか? クッキーに保存されなくて困ってます。。 よろしくお願いします。
くだらない質問ですみません $a = "1\t2\t3\t4\t5"; これを区切り文字\tで区切って whileとかで1つずつ表示するにはどうしたらよいのでしょうか?
>>108 explode と foreach で如何?
$a = "1\t2\t3\t4\t5"; $b = explode("\t", $a); foreach($b as $value){ echo $value; }
>>110 ありがとうございます!たすかりました!
>>107 session_start()を呼び出せば勝手にセッションクッキーが発行されてるよ。
きちんとセッションIDが渡されてるかどうかを確認するには、
HTTPヘッダーをスニファしてみればいい。ieHTTPHeadersなどが簡単でオススメ。
フリーのPHPBLOGのCMSで使いやすいのありますか? ぐぐったんですがいまいち見つけられませんでした
>>112 >>107 はsession_start()の前に何かを出力している悪寒がす
例えば改行とか・・・
>>115 ブラウザ閉じておいてセッションIDが保存されていないとか言ってるあかん
ちょっと上でも話題が出てたけど・・・ POSTとかGETで受け取ったデータをDBに保存する処理と、登録ありがとうございました、っていう メッセージを出す画面を同じファイルで書いた場合、更新するともう一件データが登録されちゃう・・・ これはDBに登録する処理と画面に出す処理を別ファイルに分けるのが一番手っ取り早い方法ですか?
121 :
nobodyさん :2006/08/25(金) 00:46:37 ID:j1RIrLGf
再帰関数で、一定の回数自己関数を繰り返したら、関数自体を抜けたい場合 どうやれば良いのでしょうか。 サンプルコードだとこんな感じで、10回まわったら"post"を表示せず次の処理に 移りたいです。 recursive(); function recursive () { static $i = 0; $i++; if ($i != 10) { recursive(); } echo "post<br>"; }
122 :
愚痴 :2006/08/25(金) 01:13:48 ID:???
いまさらなんだがionのenco早く無いじゃないか。
>>122 まーローダー探しに行ってるからね。
Zend Encoderのが良いに決まってる。
loader探しに行ってるにしても encoしてるので20秒 生ソースで2秒はないだろう... 主な処理は大量演算ループです。 ふつうencoするならループ系はハヤクナルンジャマイカ?
>>121 それって動くの?
recursive ()中にrecursive ()が入ってない?
127 :
nobodyさん :2006/08/25(金) 02:06:10 ID:/0MHpE74
質問させてください。
PHP5.1.5
Apache2.055
WindowsXP Sp2
という構成でサイトを作っています。
問題:アクセス解析サービスでリファラが正常に取得できない
index.phpにアクセスすると携帯かPCか、アクセスクライアントを判断して
それぞれにあったページを表示しているのですが、
そのページに、以下の様なアクセス解析サービスをつけています。
<img src="
http://w1.ax.xrea.com/l.f?id=100646XXX&url=X " border="3" width="40">
このように画像を読み込んでアクセス解析するタイプでは、リファラが正常に取得できないようなのです。
静的なHTMLでは正常にリファラを取得してくれるのですが、
phpからページ生成をするような場合は、リファラには全て自分のサーバがセットされてしまうようです。
どうにかphpから生成したページでも正常にリファラを取得できるようにはならないものでしょうか。
もし宜しければアドバイス頂けませんでしょうか。
>>124 そういう単純処理の高速化は難しい。
この手のソフトは一回構文を評価したのち、
早い順番に内部の関数を入れ替えてエンコードするんだけど、
その秒数は異常かもね。Zendの奴使ってるけどそんなケースはないなぁ。
>>124 早くならないどころか大幅に遅くなってて意味ないじゃんか。
何か設定がおかしいんじゃねぇの?
>>125 再起呼び出しも知らんのか。お前ホントにプログラマか??
>>131 すんません。漏れも知らないです。
本職はPGでもなきゃIT系でもないので許してください。
>>131 ほほぉ、こんなの動くんだ。
勉強になったが、今まで困らなかったからなぁ・・
勿論抜ける処理をしないといけないけどね。 プログラマだろうが知らない事あって当然
if($i==10){ echo "post<br>"; return ; } recursive(); にすると末尾再帰でループに最適化・・・PHPはされないんだっけ?
opcodeを最適化するaccelerator使えば末尾呼び出しは最適化される
>>127 php自身でリファラとればいいじゃん
静的なHTMLでもリファラは自分自身になると思うが(Javascriptとかで渡さない限り)
141 :
nobodyさん :2006/08/25(金) 12:26:17 ID:x7whBw5F
// 制限時間を設ける $expire = time() + 60 * 60 * 24 * 10; // クッキー情報をセット setcookie("name", $name, $expire); これで、Warning: Cannot modify header information - headers already sent by...というエラーが出るのですが、何故でしょうか?
142 :
(^ω^) :2006/08/25(金) 12:36:10 ID:???
143 :
nobodyさん :2006/08/25(金) 12:46:45 ID:x7whBw5F
>>142 <?php
$name = $_POST['name'];
$name = htmlspecialchars($name);
$expire = time() + 60 * 60 * 24 * 10;
setcookie("name", $name, $expire);
?>
ありがとうございます。
setcookie以前には出力は出ないようにしました。
しかし、この6行のスクリプトでも同じようにエラーが出るのですが、何故でしょうか?
144 :
nobodyさん :2006/08/25(金) 12:58:18 ID:r3tiUVo5
すみません、ど素人な質問ですがよろしくお願い致します。 PHP4系とMySQL3.23系で開発してます。 no uid visit_id year month day timestamp 1 35 1 2006 8 20 1156044334 2 1 31 2006 8 25 1156437877 3 1 33 2006 8 25 1156440499 4 31 1 2006 8 25 1156441495 5 31 32 2006 8 25 1156442959 6 31 1 2006 8 25 1156442961 7 35 33 2006 8 25 1156443005 8 35 1 2006 8 25 1156443007 9 35 1 2006 8 25 1156443342 上記のようなテーブル構成でデータが入っているとき、 「同じ年月日の中で、visit_idが同じ値のレコードが複数あった場合、一つだけ選ぶ。 一つだけ選ぶ基準は、timestampが最も大きいレコード。その時のuid(またはno)」 を、抽出したいと考えています。 たとえば、visit_idが「1」のとき、「no」が「1」と「6」と「9」のレコードを得たいです。
145 :
144(続き) :2006/08/25(金) 13:00:30 ID:r3tiUVo5
それで SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp` FROM テーブル WHERE `visit_id`='1' ORDER BY `timestamp` DESC だと、 「no」が「9,8,6,4,1」のレコードが得られます。 ここまでは想定通りです。 ここで、「uidが重複しているレコードのうち、timestampの値が小さいほう」を除外すれば、 抽出したくないレコード(「no」が「8と4」のレコード)を含まず、 当初の目的である、「no」が「1,6,9」のレコード だけが得られるはずです(…よね?) そこで、 SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp` FROM テーブル WHERE `visit_id`='1' GROUP BY `uid` ORDER BY `timestamp` DESC と、GROUP BY `uid`を加えてみると、得られる結果は「no」が「4と1」のレコードでした。 「no」が「8と4」のレコードを得るのではなく、 逆にこれを除外して「no」が「9」と「6」と「1」のレコードを得たいと 思っていたのに、まったく正反対の結果になってしまいます。 正しい結果を得るには、どういうSQL文を発行したら良いのでしょうか?
サブクエリー使えばいいんじゃないの?MySQL4.1以降からしか使えないみたいだけど。 PHP関係ないし、DB板で聞いてきたら?
147 :
nobodyさん :2006/08/25(金) 13:24:38 ID:HJhLYM88
物件検索システムのスクリプトあるとこ教えて。 探したけどすべて有料なんだもん。
お願いします。 名前はすべて苗字(漢字)名前(ひらがな)で構成されているリストから 名前=ひらがな部分を抜き出したいのですが、どうすればよいでしょうか?
150 :
149 :2006/08/25(金) 13:37:18 ID:jN6+EhEe
すいません、sageちゃいました
>>145 年月日の連結文字列カラムをSELECTして
そのカラムでdistinctで重複はじいてとかでいけないかな
>>149 各文字コードにあった、マッチング処理が必要だと思う
そんなことをやってくれる、公開されたスクリプトあったかな
>>143 UTF-8のファイルでファイルの先頭にBOMが付いているかも
155 :
nobodyさん :2006/08/25(金) 14:32:39 ID:cXrhOjOg
引数$testが echo $test;しても表示されないのはなんでなのかなぁ。 ほんとくだらない質問でごめんなさい。
>>153 コンストラクタはオブジェクト作成時に自動的に実行される関数です
PHP4ではクラス名と同名の関数がコンストラクタになります
PHPでは__construct() も使えます
157 :
nobodyさん :2006/08/25(金) 14:43:28 ID:rSZy/sXz
RSSがらみのテストプログラムを作っているのですが、 RDF系で使われている日付形式(例: 2006-08-24T16:20:00+09:00)をタイムスタンプに変換する方法がわかりません。 dateとかstrtotimeでいけるかと思ったんですがうまくいきません。 心当たりのある方、よろしくお願いします。
最近VBScriptからPHP4系に乗り換えさせられた者ですが、 VBScriptでいう「Response.Clear」みないなものはechoにはないのですか?
質問します。 // Perlでの処理 @array_1 = (1, 2, 3, 4, 5); @array_2 = $array_1[1 .. 3]; Perlの配列のスライスのように、phpで上記のようなことは出来ますか?
>>160 うはーまじっすかーΣ(゚ロ゚ )
正規表現よりは桁数で拾った方が速そうではあるけど・・・
くそー今のRDF規格を作った人を恨むしかないか。
RFC822形式なら一発なのに・・・
ありがとうございました。
163 :
nobodyさん :2006/08/25(金) 15:37:15 ID:bPaTgEu1
質問です。(PHP5,apache) 下記のコードにおいて、methを実行することで$inにout.phpで宣言している変数を代入するには、どうすればよいでしょう? include("out.php"); class{ var $in; function meth(){ $this->in = (out.phpで宣言されている変数) } }
>>157 こんな感じ?
$rdfdate = "2006-08-24T16:20:00+09:00";
$time = strtotime(preg_replace('/(.*)T(.*)([-+])(.*):(.*)/', '\1 \2 \3\4\5', $rdfdate));
echo $time; //1156404000
>>163 $this->in = $GLOBALS['out.phpの変数名'];
>>164 正規表現が苦手なので桁数でやってしましました。
function getTime($rdftime){
$t = strtotime($rdftime);//RFC形式は通る
if($t == -1){
//RFCではない。=RDF形式
$y = substr($timestamp , 0 , 4);
$m = substr($timestamp , 5 , 2);
$d = substr($timestamp , 8 , 2);
$j = substr($timestamp , 11 , 2);
$f = substr($timestamp , 14 , 2);
$b = substr($timestamp , 17 , 2);
$t = mktime($j, $f, $b, $m, $d, $y);
}
return $t;
}
こんな感じで。
/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/
PHP5ならstrtotime()で一発だお。
>>160 ありがとうございます。これでバッサリすっきりです。
変数に値を追加することは可能でしょうか? たとえば $aaa = "あああ"; この$aaa→"あああ"につなげて"いいい"を入れたいんです。
173 :
144 :2006/08/25(金) 19:36:10 ID:r3tiUVo5
>>151 アドバイスありがとうございます。
それは、何らかのクエリを二段階で投げる、という意味でしょうか??
174 :
nobodyさん :2006/08/25(金) 19:53:37 ID:Zr4Rxmi9
配列にある値の中から最小のものを返してくれる関数はありませんか?
配列の中にあるものは、intかdoubleだよね? なら簡単に作れそうなきもするけど。
min()
>>176 配列もちゃんと自動で解釈してくれるんですね。ありがとうございました!
初歩的な質問ですいません。(間違ってプログラム板で質問してしまいました・・) if($Cid==$line[1] or $Cid==$line[2] or $Cid==$line[3] or $Cid==$line[4] or $Cid==$line[5] or $Cid==$line[6] or $Cid==$line[7] or $Cid==$line[8] or................. $Cid==$line[100]) { をなんとか一文ですっきりする方法はないのでしょうか? 例えば if($Cid==$line[1から100]) { のような感じです。
in_array()
shift_jisのログファイルを読み取ってutf-8で表示するにはどうすれば良いのですか? 若しくはどのようにしてログファイルにutf-8で保存するのですか?
/ext/pcre/php_pcre.c眺めてたら >#define PCRE_CACHE_SIZE 4096 とか > * If we reached cache limit, clean out the items from the head of the list; > * these are supposedly the oldest ones (but not necessarily the least used > * ones). とか書いてあるんだけど、パターン使いまくりはあまりよろしくないってこと?
>>179 すいません。具体的にはどうなるのでしょうか?
>>182 くだ質スレだけど・・・答えは出てるんだからちょっとは自分で調べてみたらどうだ?
大体よ、arrayって何なんなんだよ? 配列ってどういうこと? なんで自信満々に「俺は配列だよ」とか答えるんだよ死ね
>>185 誰もそんなこと言ってないようだけど
少し寝たほうがいいよ
>>181 正規表現のパターンを4096個も使うことってのはあんまないような気が・・・。
キャッシュが太りすぎたときにちょこっとクリアされるとは言っても心配するほどのことでもなさそう。
ループ内とかで繰り返し使われるパターンがクリアされたら確かに二度手間にはなるけど、また再登録されるわけだし、立て続けに同じのがクリアされる確率は低いと思う。
まあphpが正規表現のコンパイル結果をキャッシュしてるっての初めて知ったので、情報ありがd。
> I'm array.
190 :
178 :2006/08/26(土) 11:48:00 ID:???
みなさん ありがおうとうございます。 in_array がヒントですね。 ただ、これでも $Cid = array("$line[1]", "$line[2]", "$line[3]",..................................... "$line[100]"); と$line[100]まで延々と記述しなければならないのでしょうか? なにか数字が1〜100までつづきます みたいなことを定義できないのでしょうか? おねがいします。
>>191 はい、要は↓をシンプルにしたいんです >< PHPのことがあまりわからず
サイトを引き継いだんですが・・・・・
$Arr=array();
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",",$Data[$i]);
if($Cid==$line[1] or $Cid==$line[2] or $Cid==$line[3] or ........... つづく $Cid==$line[100]まで){
array_push($Arr,$Data[$i]);
}
この ........... $Cid==$line[100]){ 部分がなんとか短くスマートに出来ないか模索中さんです。
in_arrayをつかってもいちいち100まで記述しなければいけないのなら同じですよね?
>>192 in_arrayの説明をもう1000回読め
ヒントじゃなくて答えだ
194 :
nobodyさん :2006/08/26(土) 12:35:17 ID:ZmsklhSj
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllllll/ ̄ ̄ヽlllllllllllllllllllllllllllllllllllllllllll lllllllllllllllllllll / ヽllllllllllllllllllllllllllllllllllllll iiiiiiiiiiiiiiiiiiiiii 試 も あ .iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiiiiiiiiiiiiiiiii| 合 う き |iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ;;;;;;;;;;;;;;;;;;;;;| 終 ら |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;| 了 .め |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;:;:;:;:;:;:;:;:;:;:;| だ ろ |:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;: ;:;:;:;:;:;:;:;:;:;:;| |:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;: :.:.:.:.:.:.:.:.:.:.:ヽ、 /.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.: :. :. :. :. :. :. :. :. ‐‐--‐‐':. :. :. :. :. :. :. :. :. :. :. :. : : : : : : : : : : : : : : : : : : : : : : : : ,.‐- 、 : : : : 廴ミノ ///¨' 、 y':;:;:;:/⌒i! J:;:;:;:;};:;:/;}, ;il||||li' t`'---‐';:;:;:l ,.r'"''、,┘ 7;:;:;:;:;:;:;:;「 ノ4 (⌒i .}:;:;:;:;:;:;;/ /..,__彡{, | `i:;:;:;:;:;} ( .ミi!} l、 .」:;:;:丿 クュ二二`Lっ) `==='
>>192 ムリです!って言ってその会社やめちゃえば?
何度読んでもわかりませんよ・・ ●; rz ・・・・・・・
いやちょっと。お前いくらなんでもそれは頭悪すぎないか?
ヒントじゃなくて答えだって。 わかんないなら100こ並べろ。
>>192 explode した結果が 100 以上の要素を持つ配列になり得るから困ってる?
バカのフリした釣りだろ アレ読んで理解出来ないやつなんていねぇし
>>198 それを読んでもわからないなら、やめたほうがいい。
それと、お節介かもしれないが、知的障害あるか検査したほうがいい。
知的障害があることが既知なのであれば、
プログラミングという高度な知的作業を行うことがそもそも間違いだと思う。
204 :
nobodyさん :2006/08/26(土) 15:01:54 ID:8b0v97H2
くだらない質問ですがお願いします。
$massage="
http:// ・・・・.com/・・・.php?data=UrlEncode($_GET['data'])
";
mb_language('Japanese');
mb_internal_encoding("SJIS");
mb_send_mail(省略);
を送信した場合
「
http:// ・・・・.com/・・・・.php?data=%82v%82%85%82%82%83%7D%83X%83%5E%81%5B」
とメールが届くのですが通常のアウトルックなどのメーラーで受信した場合クリックすると正常なデータを返しますが
hotmailなどのWebメールで受信した場合クリックすると
http:// ・・・・.com/・・・・.php?data=?v?…???}?X?^?
見たいに変換されます。
受信したアドレスのプロパティーを見ると
「javascript:ol('
http:// ・・・・.com/・・・.php?data=?v?…???}?X?^?);」
なっています。一種の文字化けなのですがどのように対処すれば良いでしょう?
もうこの阿呆の相手するの飽きた。 マニュアルの日本語すら理解できないサルには俺らが何書いたところで理解できるわけもなし。 これやるからとっとと帰れ。 if(in_array($Cid, $line)) { echo "私にサイト引き継ぎなんて到底無理です。私にPHPなんて200年は早いのです。"; } $lineが100個でない時に生じうる意図しない動作に関しては自分で考えて何とかするように。
>>178 は
>>1 を読んでIDを表示させろ。
偽者が出現していて荒れている気がする。
>>205 まったく意味がわかりません。もっと詳しくおしえてください
職失いそうです ><
能力ないんだから仕方ない。つまり社会のゴミ。
>>180 mb_convert_encoding($value, "UTF-8", "SJIS")
ずいぶん今日は回答者が横暴ですね。
自分と意見が合わなかったらなんでも本人乙ですか。 うざいからお前帰っていいよ。 次の質問どうぞ
煽ってんのはどうせ1人だろ?気にしなくていいよ。
214 :
nobodyさん :2006/08/26(土) 18:49:13 ID:8NxWDex1
215 :
nobodyさん :2006/08/26(土) 18:49:53 ID:8NxWDex1
質問の続きです。 ○質問内容 CSV読み込みや、文字列の変換などは出来そうなのですが、 ファイルダウンロードや保存処理などが全く判りません。 以下、教えて頂きたいことです。 ・勉強をするにしても、見当がつかないので、具体的なキーワード ・もしできましたら、簡単で構わないのでサンプルのソース お忙しい中、大変恐縮ですが、 こちらの質問に少しでもお時間を頂ければと思います。 出来るだけ丁寧に書いたつもりですが、 日本語おかしかったらごめんなさい。 何卒、よろしくお願い申し上げます。
ダウンロードはPEARのHTTP_Requestでも使って イメージのURLを直接GETしてレスポンスを そのままバイナリでローカルに保存すればいいだけ 数行で終わる処理
217 :
204 :2006/08/26(土) 19:03:15 ID:8b0v97H2
全然わからないでしょうか?一応文字コードとかかな?とか思ってるのですが。
$massage="
http:// ・・・・.com/・・・.php?data=UrlEncode($_GET['data'])
";
mb_language('Japanese');
mb_internal_encoding("SJIS");
mb_send_mail(省略);
を送信した場合
「
http:// ・・・・.com/・・・・.php?data=%82v%82%85%82%82%83%7D%83X%83%5E%81%5B」
とメールが届くのですが通常のアウトルックなどのメーラーで受信した場合クリックすると正常なデータを返しますが
hotmailなどのWebメールで受信した場合クリックすると
http:// ・・・・.com/・・・・.php?data=?v?…???}?X?^?
見たいに変換されます。
受信したアドレスのプロパティーを見ると
「javascript:ol('
http:// ・・・・.com/・・・.php?data=?v?…???}?X?^?);」
なっています。一種の文字化けなのですがどのように対処すれば良いでしょう
文字コードだと原因を踏んでるのに mb_send_mail(省略); ここを省略するなよ
>
http:// ・・・・.com/・・・.php?data=UrlEncode($_GET['data'])
ここが凄いなぁ、と、思いました。何でも出来ます。
>>214 >ファイルダウンロードや保存処理など
ファイル残すなら copy() でいけるんじゃないかな。
システムコマンド発行してもできるんかもしれないけど俺はよく知らん。
221 :
220 :2006/08/26(土) 19:29:02 ID:ZmsklhSj
220追記。 コピー先にローカルを指定するってことね。(C:\〜〜) 試してないから分からんけどできなかったらfile_get_contents()とfile_put_contents()でごりごりと。
222 :
204 :2006/08/26(土) 19:35:18 ID:8b0v97H2
すみません。mb_send_mailです。
mb_send_mail($_GET['mail'],"登録手続き",$message,"From:
[email protected] ");
hotmail以外の普通のメーラーからは正常に動作します。
問題はhotmailに渡った時のメーラーの文字コードなどの設定なのかな?などと思いながらもわかりません。
>>217 > 全然わからないでしょうか?
逆に聞きたいや。どうしてそうなるか、想像つかない?
その化けるっていう部分のテキストを自分で手入力して hotmail 宛てに送ってみたら?
UrlEncode()をmb_internal_encoding("SJIS"); の後でやる
POSTしてsql文発行してDBに入れ込むときに ダブルクォーテーションがあるとエスケープしてくれる関数ってありますか? php.iniのmagic_quotes_gpcをonにすればいいと検索してわかったんですが、 レンタルサーバなのでphp.iniを弄れません。
>>225 addslashes
しかし俺はPDOとかのプレイスホルダ機能を利用することを推奨する。
>>226 ありがとうございます
PDOはよくわからないので調べてみます。
228 :
192 :2006/08/26(土) 23:18:43 ID:???
みんな 教えてくれないの?
>>228 我々は既に少なくとも4回は答え(ヒントではなく答えそのもの)を教え、
数え切れないほどの助言を与えたが君にはそれがこれっぽっちも理解できなかった。
また、君はこのスレの
>>1 に書かれている質問者のルールすら理解していない。
以上より我々は君にものを教えるのを諦めた。君ももう諦めろ。
>>225 なぜmysql_escape_stringという、その目的専用の関数があるのに使わないのだ?
>>230 俺いっつもaddslashes使ってたけど何が違うんだそれ?
>>231 方言のきつくないDBなら大差ない(MySQL, PostgreSQL, SQLite辺り
ただ、addslashesは余計な文字までエスケープしてくれて困った記憶がある
233 :
232 :2006/08/26(土) 23:48:39 ID:???
ごめん、mysql_real_escape_stringの方の話。 mysql_escape_stringはシラネ
[server ] ・@Nifty [質問] ・AccessLogCgi 自作にあたっての注意事項 (見落としてはならない処理) ($ENV{''} で得たデータを log-file に書き込む所までは成功) ・log-file の permission 設定の留意点 [現状] 当方, どうにか perl を読み取れる程度. local テストは なんとか できますだ. 要するに度胸と勘は人並み以上にあるが, 常識をまったく知らないので危なっかしいこと この上なし ! 先輩方には転ばぬ先の杖に なっていただきたいのら.
>>234 お前はすでに転んでる
ここはPHPスレ
>>234 いや、言語は確かにPerlだけど、やってることは別にPerlじゃないとダメ!って物ではないな。
お前はあれだろ?アクセスログ取りたいんだけど気をつけることって無い?ってのが聞きたいんだよな?
後々のためにもここで一度皆の意見を出しておこう。
じゃあ、まず俺の考えな。
お前のメル欄には殺意を覚える
238 :
nobodyさん :2006/08/27(日) 00:21:57 ID:puW5pOF7
よろしければ、ご回答をお願い致します。 NamazuでPDFファイルを検索し、全文を見る場合はPDFで 概要を見るときは、htmlで見るというふうに選択できるように したい思っています。 そこで、PDFファイルのほうでインデックスが作られているという状態 で、どのようにすれば、検索したときに概要のhtmlも一緒に表示 し、選択できるようになるかヒントをいただきたいのですが。
>>215 >ファイルダウンロードや保存処理などが全く判りません。
俺はURLリストをPHPで作って、収集はwgetにリスト食わせてやってる。
ただWindowsのときはwgetからエラー取るのはちと上手くいってないので、
回線の調子や相手側が混んでてまともに落ちなかった場合の処理が
落とせて保存できたローカルのファイルと比較して云々ということをやってる
ので無駄があるかな。でもPHPでファイルダウンロードさせるのもね...
240 :
236 :2006/08/27(日) 00:28:19 ID:jDhPUedG
>>237 もっ, 申す訳ねぇデスだ.
つい, うっかり...
制限はあるものの, とりあえず perl は使えるようなので...
@Nifty の forum で聞くのがベストなんだろうけど,
まだ参加できないようなので...
(実は今日 入会通知が来て hosting が利用できるようになったばかり)
以後, 気をつけますだぁ〜 !
>>233 >ごめん、mysql_real_escape_stringの方の話。
意味がわからん。
「mysql_real_escape_stringの方」がどうしたの??
>>243 そのアンカーの先が2行あって意味不明だから言ってるんだろうが。
247 :
nobodyさん :2006/08/27(日) 03:31:50 ID:wHycBp2f
非常にくだらない質問なんですがよろしくおねがいします。 なんでもいいのですが、 たとえばinclude()やdefine()やarray()などで、 include("AAA.inc") define("AAA","あいうえお") array("AAA","BBB") といった感じに、""(ダブルクオテーション)をよく使っているのですが、 ここは''(シングル)でも大丈夫ですよね? 普通はどちらを使うのでしょうか? もちろんどっちでもいいのでしょうが、 一般的にはこっちだ!っていうのがありましたらぜひ教えてください。
249 :
nobodyさん :2006/08/27(日) 03:36:17 ID:PJYoudum
251 :
247 :2006/08/27(日) 03:41:27 ID:wHycBp2f
253 :
nobodyさん :2006/08/27(日) 03:46:41 ID:wHycBp2f
>>252 すいません、
>>249 のページを見ても分からなかったので誰かに教えてもらおうかと思い。。
メアドを入力したのに認識されないってのは何故なのでしょうか??
255 :
nobodyさん :2006/08/27(日) 03:53:06 ID:lTJDB2fj
質問があります 例えばデータベースからすべての行をとって多次元配列に入れてあるとして その並び順を、値段順とか、名前順とかにソートしたのですが array_multisortを使って、配列を並び替えるのと データベースからORDER BYを使ってもう一回取得するのとどっちが一般的…というか 負荷が少ないのでしょうか? なんとなく配列並び替える方がいいのかと思い調べてみたら ちょっとめんどくて、列の全データを別の配列に取得しなきゃならないらしくて 意外にデータベースに再アクセスした方が楽だし、負荷も少ないのかな なんて思いました。 お願いいたします。
256 :
nobodyさん :2006/08/27(日) 04:07:50 ID:lTJDB2fj
>>248 >>250 そういえば250は前読んだけど忘れた。
そういう違いがあったんでしたね。「どっちでも良い、同じもの」
くらいに考えてた。勉強になりました。
エスケープ文字や変数のパースとは関係ないけど
今、ふと自分の書いたコード見てて思ったのは
例えば連想配列に文字列をくっつける場合
$_SERVER["SCRIPT_NAME"],".php"
より
$_SERVER['SCRIPT_NAME'],".php"
の方が見やすくないですか?
まあ、どうでもいいけどふと思ったので…
257 :
249 :2006/08/27(日) 04:07:52 ID:???
>>255 並び替える時も結局全件取得のSQL発行すんでしょ?
もしそうならORDER BY句を動的に作るのが一般的だと思う。
セッションに入れてるとかならusort使うかな。
>>256 普通変わらない。なので君が見やすくなるというシングルで括ればいい。
ていうかカンマじゃなくてドットでしょ?そういう見間違いを無くすためにスペースを入れる方が重要だと思う。
もしリテラルの色が変わらないエディタ使ってるなら乗り換え推奨。
259 :
240 :2006/08/27(日) 06:27:36 ID:jDhPUedG
>>254 誘導並びに参考リンクありがとうございまふ.
余談ながら 以前は高嶺の花と思われた nifty が激安で会員募集 (うるうる)
貧乏人の僕たんも やっとこさ CGI そのものをいじれるように成増た.
時代は変わる〜 !!!
もう perl の食わず嫌いなどやってられません.
print "<INPUT type=\"hidden\" name=\"aaa\" value=\"{$hoge[$i][$j]}\">\n"; このとき$hoge[$i][$j]には「hoge"hoge"」みたいな感じで文字列が入ってるんですが、 そのあと$str = {$_POST['aaa'][$k]}などで値を取って来たとき中身が「hoge」に変わってしまいます。 これはどういう記述をすればちゃんとダブルクォーテーションで挟まれた文字列もPOSTで取ってこれるのでしょうか?
>>259 フリーのレン鯖でもCGIは勿論のことPHPも使えるとこあるはずだけど。
すぐ覚えられると思うから機会あったらPHPも触ってみな。
>>260 HTMLレベルでおかしくなってる。<INPUT ... value="hoge"hoge"hoge">
urlencodeを使う。
262 :
259 :2006/08/27(日) 08:10:25 ID:jDhPUedG
>>261 あどばいす ありがとん.
残念ながら local で (かろうじて) 動かせるのが perl と python.
(MacPerl には妙なくせがある !!!)
PHP は MacOS9.x 以前で動くものが なかったような. (良く調べてないけど)
努力以前に OS の縛りが効いて来るのが つらいところなのら.
すべての制限を取り除こうとすると PC 買い替えって話に... (え〜ん)
>>261 うまく動きました!ありがとうございます!
>>262 今Macを使うメリットってあるのか?
印刷屋だってもうwindowsがほとんどだろ。
デザイナーがMacって言うのはそろそろ時代遅れだな
265 :
259 :2006/08/27(日) 08:57:47 ID:jDhPUedG
>>264 >今Macを使うメリットってあるのか?
貧乏なので簡単に乗り換えができないだけの話だぴょん.
メリットは ほとんどないよん.
(drive name を自由に設定できるので windows よりは local チェックで有利.)
んで, server で最も普及してるのが UNIX 系 OS なので
もしも乗り換えることが できるのなら OS-X は かなり魅力的に見える.
(local チェックして そのまま upload して問題が起きなそう)
しかし Apple って DQN 会社だからなぁ〜 !
>>261 urlencode?普通そこはhtmlspecialcharsじゃないか?
>>255 一般的なのはSQL再発行だと思う。
ただし、PHPとDBの負荷の大きさ次第。
この負荷はシステムの作り方次第なので何とも言えない。
大抵の場合は「どっちも問題になるほどの負荷じゃない」から
SQL再発行でDBにソートを任せる、という選択になる。
データの分量や内容にもよるけど、経験則的には
DBを使った方が負荷はやや高い代わり速度が速い。
PHPで処理すると負荷は小さいが速度は遅い。
ただ、ほとんどの場合どっちでも負荷も速度も無視できる程度。
DBの格納データがでかすぎる場合などで、ソートするのに
内部でワークファイルを使うようになる状態だと負荷が高く速度も遅いので、
この場合はPHPで処理した方が高速になることがある。
個人的な主観では、selectの戻りが2秒以上とかかかるくらいじゃなきゃ
PHPでのソートを選択する意味は無いと思ってる。
>>265 貧乏人が最初にMacを買ってる時点で人生設計を間違ってると思う。
>>262 俺はxrea.com使ってるけど、無料でPHPもPerlもDBも使えるよ。
niftyなんて使いにくいだけだからやめといた方がいいと思うんだが。
>>267 > selectの戻りが2秒以上とかかかる
index が使われててこれだけ掛かる場合は、データが大量になってるだろうから
PHP でソートなんて考えないな、普通。
ただ単に seq. scan されてて遅いなら、DB の設計を見直した方が良いかと。
どっちにしても、普通は DB でやるわな。
>>269 xrea は確かに魅力的だけど,
value domain からの手続きが良くわからずに時が過ぎた.
(OCN の利用料が激安だったので多少の出費は問題なしだったのだけど)
>niftyなんて使いにくいだけだからやめといた方がいいと思うんだが。
そういう意見は多いみたいね. (たしかに path 指定が面倒な感じ...)
でも, DIQN -> OCN と乗り継いで来た僕には
CGI 持ち込み OK ってだけで ウキウキわくわくなのだ.
ある程度の実力を付けるまではレンタルサーバー探しをするよりもお手軽 !
local で動かすだけか実際に運用できるか の違いは
やる気に大きな影響を及ぼす物なのさ.
なに急に態度変えてんの?
>>270 格納されてるデータが多すぎてorder by付きselectが遅くなるのと、
fetch後のデータが極端にでかいのとはまた少し違うんで、
条件次第ではPHPの方が速かったりするよ。
でも、fetch後もそれなりにでかいデータじゃないとこうまで遅くならないから、
PHPで処理したところで2秒が0.7秒とかになる程度なんだけどね。
ホント、PHPでソートはDBが使い物にならない状態になったときの
最後の奥の手だと思う。
あるいはDBコネクション数を可能な限り減らしたいときとかくらい?
>>271 貧乏でMacでDIONでOCNでNiftyか。
ヘタレ街道を驀進中だな…
>>271 お前、web制作初心者-JSと渡り歩いてきたnullと呼ばれてた人物だろ?
まだいたのか。懐かしいな。
次はPerlか?まぁ頑張れよ。
276 :
nobodyさん :2006/08/27(日) 10:37:06 ID:ouxlcoeK
質問です PHPでフォームから英文テキストを送信・記録するホムペを作成中なのですが、 文章に \ や ' が含まれていると勝手にバックスラッシュがついたり、なぜか変に なってしまいます。しかも、送信しなおすとバックスラッシュの数が増えたり、もう わけがわかりません。 例) ' ←これを送信するとなぜか \' になる これはどうやって解決すればよいのでしょうか? よろしくお願いします。
>>276 php.iniでマジッククオートの機能をOffに設定する。
解決しました ありがとうございます
>>273-275 構ってくれてありがトン.
すれ違いっぽいので これにて失礼.
最後に...
CGI に取り組むにあったっての
皆さんの最初の取っ掛かりは何だったか お教えいただけません ?
[現在の悩み]
1. 特定の言語そのものを覚えるだけでは上達しそうにない
(定石的な処理がありそう)
2. もしかすると HTTP とか TCP/IP などの理解が必要かも知れない
3. お手本として良いサンプルを見つけるのが大変
(なぜかアレな HTML ソースを吐くものが多く,
ごていねいな comment が処理の本質を見極めるのが大変にしている)
いったい全体どこから手をつけたらいいの ?
280 :
255 :2006/08/27(日) 11:44:42 ID:lTJDB2fj
皆さんレスありがとうございます 今、自分でいろいろ作って勉強中なんですけど DBのデータを大量に用意してないので、どっちをやっても一瞬で 終わっちゃうからよくわからなかったんです。 皆さんのレスから察するによほどでかいDBじゃない限り 負荷は気にすることなさそうですね。 SQL再発行の方が書くコードも短いし DBでソートする仕様でとりあえず作ってみます。
>>279 > CGI に取り組むにあったっての
> 皆さんの最初の取っ掛かりは何だったか お教えいただけません ?
その辺で配布されてる掲示板が使いにくかったから自作した。
> 1. 特定の言語そのものを覚えるだけでは上達しそうにない
ちゃんと基礎からやってればよほど変則的な言語じゃない限り
新しい言語でも1〜2週間あればそこそこ使いこなせるようになるから
特定の言語の勉強を頑張るというのはほとんど無意味。
それができてないってことは基礎がそもそも無いだけ。
> 2. もしかすると HTTP とか TCP/IP などの理解が必要かも知れない
TCP/IPは要らないと思うがHTTPは基礎程度は理解しとかんとダメだろ。
> 3. お手本として良いサンプルを見つけるのが大変
CPANとかPearとかあの辺を参考にした方がいいぞ。
個人でフリー配布のCGI/PHPにまともなのは数えるほどしかない。
>>281 お答えありがとう.
参考にさせていただきます.
すれ違い気味に長居しすぎたのでこれにて.
283 :
204 :2006/08/27(日) 12:34:33 ID:ZAeRdNvV
>>224 超返事が遅くなりましたがありがとうございました!
昨日2,3回答えたが礼の一つもありゃしねぇ。 答える気失せる
俺はいくつか礼をもらってる。 お前の回答が悪いか相手の選択を誤ってるんじゃね?
まともな質問者なら礼のひとつくらいはしてくれている。
礼が欲しくて回答者やるというのもどうかと思うけどな。
>>284 はもう少し気長に構えて1ヶ月くらい続けるか、
それともいっそストレス溜まる前に止めるかした方がいいんじゃね?
>>284 どうもありがとうございました(・∀・)
直後に答が書いてあるのに気が付かない程度のやつも多いしな。
290 :
nobodyさん :2006/08/27(日) 17:46:42 ID:IIRD8PWG
質問したあとに不慮の事故で死んだかもしれんしな。 そいつの事情てもんがあるから必ず礼をすれってのも変だ。
291 :
nobodyさん :2006/08/27(日) 17:48:29 ID:IIRD8PWG
ただし、回答することは無駄では無いはずだ。
そりゃ質問後死んだとか、入院とかどうにもならない事情がない限り、礼をするのが礼儀だろ。 モラルの問題だな…。
自然言語解析してくれる自動検索エンジンとでも思ってるんだよ彼らは
質問者は最低限結果を報告してほしいな。 本当はエスパーかもしれないのに、見た目ただのボケと 区別がつかない回答は、かわいそうだ・・・
たしかに、お礼よりもむしろ経過報告や結果報告が欲しいな。 どちらにせよ質問するだけしといて放置ってのはムカつく。
そういえばWebProg板で質問したこと無いや…
「ありがとう」って言ったら負けかなと思ってる
んじゃもう回答しね
>>297 2ちゃんで質問してる時点で負けということに気付けバカ。
いつも彼女との待ち合わせに間に合うように答えてくれてありがとう(^o^)
301 :
(^ω^) :2006/08/27(日) 22:10:24 ID:???
ツンデレだね
ざっと見た限り、まともな回答にはちゃんとお礼レスがついてる。
俺もそう思う。少なくとも俺はお礼を言われなかったことの方が少ないし。
入力された内容がURLかどうか調べる方法って、↓以外にありませんでしょうか?
if(strstr($url,"
http:// "){
echo"これはURLです。";
}
XML形式のデータをてっとりばやく配列変数にするにはどうするのがいいでしょうか?
preg_match_all('@<[^>]+>([^<])</@', $data, $hairetu);
>>284 お前の回答参考にもならなかったけど、一応礼は言っとくよ
ご苦労さんm9(^Д^)プギャー
308 :
nobodyさん :2006/08/28(月) 03:01:51 ID:miwG/swi
2038年どうなるんだろ。
重みづけによって当選確率が決まるプログラムを作っています。 効率の悪そうなアルゴリズムしか思いつかないのでもっとスマートな方法がないか アイディアかヒントを頂ければ 100の申し込みがあって、それぞれの申し込みには10が初期値で1〜20の重み付けが あります。当選確率は1が一倍で2が二倍…20が20倍です。 DBから各申し込み(内容と重み付けが入っている)をとってくる。 配列か連想配列に入れる。 各申し込みを重み付けの分だけ配列の中に増やす。(ここが効率が悪そう) そして $tousen = array_rand($array, 1); で取り出そうかと… もっと、賢い方法がありそうな気がするのですが、頭のいい方よろしくお願いします。
310 :
309 :2006/08/28(月) 03:03:20 ID:e9kKWeu6
ID表示させるの忘れました。
難しいのぅ。 100程度の入力ならその方法でいいんじゃまいか?最大2000だし。 別な方法でやるなら、重み付けの分だけ当選札を発行して、 そこからrand(1,全当選札の数)で当選番号を決めるのはどうかなぁ
312 :
nobodyさん :2006/08/28(月) 03:41:05 ID:e9kKWeu6
>>311 深夜なのにレスありがとうございます。
> 100程度の入力ならその方法でいいんじゃまいか?最大2000だし。
すみません。
例なので実際には1万の申し込みや、重みも100などいくかも知れないです。
> 別な方法でやるなら、重み付けの分だけ当選札を発行して、
> そこからrand(1,全当選札の数)で当選番号を決めるのはどうかなぁ
ちょっと理解できたかわからないのですが、こうでしょうか?
$query = 'SELECT COUNT(weight) FROM mousikomi_table';
$wight_count = query($query);
$tousen_bangou = rand(1, $weight_count);
当選番号から、どの申し込みが当たりなのかの処理も賢い方法が思いつかないです…
思いついた賢くない方法は、
配列の添え字に重みをかけて、その番号まではその申し込みの持っている当選番号として
次の添え字に行く。そして、当選番号が出てくるまで同じ処理を繰り返す…
うーん、自分ながら頭が悪いアルゴリズム…
313 :
309 :2006/08/28(月) 03:58:22 ID:e9kKWeu6
>>312 軽く間違えたのでもう一度。
$query = 'SELECT SUM(weight) FROM mousikomi_table';
$wight_count = mysql_query($query);
$tousen_bangou = rand(1, $weight_count[0]);
for ($i=0; $i < count($mousikomi); $i++) {
$total_bangou = $tousen_bangou + (1 * $mousikomi['weight']);
if($tousen_bangou <= $total_bangou) { print "当選した申し込みです。"; last;}
}
forで当選番号が見つかるまで探しつづけるあたりが頭悪い感じが…
>>309 その場合、申し込みテーブル1つで抽選の時だけの工夫だったら
どうやっても速くならないんじゃないかな。
>>311 の言ってる方法だと思うけど
当選札テーブルを用意して、申し込みや重みの変動があった都度
当選札を発行して入れておくといいと思う。
>>309 が最初に言ってた方法を抽選の時にまとめてじゃなくて
変化があった時に分散する感じ。
もっと頭いい方法あるのかもだけど俺が思いつくのはそのくらい。
商品を格納する配列を作るんだけど、10万あるんだよね。 連想配列 10万って大丈夫?
ムリ
>>315 自分で試してみれ
<?php
$ar['0']='abc' ;
for($i=0 ; $i<100000 ; $i++){
$ar['index'.$i]="$i" ;
}
?>
俺の環境では大丈夫だった
10万もの連想配列メモリにもつのって… ふつうにDBがよくね?
どこが面白いのかさっぱり
321 :
nobodyさん :2006/08/28(月) 10:07:23 ID:8XzpZNhh
PHPで株のローソク足を表示させてあげることって可能でしょうか?? 矩形をたくさん表示させようと思っております
こないだ質問しにきた人間ですが・・・ 世の中こんな人もまだまだいるんだなぁとちょっとほっとした。 私は配列。
初歩的な質問ですいません。(間違ってプログラム板で質問してしまいました・・) if($Cid==$line[1] or $Cid==$line[2] or $Cid==$line[3] or $Cid==$line[4] or $Cid==$line[5] or $Cid==$line[6] or $Cid==$line[7] or $Cid==$line[8] or................. $Cid==$line[100]) { をなんとか一文ですっきりする方法はないのでしょうか? 例えば if($Cid==$line[1から100]) { のような感じです。
煽ってる奴らもしつこいな
一行ですっきりは無理だけどループ使えば良いじゃん 見た目はすっきりと良くなるよ
>>327 for($i=0 ; $i<100 ; $i++){
if($Cid == $line[$i]){
$flag = "hogehoge";
break;
}
}
つーことね。
in_arrayで考えてたから逆に思いつかなかったw
in_arrayネタいい加減姿慎めよ
330 :
324 :2006/08/28(月) 12:43:55 ID:???
331 :
328 :2006/08/28(月) 12:52:42 ID:???
332 :
309 :2006/08/28(月) 12:55:31 ID:tNKhmn4z
>>314 ID変更になりますが…309です。
仮のテーブルを作って早くなるなら作ろうと思います。
申し込みはフィックスされたら変更されないのですが重みは
何回も抽選するのでそのたびに変更されます。
なので重みを先に計算させるのはむずかしそうです…
なんとか分散する方法を考えてみます。
当選番号から元の申し込みの添字を見つける計算アルゴリズムもいいのが
浮かびそうな気がしてきました
333 :
204 :2006/08/28(月) 13:42:22 ID:Uc4lvqbT
前に質問したものです。 UrlEncode()したURLをhotmailに送るとメール画面ではきちんと表示されてるのに クリックするとエンコード部分が文字化けしています。 やっぱり直りません。orz
>>323 サンクス
できるのか ポスグレと連携させるつもりで勉強してみようかな
>>305 たとえばこんなの
$sxml=simplexml_load_string($xmlstr) ;
$ar=get_object_vars($sxml) ;
>>321 JpGraphを利用することで簡単に表示できる
しかし、リアルタイム(例:Tickデータを受け取ったら即表示)が
できるのかは不明
他の方法があるかもしれない
それは俺も教えて君だ
>>321 あれだ、幅1px、高さ1pxのGIFを用意して、実際表示させる時に
高さと幅を指定しなおせば、グラフに見えるんじゃないかな?
ローソクチャート作るとなると本体とヒゲがあるから単純に1pxのgifだと厳しい・・・ と、思ったが陰陽で色分けて横5pxで真ん中に1px書いたgifなら伸ばすだけでOKか。 高さはCSSで調整すればいけそうだな。
素直にFlashを使ったほうがよさそうだなw
341 :
nobodyさん :2006/08/28(月) 15:55:40 ID:6Eu/aWep
phpでperlのgrepの実装をスマートにやる方法ってある?
>>342 パターンで絞込みたいだけならpreg_grepでいいんだけど、
それ以外の何かフィルタ的な処理をしたい時に使えないんです
>>343 Perlのgrepってパターンしか使ったこと無かったけど、
grep(評価式, 配列)
の評価式ってパターンマッチ以外でもいいのか?
>>344 @array = grep { 〜 } @array;
のブロック渡す方のやつです
>>345 array_filter関数だな。
直接文を入れることは出来ないが、コールバック関数で同様の処理ができる
>>346 array_filterとcreate_functionでいけそうです
どうもっす
>>338 いずれ解るが、5つに分けて3種類のビットマップを配置することになる
349 :
nobodyさん :2006/08/28(月) 19:16:03 ID:Fg0vDOCr
パスの区切り文字を表す定数ってありませんか? Windowsだと /(半角スラッシュ),UNIXだと \(逆スラッシュ) と展開されるような。
文字列を16進数に変換する関数ってありますか?
>>349 DIRECTORY_SEPARATOR
>>349 テストするのが面倒なのでマニュアルの定数のページだけ見て答えるが、
DIRECTORY_SEPARATOR じゃまいか?
>>349 Windowsで/
Unixで¥
に展開はちょっと…。
355 :
nobodyさん :2006/08/28(月) 20:03:27 ID:B31oQAMb
>>347 ねぇ、in_array って何さ? 意地悪しないでいい加減教えろよっ
>>357 こんな短縮形式のURLでもいけるのね
何気に知らなかった
基本的な質問かもしれないんですが、 登録ボタンを押したあとINPUTのTEXTの中の文字列をurlencodeするのってどうやればいいんでしょう? なんか、POSTで文字列を取ってきたら一部漢字が文字化けしちゃうんです。
360 :
305 :2006/08/29(火) 01:35:46 ID:???
>>335 これってPHP5なんですね…。
でも参考になりました。ありがとうございました。
>>359 それはなんだ?表示したら化けちゃうのか?
>>359 マルチバイト系の文字エンコーディング関連の関数を軒並み調べてみろ。
↑またお礼がもらえないとか泣き出すことになるぞ・・・
364 :
359 :2006/08/29(火) 02:08:11 ID:???
何かしらの関数を使うのはわかるんですが、 <input type="text" name="aaa"> <input type="submit" value="OK"> こうなってる奴のOKを押したあと 再度よみこむ前に変換作業などするにはどうしたらいいのか分からなくて。
もっと具体的事象を挙げて貰わないと困る。 どうせ、お前の言ってる文字化けとかいうのは「表\示」とかそんなレベルだろ。
366 :
359 :2006/08/29(火) 03:02:21 ID:???
>>364 のOKを押したあと読み込まれるphpファイルの一番上で<?PHP if($_POST['aaa']){print $_POST['aaa']."<BR>\n";} ?>
をやるとすでに文字化け(?)してるんですよ。
化けるのは
予→?
予定→予定
無→?
無事→無事
無敵→?遵・BR>
こんな感じです。
表示は表\示には化けませんでした。
というか、たぶんそれ以前の問題で
INPUTのtextの値をどうやっていじって変換するのかが分からない状態でして。
>>364 つくづくバカだなお前も。
PHPの勉強をする前に、質問の仕方を勉強しろ。
俺たちはエスパーじゃないから、お前の心の中を読み取ることは出来ない。
ヘッダやHTMLでちゃんと日本語の文字コード指定してるかどうか、だな。 多分、してないんだろう。
header("Content-Type: text/html; charset=EUC-JP"); <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> これは書いてるんですけど他にも指定が必要です?
一度に答えを求めるんじゃなく、まず確認 Winな「メモ帳」で <?php phpinfo(); ?> を呼ばれるファイル名で保存してサーバにアップ 呼ぶファイルを呼び出してsubmitすると下のほうにPOSTされた データが表示されるからどうなってるか確認
371 :
359 :2006/08/29(火) 03:27:18 ID:???
>>359 php.ini の mbstring.encoding_translation や mbstring.http_input、mbstring.http_ouput あたりの設定かもな。
>>372 phpinfoを見ると
mbstring.encoding_translation on on
mbstring.http_input auto auto
mbstring.http_output EUC-JP EUC-JP
mbstring.internal_encoding EUC-JP EUC-JP
になってました。
374 :
nobodyさん :2006/08/29(火) 06:25:04 ID:N+TQF1f0
くそくだらない質問です。 $l = "2ch\nhtml\nxml\nphp\nperl"; explode("\n",$l); $fp = fopen(log.txt , w); while(!feof($fp)){ fputs($fp , $l[$b]); $b++; } fclose($fp); こんな風にしてみたんですが、実行すると、「致命的なエラー」が発生してしまいます。 fputs($fp,$l[$b]); の変がおかしいと思うのですが、原因がわかりません。 どなたか教えてください。、
>>374 >explode("\n",$l);
explodeしたのに変数に入れてなくない?
変数$bに0入れて
> while(!feof($fp)){ このループは読み込む時に使う foreachをexplodeで出来た配列に使うべし
っていうか $l = "2ch\nhtml\nxml\nphp\nperl"; $fp = fopen('log.txt', 'w'); fputs($fp, $l); fclose($fp); でよくね?
>>373 入力文字が短すぎて文字コードの自動判定に失敗している
入力文字コードを変換する必要はまずないので
mbstring.encoding_translation を offにしる
php.iniも.htaccessもいじれないならformの一番最初に判定用のダミーデータを入れる
<input type="hidden" name="autodetect" value="美乳">
381 :
nobodyさん :2006/08/29(火) 10:22:40 ID:N+TQF1f0
こんなどうしようもない質問にみなさんありがとうございます。。
>>375 え。、、私explode関数すごい変な思い違いしてたかもしれないです。
$lを\nで区切ってくれるような関数だった気が・・・
>>376 やってみたんですが・・・
>>377 そうなんですか
すいません無知で><
>>378 確かにそれで良いのですが、最終的にフォームから送信された名前とコメントを結合して云々候みたいな
ことがしたいので、できればexplode関数使いたいのです。
>>381 explodeは確かに区切る関数だが、区切った結果は戻り値で返る。
× explode("\n", $l); // $lは何も変化しない
○ $l = explode("\n", $l); //$lは改行ごとに分割された配列に変わる
>>381 あとちなみに、「致命的エラー」になるのはwhile()の条件のせいだと思う。
それだと絶対に終了できないので永久ループになる。
384 :
nobodyさん :2006/08/29(火) 10:37:17 ID:N+TQF1f0
あ
>>375 さん、ありがとうございます><
解決しました^^
ありがとうございます
385 :
nobodyさん :2006/08/29(火) 10:58:00 ID:N+TQF1f0
データベースは使わずfputsでデータをテキストファイルに書き込みました。 たとえば3行分のデータがあるとして、 1.こぶた 2.ろば 3.ちんぱんぢー ある指定した行を消す場合はどのようにしたらいいのでしょうか?
いらない行以外を抜き出して再度書き込み
>>374 $fp = fopen("log.txt" , "w");
文字列は引用符でくくれ
お前にはerror_reporting(E_ALL);を進める
390 :
nobodyさん :2006/08/29(火) 12:34:04 ID:OWMs78pd
yum install php などでインストールした場合、php を make した時の configure オプションってどうやって調べればいいのでしょうか? とある理由により、PHPをバージョンダウンさせたいのですが、既存のPHPがどのようなconfigureオプションでmakeされたのかがわからないので、どうやって調べたらいいのかなぁ、、、と彷徨っているところです...
391 :
nobodyさん :2006/08/29(火) 12:38:38 ID:K0UosIpn
392 :
390 :2006/08/29(火) 12:52:23 ID:???
>>391 ありがとうございます。"Configure Command" で表示されました。
in_arrayってどんな時に使いますか?
>>393 配列の中に該当のデータがあるか調べたいとき。
in_array(笑) 別に使えない命令じゃないのに避けてしまいそうなオレがいる
<form action="hoge.php"> <input type="checkbox" name="fC[]" value="hoge"> hoge <br> <input type="checkbox" name="fC[]" value="foo"> foo <br> <input type="checkbox" name="fC[]" value="bar"> bar <br> <input type="submit" value="OK"> </form> でfc[]を$_POSTで取得したいのですが、 $a = $_POST[fc[]]では取得できませんでした。 どなたかご教授お願いいたします。
398 :
軟式PHP :2006/08/29(火) 14:34:33 ID:???
>>397 print_r( $_POST );
とすると、どんな形で格納されてるか分かるお。
あれ?「OK」押してpostした時点で$fcの中に入ってなかった?
>>399 おまえそりゃセキュリティホールありまくりの古い設定で動かしてるだろう。
403 :
nobodyさん :2006/08/29(火) 14:55:17 ID:jUXXd5I9
POSTされた値をSQLに格納したいのですがいちいちPOSTをつけるのが面倒くさいので extract($_POST)と展開して行いたいと思っていますがセキュリティ的に見て危ない点とかありますでしょうか??
404 :
397 :2006/08/29(火) 14:56:33 ID:???
すいません、解決しました。ありがとうございます。
405 :
397 :2006/08/29(火) 14:57:31 ID:???
$_POST['fc'] として解決できました。
407 :
397 :2006/08/29(火) 15:16:06 ID:???
397です、先ほど質問したばかりですがお力をお貸しください。 <form action="hoge.php"> <input type="checkbox" name="fC[]" value="0"> hoge <br> <input type="checkbox" name="fC[]" value="1"> foo <br> <input type="checkbox" name="fC[]" value="2"> bar <br> <input type="checkbox" name="fC[]" value="2"> bar <br> <input type="submit" value="OK"> </form> <?php if (isset($_POST['fC[]'])) { $array = file(hoge.txt); $del = $_POST["new_data[]"]; array_splice($del_array,$del]); } ?> チェックしたところのデータを配列から消したいのですが、これだとうまくいきませんでした。 不適切な箇所ございましたらご指摘お願いいたします。
>>407 だから$_POST['fc[]']じゃなく$_POST['fc']だっつの。さっき直したばっかだろお前w
なんでin_array嫌われてんの?
ところでたまに 鏤? な感じの文字化けが出てくることがあるんだけど、どんなときに出るかわかる人います? 途中でUTF8で書いてるphpを呼んでるから出るのかな?
>>409 ちょっと前に、in_array絡みの質問で荒れ気味になったから
>>409 in_arrayってイミわかんねーどう使うんだこれー
みたいなバカが1人いたから。
ワロタ
>>185 × I'm array.
○ in_array()
414 :
397 :2006/08/29(火) 16:13:38 ID:???
失礼しました、POST['fc']でした(汗 修正してみました。 <form action="hoge.php"> <input type="checkbox" name="fC[]" value="0"> hoge <br> <input type="checkbox" name="fC[]" value="1"> foo <br> <input type="checkbox" name="fC[]" value="2"> bar <br> <input type="checkbox" name="fC[]" value="2"> bar <br> <input type="submit" value="OK"> </form> <?php if (isset($_POST['fC'])) { $array = file(hoge.txt); $del = $_POST["new_data"]; array_splice($del_array,$del]); } ?> array_spliceの使い方ま間違えているのでしょうか?原因がわかりません。 ご教授おねがいいたします。何度も長文すみません。
>>414 $_POST['fC'] を isset() 以外で使って無いじゃないか。
$_POST['new_data'], $del_array がどこから来てるかも分からないし。
原因どころか、何がしたいか分からない。
何でもここで訊く前に、しばらく自分で考えた方がいいぞ。
for($i = 0 ; $i < count($_POST['fC']) ; $i++){ if($_POST['fC'][$i] === "") { unset($_POST['fC'][$i]); } }
if($_POST['fC'][0] !== 0) { unset($_POST['fC'][0]); } if($_POST['fC'][1] !== 1) { unset($_POST['fC'][1]); } if($_POST['fC'][2] !== 2) { unset($_POST['fC'][2]); } if($_POST['fC'][3] !== 2) { unset($_POST['fC'][3]); } print_r($_POST['fC']);
>>417 教科書に悪い例で出て来そうなバグが埋め込まれてるな
>>414 なにがしたいのかさっぱり分からん
こうゆう馬鹿はむかついてくる
せめて分かるようにきっちり書け
421 :
397 :2006/08/29(火) 17:56:30 ID:???
もうしわけございませんでした。 やりたいことは、WEBメールにあるような、 チェックボックスにチェックを入れてsubmitボタン押すと チェックされたデータを削除する動作を行いたいです。 データはテキストファイルに一行ずつ格納してあります。 何度も申し訳ございません、ご教授願います。
>>421 いや、まず動かしてから質問しようよってことだと思うのだが・・・
わかりません以前の問題があるから突っ込まれているんだと思うんだけど(;´Д`)
>>421 $_POST['fc']には何が入るんだ?
今一、分からんが数字でとってきてあとはその行を削除すればいいんじゃね?
一行ずつとは?
1つのtextファイルに1行毎に入っているのか、1行のtextファイルがなんこもあるのか?
424 :
397 :2006/08/29(火) 18:11:22 ID:???
<form action="hoge.php"> <input type="checkbox" name="fC[]" value="0"> hoge <br> <input type="checkbox" name="fC[]" value="1"> foo <br> <input type="checkbox" name="fC[]" value="2"> bar <br> <input type="checkbox" name="fC[]" value="2"> bar <br> <input type="submit" value="OK"> </form> <?php if (isset($_POST['fC'])) { $list = file($file_name); $flg = $_POST["fC"]; foreach($list as $line) { $k = 0; if($k != $del_f) { array_splice($list,$k,1) } ++$k; } } ?> 何度もお見苦しくて申し訳ございません。新しくソース書いてみました。 不適切な記述がございましたらご指摘ください。
425 :
397 :2006/08/29(火) 18:16:52 ID:???
>>423 さんありがとうございます。
一つのファイルに1行毎にデータが格納されてます。
何かひっかかる箇所がございましたらご指摘ください。
>>424 > 何かひっかかる箇所
ほぼ全部。
$flgは何?$del_fってどこから来た?$lineは何のために存在するの?
そもそも、そのチェックボックスは複数選択できるよね?だったら、そんなコードで動くわけない。
(まあ、なんとなくやりたいことは伝わったけどw)
foreachするのは $list ではなく $_POST['fC'] のほうが良くね?
>>425 要はtextファイルにある掲示板のログをチェックボックス式で消すって感じだろ
$del_file = $_POST['fc'];
$list = file($file_name);
if(is_numeric($del_file)) {
if($del_file <= $list) {
foreach($del_file as $number) {
unset($list[$number]);
}
}
}
エラーでるかもしらんがうまくアレンジ
428 :
427 :2006/08/29(火) 18:57:58 ID:???
間違えた $count = count($list); foreach($del_file as $number) { if(is_numeric($number)) { if($number<=$count) { 適当にこんな感じにしる
><input type="checkbox" name="fC[]" value="0"> hoge <br> そもそもここからしておかしい気がする今日この頃
472さんのご教授していただきましたソースに配列の任意の箇所を削除する関数付け加えて動作しました。 ありがとうございます。 かれこれ9時間くらいこの問題に向かってようやく解決できました。 本当にありがとうございます。
431 :
nobodyさん :2006/08/29(火) 20:52:51 ID:5eCmr2II
教えてください。 webでリアルタイムモニターの表示のようなものを考えているのですが、 while(1) { print($a); flush(); sleep(1); ー処理ー } として、ブラウザは1秒置きに$aの値が表示されるのですが、 表示が流れていってしまいます。常に最新の値だけを1個表示したい のですがどうすればいいでしょうか?
javascript
ページを最新の状態にするタグを使ってみてはいかがですか
434 :
433 :2006/08/29(火) 21:05:03 ID:???
refreshがつくタグ、とほほさんのページで探してみてください。 的外れでしたらすみません。
>>430 未来レス乙。オレは
>>416 でいいと思うが。というかなぜスルーされてるんだろ。まぁいっか。
ソース見る限りでは配列を扱ってるからこの場合forは使わないほうがいいだろ。 と推測してみる
複数選択できるとして、spliceしたら配列ずれちゃうんだが
<<437 いまさらの発言にワロタw
440 :
431 ID:5eCmr2II :2006/08/29(火) 21:24:18 ID:5eCmr2II
441 :
nobodyさん :2006/08/30(水) 02:30:27 ID:IYdUp6kA
.htmlと.phpの使い分けがわからん 再帰的に読み込んだphpに飛ぼうとすると Access forbidden!ってでるんだけど、どういうこと?
>>441 お前の言っている意味が良く分からん。全然html関係ないんじゃないの?
パーミッションの設定がおかしいだけだろ。
PHPファイルの場合ちゃんと実行権限あるのか?フォームで自分にデータを
渡して処理しようとしてるんじゃないの?
なんだ全部PHPでいいのか。 もっと勉強しまっす。
444 :
nobodyさん :2006/08/30(水) 04:13:36 ID:f9Q+oUlS
$fp = fopen($filePath, "r");で開いたファイルのx行目以降を取得させたいのですがどうしたらいいでしょうか? PHPのバージョンは4.4.2です。サーバーはxreaです。 どうかよろしくお願いします。
固定長の行を扱っている場合以外はいきなり指定行を取得するのは無理 fgetとループを使うとかfileで全行取得してから配列をいじるとか
fgets
447 :
nobodyさん :2006/08/30(水) 05:54:00 ID:r1SUfqGu
ローカルホスト内のWindowsXP+xamppで パーミッションの変更ってどうやってますか?
パーミッチャン
パーミッチャン焼き
Windows NTにも類似のシステムがあるが、 そのシステムはUNIXのものより複雑になっており、 各ファイル/ディレクトリのプロパティにおいて、 それぞれのアクセス権を一覧・変更(権限がある場合のみ)できる。 Windows NT/2000/XPシステムにおけるアクセス権を パーミッションと呼ぶことはあまりない。
PHP歴2日目の林と申します。 ただいま自分のサイトにページャーをつけようと格闘してます。 いまのところ以下のようなとてもスマートとは思えないPHP構文でなんとか 動作はしてますが、これからデータベースの件数がどんどん増えるたびに そのつど20件ごとの構文を付け足していかなければいけないと思うと鬱になりますw ごらんの通り今は20件ごとにいちいち設定してます。 これを件数が何件あろうと適応できるようにするのは可能でしょうか? 先輩方、お知恵をお貸しください。
<?php $Data=$Arr; $P=$_GET["p"]; $url = "../hogehoge.php?id={$id}&p=";// リンクURL if ($P <= 1) $alpha = 1 - $P + 1; for ($i = $P - 1; ($i <= $P + 1 + $alpha) && ($i <= 2); $i++) { if ($i < 1) continue; if ($i - 1 == $P) { $preTag = "<strong>"; $aftTag = "</strong> | "; } else { $preTag = "<a href='".$url.($i - 1)."'>"; $aftTag = "</a> | "; } if (sizeof($Arr) > 20) { // 20件まで $links .= $preTag.$i.$aftTag; } } if ($P <= 1) $alpha = 1 - $P + 1; for ($i = $P - 1; ($i <= $P + 2 + $alpha) && ($i <= 3); $i++) { if ($i < 1) continue; if ($i - 1 == $P) { $preTag = "<strong>"; $aftTag = "</strong> | "; } else { $preTag = "<a href='".$url.($i - 1)."'>"; $aftTag = "</a> | "; } if (sizeof($Arr) > 40) { // 40件まで .............
PEAR::Pager
>>453 おはずかしながらPEARのPAGER、勉強不足で私には導入できませんでした。
>>452 なんじゃこりゃ…よくもこれだけ意味不明なコードを書けるもんだ。
いまいち最終的にどういう結果になればいいのか読めないんで間違ってたらスマソ
<?php
$Data = $Arr;
$MaxPage = intval(count($Arr) / 20);
$P = $_GET["p"];
$url = "../hogehoge.php?id={$id}&p=";// リンクURL
for($i = 0; $i < $MaxPage; $i++) {
if ($i == $P) {
$preTag = "<strong>";
$aftTag = "</strong> | ";
} else {
$preTag = "<a href=\"$url$i\">";
$aftTag = "</a> | ";
}
$links .= $preTag.($i+1).$aftTag;
}
>>455 間違えた。
$MaxPage = intval(count($Arr) / 20);
は
$MaxPage = intval(count($Arr) / 20) + 1;
でよろ。
>>452 どういう動作なのかサッパリわからんが、こういうことだろうか…
$Dataとか$Arrの正体はなんなのかはおろか
「20件ごと」の意味すら読み取れてないので、間違ってるかも
<?php
$P = $_GET["p"];
$range = 10;
foreach($Data as $i){
if( ($i-$P) > $range ) break;
$df = abs($P-$i);
if($df==0){
/* <strong></strong>とかの処理 */
}elseif($df<=$range){
/* <a href=""></a>とかの処理 */
}
}
?>
今、オゲレツ天国というサイトを作っているんですが、動画をアップすることがどうしてもできません。。 というか、ファイルアップ自体、大の苦手です。 どこかいいサイトはないでしょうか?
$loop = count($line); for ($i == 1; $i < $loop; $i++) などとする場合、countの結果はキャッシュされるから for ($i == 0; $i < count($line); $i++) の方がベター とかありますか?
460 :
林 :2006/08/30(水) 13:21:15 ID:???
みなさんありがとうございます。 さっそく試してみます。 >よくもこれだけ意味不明なコードを書けるもんだ。 私にもよくわかってないんです。^^; いろんなソースを足して引いてのトライアンドエラーで なんとか簡単なページャーは使えるようになりましたが、 ソース自体の意味はわかっていません・・・ いただいたヒントを元にまたがんばってみます!
>>460 君、才能ないよ
早く見切りつけて他のことしたほうが良いよ
>>459 むしろキャッシュなんてしないから前者の方がベターだと思う。
前回のcount()から$lineが変化してない、なんてのはcount関数では関知しない。
>>460 無理に自分で作ろうとしないで誰かにお金払って依頼したら?
運営している掲示板に外国からのスパム書き込みが大量に来ます。 コメント欄に全角文字が含まれてないとエラーになるようにしたいんですが if(〜) {&error("半角英数のみの書き込みは禁止です");} 〜の部分を教えてください。 コメントは$commentです。
↑スレ違いですいませんPERLの質問でした。
467 :
林 :2006/08/30(水) 14:28:27 ID:???
>>456 すんなりうまくいきました。ありがとうございます。すごいっすね^^
ただ、$MaxPage = intval(count($Arr) / 20) + 1; の部分で
件数が36件や48件などのように端数が出る場合はなんの問題も
ないのですが、30件とか40件などのイーブンな場合1つ多くページャー
が出てしまいます。これはイーブンように何か構文を足さないといけない
とおもいますが、例えば
$EvenPage = intval(count($Arr) / 20);
if ......
if以下がどのような感じになるか、アドバイスいただけますでしょうか?
試行錯誤して自力で解決してやろうという意地みたいなものはないのかよっw
>>467 んじゃ
$MaxPage = intval((count($Arr) - 1) / 20) + 1;
if($MaxPage < 1) $MaxPage = 1;
とでもしといて。
>>452 > $alpha = 1 - $P + 1;
↑この恐ろしく無意味な式の右辺について、なぜ誰もツッコミを入れないのか・・・??
>>452 よ、他の人も書いてたが、キミは才能というかセンスが無さ過ぎる。
プログラミングのような思考法はキミには全く向いてないようだ。
早めに諦めて別のことに全力を傾けることをオススメする。
>>470 もはやそんな気力も出なかったから。
真面目に読む気も起きないよ…
センスうんぬん言うな 俺も前に言われてちょっと落ち込んだ でも今は元気です
そうだな。
474 :
458 :2006/08/30(水) 15:08:34 ID:???
ファイルアップ関数というか携帯からも動画をアップできるようにしたいんです。 メールで送るのがいいのかもしれませんが良く分からないもので… fsockopenにてメールサーバにアクセスしてデータを取得したのですが画像や動画はどこに格納されていますか??
>>472 教えてあげたほうが親切
言わないでいて、それで食っていこうなんて馬鹿な気をおこして路頭に迷うよりましだろう
ユーザ定義関数で: global $_POST, $_GET, $_SERVER......; とかはやった方がいいの? スーパーグローバル変数はglobalで宣言しなくても使えることは使えるんだけど……
479 :
nobodyさん :2006/08/30(水) 15:29:11 ID:F9+d4VtV
質問させてください 文書として何も残ってないプログラム(=ソフト?)を 後々の為(改変など)に、仕様がどうなっているのかがちゃんと分かるモノにしたいのですが いくらで出来ますか? また、その時に何があれば「仕様が分かるモノ」になるのでしょうか? よろしくお願いします
>>479 いくらってお金?
お金ならそのプログラムの規模によるからなんともいえない
>>474 メール本文の中に文字列変換されて格納されてる。
取り出しには本文分解+バイナリ変換が必要。
>>479 その仕事はかなり糞だ。ほとんどの人がやりたくないだろう。
他人のプログラムを読むのは苦行でしかない。
ましてそこから仕様を上げるなんてほとんど無理。
もちろんプログラムにもよるけど。
作業1日あたり4万くらい出せば、やる人はいると思うよ。
>>484 >他人のプログラムを読むのは苦行でしかない。
つるっぱげるほど同意(つД`)
>>479 コンサル業者に頼んでシステムの分析・解析までをしてもらうことになると思うけどそれなりに高いよ。
相場だといくらくらいになるんだろ…Webサイト1個くらいなら納期1〜2ヶ月で計30万〜150万くらいかなーと思うけど。
作成物は要求定義書、基本設計仕様書、詳細設計仕様書、運用マニュアル、保守マニュアル、運用データ統計表辺りかね?
>>479 俺はそれやらされたからはげちまったんだぞ!(´;ω;`)
自分の書いたプログラムを他人に見せられるほど自信家じゃぁない
なんのこっちゃ
>>476 将来のことなんて誰も分からないだろ。俺らが止めろとか言うことじゃないと思うよ。
センス無いと思ってた奴が将来画期的なシステムを作り出すかもしれないし。
食えないと思ったら自分で気づくだろうし。
493 :
nobodyさん :2006/08/30(水) 16:44:10 ID:35ExyJAh
投票システムを作っているんですが、一人が何票も投票する、いわゆる「二重投票」をされない ようにするにはどうすればよいでしょうか? (そりゃぁ完全にそれを防ぐことは不可能だとは思うけど) データの管理はデータベースを使用しています。 クッキーを使おうか、それとも投票者のIPを記録してみるか悩んでいます。 みなさんはどうしていますか?
494 :
nobodyさん :2006/08/30(水) 16:44:32 ID:F9+d4VtV
>>480 >>484 >>485 >>486 >>487 レスありがとうございます
そのような仕事は、大変なのですね
>>480 さんの言われるとおり規模によるものでしょうから
一概には何とも言えないものであるとは思いますが
それ以前に、
他人の書いたプログラムを見るのは
>>484 さんの仰るように相当な労力が掛かってくるのですね
>>485 さん、
>>487 さん
貴重な体験を聞かせて頂いてありがとうございました
でも、そのようなお仕事をこなされたのですね
尊敬いたします
>>486 さん、詳しく説明して頂いて感謝致します
1つのwebサイトなら納期1〜2ヶ月で計30万〜150万くらいが相場なのですかね?
要求定義書、基本設計仕様書、詳細設計仕様書、運用マニュアル、保守マニュアル、運用データ統計表について
あまり聞きなれないので少しググって見たのですが
運用データ統計表というのは、よく分かりませんでした。これは、どのようなものなのでしょうか?
基本設計仕様書というものと、基本設計書というのはほぼ同じものだということなのでしょうかね?
明確な違いが記述してあるサイトが無く、同じような意味合いで使われているようでしたので
長文失礼致しました
495 :
nobodyさん :2006/08/30(水) 16:48:44 ID:QW9pyzd4
やりたいこと:アップロードした画像を幅400pxに整形したい
コード:
<form method="post" action="./test.php">
テスト用<br />
<input type="file" name="test" id="test" /><br />
<input type="submit" value="送信" />
</form>
<?
if($_POST){
$tmp=$_FILES['test']['tmp_name'];
list($width,$height)=getimagesize($tmp);
$newwidth=400;
$newheight=400*$height/$width;
$newimage = imagecreatetruecolor($newwidth, $newheight);
$oldimage = imagecreatefromjpeg($tmp);
if(imagecopyresampled($newimage, $oldimage, 0, 0, 0, 0, $newwidth, $newheight, $width, $height)){
imagejpeg($newimage,'./test/2-1.jpg');
}else{
echo("複製失敗");
}
}
?>
実行結果:
ファイルをアップロードすると、下記の警告が出た後「複製失敗」が出力されます。
Warning: Division by zero
Warning: imagecreatetruecolor(): Invalid image dimensions
Warning: imagecopyresampled(): supplied argument is not a valid Image resource
参考にしたのは
http://jp2.php.net/manual/ja/function.imagecopyresampled.phpのコードです 。
よろしくお願いします。
Division by zero って0で割るときに出るエラーじゃなかったっけ。 大きさ出すときの計算間違ってない?
498 :
nobodyさん :2006/08/30(水) 17:01:54 ID:GN99dFvP
PHPでメール送信系の関数でメールを送信してしまう前に 指定のアドレスが存在するか調べる関数とかそれに似た効果をもつ 関数ありますか?みなさん何使ってますか。
>>498 正規表現で正しそうなアドレスを受け入れるだけかな。
DNS見に行ってドメインが存在するかどうか確かめるとかあるけど、面倒なんで。
送った後のエラーメールの処理をきちんとやる。
500 :
nobodyさん :2006/08/30(水) 17:35:19 ID:QW9pyzd4
>>496 このコードはテスト用に簡単に組んだものですので。。
1枚2枚ならFireworksで手動で作業しますが、数百枚単位で、しかも自動で
サイズ変更をしたいのです。
具体的には、画像アップロード掲示板のようなもので、サムネイル表示を
したいと思っています。
>>497 division by zero が出るのは、たぶんgetimagesizeのところで$width,$heightが
正常に取得できてないのでは?と自分なりに考えています。$widthが0なら
「0で割り切れません」が出ても当然ですよね…
PHPマニュアルでgetimagesizeの説明を見ると、引数にファイル名を取れる
はずなのに、なぜ????と悩んだ末、こちらに書き込んだ次第です。
>>500 > 正常に取得できてないのでは?と自分なりに考えています
考えても何も解決しない。
なぜ echo $width; をやってみようと思わないのか?
>>500 そこらで転がっているサムネイラーじゃなくて?
検索で結構HITする筈なのだが
504 :
軟式PHP :2006/08/30(水) 17:52:08 ID:???
>>498 スパムの温床になるので、指定したアドレスが存在するかどうかは応答しなくなったサーバーが多くなったので
送信して確かめるしかないね。
お金を払うのでスクリプトを改造して欲しいというのはどこのスレにいけばいいですか?
>>505 それは2ちゃんじゃなくて会社に頼めばいいのでは・・・
507 :
nobodyさん :2006/08/30(水) 18:12:36 ID:QW9pyzd4
>>502 それが、
echo $width;
echo $height;
をスクリプトの途中に入れても、何も出力されないんです。
前後に<br />をつけてみたり、<span></span>をつけてみたりすると、<br />や<span></span>だけ
出力されます。
>>503 スミマセン、見当たりませんでした。
探し方が悪いようなのでもう少し探してみます…
配列にある要素が入っていた場合、 $hogeにその配列を入れるのはどのようなやり方(関数)が最適でしょうか? 例 $hoge = array( '0'=>array('hoge','foo','yahoo'), '1'=>array('foo','gahoo','doon','zoon'), '2'=>array('too','qoo','echo','zoon'), ); こんな配列があったとき、 fooという値がある配列をそっくりそのまま$hoge2へ移したいのですが
それ getimagesize でデータ拾えてないんじゃね? var_dump(getimagesize($tmp)); してみた?
>>507 ググル先生「サムネイル php」にて検索
こんなんじゃなく、もっと高尚な事ならスマン
>>506 そんなに複雑な機能をつけたいのではないので、
2chの識者の方々にお願いできれば、と思ったのです。
>>508 in_array
そしてarray_push
515 :
494 :2006/08/30(水) 18:40:58 ID:F9+d4VtV
あれからずっとググっていたのですが、 UI(ユーザインターフェイス)設計書とはどんなものなのでしょうか?
自クラス内のhoge関数を使用したい場合、 $func = "hoge"; $this->$func(); という記述は問題ないでしょうか?
>>513 相場がよくわからないのですが、実際に見積もりをして頂けたら。
518 :
林 :2006/08/30(水) 19:04:27 ID:???
ページャーすべてうまくいきました。 ありがとうございました^^ ついでに今 全○件中 ○〜○件表示 っていうのもなんとかできました。 昨日PHPのこと知っていろいろと模索しながらやりましたが、 いろいろできるんですね。 もう何冊も読破した人で、これはよかったという本があれば教えてください。 明日、本屋いってきます。 それと、これでメシ食おうなんておもってませんw
519 :
513 :2006/08/30(水) 19:09:30 ID:???
>>517 スクリプト見せてもらわないとなんともいえませんのでメールください。
手間にもよりますが1000円とかではたぶん無理です
520 :
nobodyさん :2006/08/30(水) 19:43:32 ID:nBzkjiOS
PHPでタイマー?のような関数ってありますでしょうか? 例えば、同じ書き込み内容を20時と20時10分にわけて送信すると行った感じです。 最初の送信をして10分立ってからもう一度送信するというような。
今CSVのデータをつかってサイトを構築してるのですが、 これをSQLなどのデータベースに移行するのは難しいのでしょうか? むずかしいのなら業者に頼みますが、個人でもできる程度ならがんばりたいのですが・・・
522 :
軟式PHP :2006/08/30(水) 19:51:19 ID:???
>>520 素直にcron使ったほうがよさそう。
>>521 難しくない。データベースの種類を書いてないのでアドバイスしようがないが
大抵のDBにはインポート機能がついてる。PHPの質問じゃない気がするんだが…。
>>494 >
>>486 さん、詳しく説明して頂いて感謝致します
本職コンサルじゃないんで「多分そんな感じ」程度です。
> 1つのwebサイトなら納期1〜2ヶ月で計30万〜150万くらいが相場なのですかね?
あくまで推測です。コンサル自体の相場と作業分量と人的労力からこんなもん?と計算しただけ。
実際のとこはホントのコンサルに見積もってもらってください。
> 要求定義書、基本設計仕様書、詳細設計仕様書、運用マニュアル、保守マニュアル、運用データ統計表
いずれも「そのもの」の形の書類は無いです。これは大雑把にカテゴリ分けしただけで、
実際はそれぞれが複数の書類によって構成されることになると思います。
例えば基本設計の仕様書については、プログラムやDBテーブルなどの基本仕様書の他、
ページ遷移図、状態遷移図など多数の資料が添付されていないとダメでしょう。
運用データの統計は、1日のアクセス量、ピーク時のアクセス量、回線転送量、
1アクセス毎のCPU負荷、DBの総データ数、クエリー発行数など、実際の運用から
分かっているデータを統計して資料化しないといかんでしょう、ってことです。
アクセス量に関しては要求定義の中にも「当初見積もり」と「将来的な推定値」が
汲まれてなければいけないと思いますが、その上で実際の運用時のデータも必要です。
そこまでちゃんと資料化してないと「改変も考慮したレベルで仕様が把握されている」とは言えないと思います。
ま、通常のコンサルのやってる「システム再構築の前半部分の手順」そのものだと思うので
見積もり予測はそこから算出しています。
524 :
nobodyさん :2006/08/30(水) 19:58:32 ID:1H+VLBSI
>>520 一般的にはcronで定期的にPHPを実行→指定時間なら送信
って作り方をする。
タイマーみたいなマネをするとそのPHPが10分ずっと動きっぱなしになってしまうので大迷惑。
>>515 画面のフォーム形式やボタンと操作方法、画面遷移などについて定義した設計書かと。
>>505 匿名掲示板でどうやってお金のやり取りをするのか興味あるなー
プラチナカードがきくPHP屋さんいますか? youTUBEみたいなのつくって欲しいです。 おいくら?
ここは依頼スレじゃないです
3億円
結果をセットしてあるクエリから決まった行番号から行番号までをPHPで取得したいんですが どうすれば効率がよいですか? 今は$cntと$startと$endを作って for($cnt=0;$date=mysql_fetch_object($hoge);$cnt++){ if($cnt>=$start && $cnt<=$end){・・・・・・・・・ こんな風にやってcntがstartからendまで表示させるようにしてるんですが もっとよさそうな書き方があると思いまして
534 :
nobodyさん :2006/08/30(水) 22:19:41 ID:VJ9Gj9KK
意味不明
535 :
nobodyさん :2006/08/30(水) 22:21:09 ID:1H+VLBSI
>>533 どうせSQLを使うならSQL側で処理する方が良いですよ
検索結果からの順番ならLIMITでも使ってくださいな
行番号の範囲を指定してSELECTすれば良いんじゃないか?
ここはほんとレベル低いな。。。
539 :
nobodyさん :2006/08/30(水) 22:55:46 ID:H9L03cAN
関数の中から、 使ってるローカル変数のリストを取得することはできますか? func(){ $hoge = 1; $fuga = 2; (処理) } 処理を行うと、hogeとfugaを取得するような感じです。
get_defined_varsでアサーリできますた
541 :
nobodyさん :2006/08/30(水) 23:33:30 ID:3wkmyd6L
<?= $_GET['test'] ?> というプログラムで、 test.php?test=%00 と呼び出すと、\0 と表示されるのです。 別の言い方をすると、 <?= urlencode( $_GET['test'] ) ?> というプログラムで、 test.php?test=%00 と呼び出すと、%00 ではなく %5C0 と表示されるのです。 何とかならないでしょうか。
542 :
nobodyさん :2006/08/30(水) 23:37:51 ID:UvEI8vY7
レンタルサーバとかでphpが動作するがセーフモードとして と書かれていますが、本屋さんに売っているphpの入門書どおりのphpのインストールしたやつと 何がちがうんですか?
>>542 特定の関数でファイルのオーナーを見るようになる
>>541 それはそうです。0x00はnull文字ですから¥0 が返されます。
0が欲しいなら test.php?test=%30 で呼び出さないと。
>>535 LIMITでうまくできました
ありがとうございます
546 :
542 :2006/08/30(水) 23:48:07 ID:???
547 :
516 :2006/08/30(水) 23:52:29 ID:???
ぎぶみーあんさー
>>544 >>544 漏れはエスケープされていない\0というバイナリがほすぃのです。
もしくは引数でURLエンコードされた文字列を渡した場合、
展開しないで変数に入れる方法はアルでしょうか?
urldecodeで自前で展開すれば大丈夫なのです。
>>546 ファイル操作しなければ大丈夫です
>>493 IPでいいんじゃないの?
ある一定の短い期間に、同じIPから偶然別々の人が
その投票システムで投票する確率なんてかなり低いと思う。
>>439 クッキーのほうがよさげ。
クッキー食べないブラウザははじくようにして。
Oh, why not?
552 :
516 :2006/08/31(木) 00:06:53 ID:???
自己解決しました。 なんか基本を勘違いしてました。
うちの事務所のPCは、外に出る時のグローバルIPは全部いっしょだ
同一グローバルIPは、同じ地域のケーブルTV接続が丸ごと一緒だったりして難儀なんだよねー。 ただ、クッキーはブラウザでクリアして再投稿を繰り返せるからこれもどうかと思うけどね。 実際によくやられるし、これ。 こういう端末識別って難しいよ…
>>493 いっその事会員制にするって手もあるな。
ユーザID(メルアドでもOK)+パスワードで認証。
これが今のところ確実な方法じゃない?
でも、ユーザ登録の部分を作る手間と登録させるユーザの手間、そして
同じユーザが別のメルアドで登録してきたら防ぎようが無いという諸刃の剣
おまえらレベル ひっく ・・・
>>557 ではレベルの高い解決策を教えてくれたまえ
>>557 大丈夫か? しゃっくりには水をゆっくり飲むといいらしいぞ。
561 :
557 :2006/08/31(木) 02:26:38 ID:???
PHPごときの下級Pではしゃいでる奴まだいんだww
>>560 OperaやFirefoxではボタン一発だよ
多分CとかJavaとかとりあえずワザワザ毎回コンパイラ通さないと実行できない 言語はどんどん廃れていくだろうな。余程の速度を求められるシステム以外では 意味がないだろう。 おっと!インタプリタだってコンパイルしてるじゃんプギャーなんて突っ込みは無しだぜ!
>>557 は下級言語の意味を知らないんだろ。
しょぼいからとかダサイからとかで、
下級言語とかそういうニュアンスじゃないぞ?
簡単に言えば、より人間がより理解しにくい言語を下級言語というんだ。
つまり人間が理解できないような難しい言語ほど下級言語なんだよ。
よく覚えときな。
>>565 上げ足取りのつもりは無いけど、本当は低級じゃないか?
567 :
nobodyさん :2006/08/31(木) 03:00:32 ID:sPSpAFNc
fwriteとfputsの違いがわかりません。 どちらを使っても機能はまったく同じなのでしょうか?
561のアレって下級「プログラム言語」じゃなく下級「プログラマ」なんじゃ・・・・
>>567 マニュアルに「fputs - fwrite()のエイリアス」とあるように、中身は全く一緒。
ありがとうございます。エイリアスとはそういう意味だったんですね。
>>568 後者ならPGといってもらいたいな。
まぁ何が言いたいかよくわからないやつだが、
夏も終わりだし暖かい目で見守ってやろうじゃないの。
「PHPごときの下級プログラマではしゃいでる」? シャッチョサン、ニホンゴヘンデス
>572だとしても、「下級プログラマ」が何を指すのかさっぱりだ。
$カカロット=下級生物; $べジータ=高等生物; $phpぷろぐらま=$カカロット; $C=$ベジータ
質問です。 $a = array("aaa","bbb","ccc"); $a = implode("",$a); echo $a; とやった場合にaaabbbcccと思ったとおりには出てくれるのですが、 これはPHPの正常な機能なのでしょうか? $a = implode("",$a);この行で、$aが自身ではなく、 1つ前の$a = array("aaa","bbb","ccc");を評価しているようですが、 本当にこんなんでいいのだろうか?と思ってしまって・・・ プログラムはPHPが始めてなのですが、これは他の言語でも正常なのでしょうか?
576 :
575 :2006/08/31(木) 05:06:36 ID:???
すみません。日本語がおかしかったですね。 ようするに、曖昧な気がしてならないのですが、 このような使い方は普通にするのでしょうか? 普通は別々の変数に分ける気がするのですが、 前者の$aを使わない予定なら、こういう使い方もありかなと思いまして。
>>574 >$aが自身ではなく、 1つ前の$a を評価しているようですが
当たり前だろ。
変数はなぜ「変数」という名前なのか、よく考えてみたまえ。
ただまあ、配列から配列でない変数にする場合は、
同じ変数名のままだとなんとなく気持ち悪いけどな。
>>577 ちょ…、アンカー間違ってるぞ。カカロット。
>>575 PHPに限らずほとんどのプログラム言語でそういうもの。
$a = 式; の式の部分では1つ前の行までの状態を元に実行が行われ、
その結果が改めて $a = の部分で$aに格納され直すことで内容が更新される。
580 :
575 :2006/08/31(木) 05:48:08 ID:???
>>577 >変数はなぜ「変数」という名前なのか、よく考えてみたまえ。
なるほど。理解できた気がします。
>ただまあ、配列から配列でない変数にする場合は、
>同じ変数名のままだとなんとなく気持ち悪いけどな。
ではこういうケースでは分けることにします。
どうも回答ありがとうございました。
581 :
575 :2006/08/31(木) 05:49:28 ID:???
>>579 >PHPに限らずほとんどのプログラム言語でそういうもの。
これを聞いて安心しました。
PHPは曖昧だとか、よく他の掲示板で見るので、
こういうのがPHPの曖昧なとこかな?と勘違いしていました。
ご丁寧に説明していただきありがとうございます。
582 :
579 :2006/08/31(木) 05:49:39 ID:???
ただ、厳密な他の言語では上の$aと下の$aがデータの形式が違う(この場合は配列とスカラー)ことで 型エラーを起こす場合があるので注意。 PHPでは$aとするだけであらゆるデータ型を格納可能なので、そういった融通のある使い方ができる。
584 :
575 :2006/08/31(木) 06:04:19 ID:???
>>582 >$aと下の$aがデータの形式が違う(この場合は配列とスカラー)ことで
>型エラーを起こす
ということは、将来他の言語も触ることを想定すると、
きっちり分けたほうが良さそうですね。
>>583 >ひょっとして、= を数学的な記号(左辺と右辺が同値)と勘違いしてないんだろうね?
仰る通り、勘違いしていたかもしれまん。
>変数の数を減らすためだけに、流用するのは変だけど。
変数の名前付けが下手で、よく他の変数名と似てしまうため、
悩んだ末に、減らそうと思ってしまいました。
他人にソースを見せるわけではないので、
別にどんな変数名でもいいんですよね…
ちょっと意識しすぎていました。
ということで、他の言語にも融通がきくように、
データ形式が違う場合はこのような使い方をしないように注意したいと思います。
その前にデータの形式を理解していないので、そこから勉強してきます。
ご丁寧にどうもありがとうございました。
PHPから始めてCとかJavaやると型がうぜーと感じてしまう…
でもPHPって型が融通ききすぎて、関数の戻り値で型が変わることがあって面倒だよね。 配列戻りの関数でFALSEとか返されると、いちいち型チェックのコード挟まないと 変なとこで実行時エラーになっちゃうんだよなー。
$a = "ABC"; $a[1] = "D";
>>585 俺も、PHPをちょっといじってからCをさわってみた。
どちらの言語も基本的には似ているので、Cを覚えるのにそんなには時間はかからなかった。
ただ、Cでは変数のデータ型を宣言して使う必要があったため、ちょっと面倒くさく感じた。
PHPでは特にデータ型を宣言する必要はない。
まあこういった曖昧さが万人受けする言語なんだとは思うけど。
あと、Cは毎回コンパイルしないと実行出来ないので、スムーズに開発が出来ないかな(初心者の考え?)。
まあ最終的にはPHPのようなインタプリタ言語だってコンパイルはしているけど、開発者が意識してコンパイラ通す必要が無い
ので、トライ&エラーによる開発が出来ると考えている。
Cで開発するときは大抵の場合、エディタ内蔵の統合開発環境を使うか、 開発用エディタのマクロに一発コンパイル→実行のコマンドを登録して使うんで、 ソース書く→その場でボタン一発でコンパイル即実行→エラーが出たらエディタがその行に自動ジャンプ みたいな感じで、エディタ上で全部完結するんでトライ&エラーに関して特に面倒は感じないよ。
590 :
nobodyさん :2006/08/31(木) 09:12:05 ID:Pu8F0f0K
かれこれ1時間以上悩んでいるのですが、、よろしければアドバイス下さい。
RSS(XML)をPHPにて表示するプログラムを作っています。
<?php
$xml = simplexml_load_file("
http://weather.livedoor.com/forecast/rss/3.xml ");
foreach($xml->channel->item as $item){
echo mb_convert_encoding($item->title, "Shift_JIS","auto")."<br>";
}
?>
上記は、ライブドアの天気予報を表示するもので、これは成功するのですが、
表示出来るXMLファイルと出来ないものがあります。
上記のソースには何が足りないのでしょうか?
PHPプログラマっておまえら m9(^皿^)プギャーーーーー
PHPをCやJAVAやperlと比べてもしょうがないからな・・・ 特性違うし。 入りやすい割りに(サーバーサイドで)できることが結構多い言語ってことでいいじゃん。
こんにちは。 次のようなループ処理の方法で良い方法が思いつかず四苦八苦しております。 $A = array(2,4,6,7,8,10,1,3,5,7,9); //例えば10個の値の入った配列があります asort($A); //値をソートします(キーはバラバラに並びます) for($i=0; $i<5; $i++){next($A); } //任意の回数ポインタを進めます このポインタが進んだ状態でN回、配列をループ処理しようと思います。 foreachが一番スマートに書けるのですがその場合ポインタは自動的に先頭へ戻されてしまいます。 やはりポインタを進めるのではなくarray_pop($A);のように削り取るべきでしょうか。 よろしくお願いします。
何がしたいんだ?
595 :
nobodyさん :2006/08/31(木) 11:13:09 ID:DLfMY9o3
よくわからんがin_search()使えば良いのでは? in_search(int,$A)
array_searchだった-;
PHPプログラマっておまえら レベルひっくぅーーー m9(^皿^)プギャーーーーー
レスありがとうございます
>>594 データベースのソート出力を作っていまいた。
例えば 名前、性別、誕生日 と各項目があって20件ずつの出力という感じです。
その過程で、誕生日でソートとやると誕生日が若い数字順に出力する感じです。
ですが、40件目からの誕生日が若い順の出力の場合どのようにして中間地点からループを始めようか悩んでおりました。
>>595-596 ということはポインタを進めて、
foreachで先頭からループさせてnextした値と同値があれば出力という分岐を作るということでしょうか。
変な質問してすみません。
599 :
nobodyさん :2006/08/31(木) 11:27:04 ID:ED6qIG4m
1. function my_func( $str ) 2. { 3. return echo '<p>' . $str . '</p>'; 4. exit; 5. } 6. 7. my_func('TEST'); とかやると: Parse error: syntax error, unexpected T_STRING [略] on line 7 となります。 パーサトークンがT_STRINGだったので、その行で文法エラーが無いか探してみましたが、どうてみも大丈夫なはずです。 なんで?
returnって()で括らなくてよかったんだっけ?
>>598 PHPでやるよりもDBにやらせた方が簡単だと思うけど
>>601 レスありがとうございます。
それが我ながらそう思うのですが、作成環境にDBが入っておらず(SQLiteも)
なんというかファイルからの読み込みで処理している状況です(効率が悪いのは重々承知です)。
DB環境の構築云々は検討中でしてphpでやる場合としてお願いしますm(_ _)m
>>599 それ出力するだけなら、return とexitがいらない。
604 :
599 :2006/08/31(木) 11:35:37 ID:ED6qIG4m
>>598 データベースのクエリでやらせたほうが簡単かと思うが。
とりあえずORDER とか LIMITを勉強するんだ!
>>600 大丈夫だと思いますが?
あ、それから my_func(1) のように文字列ではなく数値(INT)だとエラーでないや。
ますます謎。。
>>599 リターン以降の文は評価されない。
変数を返すわけではないのでその例だとリターンは不要
606 :
599 :2006/08/31(木) 11:44:40 ID:ED6qIG4m
>>603 ,605
それがこうしても同じエラーなんですよ。
function my_func( $str )
{
return array('hoge' => 'hogehoge', 'foo' => $str);
}
$bar = my_func('TEST');
>>602 先にソートして配列に入れ直してから、20〜39件目(もちろんページによる)をforで出力とか。
609 :
nobodyさん :2006/08/31(木) 11:59:20 ID:AfkjZNVX
正規表現で<body>から</body>まで抜き出す方法はあるのでしょうか。 <body>の書式が<body background="hoge">となっているケースもあるので対応の仕方がわかりません。
610 :
599 :2006/08/31(木) 12:13:34 ID:ED6qIG4m
>>607 詳しく書いちゃうとこんな感じ:
if (! isset($foo)) my_func ('エラーだよん');
↑ここで: Parse error: syntax error, unexpected T_STRING
>>609 まず、そのまんま「<body>から</body>までを抜き出す」正規表現は書けているのかい?
応用はその後だ。まずは自分の考えた正規表現を示せ。
>>610 ---------------------------------
function my_func( $str )
{
return array('hoge' => 'hogehoge', 'foo' => $str);
}
$bar = my_func('TEST');
print_r($bar);
if(!isset($foo))
{
print_r(my_func('エラーだよん'));
}
---------------------------------
でひとまずエラーは出ない
これが動くか単体でテストして味噌
613 :
599 :2006/08/31(木) 12:30:17 ID:ED6qIG4m
>>612 テストしてみたんだけど、文字列をダブルクオーテーションで括るとエラー出ないよ。
die()でも同じ:
die('Error') → Parse error: syntax error, unexpected T_STRING
die("Error") → エラーでない
こんなこと初めて。
何でだろう……、考えられる原因はある?
614 :
609 :2006/08/31(木) 12:31:22 ID:???
>>611 一応やってはみてるんですが・・・
そうだ!
とりあえず<bodyから>まで抜けばいいんだ!
と思って spliti("<body.*>" , $src) ってやったらbody以前までがキレイに抜けました(;´Д`)
>>613 俺もそれ経験してる。
___________________↓文字列が引用符で囲まれてない
$date = date ('Y-m-d);
die ('ふにゃふにゃ') → 当然エラー
俺の場合はこうだった。
エラー行のちょっと前のコードを確認してみ
617 :
599 :2006/08/31(木) 12:38:39 ID:ED6qIG4m
>>616 あ、マジだ・・・
PHPエラー教えてくれてデバックには便利なんだけど、直感的じゃないなぁ。
PHPエディタでも使うか。
本当にありがとうございました。
>>617 要するに
>>612 で書かれてあったように、単体(現象が発生しない最小構成)で
検証スクリプトを試してなかったんだね。
はぁ… くだらね。
619 :
599 :2006/08/31(木) 12:45:32 ID:ED6qIG4m
>>618 そうですね……
私は別にベタ書きというわけではないのですが、単体でテストはしていません。
職業プログラマでもないし、好きなようにコーディングしています。
やっぱり単体でテストしてから、次に全体のテスト……という順番でテスト
すれば効率がよいのかなぁ?
620 :
609 :2006/08/31(木) 12:46:16 ID:???
$body = spliti("<body.*>" , $src); $src2 = str_replace($body[0] , "" , $src); $body = spliti("</html>" , $src2); 1行目で<body>以前を抜いて 2行目で<body>以前を消して 3行目で</body>以下を切り分ける ってやったらできましたが・・・すごいムダのような・・・
>>618 まあ、きっと次からはPHPとかエディタのせいにしないで検証出来るようになるさ
あと質問しておいて人の話聞いて無いよな、最小で絞り込めば自分のミスだってすぐに気付くだろうに・・
>>619 違う。そういう意味じゃない。
>>612 に書かれているコード「だけ」(勿論 <?php ?> とかは必要だけど)を
書いた PHP スクリプトで確認しなかったのか? ってこと。
>>619 > やっぱり単体でテストしてから、次に全体のテスト……という順番でテスト
> すれば効率がよいのかなぁ?
そんなに大層なものじゃなくて、問題が発生したらそこだけ切り出してみればいい。
趣味だろうがなんだろうが自分で発見する手法を確立したほうがいい。
毎回誰かに聞くのもいいが色々無駄が多いでしょ。
>>620 俺も昔はそんな方法使ってた。
そのうち一回の正規表現で抜き出せる方法を覚えていけばいいんじゃね。
>>624 えぇええぇ・・・がんばると答えをもらえないんすかここ(;´Д`)
もっとガンバレ
629 :
609 :2006/08/31(木) 13:29:17 ID:???
>>628 うん、まぁ、そうなんですけどね・・・
自分の求めるものの答えを見ながらリファレンス見て検算した方が覚えが早いから
答えももらっておきたいなぁ・・・という感じなんすけどダメですかね。
プログラミングはリテラシーじゃないから、ダメだと思う
>>629 じゃ、どうぞ。
$pat=<<<__EOB__
<html>
<body>
<b>test</b>
</body>
</html>
__EOB__;
preg_match('/<body[^>]*>\n?(.*)<\/body>/ism', $pat, $matches);
print $matches[1];
抜けなどあるかもしれないけど、適当にどうにかして。
個人的には<body(\s[^>]*)?>
>>632 おぉ、確かに。
変更したら matches の番号ずれるのでご注意を。
すごい引っ張ったなぁ…
ランキングサイトつくりたいのですが、1位 2位 3位 4位 ・・・・・ ってぐあいに呼び出したアイテムに順位の数字を1つずつ増やしていかせるにはどんな関数を 使うのですか?よろしく願います。
>>631-632 ありがとうございます。
>>631 のはbodyタグが改行されてなかったらいくつか持ってかれるのかな・・・?
>>632 のは最初の「>」で判定してるのだろか・・・
うぉー難しい・・・がんばって解読します。
>>637 まずID出せ
で具体的にどんな事をしようとしたときに、どんな問題があるのか教えれ
>>544 じゃ駄目なら理由を教えれ
639 :
637 :2006/08/31(木) 14:39:16 ID:???
>>638 なんでそんなに偉そうなん?
おまえには教えてほしくない。 去れ。
640 :
637 :2006/08/31(木) 14:43:08 ID:KYZ2gKPg
641 :
640 :2006/08/31(木) 14:43:28 ID:???
ID出すのはいいんだけど、あげたくないんですよね。。
642 :
nobodyさん :2006/08/31(木) 14:45:09 ID:XWJf2v55
自前で展開すれ
>>640 なんでそんなに偉そうなん?
おまえには教えない。 去れ。
>>640 test=\%30
とかじゃ駄目なん?
使う用途よるけど
\0
ってプログラム側で認識出来ればいいんでしょ?
percent0にしておいて、置換するとかいくらでもあるのでは
645 :
640 :2006/08/31(木) 15:00:59 ID:???
>>644 %30はアスキーコードの0ですよね?
漏れは\0が欲しいのです。
さっき自己解決できたけど、
なんだかみんなよくわかりもしないのに回答してて腹が立ちます。
>>644 それじゃ駄目だろ。質問の意図を理解出来ていないね。
で、
>>541 なんだけど、手元の環境で試したら \0 になんてならなかったよ。
addslashes がかかってるね。
647 :
635 :2006/08/31(木) 15:04:19 ID:???
ランキングサイトつくりたいのですが、1位 2位 3位 4位 ・・・・・ ってぐあいに呼び出したアイテムに順位の数字を1つずつ増やしていかせるにはどんな関数を 使うのですか?よろしく願います。 この質問あまりにも下らなさ過ぎますか?
>>647 分かりやすく言うとPHPの質問にもなっていない気がします
全然ソースとか書いて無いでしょ?
651 :
640 :2006/08/31(木) 15:10:41 ID:???
>>646 \0になって欲しいのです。%5C0じゃ嫌なのです。
解決方法は addslashed ではありませんでした。
>>645 ?test=\0
なら
magic_quot無しで取得出来るけどそういうことじゃない?
>>651 おいおい。なんで俺に突っかかってるんだよ。
\0 の意味くらい分かってるっての。C で言うところの NULL だろ。
解決方法を書いたわけじゃないぞ。現象を書いただけだ。
>>651 QUERY_STRINGから自分でデコードじゃだめ?
?test=%0 だった やっぱしっかりID出して、終息宣言なり出してくれないと荒れるな・・
ヒント 嵐が混じっています
657 :
494 :2006/08/31(木) 15:14:08 ID:yzWTAKQw
>>523 さん
細かくご説明頂き、大変感謝いたします。
さらにググっていたのですが、どうしても分からなかった為質問させてください。
概要仕様書、機能仕様書、詳細仕様書、UI仕様書、データフロー、etc..
少なくとも、開発するのに必要だと思われるものはどれでしょうか?
UI仕様書とUI設計書の違いを教えて下さい。
>>657 >概要仕様書、機能仕様書、詳細仕様書
これは必要。無いと作れない。
画面遷移とか、それぞれの画面で何をしてるかを書いたものも必要。
上の仕様書のどこかに入れることになると思うけど。
UI仕様書ってWeb(というかPHP)周りではあまり見ないような気がする。
Javaなら分かるけど。
というかいつまでもググってないで、
仕様書について書いた本とか雑誌とかがあるから
そっちを読んだ方が良い。
>>657 PL、SEの視点でいえば仕様書の種類はシステムの規模によります
UI仕様書とUI設計書は内容の深さ次第です
箇条書き+α程度はUI仕様書と認識します
UI設計書になるとUMLなどの俗に言う設計書っぽい図面が肉付けされます
PGの視点でいえば
概要仕様書(要件定義書)しか見ない場合が多いですw
機能仕様(性能要求書)、詳細設計書などはパラパラということもありまs
662 :
635 :2006/08/31(木) 15:33:54 ID:???
$ranking=($i + 1); ............. 第<?=$rank?>位 ○○○ これであっさり解決しました。
664 :
665 :2006/08/31(木) 17:28:50 ID:???
>>663 なにが、 だよな・・・・ だよ
わかってんなら早く教えろや このチンカス野郎が
変なのはスルー ↑相手してる奴も変なのに含むこと
自クラス内のhoge関数を使用したい場合、 $func = "hoge"; $this->$func(); という記述は問題ないでしょうか?
見積もりの出し方を勉強したいのですが、 いろいろ制作サイトを除いても料金がまばらで基準がわかりません。 お仕事をされている方はどのようにして出していらっしゃいますか?
>>667 自分が損しない(&利益が出せる)額にすればいいでしょ。
相場なんてあって無いようなもんだし。
>>667 見積もりはいつも困ります。
開発は人件費なので1円でも受注できるし、
でもできるだけ高い金額で受注したいし。
なので僕はまず相手の予算を聞きますねー。
で、予算もよくわからない場合は、
自分の日給×予定開発日数です。
漏れの場合、日給は37,500円で計算。
>>670 あたりまえっす。
ふんだくれるところからはふんだくった方がいいでしょう。
その分モチベーションも上がり、仕事も丁寧になり、心に余裕が生まれます。
>>671 A:あそこいいぜ。このシステム30万で作ってもらったよ。
B:ちょうどうちもそんなのが欲しかったんだ。よし作ってもらおう
B:見積もりお願いします
671:予算はおいくらでしょう?
B:一応50万ぐらいあります。
671:では50万でいかがでしょうか?
B:30万ぐらいにはなりませんかねえ?
671:は?wwwww無理wwwwwwwww
674 :
671 :2006/08/31(木) 19:14:48 ID:???
>>672 予算が50万なのに30万円に値切るのがわからない。
最初から予算30万円って言うでしょ。
それに同じシステムならこっちとしてはもう開発済みで、
それこコピるだけだから、30万円よりはやすくなる。
ので、別に30万で引き受けても全然うれしい。
予算があるってなら怪しげな「付加価値」を付けて消費するのがあきんどだろう
676 :
635 :2006/08/31(木) 19:58:31 ID:???
664はだれ? ぼくじゃありませんが、、
>1読んでID出しましょう 話はそれからだ
値段が違うとバレた時、後々面倒なことになりそうな気がするな。
>>671 の考えでいいよ
お客の提示額で仕様も変わるんだよ
役所じゃなく企業もシステムの係る予算はあるんだし
箱やアプリも見積もりにいれるのなら
DBをOracleからMySQLに変えるだけで見積もりなんか恐ろしく下がる
プログラムだけなら xステップ*単価 や x人月 で見積もるけど
最後は客の提示額の近似値になっちゃうよん
がんばれ 未来のPM
>>666 問題はない。
フレームワークで$className->$methodName()って感じのはよくある。
ただ、$this->$methodName()ってのは必要になったことがないし、見たこともない。
681 :
671 :2006/08/31(木) 21:07:15 ID:???
>>678 君は着てる服がバーゲンで半額で売っていたら店員に文句を言うのか?
>666 こう書くことも出来る。 $this->{$func}(); こういう記述が気持ち悪いなら、こっちを使うこった。 call_user_func(array($this, 'hoge'), $arg1, $arg2, ...); call_user_func_array(array($this, 'hoge'), array($arg1, $arg2, ...));
683 :
nobodyさん :2006/08/31(木) 22:35:26 ID:3Uwkkdlm
__%%hoge%%__ など __%% %%__の間に挟まれている文字を__%% %%__ごと消す やり方は正規表現になると思うのですがなにか、いい書き方ありませんか?
$f()ってはじめて見た。 $fに関数名をstringで入れとくと呼び出せるのか? たとえば $this-$f='myfunc' ; $this->$f() ; // これで$this->myfunc() が呼び出せる?
ああ
>>666 が言ってるのがそのまんまか、しつれいしました。
なんじゃらホイ
$this->$f='myfunc' ; //もし、こうだったら $this->{$this->$f}() ;//こういうことですね、重ね重ね失礼しました。
688 :
667 :2006/08/31(木) 23:29:45 ID:???
なるほど、とくに相場が決まっているわけではないのですね。 勉強になりました。 自分はフリーターで無職のような者ですけど、週末起業で始めてみて 個人事業へステップアップ、会社を作るとこまでやってみたいです。 いまはまだ知識もなにもありませんがコツコツ積み上げて行きます。 刺激を頂きました。ありがとうございます。
689 :
nobodyさん :2006/08/31(木) 23:43:33 ID:qCySnrpY
EasyPHP+NAVICATで ローカルだと動くのですが オープンにすると404エラーになります どうしてですか?;;
>>680 無理やり利用価値を見出してみた
class A {
public function isHoge();
public function isFoo();
public function isBar();
/**
* いっぱいis何とかが続く
*/
public function __call($func, $arg)
{
if (preg_match('/^isNot(\w+)$/', $func, $matches)) {
$func = 'is' . $matches[1];
return !$this->$func;
}
}
}
691 :
690 :2006/08/31(木) 23:55:57 ID:???
訂正 class A { public function isHoge(); public function isFoo(); public function isBar(); /** * いっぱいis何とかが続く */ public function __call($func, $arg) { if (preg_match('/^isNot(\w+)$/', $func, $matches)) { $func = 'is' . $matches[1]; return !$this->$func(); } } }
>>689 404の意味を考えるかエスパー呼ぶかしろ。
アクセス制限猫手を使用しているのですが、 アップロード、パーミッション変更、管理ページからIPリモートホストの 制限を終了したのですが、肝心のindex.html側にアクセス制限が かかっておらずアクセスできてしまう様子です。 どうすればいいでしょう?
知るかボケ
>>693 htmlならアパッチかサーバかネットワークで制限すべきものなんじゃない?
よってスレ違いのような気が
作者に問い合わせてみたら?
>>688 たぶん、価格設定とかで悩む前に、
そもそもどうやって仕事を受注するかで悩むと思うよ。
>>693 ありゃ制限したいファイル全てにkillhost.phpを仕込むものだろう。
だからindex.htmlでPHPを実行できるようにApacheを設定して
index.html内でkillhost.phpを読み込むだけ。〜終了〜
しかしこのスクリプト。組み込み方については全く説明ないのね… しかもノンサポート表明w 素人お断りってやつかね。ソース見て中身を判断できない人は使うな、って感じ?
今はじめて見たが弄ればなかなかサイト作るのに手間が省けそうだな。 話がやや脱線するけど公開プロクシを防ぐのにBBQを利用させて貰ってるんだけど、 BBQって何気に公開プロクシじゃない普通に焼かれたIPも含まれてるから Niftyとか大手が丸ごとアクセスできなくなっちゃうこともあるんだよねぇ。 BBQに似たシステムで公開プロクシ限定でリスト化されたものをご存知の方 宜しければご伝授頂けますでしょうか。
実行すると予め用意していたファイル類が指定ディレクトリに作成されている という処理はPHPで可能なのでしょうか? ファイル作成については分かるのですが、リファレンスなどを見ても 上の事が出来るのかどうか定かではありません。
>>700 「BBQに似たシステム」というかサービスの名称は"DNSBL"
"DNSBL open proxy"で検索して。
704 :
701 :2006/09/01(金) 07:14:57 ID:???
>>703 ファイルは別のディレクトリにおいてあるとします。
パーミッションやアクセス権限も許可されているとします。
それで、copy関数の件についてそれを利用していたのですが、
あくまでもファイルコピーであって、ディレクトリ丸々というのは
無理ですよね?ディレクトリ内のファイルを読み込んで〜というのは
出来ると思うのですが、疑心安気な為質問しました。
一個ずつコピるしかないのでは。
>>704 おいおい、ディレクトリ丸ごとコピーしたいなんて重要な情報後出しにするなよ。
ディレクトリごとのコピーについてはマニュアルのUser Contributed Notesに書いてあるぞ。
>出来ると思うのですが、疑心安気な為質問しました。
疑心暗鬼な。 できるかどうか知りたいだけなら実際やってみればいいだろ。
707 :
ななし :2006/09/01(金) 09:18:40 ID:0lB7on7p
if(条件A){ページBを表示;} ページBを表示させる関数みたいなのってありませんでしょうか?
意味不明
>>707 HTTP知らなそうな質問キター
PHPの質問じゃないから
こういうの答えるの悩むんだよね
710 :
ななし :2006/09/01(金) 09:27:03 ID:0lB7on7p
条件Aが1だったときに、 ページBを表示させたいんですけど、 適当な関数が分からないんです...
質問の意図がつかめない 普通にページBを表示させるユーザー関数でいいんじゃない
>>707 header('location:xxx.php');
readfile() と言ってみる
>>699 何が言いたいのかよくわからん。
ノンサポート表明のどこがダメなんだ?
ネットに公開=サポート当然
って期待してるのか?
echo じゃね
>>710 あのね。まず、HTTP知らないことが致命的なんだって。
「ページを表示する」なんていうのは、ものすごく曖昧な質問なの。
答えとしては、大きく2種類に分かれるんだけど、
・PHPから、HTTPのリダイレクトさせる。
・PHPから、別のファイルを読み込み出力(ex.echo)する。
という方法があるの。
でもって、そのどちらにするかは、PHPうんぬんの話では
ないってこと。
>>700 >BBQに似たシステムで公開プロクシ限定でリスト化されたもの
気持ちはよくわかるんだけど、多分理想的なのは存在していないと思うよう。
自前でやるとしたら、BBQだけじゃなくて、普通にホワイトリストとかも併用
するのがいいんじゃないかな。大手プロバイダのホスト名をホワイトにしとけば
いいじゃん?
718 :
ななし :2006/09/01(金) 10:18:13 ID:0lB7on7p
>>714 俺もそこがひっかかった。
「しかもノンサポート表明w」などという一文などは
かなりムカついたというか、
>>699 は氏ねばいいのに、と思ったね。
俺も需要の高そうな某自作ソースを公開しようと思ったことあるけど、
こういうバカが少なくないようだから、公開するのは止めといた。
>>716 もしかしたら「include ('B.php');」で済む、ってオチの可能性もあるぜ。
>>718 > こんな感じで作ったんですが、うまく表示されません。どこが悪いのでしょうか?
の「うまく表示されません」とは?
手元の環境ではコードの書かれている通り msn が表示されましたが?
>>718 もうね、1行目の条件判断式からしてガッカリだよ。
よくそれでプログラムの仕事なんかやれるな、お前。
>>718 >うまく表示されません
バカでチンカスな初心者にありがちな質問の仕方だな。
「どのように」うまくいかないのかを具体的に書かないと
こちらはサッパリ分かるわけねぇだろボケカスうんこ野郎!!! ・・・ってことですよ。
ヒント 1.$_POSTは配列 2.=
724 :
ななし :2006/09/01(金) 10:36:07 ID:0lB7on7p
>>720 ブラウザの画面に何も表示されません。
エラーも何も表示されないんです。
>>721 「フォームが空欄だったとき」という意味合いで、もっとうまい条件がありましたらよろしくお願いします。
>>722 すみません。
気をつけます。
if($_POST == "")
>>724 ほんとうにそれだけを書いたスクリプトで何も表示されないんだな?
そのコードより前に何か書いてたりしないよな?
先頭に余計な空行とかないよな?
本当にそれでリダイレクトされないなら、環境が悪い。
確かに条件文は無茶苦茶だけど、プログラムは書かれた通りに動くよ。
意図通りか否かは別として。
727 :
ななし :2006/09/01(金) 10:42:23 ID:0lB7on7p
>>723 、725
ありがとうございます、「==」で表示されました!
>>726 $_POSTが配列だったからでしょうか...
自分の理解が足りないばかりに時間を割いていただいて申し訳ありませんでした...
>>725 真面目な話、
そのコードで動くことに正直おどろいた。
で、質問なんだけどPHPの仕様的にそれはOKなのかな?
Noticeとかも出ないのかな?
念のためだけど、動いてるんだからこれが仕様なんだよ!
という回答は勘弁ね
729 :
728 :2006/09/01(金) 10:57:08 ID:???
あっ、そうか。
>>726 >確かに条件文は無茶苦茶だけど、プログラムは書かれた通りに動くよ。
>意図通りか否かは別として。
本来の意図(笑)どおりにはやっぱ動かないのか?
まぁ、よくよく考えたらそういうコード書かないから、
影響はないんだけど、気になったので。
ということで、長々と書いたけどスルーでいいです(汗
>>728 自己完結されたようだけど、あくまで「式」として間違ってないから
言語仕様的には問題なしでしょう。
731 :
ななし :2006/09/01(金) 11:20:33 ID:0lB7on7p
>>728 ,730
システムと言いますか、「式」以上としての良し悪しは今のところ考えれていません...
これから(色々と勉強しつつ)考えていかなければいけないです。
ちなみに、Noticeとは何のことなのでしょうか。
>>731 自分で調べようとしない子は何をやってもダメなのは定説
よって、何を教えようが伸びもしなければ何も学習もしない
結論:人に頼るのは最終手段と思え
>>731 ちゅーか、条件文を変えただけで動いたって嘘だろ?
条件文が間違えてても、どっちかにはリダイレクトされたはず。
>>714 >>719 違うってw
ドキュメントにもサイトにもプログラムのインストール方法を一切書かないで
しかもサポートなし表明ってすげーなwってことだよ。
普通、インストール方法くらいは書くだろ、プログラマ向けのライブラリならともかく
フリーソフトとして公開するならさ。
同じフリーソフトを公開してる身としてこいつアホか?って思ったんだが、
お前らはそういうの気にならないのか?
レベルひっく 食えない低脳PGに巣窟か ここは? www
737 :
ななし :2006/09/01(金) 12:38:50 ID:0lB7on7p
>>732 、733
すみません、Googleでいくつか調べてみてもチンプンカンプンで、つい聞いてしまいました。
>>734 「==」にするまでは何も表示されませんでした。
ちなみに、新たに質問してもよろしいでしょうか...?
if($_POST['名前']="" || $_POST['アドレス']){
header("Location: ./hoge.html");
exit;
というような文を使うことにしたんですが、
header()で雛形として表示するHTMLページの中に、
警告文として「名前が未記入です」あるいは「アドレスが未記入です」という旨を挿入したいのですが、
何か方法はありますでしょうか?
738 :
ななし :2006/09/01(金) 12:41:28 ID:0lB7on7p
つまり、気持ちとしては if($_POST['名前']="" || $_POST['アドレス']){ if($_POST['名前']=""){「名前が未記入です」をhoge.htmlに挿入する文} if($_POST['アドレス']=""){「アドレスが未記入です」をhoge.htmlに挿入する文} header("Location: ./hoge.html"); exit; という感じです。 何かありましたらご教授ください。
>>737-738 お前は基礎から勉強しないと無理だと思うぞ。
文法も、PHPの能力もなにもわかっちゃいない。
>>738 >>733 特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
特に=の辺り
>>737 すごいね上で==と書いてるのに下のプログラムでは=ですか、どんだけバカなんだよ。
745 :
714 :2006/09/01(金) 13:41:35 ID:???
>>735 >お前らはそういうの気にならないのか?
別にならないよ。
どういう形で公開するのかは本人の自由だし。
使うか使わないか選ぶのも自由でいいじゃん。
ソフトの公開の仕方うんぬん言う前にさ。
>しかしこのスクリプト。組み込み方については全く説明ないのね…
>しかもノンサポート表明w
>素人お断りってやつかね。ソース見て中身を判断できない人は使うな、って感じ?
こういう文章書けば「あぁ、ネットに公開=サポート当然って人なんだな」
と読まれるにきまってるじゃない?
そういうところに気がつかない貴方もある意味素敵ですよ?
という感想なだけです。
ななしさんへ もっと自分で悩んだほうがいいよ。 身に染みてないから = と == の違いに気がつかずに 同じこと失敗してるんだよ。 まず1、2日一人で悩むという忍耐を身につけることが先だな。
747 :
732 :2006/09/01(金) 14:02:18 ID:???
>>737 やっぱり、基礎から勉強し直した方が良いと思うよ。
いってみれば、「どこが判らないか判らないんですけど?」と問われても「どこから説明して良いか判らない」と答える心境だ。
「ここまでやったんだけど、ここから判らない」と質問できるようでないと、いつまで経っても先に進まないよ。
基礎をしっかりと固めよう。
>>738 header("Location: ./hoge.html?error=name");
とかで条件分け。
header("Location: ./hoge.html?error=名前が入力され取らん");
とか
くだらない質問書き込むスレなのに、 くだらない人間が寄ってきて、 初心者をバカにしてる姿がむかつきます。
750 :
ぬぬ :2006/09/01(金) 14:49:32 ID:???
urauraura!!!
>>749 たしかにみんなで何回も言わんでいいよな
でも = と == の違いを勉強しようと思わないのでは上達しないし、助言する気も無くすよ
なので助言する気無いならスルーしる
752 :
nobodyさん :2006/09/01(金) 15:02:55 ID:z1+HDMlP
php5.1.6上陸あげ!
>>749 スレタイの「下らない」は言葉の綾で、実際に質問(回答)している人達はそう思ってないと思う。
質問者は自分の質問が「下らない」と思って質問するのは抵抗があるだろうし、回答者も「下らない質問に回答する」のには抵抗があるだろう。
下らないとは思いつつも、ある程度意義があると考えているから、質問や回答をするんでないかな?
回答したのに、質問が連投じゃあ、「自分が回答した意義がない!」といって怒るのも当然だと思うよ。
同じように、質問者も「下らない質問」と評されれば、良い気分はしないだろう。
あげ
756 :
(^ω^) :2006/09/01(金) 15:32:44 ID:???
「優しい」と「甘い」はイコールではない
そのこころは?
甘いものにはリスクがあります
759 :
ぬぬ :2006/09/01(金) 16:01:17 ID:???
漏れが答えられるものに関しては漏れが答えるよ。 少なくとも漏れは「マニュアル嫁」とか「くだらない質問するな」とかは書かない。 スルーはするけど。
>>749 匿名で気楽に書けるのが、ここというだけではないか?
質問者、回答者伴に匿名だから、結構厳しいことも言われるぞ?
オブラートに包まれていない意見が聞けるのがいいところだろ?
ここに何を求めてるんだ?
バカと言われるリスクを取れないなら、オブラートに包まれた
メーリングリストとか掲示板探せばいいじゃんか
たいたいコテハンで良心君ってなんだそりゃ?
本当に良心あるなら
>>749 のようなこと書くべきじゃないな
ただの荒らしコメントじゃん
って、もしかして俺釣られてる?
>>761 みんなはここに質問の回答を求めてるでしょ?
初心者をバカにしたいなら、そういうスレ立てれば?
鼬害。 さぁ、次の質問者はいねぇがぁ〜
>>760 くだらねぇレス書くな バカタレが。
おまえもう来なくていいよ。勝手に答えたいのなら新たにスレたてろや
>>760 =と==の違いを分かるように教えて下さい!><
文字列の照合について教えてください if ($hoge =='ABC' || $hoge =='DEF' || $hoge =='GHI' || $hoge =='JKL '){ 〜 } のようにある変数の値がいくつかの文字列のうちのどれかと一致していればという処理をしたいのですが 上みたいに一個ずつ書かずにスマートにできる関数or処理方法ありませんでしょうか?
>>761 釣られてるんじゃないかなw
とりあえず=君は間違いを教えてもらったのに、理解していなかったじゃないか。それが明らかに書き込みに反映されてるし(皆が見てこいつ理解してねーよと思わせる)、それすら理解してないのに次の質問したんじゃ、そりゃ反感買うだろ。
>>765 = は代入 == は比較 === は型も含めた比較
769 :
761 :2006/09/01(金) 16:50:14 ID:???
あのね。全ての返信が回答になってたとは思わないが、 8、9割は回答に繋がるヒント絡めた回答になってたと思うぞ? 俺もそれがいいとは言わないけどさ、その1、2割ぐらいは2ch ならありえることとしてだな、リスクとして受け入れるぐらいの 気持ちじゃないと、ここでは質問できんだろ?と言いたいだけよ。 まぁ、あなたが仕切りたいならそうすればいいさね。
>>766 美しくないが、そう書くしかない。
もしくは、switch を使えばましかもしれない。
荒れる原因を作るのでコテはやめてください。 いままでどおりの進行でおねがいします。 あまりひどいようですと運営板で対策してもらいますので。
772 :
(^ω^) :2006/09/01(金) 17:01:59 ID:???
>>766 配列に一旦代入してin_array()
>>772 in_arrayじゃなくてforeachでしょ
I'm array
= は代入 ==, !=, <, >, <=, >= は比較 つまりだ、代入は「=」1文字で、比較は2文字なんだ って覚えれば、= と == の混乱は減るよな?
778 :
(^ω^) :2006/09/01(金) 17:33:47 ID:???
なるほど、< と > は代入か。プゲラ
779 :
777 :2006/09/01(金) 17:37:06 ID:???
逝ってくるorz
<?php $hikkoshi = array( 'くろねこ', 'ぞうさん', 'ありさん', 'ぺりかん', 'ぷろれす', ); if (in_array('ぷろれす', $hikkoshi)) { echo 'ぷろれすでお引越し'; } if (in_array('かにさん', $hikkoshi)) { echo 'かにさんでお引越し'; } ?>
そういう使い方をするならarray_search使った方が良いかも
782 :
780 :2006/09/01(金) 17:48:18 ID:???
あとこんなのとか <?php $hikkoshi = array( 'くろねこ' => 'nya-n', 'ぞうさん' => 'pao-n', 'ありさん' => '.....', 'ぺりかん' => 'kua-toka?', 'ぷろれす' => '123da-!', ); if (isset($hikkoshi['ぷろれす'])) { echo 'ぷろれすで'.$hikkoshi['ぷろれす'].'お引越し'; } if (isset($hikkoshi['かにさん'])) { echo 'かにさんで'.$hikkoshi['かにさん'].'お引越し'; } ?>
>>782 ぷろれすで123da-!お引越し
と表示されますた。
784 :
nobodyさん :2006/09/01(金) 18:05:53 ID:A37JvrK/
$_POST['data'] = "" POSTで送られてきた変数を↑の様に初期化できないのですか? 更新ボタンを押されるとPOST変数にあるデータが使われてしまい二重投稿みたいな事になっています。
>>784 それはフォームから上がってくるデータがあるから二重投稿になるわけで
$_POSTを消してもリロードするとまた値が入ります。クッキーや投稿内容で
判断するしかありませんね。
>>784 処理用ページ作ってリダイレクトじゃだめなん?
787 :
(^ω^) :2006/09/01(金) 18:15:47 ID:???
>>777 そうすると、SQLやBasic系とかでクマったことになるから、慣れて覚えるほうがいい予感。
>>784 書き込みが終わったら別のページにLocationするなり、本文が前と同じならエラーにするなり。
変数は1リクエストで一旦初期化されます。ブラウザが同じ内容をPOSTしている。
php5.1.6とphp5.1.4ってなにがアップデートされたんですか?
>>787 Locationで飛ばしても、ブラウザの「戻るボタン」とかで戻られて
F5押されたりすると結局は二重投稿されちゃうよ。
PHP4.4.3がもっとも安定しているとかいってた著者は何者だったんだろうw
POSTされたページを再読込した時にはブラウザは注意を促すべき、 つー決まり事てか勧告があるので、 大体のブラウザはダイアログを出すなどの処理をしている筈。 「わざと」されてるんじゃないの?
絶対に防ぐ方法はない。ある程度は妥協すべき。
わざとリロードされても大丈夫なように 普通はセッションなり何なりで対策すると思うんだが
ランダムな内容を投稿されるならIPやセッション、1投稿に対する独自キーを発行するとか しないと無理でしょうね。
784はそういうことを聞きたいのか? 誤って二重投稿した時のことを聞いているように見えるが。
PHP 5.1.6は64bitな環境やWindowsで使ってる人以外は不要だろ
798 :
nobodyさん :2006/09/01(金) 20:43:37 ID:AJEbbct5
くだらない質問します。 特定のレコードを引っ張り出して、 その前後一件のレコードを抽出するにはどういうコードを書けばいいでしょうか? 具体的に言うと、 select * from 食べ物テーブル where カテゴリー = 野菜 and id = 50; とかやって、 そのすぐ前とそのすぐ後にくるカテゴリー野菜のレコードを抽出したいです。 idは削除されたりもするので、必ずしも連番ではないです。 よろしくおねがいします。
>>798 面白い質問ですね。
select * from 食べ物テーブル where カテゴリー = 野菜 and id = 50;
select * from 食べ物テーブル where カテゴリー = 野菜 and id < 50 order by id limit 1;
select * from 食べ物テーブル where カテゴリー = 野菜 and id > 50 order by id limit 1;
でどうかしら。
800 :
798 :2006/09/01(金) 20:58:08 ID:AJEbbct5
>799さん 神様!ありがとうございます! クエリの中で不等号使うのなんて初めて見ました。 心から感謝します。
801 :
nobodyさん :2006/09/01(金) 21:01:29 ID:z1+HDMlP
mb_send_mail関数とmail関数って両方ともsmtpないと送ることができないのですか?
>>801 UnixとWindowsで違うが、基本的にSMTP、というかMTAがないと送信できない
>>802 お前かなりレベルが低いな。教える立場じゃないぞw
みんな笑ってんのがわからんのか?w
>>748 Locationは絶対URIなんだが。
>>803 煽るなら高レベルの回答をつけてよこせ。
口だけのニートはこのスレにはいらん。
ひとまずfirefoxも受け付けるな
>>807 受けつけりゃ良いって感覚で(ウェブ)プログラムを作るのは危険。
>>810 未対応クライアントに対して不親切
内部の話にするなら脆弱性を生みやすい
>>807 言い訳が見苦しい。
「正確には〜」とか、典型的な自分の間違いを認められないタイプだね。
「でも〜」とか、全然理由になってないね。
813 :
nobodyさん :2006/09/01(金) 22:25:47 ID:+4PrUNf2
なんでそんなに人の揚げ足取りたがるのかね
間違っていることを間違っていると指摘したのにぐちゃぐちゃ言うから荒れるだけ。
>>811 多くのクライアントでは相対パスも受け付けるし、
相対パスで書いた方が移植性は高まる。
自分が相対パスを使っていることを認識していれば問題はないと思うけど。
ここら辺は宗教論争だから、どうでもいい。
>>815 Docomo端末とか相対パス指定を受け付けないよ。
比較的メジャーな環境で受け付けないものがあるのに問題なし?
>>693 亀だけれど、ありがとう。
組み込み方すらわからない素人です...orz
調べたりしてある程度知識を頭に入れてからまた来ます。。。
ノシ
>>816 そのことを認識していれば問題ないでしょ
>>815 全然宗教論争でも何でもありませんが?
IE で動いたから大丈夫だろうって浅はかさが笑えるんですが。
移植性が高まれば RFC は無視でも良いですか。
これから出てくる IE 7 が RFC に従った実装をしてきたらどうしますか?
IE 7 が悪いんですとか言うんですか?
絶対 URI しか受け付けないブラウザで動かないと文句を言われたら
そのブラウザが悪いって言いますか?
「多くのクライアント」ってどれだけ調べたんですか?
RFC に書かれているものに対して、何が宗教論争ですか?
これ以上何を言っても恥の上塗りですよ
>>818 認識してるから相対は使わないわけですが。つか、君はちゃんと認識してんの?
君が認識してる「相対でも動くクライアントと動かないクライアント」を列挙してみてよ。
ひょっとして君の言う認識って「うちのシステムはIE6でしか動作保障しません」ってこと?
>>821 君がプログラムやHTMLを書くとき、
すべてのクライアントに対して保証しているのか?
漏れはしない。現実的じゃないから。
君はすごいね、尊敬しちゃうよ。
>>823 821じゃないが、少なくともRFCに従ってプログラムを組んでいるなら
動かないクライアントの方に非があることは明白。
そっちにバグ改修をリクエスト出来るね。
>>823 >すべてのクライアントに対して保証しているのか?
RFCやそのた標準規格に対応した状態にする。
そのあと(もしくは同時に)メジャーなクライアントの非標準準拠の動作をサポートする形でいくらかの修正を加える
>>825 相対パスが得られたらスキーマとホストくっつければいいだけだろ。
>>823 最初からわざと仕様という名のバグを仕込むあなたにはかないませんよ〜!
>>823 全てのクライアントでは絶対に動作しないこと、を
最初から保障するのはいかがなものかと。
>>823 お前かなりレベルが低いな。教える立場じゃないぞw
みんな笑ってんのがわからんのか?w
>>823 逆に言うと「すべてのクライアントに対して保証(検証)」出来ないからRFCに従っておくんだが?
>>828 それなら無問題。
だが絶対パスを得る意味は無いぞ?
>>823 うちの会社では携帯サイトを作るときに、現存するアクセス可能なすべての機種で動作チェックするが?
質問スレでこんな話し続けるのは場違いだと思うけど、 ここには初心者も多いと思うので後学のためと思って、 いましばらく聞いてちょんまげ。 まずどうしてIEやFirefoxがRCFに合わせないで相対URIでも受け付けるのか? その方が便利だからさ。 次に、RFCに強制力はない。 最後に、圧倒的なシェアのIEとFirefoxに準拠してない、 R F C の 方 が 非 標 準 だ 。 と思うね。別にIEとFirefoxで動けばいいよ。
837 :
824 :2006/09/01(金) 23:29:40 ID:???
>>833 スキーマの切り替えやホスト部分の取得方法で汎用性が減ると思ったが、
オプションの引数とか付ければいい話だったな。反省している。
後学のためですかw
>>835 > まずどうしてIEやFirefoxがRCFに合わせないで相対URIでも受け付けるのか?
> その方が便利だからさ。
違うね。お前みたいな RFC に従わないプログラムを書くしょぼいプログラマが多かったからだろ。
仕方ないから救済してもらってるんだよ。
>>835 公式な標準であるRFCを勝手に拡張したのであって、RFCの要件は満たしてる
だから最低限RFCの要件をアプリケーション側で満たす必要はあるだろ。
それから各独自拡張に対応するのは何ら問題ではない
>>835 じゃあ何のためにIETFが組織されてるんだ?
なんか自分の非を認めない人がいるな
>>839 テーブルタグが不完全でも補正して表示するとか、IEはその種の救済が多いよね。
相対Locationも一部のサーバで実際に返しちゃってたのがあったのよ。だから対応する。
ブラウザ側は頑張って「幅広い環境で対応するように」作ってくれてるのに
それに甘えて誤った作りを良しとしてんだから始末に終えない罠。
規格は規格として尊ばなきゃいけないけど、
変わる続ける規格に固執してどうすんの?
多くのブラウザで対応してるなら、規格外の動作してもいいじゃん。
それがデファクトスタンダードでしょ?
>>843 そもそもTABLEタグはNetscapeの独自拡張だけどね!
トリップが付いてて良かったと思える瞬間
規格が変わってから対応すればいい、ただそれだけのこと。 デファクトスタンダードに楽したいからという理由で甘えるようじゃ問題外 TABLEが独自拡張だったのは過去の話だろ。
>変わる続ける規格に固執 少なくとも今話している規格は変わり続けていないんだけど。 baka
>>844 はっらいてぇぇぇぇ〜wwwwwwwwww
今夜も笑わせてくれてありがとw
もう7年も前の規格だな。
質問ですが、アマゾンなどのようにクリックした商品を 最近みた商品 2件 ○○○、XXX, その他の関連商品 5件 ・・・・・・ などのようにしたいのですが、PHPで可能でしょうか?
叶
君たちは偉いなあ、律儀で。 僕は楽な方を選ぶね。 ただ僕を攻撃するだけのためにそんなこと言ってるのなら、 すんごくくだらないと思うけどね。
>>852 別にお前の書き方なんざどうだっていいが、ここで答える以上厳密にやれよ
>>850 可能です。
仕事でやってるならどう実装するか考えるのが仕事です。無理なら他の人に任せてください。
趣味でやってるなら気長に勉強しながらがんばって。応援してる。
その中で自分ではどうしても解決できないPHPに関する問題に突き当たったらまた質問してください。
857 :
850 :2006/09/02(土) 00:35:54 ID:???
やはり可能なんですね。 いろいろ調べてみます。
amazonはcookieに保存してるぞ
>>850 クッキーが現実的だろうな〜
もしくは何かの商品にアクセスする度にDBにいくつかレコードを持たせる
って言う手もあるな。
まぁ、会員登録とか必要になるだろうけど。
良心君へ あなたの意見を尊重する方もおり、助かっている方もおります。 ただ、このスレが荒れる原因になるのでこのスレで 回答するときはコテつけるのはやめてください。 二度目の忠告です。
861 :
nobodyさん :2006/09/02(土) 02:40:34 ID:PkweSmHd
超初歩的なことだと思いますが探してみたけど 見つからないのでお願いします print_rとかで配列の中身のぞいたときマニュアルだと Array ( [a] => apple [b] => banana [c] => Array ( [0] => x [1] => y [2] => z ) ) こんな見やすい形で表示されるっぽく解説されてるのですが うちの環境だと、改行なしでひたすら並べて表示されてて 階層が深いと解読に多大な時間を要するのですが… マニュアルみたいに表示される方法はあるのでしょうか? お願いいたします
>>861 表示されてる画面を右クリック→HTMLソースを表示
じゃダメか?
>>861 echo "<pre>";
print_r($var);
echo "</pre>";
864 :
nobodyさん :2006/09/02(土) 02:55:36 ID:PkweSmHd
>>862 >>863 おわ!ソースではちゃんとでてたのか。
それを<pre>タグで囲むと…
しかもprint_rのマニュアルよく見たら<pre>ついてますねOTZ
失礼しました。ありがとうございます^^
865 :
nobodyさん :2006/09/02(土) 03:02:25 ID:rL49M+5z
質問させてください。 Apache2.055 PHP 5.1.5 WinXP Sp2 という環境にて運用しています。 連想配列を任意の順番で配置したいのですが、どうすればよいでしょうか。 $a = array(); $a['one'] = 'val_one'; $a['two'] = 'val_two'; $a['three'] = 'val_three'; $a['fore'] = 'val_fore'; としても $a[0] のkeyに'one'が入ってくれません。 PHPドキュメントを読んで array_push($a, array("one => val_one")); こうすればできるかとも思ったのですが、だめでした。 どうかアドバイス頂けないでしょうか。宜しくお願い致します。 ※特殊なキーソートルールに従って配列順をソートしたいので$a = array('one => val_one', 'two => val_two');のように固定値で設定することはできないのです。
>>865 そこは保障されないんじゃないかな?
連想配列=キー経由でデータアクセス
だから、そもそも順番に意味があるような
データを入れるのは適してないのでは?
$a=array();
$a[] = array('one', 'val_one');
$a[] = array('two', 'val_two');
とかじゃだめなの?
867 :
866 :2006/09/02(土) 03:12:32 ID:???
あ、ごめん。 ※の注記ちゃんと読んでなかったよ。
>>865 ”ソートされたキー”の配列を用意する
あと、どうでもいいけど
× fore
○ four
869 :
866 :2006/09/02(土) 03:25:02 ID:???
PHPドキュメント読んできたー 連想配列でも順番に入るような感じで例がのってましたね。 ちょっとあげあし取りになるかもだけど、 array("one => val_one"); ってダブルクォートの入り方がちがうよ。 あと質問よく読むと >$a = array(); >$a['one'] = 'val_one'; >としても >$a[0] のkeyに'one'が入ってくれません。 最後の行の文章がおかしくない? foreachで$aをまわしたときに、'one'、'two'、...になってほしいってこと?
>>865 最終的に何がしたいのかよく分かんないんだけど、その格納の仕方で順番に配置できてるよ。
格納順に取り出す方法は
foreach($a as $v) {
echo $v;
}
とか
$list = array_values($a);
var_dump($list);
とか
while(list($k, $v) = each($a)) {
echo $v;
}
とかすんの。
$a[0]は「0番目の値」でなく「0というキーで格納した値」なので取り出せなくて当然。
もしも'val_one'を$a['one']と$a[0]の両方でアクセスしたいと言うなら、
$a[0] = 'val_one';
$a['one'] = 'val_one';
みたいにそれぞれ格納しないとダメ。
>>866-870 レス有り難うございます。
値を取り出すときは
foreach ($a as $key => $val) {
print "$key => $tmp <br >\n";
}
のような形で取り出し、$keyに"one" $valに"val_one"が入り
one => val_one
two => val_two
872 :
865 :2006/09/02(土) 03:41:25 ID:???
すみません、書き込み途中でボタンを押してしまいました。
上記の様な順番で出力させたかったのです。
>>870 さんのレスを参考にもう一度やってみます。
fourとダブルクォートの入り方の指摘有り難うございました。
>>865 同じ配列に数値添字の値を加えて後の処理ができるのであれば
$a = array();
$a['one'] = 'val_one';
$a['two'] = 'val_two';
$a['three'] = 'val_three';
$a['fore'] = 'val_fore';
$a = $a + array_values($a);
print_r($a);
という方法もあるかな
>>865 ちょとみっともないけど、こんな感じでも
$a = array();
$a['one'] = 'val_one';
$a['two'] = 'val_two';
$a['three'] = 'val_three';
$a['fore'] = 'val_fore';
$b = array_keys($a);
print_r($b);
for ($i=0;$i<count($a); $i++)
echo $a[$b[$i]]."\n";
配列関連の関数をうまく使えばなにかと便利
何がしたいかわからないけど「特殊なソート」したいなら
コールバック関数が使えるソートが使えそうだけど・・
レベルひっくぅ
getID3()のver1.7.7を使ってMP3のタグを抜き出しているのですが 日本語が文字化けしてしまって、うまく変換できません。 文字化けは?n?l?E?}???C?_?[のようになってしまいます。 どう変換すべきなのか教えてください。
>>876 mb_convert_encoding
UTF-8
879 :
nobodyさん :2006/09/02(土) 13:25:01 ID:DHuAFzD0
PHPでメールを送信するのは簡単なんですが、例えば送信しても送信先が無い場合、大抵エラーメールが返ってきますよね? その返ってきたメールについて処理したいのですが、一体どこに届いてるのかわからず、SMTP エラーメールの処理、等で一応ググったのですが、よくわかりませんでした。 いったい何から調べれば良いのか検討もつきません。メールの基礎から勉強すればわかることなんでしょうか?良ければヒントだけでもお願いします。
>>877-878 ページ自体をUTF-8で構成してるんで
$title = mb_convert_encoding($title,"UTF-8");
で変換してみましたが、文字化けは変わらないです。
>>879 ・"エラーメール"はバウンスメールと呼ばれる
・バウンスメールは送信元もしくはErrors-Toヘッダで指定されたアドレスに送られる
(ただしErrors-Toヘッダは規格になっていないので信頼性は低い)
・バウンスメールに関しての仕様はRFC1891-1894で定められている
これら仕様はDSNと呼ばれるSMTPサービス拡張を定義している
・qmailは独自の仕様(QSBMF)で送信する。
884 :
プリンタ関数 :2006/09/02(土) 13:46:06 ID:w59Qk5ot
[環境] WINDOWS xp IIS V5.1 PHP5.0.4 [内容] プリンタ関数が使いたいが、導入の過程でエラーが起こり困っている。 [過程] プリンタ関数(*1)によると >この PECL 拡張モジュールは、 PHP にバンドルされていません。 とあるのでpecl-5.1.6-Win32.zipをダウンロード(*2)して解凍した。 php_printer.dllが目当てだが、とりあえず全てのファイルを extensionフォルダ(自分の環境ではc:/php/ext)に移した後、 php.iniに extension=php_printer.dll の行を追加して保存し、コンピュータを再起動した。 その後、ブラウザからphpでつくったサイトを開くと エラーボックスが何回か表示した後 Unable to load dynamic library - 指定されたプロシージャが見つかりません。 とブラウザ上に表示。
885 :
プリンタ関数 続き :2006/09/02(土) 13:46:36 ID:w59Qk5ot
886 :
879 :2006/09/02(土) 13:57:58 ID:???
>>883 SPAMがどうたらとかと言われるかと思いましたが、回答ありがとうございます。これらをヒントに勉強してみることにします。
なんとなく
>>881 も自分宛のような気もしますがよくわからず…すみません。自分宛でしたらありがとうございます。調べてみます。
>>886 メルマガとかメーリングリストを作ろうとしたら必要な知識だしな。
888 :
nobodyさん :2006/09/02(土) 13:59:47 ID:DHuAFzD0
下げてしまった。まぁいっか。
>>879 Return-Pathにメールが届くようにする。
そこにメールが届いたらプログラムが起動するようにする
(もしくは、デーモンを動かしてメールが届いたら処理をするようにする)。
起動したプログラム(or デーモン)で、エラーメールを解析。
890 :
879 :2006/09/02(土) 14:19:36 ID:DHuAFzD0
>>887 そうですね。一応処理できる事を知ったので、できることはしといた方が良いのかなと思ったので。
>>889 今のとこだいたいのイメージしか湧かないですが、流れはだいたいわかりました。ありがとうございます。
891 :
nobodyさん :2006/09/02(土) 15:46:05 ID:X9kYxdVI
echoでフォーム内でのaction=$_SERVER[PHP_SELF]>の正しい書き方がわかりません。 echo "<form action=$_SERVER[PHP_SELF]>\n"; echo "<form action=\"$_SERVER[PHP_SELF]\">\n"; 一応、両方とも動くのですが正しい文法としては後者の記述でしょうか? ※メソッドとか抜けてますが、見やすくするために省略しました。
$_SERVER[PHP_SELF] ↑php4以降推奨されない書き方
変数部分を{}で括ってやるんじゃなかったっけ? いずれにしても見難いから俺は結合演算子使ってる。 PHP的に正しい書き方って言ったら埋め込みなんだろーけど
>>891 $_SERVER[PHP_SELF]だとPHP_SELFが未定義の定数として認識される。
未定義の定数は文字列として扱われる。この場合は"PHP_SELF"という文字列。
ただし、これは推奨されておらずNoticeが吐かれる。
また、ダブルクォーテーション内で変数を扱うときは{}でくくる方がよい。
ちなみに俺なら
echo '<form action="', $_SERVER[PHP_SELF], '">', PHP_EOL;
とかく。
まずは変数の書き方を(ry
896 :
894 :2006/09/02(土) 16:38:56 ID:???
コピペしたらシクったorz echo '<form action="', $_SERVER['PHP_SELF'], '">', PHP_EOL;
設計の問題なのですが 403 を適切に吐き 無駄な負荷を軽減しているのですが 当然なのですがカウンタが回りません どの様な処理方法が考えられますでしょうか
釣り来たwww
>>897 403ってHTTPのステータスコードのこと?
だとしてどのようなアクセスに対して403を吐いていて
どのようなアクセスに対してカウンタを回したいの?
htmlとphpプログラムを記述したPHPファイル(hello.php)があります。 その中にhelloというユーザー関数を作成しました。 この関数を、フォームのsubmitボタンを押すと呼び出すようにしたいのですがうまくいきません。 どこをどのように改良したらよろしいのでしょうか? ご教授お願いいたします。 <?php function hello() { print "Hello"; } ?> <form method="post" action="hello.php"> <input type="submit"> </form>
>>900 関数は呼び出さなければ実行されない。
hello.phpに呼び出しを追加しろ。
ごめんなさい 304 Not Modified ね 書き間違えました 更新されていなければ 304 Not Modified 更新されていれば スクリプト実行 これをPHPの動的なページに適用しています。 カウンタはバックグランドではきちんと回っているのですが 304 Not Modified でページが再読み込みされない為 回らないように見えます。
>>903 釣りにしか見えないがブラウザのキャッシュを利用しているのだからサーバー側で
何も処理されない。当然、カウンタが増えるわけがない。
>>882 ID3v1タグって元々はどんなエンコードで入っているんですか?
いろいろやってみましたが、文字化けが直りませんでした。
>>903 単一スクリプトの出力を変化させつつ、304吐いて読み込ませないなんて矛盾したことは不可能
カウンタの部分が更新されることを望むなら
カウンタ表示部分を画像やAjaxで別途呼び出すようにするか
304を吐かないようにするか
負荷軽減と言ってるがそれがPHP実行によるCPU負荷を指してるなら、
304を吐かなくてもスクリプト側で重い処理だけキャッシュすればいい。
転送量の事なら圧縮転送させるだけでも効果が得られるかもしれない
自己解決しました。SJISでした。
>>906 >カウンタ表示部分を画像やAjaxで別途呼び出すようにするか
やはり別ファイルにして呼び出す方法しかないのでしょうかね
色々やって見ます。
スクリプト自体の処理負荷も回線負荷も
重い訳ではないので 304 はずしても問題ないんですがね。
909 :
900 :2006/09/02(土) 17:40:02 ID:???
自己解決しました。 制御文から関数呼び出しました。
パーミッションについて質問です。 htmlファイルは604 phpファイルは705 ログファイルは606 ですべて統一しても大丈夫でしょうか?
912 :
nobodyさん :2006/09/02(土) 18:47:20 ID:X9kYxdVI
exitの多数使用はあまり好ましくないでしょうか?
適切な場所で使う分には問題ないでしょ
なるほど、わかりました。 exitをうまく使ってみますね。
mb_send_mailが失敗した場合のコードの記述がわかりません。 dieを使うのでしょうか?
PHPでPHPできますか?
918 :
nobodyさん :2006/09/02(土) 20:01:33 ID:18r2NV7f
arsortを使うと、同数の要素まで並び替えられてしまいます。 同数の時は元の配列の順番を維持したまま ソートしたいのですが どうすればいいですか?
>>919 そうです
比較対象になる値が同じということです
>>920 uasortでも4.1.0以降は値が等しいときの順番は未定義となっているから、
基本的にはソートアルゴリズムも含めて自作するしかなさげ。
探したら誰かが作ってるかもしれないが。
922 :
nobodyさん :2006/09/02(土) 20:56:55 ID:X9kYxdVI
正規表現でメールアドレスをチェックすることについて伺います。 if (preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$text)) { echo "正しいメールアドレスです"; } else { echo "正しくないメールアドレスです"; } というコードでは一部の携帯アドレスは適応しないそうなのですが、 どんなアドレスなのでしょうか?
>>922 現存するメールアドレスすべてを受け取る正規表現はめちゃくちゃ長かった気がする。
>というコードでは一部の携帯アドレスは適応しないそうなのですが、
j-phone時代の/を許容したアドレスのことかな?
924 :
922 :2006/09/02(土) 21:01:19 ID:???
925 :
922 :2006/09/02(土) 21:05:37 ID:X9kYxdVI
>>923 さんありがとうございます。
j-phoneということはけっこう前ですね。
/を許容したアドレスについては飛ばすことにします。
変数にもうひとつ$がついたものをよくみるのですが、記述ミスでしょうか? $$hoge
可変変数なんて使ったことないんだけど どういう状況で使うの?
そのページを見たならUser Contributed Notesも読めよ
$a = "2ch"; $$a = ".net"; print $a.$$a; 出力結果 2ch.net 可変変数の解釈はこれであってますか?
932 :
931 :2006/09/02(土) 21:23:08 ID:???
間違えた $a = "2ch"; $$a = ".net"; print $a.$2ch; 出力結果 2ch.net
クラスのプロパティに配列のキー名で登録する時とか foreach ($properties as $key => $val) { $this->$key = $val; }
便乗させていただきます。どなたかご教授ねがいます。 foreach($_POST as $k => $v){ if(get_magic_quotes_gpc()){ $v = stripslashe($v); } $v = htmlspecialchars($v); $$k = $v;←このぶぶんがよくわかりません。どんなことをしているのでしょうか? }
937 :
名無し募集中。。。 :2006/09/02(土) 21:37:03 ID:UdtOFEb9
>>934 $_POST['test']
があったら
$test
に内容が入るってこと
938 :
nobodyさん :2006/09/02(土) 21:37:44 ID:kbsAVdsr
$str = str_replace("TND","、",$str); で、文字を置き換えたいのですが、 「、」にならずに、「≠�」となってしまいます。 なぜ文字化けするのでしょうか?
いま・・・ 可 変 変 数 が あ つ い !!
>>938 文字コードがあってないから。php.iniの文字コード関連を見なおす。
$hogehoge = "AUEFEワ8"; となっているとして $hogehogeからAとE以外を削除して、 $hogehoge = "AEE";としたいのですが、 どのようにすればよいのでしょうか?
>>941 preg_replace('/[^AE]/', '', $hoge);
よっしゃ今からタバコ買いに行って来る お前ら何かいる?
cabinをたのむ
JPSをたのむ
わかば頼む
後のことはたのむ
>>947 早まるな。
>>943 ごめん未成年。
つか、タバコって金かかるし、体に悪いし、何か良いことあるの?
>>948 お前は何でプログラミングなんかしてるんだ?
別にプログラミングしなくたって別の仕事で飯は食えるよな?
プログラマになって過労とストレスで寿命をすり減らさなくたって・・・
つまりはそういうことだ。
分かりやすく言うと「ヤニ中毒」って事だ
PEARのコーディング規約読んだのですが、ちょっと書いてなかったので質問します。 1. 関数名 (...) 2. 関数名( ... ) のどっちがいいのかなぁ?
たぶんこれ function getManpo($tinpo) { ????echo 'in'; }
>>952 俺は 関数名(...) だな。そこで空白をあけるイミってそんな感じない。
見やすさの問題だろ? どっちでもいいんじゃない?
設計について相談です。 ▲▼を押すと選択しているデータの表示順番が変更出来る仕組みってありますよね? 例えば ▲▼ 0 あああ ▲▼ 1 いいい ▲▼ 2 ううう という表示だとして、矢印を押して変更する場合、IFで上下の値を取得して +-するという考え方で良いのでしょうか?
フォントにもよるしな
>>952 俺は一時期カッコの内側にスペース入れる主義で、エディタのマクロで入力しやすくしたりもしてた。
めちゃくちゃ見やすいし、ちょっと上級者っぽくて格好良いとすら思っていた。
けど、あまりに少数派なことと、スペースいれなくても別に見づらくないことに気づいてスペース入れない派に戻った。
インデントはタブ?スペース?
誰がなんと言おうとタブ
空白インデントはPEARみたいに配布前提の場合くらいじゃないの? 多人数開発でも自社内のみなら普通はタブだよね。
>>957 元々のデータの持ち方次第だと思うから
それだけだと何とも言えない。
何通りも手法はあると思うけど。
郷に入れば郷に従え PEARの規約に準拠するよう書いている スペース4つ
PEAR≠PHPの郷
967 :
884 :2006/09/03(日) 13:55:28 ID:mAZoIbaR
自己レスです。 PECLのバージョンをPHPとあわせないと dllを読み込んでくれないようです。 新しいほうがいいに決まってるという先入観にやられました。 どうもおさわがせいたしましたー。
キー4回も押してらんないので、タブが圧勝。
>>965 PHPでのメジャーなコーディング規約ってPEARくらいしかないじゃん
>>968 釣りだと信じたいがスペースインデントでスペース分キー叩いてる人はいないぜ
>>969 、
>>970 PHPエディタ使ってるけど、スペースインデントしようと思ったら
任意の幅だけキー叩く必要あるっしょ。
>>972 知らんがな。そういうエディタもあるってこった。
emacs だと TAB キーで指定幅のスペースインデントになるし。
974 :
952 :2006/09/03(日) 18:08:23 ID:???
みなさんありがとうございました。 ようは見やすさの問題なんですね……
>>971 ZFのもだいたいPEARベースの規約だしね
でどっちもスペース4だからまあこれでやっとけば問題ないかみたいな
>>974 見易さもあるだろうけど要はこれと決めて
チーム内で統一できてるかどうかじゃないかねえ
そのための規約だから
977 :
nobodyさん :2006/09/03(日) 18:23:02 ID:sakoO9rv
>>940 やっぱり何か変です
$str = "EFG";
$str = str_replace("EFG","、",$str);
echo $str;
こうすると「、」と出力されるのですが
$str = "EFG";
$str = str_replace("EFG","、",$str);
$str = str_replace("A","あ",$str);
echo $str;
とすると、「」と文字化けしてしまいます。
$str = str_replace("A","あ",$str);
これが、「B」のときや、「C」のときは文字化けせず
「A」のときのみ文字化けしてしまいます。
何がおかしいのでしょうか?
>>977 str_replace は正式にはマルチバイト文字に対応してない
変換されたとしたらたまたま変換されただけ
mb_ereg_replace か preg_replace を使いましょう。
980 :
nobodyさん :2006/09/03(日) 19:00:33 ID:ddg00SBr
一度ブラウザからCGI(PHP)に起動が掛かったらセッションを保持して 3秒インターバルでブラウザに表示データを送る処理を作成しました。 2日間ほど連続で走らせたらブラウザの更新が止まってしまいます。 原因を推測できる方がおられましたら教えてください。 httpdのエラーログ、OSのsyslogに特に異常は見当たりませんでした。 ------------------------ <?php function main() { while(1){ Display(); } } function Display() { //JavaScriptで、location.reload を出力して再表示させています。 } ?> ------------------------ PHP4 apache2.0 Mozilla1.7.12 Linux 2.6.9
>>980 ソースが端折られ過ぎてて判断が出来ない
982 :
nobodyさん :2006/09/03(日) 19:04:26 ID:mAZoIbaR
Windowsサーバでの話なんですが、コマンドプロンプト開いて C:\>notepad なんて打つとメモ張が開きますよね? PHPで <?php EXEC("notepad"); ?> っていうファイル(仮にhoge.php)を開こうとするとブラウザが読み込み中でとまってしまいます。 なんとなく仕様なのかなーとも思うんですが、ブラウザからメモ帳を開くようなことはできないでしょうか? 環境ですが、 (1) IIS + php5 (2) apache + php4 の両環境で試しても同じ結果でした。 よろしくお願いしますm(_ _)m
>>980 max_execution_timeで止まってんじゃねえの?
てかOSとかhttpdのログよりphpのエラーログ取れよ
984 :
nobodyさん :2006/09/03(日) 19:08:49 ID:sakoO9rv
>>979 ありがとうございます。
mb_ereg_replaceで解決しました。
ですが、サーバーに上げると文字化けが直っていません・・・
これは文字コードが関係するのでしょうか?
>>982 「サーバ側」で起動した notepad が終了するのを待っているからでしょ。
ブラウザからどこの notepad を起動したいの?
>>982 それはサーバー側でnotepadを実行して止まっているだけであってクライアントでnotepadが
勝手に起動したらこわいわw
987 :
982 :2006/09/03(日) 19:13:55 ID:mAZoIbaR
サーバ側のモニタ(というかマシンは1つしかない)で見てますが、 これって画面には表示されてないだけでメモ帳は開いているんですか?
>>987 今試したらプロセスには上がっていたぞ
ctrl + Alt + delet で確認な
っていうか上がるのか・・
>>987 start を使うか WSH(COM) を使うかしないと駄目かもね。
990 :
982 :2006/09/03(日) 19:20:06 ID:mAZoIbaR
自己レスです。 タスクマネージャ開いてプロセス見てみたら、確かに起動してました。 でも、画面には表示されないんですね。 では別の質問になりますが、クライアント側のメモ帳を開くなんてことはできないんですか? 勝手に起動したらこわい・・・んですか??(ごめんなさい、無知で)
>>990 普通に考えてみ、勝手にプログラム立ち上げれるという事はHDDの全てのデータも消す事も
できるって事だぞ。
992 :
982 :2006/09/03(日) 19:23:48 ID:mAZoIbaR
あわわわ、確かにそうですよね。ちょっと考えてみればわかることでした。(苦笑) ご回答してくださったみなさまありがとうございましたm(_ _)m
それができればブラウザでアクセスしただけで おまえのコンピュータの秘密のエロ画像 開くことだってできちゃうぜ!
preg_match('/無修正/')
ttp://co.hakenjob.com/ (派遣のHP)
上記のHPがあるんですがフレームページみたいな作り方してるんですが
よくみるとphp?page=で作成されてます。
こういった方法をなんというのでしょうか?
HTMLならフレームページっていうはずなんですけど。
このようなHPをPHPで作ってるのを解説してるサイトなどありましたら
教えて下さい。
上記の方法がなんという手法か全くわからないので検索もうまくかけれません。
このちらに居る方ならわかると思い質問してみました m(_ _"m)ペコリ
>>995 単に左にメニューっぽいの常に表示してるだけじゃない?
HTML読めるんならそのまんまPHPで再現するだけだよ。
何か勘違いしている。
フレームは使って無いでしょこれ
手法も何もこれ以上ないくらいシンプルな普通の作り
半角英数字のみTRUEにするにはどうすればいいですか?
>>996-997 ありがとうございます m(_ _"m)ペコリ
便利ですね。メニューを表示させるやり方。
参考になるサイトってどこかないでしょうか
phpでかかれてるサイトをみてもphpのソースが表示されてなくて;;
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。