【PHP】下らねぇ質問はここに書き込みやがれ 38
1 :
nobodyさん :
2007/02/04(日) 01:39:37 ID:GkKQRo3Q PHPに関する質問用スレです。ここならお前の下らない質問に回答があるかも知れません。
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 37
http://pc10.2ch.net/test/read.cgi/php/1169644229/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
http://pc10.2ch.net/php/subback.html ・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
http://pc10.2ch.net/db/subback.html ・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
2 :
nobodyさん :2007/02/04(日) 01:41:52 ID:GkKQRo3Q
3 :
nobodyさん :2007/02/04(日) 01:42:31 ID:GkKQRo3Q
4 :
nobodyさん :2007/02/04(日) 01:43:23 ID:GkKQRo3Q
【簡易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プログラムとして実行された結果になる。
5 :
nobodyさん :2007/02/04(日) 01:44:32 ID:GkKQRo3Q
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ってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 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に保存?
→ 好きにしてください
鬱カレー
Googleはどうやってスクリプト解析してるんですかね やっぱり正規表現使いまくりんぐ?
9 :
nobodyさん :2007/02/04(日) 02:03:33 ID:GkKQRo3Q
ちょっと抜けた気もするけど気にせず再質問。 外部のHTMLファイルからタイトルの内容を取得してくれるようなライブラリはありますか? ほかにも文字コードとかも。 できれば、ヘッダ全部手に入るとうれしいです。 自前でパターンマッチしていくしかないのでしょうか。
11 :
nobodyさん :2007/02/04(日) 03:05:12 ID:GkKQRo3Q
>>10 なんか使い方がめんどくさそうですね。。。
perlでいうHTML::TagParser見たいな使い方のはないのかなぁ。
HTML解析関数ほしいな
13 :
nobodyさん :2007/02/04(日) 03:21:49 ID:I8uLxo4Q
自作関数を上書きすることは出来ますか? function hoge(){ if (A) 処理 else hoge = null } みたいにしたいのです
>>13 自分自身をnullにするってできるんだっけ?
hogeに渡る前に判断すべきなのでは?
if( A ){ hoge() } else {}
Javascriptでは出来るので出来るかなぁと・・ 先に判断したり変数使ったりすることで解決は出来ました ありがとうございました
>>8 Googleに入社して社員にならないと分からない
あそこの技術者はやばすぎる
17 :
nobodyさん :2007/02/04(日) 10:50:23 ID:pMMqud54
classの利用方法が良くわかりません。 本家サイトや解説しているところを見てどんな風に動くのかはわかりました。 実際どのように使うのかサンプルスクリプトがあるサイトはないでしょうか?
>>8 ちょっと前に日本語の自然言語処理できる技術者を積極的に募集してたっぽいから、検索精度の向上etcにまだまだ余念がないみたいね>Google
たぶん検索アルゴリズムは、根本的な部分は一般的なテキストマッチングだろうけど、類義語だのキーワードの順序だのも含めてAI的な要素も盛りだくさんだろうから、素人の手に負えるものじゃないと思う。
完全にスレ違いだった、スマソorz
>>17 その前に
オブジェクト指向 オブジェクト
について学ぶと吉
ごめん 2つめは「オブジェクト設計」ね
>>13 PHPでは、実行単位の中で一度定義された関数は、再定義・消去・オーバーロードすることはできない。
22 :
nobodyさん :2007/02/04(日) 11:13:54 ID:pMMqud54
23 :
nobodyさん :2007/02/04(日) 11:31:00 ID:DXIA/uDc
あいうえお かきくけこ さしすせそ たちつての なにぬねの : : : てな感じの文字列から、 たとえば3行目の「さしすせそ」など、 任意のn行目だけを抽出する方法、教えて下さい。
24 :
nobodyさん :2007/02/04(日) 11:41:17 ID:tkfMC0Hx
,__ ,ィ//´ ,ヾ く, { i{リノノ))i} __ 下らねぇ質問は iメゝ゚ ー゚ノリ} _r‐v/´ ここに書き込みやがれ ノ,, ァj}卯v´ゞ'ー ' こんちくしょーっ! {彡ソヽ_/ゝ,ミi ゙'=く / __ ,ノ〉'
>>23 正規表現とか
preg_match('/^(?:.*\n){2}(.*)/', $str, $match);
echo $match[1];
改行でスプリットとか
$lines = split("\n",$str);
echo $lines[2];
>>23 $a = explode("\n", $string);
echo $a[2];
$str = 文字列; $line = explode("\n", $str); $i = 任意の行; echo $line[$i];
28 :
nobodyさん :2007/02/04(日) 12:04:28 ID:DXIA/uDc
29 :
nobodyさん :2007/02/04(日) 13:01:31 ID:DXIA/uDc
たびたび、すみません。
<?php
$filename = "data.inc";
$fd = fopen($filename);
$str = $fd;
$line = explode("\n", $str);
$i = 3;
echo $line[$i];
fclose($fd);
?>
>>27 のを、こんな感じで使ってみたんですが、
何にも表示されず(エラーメッセージも出ない)・・・。
どこで間違ってるのか分からず、
恥ずかしながら、もうワンポイントアドバイスいただけると幸いです。
31 :
nobodyさん :2007/02/04(日) 13:07:48 ID:h26mE+qA
>>29 <?php
$filename = "data.inc";
$file = file($filename);
echo $file[2];
?>
一番上が0行目と数える
ちったぁ入門本でも読んでから来い って言わないお前が素敵
くだ質だからな
34 :
nobodyさん :2007/02/04(日) 13:23:43 ID:DXIA/uDc
>>31 さんのソースでバッチリいけました。
>>30 >>32 なにぶんにも、php使い始めたばかりでして、、、
さらなる勉強にはげみたいと思います。
ありがとうございます。
>>34 使い始めたばかりの時こそ公式マニュアルや入門本を読むべし
36 :
nobodyさん :2007/02/04(日) 15:20:25 ID:ZL1jpKki
サーバーにアップロードされたファイルを、 別のサーバーにPOSTさせたいです。 phpでやるにはどうすればいいですか?
そんなアバウトな質問に答えられるかアホが! 質問するなら環境なり色々詳細を書けや。
ファイルからxバイト〜yバイトまで読み込んで$fileに格納したいのですが、どのような方法がありますでしょうか? また、ファイルは絶対パスの場合もあります
無理じゃね? rarで分割圧縮してうpすればおk
>>38 $offsetが位置、$countが取り出すサイズ
151〜200byte取り出す場合は
$offset=151;
$count=200-$offset+1;
$fp = fopen($this->filepath, 'rb');
fseek($fp, $offset);
$file = fread($fp, $count);
fclose($fp);
$this->filepathは無視してww
GIFアニメと普通のGIFを合成させてみたのですが、 GIFアイメが動いてくれません 何か特殊な方法じゃないと動かないのでしょうか?
はじめて、クラスを積極的に使用しての phpスクリプト作成にいたっているのですが、 クラスでの引数使用の方法に大きな疑問があります。 例えば、ファイル処理を行うクラスの場合、 書籍などに書いてある主な方法は、 class doFile { function doFile($file_name) { ..... } } のようにコンストラクタで引数を渡して 処理していく、という流れかと思います。 これに対して、現在自分が作っているのは、 コンストラクタを使用せずに、メソッドで初めて 処理対象の$file_nameを引数に用いています。 通常?の方法は 1つのファイルに対して複数の処理を加える際は便利な一方、 複数のファイルを処理する場合は、その分オブジェクトの作成が必要となります。 自分の方法は、 複数のファイル処理の場合も1つのオブジェクトの作成ですみます。 ウェブなどでも目にするのは前者の方法なんですが、 私のような使い方はおかしいでしょうか? 問題点などがあったらご教授お願いします。m(_ _)m
>>44 1つのファイルで済むからそうするんじゃなくて、複数のファイルでも開発効率が向上するからクラスを用いる。
例えばクラス内で変数を保持できるから、いろんな処理が容易になる。
たかが1000行程度のスクリプトならクラス使う必要もないだろうな。
ましてやクラスを使えばオブジェクト指向というわけじゃない。
そこのところを勘違いしているのなら、クラスについて勉強しなおした方が良い。
>>43 > GIFアイメが動いてくれません
アイメkwsk
1つのメソッドで複数のファイルをさわる必要性がわからないから答えようがない。
49 :
nobodyさん :2007/02/04(日) 18:27:35 ID:JJOq26qg
接続してきた人のIPを取得して関数に入れたいのですが どうすればいいでしょうか?
>>45 Wikipediaでオブジェクト指向プログラミングのところを嫁
class doFile
{
private $_file_name;
function doFile($file_name)
{
$this->$_file_name = $file_name;
...
}
}
>>49 $_SERVER['REMOTE_ADDR']
54 :
nobodyさん :2007/02/04(日) 18:59:15 ID:XwiYYcaF
サーバー : PHP クライアント : ローカルのC++で製作したプログラム この2つで文字列の送受信を行いたいと考えています。 クライアント→サーバーはHTTPポストを用いたのですが、 クライアントからのデータをサーバーで受け取った場合に サーバーから任意の文字列をレスポンスとして返す場合、 サーバー側ではどのように設定すればよろしいのでしょうか?
>>54 > サーバー側ではどのように設定すればよろしいのでしょうか?
そのローカルのC++の仕様によるとしか言いようがない。
普通のHTTPレスポンスなら、パケット監視ツールでもいれてみればすぐ分かる。
56 :
nobodyさん :2007/02/04(日) 19:04:55 ID:XwiYYcaF
>>55 header()で指定するというのが考えられたのですが、
headerだと上に出力があると云々で何か面倒かと思いまして、よい案があればと思ってまいりました・・・・
その用途でわざわざHTTPを使う理由が全く分からんw
>>56 面倒も何も、そもそもHTTPの仕様がそういうもんだしねぇ。
59 :
nobodyさん :2007/02/04(日) 20:35:26 ID:DJT2oTqS
ファイルロックについて質問です。 flockでファイルそのものをロックするやり方と、 ロックファイルを作成して存在してたら別の処理に振り分けるやり方。 どちらが好ましいでしょうか? それとも両方とも行うのがベストにつながりますか? どなたかご教授お願いいたします。
60 :
nobodyさん :2007/02/04(日) 21:42:03 ID:3athMQrm
php.iniに記述されてるextentionのhogehoge.dllというのは、 WindowsだけじゃなくLinuxでも使うと思うのですが、 ソースコードからmakeした場合は、どこのディレクトリに (普通は)インストールされるものなのでしょうか? (なんでこんな質問をしてるかというと、物理的にどこのディレクトリにあるのか見つからないからです) ところで、extension_dirは'./'になっていますが、それで 正常に動いているようなのですが、これはLinuxで一般的に 正しい設定なのでしょうか?
>>60 そんなん知ってるって。windowsの話じゃないんだが
PHPの中暖かいナリ
linuxだと.dllじゃなくて.soでないの
65 :
60 :2007/02/04(日) 22:07:58 ID:???
なんだその時間差は
dllはwindows、linuxはso linuxでprefixなしでmakeしたら普通/usr/local/以下の各ディレクトリに どこに何が入るかはlinuxのFHSとか調べて php.iniのextension_dirが ./ になってるのはただデフォルトがそこってだけ 正常に動いているのはあなたがextensionを使ってないから OK?
69 :
nobodyさん :2007/02/04(日) 22:34:14 ID:DJT2oTqS
男は黙ってflock
メソッドAがロックしている間は他のメソッドからは書き込みできないけど メソッドZからだけはロックを解除して割り込み書き込みできる とかそういうトリッキーなことをしないかぎりはflockでよい
72 :
nobodyさん :2007/02/04(日) 23:07:24 ID:nvCj12y3
まれにおこるロック漏れに対応するために二重にすることに意味ないの?おれそーやってるけど
$sql = "select sum(price) from pricelist where code = $code"; $rst = mysql_query($sql, $con); この後sum(price)はどうやって変数に代入したらいいのでしょうか?
flockは上限数あるから、共用鯖ならロックファイル方式が無難。
>>73 PHPのマニュアルのmysql_queryのページにそのための関数が載ってるだろーが
76 :
73 :2007/02/04(日) 23:21:11 ID:???
>>75 それだけじゃわかんねーよ
ちゃんと説明しろよ
select sum(price) as pricesum from pricelist where code = $code
78 :
73 :2007/02/04(日) 23:36:58 ID:???
>>75 ありがとうございます。
尚76は私ではありません。どこかのキチガイです
>>73 ヒント:as句
$sql = "select sum(price) as sump from pricelist where code = $code";
...
$sql_rst = mysql_fetch_array($rst);
print $sql_rst["sump"];
print_r ($rst);で内容みてもいいけど
print_r ($rst); → print_r ($sql_rst); mysql_free_result($rst);も忘れずに
別に $ary['sum(price)']でもええやん
パスワードをcookieに保存するとばれますよね? なのでsessionに保存しようと思うのですが cookieとsessionは同じですか?
はい いいえ
>>81 MySQLはそれでとれるのか?
PostgreSQLはダメだったような気が。
自動ログインはどうやって実装するの? パスワード暗号化したものをcookieに保存してるだけ?
そのとおり
初心者にネタみたいな実装教えるなよ。
自動ログインなんてブラウザ側で設定するものであって、中途半端にCookieとかで勝手にやられると迷惑なんだよね。
90 :
nobodyさん :2007/02/05(月) 03:06:45 ID:yzRbYzA5
前から気になってたのですが、 windows環境でMySQL+PHPの組み合わせで文字化けるのはどのように対処したらいいのでしょうか? いつもプログラムの先頭で set names sjis と流す事で対応してましたが、my.iniの設定次第でどうにかできませんか? 現在以下のようにしてます。 [client] default-character-set=sjis [mysql] default-character-set=sjis [mysqld] default-character-set=sjis コンソールからSQLを流す分には綺麗に出力されますが、 PHPを通すと?????となってしまいます。 すいませんがご教授いただけませんか?
91 :
90 :2007/02/05(月) 03:17:31 ID:???
すいません。自己レスです。 [mysqld]に skip-character-set-client-handshake を追記したら解決したっぽいです。 結構検索したつもりでしたが見落としてました。 これハマった人っていないんでしょうか?
92 :
nobodyさん :2007/02/05(月) 03:19:43 ID:Ah+3zzUe
>>90 mysqlがsjisつかってるのはわかった
あとはPHPの問題
CMSかなんかつかってるのか?PHPの場合UTF-8の場合がおおいので
php.inの中のmbstringの呼び出しが問題なんじゃないのか?
あと、環境の詳細が不明すぎ
mysqlのVer phpのVer
MysqlのデフォルトCharset phpのデフォルトのcharset
最低これぐらい書かないとだめ
***.phpのcharsetの問題もある
コンソール自体はsjisだけでの処理になるから問題は無いが
phpを介した場合、UTF-8→SJISの設定がphp.iniで設定しないとだめ
php.iniの中にあるモジュールで変換をする
というのが説明になると思うが、がんばってくれ
mysql と PHP の組み合わせはバージョンによってはかなり いろいろと問題起こすからな 特に PHP 4.1以降だと skip-character-set-client-handshake を使うほかも set names とかでパラメータ毎回変更したり 環境によっては ALTER DATABASE db_name DEFAULT CHARACTER SET character_set; とかしてデータベースの文字コードを変更ひつようあるしな
95 :
nobodyさん :2007/02/05(月) 12:29:22 ID:z02ZA7wU
>>68 レスありがとうございます。
>>60 です。
Linuxはsoファイルだったんですね。知りませんでした。ありがとうございます。
phpは、/usr/local/php/にあるのですが、その下のextディレクトリには、
それぞれのディレクトリがあるだけで、(bz2, gd, ftp) soファイルは見当たりません。
ところで、extention_dirを./にした場合は、/lib/を参照するのでしょうか?
>>95 標準モジュールをコンパイルしてないからだよ
phpize
./configure オプション
make
97 :
nobodyさん :2007/02/05(月) 12:55:40 ID:GcmiTbCg
あるデータがポストされてきて、次にさらにデータが送られてくるまで一旦停止しておく なんていう関数ってあるんでしょうか? また、PHPでそういうことって可能なんでしょうか?
最初に来たやつをセッションにぶちこんでおけばいいだけの事じゃないのか 一旦停止ってなんだ
PHPのユーザーって、こんなんばっかかよwww このスレを見ている人はこんなスレも見ています。(ver 0.20) SOHOやフリーでWeb制作してる奴 二十人目 [Web制作] Ads by Goooooooooooooogle Part74 [Web収入] 新宿中央公園2 [その日暮らし] 仕事がない!!!!!!! [その日暮らし]
100 :
nobodyさん :2007/02/05(月) 13:05:31 ID:cMfqWNhR
配列について質問なのですが 任意の行を消して 下から詰めるという関数はあるのでしょうか? array_spliceだと、消すだけではなく 何かを代入までしてしまうのですよね?
何も代入すんな
PHPマニュアルのarray_splice()ページでの使用例を見ましょう
103 :
nobodyさん :2007/02/05(月) 13:12:58 ID:GcmiTbCg
>>98 実は携帯向けのゲームを製作していまして、SessionやらCookieやら使えないと思うんです。
同期を取るために次の処理に行くまでの待受けをしたいなぁと
>>99 javaとかに比べれば単金が2/3から半分程度だが、
それでも新宿公園はないだろ
>>103 携帯は知らんが、携帯 PHP sessionとかでググると携帯でセッション使う話とかちょこちょこ見かけるので
必ずしも出来ないってわけではなさそうな
いきなり代替案考え始めるより先にセッション使う方向で考えてみたら?
URLの末尾にでもセッションIDをくっつけとけばいいさ
>>97 基本的にない
データをいったん全部保存しておいて、定期的に cron か何かで
処理するしかない
HTMLベースでリアルタイム処理が必要がゲームは
苦労するだけで、無駄だよ
$_POSTと$HTTP_POST_VARSの違いは何なのでしょうか?
標準仕様と死につつある仕様
>>110 つまり$HTTP_POST_VARSの簡易が$_POSTなのですね、ありがとう御座います
>>112 ああ、昔の4.1.0から$_POSTが出たから$HTTP_POST_VARSがいらないってことか
>>104 明日はわが身ではないでしょうか
リアル土方をやってたホームレスも高度成長期や好景気のときは、
いつまでも仕事があって土方で暮らしていけると信じて疑わず、
まさか公園暮らしをやるとは夢にも思わなかったことでしょう
IT土方もまた然りではないでしょうか
貴方はあと10年も20年もプログラミングで食っていけると思いますか?
115 :
95 :2007/02/05(月) 15:15:53 ID:z02ZA7wU
>>96 レスありがとうございます。
無事に解決しました。大変勉強になりました。
的確なレスを下さった、
>>68 さん、
>>95 さんに感謝です!
116 :
95 :2007/02/05(月) 15:17:07 ID:???
リアル土方はどうか知らんがずっとプログラマで10年20年喰っていくつもりなんてやつは相当稀だろう
>>108 それはどこの板に立てたいわけ?間違いなくWebProgじゃないよね。
つーかPHPのコンパイラなんて他にもたくさんあるのに(しかもどれも流行ってるわけでもない)、Bambalam単発かよ。
以下の配列で $settings の2つめの値(="abc")にアクセスしたいんですが、 $settings[yukihiro] 以外で参照するにはどう書けばいいのでしょうか?(forループの中で参照したいのです) $setteings = array( "hiroyuki" => "123", "yukihiro" => "abc", "kazuhiro" => "hoge");
120 :
119 :2007/02/05(月) 15:42:55 ID:GMmlzRSX
すいません、質問なのにsageてしまいました…
121 :
軟式PHP :2007/02/05(月) 15:50:15 ID:???
>>119 settingじゃないのかという突っ込みは置いといて、
不確定要素だが、$setteings[1]でもアクセスできたはず。
連想配列をforでまわす時は
foreach( $setteings as $key => $value ){
print $key . '/' . $value . '<br>';
}
という感じでforeachでキーを取り出しつつ出すのが定石だと思う。
122 :
119 :2007/02/05(月) 16:05:42 ID:GMmlzRSX
回答ありがとうございます(typoすいません、ではsettingにさせてください) しかし、echo $setting[1];としてみましたが、何も出力されませんでした。 確かに仰るとおり、foreachでループさせるのが常だと思うのですが、 以下のように出力させたいと思っているのでforの方がいいのかなと思いまして。 この場合、foreachでもできますかね? hiroyuki(id1)=123(password1) yukihiro(id2)=abc(password2) kazuhiro(id3)=hoge(password3)
適当に$iなりをインクリメントしてけばいいじゃん
124 :
nobodyさん :2007/02/05(月) 16:10:46 ID:Jp7W2+3t
「とある処理から一定時間経過したら以下の処理を行う」って関数はphpにある? 具体的にはいらなくなったログを自動で消去したいんだけど
phpもiccでコンパイルするとめちゃ速いという話を聞いたのでやってみたのだが、 どうもgccでコンパイルされているっぽい。 (configureでもmakeでもgccの文字は確認できるが、iccの文字はなさそう) phpをiccでコンパイルする方法を教えていただけないでしょうか? (FedoraCore5ならとてもうれしい)。 iccはインストール済みです。
書き込んだ時間と現在の時間の差を求める
煽りスタート
128 :
125 :2007/02/05(月) 16:14:16 ID:vEcaZC7U
ID表示するの忘れた
129 :
軟式PHP :2007/02/05(月) 16:14:48 ID:???
>>122 >しかし、echo $setting[1];としてみましたが、何も出力されませんでした。
そか、スマソ。前、アクセスできた時があったんで。
>以下のように出力させたいと思っているのでforの方がいいのかなと思いまして。
確かにforの方が綺麗にかけそうだけど、123がいうように適当な変数をインクリメントさせつつ
表示させるのが普通かなぁ。もっとスッキリ書ける人いたらキボンヌ。
130 :
nobodyさん :2007/02/05(月) 16:20:36 ID:yfR2hgFN
質問です 1つのphpファイルで処理を1回しか実行させない(更新ボタンを押しても実行させない)ようにしたいのですが どうやると可能でしょうか?
131 :
軟式PHP :2007/02/05(月) 16:20:38 ID:???
>>122 ちょっとキモいけど出来た。
<?php
$setteings = array(
"hiroyuki" => "123",
"yukihiro" => "abc",
"kazuhiro" => "hoge");
for( $i = 1, $i_max = sizeof( $setteings ); $i <= $i_max && list($key,$value) = each($setteings); $i++ ){
print sprintf("%s (id%d) = %s (password%d)<br>", $key, $i, $value, $i );
}
?>
俺だったらIDをキーに、パスワードを値になんて使いづらいデータ構造にはしないで array('1'=>array('id'=>'hoge', 'password'=>'aaa'),・・・); て感じにするかな
134 :
軟式PHP :2007/02/05(月) 16:24:01 ID:???
>>130 処理をしたら何らかの処理Aをして、もう一回リクエストがあったら処理Aされてるか調べれば?
>>131 forの条件部はlist()=each()だけでいけない?($i_max数えなくていい)
136 :
軟式PHP :2007/02/05(月) 16:28:22 ID:???
>>135 オッケーオッケー。ただ用心深いだけなんでw
何はともあれ、132のレスのように構造から見直すのが一番スッキリしそう。
>>130 セッション使ってよければ変数にフラグたてればいいじゃん。
138 :
虚弱PHP :2007/02/05(月) 16:30:07 ID:???
>>130 ワンタイムトークンとか使って、
2回目以降はトークンが一致しないということでNGにする。
トークンはセッションに保存しておいて、
更新処理をしたら、セッションから削除すればいい。
それから、更新処理をするphpでは、
更新が終わったら完了画面へLocationさせた方がいいと思う。
139 :
nobodyさん :2007/02/05(月) 16:35:27 ID:yfR2hgFN
そのワンタイムトークンってどうやって使うのでしょうか? やり方がいまいちわかりません
140 :
虚弱PHP :2007/02/05(月) 16:49:36 ID:???
>>139 入力フォーム表示スクリプト:
formにhiddenタグでトークン情報を追加
セッションにも同じ情報を入れる
#トークン情報は $token = md5(uniqid(mt_rand(), true)); で作ればいいんじゃない?
情報受け取りスクリプト:
セッションとhiddenで渡ってきたトークン情報を比較
違う場合はNG
同じ場合は、セッションのトークン情報を消して、更新処理。
↑と、自分で作る。
141 :
119 :2007/02/05(月) 16:55:08 ID:GMmlzRSX
123さん、131さん、132さんありがとうございます。 仰るとおり、連想配列の構造を見直しつつforで回してみたいと思います。 ありがとうございます。
mt_rand( )よりはタイムスタンプを使ったほうが いいんじゃないか?
ワンタイムトークンってセッションIDじゃだめなの?
更新ボタンが押されたときに更新ボタンをdisableにするだけでいいよ
145 :
sage :2007/02/05(月) 17:04:50 ID:yfR2hgFN
更新ボタンをdisableとは???
146 :
虚弱PHP :2007/02/05(月) 17:10:43 ID:???
>>142 全く拘ってないところなので、もっといい方法があれば…。
>>143 セッションIDの場合、毎回session_regenerate_id(true);を呼んでやらないと、
固定トークン方式になっちゃうとおもいます。
140はフォームの入力データはどこに入れるの? セッションにトークン文字列と入力データを入れとくということ?
148 :
虚弱PHP :2007/02/05(月) 17:30:44 ID:???
>>147 作ってみるとわかると思いますが、
普通にPOSTされたものを$_POSTから取得。
#GETでもいいけど
今回書いたのは、単なる「入力フォーム→処理」の流れに
トークン情報を追加しただけです。
149 :
nobodyさん :2007/02/05(月) 17:47:02 ID:XZ3zp/Tb
$class = new Class; $foo = &$class->func(...); /* ソースコードを読んでいて、こんな書き方をみつけたのですが 「$foo = &」というのは初めてみました。 この「&」記号は何を意味しているのでしょうか?
>>145 <input type="submit" value="更新" onClick="this.disabled=true;" />
まあJavaScriptオフにされたらダメだけど。
urlencodeって、%A5%DB%A5%B2%A5%DB%A5%B2みたいになってるけど、 これはどの文字コードにも対応してるのかな?
>>148 だいたい演算子って想像つくんだから、
マヌアルよみなされ。
154 :
153 :2007/02/05(月) 19:01:53 ID:???
156 :
nobodyさん :2007/02/05(月) 19:49:18 ID:uzyn+pcG
携帯用アップローダーを作りたいんですが、普通はファイルを送信するときに メールで送信しますよね? そんな感じのソースありますか?もしなければ、どよのうな関数を使えばいいのか教えてください。
写メールをそのままアップロードできるやつキボンヌだ
メール送信してうpってメールサーバーとか勉強しないといけないよね
159 :
nobodyさん :2007/02/05(月) 20:22:39 ID:CjYpSo6e
以下のようなスクリプトを書いたのですが、 一番最後の $um->GetUnko()->dasu(); が Parse error: syntax error, unexpected T_OBJECT_OPERATOR in D:\develop\bin\xampp\htdocs\kidsc\unko.php on line 17 というエラーになってしまいます。 $um->GetUnko() で Unko インスタンスを取得できていないってことなんでしょうか? <?php class Unko { var $name; function Unko() { } function dasu() { echo "unko deta<br>"; } } class UnkoManager { var $_unko; function SetUnko($unko) { $this->_unko = $unko; } function GetUnko() { return $this->_unko; } } $um = new UnkoManager(); $um->SetUnko(new Unko()); $um->GetUnko()->dasu(); ?>
160 :
nobodyさん :2007/02/05(月) 20:24:23 ID:CjYpSo6e
と思ったんですが最後の行を $u = $um->GetUnko(); $u->dasu(); という冗長な書き方にしたら、期待通り unko deta が表示されました。 でも最初のような、一行で書けた方が幸せなんですが、方法はないんでしょうか?
162 :
nobodyさん :2007/02/05(月) 20:33:19 ID:CjYpSo6e
>>161 いやサンプルがヘンですみませんが本気なんです。
ちなみにPHP4.4.4です。
> ちなみにPHP4.4.4です。
> ちなみにPHP4.4.4です。 function Unko() { } function dasu() { echo "unko deta<br>"; } でコーヒー射精した
165 :
nobodyさん :2007/02/05(月) 20:40:57 ID:CjYpSo6e
すみません、基本的なことがわかってないってことですよね? どの辺りを調べればいいか、取っ掛かりを教えていただけますか? m(_ _)m
Unkoとdasuあたりを見直せばいいと思うよ
小一時間トイレに篭れば・・
PHP4でメソッドチェインはできない $um->GetUnko()->dasu(); これはPHP4ではできない
169 :
nobodyさん :2007/02/05(月) 20:49:30 ID:CjYpSo6e
>>168 ありがとうございます、PHP4はそういう仕様なんですね。
諦めて冗長な臭い書き方をすることにします。
ありがとうございました。
へー、それできないんだ。意外。 ( $um->GetUnko() )->dasu(); これだったらどうよ?
dasuメソッドはunkoManagerの仕事ではないか?
172 :
nobodyさん :2007/02/05(月) 20:59:03 ID:CjYpSo6e
>>170 それも試していたんですが、
>>159 と同様のエラーになります。
って今見て驚いたんですが、コピペしたエラー文に絶対パスが・・・
よくわかんないパスにしといてよかった
そんなパスどうでもいいよ 実名が出たってどうなるもんでもないし。 まぁうんこ大王としてこのスレで後世まで崇められるかもしれんが。
せめてPHP5でやればいいのに
175 :
nobodyさん :2007/02/05(月) 23:30:51 ID:uzyn+pcG
>>175 おまいには理解できん仕組みだから諦めて携帯無料掲示板でも使ってろ
177 :
nobodyさん :2007/02/05(月) 23:34:34 ID:uzyn+pcG
>>176 日本語でおk
スレタイの意味わかってんの(笑
どよのうな
>>175 HTTPからでもできると思うんだけど。
177じゃないけど
>>179 それってPHPがメールを空けて解読してくれるってこと?
メール鯖でPHPにメールの内容がいくもんだと思ってたよ
>>181 メールを受ける鯖とPHP鯖が一緒とかなら出来るんじゃね
一般的にはimap_openがメールを開く方法だと思うが
PHPとWebデザインだけで飯食ってける? プログラムを重視するならやっぱりSE目指すくらいなことしないといけないのかな?
>>184 むりむり。
プログラマでご飯を食べていくには、PHP言語だけしか扱えないようでは
ダメだと思う。それでもプログラミングを仕事にするには結構キツイと思うけど。
今仕事してる人、どんな仕事してる? あと、将来どうするか考えてるー?
俺はJavaが本業。PHPはバイト程度。 まあIT系はいつまで食えるかわからんから もうひとつ別分野でメシのタネを持っておかないとなあと考え中。
>>184 PHPから入ったのはまずかったとかよく言われてるけど、
それでも他の言語触ってみると、案外理解できたりするものだよ。
PHPで身につけたスキルは他言語を学ぶ時にもある程度役立つ。
基本的なことは飛ばせるから、0からのスタートではないっていうのがいいね。
すみません、LinuxでApache+PHPをしたいのですが、 Linuxをはじめて触ったので何がなんだかわからない状態です。 PHPをダウンロードしたのですが、設定はWindowsと同じなのでしょうか?
('A`)・・・
PHP勉強しても無駄だよ そろそろこの世からPHPなくなるよ Ajaxの時代が来てるから
クマー
すんません、 Linux(Fedora Core5)+Apache+PHP+MySQLの詳しいサイトはないでしょうか?
超図解の本でも買ったら幸せになれるんではないかい?
>>189 とりあえず板違いだが、
ソースからのインストールは初心者はやめたほうがいい。
ディストリ付属のパッケージ管理システムで、
インストール設定までできるかもしれないので、
まずはそれを試すべし。
ていうかなんで慣れないOS無理して使うかね。
勉強ならいいけど、テストとか鯖運営とかの目的なら、
慣れてるほう使ったほうがいいよ。
Windowsだとセキュリティーがとか思ってるんだろうが、
結局は対策次第なんだから。
>>191 AjaxでPHPを使わないとは言い切れないわけだが・・・
言葉だけしっててどういうものか理解できてないだろ?
AJAX=JavaScript&XMLじゃないぞ。
>>196 ヒント
∩___∩ /
| ノ ヽ /
/ > < |/ そんな餌パクッ
| //// ( _●_)/ミ
彡、 l⌒l ノ
/ __ \ \ヽ
. (___) \__)
. O| /
| /\ \
| / ) )
∪ ( \
\,,_)
ユーザが指定したURLのheader形式(application/pdf,image/gif等)を取得したいのですがどのような方法があるでしょうか? URL
>>198 何がしたいかわからないが
get_headers( URL ); ???
200 :
虚弱PHP :2007/02/06(火) 09:04:57 ID:???
201 :
虚弱PHP :2007/02/06(火) 09:13:52 ID:???
>>200 ×コマンド引数
○コマンドライン引数
やったことあったから、ソース残ってるかと思ったけどなかった。
$ref = file_get_contents($url)で読み込んだときに 読み込むURLが404などのエラーだった場合に分岐させることは可能ですか?
203 :
虚弱PHP :2007/02/06(火) 12:13:48 ID:???
>>202 FALSEだったらほにゃらら〜以外は不可。
PEAR::HTTP_Requestでも使うといいのでは?
204 :
nobodyさん :2007/02/06(火) 12:19:40 ID:HiVQesHU
配列のキーを取得するにはどうすればいいのでしょうか? たとえば $array = array("tokyo"=>"東京","oosaka"=>"大阪","kyoto"=>"京都"); と言う配列があったとして、$kekkaが東京だったとき、 そのキーであるtokyoを返せればと思います。
205 :
虚弱PHP :2007/02/06(火) 12:29:37 ID:???
|
|
∩___∩ | ぷらぷら
| ノ _, ,_ ヽ (( |
/ ● ● | (=)
| ( _●_) ミ _ (⌒)
>>204 ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
>>195 板違いのところご回答いただき有難う御座います。
普通にインストールから設定できました。
208 :
nobodyさん :2007/02/06(火) 12:52:42 ID:I7i9haBU
windowsxp sp2 apache 2.0.58 php 5.1.6 xdebug 2.0.0.RC3 xdebugを入れてpostの値をvar_dumpで表示すると ' が ' に変換されて表示されます。 値自体は変換されないので動作に支障はないのですが、見辛いので変換しないようにする方法とか分かりますか? php.iniでコンフィグの設定をいろいろ変えてみましたが駄目でした。
ない。以上。
コンパイルオプションを忘れてしまい、php5をインストールするときに うろ覚えでやってみたところ、コマンドラインから実行する際に、 なぜか print の標準出力ができなくなってしまいました。 var_dump だと出力されるのですが…。 原因がわかるかた教えてください。
$def = 'def'; $hoge = 'abc'.$def.'ghi'; ↑この結合の使い方、間違ってないですよね?
>>211 すいません、それも同じで何も出力されません。
で、今テストして気づいたのですが
print "aaa";(echoでも可)
→ 何も出力されない
print "aaa";(echoでも可)
var_dump("aaa");
→両方出力される
print "aaa";(echoでも可)
var_dump("aaa");
print "aaa";(echoでも可)
→var_dump の前の print と var_dump だけ出力される
このような現象になっていました。
すいませんがお願いします。
とりあえず原因の振り分けするときになんで同じ文字列出力させてんの?
217 :
212 :2007/02/06(火) 13:40:59 ID:???
array( 'a' => 'abc'.$def.'ghi',); これも間違ってないでしょうか? なぜか上を多用すると、 タイムアウトまで延々とスクリプト読み込み状態になります。 ちなみにエラーログには何も残りません。 多用しなければ問題ない、というのもわけわかめです。
>>216 いえ、特に深い意味は。
十分わかるかなあ、と思ったもので…。
>>218 おわ! 出力されました。
もしよければ原因を教えていただけますか?
>>217 普通に実行できたんだが
<?php
$def = 'def';
$array = array( 'a' => 'abc'.$def.'ghi');
print_r($array);
?>
>>191 つか、お前、Ajaxでサイト作るときに、全部、手書きでハードコーディングしてるの?
PHPからAjaxのコード自動生成は、基本だと思うけど・・・
それ本気で言ってるの?
>>219 unixの世界ではテキストである標準出力やファイルの終端は
改行コードである"べき"らしい、ちゃんとした仕様なのかは分からないが
少なくともPHPのcliで改行で終わってない文字列を
標準出力に書き出しても表示されない模様
シェル依存かもしれんが、zshだけかなあ
>>222 そういうものなのですか、ありがとうございます。
ちなみに私は bash です。
今まで4.xを使っていたときはこのような現象がおきていなかったもので…。
ありがとうございました。
225 :
軟式PHP :2007/02/06(火) 14:29:34 ID:???
Ajaxは昔からあったから時代もくそもないぜってことだろうか。
ちげーよ。 「お箸が出てきたから、もうご飯の時代は終わり」といってるのと同じ。 箸だけあっても食べ物がなければ意味ないだろ。
誰?「アジャックス」って言ってるのは?
知ってる知ってる。「アヤックス」だろ?
229 :
nobodyさん :2007/02/06(火) 15:26:39 ID:zUpPH+yJ
$a = array("a" => "orange"); は定義できますが、実行時に配列を定義したいので $a = array(); array_push($a, "a" => "orange"); とやると Parse error: syntax error, unexpected T_DOUBLE_ARROW になります。 どうすればいいですか?
$a = array("a" => "orange");
232 :
虚弱PHP :2007/02/06(火) 15:51:29 ID:???
>>229 $a["a"] = "orange";
>>229 「"a" => "orange"」は表記として正しくない(arrayでもない)
>>233 「"a" =>
↑が顔に見えてしまった件・・・
どうでもいいわ
236 :
154 :2007/02/06(火) 16:11:54 ID:SotyEyj1
チェックボックスのポストから渡る値をDBへ格納する場合 みなさんどんな形をとっていますか? 私はとりあえずですが、複数渡ってきた値をカンマ割りで TEXTとしてDB入れてみました。 中身はこんな感じです→ $data="1,4,6,7,10" しかし問題があり、SQLにて1で検索すると、1,10の 二つがかかってしまうような気がします・・・・ なにか良い案はないでしょうか。
237 :
虚弱PHP :2007/02/06(火) 16:21:46 ID:???
htmlspecialcharsの第3引数の存在の意義って何? < > & " (とENT_QUOTESの場合はシングルクォート) を変換するだけの関数に何故キャラクタセットの指定が必要なの? マルチバイトの文字にこれらの特殊文字のアスキーコードが入る可能性ってあるってこと? 第3引数もちゃんと指定しておくべきっていう解説のページは 色々見つかるんだけどそもそもなんでこんな引数が 必要なのかっていう意味がわからないのだが
>>236 ビット演算かMySQLならENUMが使える。だがまず正規化を考えるんだ。
240 :
nobodyさん :2007/02/06(火) 16:33:48 ID:9ME9ZkaH
POSTされてきた文字列がすべて英語かどうか判別するためには どういう手順をおえばいいでしょうか? 何か関数が用意されているのでしょうか?
241 :
239 :2007/02/06(火) 16:34:45 ID:???
ENUMじゃ無くてSET型でした。 付け足すとこいつらはオプションを追加するたびにAlter tableでめんどいのでおすすめしない。
>>240 日本語対応で文字カウント=バイト数なら全部英字じゃない?
>>203 > PEAR::HTTP_Requestでも使うといいのでは?
404の判定はどうしたらいいですか?
>>243 マニュアルに書いてあったよ
<?php
require_once "HTTP/Request.php";
$urls = array(
"
http://www.example.com/ ",
"
http://example.com/thisdoesnotexist.html "
);
$req =& new HTTP_Request("");
foreach ($urls as $url) {
$req->setURL($url);
$req->sendRequest();
$code = $req->getResponseCode();
switch ($code) {
case 404:
echo "Document not found\n";
break;
case 200:
echo "Everything's ok\n";
break;
/* ... */
}
}
?>
245 :
虚弱PHP :2007/02/06(火) 17:01:33 ID:???
246 :
154 :2007/02/06(火) 17:06:45 ID:SotyEyj1
>>237 >>239 正規化ですか。
好きな物テーブルに id=1 name=りんご 15種類程登録し。。
編集フォームにDBから上記を引っ張りチェックボックスを表示させてます。
フォームからポストの内容をみて
友達テーブルの中に好きな物カラムをつけ1,5,6,8と記録し
友達テーブルからの表示では1,5,6,8を,で分解し
好きな物テーブルからidでnameを取ろうと考えました。
初心者なりに考えてみたのですが、これでいいのかどうか・・
そもそも考え方自体駄目なのか、、アドバイスお願いします。
>>246 例)友達好きなものテーブルを作る
友達ID | 好きなものID
--------------------
5 | 1
--------------------
5 | 5
--------------------
5 | 6
--------------------
5 | 8
--------------------
248 :
nobodyさん :2007/02/06(火) 17:16:57 ID:9ME9ZkaH
249 :
236 :2007/02/06(火) 17:23:36 ID:SotyEyj1
>>247 ありがとう!なるほどです。
ポスト毎に重複があるかチェックではなく、
IDで全て消してから新規追加処理する形が楽でよさそうかな
250 :
nobodyさん :2007/02/06(火) 17:36:08 ID:RpH7WtFK
すみません。よろしくお願いします。(PHP ver.4.3.11)
メールフォーム(のつもり)です。
<?php
print <<<HTML_HEADER
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="
http://www.w3.org/1999/xhtml " xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<title>PHP Test Mail Form</title>
</head>
<body>
HTML_HEADER;
if ($submit) {
$name = $_POST['name'];
$subject = $_POST['subject'];
$body = $_POST['body'];
mb_language("ja");
mb_internal_encoding("EUC-JP");
if (mb_send_mail('メールアドレス','$subject','$body','$name')){
print "送信に成功しました";
}else{
print "送信に失敗しました";
}
251 :
250 :2007/02/06(火) 17:37:21 ID:RpH7WtFK
}else{ print <<<FORM <form action="$_SERVER[PHP_SELF]" method="POST"> 名前:<input type="text" name="name" /><br /> 件名:<input type="text" name="subject" /><br /> 本文:<textarea rows="8" cols="40" name="body"></textarea><br /> <input type="submit" name="submit" value="送信" /> </form> FORM; } print <<<HTML_FOOTER </body> </html> HTML_FOOTER; ?> エラー文は Parse error: parse error, unexpected $ in ファイル名 on 最後の行 です。 どこが悪いのかさっぱり・・・・orz
252 :
243 :2007/02/06(火) 17:42:09 ID:???
254 :
nobodyさん :2007/02/06(火) 18:01:35 ID:NJuIco/q
if( $_SERVER["REQUEST_METHOD"] != "POST" ) { exit( "不正なリクエストでおじゃる" ); } $hoge = isset($_POST["hoge"]) ? $_POST["hoge"] : ""; このようなソースを見たのですが、リクエストのメソッドを調べて チェックする意味はあるのでしょうか? たとえ、引数が GET で渡されたとしても、それが $_POST に代入される ようなことがありえるのでしょうか?
質問する時間帯によって回答者のレベル・優しさが異なる件
256 :
nobodyさん :2007/02/06(火) 18:02:58 ID:9ME9ZkaH
257 :
nobodyさん :2007/02/06(火) 18:09:42 ID:LpXabJVa
インスタンス化せずに、親クラスから子クラスの独自関数の有無を調べる方法はありますか? あれば、その方法をご教示ください。 // その1 class A { function 有無を調べる方法の関数() { // return : false 有無を調べる方法; } } class B extends A { } // その2 class A { function 有無を調べる方法の関数() { // return : true 有無を調べる方法; } } class B extends A { function 独自関数() { } } よろしくお願いいたします。
>>251 ヒアドキュメントの終端IDの後の半角スペースを消すべし
バーローwww
>>257 インスタンス化しないってことはスタティックにコールするってことなの?
アルファベットかハイフンか、という正規表現は /^[a-zA-Z-]+$/ であってますでしょうか? それとも /^[a-zA-Z\-]+$/ になるのでしょうか?
262 :
nobodyさん :2007/02/06(火) 18:25:27 ID:LpXabJVa
>>260 class A から class B のオブジェクトを生成せず、class B のファイルを require した状態で、静的にクラスのメンバ関数である独自関数の有無を調べたいのです。
263 :
257 :2007/02/06(火) 18:28:48 ID:LpXabJVa
オブジェクトを生成する方法なら、method_exists($obj, '独自関数') とすることで可能なんですが・・・ 必ずしも生成しなければならないのでしょうか。
>>257 get_parent_classで親クラス辿って
get_class_methodsでメソッドリストを取得して
対象のメソッド名があるか調べるとか
カレンダーで選んだ月から2ヶ月先まで表示するプログラムで # 翌月 $month2= $month==12 ? 1 : ($month+1); $year2= $month==12 ? ($year+1) : $year; # 翌々月 $month3= $month2==12 ? 1 : ($month2+1); $year3= $month2==12 ? ($year+1) : $year; となっている部分があるのですが、これが翌月と翌々月を求めるというのはわかるのですが、 $month==12 ? 1 : ($month+1); ここが何をしているのかわからないのですが、教えてもらないでしょか?
年またぐ場合の処理だろうけど あまりいいソースではないな
>>262 だからその調べるメソッドはどうやってコールするのっていうお話
>>265 それは三項演算子
>>265 ,265
理解できました!
ありがとうございます。
>>261 どちらでも通るんじゃない?
尤も、そういう事で悩むなら、
常に\を付けるようにした方がいいと思うが
お聞きします。gmail等で、相手がログインすると アイコンの色がリアルタイムで変わりますが、 あれをphp・javascriptで実現することは可能でしょうか? もしあれば、参考になるサイトを教えていただけると幸いです。 よろしくお願いします。
サイトはわかんねーけど簡単じゃん
まじすか! 教えてもらえないでしょうか?
おめーの態度が気にくわねーからなー とりあえず下半身露出してコンビニ行ってさ、 「ここにこんな顔のやつが来ませんでしたか?」って店員に聞け 「それはあなた・・・ですよね?」って言われたら 「そいつがルパンだ!追えぇえええr!!!1」」っつって走り去って来い そうしたら教えてやらんでもない
274 :
257 :2007/02/06(火) 18:52:20 ID:LpXabJVa
自己解決しました。。。 get_class_methods して in_array して調べました。 お手数をおかけしましたm(_ _)m
>>191 Ajaxってクライアントサイドの使い勝手(UIとか非同期通信)の向上だから
サーバーサイドのPHPとは競合しないような気がする。どっちかというとFlashとかと競合するような。
いまいち分かってないんだけど ↑ って合ってまつか?勘違いなら恥ずかしい><
とりあえず日本語直してから出直せばいいと思うよ
PHP終わったなw
>>270 Ajax叩いて相手のステータスをサーバに返してもらうだけじゃん。
279 :
278 :2007/02/06(火) 20:16:08 ID:???
× サーバに ○ サーバから
しかし、AjaxにしろFlashにしろ、検索エンジンに拾ってもらえないのがいたいよね。 それが気がかりだから、サイトでAjaxが使えない。 Flashは元々作れない。
動的に遷移する部分にURLが割り当てられないだけで 別にajaxにしたから検索エンジンに拾われなくなるわけじゃない
ただ URL だけでページを再現できるような作りになっていないと 拾ってもらったところで有効に利用してもらえないだろうけど
>>278 レスありがとうございます。
その「相手のステータス」を取得する方法なんですが、
ログイン状態をDBに残してそれを定期的に見に行く、って感じでしょうか
もっと簡単な方法ありますか?
>>283 DBにしろファイルにしろそれ以上は簡単にならんよ
289 :
250 :2007/02/06(火) 22:18:45 ID:RpH7WtFK
>>288 し、しないんです・・・orz
俺こんなのも作れないなんてまじ駄目ですわ。。。orz
今酷い自演を見た
291 :
250 :2007/02/06(火) 22:24:45 ID:RpH7WtFK
うはwwwww
ごめ・・・・w
でも
>>288 は俺じゃないんだぜ。。。まじで。。。
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
294 :
250 :2007/02/06(火) 22:29:11 ID:RpH7WtFK
>>292 放置してすみませんorz
駄目ですた。。。というかスペースありませんですた。。。
釣りやめろよw
試したけどパースエラーは出なかった send mail 入ってないから別のエラーが出たけど あと register_globals が off なら $_POST['submit'] でないと動かない
297 :
250 :2007/02/06(火) 22:37:48 ID:RpH7WtFK
>>295 ガチです。。。
>>296 まじっすか・・・
自宅鯖(Apache+PHP5)でもレン鯖(PHP4)でも
最後の行(?>の行)でパースエラーですた。。。
ヒアドキュメントをやめてスクリプト部分だけ<?php ?>しても
最後の行(<html>の行)で同じくエラーがでますた。。。
register_globals・・・・・・・・・れじたすたー・・・ぐろーばるず・・・
ググってきます。。。orz
298 :
nobodyさん :2007/02/06(火) 22:42:02 ID:LpXabJVa
配列を返す関数(例えば get_class_vars など)から、スライスなどにより一発で要素を取り出すことはできますか? できればその方法を教えてください。 $vars = get_class_vars('class'); $var = $vars['var']; これを一度の処理で $var に代入したいのです。 宜しくお願いいたします。
>>297 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
mb_internal_encoding("EUC-JP");
ファイルの文字コードはどっちなんだ
300 :
nobodyさん :2007/02/06(火) 23:22:43 ID:Wu/FYvw1
すみません、phpMyAdminの質問になってしまうのですが、
phpMyAdminの表示が崩れてしまう原因が分からなくて困っています。
こんな感じです
ttp://www.tensyon.net/log/088.jpg ブラウザで右クリックして『最新の情報に更新』とすると正常に表示される
のですが、リンクを1つクリックするたびにこんな感じで崩れてしまいます。
ユーザーの追加やテーブルの追加などの操作自体はできます。
config.inc.phpの記述部分で
$cfg['PmaAbsoluteUri'] = $_SERVER["HTTP_HOST"] . '/phpMyAdmin/';
と記述しているのですが、
$cfg['PmaAbsoluteUri'] = '
http://www.hogehoge.com/phpMyAdmin/ ';
とやっても、やはり崩れてしまいました。
原因が予測できる方はいらっしゃいますでしょうか?
宜しく御願い致します。
環境は以下の通りです。
OS:Redhat9
Apache:1.3.37
PHP:4.3.11
MySQL:4.0.27
301 :
300 :2007/02/06(火) 23:24:05 ID:???
あっ、ほげほげ.comって書いちゃった・・・ 失礼しました
302 :
250 :2007/02/06(火) 23:25:12 ID:RpH7WtFK
>>299 Shift_JISで保存してます!!!!
まじです。。。ほんとです。。。
一行にこだわるより、読みやすさを考えたほうがいいと思うが。 工夫すれば array_search array_keys とかで出来るんじゃね 関数をある程度覚えるために逆引き本とかマニュアルを読んだほうがいい。
304 :
303 :2007/02/06(火) 23:27:19 ID:???
>>300 とりあえずソースを開いてCSSのURLがどうなってるか見てみよう
ログイン制のWebサイトをつくってるんですけど 再ログインするときにオートにしたいんですけど(mixiみたいに) この場合クッキーにはなにを保存すればいいんですか? ユーザー名とかを生で保存すると変更されてダメらしいです。 暗号化したパスワードとかですかね?
307 :
306 :2007/02/06(火) 23:43:55 ID:UL5pyI1O
すいません質問したのにsageちゃいました。
前から疑問に思ってたけどCookieって暗号化されて保存されるんじゃないの? 簡単に復号できんの?
>>306 標準的な方法はセッションIDじゃない?
ログイン時にランダムな文字列(セッションID)を生成して Cookie にセット
そのIDからユーザを検索できる管理表をサーバ側で管理する
あとはCookieとしてセッションIDが送られてくるからユーザを検索して処理を実行する。
310 :
306 :2007/02/06(火) 23:54:24 ID:UL5pyI1O
>>308 そうなんですか?
じゃあ普通にクッキーにログインIDとかパスワードを保存しちゃっても大丈夫なのかな?
クッキー信用すんなwwwって言われちゃったんですけどね(´・ω・`)
セッションIDなんかありえないでしょ。 いつ再ログインするかもわかんないのに セッションオブジェクト保持しつづけんのか? 暗号化したIDと暗号化したパスでOK 俺はそうしてる
>>306 cookieの有効期限を3日間とかくらいにする(時間は適当に)。
セッション情報(ユーザIDとか)をランダムで無意味な文字列をキーにしてサーバに保管しておいて、
cookieにはそのキーを与えてやるのが普通のやり方かな。
まああとは相手のIPも覚えておいてある一定時間以上経過の後に
cookieの値は同じでも違うIPからのアクセスがあったらはじくくらいの
処理を入れておけば、セッションハイジャックにはある程度強くなるかな。
>>308 暗号化しても意味ないだろ…。
http://pear.php.net/manual/ja/package.database.db.db-common.quotesmart.php $db = new DB;
$name = $_POST["name"]; // ($_POST["name"] = "foobar's") であるとします
$sql = sprintf("SELECT * FROM `tbl` WHERE `name` = %s LIMIT 1", $db->quoteSmart($name));
echo $sql; // 出力: (SELECT * FROM `tbl` WHERE `name` = 'foobar\\\'s' LIMIT 1)
magic_quotes_gpc が ON に設定されているためか、エスケープすると
"foobar\\\'s" になってしまいます。問題ありませんか?
314 :
nobodyさん :2007/02/07(水) 00:10:07 ID:g340G47s
array_slice関数は、取り出しにn番目という指定をしますが、 特定のキーの要素を取り出したい、という関数ってありますか? (マニュアルを調べたところなさそうではありますが、、、)
>>311 その暗号化したIDとパスがばれるとマズ〜
というか暗号化している/いないに関わらず
そのデータなら一意にログイン可能というのが致命的だろ
318 :
311 :2007/02/07(水) 00:17:48 ID:???
>>315 うう、そうか。業界のセオリーはどういうのなんだろ?
IPアドレスまで暗号化して保存すればいいのか?
さらにYahooみたいに定期的にパスワード要求か?
変数ないの文字列を、変数に変換するという関数なかったですかね? シングルクォーテーションをダブルに変えちゃうと言う ものだったんですが・・・ わかりにくくてすいません。
320 :
306 :2007/02/07(水) 00:18:29 ID:mQUtqk1P
>>306 なるほど・・・参考になります。
とりあえず色々試してみます。
調べてたら ssh という単語が出てきたんですがこれはなんですか?
php のサンプルコードとか見つかんないんですけど、
アパッチみたいにサーバー側に設置するもんなんですかね?
まぁロリポでは使えないらしいんですけどね・・・
321 :
306 :2007/02/07(水) 00:24:08 ID:mQUtqk1P
>>320 すいません。なに聞いてるのか分かりづらい質問でした。
結局聞きたいのは
sshってのは良く分かんないけどこれがないと安全なページがつくれないの?
ってことですね。今作ってるの趣味のサイトで
クレジット番号とかそういう情報とかないんで必要かな?と
なんか調べてみると公開鍵とかすごい難しそうですし、
サーバーも変えないといけないので、できれば遠慮したいなー・・・
sshじゃなくて、SSLじゃね?
323 :
306 :2007/02/07(水) 00:37:15 ID:mQUtqk1P
>>322 すいません。そうかもしれません。
銀行とかのWebページで
情報をsslで送信する。とか言うチェックボックスが合ったので
あれはどうやってるのかな?と思いまして・・・
>>319 よく分かりませんがとりあえずeval()置いときますね
SSLは個人情報を扱わなければいらないんでね? …とは思うが、SSHもSSLも何のためにどう使うものなのかは理解しておいて損はないよ ログイン制のサイトを作るとかいうレベルの人間にとっては別段難しい話じゃない 適当に解説してるサイトを見つけるなりしてゆっくり読めば分かる
326 :
306 :2007/02/07(水) 01:06:20 ID:???
>>325 分かりました。解説ページでも見て公開鍵とか秘密鍵とか一応仕組みだけは
理解しておこうと思います。
まぁロリポでは使えないっぽいですけどね・・・○| ̄|_
sakura internetとかにしたいぽ。ナカナカの機能だそうで。
328 :
326 :2007/02/07(水) 01:19:38 ID:mQUtqk1P
>>327 ちょwwwww
めちゃくちゃ聞きたかったけど、
これは自分で調べるのがマナーだなと思った質問をあっさりとwwww
まぁよさそうなのが合ったらでよかたらw
おまえド素人のくせに調子乗りすぎ 普通の素人でさえSSLくらい知ってるっつーの SSLすら知らないやつがログイン制サイトなんて作るなカス
330 :
nobodyさん :2007/02/07(水) 01:34:14 ID:wu4US5vn
俺の個人的な意見だがレン鯖つかうような物だったら そこまでやらないでつくっちゃうよ。 企業物つくるときは気を使ってやるけど。
331 :
nobodyさん :2007/02/07(水) 01:41:36 ID:g340G47s
>>316 いや、まぁ、そうなんですが、それだと元の配列に取り出した要素が残ってますよね?
>>331 unset($ary['key']);
334 :
nobodyさん :2007/02/07(水) 01:45:01 ID:g340G47s
SSLなんて気休めじゃない?
335 :
nobodyさん :2007/02/07(水) 01:45:46 ID:g340G47s
>>332 あーなるほど。そういう方法もあったか。その方がシンプルですね。どもです。
336 :
nobodyさん :2007/02/07(水) 01:57:25 ID:PrXTLmZ9
一意な値から、推測不可能な値を求める方法ってmd5以外に何かありますか? md5は結果の桁数が多すぎるので、結果が10桁以内に収まってくれると嬉しいのですが。 当然元の一意な値は、10桁以内で表せる範囲です。
メソッドを継承する方法はextends以外にないんでしょうか? 二つ以上のクラスから、メソッドを継承したいんですが・・・
>>336 crc32を使うなり、md5の前10文字持ってくるとか
いくらでもやり方があるんじゃない
ちなみに10桁以下でないと困る理由でも?
>>339 あ、CRC32をすっかり忘れてました。
これでやってみようと思います。
ありがとうございます。
>>340 僕は困らないんですが、電通が困るらしいです。
クライアントさんにそんな訳わからない文字列出せるわけないよね?
って言われました。
URLに埋め込まれる文字列に過ぎないってのに。
死ねよ電通。
企業名出すと特定されるぞおまえ。10桁以内ってのも特殊な処理だしな
電通経由で仕事もらってる奴なんて山ほどいるだろw
電痛w
>>342 ていうかそういうことをここで暴露するのはまずいぞ。
いろいろ守秘義務とかあるだろ。
>>342 電通といっても○○電気通信△△株式会社
とか
メジャーじゃなく「でんつー」と呼称している会社もある
とフォローしておいてやろうw
ばれないのを前提に語るなかれ。 ばれた時にどうなるかっていうのを考えたほうがいいよ。
とりあえず電通に通報しますた。
SpredSheet_Excel_Writerで $wb->setVersion(8); したら日本語文字化けするってのは仕様? 回避方法ってある?
ある
352 :
虚弱PHP :2007/02/07(水) 09:47:44 ID:???
実用上、たいして問題ないだろうけどMD5は簡単に突破できるって話になってるね。 SHA1〜SHA512あたりが、MD5より強い。 でも、SHA1も最近弱くなってるって話も出てるみたい。 ハッシュの桁数指定なんてマジありえない。
>>351 d
でもExcel_Reviser使う事にしたwww
クッキーに保存していいのは、ランダムで予測不可能なセッションIDのみ。
355 :
nobodyさん :2007/02/07(水) 10:44:27 ID:JQtXfKJc
356 :
nobodyさん :2007/02/07(水) 11:05:37 ID:JQtXfKJc
やっぱ俺もExcel_Reviser使うことにした
357 :
虚弱PHP :2007/02/07(水) 13:59:02 ID:???
>>308 見ればわかるけど、ただのプレーンテキスト
暗号化もなにもされない。
SSL用のセキュアCookieなら暗号化されてたはず。
>>310 CookieにログインIDとかパスワードとか、完璧にダメ。
>>311 普通はCookieにセッションIDのみ。
358 :
nobodyさん :2007/02/07(水) 14:05:38 ID:TYE8oh71
データ管理モデルとして適切なのはどっち? そして全体としての処理が早いのはどっち? DBはMySQLです。 1.POSTされたデータそれぞれに対してDB上でフィールドを用意。 出力には、それぞれの値をオブジェクトのプロパティとして読み込んでから。 2.POSTされたデータをデリミタで区切ってひとつのデータとしてDBに書き込む。 (まぁそのデータのIDとかautoIncrement用のものは別に用意している) 出力には、その文字列を読み込んでexplodeして処理。 過去ログにチェックボックスの処理については、結合して処理してますとあったんだけど、 自分はひとつひとつフィールドを作っていた愚か者だったかと思い。
んなもんそのデータをどう扱うか次第だろ どっちがいいとかそういう問題じゃねーよ そのチェックボックスで選択したデータから 関連するデータを引っ張ってきたりするなら 当然フィールドは分けて管理するし 単純に何を選んだのか表示するだけのデータなら ひとつのデータとして突っ込んでも問題ないだろう
360 :
虚弱PHP :2007/02/07(水) 14:31:09 ID:???
以下のように 子クラスである(hoge2)を呼び出した際、 親クラス(hoge)の$this->hogeを 子クラスの$this->hogeに格納したいのですが、どのようにすればいいのでしょうか? class hoge { public $hoge; function __construct($id) { $query = "SELECT * FROM ".$id; $db = new dbconnect(); $db->select($query); $this->hoge = $db->val; } } class hoge2 extends hoge { public $hoge; function __construct($id) { parent::__construct($id); } }
ちょっと意見を聞きたいんだけど、みんなは「マジッククオート」を ON にしている? (デフォルトは ON らしい) データベースにSQLを発行するときでも、実行する際に適切にエスケープする 方がよっぽど効率的だと思うんだよね。 メールを送信する際でも、stripslashes()でいちいちクオート部分を 取り除くのも面倒だし……。
364 :
虚弱PHP :2007/02/07(水) 17:12:58 ID:???
>>362 OFF推奨。文字コードによっては面倒な問題が増えるだけ。
magic_quoteじゃエスケープのかわりにならないし。
>>361 マニュアルのクラスとオブジェクトの所読み直して来い
366 :
nobodyさん :2007/02/07(水) 17:23:45 ID:vvyzlZ8J
preg_matchとかで最短マッチにしたいんですけどどうすればいいのでしょうか?
367 :
nobodyさん :2007/02/07(水) 17:23:57 ID:khinYXrO
fgetscsvについて HTMLコードをデータとして扱ってて、日本語使ってるから今回は無しだと思ってるが… 色々あった問題は解決されてるんでしょうか?
368 :
虚弱PHP :2007/02/07(水) 17:28:01 ID:???
369 :
nobodyさん :2007/02/07(水) 17:45:25 ID:khinYXrO
>367修正 fgetcsv だったか。
370 :
nobodyさん :2007/02/07(水) 17:53:13 ID:QCFUqHQb
Perl 正規表現で マルチバイト文字は使えないのなかな。UTF-8 で使いたいのだけど。。
質問です 偉い人教えてください。 <form action="aaa.html" method="POST"> <input type="text" name="a1"> <input type="submit" value="登録"> </form> 上記フォームのPOST送信で飛ばした a1で入力した内容を他のサーバーでも 取得したいのですが、 どうしたらいいでしょうか? aaa.html で取得しようとすると $_POST['a1']でいいと思いますが、 他のサーバーにあるbbb.htmlで取得するためには aaa.htmlにどのように記述して情報を送信したらいいのか分かりません。 教えてください
372 :
371 :2007/02/07(水) 18:01:56 ID:???
aaa.html bbb.html 両方で同じ情報を取得したいのです 教えてください
bbb.htmlでも$_POST['a1']で取れますよ
374 :
371 :2007/02/07(水) 18:19:24 ID:???
aaa.htmlに <form action="bbb.html" method="POST"> のフォームのボタンを置いて客に押させるw
377 :
nobodyさん :2007/02/07(水) 18:27:11 ID:QCFUqHQb
以下の正規表現がうまくマッチしてくれないんだけど、なんでかな。。。 $reg = '(.+)(って)何'; $str = 'うんこって何'; if (mb_ereg($reg, $str, $matched)) {
378 :
377 :2007/02/07(水) 18:29:31 ID:???
解決した。 mb_regex_encoding() でエンコーディングを指定していなかった。
379 :
358 :2007/02/07(水) 18:34:39 ID:TYE8oh71
>>359 >>360 了解いたした。
どっちが早いかってのもやること次第だと。
2みたいなことするなら正規表現つかえるよーにしとけと。
>>379 釣られておくが、とりあえず「正規化」でぐぐっておいた方がいいと思うw
smartyで内部文字コードEUC-JPのものをSJISで表示させたいのですがどのようにすればいいでしょうか?
>>381 displayせずfetchで結果だけ取得して変換かけてから出力
383 :
nobodyさん :2007/02/07(水) 20:26:12 ID:QCFUqHQb
PHP で関数のコールスタックを知ることってできますか? C の ASSERT マクロのようなものを作りたいのだけど。
385 :
358 :2007/02/07(水) 20:58:40 ID:TYE8oh71
386 :
nobodyさん :2007/02/07(水) 21:27:32 ID:ONXl1Hmy
すみません、すごく下らない質問ですが $dirObj = dir("./img"); while($strPath = $objDir -> read()){ hoge(); } $dirObj -> close(); っていうスクリプトがあったとして、 $dirObj = dir("./img"); while($strPath = read($objDir)){ hoge(); } close($dirObj); と書くことは出来ないんでしょうか?
387 :
nobodyさん :2007/02/07(水) 21:41:18 ID:vvyzlZ8J
WEB画像の文字列をPHPで取得するのはどうやるのでしょうか? 教えてくださいエライ人
∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
釣り針にエサすら付けないとは
391 :
nobodyさん :2007/02/07(水) 22:05:33 ID:angp4gxd
それでも釣られようかどうか悩む389が良い奴だということはわかった
ちょっと過疎ってないスレで適当な場所が見つからなかったので、ここで質問させてください。 md5のようなハッシュで、63bit(64bit intの正の数分)のハッシュを作りたいのですが、 アルゴリズム的に最も良い切り詰め方があれば、教えてもらえませんか? 単純に前方、もしくは、後方63bitをとっても悪くないとは思うのですが、 よりよい解があるのなら、そうしたいと思いまして。
394 :
nobodyさん :2007/02/07(水) 22:36:56 ID:31Gux073
全角や半角カナなどを半角英数字に直す関数ってありますか?
ああ適当に読んでた こうですか?bin2hex('あいうえお') ごめんなさいorz
398 :
nobodyさん :2007/02/07(水) 22:54:20 ID:WNEJmURw
サバー側で起きるイベントを逐次ブラウザに送信するサーバープッシュを 作るのにいい方法はないでしょうか? NN4.x はサーバープッシュに対応してるみたいですが、出来ればIEで。 web serverはapache2です。 CGIはcまたはPHPを使用しています。 クライアントプルを使うとリロードの度に画面がちらつくのが困る。 IE、mozillaでクライアントプルで1晩走らせておくと IEがstack overflow を起こしてしまいました(frameタグを多用してたから?) IEのactiveXを開発する知識も時間もありません・ 同じような悩みで解決した人いますか?
399 :
nobodyさん :2007/02/07(水) 22:54:40 ID:ONXl1Hmy
>>392 ありがとうございます
open("/hoge");
みたいなのを手続き指向って言うんですか?
手元のPHP4が最新の本を見ると手続き指向?で書いてあって、
PHP5の本で見ると -> でのやり方が書いてあります。
どっちがいいとかあるんでしょうか?
不親切なハズレ本買っちまったかなぁ…
>>399 分からないうちは普通の関数でやるのが吉
もし気になれば「オブジェクト指向」について調べてみてね☆
>>398 良くわかんないけど、JavaScriptのXMLHttpRequestじゃ無理なの?
リロードは解決できそうだけど。
>>394 die("半角英数字で入力してください");
って関数使えば良いんじゃね?
403 :
nobodyさん :2007/02/07(水) 23:55:02 ID:7J2JH6wV
<? include("indck.php"); include("indek.php"); include("cindexeck.php"); include("index.php"); include("check.php"); include("indeck.php"); include("chede.php"); ;?> このようにファイルを取り込んでいるのですが、全て同時に取り込むなどの 効率をあげる方法はありませんでしょうか
<? include("indck.php"); include("indek.php"); include("cindexeck.php"); include("index.php"); include("check.php"); include("indeck.php"); include("chede.php"); ?> って書いてあるファイル読み込めば良いんじゃね?
406 :
nobodyさん :2007/02/08(木) 00:00:55 ID:2T63cspu
>>400 ああ、これがオブジェクト指向うんぬんの問題だったんですか
なるほどー 勉強してみます
ありがとうございました
>>404 。・゚゚・∧∧・゚゚・。.
/⌒ヽ)
〜(___)
echo文で文字出力する場合に、"をエスケープする場合\”と出力しますが、 それ以外の方法でエスケープする方法を、どっかで見たのですが ご存知の方いませんか?↓見たい感じだったと思ったのですが・・・ echo "これは\"テスト\"です"; ↓これをこんな感じで <<<HEAD echo "これはテストです"; HEAD>>>
ヒアドキュメントのことだろうけど 君が思ってるものとはちょっと違う
あ、ヒアドキュメントってものがありましたね 言われて初めて思い出しました。 十分使えそうなので試してみます、ありがとうございました。
すでに知っていたやつが
>>408 のような質問の仕方をするだろうか・・・
多分ヒアドキュメントってなんとなく知っていただけなんだろ
415 :
nobodyさん :2007/02/08(木) 03:27:39 ID:secT9uPh
URLから画像を摘出してその画像のサイズを知りたいのですがどのようにやればいいのでしょうか?
416 :
nobodyさん :2007/02/08(木) 03:38:51 ID:zStq6qoX
417 :
虚弱PHP :2007/02/08(木) 09:22:43 ID:???
>>398 今「クライアントプル」というのを
どういう方法で実現しているのか分からないけど、
(もしかしてMETAタグのRefresh?)
基本的にHTTPはクライアントからの
リクエストに答えるためのプロトコルだからなぁ。
AjaxとかCometとかを調べてみるといいんじゃない?
Win版PHPでフォルダを削除する方法は未だにないのでしょうか?
419 :
nobodyさん :2007/02/08(木) 10:40:57 ID:GPSbmvjX
微妙にすれ違いですが 重複したロジックを使いたい時 継承するのか、もう一個のクラスにインスタンスをnewして使いまわすのか どうやって決めてますか? 継承の使いどころがいまいち分からなくて・・・ アドバイスあったらお願いします。
cometはセッション張りっぱなしにするから勘弁してくれ
421 :
虚弱PHP :2007/02/08(木) 10:52:38 ID:???
>>419 実際には設計思想次第で柔軟に…だろうけど、
親クラスのメソッドを隠蔽したい(した方がいい)場合は委譲。
親クラスのメソッドをそのまま使う場合もあるなら継承。
委譲だと、親クラスのメソッドがそのまま使える場合でも、
わざわざラップするメソッドを定義してやんなくちゃいけなくなったりする。
個人的には委譲で不便を感じないなら委譲でいいのでは?と思う。
このスレ見ていていつも思うことがある。 それは、プログライミング系の雑誌やシステム系の雑誌で何かの用語が特集されると、 途端にその用語がこのスレでも使われ出す、ということ。 それまではスレ内じゃ一度も登場してなかった用語なのに、雑誌の発売日以降、突然増えるのが特徴。 しかもその用語を使うヤツは、さも「俺は前から独自に知ってましたよ」とでも言わんばかりの 知ったかぶり具合をするヤツが多く、かなりイタイ。雑誌からの受け売りがバレてるっつーの。 そんなイタイ人が多用する最新キーワードは、「comet」。
423 :
nobodyさん :2007/02/08(木) 11:11:43 ID:iJ/aT7sA
>>422 よくわからんけどそれは雑誌を見てそのキーワードがでて読んだけどそのキーワードの中でわからない部分を
みんなに教えてほしいからじゃないのかい?
>>423 ちがうっしょ。
「教える側」として登場するヤシが突然増えるから笑えるんっしょw
425 :
nobodyさん :2007/02/08(木) 11:23:25 ID:bIt9x03i
session_start()によってサーバ側に生成されたセッション・ファイルについて質問です。 いろいろ古くなって溜まってきたセッション・ファイルを、 phpのガーベッジ・コレクション機能とは別に、自前でcronでスクリプト走らせて削除したいのですが、 どうやったら出来ますでしょうか? セッションファイルの所有者はapacheでパーミッションも600なので、 phpスクリプトからは削除できない・・・ですよね??
テキストフォームで echo "<input type=\"text\"〜(略)〜 value=$title>"; みたいに、渡された$titleを更新後のテキストフォームで表示させたいんですが 「あいうえおかきくけこ」みたいにスペースが入っていなければ良いんですが、 「あいうえお かきくけこ」みたいに途中でスペースが入ると「あいうえお」と表示されてしまいます。 $titleにはちゃんと「あいうえお かきくけこ」が入っていることは確認しました。 よろしくお願いします。
427 :
軟式PHP :2007/02/08(木) 11:25:52 ID:???
>>426 なぜtypeはダブルコーテーションを値で囲ってvalueは囲わないのだ。
428 :
軟式PHP :2007/02/08(木) 11:27:20 ID:???
ごめ、日本語ミスw 値をダブルコーテーションで囲って。
>>425 だったら、cronじゃなくて、
定時にアクセスしたユーザーのtriggerで削除すればいいのでは?
430 :
nobodyさん :2007/02/08(木) 11:30:41 ID:sV/97bzR
$num = "870"; // 数値文字列をセットします printf("Number: %d"); // 出力: "Number: 0" /* printf()の型指定子 "%d" だと、数値文字列を扱う場合 "0" になってしまいます。 フォームからの入力なので、値は常に数値文字列となってしまいます。 入力された値を数値(int)に変換すればいいのですが、printf()だけで実現するにはどうすればできますか? よろしくおねがいします。 */
>>427 はじめダブルクォーテーションでのくくり方がわからなかったのですが、やってみたらうごきました。
ありがとうございました。
>>425 セッションファイルが入ってるディレクトリに書き込み権限があれば削除可。
ファイルそのものの所有者は関係ない。
>>430 printf("Number: %d", $num);
434 :
nobodyさん :2007/02/08(木) 11:38:39 ID:sV/97bzR
>>433 おっと、
>>430 は記述ミスです。
printf("Number: %d", $num); // 出力: "Number: 0"
本当はこう書いたのですが、結果は "0" が出力されるだけです。
"%s"にする方法もあるのですが、なるべくなら"String"としては扱いたくないのです... と、言ったらもう方法はありませんよね?
435 :
軟式PHP :2007/02/08(木) 11:52:31 ID:???
>>434 俺の環境じゃ求める結果(Number: 870)が表示されたけど・・・。
まぁ、無難にprintf("Number: %d", (int)$num);でいいんじゃないかい。
>>425 つか、cronでwgetを発動させて、apache経由で削除すれば?
437 :
nobodyさん :2007/02/08(木) 12:23:04 ID:rsMBt22x
携帯、パソコン両方に対応したサイト作ってる人に質問なんですが 文字エンコーディングはどうしてますか? 全部SJISで作ろうかと思ったんですが、文字化けに悩まされそうで悩んでいます。 それとも 完全に別に携帯用に作ったほうが良いのでしょうか?
438 :
nobodyさん :2007/02/08(木) 12:25:32 ID:bIt9x03i
>>429 なるほど! そういう手もありますね。でも結局phpスクリプトからの操作っていう点でcronの場合と同じですよね?
>>432 そうなんですか! 今すぐ試してみます。
>>436 えと…、wgetでどうやって削除したらいいのでしょうか?(wgetってテキストブラウザですよね??)
440 :
虚弱PHP :2007/02/08(木) 12:39:28 ID:???
>>430 暗黙の型変換で数値になるはずだけど…?
数値にならない方が不思議。こっちの環境でも"Number: 870"が表示されるよ。
441 :
nobodyさん :2007/02/08(木) 12:56:58 ID:GCOH+L/4
「表示」という文字の文字コードを16進数で知りたいのですが どうやって検索しているのでしょうか? 表示⇒悔ヲ になってしまうので、原因を知りたいです
>>422 その極みがWeb2.0だしな。バカは流行に飛びつくもんだよ
443 :
nobodyさん :2007/02/08(木) 13:01:56 ID:ayF7eYHr
潤オ
>>442 まあweb2.0は一般的にも流行してるから、まだ分かる。
それよりも、明らかにネタ元がバレてるマイナーな用語ってのが笑えるんだよ。
たとえば「comet」は、明らかに『日経ソフトウェア』1月号の発売日以後にこのスレに登場ww
このスレの過去ログをずっと見てると、他にも同誌で特集された言葉や概念などが
たびたび発売日直後に登場してるのが笑えるよww
446 :
虚弱PHP :2007/02/08(木) 13:09:58 ID:???
>>441 こういうことでいいのかな?
print(bin2hex('あいうえお'));
>>445 そいつも笑えるけど、お前もかなり笑えるよwww
「Web2.0」なんてどうせ死語になるでしょ、そのうち。 みんな使っているから必死になって意味とか調べてみたけれど、なんのことだかさっぱり。 そんな概念どうでもいいっつーの! それと「.0」ってなんだよ。
449 :
虚弱PHP :2007/02/08(木) 13:13:11 ID:???
ああ、でも
>>441 の問題はSJISの問題っぽいね。
450 :
nobodyさん :2007/02/08(木) 13:17:20 ID:GCOH+L/4
エスパーサーセンwww
>>443 文字を入力して、それを書く文字コードを16進数で見て原因を調べたいのですが。
皆さんどのように調べているのかなーと・・・
自分で調べられるようになれば、自分で解決できるようになると想ったので
>>446 文字が表示される ⇒ 文字が悔ヲされる
になるので・・・
1文字だけ文字化けしてしまうのはなぜかなと
>>449 らしいです。
PorなんとかSQLのDBに格納しているらしいんですが、
保存して表示させると上のような状態になってしまいます。
ちなみに、レンタルサーバーを借りているので、データベースの中身を見れないんです
(友人の借りたサーバーなので見れないです。)
「うぇぶ とぅー ぽいんと おー」 ……「Web2.1」というのもあるのか。。 明確な定義もないのに、よくこんな言葉使えるよな。恥ずかしいよ俺には。
>>441 ・テキストエディタで保存して、バイナリエディタで見る
・PHPのbin2hexやprintf("%X", ord(文字))で表示してみる
・「文字コード表」でググる
・winなら、スタートメニュー→アクセサリ→システムツール→文字コード表とかw
ちなみにこの問題の原因は、バックスラッシュの文字コード5c
>>451 なんでもかんでも「定義」だの「仕様」だのにこだわるあたりが
いかにもキモヲタ技術者っぽいね、お前www
世の中は混沌と曖昧で漠然としてるからこそ、人間らしくて楽しいのに。
455 :
虚弱PHP :2007/02/08(木) 13:23:53 ID:???
「悔ヲ」で検索してもOKw
>>437 面倒なのでSJIS
携帯向けとPC向けで、
文字コード関連でファイルを分ける意味なんてあるの?
457 :
Comet :2007/02/08(木) 13:36:55 ID:???
Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet Comet
458 :
443 :2007/02/08(木) 14:00:19 ID:UoNNxMva
>>450 んな難しく考えなくても
「表示 文字化け」とぐぐればアホみたいに出る。
phpでの解決方法とかだったら phpもつければ
それもまたアホみたいに出る
459 :
nobodyさん :2007/02/08(木) 14:08:28 ID:MeU4ydPI
phpのスクリプトを有る会社から譲ってくれと言われているんですけど、 何人月で見積もって出すか迷っています。その会社に人月で聞かれているので。 自作でだらだらと作ってきたので、工数が正確に出せないんですが、 php5.0でオブジェクト指向を取り入れた設計をして、 ステップ数5万行程度の規模です。(ステップ数で言うのも何ですが…) この規模のスクリップを開発するとしたら、何人月でやりますか? 目安を教えていただけると嬉しいです。
>>459 まず、何のスクリプトだよ?
話はそれからだ。
内容や難易度によっても見積もりは変わるだろう。
>>459 つーか譲ってくれなどと言ってくるということは、
既にフリーか何かで公開していて、ソースは向こうに渡ってるのか?
(そうじゃないと向こうはスクリプトの内容は判断できないよな)
462 :
nobodyさん :2007/02/08(木) 14:14:32 ID:eP2/+NGu
EUCとShift_JISの両方混じったPHPスクリプトをテストしたいのですが、 php.iniにどう設定したらいいのでしょうか?
463 :
nobodyさん :2007/02/08(木) 14:16:44 ID:MeU4ydPI
>>460 確かに、そうですね。
簡単にいうと、グループの作業の進捗管理ソフトです。
ある業界に特化してつくったので、既存の進捗管理ソフト(projectなど)では、
代用が難しいので、多分私のところに話しが来たのだと思います。
DB(MySQL)も使っていて、テーブル数は119個です。
難易度は、特段難しい技術を使っていないので、ごく普通だと思います。
464 :
nobodyさん :2007/02/08(木) 14:20:43 ID:MeU4ydPI
>>461 そうですね、あるコミュニティーで少し自分のサイトのそのスクリプトを
宣伝したのが、きっかけです。ソースは公開していないです。
アカウントを希望者に発行して、
サンプルのアプリが動いているような感じです。
>>463 ある業界特化型のグループウェアってところ?
その会社は既に使ったことがあるから「譲ってくれ」って言うんでしょ?
だったらそのまま使わせて、毎年のライセンス料でも取ればいいじゃん・・・と思ったのだが
そういうことじゃないのかな?
>>459 著作権についての書面等、契約もしっかりね。
119個はすごいな。3人月〜6人月ぐらいはあるんじゃないか?
>>464 なるほど、ASPっていうか、とにかく自分のサーバにサンプル置いてて、
testログインして動作を確かめられるようになってるわけね。
そしたらそのまま有料ASPにして月額取るか、
あるいはソースを暗号化コンパイルして渡して一括で数百万取るか、
どっちかでいいんじゃない? 人月とかじゃなくて、ソフト価格として値段設定すればいい。
もちろん生のソースなんか渡さない。Windowsとか普通のソフトと同じ考え方ね。
どうしてもソースが必要というなら、プラス1千万円くらいで譲渡か。
とにかく安易なソース譲渡とダンピングだけはやめてくれ。業界全体も迷惑だし。
469 :
nobodyさん :2007/02/08(木) 14:26:05 ID:iJ/aT7sA
preg_matchとかを数回使う場合例えば $array=array(''あ,'い'); preg_match($array,$str,list($a,$b)); $a="あ"; $b="い"; みたいに 用は複数のpreg_matchを1行で記述するようなことはできませんでしょうか?
たしかにテーブル119個って、いったいどんだけ大規模なんだよ、とww
471 :
nobodyさん :2007/02/08(木) 14:37:35 ID:MeU4ydPI
>>465 >>466 >>467 >>468 >>470 詳しいレスありがとうございます。
そうですね。使用料制とかだとサポートが大変そうなので、
ソースも含めて全て売りたい感じです。
向こうにもPHP技術者がいるので、向こうでソースをいじって
更にカスタマイズしたいらしいです。私もサポートがいらないので楽なんです。
取扱説明書と環境設定と2ヶ月間のサポートをつけて、
6人月×60万円(SE単価 by ネットで調査しました)=360万円位で、
安いと思いますか?高いと思いますか?
>>471 値段とか価値観は相手の使い方や自分の労働力によって決まるから
まずは自分のことを考えて自分が作った時間的(レベルも考え)にもし会社で働いた感じでまずは値段をつけてみる。
次に相手のことを考えて相手にはこれくらいの価値はあるはずだとかこれを使うことによりどれだけの仕事が短縮できるとかを値段でつけてみる。
んで、自分都合の値段と相手都合の値段で高いほうをもらうってのはどう?
さらにソースも渡すわけだから当然その分も上乗せしないといけないけど。
サポートの範囲も定義しとかないとダメだからな。
そうだよね・・ ってか下スレで質問する内容なのか?w
476 :
462 :2007/02/08(木) 15:02:34 ID:???
どなたかおねがいします(><)
477 :
nobodyさん :2007/02/08(木) 15:03:22 ID:MeU4ydPI
>>472-475 色々ありがとうございます。
直接、相手にソフトを売るなんて初めてなので、色々難しいです。
> 安すぎ。最低500万
500万!!!。そんなにもらえたら、いい車が買えるなぁ。
> 会社で働いた感じでまずは値段をつけてみる。
私の会社給料安いので、その感じで付けると6人月×30万円=180万円にしかならないです…
> 相手にはこれくらいの価値はあるはずだとか
それでいくと、多分6人月×60万円(相手企業の技術者のSE単価?)=360万円
とすると、360万円?
> サポートの範囲も定義しとかないとダメだからな。
確かに、そうですね。そこはよく話し合ってみます。
> ってか下スレで質問する内容なのか?w
すみません、ずっとこのスレを見ながらプログラムをしていたので、つい…
他に適切なスレがあれば、誘導していただけると嬉しいのですが。
2chを頼りにしようというのが間違ってるんではないでしょうか
2ちゃんは信用するものではなく参考にするものだろう。 精査し、判断するのは自分。 とか言ってみる。
自分の技術の価値って自分じゃわかりにくいものだからねぇ。
>>476 どういう風に混ざってるのかわかんないとねー
普通混ぜないからねー
483 :
469 :2007/02/08(木) 15:25:13 ID:sVZUhklk
>>476 ってかどっちかに統一したほうがいいと思う。
あとあとメンテや変にトラブったりしてもめんどうじゃない?
誰か俺のほうも・・・
個人だから甘く見られて高くすると買ってもらえないと思ってるだろ。気持ちわかるが。 でもソースとその権利まで全部うっぱらうなら 先方はあんたが得た金以上の金をそのスクリプトを使って稼ぐと思うよ。 まあ最低500万だろうな。119個のテーブルがどの程度必要かにもよるけど。
485 :
nobodyさん :2007/02/08(木) 15:29:38 ID:MeU4ydPI
>>478-
>>480 どうもありがとうございました。
自分が思っている以上に、ソフトウェアの相場って高いんですね。
趣味でだらだら2年位かけて作ったものが1,000万円の価値を
産むなんて、すごい、のひと言です。景気がいい業界だなぁ〜♪
そうしたら、1,000万円+αでアタックして交渉してみます。
今、別に今回のソフトよりも、世間に役立つようなソフトの
プログラミングに着手しているので、すごくやる気が出てきました。
色々、ありがとうございました。とても参考になりました!
486 :
虚弱PHP :2007/02/08(木) 15:39:16 ID:???
>>469 よくわかんないけど、preg_match_all()じゃダメ?
ちなみにあなたはプログラマ? 業界特化ならその業界の売り上げもどんなものか気になるね
488 :
nobodyさん :2007/02/08(木) 15:43:25 ID:2T63cspu
すみません、質問です 作ったプログラムを実行したら Parse error: parse error, unexpected ',' in C:\Program Files\Apache Group\Apache2\htdocs\php5_samples \my_sample\chap2\upload\upload.php on line 35 というエラーが表示されるんですが、 “予期しない「,」がある” という35行目を見たところ <?php しか書いてありません なにがおかしいんでしょうか? 秀丸エディタの問題かなぁ??
>>485 あと、営業テクニックを教えてあげよう。
もしキミが仮に「500万なら売ってもいいかな」と考えているとしよう。
その場合、初めっから「500万でどうですか」なんて正直に提示しちゃダメだよ。
2段階くらい高めにふっかけないと。たとえば700万とか、適当に。
そしたら必ず相手は値切ってくるから、そしたらこっちは「うーん」と唸りつつ、
仕方ない、じゃあ熱意に負けたので下げますよ…という芝居を打って、段階的に下げる。
一番いいのは2段階下げ法。具体的には以下のようにやれ。
客:「で、いくらですか?」
お前:「これこれこういう契約で、総額700万でどうですか」
客:「高いなぁ、もっと下げてよ」
お前:「うーん、、、難しいなぁ、、、分かりました、じゃあ●●を削って600万円で」
客:「それでも予算オーバーだな」
お前:「じゃあサポート期間を短くするのでしたら、550万円でいいですよ」
客:「もう一声!」
お前:「ううん、まいったなぁ。わかりました、お客さんには負けましたよ。500万でいいです」
こんな感じね。
もちろん実際にはこんなスムーズにはいかないだろうけど、基本はこう。要するに、
「2回値引きした段階で、実は本来の自分の希望金額になるよう提示する」
「値引きする際は、単に引くんじゃなくて、もっともらしく理由をつける」
この2点を守ること。
ホントはこの営業テクニックのコンサル料として50万くらい欲しいけど、
まあお前には同じ零細業者(SOHO?)として頑張って欲しいからタダでいいよw
>>488 エラーメッセージの正当性にいちいちこだわってられるかよ。
前後5行見せてみろ。だいたいこういう場合は1個上の行に問題があることが多い。
491 :
nobodyさん :2007/02/08(木) 15:48:46 ID:sVZUhklk
>>486 すみません、多分駄目なような気が・・。
>>488 その上下の行は?
PHPの行を消しながら確認してみるといいよ
>>489 まあ最初の700万にある程度妥当性がないとダメだけどな。
価値が500万程度のものを
2000万で売りたいから最初3000万で打診とか
普通にけられて終わるし。
493 :
虚弱PHP :2007/02/08(木) 15:52:33 ID:???
>>491 やっぱりよくわかんないから、もっと普通の具体例だして。
正規表現パターンに(aaa|bbb)みたいなの使えば何とでもなるような気がするんだけど。
正規表現あんまり詳しくないからわかんないけど、もっと高度な使い方もできると思うし。
それから、マルチバイトならmb_eregじゃないとダメじゃないかな。
494 :
489 :2007/02/08(木) 15:53:21 ID:???
>>492 そりゃもちろんそうだ。
「自分が売ってもいいと思ってる金額」と、
「相手が買ってもいいと思うであろう金額」が
大きく乖離してないことが条件だ。
こんなの言うまでもないことだけど。
>>489 じゃあそのコンサル料を20万に負けてください
496 :
nobodyさん :2007/02/08(木) 15:57:47 ID:6+5PgVsz
phpでファイルに文字を書き込んでいるのですが たとえば、「ソケット」と書き込んだときに「ソ\ケット」と書き込まれて しまいます、これはどうしてなんですか、それとどうすればこれを防げますか?
500 :
虚弱PHP :2007/02/08(木) 16:04:02 ID:???
>>496 関係あるかわからんけど、
php.iniのmagic_quote_gpcの設定はどうなってる?
>>488 1個前の行のセミコロンがぬけてないか?
503 :
虚弱PHP :2007/02/08(木) 16:18:17 ID:???
>>502 Offに設定してくださいませ。百害あって一理なしだから。
505 :
nobodyさん :2007/02/08(木) 16:31:39 ID:BUxOVquO
たくさんのメールを送信しなくてはいけないんですが、 メール送信が終わるまでユーザを待たしておくわけにもいきません。 (それにたぶんタイムアウトしてしまう) こういう時ってどう組むのが定石なんでしょう?
>>505 待たせるって?
ユーザーが大量にメール送信するってこと?
スパムサイト作る気?
>>506 メール大量=スパム、という脊髄反射イクナイ。 会員向けメール送信とか普通にいくらでもある。
>>505 ユーザーの操作で送信リスト(あて先、内容など)をDBに登録 → cronでそれを読み出して送信、とか。
508 :
nobodyさん :2007/02/08(木) 16:39:45 ID:BUxOVquO
>>506 違う違う違います。
メルマガみたいなものを想像してください。
購読している人が1000人くらいいて、
管理者がブラウザ上で文章書いてポチッとsubmitすると
購読している人にメールが送信される感じです。
実際につくるものはメルマガでも何でもないんだけど、
不特定多数にメールをばら撒くようなものではないです。
>>505 その場合200件ずつリロードしながら送るように設計するオレ素人
レンタル鯖なんだが、「表\示」をDBにぶち込むと「表示」となってしまう これは仕様なのかな? ちなみにSQLはPなんとか
>>505 送信1回ごとにsleep1秒入れたら?
1000秒かかるがwwwww
512 :
虚弱PHP :2007/02/08(木) 17:07:38 ID:???
header("Location:
http:/***.com ");
で、指定したURLに移動出来ますが、フレームページの移動には
どうすればいいのでしょうか?
HTMLのリンクで言うと
<a href="
http:/***.com " target="mainFrame">
こういう風にターゲットを指定出来ればと思います。
>>485 いいなぁ・・・うらやましい。
俺が作ったBBSやWikiを含んだ総合型CMSのプログラムなんて、
自サイトで使ってたら、厨がソース公開してくれとか言ってくるだけだし・・・
それを断ったら、「オープンソースがどうのこうの…」ってわけのわからない事を言ってくるし…
だれか、俺の作ったプログラムかってくれねぇかな…
インストーラを作ったら、MovableTypeなんて相手にならない程の多機能CMSなのに・・・
>>513 フレームで取り込んでいるページを
Locationで移動させればいいんでない?
516 :
軟式PHP :2007/02/08(木) 17:55:42 ID:???
>>514 >それを断ったら、「オープンソースがどうのこうの…」ってわけのわからない事を言ってくるし…
ワロタ!オープンソースって言いたいだけちゃうんかと・・・って返信したいww
517 :
nobodyさん :2007/02/08(木) 18:04:35 ID:9YpDw7Ju
518 :
nobodyさん :2007/02/08(木) 18:07:04 ID:WJKeKNaJ
質問です。英文字名前の会員リストをソートしようとして 読み方ではなく、大文字<<小文字という優先で 意図した並びにならなかったので・・・ usort($cell, "cmp_desc"); ・・・ function cmp_desc($a, $b){ ・・・ //名前は全部小文字で比較 $a = strtolower($a); $b = strtolower($b); としたのですが Ojixxx HOxxx haxxxx fevxx Mobixxx となぜかO H h f Mという順に。何が間違っているのでしょうか?
519 :
nobodyさん :2007/02/08(木) 18:11:13 ID:9YpDw7Ju
はっ 配列 比較なのに 変数が配列で書いてない! お騒がせしました
521 :
nobodyさん :2007/02/08(木) 18:28:39 ID:eP2/+NGu
>>521 順番に読んでいってください。
そしてもし詰まったらその詰まったところをここ書いて聞いてください。
>>514 最近はオープンソース乞食が増えて困るね。
オープンソースの精神を自分に都合よく捻じ曲げ、他人の労力を盗む口実にしようとするバカども。
>インストーラを作ったら、MovableTypeなんて相手にならない
じゃあ、まずはインストーラ作ればいいじゃん。
誰か買って…って他力本願で待ってるんじゃなくて、自分から行動しろよ。
524 :
nobodyさん :2007/02/08(木) 18:41:27 ID:8PkH2v3G
php内から自ファイルをincludeしたら何が起こりますか?
525 :
443 :2007/02/08(木) 18:42:01 ID:UoNNxMva
>>519 ググればできる。
設定に依っては本来のアドレスになったりする。
>>525 すいません、検索したけど見つからなかったです。
よろしければ、ページを教えていただけませんか。
検索したキーワードを書いてください。 話はそれからです。
PHP ホスト ポート プロトコル URL で検索しました。よろしくお願いします。
>>524 聞いてるヒマがあったら自分でやれバカ。
>>514 ここじゃなくてどっかまともな所でそのサイト宣伝してきたらいいんじゃね?
531 :
528 :2007/02/08(木) 19:10:22 ID:???
19時30分までに解決したいと思ってますが
>>532 の優しさは、ホンマ五臓六腑に染みわたるでぇ〜
535 :
521 :2007/02/08(木) 19:36:48 ID:eP2/+NGu
>>535 >マニュアルのdirname,pathinfo参照。
それは無いだろw無知が下手な回答するなって。
答えは
>>531 がそのものズバリを書いているだろ。
>>535 PEARで使い方がわからない時は、ソースを読むのが基本。
中途半端な解説を読むより、ソースを見れば使い方なんて一発でわかるだろ。
>>535 英語で書かれているので訳してみてはいかがでしょう
540 :
521 :2007/02/08(木) 19:53:36 ID:eP2/+NGu
Calendar::prevMonth() だとCalendar.phpを呼び出すとprevMonth()が使えることを覚えました。
>>540 日記は自分のブログにでも書いてろ!カス
542 :
521 :2007/02/08(木) 19:59:21 ID:eP2/+NGu
;;
>>542 俺は、
>>541 ではないが、PEARみたいなソースが公開されているような
プログラムの使い方が分からなければ、ソースを嫁!ってのは、
PHPマニュアルを嫁ってのと同じくらい当たり前の事。
544 :
521 :2007/02/08(木) 20:06:18 ID:???
了解です。 精進します。
>>519 $_SERVER["SERVER_PROTOCOL"]
$_SERVER["HTTP_HOST"]
$_SERVER["SERVER_PORT"]
$_SERVER["SCRIPT_NAME"]
でどう
546 :
519 :2007/02/08(木) 20:14:35 ID:???
>>537 ありがとうござます。がんばってみました。
/**
* リクエストされた URL のディレクトリ部分の URL を返します。
* 末尾にはスラッシュが付きます。
*/
function RequestDirectoryURL()
{
$isSSL = array_key_exists('HTTPS', $_SERVER) ? $_SERVER['HTTPS'] : false;
$host = $_SERVER['SERVER_NAME'];
$port = $_SERVER['SERVER_PORT'];
// URL のプレフィクスの部分を取得する
if (! $isSSL) {
$prefix = '
http:// ' . $host;
if ($port != 80) {
$prefix .= ':' . $port;
}
}
else {
$prefix = '
https:// ' . $host;
if ($port != 443) {
$prefix .= ':' . $port;
}
}
547 :
545 :2007/02/08(木) 20:14:42 ID:???
httpsは$_SERVER['HTTPS']の有無を見たほうがいいかも
549 :
519 :2007/02/08(木) 20:15:43 ID:???
// ドキュメントルートからのパスを取得する $path = $_SERVER['REQUEST_URI']; // ファイル名部分を削除する $slash = strrpos($path, '/'); if ($slash !== false) { $path = substr($path, 0, $slash + 1); } // URL を返す return $prefix . $path; }
いま「うたばん」で、石橋がモー娘の新メンバーについて 「ヤワラちゃんに似てるって言われない?」と言ってたが、 俺はサッカー英国代表のウェイン・ルーニーに似てると思う。
>>550 そういう話をだすおまいはSOHOスレの住民だろ、まちがいないw
クマー
553 :
nobodyさん :2007/02/08(木) 20:40:18 ID:UoNNxMva
>>549 お前・・・これくらいのが書けるんだったら
リファレンスで必要な関数を探せるようになっとこうだぜ?
>>551 ハァ? SOHOスレってどのスレだよ。
>>554 わかるやつはわかる。わからないやつはわからないスレw
>>554 ■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
SOHOやフリーでWeb制作してる奴 二十人目 [Web制作]
Ads by Goooooooooooooogle Part74 [Web収入]
【破産記念】PC-SUCCESSとの思い出を書き込むスレ [自作PC]
【MT】 Movable Type質問スレ 【Six Apart】 2 [ブログ]
ものすごい勢いで誰かが無料サーバを探してあげるスレ7 [レンタル鯖]
postされた内容を記録する場合のサンプルコード無いでしょうか
>>557 $fp = fopen("log.txt", "w");
foreach ($_POST as $value) {
fputs($fp, $value . "\n");
}
fclose($fp);
あとは自分でアレンジしてくれ
>>557 if($_POST['post']) {
$fp = fopen('log.txt', 'a') or die('failed open file');
fwrite($fp, $_POST['post']);
fclose($fp);
}
ありがとうございます
マルチスレッドでデータ受信(html)する方法ってありますか?
563 :
nobodyさん :2007/02/08(木) 22:06:10 ID:Q5k/rDuP
PHPでフォルダに入ったファイルを全て表示したいのですが どうやってできますか?
アドレス欄にディレクトリURLを入力 エンター
565 :
nobodyさん :2007/02/08(木) 22:22:25 ID:UoNNxMva
>>563 ぐぐる。
テンプレを300回読む。
お好きな方でどうぞ
うぜえ回答者だ・・・ マニュアル読んだらわかるに決まってるだろ めんどくさいから聞いてんだよ
無償で回答するボランティア精神旺盛な人力検索どもはやく答えてやれよ
>>563 $dir=@opendir("ディレクトリ") or die("ディレクトリののオープンに失敗しました");
while($file = readdir($dir)) {
if (!is_dir($file)){
echo $file ."<BR>";
}
}
closedir($dir);
>>563 , 567, 568
function showList($dir)
{
$handle = opendir($dir)
exit("Cannot open the directory.");
$lists = array();
while (false !== ($file = readdir($handle))) {
$lists[] = $file;
}
closedir($handle);
}
// オープンするディレクトリのパス
$dir = "example/";
$lists = showList($dir);
foreach ($lists as $list) {
echo "$list<br>\n";
}
572 :
570 :2007/02/08(木) 23:06:32 ID:???
そんなバカなぁー!! 無償で回答するボランティア精神旺盛な人力検索ロボットのボクが、ミスをしてしまった。 ロボットコマンド: 自爆
>>571 gdthmub.php でぐぐれ
<img src="gdthumb.php?path=url&mw=oo&mh=oo&qualith=00">
ただ画像がおいてあるサーバーによっては、gdthumb.php内のfile_exists(○○)をコメントアウトしないと動かない
今日は大漁ですね
>>573 ありがとうございます。
それで検索してみましたが、やりたいこととはちがうものでした…
ユーザが指定した画像URL(
http:// 〜)をリサイズしたい。というものですので
これだと自サバのみですよね
オブジェクト指向初心者です ZendFramework0.7.0の ZendFramework-0.7.0/incubator/demos/Zend/Mail/SimpleMailer.php の142行目 function whitelistParam() { throw new Exception('Unknown type or param not in whitelist'); } の意味が分からない 最後の$SimpleMailer = new Demo_Zend_Mail_SimpleMailer(); でコンストラクタの中で$this->whitelistParam(); としてる以外には使われてない この例外が投げられる状況を作るとエラーになる try〜catchはどこにありますか?
サーバ(さくらのですが)で$GLOBALSで指定した変数が使えないのですが、 これって何が設定されていないんですかね? $GLOBALSを使わないと表示されたので、そういう時はPHP側でどうすれば いいかと思い、質問しました。
>>さくらで聞け
>>563 .htaccess作って
Options +Indexes
>>577 throwは条件関係なしに例外投げれる
最近ID出さない質問者への回答少なくなってきたね。 治安がよくなった。
$hoge="ABCDEF"; で$hogeの後ろから2文字を抜き取る場合 substr($hoge, length -2) でいいらしいんだけど こんな書式ってマニュアルにあるか?
586 :
nobodyさん :2007/02/09(金) 00:42:48 ID:LhHZiFrN
mysqlに格納されているデータをEXCELに移すプログラムを組んだのですが、 EXCELに入ると文字化けしてしまいます。 EXCELにはShift-JISしかダメなのでしょうか? ちなみにMySQLはUTF-8です。 格納するときに、mb_convert_encoding($str,"SJIS");をしても文字化けが直りません。
第3引数に"UTF-8"
588 :
nobodyさん :2007/02/09(金) 00:51:18 ID:LhHZiFrN
589 :
nobodyさん :2007/02/09(金) 01:08:17 ID:MmgCUOIm
590 :
nobodyさん :2007/02/09(金) 01:24:24 ID:DjPopakS
mb_convert で文字コード変換しているのですがよくエラーが起きます。 「変換できませんでした」みたいなエラーなんですが何でこんなにエラーがおきるんでしょうか?
変換できなかったんじゃね?
592 :
nobodyさん :2007/02/09(金) 01:28:40 ID:LhHZiFrN
>>587 少し疑問なんですが、
第三引数を指定するのと指定しないのでは、どういった違いがあるのでしょうか?
数字を表示する時、整数部の3桁ごとにカンマをいれたいんですが、どうしたらいいですか? 12345→12,345 98765432→98,765,432
>>582 >>1 >>589 それだけの情報じゃさっぱり分からないので勘で答えますが
おそらく検索語句のクエリが上手く渡せてないんじゃないかと
>>590 あなたの環境か関数の使い方が悪いんじゃないでしょうか?
>>592 マニュアル見ても分かりませんでしたか?
>>592 指定しないとphpがmb_internalに則って良きにはからってくれる。
が、良きだったことはあまりないので、自分で指定した方が良い。
というか指定しない理由がわからん。
>>596 あー、指定しないとそういうことがおきるのかー
てっきり指定しない=自動変換 だと思ってました
んなもん読めば分かるだろうに、 と思ってmb_convert_encoding()のマニュアルを読んでみたら、 mb_detect_order()へのリンクはあるのに mb_internal_encoding()へのリンクが無いな・・・
600 :
590 :2007/02/09(金) 01:52:13 ID:DjPopakS
$hoge = mb_convert_encoding($hoge, 'SJIS', 'EUC-JP');(たまに'auto'を使います) と、いたって普通だと思いますが… 環境はXREA、PHP5です
バッククオータ使ってシェルいじるとき、 $result = `whoami` としますよね、 この``内部を変数としたい場合、どのように書けばいいんでしょうか? $command = "whoami"; として × $result = `$command`; × $result = `"$command"`; 上記ともにだめでした。 ちなみに $result = `whoami`; はうまくいきました。
>>601 $result = $command;
$result = `.$command.`;
$result = '"+$command+"'
$result = ★$command★
>>582 $About = new AboutMe();
を
$About = new AboutMe("");
するとPHP4でも動くようになる。
>>582 class AboutMe
{
public $name;
public $email;
public $phone;
function AboutMe() {
$this->name = "デイビッド田中";
$this->email = "
[email protected] ";
$this->phone = "011-81-333-333-3333";
}
}
これは?php4の鯖ないからためせないんだが
っつーかPHP4ってアクセス権ないやろ
>>582 >>608 が指摘してる通りなのだが、
一応丁寧に説明すると、publicをvarに変えればいい。
$hogeに入っている文字列を調べて、 hogeが2つ以上入ってたらという処理を書きたいのですが、 if (count(preg_match_all('/hoge/', $hoge)) > 2) { } とかやってみたのですがだめでした。 どう書けばいいのでしょうか?
マルチバイト文字列の先頭から一文字ずつ取り出したいのですが、 どうやるのが作法というかパターンなんでしょうか。 $len = mb_strlen($text); for ($i = 0; $i < $len; ++$i) { $c = mb_substr($text, $i, 1, 'utf-8'); } みたいにmb_substrで一文字ずつとり出すという方法もありますが これだときっと長さに対して二乗のオーダーがかかりますよね。 これを線形オーダーでやるにはどうすればよいのでしょうか。
612 :
nobodyさん :2007/02/09(金) 06:58:15 ID:f5umYit9
613 :
nobodyさん :2007/02/09(金) 07:07:42 ID:f5umYit9
614 :
611 :2007/02/09(金) 07:12:48 ID:???
>>613 レスどうもです。でもマルチバイト対応じゃないっぽいですね。
615 :
nobodyさん :2007/02/09(金) 07:40:05 ID:f5umYit9
616 :
nobodyさん :2007/02/09(金) 07:51:10 ID:a1CDQoYm
serializeした配列をpostしてからunserializeすると、 エスケープ記号\が加わってしまいます。 これをあとで取り除いてもいいんだけど、 こうならないにはどうすればいいでしょうか。
617 :
419 :2007/02/09(金) 08:43:38 ID:x8Mw8N2D
>>421 レスありがとうございます。
委譲って言うんでしたっけ。そういえば(汗
そうなんですよね。委譲で十分のような感じを受けたので疑問におもちゃって。
昨日AMAZONから「PHPによるデザインパーターン入門」が届いて読み始めたんですけど
この本はよさげです。(注:まだ58/312ページしか読んでないので保証はしません)
勉強してみます。
しかし、PHPに抽象クラスとインターフェイスがあったのは知らんかったOTZ
>>616 magic_quoteのせいじゃないかしら
>>617 前からほしかったんだけどこの前やっと注文したー 今から楽しみ
PHP5.1.6 mysql5.027 で PDO prepare の時のエラーが無視されてExceptionが発生しないのは、PDOのバグですか?
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); エラーを不用意に見せないために、デフォルトでは例外発生しないようになってるのか…
621 :
616 :2007/02/09(金) 10:27:45 ID:a1CDQoYm
622 :
nobodyさん :2007/02/09(金) 10:51:19 ID:lxf0p46R
csvをunsetで詰めたり、ある行を編集したい場合なのですが --リスト.php-- 1.csv読み込み 2.多次元配列に置き換え array[行][列] 3.編集したい行をPOSTして、編集phpにわたす --編集.php-- 1.csv読み込み 2.多次元配列に置き換え array[行][列] 3.POSTされた行を確認表示、フォームに編集内容をいれる 4.新しい配列array[行][列]を作る 5.csvに新しい配列を書き込む 書き込む間に、他の人にcsvを編集されたら 行の順番とか、おかしくなってしまいますよねぇ? 書き込む時に再度csvを読み込んでその配列と 最初に読んで編集しているcsvの[行][列]が同じか確かめてから ロックして書き込むものなのでしょうか?
623 :
虚弱PHP :2007/02/09(金) 10:53:40 ID:???
magic_quotes_gpc もFAQに入れないとダメだね。
624 :
虚弱PHP :2007/02/09(金) 10:54:18 ID:???
>>622 編集中は他の人が同じcsvに触れないようにする。
吐いたロックをかけてその中で編集する
読んでなかった サイド比較でいいやん
627 :
nobodyさん :2007/02/09(金) 11:04:01 ID:lxf0p46R
編集を選んだ時点で、ファイルをロックしたとして 送信せずに、ずっと窓を開いていたら 固まらせていたづらできたりしないのでしょうか?
日本語でおk
>>627 セッションが切れるまで待つか、
もしくは、前にIDを保持しておいて、後優先で前IDをキーに
ファイルを削除するかアペンドするとかすればいいじゃん。
csvファイルをcvsで管理する
プロセス A がCSVのロックを確保に挑戦 プロセス A がCSVのロックを確保に成功 プロセス A がCSVの値を読み込み 編集行を確認表示 プロセス B がファイルのロックを確保に挑戦 プロセス B がファイルのロックを確保に失敗(待つ) プロセス A が編集を送信せずに放置 プロセス A がファイルのロックを開放 プロセス B がファイルのロックを確保に挑戦 プロセス B がファイルのロックを確保に失敗(待つ) プロセス B がファイルのロックを確保に挑戦 プロセス B がファイルのロックを確保に失敗(待つ) プロセス B がファイルのロックを確保に挑戦 プロセス B がファイルのロックを確保に失敗(待つ) と
632 :
nobodyさん :2007/02/09(金) 11:23:23 ID:UHvtYEz/
fsockopen使ってPOST要求を行っているのですが ファイルを送る場合はどのように記述をすればよろしいのでしょうか? 今はContent-type:application/x-www-form-urlencodedですがmultipart/form-dataとかになるのでしょうか? その他必要なヘッダとか教えてほしいのですが・・。 POST要求の内容を見るソフトとかあれば一番分かりやすいんですけどないですよね?
>>632 firefoxのlive http headersとか
>>632 PHPだとmultipartの場合は生のPOSTデータが取れないんだよね
Perlとかでどうなってるか確認してみたらどう
というかRFC読めばわかると思うけど
必要なヘッダーは
Content-type: multipart/form-data; boundary=データ中に現れない文字列
のみ
あとは各パートをboundaryでつないで送る
--boundary
part1のヘッダー
part1のデータ
--boundary
part2のヘッダー
part2のデータ
--
635 :
nobodyさん :2007/02/09(金) 11:47:30 ID:UHvtYEz/
会社の仕事で、今までperlだったんですが急遽上司の我侭で phpを使う羽目になり、(私自身使ったことのない)phpを 無理に勉強して、会社で使うスクリプトを全部phpで書き直した んですが、mbstringsで引っかかってます。 会社で数社のレンタルサーバを借りておりサーバAでは mbstringsが仕様不可、サーバBではmbstringsが使えました。 同じスクリプトをAとBで動かすと、 Aで文字化けするため、mb_emulatorを入れたんですが、 今度はBで定義済みを再定義したとFatal Errorが出ました。 AとBで違うスクリプトを組めば普通は解決するんですが、 A、Bだけではなく数社分あり、しかも上司が(上司自身、 phpをまともに使えないのに)自分でアップや設定、 メンテナンスまですると言い出して、全く同じスクリプトを A、Bで動かさねばいけません。 readmeすらろくに読まないで、ちょっとでもわからないと 何度でも同じ事を聞いてくる上司です。サーバにあわせて includeを削除してくれと言って分かる人ではありません。 「スクリプト側でmbstringsの状況を調べて、mbstrings導入済み サーバではmb_emulatorをincludeしない」という便利な方法は ないでしょうか? よろしくご教示お願いします。
>>636 extension_loaded('mbstring')で調べりゃいい
そんなことよりもincludeを削除してくれない
上司をどうにかする方が先決だと思うが
そんな世の中だから
それがどうにかなるぐらいなら世界はもっと平和だ
>>637 ありがとうございます。さっそく調べてみます。
私自身php初心者なこともあり、
php 定義済みの関数 mbstringsではまともな情報がヒットせず、
定義済みの関数、mbstringsだけだとヒットしすぎな上に、
上位100位は役に立たず悩んでおりました。
extension_loaded関数でなんとかなりました! 本当にありがとうございました!
system()に変数渡して ファイルの書き込み処理を行いたいのですが、 うまくいきません。 $var = "(色々な文字列)" $var = escapeshellcmd($var); $command = "sh -c 'echo \"".$var."\" > ".$file_path."'"; system($command); としているのですが、うまくいきません。 $var が単純な文字列の場合は通るので、 エスケープ処理周りに問題がある気がしますが・・・。 どなたかお助けを。
644 :
nobodyさん :2007/02/09(金) 13:41:15 ID:CMIK3uYs
pearのソースがたくさんみれるところありませんか?
646 :
軟式PHP :2007/02/09(金) 13:42:16 ID:???
初心者ですがよろしくお願いしますm(__)m PHPを使ってDB内のデータを取り出そうと考えたのですがDB syntax エラー と表示されてG・Yで色々調べて見たのですが… phpadminで オープンオフィースのCSV形式でインポート php4です
649 :
nobodyさん :2007/02/09(金) 13:50:51 ID:CMIK3uYs
pearの公式サイトってそんなにソースないと思いますが・・・気のせいですかね?
650 :
軟式PHP :2007/02/09(金) 13:51:11 ID:???
ワロタw
>>649 気のせいじゃなくて君のせいじゃないかな
>>649 pearのパッケージ全部インストールして、
片っ端からテキストエディタで開いてみたらいいと思うよ。
>>649 マニュアルのサンプル見て関数の使い方がわかれば十分だろ
655 :
nobodyさん :2007/02/09(金) 14:15:18 ID:CMIK3uYs
公式サイト、ところどころソースがないページもあったんです。 しかもpearって検索するとどこも公式サイトのパクリページしかでないんですよ。 まじでわらいましたねw パッケージ全部インストールしたくないです。
>655 そんなクマー
DLして展開するのもめんどくさいのか。
>>657 そのうちソース読むのマンドクセって言い出すと思われwww
PHP版のNAMAZUを運用している方いらっしゃいますか? 使い勝手やらcgi版と異なるんでしょか?それとも完全移植できてるんでしょか?
>>647 echo mysql_error().'<br />';をmysql_query();の後にでも追加してその内容ここに貼り付けれ
>>659 PHP用のNAMAZUインタフェースはたしかほかのやつと一緒のはず
wikiにあるような2つの文字列を比較して差分をハイライトにする にはどうしたいいですか?
EmeditのProを買う⇒ウマー
<? if( line1 == line2 ){ ?> <tr> <? }else{ ?> <tr bgcolor="yellow"> <? }?>
>>664 一行ずつ比較するってことですね
ありがとうございます
666 :
虚弱PHP :2007/02/09(金) 15:52:01 ID:???
>>662 diff関係のライブラリを使うのがよさげ。
また、不毛な議論を何度も何度も。 所詮ツールなんだから、何使おうが勝手にしろよ。 美味しい料理を作ることより、 どこのブランドの調理器具を使うかに、 熱くなっていることの馬鹿馬鹿しさに早く気づけ。
>>669 職場のストレスをこんなところで吐き出すな。
汚らしい。
0.9/1.0/2.0全対応でRSSread/writeをきっちり扱えて安心して使える スタンダード的なRSSライブラリってPHP意外と無いような気がする
672 :
667 :2007/02/09(金) 18:10:12 ID:???
もっとまともな回答を大至急宜しくお願いね!
RSSの書式は1.0にしても2.0にしても決まってるわけだからその通りに書き出せばいいだけじゃないの? 何を求めてるんだろう?
3eb7
つか、ここはスクリプト探しスレじゃないだろ
676 :
nobodyさん :2007/02/09(金) 18:34:58 ID:Z/aYWN/K
すいません、このスレで聞いてよいものかどうか悩んだのですが 他に適当なスレも見つからないものでここでお聞きします。 自作の掲示板にmail()を組み込んで、 返信があった時にメールで通知できるようにしたいと考えています。 そこでふと疑問に思ったのですが、 mail()によって送信されたメールの宛先が存在しなかった場合、 そのエラー通知はどこに帰って行くのでしょうか? 一般的なメールは送信者の元にエラーが帰ってくるわけですが、 mail()の場合にエラーの戻り先を明示しておくことは可能でしょうか?
678 :
632 :2007/02/09(金) 19:02:56 ID:RgD5xDfl
いろいろ調べてやってみたのですが以下のようなエラーがでてうまくいきません。 エラー内容は↓。 渡しているのはcgiiなんですがフォーマットがおかしいようなメッセージがでてきます。 cgi-lib: reached end of input while seeking end of headers. Format of CGI input is wrong. 今のPOST内容はこんな感じです。 POST /〜 HTTP/1.1 Accept: */* Accept-Language: ja Content-Type: multipart/form-data; boundary=test Accept-Encoding: gzip,deflate User-Agent: 〜 Host: 〜 Content-Length: 〜 Connection: Keep-Alive Cache-Control: no-cache Cookie: 〜 --test Content-Disposition: form-data; name="upfile"; filename="test.jpg" Content-Type: image/pjpeg (ファイルデータ) --test Content-Disposition: form-data; name="b" 1 --test-- 区切りは問題ないと思うんですけど何かおかしいところとか確認したほうがいいような部分ってありませんでしょうか?
679 :
nobodyさん :2007/02/09(金) 19:09:18 ID:CMIK3uYs
MySQLに接続したいのですが以下のエラーがでます。 ホスト名もユーザー名もパスワードも間違ってません。 どなたかご教授お願いいたします。 Fatal error: Call to undefined function mysql_connect() in C:\hajimetenoHP\apache2.2\htdocs\bennkyou\detabase\MySql\mysql.php on line 12
>>679 >PHP 5+
>MySQL はデフォルトでは有効とならず、PHP に MySQL ライブラリも付属
>しません。
php.benscom.com/manual/ja/ref.mysql.php
>>678 もうPEARのHTTP_Requestでアップロードした方が早いんじゃね?
もしくはソース読んでフォーマットがどうなってるか調べるか
683 :
679 :2007/02/09(金) 19:27:46 ID:CMIK3uYs
c:/phpにパスを通してlibmysql.dllを読み込ませたらエラーがなくなりました。 ありがとうございました。
684 :
nobodyさん :2007/02/09(金) 19:31:32 ID:8bXEGUkj
PEARの話が最近出ているので、私も使おうと検索してみたのですが、 前のレスにあったようなコマンドラインからインストールを実行するものばかりでした。 PEARをDLして展開すると、{PEAR}\PEARの中にphpファイルがありますが、 インストーラーを使わずに、これを直接インポートする使い方では、 まずいのでしょうか? 感覚的には、smartyの様にフォルダをそのままおけば、 すぐ使えるものだと思っていたのですが。 ローカル環境なら素直にイントールできるのですが、 サーバーはレンタルでコマンドの実行環境がないので、困っています。 PEARをsmartyのようにインストーラを使わずに、 直接インポート(inquire)するような使い方を解説しているサイト又は本が あったら紹介していただきたいのですが。 宜しくお願いします。
685 :
632 :2007/02/09(金) 19:34:52 ID:RgD5xDfl
>>682 そうですねー。 ありがとうございました。
>>684 別にまずくない
シェルが使えない環境なら普通にそうする
687 :
nobodyさん :2007/02/09(金) 19:57:56 ID:CMIK3uYs
すいません質問させてください。 PHPから2ちゃんねるのsubject.txtの内容を取得したいのですが、 2ちゃんブラウザと比べて、2ちゃんねるの鯖に負荷がかかってしまうのでしょうか?
なんでそういう疑問を持ったのか
689 :
nobodyさん :2007/02/09(金) 20:25:19 ID:EOlGKsj6
全角かどうかをチェックする関数を教えてください。
651 有難うございますm(__)m SQL文 調べてみます
691 :
nobodyさん :2007/02/09(金) 20:28:59 ID:Bpr6LmFw
692 :
nobodyさん :2007/02/09(金) 20:37:31 ID:8bXEGUkj
>>686 さっそくの返事、ありがとうございます。
今環境を四苦八苦しながら整えているのですが、
PEARディレクトリを置いて、
ini_set("include_path", '{rootDir}/PEAR' . PATH_SEPARATOR . ini_get("include_path"));
と書いて実行するまでは出来たのですが、
PERAディレクトリの中に「REST」とか「Installer」とか不要と思われるディレクトリがあります。
手動でインストールされた場合、皆さんはこのような不要なものを削除していますか?
クラスの依存関係が全く分からず、要・不要の区別がつかないので安易に削除できないのですが、
ゴミであれば消したいと思います。
その点について解説したサイトなどご存知であれば教えていただきたいです。
先日 PHP5.2.0 と Apache2.2.4 を導入して今Apache起動に成功したところですが、 phpファイルを表示してくれません。 php.iniファイルの場所が違うのかなと思って./php/go-pear.batを起動し、 7. Name of configuration file : C:\php\php.ini に変更してEnter押したんですが Fatal error: Call to undefined method PEAR_Error::set() in phar://go-pear.phar/P EAR/Start.php on line 263 となって困っています。 それでphp -r phpinfo();で確認すると Configuration File (php.ini) Path => C:\php\php.ini になっているのは良いのですが上手く出来ません。 OSはXP homeです。どなたかご教授よろしくお願い致します。 バッチファイル起動する時のAre you installing a system-wide PEAR or a local copy? はyesと書かずにそのままEnter押しました。
694 :
687 :2007/02/09(金) 20:55:17 ID:CMIK3uYs
すこしでも負荷削減したいと思って独自スクリプトを組みたいんです。
695 :
693 :2007/02/09(金) 20:55:52 ID:???
ごめんなさい。誤爆です。
>>692 PEAR.phpがあるディレクトリがルートディレクトリで
その階層にあるPEARディレクトリ以下のファイルは
(シェルからのパッケージマネージャ関連のファイルが入ってるので)
ライブラリとしてだけ利用する分には基本いらないが
PEARのライブラリ全般に関してはパッケージ単位で管理されてるから
無理に消さない方が無難ちゃ無難
依存関係はPEARのサイトで各パッケージのdependenciesを見たり
各ソースの最初の方で何をrequireしてるか見る、てかソース嫁
697 :
693 :2007/02/09(金) 21:00:09 ID:EFMG8h81
>>695 いや、誤爆じゃないですが・・・自演乙です
まぁ不快でありましたら他所で聞きます。ご迷惑おかけしました。
IDださないからこうなる。
>>693 apacheの設定ファイルに
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php
こんな感じのは追加した?
>>691 板違い
>>699 phpファイルとしては認識してるんじゃないか?
まあどっちにしろ、このスレでは終了してるみたいだが。
701 :
nobodyさん :2007/02/09(金) 21:18:30 ID:8bXEGUkj
>>696 たしかに、公式ページに依存関係が書いてました。失礼しました。
やっと、何とかこれで先にすすめそうです。ありがとうございました。
これで最後の質問なのですが。
新たなパッケージを導入する時の場合のやり方の確認をさせて欲しいのですが、
例えば、HTTP_Downloadパッケージを手動で取り込む場合、
「HTTP_Download-1.1.1」フォルダの中に、
以下のファイル・フォルダがありますが、
--------------------------------------
[Download]ディクレトリ
[tests]ディクレトリ → 不要な気もしますが…
LICENSE → 不要な気もしますが…
Download.php
--------------------------------------
このファイルを全て[PEAR]ディレクトリに全てコピーする
やり方で問題ないでしょうか?
やってみて、"一応"動いてはいるのでは問題は無さそうなのですが、
問題ないかどうかだけでもいいので、返事をいただけると嬉しいです。
>>701 Download.phpとDownloadディレクトリだけでいい
問題無いって言ったら信用するのかねチミは
705 :
nobodyさん :2007/02/09(金) 22:10:06 ID:8bXEGUkj
>>702-704 お返事ありがとうございました。助かります。
>>704 そうですか、、問題ありですか。
問題点が分からないのですが、もう少し自分で色々中身を見てみます。
ありがとうございました。
[test.txt] aiueo kakiku sashisu $a = file('test.txt'); $b = array('aiueo', 'kakiku', 'sashisu'); if (in_array('aiueo', $a)) { echo 'aiueoがみつかりました'; } if (in_array('aiueo', $b)) { echo 'aiueoがみつかりました'; } というコードで、$bのaiueoは見つかるのですが、 $aのaiueoがなぜか見つかりません。 print_r($a); print_r($b);をすると、微妙に行間があいてたりして違うのですが、 これが原因なのでしょうか?
707 :
軟式PHP :2007/02/09(金) 22:32:21 ID:???
>>706 file関数は改行コードも読み込むんでそれで差異が出てるんだろう。
$a = array("aiueo\n","kakiku\n","sashisu\n");
という状態になってる。
PHP 5.2.1 Releasedあげ
709 :
707 :2007/02/09(金) 22:45:14 ID:???
ありがとうございます。 マニュアルを調べて、 foreach ($a as $k => $v) { $a[$k] = rtrim($v, "\n"); } print_r($a); で、$bと同じっぽくなったんですが、 これでもaiueoが抜き出せません・・・一体どうすればorz
710 :
706 :2007/02/09(金) 22:46:03 ID:???
>>707 すみません。名前とレスアンカー間違ってました。
711 :
nini :2007/02/09(金) 23:27:12 ID:mE8G6xQQ
_new_ ← これはどんな意味があるのでしょう?
同じになっているのか 同じっぽくなっているだけで実際には違うのか ということを確認してみてはいかがでしょう
713 :
706 :2007/02/09(金) 23:30:28 ID:???
foreach内でやったところ解決しました。 どうもありがとうございました。
>>711 定数じゃね?
正確に知りたければソースうp
715 :
nini :2007/02/09(金) 23:46:07 ID:mE8G6xQQ
$aaa = pg_escape_string( $_POST['aaa'] == '_new_' ? $_POST['aaa'] : $_POST['bbb']);
ええと、その_new_は文字列だと思う
ズコー
718 :
706 :2007/02/10(土) 00:36:02 ID:???
>>713 は偽者です。乙かれさまです。
まだ解決してません。
PHPでタグのシステムを組みたいんですが、テーブル設計で どこまで正規化するのがいいか悩んでます。 アドバイスまたは参考サイトへの誘導をお願いします。 要素はタグとなるkeywordと、エントリーとなるentryID 1つのentryIDに対して、複数のkeywordを関連付ける。 ・entryIDに関連付けられているkeywordを取得する ・keywordとして関連付けられているentryIDを取得する ・一定期間内でのkeywordに使われているタグのカウント数の比較
フォーム送信元のURLはどうやるとわかりますか?
723 :
nobodyさん :2007/02/10(土) 05:50:19 ID:jzFap9MY
>>709 なんでわざわざ"\n"に限定するかな
$a[$k] = rtrim($v);
でいいだろ
それか
$a[$k] = rtrim($v, "\r\n");
725 :
nobodyさん :2007/02/10(土) 08:59:35 ID:IlOugN3m
$str = 'カナ文字'; $match = array(); preg_match_all("\x8E[\xA1-\xDF]",$str,$match);//(ここが30行目) このやり方では Warning [PHP]: preg_match_all() [function.preg-match-all]: No ending delimiter '' found in file page.php line 30 こうなるんですけど、どうすればいいですか?
727 :
nobodyさん :2007/02/10(土) 10:59:50 ID:vQO2zESw
複数の返り値を返すテストをしているのですけど、 こんな感じでいいのでしょうか? list ($b, $false) = func(); if ($false == false) { echo $b; } function func() { $a = 1; if ($a == 1) { $b = "Hello"; return array($b, false); } return true; }
デリミタをデミリタって読んでた奴いるだろw ('A`)ノシ
いいんじゃない。 複数の返り値が返ってきてるんでしょ? コード的にどうなのと言われれば冗長な部分が多いと言わざると得ないけど
>>727 return true;
よりも
return array("", true);
のほうが好きだな
731 :
nobodyさん :2007/02/10(土) 11:11:40 ID:vQO2zESw
>>729 >複数の返り値が返ってきてるんでしょ?
はい、そうです。
>コード的にどうなのと言われれば冗長な部分が多いと言わざると得ないけど
すみません・・・ちょっと言葉の意味が難しくて理解できませんでした;
>>730 2つ返してるときはtrueでも2つ返したほうがいいのですね。
勉強になります。
732 :
nobodyさん :2007/02/10(土) 11:14:34 ID:L8Z9jlaW
PEAR::HTML_AJAXを使ってるのですが、 WinのIEで旨く動作しません。 キャッシュの問題だと思われるのですが、旨い解決方法はあるのでしょうか? ちなみにプロキシアクセスを利用しています。
>>732 ってか、プロキシはやめろよ。犯罪だろw
∩___∩ | , '´l, | ノ\ ヽ | , -─-'- 、i / ●゛ ● | | _, '´ / ヽ、 | ∪ ( _●_) ミ j iニニ, "● ∪ ヽ、 彡、 |∪| | iニニ、_ ', / ∩ノ ⊃ ヽ 〈`'ー;==ヽ、〈ー- 、 ! ( \ / _ノ | | `ー´ ヽi`ヽ iノ .\ “ /__| | ! / \ /___ / r'´、ヽ `´ヽノ
735 :
nobody :2007/02/10(土) 11:33:01 ID:vW5genQg
ftp_connect()で Fatal error: Call to undefined function: ftp_connect()がでます 何ででしょう?ヽ(´ー`)ノ
>>735 マニュアルを読め、そして英語を和訳しろw
定義されてないからだねヽ(´ー`)ノ
チャットの入力チェックで、文字数制限しています。 単位はbyteで、文字数を超えると、 エラーメッセージで、300byte以下にしてくださいと出してるのですが、 普通の人の感覚だと全角1文字=2byteで、150文字までOKと思ってるんですよね。 実際は文字コードがUTFなので、100文字程度なのですが、 byteだと混乱を招きかねないので、他の方法にしたいのですが、 単位が文字なんてのは可能でしょうか? 半角も全角も1文字としてカウントするような関数があれば・・・
mb_strlen()
>>738 だったら
「半角計算で200文字まで」
ってエラーメッセにすればいいだろ。
742 :
738 :2007/02/10(土) 11:56:30 ID:???
自己解決しました。ありがとうございました。
743 :
738 :2007/02/10(土) 11:59:22 ID:???
>>740 どうもありがとうございます。
これでできそうですねー
argsの設定が少しわからないので調べながらやってみます。
>>741 それはユーザーに不親切ですよ・・・
まあ一番いい解決方法は、ID出さないバカには答えない、ってことだなww
>>1 連呼するやつとか、煽るだけでめんどくせー偽者のほうが、
よほど迷惑だわな。
回答側としても偽者は見極めるのがめんどくさいから出ないでくれ。
スイマセン、質問です いま、./docディレクトリいかにあるドキュメントとディレクトリを一覧表示する プログラムを本を見つつ作ってます。 大体の仕組みは以下の通りです。 ・一覧化されたディレクトリ名をクリックすると、そのディレクトリに入る ・どのディレクトリに移動しても、同一のindex.phpを使う ・なので、index.phpに表示するディレクトリを指定するため、index.phpを 開くたびに変数$dir(hiddenで渡す)を参照 ・doc/ ディレクトリを表示してる時以外は、「上位ディレクトリにもどる」 というリンクがある。(このリンクはAタグ内でjscriptのsubmit()が仕組まれていて $dirを引数に持たないことで、初期ディレクトリ「./doc」に返す処理があります) で、実際のソースを見るとこの部分は以下のようになってるんですが if(isset($_POST['dir'])){ $curPath=$_POST['dir']; if($curPath!="./doc"){ ?>//$curPath は現在のパスを示す変数 <div align="right"> <form name="fm" method="POST" action="index.php"> <input type="hidden" name="dir" value="<?php print(dirname($curPath)); ?>" /> [<a href="JavaScript:document.fm.submit();">上位ディレクトリ</a>] </form> となってるんですが、 [<a href="JavaScript:document.fm.submit();">上位ディレクトリ</a>] の[ ] の意味がわかりません このカッコはどういう意味でしょう? すみません、教えてください。
>>747 特に意味はないと思うよ
見た目の問題だけだから気に入らないなら自分の好きな括弧に変えたらいいよ
あ、ほんとだ。。 ブラウザに表示されるタダの括弧ですね。。 死ぬほど恥ずかしい、すみません、ありがとうございました<(_ _)>
なぜ実行する前に聞くのか不思議だ・・・
753 :
nobodyさん :2007/02/10(土) 12:41:54 ID:/f7lIysC
difineの中に変数いれ、使用場所で適応する事は可能ですか?
釣りAAのストックが切れたよママソ
>>753 defineね。可能ですよ。evalの類なのでお勧めしませんが。
$varからある文字列を含む行を削除したい場合、 $var = ereg_replace("^.*ある文字列.*$", "" , $var); で間違ってますでしょうか? なぜか該当行だけでなく、 全文削除されてしまいます。
とりあえず行とは何ぞやと考えてみれ あと、よく分かってなかったら正規表現使うな
preg_replace"/^.*ある文字列.*$/m", '', $var);
"("がなかった汗
760 :
632 :2007/02/10(土) 14:31:33 ID:nbd9unzg
あるWebページを読み込みながら特定の文字列があるか調べてなかったら 再度そのWebページを読み込みながら別の処理をしたいんですけど $fp=fsockopenのソケット接続を再度開きなおすしかないでしょうか? $fp=fsockonep(); while (!feof($fp)) { $line=fgets($fp); //処理1 あれば処理終了 } fclose($fp); $fp=fsockonep(); while (!feof($fp)) { $line=fgets($fp); //処理2 }
761 :
756 :2007/02/10(土) 14:36:38 ID:???
>>758 ありがとうございます、いけました。
>>757 正規表現は一応ある程度使えた気になってたのですが、
行頭である ^ と改行以外の. 、そして行末の$で指定しているのに
どこが問題あるのかがよく分かりません。
762 :
nobodyさん :2007/02/10(土) 14:41:26 ID:wI7bOeNe
動的にSQL文をつくっているのですが、その際に、 COLUMN_NAME IN ('1', '2', '3') の「'1', '2', '3'」を動的(数は可変)を作る必要があります。 $tmp = array(1, 2, 3); $whereSQL = "COLUMN_NAME IN ("; for ($i = 0; $i < count($tmp); $i++) { $whereSQL .= "'" . $tmp[$i] . "'"; if ($i != count($tmp) - 1) { $whereSQL .= ", "; } } $whereSQL .= ")"; のようにやっているのですが、もっと簡潔に書ける方法ってありますか? このようなロジックが何回も出てくるので、もう少しすっきりさせたいです。
>>762 $whereSQL = "COLUMN_NAME IN ('".implode("', '", $tmp)."')";
764 :
nobodyさん :2007/02/10(土) 14:49:02 ID:cU51cKqo
>>762 何回もやる処理は関数にする癖をつける
配列はforeachを使う癖を付ける
これくらいかな?
765 :
nobodyさん :2007/02/10(土) 14:54:11 ID:wI7bOeNe
>>763 ありがとうございます。implode!こんな便利な関数が…
これからこれを使います。
>>764 確かに自作の関数の手もありましたね。ありがとうございます。
> 配列はforeachを使う癖を付ける
すみません、コレはどうしてでしょうか?
foreachはkeyとvalueがある時(つまり連想配列)に使うものだと思っていたのですが、
パフォーマンスが大きく違うということでしょうか?
5.2.1入れたやついるか?
>>765 少なくとも $i, count($tmp), [$i] が必要なくなってスリムになるでしょ
foreachは極力使わないように。 whileがオヌヌメ
769 :
nobodyさん :2007/02/10(土) 16:27:13 ID:wI7bOeNe
>>767 なるほど、確かに$iが現れなくなって可読性がよくなりますね。
ありがとうございました。
>>768 whileですか?
whileでやると、プログラム的に何もミスがないので、暴走しだして、
CPU使用率が100%が何度も発生して再起動を余儀なくされたことがあります。
危険な関数だと思って使わないようにしているのですが、今は改善されたのでしょうか?
>>769 while は関数じゃなくて制御構文
100%になるのは無限ループに陥っているからでアンタのミス
while(TRUE){} ←こういうのね
プログラム的に何もミスがない
whileが意志を持ってしまったのか
773 :
nobodyさん :2007/02/10(土) 16:56:07 ID:wI7bOeNe
>>770-772 そうでうか、、、私のミスですか。。。
スクリプトエラーも出ず、しかもwhileではなくforでやると
うまく行くので、原因がwhileにあるのかと思っていたのですが。
「無限ループ」を発生させないためのテクニックとか環境設定の方法とかありますか?
よくサンプルコードが検索でも出てくるのですが、怖くて使いこなせないです。
ちなみに、現在phpのバージョンは4.4です。
ちなみに、現在phpのバージョンは4.4です。
775 :
nobodyさん :2007/02/10(土) 16:59:09 ID:wI7bOeNe
すみません、ちなみにCPUはPentinum 4 3.06GHzで、メモリは1GBあります。
ちなみにCPUはPentinum 4 3.06GHzで、メモリは1GBあります。
>>773 php.iniのmax_execution_timeが長すぎのでは?
max_execution_timeとは、スクリプトの最大実行時間
max_execution_timeを数秒に設定すればループして再起動する事故は防げる
>>773 for にも無限ループはあり得るし for も while も変わらないよ
for($i = 0; $i < 10; $i++){ 〜 }
$i = 0; while($i < 10){ 〜 $i++; }
どっちにしろちゃんと終了するように書けとしか言えない
あとは while, for, foreach を目的に合わせて使い分けろってだけ
以下for(;;)かwhile(1)の争い
>>778 forに無限ループなんかネーダロw
そりゃ、$i<999999999999とでも設定すればそんな感じにもなるが、が、それは無限ループとは呼ばん
まず自分の無能さを理解して1からマニュアルでも読めば
\ ∩─ー、 \/ ● 、_ `ヽ / \( ● ● |つ | X_入__ノ ミ 、 (_/ ノ \___ノ゙ / 丶' ⌒ヽ::: / ヽ / /::: / /へ ヘ/ /::: / \ ヾミ /|::: (__/| \___ノ/:::
786 :
nobodyさん :2007/02/10(土) 17:31:55 ID:/f7lIysC
>>755 difine定数をひっぱってから
該当部分をstr_replaceで変換する事にしました!
>>780 for($i=0;$i==1;$i--){
echo "お前はアホか?";
}
>>787 それ無限ループになってない
$i==1が成立しませんよ
ヒント:成立しないから無限ループ
1回も実行されないだろっつー話
>>787 for は for(式1; 式2; 式3) の式2が TRUE の場合にループする構文
よろしいですか?
<?php for($i=0;$i<1;$i--){ print('お前はアホか?'); } ?> まぁエラー出るけどね
いくら下スレだからってこんな話どうでもいいだろw
<?php for($i=0;;$i--){ print('お前はアホか?'); } ?> でいいよもう
<?php for(;;) print('お前はアホか?'); ?> でいいよもう
799 :
nobodyさん :2007/02/10(土) 18:34:14 ID:LNL4DVEG
すごい根本的なところで詰まってしまったのですが メンバー登録を作っているのですが、メンバーを編集・削除する時に 1.CSV読み込み 2.編集 3.編集内容を変数に格納 4.… で、書き換えた内容をcsvに反映させたいのですが ファイルを扱う関数は任意の場所に書き足すだけですよね? 方法としてはいったんファイルを消して、再作成でしょうか?
<?php for(;print('お前はアホか?');) ?> でいいじゃん
>>799 編集だったら今のファイルを上書きでいいんじゃね?
またかよ!めんどくせぇ
807 :
nobodyさん :2007/02/10(土) 21:00:59 ID:BBA9P8iE
すいません、flockって1000アクセス/100クライアントで壊れたんですけど、 flockではなく、排他制御のシムリンクってどうですか? シムリンクがよさげならwinからlinuxに乗り換えたいと思ってます。
>>807 そんなにアクセスがあるなら、ファイルロックじゃなくて、
DBを導入した方がいいんじゃないの?
>>807 ソースを出す方が先だと思うがモードの問題では?
810 :
nobodyさん :2007/02/10(土) 21:56:37 ID:BBA9P8iE
モードはLOCK_EXです。終了も明示的にLOCK_UNと書いてます。 なんどベンチやってもこわれるんです。 winだからなのか、マシンの性能の問題なのか、いろいろ環境によるのでしょうか?
win鯖ってflockあるの?
>>810 終了はLOCK_UNせず直でfcloseした方がいいと思う
win環境のflockもアテにはしてないがとりあえずコード貼れ
813 :
nobodyさん :2007/02/10(土) 22:30:07 ID:BBA9P8iE
$file=file("test.txt"); flock($file,LOCK_EX); fwrite($file,time()); flock($file,LOCK_UN); fclose($file); だけです。これをabでベンチすると壊れる結果がみえました。
814 :
nobodyさん :2007/02/10(土) 22:31:41 ID:BBA9P8iE
訂正 $file=file("test.txt"); じゃなく $file=fopen("test.txt",'a'); でした
flock($file,LOCK_UN); 消しても壊れる?
特に必要性がない限り、明示的にファイルロックを解除するべきでない やってるスクリプトって多いが、害はあるのに解除する利点が無い気がする flock($file,LOCK_UN); ←ここでロックが無くなる fclose($file); ←ここでデータを書き出す事がある unlockする必要がないのはマニュアルに書かれている通り
817 :
nobodyさん :2007/02/10(土) 23:22:05 ID:BBA9P8iE
ロック解除してもやはりでます。 jmeterを使って同時接続クライアント数1000、リクエスト回数100でためしました。 ↑にかいたコードからエラーが187個でます。 はやりwinだからでしょうか? linuxも試してみたいのですが、環境がないもので・・
>fclose($file); ←ここでデータを書き出す事がある kwsk
>>807 使用するファイルを直接flockしてないよな・・・?
ロックファイル別に作ってロックして壊れたんならDB入れろとしか
どうしても気になるならwindowsでもvmwareなりcolinuxなり入れて unix(linux)環境作ってそっちで確かめた方がいいかも
822 :
nobodyさん :2007/02/10(土) 23:45:39 ID:BBA9P8iE
同じベンチでmkdirだと頑丈で壊れませんでした。 flockは信頼してはいけないんですね。勉強になりました。 いまから使わないPCにvine入れて検証してみます。 だれか無駄なことにつきあってくれませんか? じつはバレンタインデー近いのにさびしいんです。
winてローカル環境なんだろ? win鯖運用する訳じゃあるまいし、壊れたっていいじゃんw
824 :
nobodyさん :2007/02/11(日) 02:44:27 ID:W5easEVW
こんばんわ. 多分基本的な問題なのでしょうが,かれこれ1週間近く悩んでいるのですが,解決しないためここに書き込ませてもらいます. 今フォームをつくってPHPでそれを取得するといった事を行っているのですが,どうも日本語が入力されるとうまくいきません. 家での環境 Windows apache 2.0 php 5.20 ではうまく表示されるのですが ロリポップで稼動している Linux apache PHP Version 4.3.11 の環境下で行うと FIREFOXだと,ひし形の中に?があるような文字が表示される. IEだと文字によっては表示されるが,駄目な場合関係ない文字まで侵食して表示する.(例 <BR>→?BR>) このような感じになってうまく行きません. どなたかよろしくおねがいします.
おまえの環境とロリポの環境の文字コードが違うってオチないよな
826 :
nobodyさん :2007/02/11(日) 03:34:21 ID:uPheVmZi
画像をアップロードして表示する機能をつけようと思っているのですが、 アップされたすべての画像の横幅を同一サイズのサムネイルで表示したいと思っています 仮に、こちらが希望するサムネイルの横幅が500pixで、 アップされた画像が横1000pix、縦1800pixだとします するとサムネイルの横幅は元画像の1/2なので、縦幅も自動で1/2の900pixに指定したいのです
そうですか
してください。まずはソースを自分で調べて書くことから覚えましょう。
829 :
nobodyさん :2007/02/11(日) 03:40:39 ID:uPheVmZi
知らないなら知らないっていえよw アホwwww
phpかんけーねーよ imgのheight、width属性しらべれ
なんで丸投げしてくるんだ?回答者を馬鹿にしすぎた質問だな。
1/2にするロジックも分からないのか?
googleのスプレッドシートや予定表サービスなどのアプリケーションは、 phpだけで作ることができるんでしょうか。 javascriptで作れるんでしょうか。 教えてください。
834 :
nobodyさん :2007/02/11(日) 11:07:47 ID:p8W1LCax
ユーザーに誕生日を登録させたいんですけど、 プルダウンでつくると、2月31日とかも登録可能になるんです。 プルダウンのままで、そうならないようにするにはどうすればよいでしょうか?
>>816 =>821
中途半端な知ったか厨って、恥ずかしいな。
fclose($file); しても、ディスクにデータが書かれる保証は無いから、
お前の理論だと、flock() は常に正しく動かないぞ。
// flock($file,LOCK_UN);
fclose($file); ← ここでロックが無くなる。
// ...
←ここでデータを書き出す事がある
836 :
nobodyさん :2007/02/11(日) 11:10:50 ID:??? BE:448220467-PLT(15274)
基本は気にしない 気になるんなら月ごとに設定すればいいだけ ソースが長くなるしオススメできん
>>834 1. Javascript で何とかする
2. 2月31日とかで送信してきた場合にPHPで何らかの対処をする
まぁそんな日付で送信してくるユーザが正直に入力してくるとは思えないけどな
あと生年月日登録させるのっていろんなサイトにあるからどんなもんか見て回れ
838 :
834 :2007/02/11(日) 11:20:50 ID:p8W1LCax
表示まで変えるならJavascriptでないとだめなんですね。 とりあえずあのmi○iですらなんら2/31は画面に表示されることがわかって安心。 PHPで入力されたデータをいじることにしようと思います。
840 :
834 :2007/02/11(日) 11:28:32 ID:p8W1LCax
>>839 役に立ちすぎる関数です!
もう少しで2000年近辺のうるう年システムまで調べるとこでした。
ありがとうございます。
841 :
nobodyさん :2007/02/11(日) 11:31:50 ID:fgMlKiUp
googleのスプレッドシートや予定表サービスなどのアプリケーションは、 phpだけで作ることができるんでしょうか。 javascriptで作れるんでしょうか。 教えてください。
>>841 使ったことないし、どういうのかもわからないけど、
あれはAjaxでしょ。
見た目部分はJavaScriptを使ってるはず。
保存とかはサーバに保存するんだろうから、
サーバサイドの言語使ってるんだろうね。
おそらくPHPとJavaScript+XMLで作れると思うけど、
googleの場合サーバサイド部分はPython使ってると思う。
ありがとうございました。
>>835 原理的には正しい指摘だと思うが
違っていると思うなら、正しい動作を捕捉してあげれば?
>>839 なんでau3なの?
845 :
nobodyさん :2007/02/11(日) 12:43:04 ID:J08LXGSv
PHP4.4.4でメールフォームを作っています htmlspecialcharsした値をメールで送ると 「<s>test</s>」のような表示になるのですが <s>test</s>のように送るためにhtml_entity_decodeするのは危険ですか? 一般的にはどうしているのか教えてください
846 :
845 :2007/02/11(日) 12:45:08 ID:???
失礼しました >>「<s>test</s>」のような表示になるのですが 「&lt;s&gt;test&lt;/s&gt;」のような表示になるのですが
>>846 htmlspecialcharsの第二・第三引数を調べろ
848 :
nobodyさん :2007/02/11(日) 13:04:49 ID:48pGPPnN
$cは検索そのものに失敗した場合にだけfalseを返しマッチするものが ない場合には空の配列となっていると思うのですが分岐で正しい処理 が出来ません。どうしてでしょうか?。 $c = glob($m,$flags); if (count($c){ }else{ }
850 :
845 :2007/02/11(日) 13:08:26 ID:???
>>847 htmlspecialchars($str , ENT_QUOTES , 'UTF-8');
のように書けってことですよね?
そのように書いているのですが、
えっとどういう意味でしょう…
htmlspecialcharsした値をメールで送る意味がわからない
htmlspecialchars()しなければいいじゃん
>>844 > 違っていると思うなら、正しい動作を捕捉してあげれば?
マニュアルに書いてるとおりにすればいいだけだから、
わざわざ書いてないだけなんだけど、話の流れ読めてる?
例 604. flock() example
<?php
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // 排他的ロックを行う
fwrite($fp, "Write something here\n");
flock($fp, LOCK_UN); // ロックを解放する
} else {
echo "Couldn't lock the file !";
}
fclose($fp);
?>
>>849 ありがとうございます。構造上の間違いでディレクトリのパスを間違えていたのが
わかりました。
855 :
845 :2007/02/11(日) 13:14:52 ID:???
ということはメールで送る際はhtmlspecialcharsせずに 受け取った値をそのまま送るのが普通ということですね? そのように処理します、ありがとうございました
テキストメールだけなら HTMLメールだとセキュ対策は必要なんじゃね?
>>855 そういう考えは危険
なぜその関数をかけるかちゃんと調べたほうがいい。
そして理由を理解した上でかける場面とかけない場面を自分で判断すべし。
858 :
nobodyさん :2007/02/11(日) 14:30:39 ID:4stcKJah
PHP 5.1.6 pregの質問です。 preg_match_all('/("(?:[^"]|"")*"|[^,]*),/',$data,$result); ↑通常の場合普通に動くのですが、 稀に何らかのエラーで、エラーメッセージも無く、画面真っ白になるのです… 1. if ($result == false) 2. $error = (preg_match_all...) とかで、対処しようと思っても、その前の段階で真っ白… pregのエラーが起きた時に、何か対策はありませんか? (5.2以上なら、error処理が使えるのかもしれませんが…)
確実にエラーがでる場合をあげてくれれば なんか分かるかもしれない。
860 :
nobodyさん :2007/02/11(日) 15:03:19 ID:4stcKJah
CSVの解析で、8000文字くらいのHTMLコード込みのやつなんですよねぇ… それを1行にして、PREGかけてるのです。 ちょっと作ってみます
quotemeta() した変数をする前に戻したい場合、 簡単な方法ないでしょうか?
862 :
nobodyさん :2007/02/11(日) 15:10:03 ID:pydQX4kY
pearのHTML_AJAX使ってる人居る?
phpと関係あるかどうか分からないのですが、 適当なレスが見つからなかったので、ここで質問させて頂きます。 宜しくお願いします。 中国語が交じった本文を、mail($mailAddr, $subject, "中国語交じりの本文")で送信した
864 :
863 :2007/02/11(日) 15:44:57 ID:5DcDF0YV
すみません、下げてしまいました。
ほうほう、それでそれで?
2月11日(日曜日) 今日僕は適当なレスが見つからなかったので 中国にいる悪友に中国語が交った本文を送信した。
日記かよww
パイプライン(|)を含んだ文字列を正規表現で削除したいんだけど、 うまく処理できません。 |を無くせばうまくてきますが、 |が削除したい部分に含まれてると\|などのようにエスケープしても うまく一致してくれません。 |のエスケープ方法って\であってますでしょうか? preg_replace 使ってます。
>>869 バックスラッシュでいいんじゃね?
コード見せてみ?
871 :
863 :2007/02/11(日) 17:13:02 ID:5DcDF0YV
>>863 大変、申し訳ありません。コピペが途中までで送ったつもりになっていました。
失礼しました。以下、
>>863 の続きです。宜しくおねがいします。
---------------------------------
>>863 の続きです。
のですが、中国語の部分だけ文字が?又はなくなってしまいます。
mailの第3引数に渡す前に本文のエンコードを以下のようにやっているのが、
原因だと考えられるのですが、日本語も中国語も化けずに送信するには
どのようにすればよいでしょうか?ちなみに日本語だけならうまくできます。
$body = "中国語交じりの本文"; // 文字コードはUTF-8
$body = mb_convert_encoding($body, "JIS", "UTF-8");
>>871 JISが中国語をサポートしてないからだろ
UTF-8でそのまんま送っちゃえば?
JISって国家規格なのに、中国語を表示しろと。
874 :
JIS :2007/02/11(日) 17:34:19 ID:???
他国の言語なんて知るかよ!!
875 :
863 :2007/02/11(日) 17:34:29 ID:5DcDF0YV
>>872-873 早速のレスありがとうございます。
これなんですが、JISにエンコードしないで送ると、
日本語も中国語も読めない記号だらけのメールが表示されてしまいます。
それで、検索したらJISにエンコードしているサンプルコードがあったので、
エンコードしました。ただ、そうすると、中国語が…
始め、文頭にPHPと関係あるかどうかと申し上げたのは、
もしかして、受け手(メーラー)の問題なのかなぁとも少し思っておりまして。
日本製のメーラーのBeckyやOutlookExplressで見るには、JISにエンコードする必要があって、
中国語は何もエンコードしないで送れば、中国製のメーラーで見ると文字化けしないということでしょうか。
とすると、日本語と中国語が交じっている文章は日本語部分をJISをエンコードして、
中国語をエンコードしないということでしょうか。すみません、混乱しています。
Content-Type: text/plain; charset=UTF-8 とかのキャラクタセット指定のヘッダーを入れてみるとか 最近のメーラーがUTF-8サポートしてないって事はないと思うが
>>875 とりあえず OE, Becky は UTF-8 に対応してるよ
それで化けるというなら送信方法が悪い
ヘッダ部分に含まれる件名とか mb_encode_mimeheader でエンコードしておく
さらに以下をヘッダに追加
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
エンコードが必要なのは UTF-8 に対応していない一部のメーラー向けね
しかし混在が必須ならこの一部のメーラーは斬り捨て御免しかないと思うけどね
878 :
nobodyさん :2007/02/11(日) 17:59:38 ID:juAAk9Hj
会員宛の簡易メール配信のシステムを作りたいと思っています。 それで実験として以下のようなものを作りました。 for($i=0;$i<count($array);$i++){ if($i%10==0){ sleep(10); } echo $array[$i]." [".date("Y/m/n h:i:s")."]<br />\n"; } 実際には$arrayには会員のメールアドレスが入っているとして、 echoはmb_send_mailでメール送信するとします。 上記はカウント値が10の倍数になるごとに10秒sleepしているのですが、 このようにすることでサーバの負荷を軽減する事が出来るのでしょうか? それとも、もっと良い書き方があるのでしょうか?想定件数は1000件です。
>>875 のエンコード環境が自動選択じゃなくてJISを選択してたってヲチは?
gmailだと日本語+中国語も対応してんだけどな
880 :
863 :2007/02/11(日) 18:20:22 ID:5DcDF0YV
>>876 >>877 >>879 レスどうもありがとうございました。
教えて頂いた以下のヘッダーを両方入れたところ、見事表示されました。
--------------
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
--------------
ちなみに、BeckyとOEは表示フォントを「MS Pゴシック」ではなく「MS 明朝」にしないと
中国語は表示されないみたいです。
PHPというより、RFCの問題でしたね。失礼しました。
助かりました!どうもありがとうございました。
俺もそんな一斉送信のプログラム組んだりするのでそれ知りたいなぁ。
もちろんそんなこと考えたりしたr他にはBCCに10人くらいくっつけてsend_mail関数を使う回数減らしたりしたけど(当然バックグラウンドで)
どうなんでしょうか?
PHPが動くサーバとメールサーバが同じとして
>>878 のようにsleepした場合
PHP(Webサーバ)は10件ごとに休憩(厳密にいうと違うけど) メールサーバは10個のメールを次々と送った後次の要求がきてなければ休憩
sleepがない場合
PHPは全件のメール送信要求した後休憩(結果待ち) メールサーバは全件のメールを次々と送信して終わり。
あとPHPから離れてメールサーバの動きなんですが最初に送られたデータにはすぐ送信するでしょうけど
送ってる(処理中)間に新たにデータがきたらWebサーバみたいに複数のプロセスになって並列的な処理を行うのでしょうか?
それか1つの処理が終了して次の処理に移るのでしょうか?
1.もし前者としてsleepせずに命令を送り続ければ負荷が 最大になる=時間は短い
2.もし後者としてslleepせずに命令を送っても一定の負荷が続く=時間は長くなる
3.もし前者としてsleepしても2と同じようになる
4.もし後者としてsleepしても2とほぼ同じ
こんな認識であっていますでしょうか?
884 :
863 :2007/02/11(日) 18:39:11 ID:5DcDF0YV
>>881 情報ありがとうございます。
MTAまで、話が絡んでくると結構面倒な話ですね。
UTF-7って何のためにあるのか前から疑問に思っていたのですが、
もしかしたら、これのためにあったのかと思いました。
運用してみて、駄目なら考えたいと思いますが、ごく一部であれば、
制約事項として謳って対応したいと思います。
どうもありがとうございました。
>>883 MTAの設定による。あとはアドレスが携帯とかだと事情も変わる。
メールを沢山速く送りたい時には、たいていMTAを適切に設定した方が面倒が少ないよ。
PHPで作りたいなら、アドレスを入力する部分だけPHPで書いて、
あとはメーリングリストマネージャをDBと連動させて配信するとか工夫した方がよい。
>>885 ありがとうございます。
なるほど、そうですか。
メーリングリストマネージャとか全くわからないんでいろいろと調べてみます。
887 :
878 :2007/02/11(日) 18:55:00 ID:???
>>883-885 自分が気になっていることを883さんが書いてくれてるわけですが、、
やっぱりPHPと言うよりはサーバよりの知識や設備が必要になりそうですね。
レン鯖で考えていたのですが、ちょっと難しいかもしれませんね。
もう少し検討してみます。ありがとうございました。
>>883 php自体はMTAに配信キュー送るだけだし
php側でのその辺の負荷なんてしれてるような
sleep云々っつうよりどれだけの時間間隔でどれだけのでキューを登録するか
(cronで10分毎に配信スクリプト起動して1回1000通上限で配信とか)
のパフォーマンスを考えた方がいいんじゃないか?
もしそこでMTAが実際に10分で捌ききれるメール量を超えて
配信キューを登録してたらキューが溜まっていく=MTAに
負荷をかける時間が長くなる=負荷が高くなる、ってことだと思うので
ぶっちゃけ、PHPだけじゃ無理なの?
$urlに含まれる & を &に変換したいのですが、それ用のPHPの関数はありますか? なければ、置換させようと思うのですが、$urlに & があったばあい & になったり しちゃいます。 何かよい方法はありませんか?
891 :
nobodyさん :2007/02/11(日) 19:03:55 ID:VkyKiJWF
$_POST['action'] に値が入るか入らないか分からない時に、$_POST['action'] を if 文で制御する場合、NOTICE レベルのエラーを出力させないためには、 if (isset($_POST['action'])) { if ($_POST['action'] == 'アクション') { 処理; } } と、冗長に書く必要があるのでしょうか? if (isset($_POST['action']) == 'アクション') { 処理; } と簡略化して書くと、switch 文で正常に動作しなかったりと厄介なのですが・・・ ご意見をお待ちしております。
if(isset($_POST['action']) && $_POST['action']=='アクション'){ 処理; }
>>890 とりあえず
>$urlに含まれる & を &に変換したいのですが、それ用のPHPの関数はありますか?
ないと思うから置換だな。
&が&になるのはhtmlspecialchars とか使ってない?意味があってしてると思うので下手に&にしないほうがいいんでないかい?
( ゚д゚) (つд⊂)ゴシゴシ (;^ω^)
895 :
nobodyさん :2007/02/11(日) 19:41:15 ID:K2/pA7uO
phpで、 gifやjpegの画像と、ベクトル画像を合成するにはどうすればいいですか?
そんなことできないよん♪
ベクトル画像を自前でレンダリングしてGDで合成とか ImageMagickとか
>>863 mb_sendmail();とpho.iniの設定で出来ると思う。
あと、日本語で動詞の過去形が疑問文になる事はあるけど
その使い方は間違ってるぞ。
>>897 imagemagicならベクトルデータもいじれるんですね!
ありがとうございました
>>899 ( ゚д゚)
(つд⊂)ゴシゴシ
(;^ω^)
901 :
863 :2007/02/11(日) 21:13:04 ID:5DcDF0YV
>>989 どうも、レスありがとうございます。
実は、前のレスのその件はほぼ解決していたのですが、
2台あるサーバーで動作がおかしく前から悩んでいました。
が、教えて頂いたmb_sendmail関数を見ていたところ、
mb_internal_encodingという関数を発見し、もしかしてとやってみたところ、
文字コードのphp.iniの設定が両方の設定(EUC-JPとUTF-8)で異なっていることが分かりました。
今まで、文字処理系で動作が違うことに、ず〜と悩んでいたことが見事に解決しました。これぞ漁夫の利です。
本題とは違いましたが、非常に助かりました。どうもありがとうございました。
sleepなんて使うなよ・・・ time()使えよ
903 :
nobodyさん :2007/02/12(月) 00:29:44 ID:GEuosRXa
cronでabc.phpを24時間毎に実行させます。 しかしその24時間毎とは別にブラウザから不定期に実行させる場合もあります。 この場合cronで実行させるには1行目に#!/usr/bin/phpを記述しないといけないのですが、 ブラウザから実行させる場合は不要だと思います。 となるとphpファイルを2つ作るの(1行目だけ違う)もどうかと思うのですが、何か対処法はありますか?
905 :
nobodyさん :2007/02/12(月) 01:45:48 ID:0oNuwOQ6
みなさんデータベース抽象化レイヤって使ってますか? 使う予定のDBはpostgreSQLでなんですけど pg_connectで繋いだ方が早いという意見も見たし、データベースを変える事なんてそうそう無いとは思うけど。 でもPDOなら速度的にそんな変わらないし、例外投げてくれるからエラー処理が楽という話も見た。 PDO使うのが吉ですか?PEAR系は遅いし論外でしょうか?
使えるなら使うのがいいと思う
907 :
nobodyさん :2007/02/12(月) 02:29:17 ID:MCva2X8D
WindowsXP,PHP5.2.0ですが、タイムスタンプが1970/01/01より以前では、 エラーが起きます。 PHP5.1.0以降は大丈夫と書いていたんですが・・・。 どうすれば1970年より前をタイムスタンプできますか?
>>907 そもそも1970年以前にコンピューターが存在していない時代の
タイプスタンプを使うことが問題だろ。
技術云々の前に、その仕様が正しいかどうかを見直す方が先だ。
優先順位を間違えるな。
それは違うだろうという気がしないでもない
>>903 >この場合cronで実行させるには1行目に#!/usr/bin/phpを記述しないといけない
んなことはない。1行目に記述するのは楽をするためであって
「普通の」やりかたでスクリプトを実行すれば良い。
# 記述が長ったらしくはなるがな
php -f test.php
>>908 誕生日のデータをタイムスタンプで扱いたいときもあるさ
914 :
nobodyさん :2007/02/12(月) 06:06:11 ID:wLCo+QNl
セキュリティ検査をしたいのですが、検査コードがわかりません。 XSSになるようなコードとか、 SQLインジェクションになるコードとか、 検査用のコードと、どういう結果が返ってきたら問題なのかとか知りたいのですが、 そのようなコードが詳しく載ってるようなサイトとかないでしょうか? また1つの脆弱性にたいして、やはり複数の検査コードが必要なんでしょうか? だいぶPHPも書けるようになってきたのに、 セキュリティ対策とか今まで触れていなかったのでちょっと参っています。
その用語でぐぐればいいと思う
>>907 わけわかめな
>>908 は、ほっといて、
何の関数にどういうパラメータ渡したらどういうエラーが帰ってくるんだ?
ぐらいは書けよ。
PearのDBクラスを使ってPostgresに接続しようとすると、 エラーも無しにそこで中断されてしまいます。 Postgresライブラリのpg_connectを使うと問題なく接続されるので、 何が原因か分からずに困っています。 内容は $db = DB::connect("pgsql://user:pass@host:port/dbname"); なのですが何がいけないのでしょうか?
919 :
918 :2007/02/12(月) 09:49:21 ID:???
環境は Windows2000+Apache2.2.4+PHP5.2.0 です。
920 :
nobodyさん :2007/02/12(月) 09:54:55 ID:X6UGSTnj
4.3.2以前のPHPでは、session_regenerate_id()を使うと 古いセッションIDのセッション・ファイルがサーバに残ってしまうとのことですが、 クライアント側でも古いクッキーが残ってしまうのですか? また、サーバ側の古いセッションファイル(サイズが0)についてはcronで定期的に削除するようにしていますが、 クライアント側のクッキーについても、もしそれが残ってしまう仕様になっているならば、 session_regenerate_id()の実行タイミングなどで削除する処理などをすべきでしょうか? それとも放置でいいのでしょうか?
<select name="fruit" multiple> <option value="りんご">アップル</option> <option value="みかん">オレンジ</option> <option value="ぶどう">グレープ</option> </select> こういうリストがあったとして、「りんご」と「みかん」を確認ページで 表示させるのは、どうすればいいのでしょうか? 配列に入るのかと思い、print_r($fruit);してみたのですが、「ぶどう」 しか表示されませんでした。 配列でもないみたいなので、name=fruitをname=fruit[]としてみたのですが、 確認画面でprint_rをしても表示されませんでした。
>>921 fruit[]で配列になるよ
どうやって$fruitに代入してるの
print_r($_POST['fruit']);ではどうなる
923 :
918 :2007/02/12(月) 11:39:30 ID:???
エラーも無しにと書いたけど、その他のエラーも 全く出なくなってました。何でorz
924 :
nobodyさん :2007/02/12(月) 11:54:23 ID:X6UGSTnj
925 :
918 :2007/02/12(月) 12:05:18 ID:???
php.ini見たらいつの間にかエラー表示OFFになってました・・・ 拡張モジュールをインストールしただけなのにヽ(`Д´)ノ
926 :
918 :2007/02/12(月) 12:14:18 ID:???
エラーを見てみるとDB.phpが無いとのことで、検索かけると入っていない事が判明。 インストーラではPEARは正常にインストールされた事になってるし。 あとは自力で調べてみます。
927 :
nobodyさん :2007/02/12(月) 12:38:27 ID:SnnHsVyf
PDOStatementでexecuteしてlastInsertIdを取得するにはどうすればいい?
928 :
nobodyさん :2007/02/12(月) 12:46:56 ID:R8kVt9vv
昨日プログラムを変更した所、時々不定期に表示が遅延する現象が起こってしました。 変更箇所ですが、リクエストの度にユーザー毎に用意されたファイルを、 読みこみ、その後にすぐ書き込みをしています。 // ユーザーからのリクエスト ... // 各ユーザー毎のファイルを読む $data = file_get_contents($file_path); ... // $dataについていくつか処理を実行 ... // 各ユーザー毎のファイルに書き込む $fp = @fopen($file_path, "w"); fwrite($fp, "data"); fclose($fp); ... // この後画面表示処理 このファイルは復元可能で別に壊れてもいいので、 ファイルロックのような処理はしていません。 この処理のせいで遅延が発生する原因って分かりますか。
>>928 ソースの変更後に症状が出たのなら、
まさにその変更箇所が関係しているのが明らかなんだから、
どこをどう修正したかを書かないと分からないだろ。
930 :
903 :2007/02/12(月) 12:50:12 ID:???
931 :
nobodyさん :2007/02/12(月) 12:52:55 ID:G3rQNWuI
932 :
nobodyさん :2007/02/12(月) 12:56:42 ID:R8kVt9vv
>>929 > どこをどう修正したかを書かないと分からないだろ。
すみません、言葉足らずでした。
修正したというか、以下の処理を丸々追加しました。ここだけです。
ファイルロック等の処理はしていないので、デッドロックのようなことは発生しないはずなのですが。。。
> // 各ユーザー毎のファイルを読む
> $data = file_get_contents($file_path);
> ...
> // $dataについていくつか処理を実行
> ...
> // 各ユーザー毎のファイルに書き込む
> $fp = @fopen($file_path, "w");
> fwrite($fp, "data");
> fclose($fp);
933 :
nobodyさん :2007/02/12(月) 13:09:47 ID:H1Jzcsg/
あるソースコードをphp4でもphp5でも同じ動作にさせるには、 php.iniの設定が同じで、コードの記述にphp5特有のものを 書かなければ動きますか?
>// $dataについていくつか処理を実行 が何してるかわからんけどそれ以外とすると明らかにファイル処理しか原因がないと思うよ
mb_send_mailで送信されなかった場合に エラーログが返されるとか聞いたのですが、 そのエラーログってどうやって取得(もしくは表示) させたらいいのでしょうか?
>>933 classとphp5で追加された関数に気を付ければほぼ問題なす
>>937 32bitシステム共通の仕様
64bitシステムに移行すれば全て解決
そもそも 32 ビットしかないのに 9999999999 を表現できるのかよ。
32bitならtime_t型の表現可能範囲は一般に -2,147,483,648 〜 2,147,483,647 だな。
ま た p h p s p o t か。
>>937 ってことは、又2000年問題と一緒で、2038年問題が発生するってことか。
実際には、2038年をデータとして扱い始める時期に問題が発生するだろうから、
2028年ごろに、大問題が発生する可能性があるね。
いやだなぁ、定年間近になって、又2000年の時のように徹夜作業するの…
> いやだなぁ、定年間近になって、又2000年の時のように徹夜作業するの… おまいは、何歳まで現場でコーダーする気?w
>>943 現場でコーダーしていなくたって、管理者として待機しないといけないじゃん。
まぁ、取締役まで出世すれば問題ないけどな。
しかも、責任取らさせる立場だし、ますます憂鬱。
定年間近で懲戒免職とか洒落にならないよ。
>>944 日本が崩壊する頃のことを今から気にする人も珍しいな。
そんな時代に手作業でコーディングする仕事なんて残っちゃいないって。
>>932 とりあえずスクリプトの実行時間を計れ。
スクリプト中のいくつかのポイント(特に怪しい処理の前後など)で
マイクロタイムを計測していく。DB保存でもechoでもいいからそれを確認。
そしたらどこがボトルネックなのかがはっきり分かるでしょ。
php使えるようになりたいんだけど、なにすればいいの? htmlとかのときと同じようにとりあえず書いてみることが大事だよね? まずは掲示板とか作ったりするといいのかな? 教えて。何していいかわからん。
>>948 書いていく過程でどういうもんか分かると思うよ
とにかく書いて動かしてみろ、話はそれからだ
何かこういう順番でPHPを勉強するといいみたいなものってないのかね 自分も本を読んで書いて勉強してきたけど効率悪いんだよね
楽な方法なんかない 一つの言語がある程度理解できれば他の言語のハードルは下がるが
>>951 いきなり他人のソース改造から入る方が良かったり、
PHPのマニュアル読む方が良かったり、
市販の解説本読みながらサンプル眺める方が良かったり、
人ぞれぞれ、向き不向きがあるから、
自習用に「万人がこれでバッチリ」って
カリキュラムを組むのは難しいと思われ。
やりたいことだって人それぞれだしな
SEXだろ変態(苦笑)
それ以上に、高山本線の角川と猪谷の間が先。 災害が起こったのは、2004年。もう今年は2007年だよ。 仕事遅すぎ。束はやる気あんのかね。 もう、廃線でいいよ。
やっぱり列車の基幹システムにPHPは駄目だな
958 :
nobodyさん :2007/02/12(月) 16:20:12 ID:YLy/IkNC
セッションの有効期限を24時間にしたいんですが、うまくできません。 ↓これだけじゃ駄目なんですかね?他に何を設定する必要があるんでしょうか? session_cache_expire(60*24);
959 :
nobodyさん :2007/02/12(月) 16:35:25 ID:HPZNpRaI
Webprogってなに? Webrogじゃないの?
Webプログラムだろ?
ファイル名を取得してそれによる条件分岐をさせたいのですが、 $File = basename($_SERVER['SCRIPT_NAME'],".php"); これで拡張子(php)を除くファイル名を取得して、 switch ($File)で条件分岐させようとしたのですが、 「ファイル名に指定の文字列を含んだ場合」という条件で分岐させるにはどうしたらいいでしょうか? 例えば top_link.php top_read.php としたファイルでファイル名にtopが入っている場合は〜 という風に分岐させたいのです。 ひとつアドビスお願いします
963 :
nobodyさん :2007/02/12(月) 17:07:55 ID:7LySf7Co
LINUXのみ確認できるfcloseのバグを見つけました。本家に報告するべきですかね?でも英語かけないんです…
966 :
962 :2007/02/12(月) 17:11:04 ID:???
自己解決しました。なんか正規表現でいけた
正規表現
ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。
>>963 まず日本語で説明してみろ
重要そうだったら英語にして本家に報告するから
PHPは何とかなるだろうけど、mysqlとかのDBの2038年問題ってどうなってるの?
972 :
nobodyさん :2007/02/12(月) 17:54:57 ID:X6UGSTnj
正規表現でメールのヘッダから宛先アドレス部分を取り出す場合の質問です。 preg_match("/To: <(.+?)>\s/", $header, $result); ・・・と書いています。 これはこれでメールの仕様通りだと思いますが、 もしも「To」が「to」だったら? もしも「To:」の後ろにスペースが無かったら?? もしも「< >」が使われていなかったら??? そう考えていくと正規表現を何パターンも用意しなくてはならず、漏れが怖いです。 こういうとき、皆さんはどう対処していますか? この場合の汎用的な正規表現ってあるのでしょうか?
ファイル名をパースするってどういうことですか?
正規表現が出ているので、自分の悩んでいるのもお願いします。 以下のコードを実行すると"不一致"と表示されますが、これを一致させたいです。 原因は、"-"であることは分かるのですが、どう表現すれば宜しいでしょうか? ちなみに、"-"を"\-"とすると、"ereg() [function.ereg]: REG_ERANGE"とエラーがでます。 -------------- $pattern= "[a-z,A-Z,_,\.,-,\?,\+]+"; if (ereg($pattern, "tokyo-") == FALSE) { $screenData->displayMessage("一致"); } else { $screenData->displayMessage("不一致"); } --------------
>>975 if (ereg($pattern, "tokyo-") == TRUE) にする
>>975 ー は[]の一番最後に書く決まりがある。
"[a-zA-Z_.?+-]+";
>>977 ありがとうございます。
そんな決まりがあったんですね。すごく勉強になりました。
>>976 すみません、サンプルコード誤って逆にしてしまいました。ケアレスです。すみません。
ここ数回の質問が同一人物にみえる・・・
>>972 preg_match("/(To|to)[: <]*?(.+?)>?\s/", $header, $result);
こうなるのかな?
もし不安だったら、正規表現で取得するのと別に、ファイルに$headerを全て保存しておいて、自分で試してみればいい。
それで漏れがわかったら正規表現を修正。
地道な作業をしていくのが吉と思われ
982 :
972 :2007/02/12(月) 18:35:24 ID:X6UGSTnj
モード修飾子というものがあるのを知り、 preg_match("/To:\s?<?(.+)>?\s/i", $header, $result); にしてみたら、かえって悪くなりましたorz 今までマッチしてたはずのものにもマッチしなくなりました。
985 :
nobodyさん :2007/02/12(月) 18:57:44 ID:YLy/IkNC
>>985 お前もこんなところで質問しないでマニュアルをご覧になる事をお勧めします
987 :
nobodyさん :2007/02/12(月) 19:07:53 ID:YLy/IkNC
>>968 レスありがとうございます。
ところで疑問なのですが、ここは質問をするスレッドのように思います。
質問をするなという意味が理解できません。どういった意図のレスでしょうか?
真摯に受け止めたいと思いますので、ご教授願います。
989 :
nobodyさん :2007/02/12(月) 19:18:08 ID:YLy/IkNC
>>988 それは私へのレスでしょうか?意図が分かりません。
2ちゃんねるにはアンカーという機能があるので、アンカーの使い方を覚えられた方が
よりよい2ちゃんライフを満喫できるかと思います。
また、それが私へのレスだとした場合、それは回答になりません。
僭越ながら、悔しい気持ちは分かりますが、もう少し論理的な思考を身につけられた方が、
よりよいプログラマーへと成長できるかと思います。
990 :
962 :2007/02/12(月) 19:20:43 ID:???
>>964 さんどうもです。
>>966 は私ではないのでもう一つお力をお貸しください
top_link.php、und_index.php、sid_read.phpの3つのファイルがあったとして
ファイル名先頭の3文字がtopならecho "トップ"、undならecho "アンダー"、どちらでもなければecho "他"とさせたいのです
if文による2分岐はできたのですが、switch構文?を使う場合どこにpreg_matchをいれるのかがちょっとわからなくて、すいませんがアドバイス頂けないでしょうか?
>>989 >>988 の発言の意図が分からないようであれば
もう少し論理的な思考を身につけられた方が
よりよいプログラマーへと成長できるかとおもいます。
>>990 $array = array('top_link.php', 'und_index.php', 'sid_read.php');
foreach($array as $file){
preg_match('/(.*)_.*\.php/', $file, $match);
switch ($match[1]){
case 'top':
echo 'トップ';
break;
case 'und':
echo 'アンダー';
break;
default:
echo 'その他';
}
}
>>989 わからないことを聞くときの質問者のマナーを勉強するほうがいいよ。
PHPはまだ早い。
995 :
nobodyさん :2007/02/12(月) 19:47:34 ID:YLy/IkNC
>>991 無視させて頂きます。
>>994 あなたを含め、質問に答えられない人が質問に答えるのは間違っています。
しかも、レスが間違ってることを指摘されて、オウム返ししかできないのはいかがなものかと。
私は私よりもスキルの高い方からの回答を待っているのであって、
あなたを含め、スキルの低い方からの回答は待っておりません。
言外の意味を理解しにくい、人とのコミュニケーションをうまく取れない 周りの空気を読む事が出来ない人をアスペルガー症候群といって そう言う人はもともとそういう病気なんだからいじめちゃだめだって 先週のマガジンに書いてあったよ だからYLy/IkNCをいじめちゃだめ
>>995 とりあえず回答者、またはスレの雰囲気をピキピキさせるような発言は慎もうよ
そうしないと答えられる人も回答しなくなるよ
回答が欲しいならその場に即した態度を取りましょう
>>995 多分君よりスキルの高い人はいないからもう来る必要ないと思うよ
さあ盛り上がってまいりました
1000 :
nobodyさん :2007/02/12(月) 20:19:37 ID:IgA9iRUY
通りすがりが1000ゲッツ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。