トップページ⇒php
1001コメント324KB

【PHP】下らねぇ質問はここに書き込みやがれ 38

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2007/02/04(日) 01:39:37ID: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
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0002nobodyさん2007/02/04(日) 01:41:52ID:GkKQRo3Q
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 28
http://pc8.2ch.net/test/read.cgi/php/1157284868/
【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc10.2ch.net/test/read.cgi/php/1166676139/
【PHP】下らねぇ質問はここに書き込みやがれ 36
http://pc10.2ch.net/test/read.cgi/php/1168395610/
0003nobodyさん2007/02/04(日) 01:42:31ID:GkKQRo3Q
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

(以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん2007/02/04(日) 01:43:23ID: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プログラムとして実行された結果になる。
0005nobodyさん2007/02/04(日) 01:44:32ID: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に保存?
 → 好きにしてください
0006nobodyさん2007/02/04(日) 01:52:37ID:???
>>1
乙です!
0007nobodyさん2007/02/04(日) 01:59:57ID:???
鬱カレー
0008nobodyさん2007/02/04(日) 02:02:37ID:???
Googleはどうやってスクリプト解析してるんですかね
やっぱり正規表現使いまくりんぐ?
0009nobodyさん2007/02/04(日) 02:03:33ID:GkKQRo3Q
ちょっと抜けた気もするけど気にせず再質問。
外部のHTMLファイルからタイトルの内容を取得してくれるようなライブラリはありますか?
ほかにも文字コードとかも。
できれば、ヘッダ全部手に入るとうれしいです。

自前でパターンマッチしていくしかないのでしょうか。
0010nobodyさん2007/02/04(日) 02:04:45ID:???
>>9
ヤフったらこんなの見つけた
http://nex.xrea.jp/index.php?date=1164037331
0011nobodyさん2007/02/04(日) 03:05:12ID:GkKQRo3Q
>>10
なんか使い方がめんどくさそうですね。。。
perlでいうHTML::TagParser見たいな使い方のはないのかなぁ。

0012nobodyさん2007/02/04(日) 03:08:28ID:???
HTML解析関数ほしいな
0013nobodyさん2007/02/04(日) 03:21:49ID:I8uLxo4Q
自作関数を上書きすることは出来ますか?
function hoge(){
if (A) 処理
else hoge = null
}
みたいにしたいのです
0014nobodyさん2007/02/04(日) 03:30:27ID:???
>>13
自分自身をnullにするってできるんだっけ?
hogeに渡る前に判断すべきなのでは?
if( A ){ hoge() } else {}
0015nobodyさん2007/02/04(日) 03:42:49ID:???
Javascriptでは出来るので出来るかなぁと・・
先に判断したり変数使ったりすることで解決は出来ました
ありがとうございました
0016nobodyさん2007/02/04(日) 09:01:39ID:???
>>8
Googleに入社して社員にならないと分からない
あそこの技術者はやばすぎる
0017nobodyさん2007/02/04(日) 10:50:23ID:pMMqud54
classの利用方法が良くわかりません。
本家サイトや解説しているところを見てどんな風に動くのかはわかりました。
実際どのように使うのかサンプルスクリプトがあるサイトはないでしょうか?
0018nobodyさん2007/02/04(日) 10:56:19ID:???
>>8
ちょっと前に日本語の自然言語処理できる技術者を積極的に募集してたっぽいから、検索精度の向上etcにまだまだ余念がないみたいね>Google

たぶん検索アルゴリズムは、根本的な部分は一般的なテキストマッチングだろうけど、類義語だのキーワードの順序だのも含めてAI的な要素も盛りだくさんだろうから、素人の手に負えるものじゃないと思う。

完全にスレ違いだった、スマソorz
0019nobodyさん2007/02/04(日) 11:05:22ID:???
>>17
その前に
オブジェクト指向 オブジェクト
について学ぶと吉
0020nobodyさん2007/02/04(日) 11:06:26ID:???
ごめん
2つめは「オブジェクト設計」ね
0021nobodyさん2007/02/04(日) 11:13:13ID:???
>>13
PHPでは、実行単位の中で一度定義された関数は、再定義・消去・オーバーロードすることはできない。
0022nobodyさん2007/02/04(日) 11:13:54ID:pMMqud54
>>19
わかりました。調べてきます。
0023nobodyさん2007/02/04(日) 11:31:00ID:DXIA/uDc

あいうえお
かきくけこ
さしすせそ
たちつての
なにぬねの
 :
 :
 :

てな感じの文字列から、
たとえば3行目の「さしすせそ」など、
任意のn行目だけを抽出する方法、教えて下さい。
0024nobodyさん2007/02/04(日) 11:41:17ID:tkfMC0Hx
       ,__
    ,ィ//´  ,ヾ
   く, { i{リノノ))i}     __   下らねぇ質問は
     iメゝ゚ ー゚ノリ} _r‐v/´    ここに書き込みやがれ
    ノ,, ァj}卯v´ゞ'ー '     こんちくしょーっ!
    {彡ソヽ_/ゝ,ミi
   ゙'=く / __ ,ノ〉'
0025nobodyさん2007/02/04(日) 11:42:50ID:???
>>23
正規表現とか
preg_match('/^(?:.*\n){2}(.*)/', $str, $match);
echo $match[1];
改行でスプリットとか
$lines = split("\n",$str);
echo $lines[2];
0026nobodyさん2007/02/04(日) 11:43:37ID:???
>>23
$a = explode("\n", $string);
echo $a[2];
0027nobodyさん2007/02/04(日) 11:43:37ID:???
$str = 文字列;
$line = explode("\n", $str);
$i = 任意の行;

echo $line[$i];
0028nobodyさん2007/02/04(日) 12:04:28ID:DXIA/uDc
>>25-27
ありがとうございます。
早速チャレンジしてみます。
0029nobodyさん2007/02/04(日) 13:01:31ID:DXIA/uDc
たびたび、すみません。

<?php
$filename = "data.inc";
$fd = fopen($filename);
$str = $fd;
$line = explode("\n", $str);
$i = 3;
echo $line[$i];
fclose($fd);
?>

>>27のを、こんな感じで使ってみたんですが、
何にも表示されず(エラーメッセージも出ない)・・・。

どこで間違ってるのか分からず、
恥ずかしながら、もうワンポイントアドバイスいただけると幸いです。
0030nobodyさん2007/02/04(日) 13:07:17ID:???
fopen の使い方が間違ってる。
ttp://www.php.net/manual/ja/function.fopen.php

あと、それなら file 関数を使った方が良いと思うよ。
0031nobodyさん2007/02/04(日) 13:07:48ID:h26mE+qA
>>29
<?php
$filename = "data.inc";
$file = file($filename);
echo $file[2];
?>
一番上が0行目と数える
0032nobodyさん2007/02/04(日) 13:08:58ID:???
ちったぁ入門本でも読んでから来い
って言わないお前が素敵
0033nobodyさん2007/02/04(日) 13:10:48ID:???
くだ質だからな
0034nobodyさん2007/02/04(日) 13:23:43ID:DXIA/uDc
>>31さんのソースでバッチリいけました。

>>30 >>32
なにぶんにも、php使い始めたばかりでして、、、
さらなる勉強にはげみたいと思います。

ありがとうございます。
0035nobodyさん2007/02/04(日) 15:19:10ID:???
>>34
使い始めたばかりの時こそ公式マニュアルや入門本を読むべし
0036nobodyさん2007/02/04(日) 15:20:25ID:ZL1jpKki
サーバーにアップロードされたファイルを、
別のサーバーにPOSTさせたいです。
phpでやるにはどうすればいいですか?
0037nobodyさん2007/02/04(日) 15:23:14ID:???
そんなアバウトな質問に答えられるかアホが!
質問するなら環境なり色々詳細を書けや。
0038nobodyさん2007/02/04(日) 15:35:02ID:???
ファイルからxバイト〜yバイトまで読み込んで$fileに格納したいのですが、どのような方法がありますでしょうか?
また、ファイルは絶対パスの場合もあります
0039nobodyさん2007/02/04(日) 15:37:37ID:???
>>38
っ ttp://www.php.net/manual/ja/function.file-get-contents.php
0040nobodyさん2007/02/04(日) 15:37:37ID:???
無理じゃね?
rarで分割圧縮してうpすればおk
0041nobodyさん2007/02/04(日) 16:02:26ID:???
>>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);
0042nobodyさん2007/02/04(日) 16:03:04ID:???
$this->filepathは無視してww
0043nobodyさん2007/02/04(日) 16:27:13ID:???
GIFアニメと普通のGIFを合成させてみたのですが、
GIFアイメが動いてくれません
何か特殊な方法じゃないと動かないのでしょうか?
0044nobodyさん2007/02/04(日) 16:41:23ID:???
はじめて、クラスを積極的に使用しての
phpスクリプト作成にいたっているのですが、
クラスでの引数使用の方法に大きな疑問があります。

例えば、ファイル処理を行うクラスの場合、
書籍などに書いてある主な方法は、
class doFile
{
function doFile($file_name)
{
.....
}
}

のようにコンストラクタで引数を渡して
処理していく、という流れかと思います。

これに対して、現在自分が作っているのは、
コンストラクタを使用せずに、メソッドで初めて
処理対象の$file_nameを引数に用いています。

通常?の方法は
1つのファイルに対して複数の処理を加える際は便利な一方、
複数のファイルを処理する場合は、その分オブジェクトの作成が必要となります。

自分の方法は、
複数のファイル処理の場合も1つのオブジェクトの作成ですみます。

ウェブなどでも目にするのは前者の方法なんですが、
私のような使い方はおかしいでしょうか?

問題点などがあったらご教授お願いします。m(_ _)m
0045nobodyさん2007/02/04(日) 17:00:01ID:???
>>44
1つのファイルで済むからそうするんじゃなくて、複数のファイルでも開発効率が向上するからクラスを用いる。
例えばクラス内で変数を保持できるから、いろんな処理が容易になる。
たかが1000行程度のスクリプトならクラス使う必要もないだろうな。
ましてやクラスを使えばオブジェクト指向というわけじゃない。
そこのところを勘違いしているのなら、クラスについて勉強しなおした方が良い。

>>43
> GIFアイメが動いてくれません

アイメkwsk
0046nobodyさん2007/02/04(日) 17:02:31ID:???
>>45
アニメの間違いです
0047nobodyさん2007/02/04(日) 17:31:57ID:???
>>45
結局何が言いたいのかわからない
0048nobodyさん2007/02/04(日) 17:46:03ID:???
1つのメソッドで複数のファイルをさわる必要性がわからないから答えようがない。
0049nobodyさん2007/02/04(日) 18:27:35ID:JJOq26qg
接続してきた人のIPを取得して関数に入れたいのですが
どうすればいいでしょうか?
0050nobodyさん2007/02/04(日) 18:29:20ID:???
>>49
getenvみたいなやつ
0051nobodyさん2007/02/04(日) 18:35:33ID:???
>>45
Wikipediaでオブジェクト指向プログラミングのところを嫁

class doFile
{
private $_file_name;
function doFile($file_name)
{
$this->$_file_name = $file_name;
...
}
}

0052nobodyさん2007/02/04(日) 18:35:35ID:???
>>50
ありがとうございます
0053nobodyさん2007/02/04(日) 18:36:31ID:???
>>49
$_SERVER['REMOTE_ADDR']
0054nobodyさん2007/02/04(日) 18:59:15ID:XwiYYcaF
サーバー : PHP
クライアント : ローカルのC++で製作したプログラム

この2つで文字列の送受信を行いたいと考えています。
クライアント→サーバーはHTTPポストを用いたのですが、
クライアントからのデータをサーバーで受け取った場合に
サーバーから任意の文字列をレスポンスとして返す場合、
サーバー側ではどのように設定すればよろしいのでしょうか?
0055nobodyさん2007/02/04(日) 19:02:24ID:???
>>54
> サーバー側ではどのように設定すればよろしいのでしょうか?
そのローカルのC++の仕様によるとしか言いようがない。
普通のHTTPレスポンスなら、パケット監視ツールでもいれてみればすぐ分かる。
0056nobodyさん2007/02/04(日) 19:04:55ID:XwiYYcaF
>>55
header()で指定するというのが考えられたのですが、
headerだと上に出力があると云々で何か面倒かと思いまして、よい案があればと思ってまいりました・・・・
0057nobodyさん2007/02/04(日) 19:15:32ID:???
その用途でわざわざHTTPを使う理由が全く分からんw
0058nobodyさん2007/02/04(日) 19:19:45ID:???
>>56
面倒も何も、そもそもHTTPの仕様がそういうもんだしねぇ。
0059nobodyさん2007/02/04(日) 20:35:26ID:DJT2oTqS
ファイルロックについて質問です。
flockでファイルそのものをロックするやり方と、
ロックファイルを作成して存在してたら別の処理に振り分けるやり方。
どちらが好ましいでしょうか?
それとも両方とも行うのがベストにつながりますか?
どなたかご教授お願いいたします。
0060nobodyさん2007/02/04(日) 21:42:03ID:3athMQrm
php.iniに記述されてるextentionのhogehoge.dllというのは、
WindowsだけじゃなくLinuxでも使うと思うのですが、
ソースコードからmakeした場合は、どこのディレクトリに
(普通は)インストールされるものなのでしょうか?
(なんでこんな質問をしてるかというと、物理的にどこのディレクトリにあるのか見つからないからです)

ところで、extension_dirは'./'になっていますが、それで
正常に動いているようなのですが、これはLinuxで一般的に
正しい設定なのでしょうか?
0061nobodyさん2007/02/04(日) 21:44:47ID:???
>>60
C:\PHP\ext
0062nobodyさん2007/02/04(日) 21:47:13ID:???
>>60
そんなん知ってるって。windowsの話じゃないんだが
0063nobodyさん2007/02/04(日) 21:57:33ID:???
PHPの中暖かいナリ
0064nobodyさん2007/02/04(日) 22:02:23ID:???
linuxだと.dllじゃなくて.soでないの
0065602007/02/04(日) 22:07:58ID:???
>>61
Linuxだと言ってるだろボケ
0066nobodyさん2007/02/04(日) 22:26:07ID:???
なんだその時間差は
0067nobodyさん2007/02/04(日) 22:27:37ID:???
こういうときこそ
http://pc10.2ch.net/test/read.cgi/php/1158647441/l50
0068nobodyさん2007/02/04(日) 22:30:32ID:???
dllはwindows、linuxはso
linuxでprefixなしでmakeしたら普通/usr/local/以下の各ディレクトリに
どこに何が入るかはlinuxのFHSとか調べて
php.iniのextension_dirが ./ になってるのはただデフォルトがそこってだけ
正常に動いているのはあなたがextensionを使ってないから
OK?
0069nobodyさん2007/02/04(日) 22:34:14ID:DJT2oTqS
どなたか>>59おねがいします
0070nobodyさん2007/02/04(日) 22:41:21ID:???
男は黙ってflock
0071nobodyさん2007/02/04(日) 22:54:58ID:???
メソッドAがロックしている間は他のメソッドからは書き込みできないけど
メソッドZからだけはロックを解除して割り込み書き込みできる

とかそういうトリッキーなことをしないかぎりはflockでよい
0072nobodyさん2007/02/04(日) 23:07:24ID:nvCj12y3
まれにおこるロック漏れに対応するために二重にすることに意味ないの?おれそーやってるけど
0073nobodyさん2007/02/04(日) 23:12:31ID:???
$sql = "select sum(price) from pricelist where code = $code";
$rst = mysql_query($sql, $con);

この後sum(price)はどうやって変数に代入したらいいのでしょうか?
0074nobodyさん2007/02/04(日) 23:14:50ID:???
flockは上限数あるから、共用鯖ならロックファイル方式が無難。
0075nobodyさん2007/02/04(日) 23:20:01ID:???
>>73
PHPのマニュアルのmysql_queryのページにそのための関数が載ってるだろーが
0076732007/02/04(日) 23:21:11ID:???
>>75
それだけじゃわかんねーよ
ちゃんと説明しろよ
0077nobodyさん2007/02/04(日) 23:27:30ID:???
select sum(price) as pricesum from pricelist where code = $code
0078732007/02/04(日) 23:36:58ID:???
>>75
ありがとうございます。
尚76は私ではありません。どこかのキチガイです
0079nobodyさん2007/02/04(日) 23:48:17ID:???
>>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);で内容みてもいいけど
0080nobodyさん2007/02/04(日) 23:48:58ID:???
print_r ($rst); → print_r ($sql_rst);

mysql_free_result($rst);も忘れずに
0081nobodyさん2007/02/05(月) 00:37:51ID:???
別に
$ary['sum(price)']でもええやん
0082nobodyさん2007/02/05(月) 00:59:23ID:???
パスワードをcookieに保存するとばれますよね?
なのでsessionに保存しようと思うのですが
cookieとsessionは同じですか?
0083nobodyさん2007/02/05(月) 01:04:40ID:???
はい
いいえ
0084nobodyさん2007/02/05(月) 01:33:16ID:???
>>81
MySQLはそれでとれるのか?
PostgreSQLはダメだったような気が。
0085nobodyさん2007/02/05(月) 01:34:08ID:???
>>82
自動ログイン実装できないじゃん
0086nobodyさん2007/02/05(月) 02:20:32ID:???
自動ログインはどうやって実装するの?
パスワード暗号化したものをcookieに保存してるだけ?
0087nobodyさん2007/02/05(月) 02:23:28ID:???
そのとおり
0088nobodyさん2007/02/05(月) 02:34:58ID:???
初心者にネタみたいな実装教えるなよ。
0089nobodyさん2007/02/05(月) 03:05:57ID:???
自動ログインなんてブラウザ側で設定するものであって、中途半端にCookieとかで勝手にやられると迷惑なんだよね。
0090nobodyさん2007/02/05(月) 03:06:45ID: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を通すと?????となってしまいます。

すいませんがご教授いただけませんか?
0091902007/02/05(月) 03:17:31ID:???
すいません。自己レスです。
[mysqld]に
skip-character-set-client-handshake
を追記したら解決したっぽいです。
結構検索したつもりでしたが見落としてました。
これハマった人っていないんでしょうか?
0092nobodyさん2007/02/05(月) 03:19:43ID: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の中にあるモジュールで変換をする
というのが説明になると思うが、がんばってくれ
0093nobodyさん2007/02/05(月) 04:37:32ID:???
>>91
ハマった
0094nobodyさん2007/02/05(月) 11:36:12ID:???
mysql と PHP の組み合わせはバージョンによってはかなり
いろいろと問題起こすからな
特に PHP 4.1以降だと

skip-character-set-client-handshake
を使うほかも
set names とかでパラメータ毎回変更したり

環境によっては
ALTER DATABASE db_name DEFAULT CHARACTER SET character_set;
とかしてデータベースの文字コードを変更ひつようあるしな
0095nobodyさん2007/02/05(月) 12:29:22ID:z02ZA7wU
>>68

レスありがとうございます。>>60です。
Linuxはsoファイルだったんですね。知りませんでした。ありがとうございます。
phpは、/usr/local/php/にあるのですが、その下のextディレクトリには、
それぞれのディレクトリがあるだけで、(bz2, gd, ftp) soファイルは見当たりません。

ところで、extention_dirを./にした場合は、/lib/を参照するのでしょうか?
0096nobodyさん2007/02/05(月) 12:51:52ID:???
>>95
標準モジュールをコンパイルしてないからだよ
phpize
./configure オプション
make
0097nobodyさん2007/02/05(月) 12:55:40ID:GcmiTbCg
あるデータがポストされてきて、次にさらにデータが送られてくるまで一旦停止しておく
なんていう関数ってあるんでしょうか?

また、PHPでそういうことって可能なんでしょうか?
0098nobodyさん2007/02/05(月) 12:59:49ID:???
最初に来たやつをセッションにぶちこんでおけばいいだけの事じゃないのか
一旦停止ってなんだ
0099nobodyさん2007/02/05(月) 13:03:11ID:???
PHPのユーザーって、こんなんばっかかよwww

このスレを見ている人はこんなスレも見ています。(ver 0.20)
SOHOやフリーでWeb制作してる奴 二十人目 [Web制作]
Ads by Goooooooooooooogle Part74 [Web収入]
新宿中央公園2 [その日暮らし]
仕事がない!!!!!!! [その日暮らし]
0100nobodyさん2007/02/05(月) 13:05:31ID:cMfqWNhR
配列について質問なのですが
任意の行を消して
下から詰めるという関数はあるのでしょうか?
array_spliceだと、消すだけではなく
何かを代入までしてしまうのですよね?
0101nobodyさん2007/02/05(月) 13:08:29ID:???
何も代入すんな
0102nobodyさん2007/02/05(月) 13:10:52ID:???
PHPマニュアルのarray_splice()ページでの使用例を見ましょう
0103nobodyさん2007/02/05(月) 13:12:58ID:GcmiTbCg
>>98
実は携帯向けのゲームを製作していまして、SessionやらCookieやら使えないと思うんです。
同期を取るために次の処理に行くまでの待受けをしたいなぁと
0104nobodyさん2007/02/05(月) 13:13:08ID:???
>>99
javaとかに比べれば単金が2/3から半分程度だが、
それでも新宿公園はないだろ
0105nobodyさん2007/02/05(月) 13:19:17ID:???
>>103
携帯は知らんが、携帯 PHP sessionとかでググると携帯でセッション使う話とかちょこちょこ見かけるので
必ずしも出来ないってわけではなさそうな

いきなり代替案考え始めるより先にセッション使う方向で考えてみたら?
0106nobodyさん2007/02/05(月) 13:27:53ID:???
URLの末尾にでもセッションIDをくっつけとけばいいさ
0107nobodyさん2007/02/05(月) 13:28:23ID:???
>>97
基本的にない
データをいったん全部保存しておいて、定期的に cron か何かで
処理するしかない

HTMLベースでリアルタイム処理が必要がゲームは
苦労するだけで、無駄だよ
0108nobodyさん2007/02/05(月) 14:34:18ID:???
誰かスレ立ててもらっていい?

[題名]
PHPをコンパイルするBamcompile

[本文]
まだないようなので立てた。

◆Bambalam (公式HP)
http://www.bambalam.se/bamcompile/

◆PHPをコマンドラインで使う。 (標準入力の方法など)
http://kamakura.cool.ne.jp/oppama/oswa/
0109nobodyさん2007/02/05(月) 14:35:32ID:???
$_POSTと$HTTP_POST_VARSの違いは何なのでしょうか?
0110nobodyさん2007/02/05(月) 14:38:36ID:???
標準仕様と死につつある仕様
0111nobodyさん2007/02/05(月) 14:39:24ID:???
>>110
つまり$HTTP_POST_VARSの簡易が$_POSTなのですね、ありがとう御座います
0112nobodyさん2007/02/05(月) 14:44:04ID:???
>>111
なんだそりゃ

http://jp.php.net/manual/ja/reserved.variables.php#reserved.variables.post
0113nobodyさん2007/02/05(月) 14:45:16ID:???
>>112
ああ、昔の4.1.0から$_POSTが出たから$HTTP_POST_VARSがいらないってことか
0114nobodyさん2007/02/05(月) 14:47:05ID:???
>>104
明日はわが身ではないでしょうか
リアル土方をやってたホームレスも高度成長期や好景気のときは、
いつまでも仕事があって土方で暮らしていけると信じて疑わず、
まさか公園暮らしをやるとは夢にも思わなかったことでしょう

IT土方もまた然りではないでしょうか
貴方はあと10年も20年もプログラミングで食っていけると思いますか?
0115952007/02/05(月) 15:15:53ID:z02ZA7wU
>>96
レスありがとうございます。
無事に解決しました。大変勉強になりました。
的確なレスを下さった、>>68さん、>>95さんに感謝です!
0116952007/02/05(月) 15:17:07ID:???
>>115
失礼しました。>>95は自分でした。>>96さんに感謝です!
0117nobodyさん2007/02/05(月) 15:23:40ID:???
リアル土方はどうか知らんがずっとプログラマで10年20年喰っていくつもりなんてやつは相当稀だろう
0118nobodyさん2007/02/05(月) 15:25:37ID:???
>>108
それはどこの板に立てたいわけ?間違いなくWebProgじゃないよね。
つーかPHPのコンパイラなんて他にもたくさんあるのに(しかもどれも流行ってるわけでもない)、Bambalam単発かよ。
0119nobodyさん2007/02/05(月) 15:42:03ID:???
以下の配列で $settings の2つめの値(="abc")にアクセスしたいんですが、
$settings[yukihiro] 以外で参照するにはどう書けばいいのでしょうか?(forループの中で参照したいのです)

$setteings = array(
"hiroyuki" => "123",
"yukihiro" => "abc",
"kazuhiro" => "hoge");
01201192007/02/05(月) 15:42:55ID:GMmlzRSX
すいません、質問なのにsageてしまいました…
0121軟式PHP2007/02/05(月) 15:50:15ID:???
>>119
settingじゃないのかという突っ込みは置いといて、
不確定要素だが、$setteings[1]でもアクセスできたはず。
連想配列をforでまわす時は
foreach( $setteings as $key => $value ){
print $key . '/' . $value . '<br>';
}
という感じでforeachでキーを取り出しつつ出すのが定石だと思う。

01221192007/02/05(月) 16:05:42ID:GMmlzRSX
回答ありがとうございます(typoすいません、ではsettingにさせてください)
しかし、echo $setting[1];としてみましたが、何も出力されませんでした。
確かに仰るとおり、foreachでループさせるのが常だと思うのですが、
以下のように出力させたいと思っているのでforの方がいいのかなと思いまして。
この場合、foreachでもできますかね?

hiroyuki(id1)=123(password1)
yukihiro(id2)=abc(password2)
kazuhiro(id3)=hoge(password3)
0123nobodyさん2007/02/05(月) 16:10:14ID:???
適当に$iなりをインクリメントしてけばいいじゃん
0124nobodyさん2007/02/05(月) 16:10:46ID:Jp7W2+3t
「とある処理から一定時間経過したら以下の処理を行う」って関数はphpにある?
具体的にはいらなくなったログを自動で消去したいんだけど
0125nobodyさん2007/02/05(月) 16:13:23ID:???
phpもiccでコンパイルするとめちゃ速いという話を聞いたのでやってみたのだが、
どうもgccでコンパイルされているっぽい。
(configureでもmakeでもgccの文字は確認できるが、iccの文字はなさそう)

phpをiccでコンパイルする方法を教えていただけないでしょうか?
(FedoraCore5ならとてもうれしい)。

iccはインストール済みです。
0126nobodyさん2007/02/05(月) 16:13:54ID:???
書き込んだ時間と現在の時間の差を求める
0127nobodyさん2007/02/05(月) 16:14:01ID:???
煽りスタート
01281252007/02/05(月) 16:14:16ID:vEcaZC7U
ID表示するの忘れた
0129軟式PHP2007/02/05(月) 16:14:48ID:???
>>122
>しかし、echo $setting[1];としてみましたが、何も出力されませんでした。
そか、スマソ。前、アクセスできた時があったんで。

>以下のように出力させたいと思っているのでforの方がいいのかなと思いまして。
確かにforの方が綺麗にかけそうだけど、123がいうように適当な変数をインクリメントさせつつ
表示させるのが普通かなぁ。もっとスッキリ書ける人いたらキボンヌ。
0130nobodyさん2007/02/05(月) 16:20:36ID:yfR2hgFN
質問です
1つのphpファイルで処理を1回しか実行させない(更新ボタンを押しても実行させない)ようにしたいのですが
どうやると可能でしょうか?
0131軟式PHP2007/02/05(月) 16:20:38ID:???
>>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 );
}
?>
0132nobodyさん2007/02/05(月) 16:22:06ID:???
俺だったらIDをキーに、パスワードを値になんて使いづらいデータ構造にはしないで
array('1'=>array('id'=>'hoge', 'password'=>'aaa'),・・・);
て感じにするかな
0133nobodyさん2007/02/05(月) 16:24:00ID:???
>>130
ファイルにフラグ書き込めば?
0134軟式PHP2007/02/05(月) 16:24:01ID:???
>>132
それが正解だわ…。
0135nobodyさん2007/02/05(月) 16:25:54ID:???
>>130
処理をしたら何らかの処理Aをして、もう一回リクエストがあったら処理Aされてるか調べれば?

>>131
forの条件部はlist()=each()だけでいけない?($i_max数えなくていい)
0136軟式PHP2007/02/05(月) 16:28:22ID:???
>>135
オッケーオッケー。ただ用心深いだけなんでw
何はともあれ、132のレスのように構造から見直すのが一番スッキリしそう。
0137nobodyさん2007/02/05(月) 16:29:04ID:???
>>130
セッション使ってよければ変数にフラグたてればいいじゃん。
0138虚弱PHP2007/02/05(月) 16:30:07ID:???
>>130
ワンタイムトークンとか使って、
2回目以降はトークンが一致しないということでNGにする。
トークンはセッションに保存しておいて、
更新処理をしたら、セッションから削除すればいい。

それから、更新処理をするphpでは、
更新が終わったら完了画面へLocationさせた方がいいと思う。
0139nobodyさん2007/02/05(月) 16:35:27ID:yfR2hgFN
そのワンタイムトークンってどうやって使うのでしょうか?
やり方がいまいちわかりません
0140虚弱PHP2007/02/05(月) 16:49:36ID:???
>>139
入力フォーム表示スクリプト:
 formにhiddenタグでトークン情報を追加
 セッションにも同じ情報を入れる
#トークン情報は $token = md5(uniqid(mt_rand(), true)); で作ればいいんじゃない?

情報受け取りスクリプト:
 セッションとhiddenで渡ってきたトークン情報を比較
 違う場合はNG
 同じ場合は、セッションのトークン情報を消して、更新処理。

↑と、自分で作る。
01411192007/02/05(月) 16:55:08ID:GMmlzRSX
123さん、131さん、132さんありがとうございます。
仰るとおり、連想配列の構造を見直しつつforで回してみたいと思います。
ありがとうございます。
0142nobodyさん2007/02/05(月) 16:57:36ID:???
mt_rand( )よりはタイムスタンプを使ったほうが
いいんじゃないか?
0143nobodyさん2007/02/05(月) 17:00:06ID:???
ワンタイムトークンってセッションIDじゃだめなの?
0144nobodyさん2007/02/05(月) 17:02:12ID:???
更新ボタンが押されたときに更新ボタンをdisableにするだけでいいよ
0145sage2007/02/05(月) 17:04:50ID:yfR2hgFN
更新ボタンをdisableとは???
0146虚弱PHP2007/02/05(月) 17:10:43ID:???
>>142
全く拘ってないところなので、もっといい方法があれば…。

>>143
セッションIDの場合、毎回session_regenerate_id(true);を呼んでやらないと、
固定トークン方式になっちゃうとおもいます。
0147nobodyさん2007/02/05(月) 17:14:18ID:???
140はフォームの入力データはどこに入れるの?
セッションにトークン文字列と入力データを入れとくということ?
0148虚弱PHP2007/02/05(月) 17:30:44ID:???
>>147
作ってみるとわかると思いますが、
普通にPOSTされたものを$_POSTから取得。
#GETでもいいけど

今回書いたのは、単なる「入力フォーム→処理」の流れに
トークン情報を追加しただけです。
0149nobodyさん2007/02/05(月) 17:47:02ID:XZ3zp/Tb
$class = new Class;
$foo = &$class->func(...);

/*
ソースコードを読んでいて、こんな書き方をみつけたのですが
「$foo = &」というのは初めてみました。
この「&」記号は何を意味しているのでしょうか?
0150nobodyさん2007/02/05(月) 17:51:40ID:???
>>145
<input type="submit" value="更新" onClick="this.disabled=true;" />

まあJavaScriptオフにされたらダメだけど。
0151nobodyさん2007/02/05(月) 18:29:59ID:???
urlencodeって、%A5%DB%A5%B2%A5%DB%A5%B2みたいになってるけど、
これはどの文字コードにも対応してるのかな?
0152nobodyさん2007/02/05(月) 18:35:55ID:???
>>151
unicode
0153nobodyさん2007/02/05(月) 19:00:42ID:???
>>148
だいたい演算子って想像つくんだから、
マヌアルよみなされ。
01541532007/02/05(月) 19:01:53ID:???
アンカーミス
>>149ね
0155nobodyさん2007/02/05(月) 19:40:59ID:???
&も>>4の4.に追加した方が良さそうだな
0156nobodyさん2007/02/05(月) 19:49:18ID:uzyn+pcG
携帯用アップローダーを作りたいんですが、普通はファイルを送信するときに
メールで送信しますよね?

そんな感じのソースありますか?もしなければ、どよのうな関数を使えばいいのか教えてください。
0157nobodyさん2007/02/05(月) 19:57:02ID:???
写メールをそのままアップロードできるやつキボンヌだ
0158nobodyさん2007/02/05(月) 20:08:51ID:???
メール送信してうpってメールサーバーとか勉強しないといけないよね
0159nobodyさん2007/02/05(月) 20:22:39ID: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();
?>
0160nobodyさん2007/02/05(月) 20:24:23ID:CjYpSo6e
と思ったんですが最後の行を
$u = $um->GetUnko();
$u->dasu();
という冗長な書き方にしたら、期待通り unko deta が表示されました。
でも最初のような、一行で書けた方が幸せなんですが、方法はないんでしょうか?
0161nobodyさん2007/02/05(月) 20:25:09ID:???
>>159
臭いので近寄らないで下さい
0162nobodyさん2007/02/05(月) 20:33:19ID:CjYpSo6e
>>161
いやサンプルがヘンですみませんが本気なんです。
ちなみにPHP4.4.4です。
0163nobodyさん2007/02/05(月) 20:33:52ID:???
> ちなみにPHP4.4.4です。
0164nobodyさん2007/02/05(月) 20:35:01ID:???
> ちなみにPHP4.4.4です。

function Unko() { }
function dasu() { echo "unko deta<br>"; }
でコーヒー射精した
0165nobodyさん2007/02/05(月) 20:40:57ID:CjYpSo6e
すみません、基本的なことがわかってないってことですよね?
どの辺りを調べればいいか、取っ掛かりを教えていただけますか? m(_ _)m
0166nobodyさん2007/02/05(月) 20:41:57ID:???
Unkoとdasuあたりを見直せばいいと思うよ
0167nobodyさん2007/02/05(月) 20:43:39ID:???
小一時間トイレに篭れば・・
0168nobodyさん2007/02/05(月) 20:44:41ID:???
PHP4でメソッドチェインはできない
$um->GetUnko()->dasu();
これはPHP4ではできない
0169nobodyさん2007/02/05(月) 20:49:30ID:CjYpSo6e
>>168
ありがとうございます、PHP4はそういう仕様なんですね。
諦めて冗長な臭い書き方をすることにします。
ありがとうございました。
0170nobodyさん2007/02/05(月) 20:56:35ID:???
へー、それできないんだ。意外。
( $um->GetUnko() )->dasu();
これだったらどうよ?
0171nobodyさん2007/02/05(月) 20:58:19ID:???
dasuメソッドはunkoManagerの仕事ではないか?
0172nobodyさん2007/02/05(月) 20:59:03ID:CjYpSo6e
>>170
それも試していたんですが、>>159と同様のエラーになります。
って今見て驚いたんですが、コピペしたエラー文に絶対パスが・・・
よくわかんないパスにしといてよかった
0173nobodyさん2007/02/05(月) 21:01:23ID:???
そんなパスどうでもいいよ
実名が出たってどうなるもんでもないし。
まぁうんこ大王としてこのスレで後世まで崇められるかもしれんが。
0174nobodyさん2007/02/05(月) 23:19:36ID:???
せめてPHP5でやればいいのに
0175nobodyさん2007/02/05(月) 23:30:51ID:uzyn+pcG
>>156
だーれか教えてくれませんか〜
0176nobodyさん2007/02/05(月) 23:32:54ID:???
>>175
おまいには理解できん仕組みだから諦めて携帯無料掲示板でも使ってろ
0177nobodyさん2007/02/05(月) 23:34:34ID:uzyn+pcG
>>176
日本語でおk

スレタイの意味わかってんの(笑
0178nobodyさん2007/02/05(月) 23:36:14ID:???
どよのうな
0179nobodyさん2007/02/05(月) 23:42:05ID:???
>>177
ホレ
imap_open
0180nobodyさん2007/02/06(火) 00:03:19ID:???
>>175
HTTPからでもできると思うんだけど。
0181nobodyさん2007/02/06(火) 00:07:58ID:???
177じゃないけど

>>179
それってPHPがメールを空けて解読してくれるってこと?
メール鯖でPHPにメールの内容がいくもんだと思ってたよ
0182nobodyさん2007/02/06(火) 00:16:26ID:???
>>180
kwsk
0183nobodyさん2007/02/06(火) 00:23:31ID:???
>>181
メールを受ける鯖とPHP鯖が一緒とかなら出来るんじゃね
一般的にはimap_openがメールを開く方法だと思うが
0184nobodyさん2007/02/06(火) 00:32:25ID:???
PHPとWebデザインだけで飯食ってける?
プログラムを重視するならやっぱりSE目指すくらいなことしないといけないのかな?
0185nobodyさん2007/02/06(火) 00:39:54ID:???
>>184
むりむり。

プログラマでご飯を食べていくには、PHP言語だけしか扱えないようでは
ダメだと思う。それでもプログラミングを仕事にするには結構キツイと思うけど。
0186nobodyさん2007/02/06(火) 00:42:54ID:???
今仕事してる人、どんな仕事してる?
あと、将来どうするか考えてるー?
0187nobodyさん2007/02/06(火) 00:46:02ID:???
俺はJavaが本業。PHPはバイト程度。
まあIT系はいつまで食えるかわからんから
もうひとつ別分野でメシのタネを持っておかないとなあと考え中。
0188nobodyさん2007/02/06(火) 00:55:28ID:???
>>184
PHPから入ったのはまずかったとかよく言われてるけど、
それでも他の言語触ってみると、案外理解できたりするものだよ。
PHPで身につけたスキルは他言語を学ぶ時にもある程度役立つ。
基本的なことは飛ばせるから、0からのスタートではないっていうのがいいね。
0189nobodyさん2007/02/06(火) 00:55:57ID:???
すみません、LinuxでApache+PHPをしたいのですが、
Linuxをはじめて触ったので何がなんだかわからない状態です。
PHPをダウンロードしたのですが、設定はWindowsと同じなのでしょうか?
0190nobodyさん2007/02/06(火) 01:01:33ID:???
('A`)・・・
0191nobodyさん2007/02/06(火) 01:10:36ID:???
PHP勉強しても無駄だよ
そろそろこの世からPHPなくなるよ
Ajaxの時代が来てるから
0192nobodyさん2007/02/06(火) 01:13:28ID:???
クマー
0193nobodyさん2007/02/06(火) 01:35:48ID:???
すんません、
Linux(Fedora Core5)+Apache+PHP+MySQLの詳しいサイトはないでしょうか?
0194nobodyさん2007/02/06(火) 01:37:53ID:???
超図解の本でも買ったら幸せになれるんではないかい?
0195nobodyさん2007/02/06(火) 02:32:19ID:???
>>189
とりあえず板違いだが、
ソースからのインストールは初心者はやめたほうがいい。
ディストリ付属のパッケージ管理システムで、
インストール設定までできるかもしれないので、
まずはそれを試すべし。
ていうかなんで慣れないOS無理して使うかね。
勉強ならいいけど、テストとか鯖運営とかの目的なら、
慣れてるほう使ったほうがいいよ。
Windowsだとセキュリティーがとか思ってるんだろうが、
結局は対策次第なんだから。

>>191
AjaxでPHPを使わないとは言い切れないわけだが・・・
言葉だけしっててどういうものか理解できてないだろ?
AJAX=JavaScript&XMLじゃないぞ。
0196nobodyさん2007/02/06(火) 03:08:17ID:???
>>195
ヒントつ 192
0197nobodyさん2007/02/06(火) 04:05:51ID:???
>>196
ヒント

   ∩___∩     /
   | ノ      ヽ  /
  /  >   < |/ そんな餌パクッ
  | //// ( _●_)/ミ
 彡、     l⌒l  ノ
 / __  \ \ヽ
. (___)   \__)
. O|       /
  |  /\ \
  | /    )  )
  ∪    (  \
        \,,_)
0198nobodyさん2007/02/06(火) 04:54:00ID:???
ユーザが指定したURLのheader形式(application/pdf,image/gif等)を取得したいのですがどのような方法があるでしょうか?
URL
0199nobodyさん2007/02/06(火) 08:29:42ID:???
>>198
何がしたいかわからないが
get_headers( URL ); ???
0200虚弱PHP2007/02/06(火) 09:04:57ID:???
>>156
sendmail(とか)から、phpスクリプトにメール転送してもらえばいいんじゃない?
たしか、マルチパートデータとしてコマンド引数として渡ってくると思うけど。

>>193
とりあえずGoogleで検索してみた。
http://www.google.co.jp/search?hl=ja&rls=GGLJ%2CGGLJ%3A2006-34%2CGGLJ%3Aja&q=FedoraCore5+Apache2+PHP5+MySQL5&lr=
0201虚弱PHP2007/02/06(火) 09:13:52ID:???
>>200
×コマンド引数
○コマンドライン引数

やったことあったから、ソース残ってるかと思ったけどなかった。
0202nobodyさん2007/02/06(火) 12:05:25ID:???
$ref = file_get_contents($url)で読み込んだときに
読み込むURLが404などのエラーだった場合に分岐させることは可能ですか?
0203虚弱PHP2007/02/06(火) 12:13:48ID:???
>>202
FALSEだったらほにゃらら〜以外は不可。
PEAR::HTTP_Requestでも使うといいのでは?
0204nobodyさん2007/02/06(火) 12:19:40ID:HiVQesHU
配列のキーを取得するにはどうすればいいのでしょうか?
たとえば
$array = array("tokyo"=>"東京","oosaka"=>"大阪","kyoto"=>"京都");
と言う配列があったとして、$kekkaが東京だったとき、
そのキーであるtokyoを返せればと思います。
0205虚弱PHP2007/02/06(火) 12:29:37ID:???
>>204
array_search
0206nobodyさん2007/02/06(火) 12:35:36ID:???
                        |
                        |  
      ∩___∩              |  ぷらぷら
      | ノ  _,  ,_ ヽ        ((   |
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)  >>204  ))
    彡、   |∪|  ノ  
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /        ヽ /
   \_,,ノ      |、_ノ
0207nobodyさん2007/02/06(火) 12:45:08ID:???
>>195
板違いのところご回答いただき有難う御座います。
普通にインストールから設定できました。
0208nobodyさん2007/02/06(火) 12:52:42ID:I7i9haBU
windowsxp sp2
apache 2.0.58
php 5.1.6
xdebug 2.0.0.RC3

xdebugを入れてpostの値をvar_dumpで表示すると ' が ' に変換されて表示されます。
値自体は変換されないので動作に支障はないのですが、見辛いので変換しないようにする方法とか分かりますか?

php.iniでコンフィグの設定をいろいろ変えてみましたが駄目でした。


0209nobodyさん2007/02/06(火) 12:53:33ID:???
ない。以上。
0210nobodyさん2007/02/06(火) 13:19:36ID:???
コンパイルオプションを忘れてしまい、php5をインストールするときに
うろ覚えでやってみたところ、コマンドラインから実行する際に、
なぜか print の標準出力ができなくなってしまいました。
var_dump だと出力されるのですが…。
原因がわかるかた教えてください。
0211nobodyさん2007/02/06(火) 13:20:26ID:???
>>210
echo
0212nobodyさん2007/02/06(火) 13:28:37ID:???
$def = 'def';
$hoge = 'abc'.$def.'ghi';

↑この結合の使い方、間違ってないですよね?
0213nobodyさん2007/02/06(火) 13:29:37ID:???
>>212
うん
0214nobodyさん2007/02/06(火) 13:30:29ID:???
>>211
すいません、それも同じで何も出力されません。
で、今テストして気づいたのですが

print "aaa";(echoでも可)
→ 何も出力されない

print "aaa";(echoでも可)
var_dump("aaa");
→両方出力される

print "aaa";(echoでも可)
var_dump("aaa");
print "aaa";(echoでも可)
→var_dump の前の print と var_dump だけ出力される

このような現象になっていました。
すいませんがお願いします。
0215nobodyさん2007/02/06(火) 13:34:49ID:???
>>214
ヒント:バルキスの定理
0216nobodyさん2007/02/06(火) 13:39:10ID:???
とりあえず原因の振り分けするときになんで同じ文字列出力させてんの?
02172122007/02/06(火) 13:40:59ID:???
array( 'a' => 'abc'.$def.'ghi',);
これも間違ってないでしょうか?
なぜか上を多用すると、
タイムアウトまで延々とスクリプト読み込み状態になります。
ちなみにエラーログには何も残りません。
多用しなければ問題ない、というのもわけわかめです。
0218nobodyさん2007/02/06(火) 13:41:01ID:???
>>214
最後に改行入れてみな
0219nobodyさん2007/02/06(火) 13:42:33ID:???
>>216
いえ、特に深い意味は。
十分わかるかなあ、と思ったもので…。

>>218
おわ! 出力されました。
もしよければ原因を教えていただけますか?
0220nobodyさん2007/02/06(火) 13:46:17ID:???
>>217
普通に実行できたんだが

<?php
$def = 'def';
$array = array( 'a' => 'abc'.$def.'ghi');
print_r($array);
?>
0221nobodyさん2007/02/06(火) 13:52:34ID:???
>>191
つか、お前、Ajaxでサイト作るときに、全部、手書きでハードコーディングしてるの?
PHPからAjaxのコード自動生成は、基本だと思うけど・・・

それ本気で言ってるの?
0222nobodyさん2007/02/06(火) 14:02:04ID:???
>>219
unixの世界ではテキストである標準出力やファイルの終端は
改行コードである"べき"らしい、ちゃんとした仕様なのかは分からないが
少なくともPHPのcliで改行で終わってない文字列を
標準出力に書き出しても表示されない模様
シェル依存かもしれんが、zshだけかなあ
0223nobodyさん2007/02/06(火) 14:06:10ID:???
>>222
そういうものなのですか、ありがとうございます。
ちなみに私は bash です。
今まで4.xを使っていたときはこのような現象がおきていなかったもので…。
ありがとうございました。
0224nobodyさん2007/02/06(火) 14:09:48ID:???
>>221
クマーポイントはそこじゃねーし
0225軟式PHP2007/02/06(火) 14:29:34ID:???
Ajaxは昔からあったから時代もくそもないぜってことだろうか。
0226nobodyさん2007/02/06(火) 14:34:06ID:???
ちげーよ。
「お箸が出てきたから、もうご飯の時代は終わり」といってるのと同じ。
箸だけあっても食べ物がなければ意味ないだろ。
0227nobodyさん2007/02/06(火) 14:58:06ID:???
誰?「アジャックス」って言ってるのは?
0228nobodyさん2007/02/06(火) 15:05:26ID:???
知ってる知ってる。「アヤックス」だろ?
0229nobodyさん2007/02/06(火) 15:26:39ID:zUpPH+yJ
$a = array("a" => "orange");
は定義できますが、実行時に配列を定義したいので
$a = array();
array_push($a, "a" => "orange");
とやると
Parse error: syntax error, unexpected T_DOUBLE_ARROW
になります。
どうすればいいですか?
0230nobodyさん2007/02/06(火) 15:29:41ID:???
>>229
http://php.net/array_push
0231nobodyさん2007/02/06(火) 15:29:42ID:???
$a = array("a" => "orange");
0232虚弱PHP2007/02/06(火) 15:51:29ID:???
>>229
$a["a"] = "orange";
0233nobodyさん2007/02/06(火) 15:58:34ID:???
>>229
「"a" => "orange"」は表記として正しくない(arrayでもない)
0234nobodyさん2007/02/06(火) 15:59:39ID:???
>>233
「"a" =>
↑が顔に見えてしまった件・・・
0235nobodyさん2007/02/06(火) 16:00:14ID:???
どうでもいいわ
02361542007/02/06(火) 16:11:54ID:SotyEyj1
チェックボックスのポストから渡る値をDBへ格納する場合
みなさんどんな形をとっていますか?
私はとりあえずですが、複数渡ってきた値をカンマ割りで
TEXTとしてDB入れてみました。
中身はこんな感じです→ $data="1,4,6,7,10"
しかし問題があり、SQLにて1で検索すると、1,10の
二つがかかってしまうような気がします・・・・
なにか良い案はないでしょうか。
0237虚弱PHP2007/02/06(火) 16:21:46ID:???
>>236
正規化すべし。
0238nobodyさん2007/02/06(火) 16:28:43ID:???
htmlspecialcharsの第3引数の存在の意義って何?
< > & " (とENT_QUOTESの場合はシングルクォート)
を変換するだけの関数に何故キャラクタセットの指定が必要なの?
マルチバイトの文字にこれらの特殊文字のアスキーコードが入る可能性ってあるってこと?

第3引数もちゃんと指定しておくべきっていう解説のページは
色々見つかるんだけどそもそもなんでこんな引数が
必要なのかっていう意味がわからないのだが
0239nobodyさん2007/02/06(火) 16:29:36ID:???
>>236
ビット演算かMySQLならENUMが使える。だがまず正規化を考えるんだ。
0240nobodyさん2007/02/06(火) 16:33:48ID:9ME9ZkaH
POSTされてきた文字列がすべて英語かどうか判別するためには
どういう手順をおえばいいでしょうか?
何か関数が用意されているのでしょうか?
02412392007/02/06(火) 16:34:45ID:???
ENUMじゃ無くてSET型でした。
付け足すとこいつらはオプションを追加するたびにAlter tableでめんどいのでおすすめしない。
0242nobodyさん2007/02/06(火) 16:36:45ID:???
>>240
日本語対応で文字カウント=バイト数なら全部英字じゃない?
0243nobodyさん2007/02/06(火) 16:41:45ID:???
>>203
> PEAR::HTTP_Requestでも使うといいのでは?

404の判定はどうしたらいいですか?
0244nobodyさん2007/02/06(火) 17:00:50ID:???
>>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;

/* ... */
}
}
?>
0245虚弱PHP2007/02/06(火) 17:01:33ID:???
>>243
http://pear.php.net/manual/ja/package.http.http-request.response-eval.php
02461542007/02/06(火) 17:06:45ID:SotyEyj1
>>237 >>239 正規化ですか。
好きな物テーブルに id=1 name=りんご 15種類程登録し。。
編集フォームにDBから上記を引っ張りチェックボックスを表示させてます。

フォームからポストの内容をみて
友達テーブルの中に好きな物カラムをつけ1,5,6,8と記録し
友達テーブルからの表示では1,5,6,8を,で分解し
好きな物テーブルからidでnameを取ろうと考えました。

初心者なりに考えてみたのですが、これでいいのかどうか・・
そもそも考え方自体駄目なのか、、アドバイスお願いします。
0247nobodyさん2007/02/06(火) 17:11:51ID:???
>>246
例)友達好きなものテーブルを作る

友達ID | 好きなものID
--------------------
  5  |   1
--------------------
  5  |   5
--------------------
  5  |   6
--------------------
  5  |   8
--------------------
0248nobodyさん2007/02/06(火) 17:16:57ID:9ME9ZkaH
>>242
どうもです
それでやってみます
02492362007/02/06(火) 17:23:36ID:SotyEyj1
>>247
ありがとう!なるほどです。

ポスト毎に重複があるかチェックではなく、
IDで全て消してから新規追加処理する形が楽でよさそうかな
0250nobodyさん2007/02/06(火) 17:36:08ID: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 "送信に失敗しました";
}
02512502007/02/06(火) 17:37:21ID: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
02522432007/02/06(火) 17:42:09ID:???
>>244-245
助かりました
0253nobodyさん2007/02/06(火) 17:55:14ID:???
>>250
コメント使っておかしいとこさがせ
0254nobodyさん2007/02/06(火) 18:01:35ID:NJuIco/q
if( $_SERVER["REQUEST_METHOD"] != "POST" )
{
exit( "不正なリクエストでおじゃる" );
}
$hoge = isset($_POST["hoge"]) ? $_POST["hoge"] : "";

このようなソースを見たのですが、リクエストのメソッドを調べて
チェックする意味はあるのでしょうか?

たとえ、引数が GET で渡されたとしても、それが $_POST に代入される
ようなことがありえるのでしょうか?
0255nobodyさん2007/02/06(火) 18:02:14ID:???
質問する時間帯によって回答者のレベル・優しさが異なる件
0256nobodyさん2007/02/06(火) 18:02:58ID:9ME9ZkaH
>>255
あるあるwwwwwwwwwwww
0257nobodyさん2007/02/06(火) 18:09:42ID:LpXabJVa
インスタンス化せずに、親クラスから子クラスの独自関数の有無を調べる方法はありますか?
あれば、その方法をご教示ください。

// その1
class A {
    function 有無を調べる方法の関数() { // return : false
        有無を調べる方法;
    }
}

class B extends A {
}

// その2
class A {
    function 有無を調べる方法の関数() { // return : true
        有無を調べる方法;
    }
}

class B extends A {
    function 独自関数() {
    }
}

よろしくお願いいたします。
0258nobodyさん2007/02/06(火) 18:11:35ID:???
>>251
ヒアドキュメントの終端IDの後の半角スペースを消すべし
0259nobodyさん2007/02/06(火) 18:16:12ID:???
バーローwww
0260nobodyさん2007/02/06(火) 18:17:05ID:???
>>257
インスタンス化しないってことはスタティックにコールするってことなの?
0261nobodyさん2007/02/06(火) 18:25:20ID:???
アルファベットかハイフンか、という正規表現は
/^[a-zA-Z-]+$/
であってますでしょうか?
それとも
/^[a-zA-Z\-]+$/
になるのでしょうか?
0262nobodyさん2007/02/06(火) 18:25:27ID:LpXabJVa
>>260
class A から class B のオブジェクトを生成せず、class B のファイルを require した状態で、静的にクラスのメンバ関数である独自関数の有無を調べたいのです。
02632572007/02/06(火) 18:28:48ID:LpXabJVa
オブジェクトを生成する方法なら、method_exists($obj, '独自関数') とすることで可能なんですが・・・
必ずしも生成しなければならないのでしょうか。
0264nobodyさん2007/02/06(火) 18:29:48ID:???
>>257
get_parent_classで親クラス辿って
get_class_methodsでメソッドリストを取得して
対象のメソッド名があるか調べるとか
0265nobodyさん2007/02/06(火) 18:29:55ID:???
カレンダーで選んだ月から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);
ここが何をしているのかわからないのですが、教えてもらないでしょか?
0266nobodyさん2007/02/06(火) 18:31:55ID:???
年またぐ場合の処理だろうけど
あまりいいソースではないな
0267nobodyさん2007/02/06(火) 18:35:30ID:???
>>262
だからその調べるメソッドはどうやってコールするのっていうお話

>>265
それは三項演算子
0268nobodyさん2007/02/06(火) 18:40:47ID:???
>>265,265
理解できました!
ありがとうございます。
0269nobodyさん2007/02/06(火) 18:42:28ID:???
>>261
どちらでも通るんじゃない?
尤も、そういう事で悩むなら、
常に\を付けるようにした方がいいと思うが
0270nobodyさん2007/02/06(火) 18:48:23ID:???
お聞きします。gmail等で、相手がログインすると
アイコンの色がリアルタイムで変わりますが、
あれをphp・javascriptで実現することは可能でしょうか?
もしあれば、参考になるサイトを教えていただけると幸いです。
よろしくお願いします。
0271nobodyさん2007/02/06(火) 18:49:02ID:???
サイトはわかんねーけど簡単じゃん
0272nobodyさん2007/02/06(火) 18:49:37ID:???
まじすか!
教えてもらえないでしょうか?
0273nobodyさん2007/02/06(火) 18:52:10ID:???
おめーの態度が気にくわねーからなー
とりあえず下半身露出してコンビニ行ってさ、
「ここにこんな顔のやつが来ませんでしたか?」って店員に聞け
「それはあなた・・・ですよね?」って言われたら
「そいつがルパンだ!追えぇえええr!!!1」」っつって走り去って来い
そうしたら教えてやらんでもない
02742572007/02/06(火) 18:52:20ID:LpXabJVa
自己解決しました。。。
get_class_methods して in_array して調べました。
お手数をおかけしましたm(_ _)m
0275nobodyさん2007/02/06(火) 18:54:03ID:???
>>191
Ajaxってクライアントサイドの使い勝手(UIとか非同期通信)の向上だから
サーバーサイドのPHPとは競合しないような気がする。どっちかというとFlashとかと競合するような。

いまいち分かってないんだけど ↑ って合ってまつか?勘違いなら恥ずかしい><
0276nobodyさん2007/02/06(火) 18:55:13ID:???
とりあえず日本語直してから出直せばいいと思うよ
0277nobodyさん2007/02/06(火) 19:49:17ID:???
PHP終わったなw
0278nobodyさん2007/02/06(火) 20:15:10ID:???
>>270
Ajax叩いて相手のステータスをサーバに返してもらうだけじゃん。
02792782007/02/06(火) 20:16:08ID:???
× サーバに
○ サーバから
0280nobodyさん2007/02/06(火) 20:16:43ID:???
しかし、AjaxにしろFlashにしろ、検索エンジンに拾ってもらえないのがいたいよね。
それが気がかりだから、サイトでAjaxが使えない。

Flashは元々作れない。
0281nobodyさん2007/02/06(火) 20:26:03ID:???
動的に遷移する部分にURLが割り当てられないだけで
別にajaxにしたから検索エンジンに拾われなくなるわけじゃない
0282nobodyさん2007/02/06(火) 20:34:29ID:???
ただ URL だけでページを再現できるような作りになっていないと
拾ってもらったところで有効に利用してもらえないだろうけど
0283nobodyさん2007/02/06(火) 20:34:41ID:???
>>278
レスありがとうございます。
その「相手のステータス」を取得する方法なんですが、
ログイン状態をDBに残してそれを定期的に見に行く、って感じでしょうか
もっと簡単な方法ありますか?
0284nobodyさん2007/02/06(火) 20:39:38ID:???
>>283
DBにしろファイルにしろそれ以上は簡単にならんよ
0285nobodyさん2007/02/06(火) 21:30:26ID:???
誰か>>254をお願いします。
0286nobodyさん2007/02/06(火) 21:37:30ID:???
>>254
ある
ない
0287nobodyさん2007/02/06(火) 21:50:13ID:???
>>284 了解です。ありがとうございました。
0288nobodyさん2007/02/06(火) 21:51:00ID:???
>>250は解決したかい?
02892502007/02/06(火) 22:18:45ID:RpH7WtFK
>>288
し、しないんです・・・orz
俺こんなのも作れないなんてまじ駄目ですわ。。。orz
0290nobodyさん2007/02/06(火) 22:21:37ID:???
今酷い自演を見た
02912502007/02/06(火) 22:24:45ID:RpH7WtFK
うはwwwww
ごめ・・・・w
でも>>288は俺じゃないんだぜ。。。まじで。。。
0292nobodyさん2007/02/06(火) 22:27:06ID:???
つーか>>258書いたんだけどどうなのよ
0293nobodyさん2007/02/06(火) 22:28:23ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
02942502007/02/06(火) 22:29:11ID:RpH7WtFK
>>292
放置してすみませんorz
駄目ですた。。。というかスペースありませんですた。。。
0295nobodyさん2007/02/06(火) 22:31:45ID:???
釣りやめろよw
0296nobodyさん2007/02/06(火) 22:31:50ID:???
試したけどパースエラーは出なかった
send mail 入ってないから別のエラーが出たけど

あと
register_globals が off なら $_POST['submit'] でないと動かない
02972502007/02/06(火) 22:37:48ID:RpH7WtFK
>>295
ガチです。。。

>>296
まじっすか・・・
自宅鯖(Apache+PHP5)でもレン鯖(PHP4)でも
最後の行(?>の行)でパースエラーですた。。。
ヒアドキュメントをやめてスクリプト部分だけ<?php ?>しても
最後の行(<html>の行)で同じくエラーがでますた。。。

register_globals・・・・・・・・・れじたすたー・・・ぐろーばるず・・・
ググってきます。。。orz
0298nobodyさん2007/02/06(火) 22:42:02ID:LpXabJVa
配列を返す関数(例えば get_class_vars など)から、スライスなどにより一発で要素を取り出すことはできますか?
できればその方法を教えてください。

$vars = get_class_vars('class');
$var = $vars['var'];

これを一度の処理で $var に代入したいのです。
宜しくお願いいたします。
0299nobodyさん2007/02/06(火) 23:07:36ID:???
>>297
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />

mb_internal_encoding("EUC-JP");

ファイルの文字コードはどっちなんだ
0300nobodyさん2007/02/06(火) 23:22:43ID: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
03013002007/02/06(火) 23:24:05ID:???
あっ、ほげほげ.comって書いちゃった・・・
失礼しました
03022502007/02/06(火) 23:25:12ID:RpH7WtFK
>>299
Shift_JISで保存してます!!!!
まじです。。。ほんとです。。。
0303nobodyさん2007/02/06(火) 23:26:27ID:???
一行にこだわるより、読みやすさを考えたほうがいいと思うが。

工夫すれば
array_search
array_keys
とかで出来るんじゃね

関数をある程度覚えるために逆引き本とかマニュアルを読んだほうがいい。
03043032007/02/06(火) 23:27:19ID:???
>>303は>>298ね
0305nobodyさん2007/02/06(火) 23:29:34ID:???
>>300
とりあえずソースを開いてCSSのURLがどうなってるか見てみよう
0306nobodyさん2007/02/06(火) 23:43:01ID:???
ログイン制のWebサイトをつくってるんですけど
再ログインするときにオートにしたいんですけど(mixiみたいに)

この場合クッキーにはなにを保存すればいいんですか?
ユーザー名とかを生で保存すると変更されてダメらしいです。
暗号化したパスワードとかですかね?
03073062007/02/06(火) 23:43:55ID:UL5pyI1O
すいません質問したのにsageちゃいました。
0308nobodyさん2007/02/06(火) 23:51:27ID:???
前から疑問に思ってたけどCookieって暗号化されて保存されるんじゃないの?
簡単に復号できんの?
0309nobodyさん2007/02/06(火) 23:54:03ID:???
>>306
標準的な方法はセッションIDじゃない?
ログイン時にランダムな文字列(セッションID)を生成して Cookie にセット
そのIDからユーザを検索できる管理表をサーバ側で管理する
あとはCookieとしてセッションIDが送られてくるからユーザを検索して処理を実行する。
03103062007/02/06(火) 23:54:24ID:UL5pyI1O
>>308
そうなんですか?
じゃあ普通にクッキーにログインIDとかパスワードを保存しちゃっても大丈夫なのかな?

クッキー信用すんなwwwって言われちゃったんですけどね(´・ω・`)
0311nobodyさん2007/02/06(火) 23:56:34ID:???
セッションIDなんかありえないでしょ。
いつ再ログインするかもわかんないのに
セッションオブジェクト保持しつづけんのか?

暗号化したIDと暗号化したパスでOK
俺はそうしてる
0312nobodyさん2007/02/06(火) 23:58:17ID:???
>>306
cookieの有効期限を3日間とかくらいにする(時間は適当に)。
セッション情報(ユーザIDとか)をランダムで無意味な文字列をキーにしてサーバに保管しておいて、
cookieにはそのキーを与えてやるのが普通のやり方かな。

まああとは相手のIPも覚えておいてある一定時間以上経過の後に
cookieの値は同じでも違うIPからのアクセスがあったらはじくくらいの
処理を入れておけば、セッションハイジャックにはある程度強くなるかな。

>>308
暗号化しても意味ないだろ…。
0313nobodyさん2007/02/07(水) 00:01:26ID:???
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" になってしまいます。問題ありませんか?
0314nobodyさん2007/02/07(水) 00:10:07ID:g340G47s
array_slice関数は、取り出しにn番目という指定をしますが、
特定のキーの要素を取り出したい、という関数ってありますか?
(マニュアルを調べたところなさそうではありますが、、、)
0315nobodyさん2007/02/07(水) 00:10:15ID:???
>>311
その暗号化したIDとパスがばれるとマズ〜
というか暗号化している/いないに関わらず
そのデータなら一意にログイン可能というのが致命的だろ
0316nobodyさん2007/02/07(水) 00:10:52ID:???
>>314
$array['key']
0317nobodyさん2007/02/07(水) 00:15:24ID:???
>>315
どうやんのがいいの?
03183112007/02/07(水) 00:17:48ID:???
>>315
うう、そうか。業界のセオリーはどういうのなんだろ?
IPアドレスまで暗号化して保存すればいいのか?
さらにYahooみたいに定期的にパスワード要求か?
0319nobodyさん2007/02/07(水) 00:18:26ID:???
変数ないの文字列を、変数に変換するという関数なかったですかね?
シングルクォーテーションをダブルに変えちゃうと言う
ものだったんですが・・・

わかりにくくてすいません。
03203062007/02/07(水) 00:18:29ID:mQUtqk1P
>>306
なるほど・・・参考になります。
とりあえず色々試してみます。

調べてたら ssh という単語が出てきたんですがこれはなんですか?
php のサンプルコードとか見つかんないんですけど、
アパッチみたいにサーバー側に設置するもんなんですかね?

まぁロリポでは使えないらしいんですけどね・・・
03213062007/02/07(水) 00:24:08ID:mQUtqk1P
>>320
すいません。なに聞いてるのか分かりづらい質問でした。
結局聞きたいのは

sshってのは良く分かんないけどこれがないと安全なページがつくれないの?

ってことですね。今作ってるの趣味のサイトで
クレジット番号とかそういう情報とかないんで必要かな?と

なんか調べてみると公開鍵とかすごい難しそうですし、
サーバーも変えないといけないので、できれば遠慮したいなー・・・
0322nobodyさん2007/02/07(水) 00:26:48ID:???
sshじゃなくて、SSLじゃね?
03233062007/02/07(水) 00:37:15ID:mQUtqk1P
>>322
すいません。そうかもしれません。

銀行とかのWebページで
情報をsslで送信する。とか言うチェックボックスが合ったので
あれはどうやってるのかな?と思いまして・・・
0324nobodyさん2007/02/07(水) 00:43:55ID:???
>>319
よく分かりませんがとりあえずeval()置いときますね
0325nobodyさん2007/02/07(水) 00:56:45ID:???
SSLは個人情報を扱わなければいらないんでね?
…とは思うが、SSHもSSLも何のためにどう使うものなのかは理解しておいて損はないよ

ログイン制のサイトを作るとかいうレベルの人間にとっては別段難しい話じゃない
適当に解説してるサイトを見つけるなりしてゆっくり読めば分かる
03263062007/02/07(水) 01:06:20ID:???
>>325
分かりました。解説ページでも見て公開鍵とか秘密鍵とか一応仕組みだけは
理解しておこうと思います。

まぁロリポでは使えないっぽいですけどね・・・○| ̄|_
sakura internetとかにしたいぽ。ナカナカの機能だそうで。
0327nobodyさん2007/02/07(水) 01:10:06ID:???
>>326
解説ページ探してきて
03283262007/02/07(水) 01:19:38ID:mQUtqk1P
>>327
ちょwwwww
めちゃくちゃ聞きたかったけど、
これは自分で調べるのがマナーだなと思った質問をあっさりとwwww

まぁよさそうなのが合ったらでよかたらw
0329nobodyさん2007/02/07(水) 01:31:27ID:???
おまえド素人のくせに調子乗りすぎ
普通の素人でさえSSLくらい知ってるっつーの
SSLすら知らないやつがログイン制サイトなんて作るなカス
0330nobodyさん2007/02/07(水) 01:34:14ID:wu4US5vn
俺の個人的な意見だがレン鯖つかうような物だったら
そこまでやらないでつくっちゃうよ。
企業物つくるときは気を使ってやるけど。
0331nobodyさん2007/02/07(水) 01:41:36ID:g340G47s
>>316
いや、まぁ、そうなんですが、それだと元の配列に取り出した要素が残ってますよね?
0332nobodyさん2007/02/07(水) 01:42:24ID:???
>>331
unset($ary['key']);
0333nobodyさん2007/02/07(水) 01:42:40ID:???
>>324
それですそれです!
ありがとうです!
0334nobodyさん2007/02/07(水) 01:45:01ID:g340G47s
SSLなんて気休めじゃない?
0335nobodyさん2007/02/07(水) 01:45:46ID:g340G47s
>>332
あーなるほど。そういう方法もあったか。その方がシンプルですね。どもです。
0336nobodyさん2007/02/07(水) 01:57:25ID:PrXTLmZ9
一意な値から、推測不可能な値を求める方法ってmd5以外に何かありますか?
md5は結果の桁数が多すぎるので、結果が10桁以内に収まってくれると嬉しいのですが。
当然元の一意な値は、10桁以内で表せる範囲です。
0337nobodyさん2007/02/07(水) 02:02:47ID:???
メソッドを継承する方法はextends以外にないんでしょうか?
二つ以上のクラスから、メソッドを継承したいんですが・・・
0338nobodyさん2007/02/07(水) 02:14:02ID:???
>>337
継承したクラスを継承
0339nobodyさん2007/02/07(水) 02:14:45ID:???
>>336
crc32を使うなり、md5の前10文字持ってくるとか
いくらでもやり方があるんじゃない
0340nobodyさん2007/02/07(水) 02:27:53ID:???
ちなみに10桁以下でないと困る理由でも?
0341nobodyさん2007/02/07(水) 02:28:06ID:???
>>338
ありがとうございます
0342nobodyさん2007/02/07(水) 02:35:37ID:???
>>339
あ、CRC32をすっかり忘れてました。
これでやってみようと思います。
ありがとうございます。

>>340
僕は困らないんですが、電通が困るらしいです。
クライアントさんにそんな訳わからない文字列出せるわけないよね?
って言われました。
URLに埋め込まれる文字列に過ぎないってのに。
死ねよ電通。
0343nobodyさん2007/02/07(水) 02:39:42ID:???
企業名出すと特定されるぞおまえ。10桁以内ってのも特殊な処理だしな
0344nobodyさん2007/02/07(水) 02:41:29ID:???
電通経由で仕事もらってる奴なんて山ほどいるだろw
0345nobodyさん2007/02/07(水) 03:08:41ID:???
電痛w
0346nobodyさん2007/02/07(水) 03:21:19ID:???
>>342
ていうかそういうことをここで暴露するのはまずいぞ。
いろいろ守秘義務とかあるだろ。
0347nobodyさん2007/02/07(水) 05:59:16ID:???
>>342
電通といっても○○電気通信△△株式会社
とか
メジャーじゃなく「でんつー」と呼称している会社もある

とフォローしておいてやろうw
0348nobodyさん2007/02/07(水) 06:12:03ID:???
ばれないのを前提に語るなかれ。
ばれた時にどうなるかっていうのを考えたほうがいいよ。
0349nobodyさん2007/02/07(水) 06:20:19ID:???
とりあえず電通に通報しますた。
0350nobodyさん2007/02/07(水) 07:54:04ID:???
SpredSheet_Excel_Writerで
$wb->setVersion(8);
したら日本語文字化けするってのは仕様?
回避方法ってある?
0351nobodyさん2007/02/07(水) 09:30:30ID:???
ある
0352虚弱PHP2007/02/07(水) 09:47:44ID:???
実用上、たいして問題ないだろうけどMD5は簡単に突破できるって話になってるね。
SHA1〜SHA512あたりが、MD5より強い。
でも、SHA1も最近弱くなってるって話も出てるみたい。
ハッシュの桁数指定なんてマジありえない。
0353nobodyさん2007/02/07(水) 09:49:16ID:???
>>351
�d
でもExcel_Reviser使う事にしたwww
0354nobodyさん2007/02/07(水) 10:30:05ID:???
クッキーに保存していいのは、ランダムで予測不可能なセッションIDのみ。
0355nobodyさん2007/02/07(水) 10:44:27ID:JQtXfKJc
>>351
回避方法教えてくれ
0356nobodyさん2007/02/07(水) 11:05:37ID:JQtXfKJc
やっぱ俺もExcel_Reviser使うことにした
0357虚弱PHP2007/02/07(水) 13:59:02ID:???
>>308
見ればわかるけど、ただのプレーンテキスト
暗号化もなにもされない。
SSL用のセキュアCookieなら暗号化されてたはず。

>>310
CookieにログインIDとかパスワードとか、完璧にダメ。

>>311
普通はCookieにセッションIDのみ。
0358nobodyさん2007/02/07(水) 14:05:38ID:TYE8oh71
データ管理モデルとして適切なのはどっち?
そして全体としての処理が早いのはどっち?
DBはMySQLです。

1.POSTされたデータそれぞれに対してDB上でフィールドを用意。
出力には、それぞれの値をオブジェクトのプロパティとして読み込んでから。

2.POSTされたデータをデリミタで区切ってひとつのデータとしてDBに書き込む。
(まぁそのデータのIDとかautoIncrement用のものは別に用意している)
出力には、その文字列を読み込んでexplodeして処理。

過去ログにチェックボックスの処理については、結合して処理してますとあったんだけど、
自分はひとつひとつフィールドを作っていた愚か者だったかと思い。
0359nobodyさん2007/02/07(水) 14:23:16ID:???
んなもんそのデータをどう扱うか次第だろ
どっちがいいとかそういう問題じゃねーよ
そのチェックボックスで選択したデータから
関連するデータを引っ張ってきたりするなら
当然フィールドは分けて管理するし
単純に何を選んだのか表示するだけのデータなら
ひとつのデータとして突っ込んでも問題ないだろう
0360虚弱PHP2007/02/07(水) 14:31:09ID:???
>>357
に関してこんな説明見つけた。
http://blog.ohgaki.net/index.php/yohgaki/2006/05/09/a_ei_if_e_e_a_pa_e_oa_a_sa_da_ca_sa_bc
ここでは、自動ログイン専用のハッシュ値(&データ)使えということになってるね。

>>358
データ管理モデルとしては前に出た通り
1でも2でもなく「きちんと第三正規化しようね」だと思うけど。
処理は早くないかもしんないけどね。
0361nobodyさん2007/02/07(水) 16:34:00ID:???
以下のように
子クラスである(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);
 }
}
0362質問 ◆a84QTNJKSg 2007/02/07(水) 16:53:42ID:???
ちょっと意見を聞きたいんだけど、みんなは「マジッククオート」を ON にしている?
(デフォルトは ON らしい)

データベースにSQLを発行するときでも、実行する際に適切にエスケープする
方がよっぽど効率的だと思うんだよね。
メールを送信する際でも、stripslashes()でいちいちクオート部分を
取り除くのも面倒だし……。
0363nobodyさん2007/02/07(水) 17:01:57ID:???
>>362
俺はOFFにしてる。
0364虚弱PHP2007/02/07(水) 17:12:58ID:???
>>362
OFF推奨。文字コードによっては面倒な問題が増えるだけ。
magic_quoteじゃエスケープのかわりにならないし。
0365nobodyさん2007/02/07(水) 17:18:35ID:???
>>361
マニュアルのクラスとオブジェクトの所読み直して来い
0366nobodyさん2007/02/07(水) 17:23:45ID:vvyzlZ8J
preg_matchとかで最短マッチにしたいんですけどどうすればいいのでしょうか?
0367nobodyさん2007/02/07(水) 17:23:57ID:khinYXrO
fgetscsvについて
HTMLコードをデータとして扱ってて、日本語使ってるから今回は無しだと思ってるが…
色々あった問題は解決されてるんでしょうか?
0368虚弱PHP2007/02/07(水) 17:28:01ID:???
>>366
http://www.google.co.jp/search?hl=ja&q=preg_match+%E6%9C%80%E7%9F%AD%E3%83%9E%E3%83%83%E3%83%81&lr=
0369nobodyさん2007/02/07(水) 17:45:25ID:khinYXrO
>367修正
fgetcsv だったか。
0370nobodyさん2007/02/07(水) 17:53:13ID:QCFUqHQb
Perl 正規表現で マルチバイト文字は使えないのなかな。UTF-8 で使いたいのだけど。。
0371nobodyさん2007/02/07(水) 18:00:10ID:???
質問です
偉い人教えてください。

<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にどのように記述して情報を送信したらいいのか分かりません。
教えてください
03723712007/02/07(水) 18:01:56ID:???
aaa.html bbb.html 両方で同じ情報を取得したいのです
教えてください
0373nobodyさん2007/02/07(水) 18:18:01ID:???
bbb.htmlでも$_POST['a1']で取れますよ
03743712007/02/07(水) 18:19:24ID:???
http://cache.yahoofs.jp/search/cache?p=fsockopen+post&fr=top_v2&tid=top_v2&ei=UTF-8&search_x=1&u=www.phppro.jp/qa/detail.php%3Fid%3D99&w=fsockopen+post&d=PsX5k-xsOOcK&icp=1&.intl=jp
これですな
事故解決しますた
ありがとうございます
0375nobodyさん2007/02/07(水) 18:21:00ID:???
aaa.htmlに
<form action="bbb.html" method="POST">
のフォームのボタンを置いて客に押させるw
0376nobodyさん2007/02/07(水) 18:22:36ID:???
>>361
hoge::$hoge
0377nobodyさん2007/02/07(水) 18:27:11ID:QCFUqHQb
以下の正規表現がうまくマッチしてくれないんだけど、なんでかな。。。

$reg = '(.+)(って)何';
$str = 'うんこって何';
if (mb_ereg($reg, $str, $matched)) {
03783772007/02/07(水) 18:29:31ID:???
解決した。
mb_regex_encoding()
でエンコーディングを指定していなかった。
03793582007/02/07(水) 18:34:39ID:TYE8oh71
>>359
>>360

了解いたした。
どっちが早いかってのもやること次第だと。
2みたいなことするなら正規表現つかえるよーにしとけと。
0380nobodyさん2007/02/07(水) 18:49:12ID:???
>>379
釣られておくが、とりあえず「正規化」でぐぐっておいた方がいいと思うw
0381nobodyさん2007/02/07(水) 19:21:15ID:???
smartyで内部文字コードEUC-JPのものをSJISで表示させたいのですがどのようにすればいいでしょうか?
0382nobodyさん2007/02/07(水) 19:37:05ID:???
>>381
displayせずfetchで結果だけ取得して変換かけてから出力
0383nobodyさん2007/02/07(水) 20:26:12ID:QCFUqHQb
PHP で関数のコールスタックを知ることってできますか?
C の ASSERT マクロのようなものを作りたいのだけど。
0384nobodyさん2007/02/07(水) 20:45:38ID:???
>>383
debug_backtrace()
03853582007/02/07(水) 20:58:40ID:TYE8oh71
>>380
ググって理解しましたすんません。
0386nobodyさん2007/02/07(水) 21:27:32ID:ONXl1Hmy
すみません、すごく下らない質問ですが

$dirObj = dir("./img");
while($strPath = $objDir -> read()){
hoge();
}
$dirObj -> close();

っていうスクリプトがあったとして、

$dirObj = dir("./img");
while($strPath = read($objDir)){
hoge();
}
close($dirObj);

と書くことは出来ないんでしょうか? 
0387nobodyさん2007/02/07(水) 21:41:18ID:vvyzlZ8J
>>368
ありがとうございました
0388nobodyさん2007/02/07(水) 21:58:04ID:???
WEB画像の文字列をPHPで取得するのはどうやるのでしょうか?
教えてくださいエライ人
0389nobodyさん2007/02/07(水) 22:01:35ID:???
    ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J 
/     ∩ノ ⊃  ヽ                   
(  \ / _ノ |  |         
.\ “  /__|  |
  \ /___ /
0390nobodyさん2007/02/07(水) 22:04:30ID:???
釣り針にエサすら付けないとは
0391nobodyさん2007/02/07(水) 22:05:33ID:angp4gxd
それでも釣られようかどうか悩む389が良い奴だということはわかった
0392nobodyさん2007/02/07(水) 22:07:40ID:???
展開とかして画像処理すればいいんじゃね?

>>386
わざわざ手続き指向で行きたいなら
http://jp.php.net/manual/ja/function.opendir.php
使えばいいんじゃね
0393nobodyさん2007/02/07(水) 22:23:35ID:???
ちょっと過疎ってないスレで適当な場所が見つからなかったので、ここで質問させてください。
md5のようなハッシュで、63bit(64bit intの正の数分)のハッシュを作りたいのですが、
アルゴリズム的に最も良い切り詰め方があれば、教えてもらえませんか?
単純に前方、もしくは、後方63bitをとっても悪くないとは思うのですが、
よりよい解があるのなら、そうしたいと思いまして。
0394nobodyさん2007/02/07(水) 22:36:56ID:31Gux073
全角や半角カナなどを半角英数字に直す関数ってありますか?
0395nobodyさん2007/02/07(水) 22:42:28ID:???
>>394
mb_convert_kana()
0396nobodyさん2007/02/07(水) 22:45:13ID:???
>>395
カナを英数には無理だろうな…
0397nobodyさん2007/02/07(水) 22:48:09ID:???
ああ適当に読んでた
こうですか?bin2hex('あいうえお')
ごめんなさいorz
0398nobodyさん2007/02/07(水) 22:54:20ID:WNEJmURw
サバー側で起きるイベントを逐次ブラウザに送信するサーバープッシュを
作るのにいい方法はないでしょうか?

NN4.x はサーバープッシュに対応してるみたいですが、出来ればIEで。
web serverはapache2です。
CGIはcまたはPHPを使用しています。
クライアントプルを使うとリロードの度に画面がちらつくのが困る。
IE、mozillaでクライアントプルで1晩走らせておくと IEがstack overflow
を起こしてしまいました(frameタグを多用してたから?)

IEのactiveXを開発する知識も時間もありません・
同じような悩みで解決した人いますか?
0399nobodyさん2007/02/07(水) 22:54:40ID:ONXl1Hmy
>>392
ありがとうございます
open("/hoge");
みたいなのを手続き指向って言うんですか?
手元のPHP4が最新の本を見ると手続き指向?で書いてあって、
PHP5の本で見ると -> でのやり方が書いてあります。

どっちがいいとかあるんでしょうか?
不親切なハズレ本買っちまったかなぁ…
0400nobodyさん2007/02/07(水) 23:09:51ID:???
>>399
分からないうちは普通の関数でやるのが吉
もし気になれば「オブジェクト指向」について調べてみてね☆
0401nobodyさん2007/02/07(水) 23:51:36ID:???
>>398
良くわかんないけど、JavaScriptのXMLHttpRequestじゃ無理なの?
リロードは解決できそうだけど。
0402nobodyさん2007/02/07(水) 23:54:57ID:???
>>394
die("半角英数字で入力してください");
って関数使えば良いんじゃね?
0403nobodyさん2007/02/07(水) 23:55:02ID:7J2JH6wV
<?
include("indck.php");
include("indek.php");
include("cindexeck.php");
include("index.php");
include("check.php");
include("indeck.php");
include("chede.php");
;?>

このようにファイルを取り込んでいるのですが、全て同時に取り込むなどの
効率をあげる方法はありませんでしょうか
0404nobodyさん2007/02/07(水) 23:57:20ID:???
<?
include("indck.php");
include("indek.php");
include("cindexeck.php");
include("index.php");
include("check.php");
include("indeck.php");
include("chede.php");
?>
って書いてあるファイル読み込めば良いんじゃね?
0405nobodyさん2007/02/07(水) 23:59:44ID:???
>>404
コーヒー吹いた
0406nobodyさん2007/02/08(木) 00:00:55ID:2T63cspu
>>400
ああ、これがオブジェクト指向うんぬんの問題だったんですか
なるほどー 勉強してみます
ありがとうございました
0407nobodyさん2007/02/08(木) 00:10:22ID:???
>>404
 。・゚゚・∧∧・゚゚・。.  
    /⌒ヽ)     
  〜(___)      
0408nobodyさん2007/02/08(木) 00:15:35ID:???
echo文で文字出力する場合に、"をエスケープする場合\”と出力しますが、
それ以外の方法でエスケープする方法を、どっかで見たのですが
ご存知の方いませんか?↓見たい感じだったと思ったのですが・・・

echo "これは\"テスト\"です";
  ↓これをこんな感じで
<<<HEAD
echo "これはテストです";
HEAD>>>

0409nobodyさん2007/02/08(木) 00:17:02ID:???
ヒアドキュメントのことだろうけど
君が思ってるものとはちょっと違う
0410nobodyさん2007/02/08(木) 00:24:06ID:???
>>408
マヌアルに分かりやすく書いてますよ
0411nobodyさん2007/02/08(木) 00:35:17ID:???
あ、ヒアドキュメントってものがありましたね
言われて初めて思い出しました。
十分使えそうなので試してみます、ありがとうございました。
0412nobodyさん2007/02/08(木) 00:39:47ID:???
すでに知っていたやつが>>408のような質問の仕方をするだろうか・・・
0413nobodyさん2007/02/08(木) 01:11:17ID:???
多分ヒアドキュメントってなんとなく知っていただけなんだろ
0414nobodyさん2007/02/08(木) 02:58:04ID:???
http://exsample.com//hoge/のサイト内をfile_get_contentsした際、
../hoge.jpgという画像があった場合、
http://exsample.com//hoge.jpg
を取得したいのですご教示お願いいたします
0415nobodyさん2007/02/08(木) 03:27:39ID:secT9uPh
URLから画像を摘出してその画像のサイズを知りたいのですがどのようにやればいいのでしょうか?
0416nobodyさん2007/02/08(木) 03:38:51ID:zStq6qoX
>>414
http://exsample.com//まで
>>415
getimagesize()か filesize()
0417虚弱PHP2007/02/08(木) 09:22:43ID:???
>>398
今「クライアントプル」というのを
どういう方法で実現しているのか分からないけど、
(もしかしてMETAタグのRefresh?)
基本的にHTTPはクライアントからの
リクエストに答えるためのプロトコルだからなぁ。

AjaxとかCometとかを調べてみるといいんじゃない?
0418nobodyさん2007/02/08(木) 10:15:40ID:???
Win版PHPでフォルダを削除する方法は未だにないのでしょうか?
0419nobodyさん2007/02/08(木) 10:40:57ID:GPSbmvjX
微妙にすれ違いですが
重複したロジックを使いたい時
継承するのか、もう一個のクラスにインスタンスをnewして使いまわすのか
どうやって決めてますか?
継承の使いどころがいまいち分からなくて・・・

アドバイスあったらお願いします。
0420nobodyさん2007/02/08(木) 10:45:28ID:???
cometはセッション張りっぱなしにするから勘弁してくれ
0421虚弱PHP2007/02/08(木) 10:52:38ID:???
>>419
実際には設計思想次第で柔軟に…だろうけど、
親クラスのメソッドを隠蔽したい(した方がいい)場合は委譲。
親クラスのメソッドをそのまま使う場合もあるなら継承。

委譲だと、親クラスのメソッドがそのまま使える場合でも、
わざわざラップするメソッドを定義してやんなくちゃいけなくなったりする。

個人的には委譲で不便を感じないなら委譲でいいのでは?と思う。
0422nobodyさん2007/02/08(木) 11:07:38ID:???
このスレ見ていていつも思うことがある。
それは、プログライミング系の雑誌やシステム系の雑誌で何かの用語が特集されると、
途端にその用語がこのスレでも使われ出す、ということ。
それまではスレ内じゃ一度も登場してなかった用語なのに、雑誌の発売日以降、突然増えるのが特徴。

しかもその用語を使うヤツは、さも「俺は前から独自に知ってましたよ」とでも言わんばかりの
知ったかぶり具合をするヤツが多く、かなりイタイ。雑誌からの受け売りがバレてるっつーの。

そんなイタイ人が多用する最新キーワードは、「comet」。
0423nobodyさん2007/02/08(木) 11:11:43ID:iJ/aT7sA
>>422
よくわからんけどそれは雑誌を見てそのキーワードがでて読んだけどそのキーワードの中でわからない部分を
みんなに教えてほしいからじゃないのかい?
0424nobodyさん2007/02/08(木) 11:20:26ID:???
>>423
ちがうっしょ。
「教える側」として登場するヤシが突然増えるから笑えるんっしょw
0425nobodyさん2007/02/08(木) 11:23:25ID:bIt9x03i
session_start()によってサーバ側に生成されたセッション・ファイルについて質問です。
いろいろ古くなって溜まってきたセッション・ファイルを、
phpのガーベッジ・コレクション機能とは別に、自前でcronでスクリプト走らせて削除したいのですが、
どうやったら出来ますでしょうか?

セッションファイルの所有者はapacheでパーミッションも600なので、
phpスクリプトからは削除できない・・・ですよね??
0426nobodyさん2007/02/08(木) 11:23:45ID:???
テキストフォームで
echo "<input type=\"text\"〜(略)〜 value=$title>";
みたいに、渡された$titleを更新後のテキストフォームで表示させたいんですが
「あいうえおかきくけこ」みたいにスペースが入っていなければ良いんですが、
「あいうえお かきくけこ」みたいに途中でスペースが入ると「あいうえお」と表示されてしまいます。
$titleにはちゃんと「あいうえお かきくけこ」が入っていることは確認しました。
よろしくお願いします。

0427軟式PHP2007/02/08(木) 11:25:52ID:???
>>426
なぜtypeはダブルコーテーションを値で囲ってvalueは囲わないのだ。
0428軟式PHP2007/02/08(木) 11:27:20ID:???
ごめ、日本語ミスw 値をダブルコーテーションで囲って。
0429nobodyさん2007/02/08(木) 11:28:19ID:???
>>425
だったら、cronじゃなくて、
定時にアクセスしたユーザーのtriggerで削除すればいいのでは?
0430nobodyさん2007/02/08(木) 11:30:41ID:sV/97bzR
$num = "870"; // 数値文字列をセットします
printf("Number: %d"); // 出力: "Number: 0"

/*
printf()の型指定子 "%d" だと、数値文字列を扱う場合 "0" になってしまいます。

フォームからの入力なので、値は常に数値文字列となってしまいます。
入力された値を数値(int)に変換すればいいのですが、printf()だけで実現するにはどうすればできますか?
よろしくおねがいします。
*/
0431nobodyさん2007/02/08(木) 11:31:55ID:???
>>427
はじめダブルクォーテーションでのくくり方がわからなかったのですが、やってみたらうごきました。
ありがとうございました。
0432nobodyさん2007/02/08(木) 11:33:29ID:???
>>425
セッションファイルが入ってるディレクトリに書き込み権限があれば削除可。
ファイルそのものの所有者は関係ない。
0433nobodyさん2007/02/08(木) 11:34:41ID:???
>>430
printf("Number: %d", $num);
0434nobodyさん2007/02/08(木) 11:38:39ID:sV/97bzR
>>433
おっと、>>430は記述ミスです。

printf("Number: %d", $num); // 出力: "Number: 0"
本当はこう書いたのですが、結果は "0" が出力されるだけです。
"%s"にする方法もあるのですが、なるべくなら"String"としては扱いたくないのです... と、言ったらもう方法はありませんよね?
0435軟式PHP2007/02/08(木) 11:52:31ID:???
>>434
俺の環境じゃ求める結果(Number: 870)が表示されたけど・・・。
まぁ、無難にprintf("Number: %d", (int)$num);でいいんじゃないかい。
0436nobodyさん2007/02/08(木) 12:01:08ID:???
>>425
つか、cronでwgetを発動させて、apache経由で削除すれば?
0437nobodyさん2007/02/08(木) 12:23:04ID:rsMBt22x
携帯、パソコン両方に対応したサイト作ってる人に質問なんですが
文字エンコーディングはどうしてますか?
全部SJISで作ろうかと思ったんですが、文字化けに悩まされそうで悩んでいます。
それとも
完全に別に携帯用に作ったほうが良いのでしょうか?
0438nobodyさん2007/02/08(木) 12:25:32ID:bIt9x03i
>>429 なるほど! そういう手もありますね。でも結局phpスクリプトからの操作っていう点でcronの場合と同じですよね?

>>432 そうなんですか! 今すぐ試してみます。

>>436 えと…、wgetでどうやって削除したらいいのでしょうか?(wgetってテキストブラウザですよね??)
0439nobodyさん2007/02/08(木) 12:39:07ID:???
>>438
wget --delete-after -q http://127.0.0.1/del/del.php
見たいな感じでcronを回して、削除用のスクリプトファイルに定時アクセス。
0440虚弱PHP2007/02/08(木) 12:39:28ID:???
>>430
暗黙の型変換で数値になるはずだけど…?
数値にならない方が不思議。こっちの環境でも"Number: 870"が表示されるよ。
0441nobodyさん2007/02/08(木) 12:56:58ID:GCOH+L/4
「表示」という文字の文字コードを16進数で知りたいのですが
どうやって検索しているのでしょうか?
表示⇒悔ヲ になってしまうので、原因を知りたいです
0442nobodyさん2007/02/08(木) 12:57:56ID:???
>>422
その極みがWeb2.0だしな。バカは流行に飛びつくもんだよ
0443nobodyさん2007/02/08(木) 13:01:56ID:ayF7eYHr
>>441
ここはgoogleじゃないぞ
0444nobodyさん2007/02/08(木) 13:07:00ID:???
潤オ
0445nobodyさん2007/02/08(木) 13:07:42ID:???
>>442
まあweb2.0は一般的にも流行してるから、まだ分かる。

それよりも、明らかにネタ元がバレてるマイナーな用語ってのが笑えるんだよ。
たとえば「comet」は、明らかに『日経ソフトウェア』1月号の発売日以後にこのスレに登場ww

このスレの過去ログをずっと見てると、他にも同誌で特集された言葉や概念などが
たびたび発売日直後に登場してるのが笑えるよww
0446虚弱PHP2007/02/08(木) 13:09:58ID:???
>>441
こういうことでいいのかな?
print(bin2hex('あいうえお'));
0447nobodyさん2007/02/08(木) 13:10:40ID:???
>>445
そいつも笑えるけど、お前もかなり笑えるよwww
0448nobodyさん2007/02/08(木) 13:10:55ID:???
「Web2.0」なんてどうせ死語になるでしょ、そのうち。
みんな使っているから必死になって意味とか調べてみたけれど、なんのことだかさっぱり。
そんな概念どうでもいいっつーの!

それと「.0」ってなんだよ。
0449虚弱PHP2007/02/08(木) 13:13:11ID:???
ああ、でも>>441の問題はSJISの問題っぽいね。
0450nobodyさん2007/02/08(木) 13:17:20ID:GCOH+L/4
エスパーサーセンwww

>>443
文字を入力して、それを書く文字コードを16進数で見て原因を調べたいのですが。
皆さんどのように調べているのかなーと・・・
自分で調べられるようになれば、自分で解決できるようになると想ったので

>>446
文字が表示される ⇒ 文字が悔ヲされる
になるので・・・
1文字だけ文字化けしてしまうのはなぜかなと

>>449
らしいです。
PorなんとかSQLのDBに格納しているらしいんですが、
保存して表示させると上のような状態になってしまいます。
ちなみに、レンタルサーバーを借りているので、データベースの中身を見れないんです
(友人の借りたサーバーなので見れないです。)
0451nobodyさん2007/02/08(木) 13:18:18ID:???
「うぇぶ とぅー ぽいんと おー」

……「Web2.1」というのもあるのか。。
明確な定義もないのに、よくこんな言葉使えるよな。恥ずかしいよ俺には。
0452nobodyさん2007/02/08(木) 13:19:34ID:???
>>441
・テキストエディタで保存して、バイナリエディタで見る
・PHPのbin2hexやprintf("%X", ord(文字))で表示してみる
・「文字コード表」でググる
・winなら、スタートメニュー→アクセサリ→システムツール→文字コード表とかw

ちなみにこの問題の原因は、バックスラッシュの文字コード5c
0453nobodyさん2007/02/08(木) 13:20:31ID:???
>>450
「SJIS ダメ文字」でググレ
0454nobodyさん2007/02/08(木) 13:21:24ID:???
>>451
なんでもかんでも「定義」だの「仕様」だのにこだわるあたりが
いかにもキモヲタ技術者っぽいね、お前www

世の中は混沌と曖昧で漠然としてるからこそ、人間らしくて楽しいのに。
0455虚弱PHP2007/02/08(木) 13:23:53ID:???
「悔ヲ」で検索してもOKw
0456nobodyさん2007/02/08(木) 13:34:33ID:???
>>437
面倒なのでSJIS

携帯向けとPC向けで、
文字コード関連でファイルを分ける意味なんてあるの?
0457Comet2007/02/08(木) 13:36:55ID:???
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
04584432007/02/08(木) 14:00:19ID:UoNNxMva
>>450
んな難しく考えなくても
「表示 文字化け」とぐぐればアホみたいに出る。
phpでの解決方法とかだったら phpもつければ
それもまたアホみたいに出る
0459nobodyさん2007/02/08(木) 14:08:28ID:MeU4ydPI
phpのスクリプトを有る会社から譲ってくれと言われているんですけど、
何人月で見積もって出すか迷っています。その会社に人月で聞かれているので。

自作でだらだらと作ってきたので、工数が正確に出せないんですが、
php5.0でオブジェクト指向を取り入れた設計をして、
ステップ数5万行程度の規模です。(ステップ数で言うのも何ですが…)

この規模のスクリップを開発するとしたら、何人月でやりますか?
目安を教えていただけると嬉しいです。
0460nobodyさん2007/02/08(木) 14:11:20ID:???
>>459
まず、何のスクリプトだよ?
話はそれからだ。

内容や難易度によっても見積もりは変わるだろう。
0461nobodyさん2007/02/08(木) 14:12:58ID:???
>>459
つーか譲ってくれなどと言ってくるということは、
既にフリーか何かで公開していて、ソースは向こうに渡ってるのか?
(そうじゃないと向こうはスクリプトの内容は判断できないよな)
0462nobodyさん2007/02/08(木) 14:14:32ID:eP2/+NGu
EUCとShift_JISの両方混じったPHPスクリプトをテストしたいのですが、
php.iniにどう設定したらいいのでしょうか?
0463nobodyさん2007/02/08(木) 14:16:44ID:MeU4ydPI
>>460
確かに、そうですね。

簡単にいうと、グループの作業の進捗管理ソフトです。
ある業界に特化してつくったので、既存の進捗管理ソフト(projectなど)では、
代用が難しいので、多分私のところに話しが来たのだと思います。
DB(MySQL)も使っていて、テーブル数は119個です。
難易度は、特段難しい技術を使っていないので、ごく普通だと思います。
0464nobodyさん2007/02/08(木) 14:20:43ID:MeU4ydPI
>>461
そうですね、あるコミュニティーで少し自分のサイトのそのスクリプトを
宣伝したのが、きっかけです。ソースは公開していないです。
アカウントを希望者に発行して、
サンプルのアプリが動いているような感じです。
0465nobodyさん2007/02/08(木) 14:21:54ID:???
>>463
ある業界特化型のグループウェアってところ?

その会社は既に使ったことがあるから「譲ってくれ」って言うんでしょ?
だったらそのまま使わせて、毎年のライセンス料でも取ればいいじゃん・・・と思ったのだが
そういうことじゃないのかな?
0466nobodyさん2007/02/08(木) 14:22:58ID:???
>>459
著作権についての書面等、契約もしっかりね。
0467nobodyさん2007/02/08(木) 14:23:21ID:???
119個はすごいな。3人月〜6人月ぐらいはあるんじゃないか?
0468nobodyさん2007/02/08(木) 14:25:34ID:???
>>464
なるほど、ASPっていうか、とにかく自分のサーバにサンプル置いてて、
testログインして動作を確かめられるようになってるわけね。

そしたらそのまま有料ASPにして月額取るか、
あるいはソースを暗号化コンパイルして渡して一括で数百万取るか、
どっちかでいいんじゃない? 人月とかじゃなくて、ソフト価格として値段設定すればいい。

もちろん生のソースなんか渡さない。Windowsとか普通のソフトと同じ考え方ね。
どうしてもソースが必要というなら、プラス1千万円くらいで譲渡か。

とにかく安易なソース譲渡とダンピングだけはやめてくれ。業界全体も迷惑だし。
0469nobodyさん2007/02/08(木) 14:26:05ID:iJ/aT7sA
preg_matchとかを数回使う場合例えば

$array=array(''あ,'い');
preg_match($array,$str,list($a,$b));
$a="あ";
$b="い";

みたいに 用は複数のpreg_matchを1行で記述するようなことはできませんでしょうか?
0470nobodyさん2007/02/08(木) 14:26:22ID:???
たしかにテーブル119個って、いったいどんだけ大規模なんだよ、とww
0471nobodyさん2007/02/08(木) 14:37:35ID:MeU4ydPI
>>465>>466>>467>>468>>470
詳しいレスありがとうございます。
そうですね。使用料制とかだとサポートが大変そうなので、
ソースも含めて全て売りたい感じです。

向こうにもPHP技術者がいるので、向こうでソースをいじって
更にカスタマイズしたいらしいです。私もサポートがいらないので楽なんです。

取扱説明書と環境設定と2ヶ月間のサポートをつけて、
6人月×60万円(SE単価 by ネットで調査しました)=360万円位で、
安いと思いますか?高いと思いますか?
0472nobodyさん2007/02/08(木) 14:48:57ID:???
>>471
値段とか価値観は相手の使い方や自分の労働力によって決まるから
まずは自分のことを考えて自分が作った時間的(レベルも考え)にもし会社で働いた感じでまずは値段をつけてみる。
次に相手のことを考えて相手にはこれくらいの価値はあるはずだとかこれを使うことによりどれだけの仕事が短縮できるとかを値段でつけてみる。
んで、自分都合の値段と相手都合の値段で高いほうをもらうってのはどう?
さらにソースも渡すわけだから当然その分も上乗せしないといけないけど。
0473nobodyさん2007/02/08(木) 14:49:26ID:???
サポートの範囲も定義しとかないとダメだからな。
0474nobodyさん2007/02/08(木) 14:49:44ID:???
>>471
安すぎ。最低500万
0475nobodyさん2007/02/08(木) 14:50:33ID:???
そうだよね・・

ってか下スレで質問する内容なのか?w
04764622007/02/08(木) 15:02:34ID:???
どなたかおねがいします(><)
0477nobodyさん2007/02/08(木) 15:03:22ID:MeU4ydPI
>>472-475
色々ありがとうございます。
直接、相手にソフトを売るなんて初めてなので、色々難しいです。

> 安すぎ。最低500万
500万!!!。そんなにもらえたら、いい車が買えるなぁ。

> 会社で働いた感じでまずは値段をつけてみる。
私の会社給料安いので、その感じで付けると6人月×30万円=180万円にしかならないです…
> 相手にはこれくらいの価値はあるはずだとか
それでいくと、多分6人月×60万円(相手企業の技術者のSE単価?)=360万円
とすると、360万円?

> サポートの範囲も定義しとかないとダメだからな。
確かに、そうですね。そこはよく話し合ってみます。

> ってか下スレで質問する内容なのか?w
すみません、ずっとこのスレを見ながらプログラムをしていたので、つい…
他に適切なスレがあれば、誘導していただけると嬉しいのですが。
0478nobodyさん2007/02/08(木) 15:06:44ID:???
2chを頼りにしようというのが間違ってるんではないでしょうか
0479nobodyさん2007/02/08(木) 15:11:51ID:???
2ちゃんは信用するものではなく参考にするものだろう。
精査し、判断するのは自分。

とか言ってみる。
0480nobodyさん2007/02/08(木) 15:12:43ID:???
>>471
だからダンピングはやめてね、って言ったのに・・・。
ソース込みで360万円なんて安いよ。ソースを暗号化コンパイルするならそれでもいいけど。
買う側からしてみたら、オーダーメイドのシステムの基盤を買うようなものだから、
人月とかじゃなく、それがどれだけ価値のあるものなのかをよく考えないと。

「サポートが要らない」って言っても、結局なんだかんだで問い合わせや呼び出しをくらうよ。
だからしっかり契約でサポート範囲を厳格に決めて。それ以外は別途料金徴収する方向で。
そんで、ソースまで渡すなら著作権譲渡料まで入れて最低でも1千万円。

まだ作ってもいないシステムを4千万円で売ったヤツもいることを忘れずにねw
http://japan.cnet.com/column/entrepreneur/story/0,2000055910,20167867,00.htm
0481nobodyさん2007/02/08(木) 15:19:33ID:???
自分の技術の価値って自分じゃわかりにくいものだからねぇ。
0482nobodyさん2007/02/08(木) 15:22:00ID:???
>>476
どういう風に混ざってるのかわかんないとねー
普通混ぜないからねー
04834692007/02/08(木) 15:25:13ID:sVZUhklk
>>476
ってかどっちかに統一したほうがいいと思う。
あとあとメンテや変にトラブったりしてもめんどうじゃない?

誰か俺のほうも・・・

0484nobodyさん2007/02/08(木) 15:26:58ID:???
個人だから甘く見られて高くすると買ってもらえないと思ってるだろ。気持ちわかるが。
でもソースとその権利まで全部うっぱらうなら
先方はあんたが得た金以上の金をそのスクリプトを使って稼ぐと思うよ。
まあ最低500万だろうな。119個のテーブルがどの程度必要かにもよるけど。
0485nobodyさん2007/02/08(木) 15:29:38ID:MeU4ydPI
>>478->>480
どうもありがとうございました。
自分が思っている以上に、ソフトウェアの相場って高いんですね。
趣味でだらだら2年位かけて作ったものが1,000万円の価値を
産むなんて、すごい、のひと言です。景気がいい業界だなぁ〜♪
そうしたら、1,000万円+αでアタックして交渉してみます。

今、別に今回のソフトよりも、世間に役立つようなソフトの
プログラミングに着手しているので、すごくやる気が出てきました。

色々、ありがとうございました。とても参考になりました!
0486虚弱PHP2007/02/08(木) 15:39:16ID:???
>>469
よくわかんないけど、preg_match_all()じゃダメ?
0487nobodyさん2007/02/08(木) 15:40:02ID:???
ちなみにあなたはプログラマ?
業界特化ならその業界の売り上げもどんなものか気になるね
0488nobodyさん2007/02/08(木) 15:43:25ID: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
しか書いてありません
なにがおかしいんでしょうか?  秀丸エディタの問題かなぁ??
0489nobodyさん2007/02/08(木) 15:46:41ID:???
>>485
あと、営業テクニックを教えてあげよう。
もしキミが仮に「500万なら売ってもいいかな」と考えているとしよう。
その場合、初めっから「500万でどうですか」なんて正直に提示しちゃダメだよ。
2段階くらい高めにふっかけないと。たとえば700万とか、適当に。

そしたら必ず相手は値切ってくるから、そしたらこっちは「うーん」と唸りつつ、
仕方ない、じゃあ熱意に負けたので下げますよ…という芝居を打って、段階的に下げる。
一番いいのは2段階下げ法。具体的には以下のようにやれ。

客:「で、いくらですか?」
お前:「これこれこういう契約で、総額700万でどうですか」
客:「高いなぁ、もっと下げてよ」
お前:「うーん、、、難しいなぁ、、、分かりました、じゃあ●●を削って600万円で」
客:「それでも予算オーバーだな」
お前:「じゃあサポート期間を短くするのでしたら、550万円でいいですよ」
客:「もう一声!」
お前:「ううん、まいったなぁ。わかりました、お客さんには負けましたよ。500万でいいです」

こんな感じね。
もちろん実際にはこんなスムーズにはいかないだろうけど、基本はこう。要するに、
「2回値引きした段階で、実は本来の自分の希望金額になるよう提示する」
「値引きする際は、単に引くんじゃなくて、もっともらしく理由をつける」
この2点を守ること。

ホントはこの営業テクニックのコンサル料として50万くらい欲しいけど、
まあお前には同じ零細業者(SOHO?)として頑張って欲しいからタダでいいよw
0490nobodyさん2007/02/08(木) 15:47:23ID:???
>>488
エラーメッセージの正当性にいちいちこだわってられるかよ。
前後5行見せてみろ。だいたいこういう場合は1個上の行に問題があることが多い。
0491nobodyさん2007/02/08(木) 15:48:46ID:sVZUhklk
>>486
すみません、多分駄目なような気が・・。

>>488
その上下の行は?
PHPの行を消しながら確認してみるといいよ

0492nobodyさん2007/02/08(木) 15:49:26ID:???
>>489
まあ最初の700万にある程度妥当性がないとダメだけどな。
価値が500万程度のものを
2000万で売りたいから最初3000万で打診とか
普通にけられて終わるし。
0493虚弱PHP2007/02/08(木) 15:52:33ID:???
>>491
やっぱりよくわかんないから、もっと普通の具体例だして。
正規表現パターンに(aaa|bbb)みたいなの使えば何とでもなるような気がするんだけど。
正規表現あんまり詳しくないからわかんないけど、もっと高度な使い方もできると思うし。

それから、マルチバイトならmb_eregじゃないとダメじゃないかな。
04944892007/02/08(木) 15:53:21ID:???
>>492
そりゃもちろんそうだ。

「自分が売ってもいいと思ってる金額」と、
「相手が買ってもいいと思うであろう金額」が
大きく乖離してないことが条件だ。

こんなの言うまでもないことだけど。
0495nobodyさん2007/02/08(木) 15:54:53ID:???
>>489
じゃあそのコンサル料を20万に負けてください
0496nobodyさん2007/02/08(木) 15:57:47ID:6+5PgVsz
phpでファイルに文字を書き込んでいるのですが
たとえば、「ソケット」と書き込んだときに「ソ\ケット」と書き込まれて
しまいます、これはどうしてなんですか、それとどうすればこれを防げますか?
0497nobodyさん2007/02/08(木) 15:58:32ID:???
>>495
タダでいいっつってんだろ。
0498nobodyさん2007/02/08(木) 15:58:52ID:???
>>496
stripslashesでぐぐれ
0499nobodyさん2007/02/08(木) 16:02:09ID:???
>>488
行番号をワ−プロ的にしてるとか
0500虚弱PHP2007/02/08(木) 16:04:02ID:???
>>496
関係あるかわからんけど、
php.iniのmagic_quote_gpcの設定はどうなってる?
0501nobodyさん2007/02/08(木) 16:07:47ID:???
>>488
1個前の行のセミコロンがぬけてないか?
0502nobodyさん2007/02/08(木) 16:15:47ID:???
>>500

Onになってます
0503虚弱PHP2007/02/08(木) 16:18:17ID:???
>>502
Offに設定してくださいませ。百害あって一理なしだから。
0504nobodyさん2007/02/08(木) 16:19:14ID:???
>>503
わかりました、ありがとうございます
0505nobodyさん2007/02/08(木) 16:31:39ID:BUxOVquO
たくさんのメールを送信しなくてはいけないんですが、
メール送信が終わるまでユーザを待たしておくわけにもいきません。
(それにたぶんタイムアウトしてしまう)
こういう時ってどう組むのが定石なんでしょう?
0506nobodyさん2007/02/08(木) 16:32:25ID:???
>>505
待たせるって?
ユーザーが大量にメール送信するってこと?
スパムサイト作る気?
0507nobodyさん2007/02/08(木) 16:38:40ID:???
>>506
メール大量=スパム、という脊髄反射イクナイ。 会員向けメール送信とか普通にいくらでもある。

>>505
ユーザーの操作で送信リスト(あて先、内容など)をDBに登録 → cronでそれを読み出して送信、とか。
0508nobodyさん2007/02/08(木) 16:39:45ID:BUxOVquO
>>506
違う違う違います。

メルマガみたいなものを想像してください。
購読している人が1000人くらいいて、
管理者がブラウザ上で文章書いてポチッとsubmitすると
購読している人にメールが送信される感じです。

実際につくるものはメルマガでも何でもないんだけど、
不特定多数にメールをばら撒くようなものではないです。
0509nobodyさん2007/02/08(木) 16:46:56ID:???
>>505
その場合200件ずつリロードしながら送るように設計するオレ素人
0510nobodyさん2007/02/08(木) 16:52:07ID:???
レンタル鯖なんだが、「表\示」をDBにぶち込むと「表示」となってしまう
これは仕様なのかな?
ちなみにSQLはPなんとか
0511nobodyさん2007/02/08(木) 16:52:49ID:???
>>505
送信1回ごとにsleep1秒入れたら?
1000秒かかるがwwwww
0512虚弱PHP2007/02/08(木) 17:07:38ID:???
>>505
俺も>>507が普通だと思う。
何時何分に配信開始とかって機能があるのが普通だし。
0513nobodyさん2007/02/08(木) 17:24:00ID:???
header("Location:http:/***.com");

で、指定したURLに移動出来ますが、フレームページの移動には
どうすればいいのでしょうか?

HTMLのリンクで言うと
<a href="http:/***.com" target="mainFrame">
こういう風にターゲットを指定出来ればと思います。
0514nobodyさん2007/02/08(木) 17:35:11ID:???
>>485
いいなぁ・・・うらやましい。
俺が作ったBBSやWikiを含んだ総合型CMSのプログラムなんて、
自サイトで使ってたら、厨がソース公開してくれとか言ってくるだけだし・・・

それを断ったら、「オープンソースがどうのこうの…」ってわけのわからない事を言ってくるし…
だれか、俺の作ったプログラムかってくれねぇかな…
インストーラを作ったら、MovableTypeなんて相手にならない程の多機能CMSなのに・・・
0515nobodyさん2007/02/08(木) 17:50:33ID:???
>>513
フレームで取り込んでいるページを
Locationで移動させればいいんでない?
0516軟式PHP2007/02/08(木) 17:55:42ID:???
>>514
>それを断ったら、「オープンソースがどうのこうの…」ってわけのわからない事を言ってくるし…
ワロタ!オープンソースって言いたいだけちゃうんかと・・・って返信したいww
0517nobodyさん2007/02/08(木) 18:04:35ID:9YpDw7Ju
ユーザーがブラウザからアクセスしたときに、
http://www.hoge.com/some/foo.php
foo.php で
http://www.hoge.com/some/
を取得することはできますか?

ホスト名、ディレクトリ名、プロトコル、ポート、は
環境によって変化しますが、環境が変わっても常に取得できますか?
0518nobodyさん2007/02/08(木) 18:07:04ID: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という順に。何が間違っているのでしょうか?
0519nobodyさん2007/02/08(木) 18:11:13ID:9YpDw7Ju
ユーザーがブラウザから、次の URL を指定してアクセスしたとする。
http://www.hoge.com/some/foo.php

このとき、foo.php で
http://www.hoge.com/some/
を取得することはできますか?

ホスト名、ディレクトリ名、プロトコル、ポート、は
環境によって変化しますが、環境が変わっても常に取得できますか?
0520nobodyさん2007/02/08(木) 18:11:28ID:???
はっ
配列 比較なのに 変数が配列で書いてない!
お騒がせしました
0521nobodyさん2007/02/08(木) 18:28:39ID:eP2/+NGu
pearを使いたいんですがマニュアルの見方がわかりません。
たとえば、カレンダーを扱いたいときに下記のページを参考にしたのですが
http://peardoc.xole.net/package.datetime.calendar.html
なにを使えば動くのかわかりません。
どなたか教えてください
0522nobodyさん2007/02/08(木) 18:32:52ID:???
>>521
順番に読んでいってください。
そしてもし詰まったらその詰まったところをここ書いて聞いてください。
0523nobodyさん2007/02/08(木) 18:37:28ID:???
>>514
最近はオープンソース乞食が増えて困るね。
オープンソースの精神を自分に都合よく捻じ曲げ、他人の労力を盗む口実にしようとするバカども。

>インストーラを作ったら、MovableTypeなんて相手にならない
じゃあ、まずはインストーラ作ればいいじゃん。
誰か買って…って他力本願で待ってるんじゃなくて、自分から行動しろよ。
0524nobodyさん2007/02/08(木) 18:41:27ID:8PkH2v3G
php内から自ファイルをincludeしたら何が起こりますか?
05254432007/02/08(木) 18:42:01ID:UoNNxMva
>>519
ググればできる。

設定に依っては本来のアドレスになったりする。
0526nobodyさん2007/02/08(木) 18:48:08ID:???
>>525
すいません、検索したけど見つからなかったです。
よろしければ、ページを教えていただけませんか。
0527nobodyさん2007/02/08(木) 18:51:12ID:???
検索したキーワードを書いてください。
話はそれからです。
0528nobodyさん2007/02/08(木) 18:59:25ID:???
PHP ホスト ポート プロトコル URL
で検索しました。よろしくお願いします。
0529nobodyさん2007/02/08(木) 19:02:57ID:???
>>524
聞いてるヒマがあったら自分でやれバカ。
0530nobodyさん2007/02/08(木) 19:04:13ID:???
>>514
ここじゃなくてどっかまともな所でそのサイト宣伝してきたらいいんじゃね?
05315282007/02/08(木) 19:10:22ID:???
19時30分までに解決したいと思ってますが
0532nobodyさん2007/02/08(木) 19:17:33ID:???
>>531
ガンバレ。
0533nobodyさん2007/02/08(木) 19:20:04ID:???
>>532
お前…優しいな…
0534nobodyさん2007/02/08(木) 19:31:55ID:???
>>532の優しさは、ホンマ五臓六腑に染みわたるでぇ〜
05355212007/02/08(木) 19:36:48ID:eP2/+NGu
>>528
マニュアルのdirname,pathinfo参照。

>>522
http://peardoc.xole.net/package.datetime.calendar.intro-purpose.html
のサンプルをそのままコピペして動作することはわかったのですが、
http://peardoc.xole.net/package.datetime.calendar.htmlの一覧にのっているCalendar::adjust()
などの英語の固まり群は何を動使うのかがわかりません。
0536nobodyさん2007/02/08(木) 19:41:40ID:???
>>535
>マニュアルのdirname,pathinfo参照。

それは無いだろw無知が下手な回答するなって。
答えは>>531がそのものズバリを書いているだろ。
0537nobodyさん2007/02/08(木) 19:42:33ID:???
失礼>>536は↓

×>>531
○>>532
0538nobodyさん2007/02/08(木) 19:44:16ID:???
>>535
PEARで使い方がわからない時は、ソースを読むのが基本。
中途半端な解説を読むより、ソースを見れば使い方なんて一発でわかるだろ。
0539nobodyさん2007/02/08(木) 19:44:54ID:???
>>535
英語で書かれているので訳してみてはいかがでしょう
05405212007/02/08(木) 19:53:36ID:eP2/+NGu
Calendar::prevMonth() だとCalendar.phpを呼び出すとprevMonth()が使えることを覚えました。
0541nobodyさん2007/02/08(木) 19:57:40ID:???
>>540
日記は自分のブログにでも書いてろ!カス
05425212007/02/08(木) 19:59:21ID:eP2/+NGu
;;
0543nobodyさん2007/02/08(木) 20:04:23ID:???
>>542
俺は、>>541ではないが、PEARみたいなソースが公開されているような
プログラムの使い方が分からなければ、ソースを嫁!ってのは、
PHPマニュアルを嫁ってのと同じくらい当たり前の事。
05445212007/02/08(木) 20:06:18ID:???
了解です。
精進します。
0545nobodyさん2007/02/08(木) 20:11:15ID:???
>>519
$_SERVER["SERVER_PROTOCOL"]
$_SERVER["HTTP_HOST"]
$_SERVER["SERVER_PORT"]
$_SERVER["SCRIPT_NAME"]
でどう
05465192007/02/08(木) 20:14:35ID:???
>>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;
        }
    }
05475452007/02/08(木) 20:14:42ID:???
httpsは$_SERVER['HTTPS']の有無を見たほうがいいかも
0548nobodyさん2007/02/08(木) 20:15:43ID:???
>>546
>>532のメル欄見れ。
そのものズバリの回答があるだろ。
05495192007/02/08(木) 20:15:43ID:???
    // ドキュメントルートからのパスを取得する
    $path = $_SERVER['REQUEST_URI'];

    // ファイル名部分を削除する
    $slash = strrpos($path, '/');

    if ($slash !== false) {
        $path = substr($path, 0, $slash + 1);
    }

    // URL を返す
    return $prefix . $path;
}
0550nobodyさん2007/02/08(木) 20:23:04ID:???
いま「うたばん」で、石橋がモー娘の新メンバーについて
「ヤワラちゃんに似てるって言われない?」と言ってたが、
俺はサッカー英国代表のウェイン・ルーニーに似てると思う。
0551nobodyさん2007/02/08(木) 20:35:10ID:???
>>550
そういう話をだすおまいはSOHOスレの住民だろ、まちがいないw
0552nobodyさん2007/02/08(木) 20:35:49ID:???
クマー
0553nobodyさん2007/02/08(木) 20:40:18ID:UoNNxMva
>>549
お前・・・これくらいのが書けるんだったら
リファレンスで必要な関数を探せるようになっとこうだぜ?
0554nobodyさん2007/02/08(木) 20:49:19ID:???
>>551
ハァ? SOHOスレってどのスレだよ。
0555nobodyさん2007/02/08(木) 21:04:11ID:???
>>554
わかるやつはわかる。わからないやつはわからないスレw
0556nobodyさん2007/02/08(木) 21:13:25ID:???
>>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 [レンタル鯖]
0557nobodyさん2007/02/08(木) 21:25:35ID:???
postされた内容を記録する場合のサンプルコード無いでしょうか
0558nobodyさん2007/02/08(木) 21:33:31ID:???
>>557
お・・・、お前・・・
0559nobodyさん2007/02/08(木) 21:38:24ID:???
>>557
$fp = fopen("log.txt", "w");
foreach ($_POST as $value) {
fputs($fp, $value . "\n");
}
fclose($fp);

あとは自分でアレンジしてくれ
0560nobodyさん2007/02/08(木) 21:42:53ID:???
>>557
if($_POST['post']) {
  $fp = fopen('log.txt', 'a') or die('failed open file');
  fwrite($fp, $_POST['post']);
  fclose($fp);
}
0561nobodyさん2007/02/08(木) 21:43:31ID:???
ありがとうございます
0562nobodyさん2007/02/08(木) 21:47:22ID:???
マルチスレッドでデータ受信(html)する方法ってありますか?
0563nobodyさん2007/02/08(木) 22:06:10ID:Q5k/rDuP
PHPでフォルダに入ったファイルを全て表示したいのですが
どうやってできますか?
0564nobodyさん2007/02/08(木) 22:16:32ID:???
アドレス欄にディレクトリURLを入力 エンター
0565nobodyさん2007/02/08(木) 22:22:25ID:UoNNxMva
>>563
ぐぐる。
テンプレを300回読む。

お好きな方でどうぞ
0566nobodyさん2007/02/08(木) 22:28:03ID:???
>>563
マニュアルを死ぬまで読め。
http://jp.php.net/manual/ja/function.readdir.php

それだけ!
0567nobodyさん2007/02/08(木) 22:35:18ID:???
うぜえ回答者だ・・・
マニュアル読んだらわかるに決まってるだろ
めんどくさいから聞いてんだよ
0568nobodyさん2007/02/08(木) 22:46:34ID:???
無償で回答するボランティア精神旺盛な人力検索どもはやく答えてやれよ
0569nobodyさん2007/02/08(木) 22:56:42ID:???
>>563
$dir=@opendir("ディレクトリ") or die("ディレクトリののオープンに失敗しました");
while($file = readdir($dir)) {
if (!is_dir($file)){
echo $file ."<BR>";
}
}
closedir($dir);
0570nobodyさん2007/02/08(木) 23:01:01ID:???
>>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";
}
0571nobodyさん2007/02/08(木) 23:03:03ID:???
http://exsapmle.com/php.jpeg
このようなURLから画像を取得、リサイズして表示したいのですがどのような関数があるでしょうか?
05725702007/02/08(木) 23:06:32ID:???
そんなバカなぁー!!
無償で回答するボランティア精神旺盛な人力検索ロボットのボクが、ミスをしてしまった。

ロボットコマンド: 自爆
0573nobodyさん2007/02/08(木) 23:07:20ID:???
>>571

gdthmub.php でぐぐれ
<img src="gdthumb.php?path=url&mw=oo&mh=oo&qualith=00">

ただ画像がおいてあるサーバーによっては、gdthumb.php内のfile_exists(○○)をコメントアウトしないと動かない
0574nobodyさん2007/02/08(木) 23:08:05ID:???
>>571
See http://jp.php.net/manual/ja/ref.image.php
0575nobodyさん2007/02/08(木) 23:13:08ID:???
今日は大漁ですね
0576nobodyさん2007/02/08(木) 23:21:16ID:???
>>573
ありがとうございます。
それで検索してみましたが、やりたいこととはちがうものでした…
ユーザが指定した画像URL(http://〜)をリサイズしたい。というものですので
これだと自サバのみですよね
0577nobodyさん2007/02/08(木) 23:27:45ID:???
オブジェクト指向初心者です

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はどこにありますか?
0578nobodyさん2007/02/08(木) 23:28:10ID:???
サーバ(さくらのですが)で$GLOBALSで指定した変数が使えないのですが、
これって何が設定されていないんですかね?
$GLOBALSを使わないと表示されたので、そういう時はPHP側でどうすれば
いいかと思い、質問しました。
0579nobodyさん2007/02/08(木) 23:36:38ID:???
>>さくらで聞け
0580nobodyさん2007/02/08(木) 23:45:02ID:???
>>563
.htaccess作って
Options +Indexes
0581nobodyさん2007/02/08(木) 23:46:36ID:???
>>577
throwは条件関係なしに例外投げれる
0582nobodyさん2007/02/09(金) 00:18:11ID:???
ググったら、おしえてgooの以下の質問者と全く同じエラーが出ました。
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1676791

内容も同じような感じなのですが、回答者が
「PHP4じゃなくて5のサーバにアップしたら問題ない」と言っていて、事実そうでした。

しかし、アップしたいサーバはPHP4なわけで、そこで動かすには
どうしたら良いのでしょうか?もしかしてclassを使っているから駄目なのでしょうか?
0583nobodyさん2007/02/09(金) 00:18:16ID:???
最近ID出さない質問者への回答少なくなってきたね。
治安がよくなった。
0584nobodyさん2007/02/09(金) 00:31:01ID:???
$hoge="ABCDEF";

で$hogeの後ろから2文字を抜き取る場合

substr($hoge, length -2) でいいらしいんだけど
こんな書式ってマニュアルにあるか?
0585nobodyさん2007/02/09(金) 00:41:58ID:???
よく読めよ

http://jp.php.net/manual/ja/function.substr.php

string substr ( string string, int start [, int length] )
......
start が負の場合、返される文字列は、 stringの後ろから数えて start番目から始まる文字列となります。
0586nobodyさん2007/02/09(金) 00:42:48ID:LhHZiFrN
mysqlに格納されているデータをEXCELに移すプログラムを組んだのですが、
EXCELに入ると文字化けしてしまいます。
EXCELにはShift-JISしかダメなのでしょうか?

ちなみにMySQLはUTF-8です。
格納するときに、mb_convert_encoding($str,"SJIS");をしても文字化けが直りません。
0587nobodyさん2007/02/09(金) 00:45:40ID:???
第3引数に"UTF-8"
0588nobodyさん2007/02/09(金) 00:51:18ID:LhHZiFrN
>>587
有難うございます、解決しました。
0589nobodyさん2007/02/09(金) 01:08:17ID:MmgCUOIm
このサイトのソースがうまく習得できません。
http://babelfish.altavista.com/tr?trtext=test+from+test&lp=en_ja
日本語訳の部分が欠落してしまいます。
fopen、file、file_get_contentsを使ったんですがどれも同じでした。
php関係ないかもしれないですけど、使ってるのがphpなんでここで質問しました。
0590nobodyさん2007/02/09(金) 01:24:24ID:DjPopakS
mb_convert で文字コード変換しているのですがよくエラーが起きます。
「変換できませんでした」みたいなエラーなんですが何でこんなにエラーがおきるんでしょうか?

0591nobodyさん2007/02/09(金) 01:28:22ID:???
変換できなかったんじゃね?
0592nobodyさん2007/02/09(金) 01:28:40ID:LhHZiFrN
>>587
少し疑問なんですが、
第三引数を指定するのと指定しないのでは、どういった違いがあるのでしょうか?
0593nobodyさん2007/02/09(金) 01:30:02ID:???
数字を表示する時、整数部の3桁ごとにカンマをいれたいんですが、どうしたらいいですか?

12345→12,345
98765432→98,765,432
0594nobodyさん2007/02/09(金) 01:30:30ID:???
>>593
format_number
0595nobodyさん2007/02/09(金) 01:31:09ID:???
>>582
>>1

>>589
それだけの情報じゃさっぱり分からないので勘で答えますが
おそらく検索語句のクエリが上手く渡せてないんじゃないかと

>>590
あなたの環境か関数の使い方が悪いんじゃないでしょうか?

>>592
マニュアル見ても分かりませんでしたか?
0596nobodyさん2007/02/09(金) 01:31:28ID:???
>>592
指定しないとphpがmb_internalに則って良きにはからってくれる。
が、良きだったことはあまりないので、自分で指定した方が良い。
というか指定しない理由がわからん。
0597nobodyさん2007/02/09(金) 01:32:08ID:???
>>596
0598nobodyさん2007/02/09(金) 01:32:56ID:???
>>596
あー、指定しないとそういうことがおきるのかー
てっきり指定しない=自動変換 だと思ってました
0599nobodyさん2007/02/09(金) 01:43:30ID:???
んなもん読めば分かるだろうに、
と思ってmb_convert_encoding()のマニュアルを読んでみたら、
mb_detect_order()へのリンクはあるのに
mb_internal_encoding()へのリンクが無いな・・・
06005902007/02/09(金) 01:52:13ID:DjPopakS
$hoge = mb_convert_encoding($hoge, 'SJIS', 'EUC-JP');(たまに'auto'を使います)
と、いたって普通だと思いますが…
環境はXREA、PHP5です
0601nobodyさん2007/02/09(金) 01:53:19ID:???
バッククオータ使ってシェルいじるとき、
$result = `whoami` としますよね、
この``内部を変数としたい場合、どのように書けばいいんでしょうか?
$command = "whoami";
として
× $result = `$command`;
× $result = `"$command"`;
上記ともにだめでした。
ちなみに
$result = `whoami`;
はうまくいきました。
0602nobodyさん2007/02/09(金) 01:55:38ID:???
>>601
$result = $command;
0603nobodyさん2007/02/09(金) 01:57:50ID:???
$result = `.$command.`;
0604nobodyさん2007/02/09(金) 01:58:41ID:???
$result = '"+$command+"'
0605nobodyさん2007/02/09(金) 01:59:52ID:???
$result = ★$command★
0606nobodyさん2007/02/09(金) 02:12:52ID:???
>>582
$About = new AboutMe();
を
$About = new AboutMe("");

するとPHP4でも動くようになる。
0607nobodyさん2007/02/09(金) 02:13:29ID:???
>>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の鯖ないからためせないんだが
0608nobodyさん2007/02/09(金) 02:29:50ID:???
っつーかPHP4ってアクセス権ないやろ
0609nobodyさん2007/02/09(金) 05:15:40ID:???
>>582
>>608が指摘してる通りなのだが、
一応丁寧に説明すると、publicをvarに変えればいい。
0610nobodyさん2007/02/09(金) 06:32:47ID:???
$hogeに入っている文字列を調べて、
hogeが2つ以上入ってたらという処理を書きたいのですが、

if (count(preg_match_all('/hoge/', $hoge)) > 2) {
}

とかやってみたのですがだめでした。
どう書けばいいのでしょうか?
0611nobodyさん2007/02/09(金) 06:49:58ID:???
マルチバイト文字列の先頭から一文字ずつ取り出したいのですが、
どうやるのが作法というかパターンなんでしょうか。
$len = mb_strlen($text);
for ($i = 0; $i < $len; ++$i) {
 $c = mb_substr($text, $i, 1, 'utf-8');
}
みたいにmb_substrで一文字ずつとり出すという方法もありますが
これだときっと長さに対して二乗のオーダーがかかりますよね。
これを線形オーダーでやるにはどうすればよいのでしょうか。
0612nobodyさん2007/02/09(金) 06:58:15ID:f5umYit9
>>610
これはどう?
ttp://www.php.net/manual/ja/function.substr-count.php
0613nobodyさん2007/02/09(金) 07:07:42ID:f5umYit9
>>611
これはどう?
ttp://www.php.net/manual/ja/function.str-split.php
06146112007/02/09(金) 07:12:48ID:???
>>613
レスどうもです。でもマルチバイト対応じゃないっぽいですね。
0615nobodyさん2007/02/09(金) 07:40:05ID:f5umYit9
>>614
ああ、そっか(´・ω・`)
0616nobodyさん2007/02/09(金) 07:51:10ID:a1CDQoYm
serializeした配列をpostしてからunserializeすると、
エスケープ記号\が加わってしまいます。
これをあとで取り除いてもいいんだけど、
こうならないにはどうすればいいでしょうか。
06174192007/02/09(金) 08:43:38ID:x8Mw8N2D
>>421
レスありがとうございます。
委譲って言うんでしたっけ。そういえば(汗

そうなんですよね。委譲で十分のような感じを受けたので疑問におもちゃって。

昨日AMAZONから「PHPによるデザインパーターン入門」が届いて読み始めたんですけど
この本はよさげです。(注:まだ58/312ページしか読んでないので保証はしません)
勉強してみます。

しかし、PHPに抽象クラスとインターフェイスがあったのは知らんかったOTZ
0618nobodyさん2007/02/09(金) 08:54:11ID:???
>>616
magic_quoteのせいじゃないかしら

>>617
前からほしかったんだけどこの前やっと注文したー 今から楽しみ
0619nobodyさん2007/02/09(金) 10:16:02ID:???
PHP5.1.6 mysql5.027 で PDO prepare の時のエラーが無視されてExceptionが発生しないのは、PDOのバグですか?
0620解決しました2007/02/09(金) 10:25:56ID:???
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
エラーを不用意に見せないために、デフォルトでは例外発生しないようになってるのか…
06216162007/02/09(金) 10:27:45ID:a1CDQoYm
>>618
解決しました。どうも。
0622nobodyさん2007/02/09(金) 10:51:19ID: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の[行][列]が同じか確かめてから
ロックして書き込むものなのでしょうか?



0623虚弱PHP2007/02/09(金) 10:53:40ID:???
magic_quotes_gpc もFAQに入れないとダメだね。
0624虚弱PHP2007/02/09(金) 10:54:18ID:???
>>622
編集中は他の人が同じcsvに触れないようにする。
0625nobodyさん2007/02/09(金) 11:00:06ID:???
吐いたロックをかけてその中で編集する
0626nobodyさん2007/02/09(金) 11:01:32ID:???
読んでなかった
サイド比較でいいやん
0627nobodyさん2007/02/09(金) 11:04:01ID:lxf0p46R
編集を選んだ時点で、ファイルをロックしたとして
送信せずに、ずっと窓を開いていたら
固まらせていたづらできたりしないのでしょうか?
0628nobodyさん2007/02/09(金) 11:10:30ID:???
日本語でおk
0629nobodyさん2007/02/09(金) 11:13:22ID:???
>>627
セッションが切れるまで待つか、
もしくは、前にIDを保持しておいて、後優先で前IDをキーに
ファイルを削除するかアペンドするとかすればいいじゃん。
0630nobodyさん2007/02/09(金) 11:16:39ID:???
csvファイルをcvsで管理する
0631nobodyさん2007/02/09(金) 11:21:50ID:???
プロセス A がCSVのロックを確保に挑戦
プロセス A がCSVのロックを確保に成功
プロセス A がCSVの値を読み込み 編集行を確認表示

プロセス B がファイルのロックを確保に挑戦
プロセス B がファイルのロックを確保に失敗(待つ)

プロセス A が編集を送信せずに放置
プロセス A がファイルのロックを開放
プロセス B がファイルのロックを確保に挑戦
プロセス B がファイルのロックを確保に失敗(待つ)
プロセス B がファイルのロックを確保に挑戦
プロセス B がファイルのロックを確保に失敗(待つ)
プロセス B がファイルのロックを確保に挑戦
プロセス B がファイルのロックを確保に失敗(待つ)
と
0632nobodyさん2007/02/09(金) 11:23:23ID:UHvtYEz/
fsockopen使ってPOST要求を行っているのですが
ファイルを送る場合はどのように記述をすればよろしいのでしょうか?

今はContent-type:application/x-www-form-urlencodedですがmultipart/form-dataとかになるのでしょうか?
その他必要なヘッダとか教えてほしいのですが・・。

POST要求の内容を見るソフトとかあれば一番分かりやすいんですけどないですよね?
0633nobodyさん2007/02/09(金) 11:38:52ID:???
>>632
firefoxのlive http headersとか
0634nobodyさん2007/02/09(金) 11:39:52ID:???
>>632
PHPだとmultipartの場合は生のPOSTデータが取れないんだよね
Perlとかでどうなってるか確認してみたらどう
というかRFC読めばわかると思うけど
必要なヘッダーは
Content-type: multipart/form-data; boundary=データ中に現れない文字列
のみ
あとは各パートをboundaryでつないで送る
--boundary
part1のヘッダー

part1のデータ
--boundary
part2のヘッダー

part2のデータ
--
0635nobodyさん2007/02/09(金) 11:47:30ID:UHvtYEz/
>>633-634
ありがとうございました。
情報を元に詳しく調べたいと思います。
0636nobodyさん2007/02/09(金) 11:58:51ID:???
会社の仕事で、今まで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しない」という便利な方法は
ないでしょうか?
よろしくご教示お願いします。
0637nobodyさん2007/02/09(金) 12:07:43ID:???
>>636
extension_loaded('mbstring')で調べりゃいい
そんなことよりもincludeを削除してくれない
上司をどうにかする方が先決だと思うが
0638nobodyさん2007/02/09(金) 12:25:54ID:???
そんな世の中だから
0639nobodyさん2007/02/09(金) 12:46:04ID:???
それがどうにかなるぐらいなら世界はもっと平和だ
0640nobodyさん2007/02/09(金) 12:47:26ID:???
>>637
ありがとうございます。さっそく調べてみます。

私自身php初心者なこともあり、
php 定義済みの関数 mbstringsではまともな情報がヒットせず、
定義済みの関数、mbstringsだけだとヒットしすぎな上に、
上位100位は役に立たず悩んでおりました。
0641nobodyさん2007/02/09(金) 12:54:56ID:???
extension_loaded関数でなんとかなりました!
本当にありがとうございました!
0642nobodyさん2007/02/09(金) 13:17:42ID:???
system()に変数渡して
ファイルの書き込み処理を行いたいのですが、
うまくいきません。

$var = "(色々な文字列)"
$var = escapeshellcmd($var);
$command = "sh -c 'echo \"".$var."\" > ".$file_path."'";
system($command);

としているのですが、うまくいきません。
$var が単純な文字列の場合は通るので、
エスケープ処理周りに問題がある気がしますが・・・。

どなたかお助けを。
0643上位100位にはいる”管理”者2007/02/09(金) 13:25:44ID:???
>>640
ぷんぷん!
0644nobodyさん2007/02/09(金) 13:41:15ID:CMIK3uYs
pearのソースがたくさんみれるところありませんか?
0645nobodyさん2007/02/09(金) 13:41:43ID:???
>>644
pearのサイト
0646軟式PHP2007/02/09(金) 13:42:16ID:???
>>644
http://pear.php.net/
0647nobodyさん2007/02/09(金) 13:42:26ID:???
初心者ですがよろしくお願いしますm(__)m
PHPを使ってDB内のデータを取り出そうと考えたのですがDB syntax エラー と表示されてG・Yで色々調べて見たのですが…

phpadminで オープンオフィースのCSV形式でインポート php4です
0648nobodyさん2007/02/09(金) 13:45:12ID:???
>>647
日本語でOK
0649nobodyさん2007/02/09(金) 13:50:51ID:CMIK3uYs
pearの公式サイトってそんなにソースないと思いますが・・・気のせいですかね?
0650軟式PHP2007/02/09(金) 13:51:11ID:???
ワロタw
0651nobodyさん2007/02/09(金) 13:52:17ID:???
>>647
SQL文が間違ってるんじゃね
>>649
気のせいじゃない?
0652nobodyさん2007/02/09(金) 13:53:22ID:???
>>649
気のせいじゃなくて君のせいじゃないかな
0653nobodyさん2007/02/09(金) 14:10:34ID:???
>>649
pearのパッケージ全部インストールして、
片っ端からテキストエディタで開いてみたらいいと思うよ。
0654nobodyさん2007/02/09(金) 14:10:57ID:???
>>649
マニュアルのサンプル見て関数の使い方がわかれば十分だろ
0655nobodyさん2007/02/09(金) 14:15:18ID:CMIK3uYs
公式サイト、ところどころソースがないページもあったんです。
しかもpearって検索するとどこも公式サイトのパクリページしかでないんですよ。
まじでわらいましたねw

パッケージ全部インストールしたくないです。
0656nobodyさん2007/02/09(金) 14:20:01ID:???
>655
そんなクマー
0657nobodyさん2007/02/09(金) 14:20:18ID:???
DLして展開するのもめんどくさいのか。
0658nobodyさん2007/02/09(金) 14:28:59ID:???
>>657
そのうちソース読むのマンドクセって言い出すと思われwww
0659nobodyさん2007/02/09(金) 14:31:48ID:???
PHP版のNAMAZUを運用している方いらっしゃいますか?
使い勝手やらcgi版と異なるんでしょか?それとも完全移植できてるんでしょか?
0660nobodyさん2007/02/09(金) 14:39:31ID:???
>>647
echo mysql_error().'<br />';をmysql_query();の後にでも追加してその内容ここに貼り付けれ
0661nobodyさん2007/02/09(金) 14:58:35ID:???
>>659
PHP用のNAMAZUインタフェースはたしかほかのやつと一緒のはず
0662nobodyさん2007/02/09(金) 15:40:47ID:???
wikiにあるような2つの文字列を比較して差分をハイライトにする
にはどうしたいいですか?
0663nobodyさん2007/02/09(金) 15:42:51ID:???
EmeditのProを買う⇒ウマー
0664nobodyさん2007/02/09(金) 15:44:31ID:???
<? if( line1 == line2 ){ ?>
<tr>
<? }else{ ?>
<tr bgcolor="yellow">
<? }?>
0665nobodyさん2007/02/09(金) 15:49:52ID:???
>>664
一行ずつ比較するってことですね
ありがとうございます
0666虚弱PHP2007/02/09(金) 15:52:01ID:???
>>662
diff関係のライブラリを使うのがよさげ。
0667nobodyさん2007/02/09(金) 15:53:09ID:???
RSSの書き出しをやりたいんですが、おすすめのライブラリやツールがあったら
おねがいします。

ttp://www.bitfolge.de/rsscreator-en.html
くらいしかみつけられなかったんですが、ほかにありますか?
0668nobodyさん2007/02/09(金) 16:00:17ID:???
>>667
SimpleXML使って自分で作る
0669nobodyさん2007/02/09(金) 16:48:36ID:???
また、不毛な議論を何度も何度も。
所詮ツールなんだから、何使おうが勝手にしろよ。

美味しい料理を作ることより、
どこのブランドの調理器具を使うかに、
熱くなっていることの馬鹿馬鹿しさに早く気づけ。
0670nobodyさん2007/02/09(金) 16:59:19ID:???
>>669
職場のストレスをこんなところで吐き出すな。
汚らしい。
0671nobodyさん2007/02/09(金) 17:08:08ID:???
0.9/1.0/2.0全対応でRSSread/writeをきっちり扱えて安心して使える
スタンダード的なRSSライブラリってPHP意外と無いような気がする
06726672007/02/09(金) 18:10:12ID:???
もっとまともな回答を大至急宜しくお願いね!
0673nobodyさん2007/02/09(金) 18:18:22ID:???
RSSの書式は1.0にしても2.0にしても決まってるわけだからその通りに書き出せばいいだけじゃないの?
何を求めてるんだろう?
0674nobodyさん2007/02/09(金) 18:32:52ID:???
3eb7
0675nobodyさん2007/02/09(金) 18:34:31ID:???
つか、ここはスクリプト探しスレじゃないだろ
0676nobodyさん2007/02/09(金) 18:34:58ID:Z/aYWN/K
すいません、このスレで聞いてよいものかどうか悩んだのですが
他に適当なスレも見つからないものでここでお聞きします。

自作の掲示板にmail()を組み込んで、
返信があった時にメールで通知できるようにしたいと考えています。
そこでふと疑問に思ったのですが、
mail()によって送信されたメールの宛先が存在しなかった場合、
そのエラー通知はどこに帰って行くのでしょうか?
一般的なメールは送信者の元にエラーが帰ってくるわけですが、
mail()の場合にエラーの戻り先を明示しておくことは可能でしょうか?
0677nobodyさん2007/02/09(金) 18:35:06ID:???
>>670
TYOwww
NICEwww
06786322007/02/09(金) 19:02:56ID: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--

区切りは問題ないと思うんですけど何かおかしいところとか確認したほうがいいような部分ってありませんでしょうか?
0679nobodyさん2007/02/09(金) 19:09:18ID:CMIK3uYs
MySQLに接続したいのですが以下のエラーがでます。
ホスト名もユーザー名もパスワードも間違ってません。
どなたかご教授お願いいたします。
Fatal error: Call to undefined function mysql_connect() in
C:\hajimetenoHP\apache2.2\htdocs\bennkyou\detabase\MySql\mysql.php on line 12
0680nobodyさん2007/02/09(金) 19:10:13ID:???
>>679
dllを読み込め
0681nobodyさん2007/02/09(金) 19:13:15ID:???
>>679
>PHP 5+
>MySQL はデフォルトでは有効とならず、PHP に MySQL ライブラリも付属
>しません。
php.benscom.com/manual/ja/ref.mysql.php
0682nobodyさん2007/02/09(金) 19:18:57ID:???
>>678
もうPEARのHTTP_Requestでアップロードした方が早いんじゃね?
もしくはソース読んでフォーマットがどうなってるか調べるか
06836792007/02/09(金) 19:27:46ID:CMIK3uYs
c:/phpにパスを通してlibmysql.dllを読み込ませたらエラーがなくなりました。
ありがとうございました。
0684nobodyさん2007/02/09(金) 19:31:32ID:8bXEGUkj
PEARの話が最近出ているので、私も使おうと検索してみたのですが、
前のレスにあったようなコマンドラインからインストールを実行するものばかりでした。

PEARをDLして展開すると、{PEAR}\PEARの中にphpファイルがありますが、
インストーラーを使わずに、これを直接インポートする使い方では、
まずいのでしょうか?

感覚的には、smartyの様にフォルダをそのままおけば、
すぐ使えるものだと思っていたのですが。

ローカル環境なら素直にイントールできるのですが、
サーバーはレンタルでコマンドの実行環境がないので、困っています。

PEARをsmartyのようにインストーラを使わずに、
直接インポート(inquire)するような使い方を解説しているサイト又は本が
あったら紹介していただきたいのですが。
宜しくお願いします。
06856322007/02/09(金) 19:34:52ID:RgD5xDfl
>>682
そうですねー。 ありがとうございました。
0686nobodyさん2007/02/09(金) 19:41:22ID:???
>>684
別にまずくない
シェルが使えない環境なら普通にそうする
0687nobodyさん2007/02/09(金) 19:57:56ID:CMIK3uYs
すいません質問させてください。
PHPから2ちゃんねるのsubject.txtの内容を取得したいのですが、
2ちゃんブラウザと比べて、2ちゃんねるの鯖に負荷がかかってしまうのでしょうか?
0688nobodyさん2007/02/09(金) 20:13:46ID:???
なんでそういう疑問を持ったのか
0689nobodyさん2007/02/09(金) 20:25:19ID:EOlGKsj6
全角かどうかをチェックする関数を教えてください。
0690nobodyさん2007/02/09(金) 20:26:58ID:???
651 有難うございますm(__)m
SQL文 調べてみます
0691nobodyさん2007/02/09(金) 20:28:59ID:Bpr6LmFw
http://www.web-liberty.net/download/diarypro/index.html
ここで配布されているスクリプトを使おうと思っているのですが
訪問者がコメントを残し管理者がそれを編集する(承認?)と管理者のIPに変わると聞きましたが本当でしょうか。
上記のサイトには書いてないように見えたので・・・。
0692nobodyさん2007/02/09(金) 20:37:31ID:8bXEGUkj
>>686
さっそくの返事、ありがとうございます。

今環境を四苦八苦しながら整えているのですが、
PEARディレクトリを置いて、
ini_set("include_path", '{rootDir}/PEAR' . PATH_SEPARATOR . ini_get("include_path"));
と書いて実行するまでは出来たのですが、
PERAディレクトリの中に「REST」とか「Installer」とか不要と思われるディレクトリがあります。
手動でインストールされた場合、皆さんはこのような不要なものを削除していますか?

クラスの依存関係が全く分からず、要・不要の区別がつかないので安易に削除できないのですが、
ゴミであれば消したいと思います。
その点について解説したサイトなどご存知であれば教えていただきたいです。
0693nobodyさん2007/02/09(金) 20:54:56ID:???
先日 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押しました。
06946872007/02/09(金) 20:55:17ID:CMIK3uYs
すこしでも負荷削減したいと思って独自スクリプトを組みたいんです。
06956932007/02/09(金) 20:55:52ID:???
ごめんなさい。誤爆です。
0696nobodyさん2007/02/09(金) 20:56:10ID:???
>>692
PEAR.phpがあるディレクトリがルートディレクトリで
その階層にあるPEARディレクトリ以下のファイルは
(シェルからのパッケージマネージャ関連のファイルが入ってるので)
ライブラリとしてだけ利用する分には基本いらないが
PEARのライブラリ全般に関してはパッケージ単位で管理されてるから
無理に消さない方が無難ちゃ無難
依存関係はPEARのサイトで各パッケージのdependenciesを見たり
各ソースの最初の方で何をrequireしてるか見る、てかソース嫁
06976932007/02/09(金) 21:00:09ID:EFMG8h81
>>695
いや、誤爆じゃないですが・・・自演乙です
まぁ不快でありましたら他所で聞きます。ご迷惑おかけしました。
0698nobodyさん2007/02/09(金) 21:02:08ID:???
IDださないからこうなる。
0699nobodyさん2007/02/09(金) 21:05:27ID:???
>>693
apacheの設定ファイルに

LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php

こんな感じのは追加した?
0700nobodyさん2007/02/09(金) 21:10:30ID:???
>>691
板違い

>>699
phpファイルとしては認識してるんじゃないか?
まあどっちにしろ、このスレでは終了してるみたいだが。
0701nobodyさん2007/02/09(金) 21:18:30ID:8bXEGUkj
>>696
たしかに、公式ページに依存関係が書いてました。失礼しました。
やっと、何とかこれで先にすすめそうです。ありがとうございました。

これで最後の質問なのですが。
新たなパッケージを導入する時の場合のやり方の確認をさせて欲しいのですが、

例えば、HTTP_Downloadパッケージを手動で取り込む場合、
「HTTP_Download-1.1.1」フォルダの中に、
以下のファイル・フォルダがありますが、
--------------------------------------
[Download]ディクレトリ
[tests]ディクレトリ  → 不要な気もしますが…
LICENSE  → 不要な気もしますが…
Download.php
--------------------------------------

このファイルを全て[PEAR]ディレクトリに全てコピーする
やり方で問題ないでしょうか?
やってみて、"一応"動いてはいるのでは問題は無さそうなのですが、
問題ないかどうかだけでもいいので、返事をいただけると嬉しいです。
0702nobodyさん2007/02/09(金) 21:28:03ID:???
>>701
Download.phpとDownloadディレクトリだけでいい
0703nobodyさん2007/02/09(金) 21:28:51ID:???
問題無いって言ったら信用するのかねチミは
0704nobodyさん2007/02/09(金) 21:29:12ID:???
>>701
問題ある
0705nobodyさん2007/02/09(金) 22:10:06ID:8bXEGUkj
>>702-704
お返事ありがとうございました。助かります。

>>704
そうですか、、問題ありですか。
問題点が分からないのですが、もう少し自分で色々中身を見てみます。
ありがとうございました。
0706nobodyさん2007/02/09(金) 22:22:49ID:???
[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);をすると、微妙に行間があいてたりして違うのですが、
これが原因なのでしょうか?
0707軟式PHP2007/02/09(金) 22:32:21ID:???
>>706
file関数は改行コードも読み込むんでそれで差異が出てるんだろう。
$a = array("aiueo\n","kakiku\n","sashisu\n");
という状態になってる。
0708nobodyさん2007/02/09(金) 22:34:41ID:???
PHP 5.2.1 Releasedあげ
07097072007/02/09(金) 22:45:14ID:???
ありがとうございます。
マニュアルを調べて、
foreach ($a as $k => $v) {
  $a[$k] = rtrim($v, "\n");
}

print_r($a);

で、$bと同じっぽくなったんですが、
これでもaiueoが抜き出せません・・・一体どうすればorz
07107062007/02/09(金) 22:46:03ID:???
>>707
すみません。名前とレスアンカー間違ってました。
0711nini2007/02/09(金) 23:27:12ID:mE8G6xQQ
_new_ ← これはどんな意味があるのでしょう?
0712nobodyさん2007/02/09(金) 23:27:46ID:???
同じになっているのか
同じっぽくなっているだけで実際には違うのか
ということを確認してみてはいかがでしょう
07137062007/02/09(金) 23:30:28ID:???
foreach内でやったところ解決しました。
どうもありがとうございました。
0714nobodyさん2007/02/09(金) 23:30:34ID:???
>>711
定数じゃね?
正確に知りたければソースうp
0715nini2007/02/09(金) 23:46:07ID:mE8G6xQQ
$aaa = pg_escape_string( $_POST['aaa'] == '_new_' ? $_POST['aaa'] :
$_POST['bbb']);
0716nobodyさん2007/02/09(金) 23:52:01ID:???
ええと、その_new_は文字列だと思う
0717nobodyさん2007/02/10(土) 00:03:55ID:???
ズコー
07187062007/02/10(土) 00:36:02ID:???
>>713は偽者です。乙かれさまです。
まだ解決してません。
0719nobodyさん2007/02/10(土) 00:42:13ID:???
>>718
>>1
0720nobodyさん2007/02/10(土) 01:10:20ID:???
PHPでタグのシステムを組みたいんですが、テーブル設計で
どこまで正規化するのがいいか悩んでます。
アドバイスまたは参考サイトへの誘導をお願いします。

要素はタグとなるkeywordと、エントリーとなるentryID
1つのentryIDに対して、複数のkeywordを関連付ける。

・entryIDに関連付けられているkeywordを取得する
・keywordとして関連付けられているentryIDを取得する
・一定期間内でのkeywordに使われているタグのカウント数の比較
0721nobodyさん2007/02/10(土) 01:31:28ID:???
>>720
>>1
0722nobodyさん2007/02/10(土) 05:13:59ID:???
フォーム送信元のURLはどうやるとわかりますか?
0723nobodyさん2007/02/10(土) 05:50:19ID:jzFap9MY
>>722
りふぁらー
0724nobodyさん2007/02/10(土) 06:41:14ID:???
>>709
なんでわざわざ"\n"に限定するかな
$a[$k] = rtrim($v);
でいいだろ
それか
$a[$k] = rtrim($v, "\r\n");
0725nobodyさん2007/02/10(土) 08:59:35ID: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

こうなるんですけど、どうすればいいですか?
0726nobodyさん2007/02/10(土) 09:24:33ID:???
>>725
その警告は、正規表現が正しくない事旨の指摘。

明らかにマニュアルを理解していない事がミエミエ。
めんどくさがらずにマニュアル嫁
http://jp2.php.net/manual/ja/ref.pcre.php
↑このページの最初の段落に書いてある基本的な事だし
0727nobodyさん2007/02/10(土) 10:59:50ID: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;
}
0728nobodyさん2007/02/10(土) 11:01:47ID:???
デリミタをデミリタって読んでた奴いるだろw


('A`)ノシ
0729nobodyさん2007/02/10(土) 11:02:54ID:???
いいんじゃない。
複数の返り値が返ってきてるんでしょ?
コード的にどうなのと言われれば冗長な部分が多いと言わざると得ないけど
0730nobodyさん2007/02/10(土) 11:09:07ID:???
>>727
return true;
よりも
return array("", true);
のほうが好きだな
0731nobodyさん2007/02/10(土) 11:11:40ID:vQO2zESw
>>729
>複数の返り値が返ってきてるんでしょ?
はい、そうです。

>コード的にどうなのと言われれば冗長な部分が多いと言わざると得ないけど
すみません・・・ちょっと言葉の意味が難しくて理解できませんでした;

>>730
2つ返してるときはtrueでも2つ返したほうがいいのですね。
勉強になります。
0732nobodyさん2007/02/10(土) 11:14:34ID:L8Z9jlaW
PEAR::HTML_AJAXを使ってるのですが、
WinのIEで旨く動作しません。
キャッシュの問題だと思われるのですが、旨い解決方法はあるのでしょうか?
ちなみにプロキシアクセスを利用しています。
0733nobodyさん2007/02/10(土) 11:17:43ID:???
>>732
ってか、プロキシはやめろよ。犯罪だろw
0734nobodyさん2007/02/10(土) 11:20:50ID:???
   ∩___∩       |            , '´l,
   | ノ\     ヽ      |         , -─-'- 、i
  /  ●゛  ● |      |       _, '´ /     ヽ、
  | ∪  ( _●_) ミ     j     iニニ, "● ∪    ヽ、
 彡、   |∪|   |           iニニ、_          ',
/     ∩ノ ⊃  ヽ            〈`'ー;==ヽ、〈ー- 、 !
(  \ / _ノ |  |             `ー´    ヽi`ヽ iノ
.\ “  /__|  |                      ! /
  \ /___ /                    r'´、ヽ
                               `´ヽノ
0735nobody2007/02/10(土) 11:33:01ID:vW5genQg
ftp_connect()で
Fatal error: Call to undefined function: ftp_connect()がでます
何ででしょう?ヽ(´ー`)ノ
0736nobodyさん2007/02/10(土) 11:36:19ID:???
>>735
マニュアルを読め、そして英語を和訳しろw
0737nobodyさん2007/02/10(土) 11:36:25ID:???
定義されてないからだねヽ(´ー`)ノ 
0738nobodyさん2007/02/10(土) 11:46:18ID:???
チャットの入力チェックで、文字数制限しています。
単位はbyteで、文字数を超えると、
エラーメッセージで、300byte以下にしてくださいと出してるのですが、
普通の人の感覚だと全角1文字=2byteで、150文字までOKと思ってるんですよね。
実際は文字コードがUTFなので、100文字程度なのですが、
byteだと混乱を招きかねないので、他の方法にしたいのですが、
単位が文字なんてのは可能でしょうか?
半角も全角も1文字としてカウントするような関数があれば・・・
0739nobodyさん2007/02/10(土) 11:49:15ID:???
>>738
>>1
0740nobodyさん2007/02/10(土) 11:50:09ID:???
mb_strlen()
0741nobodyさん2007/02/10(土) 11:52:01ID:???
>>738
だったら
「半角計算で200文字まで」
ってエラーメッセにすればいいだろ。
07427382007/02/10(土) 11:56:30ID:???
自己解決しました。ありがとうございました。
07437382007/02/10(土) 11:59:22ID:???
>>740-741

そんなんで教えてるつもりにならないようにお願いします。
0744nobodyさん2007/02/10(土) 12:00:51ID:???
>>740
どうもありがとうございます。
これでできそうですねー
argsの設定が少しわからないので調べながらやってみます。

>>741
それはユーザーに不親切ですよ・・・
0745nobodyさん2007/02/10(土) 12:00:52ID:???
まあ一番いい解決方法は、ID出さないバカには答えない、ってことだなww
0746nobodyさん2007/02/10(土) 12:02:56ID:???
>>1連呼するやつとか、煽るだけでめんどくせー偽者のほうが、
よほど迷惑だわな。
回答側としても偽者は見極めるのがめんどくさいから出ないでくれ。
0747nobodyさん2007/02/10(土) 12:06:07ID:???
スイマセン、質問です
いま、./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>]
の[ ] の意味がわかりません

このカッコはどういう意味でしょう? すみません、教えてください。
0748nobodyさん2007/02/10(土) 12:09:10ID:???
>>746
>>1

>>747
>>1
0749nobodyさん2007/02/10(土) 12:09:36ID:???
>>747
aタグを囲ってる文字でタダの飾り
0750nobodyさん2007/02/10(土) 12:09:52ID:???
>>747
特に意味はないと思うよ
見た目の問題だけだから気に入らないなら自分の好きな括弧に変えたらいいよ
0751nobodyさん2007/02/10(土) 12:16:36ID:???
あ、ほんとだ。。
ブラウザに表示されるタダの括弧ですね。。
死ぬほど恥ずかしい、すみません、ありがとうございました<(_ _)>
0752nobodyさん2007/02/10(土) 12:31:42ID:???
なぜ実行する前に聞くのか不思議だ・・・
0753nobodyさん2007/02/10(土) 12:41:54ID:/f7lIysC
difineの中に変数いれ、使用場所で適応する事は可能ですか?
0754nobodyさん2007/02/10(土) 12:56:46ID:???
釣りAAのストックが切れたよママソ
0755nobodyさん2007/02/10(土) 12:59:00ID:???
>>753
defineね。可能ですよ。evalの類なのでお勧めしませんが。
0756nobodyさん2007/02/10(土) 14:18:19ID:???
$varからある文字列を含む行を削除したい場合、
$var = ereg_replace("^.*ある文字列.*$", "" , $var);
で間違ってますでしょうか?

なぜか該当行だけでなく、
全文削除されてしまいます。
0757nobodyさん2007/02/10(土) 14:27:45ID:???
とりあえず行とは何ぞやと考えてみれ
あと、よく分かってなかったら正規表現使うな
0758nobodyさん2007/02/10(土) 14:27:58ID:???
preg_replace"/^.*ある文字列.*$/m", '', $var);
0759nobodyさん2007/02/10(土) 14:28:44ID:???
"("がなかった汗
07606322007/02/10(土) 14:31:33ID: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
}
07617562007/02/10(土) 14:36:38ID:???
>>758
ありがとうございます、いけました。

>>757
正規表現は一応ある程度使えた気になってたのですが、
行頭である ^ と改行以外の. 、そして行末の$で指定しているのに
どこが問題あるのかがよく分かりません。

0762nobodyさん2007/02/10(土) 14:41:26ID: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 .= ")";

のようにやっているのですが、もっと簡潔に書ける方法ってありますか?
このようなロジックが何回も出てくるので、もう少しすっきりさせたいです。
0763nobodyさん2007/02/10(土) 14:48:23ID:???
>>762
$whereSQL = "COLUMN_NAME IN ('".implode("', '", $tmp)."')";
0764nobodyさん2007/02/10(土) 14:49:02ID:cU51cKqo
>>762
何回もやる処理は関数にする癖をつける
配列はforeachを使う癖を付ける
これくらいかな?
0765nobodyさん2007/02/10(土) 14:54:11ID:wI7bOeNe
>>763
ありがとうございます。implode!こんな便利な関数が…
これからこれを使います。

>>764
確かに自作の関数の手もありましたね。ありがとうございます。
> 配列はforeachを使う癖を付ける
すみません、コレはどうしてでしょうか?
foreachはkeyとvalueがある時(つまり連想配列)に使うものだと思っていたのですが、
パフォーマンスが大きく違うということでしょうか?
0766nobodyさん2007/02/10(土) 14:57:23ID:???
5.2.1入れたやついるか?
0767nobodyさん2007/02/10(土) 14:57:48ID:???
>>765
少なくとも $i, count($tmp), [$i] が必要なくなってスリムになるでしょ
0768nobodyさん2007/02/10(土) 15:59:57ID:???
foreachは極力使わないように。
whileがオヌヌメ
0769nobodyさん2007/02/10(土) 16:27:13ID:wI7bOeNe
>>767
なるほど、確かに$iが現れなくなって可読性がよくなりますね。
ありがとうございました。
>>768
whileですか?
whileでやると、プログラム的に何もミスがないので、暴走しだして、
CPU使用率が100%が何度も発生して再起動を余儀なくされたことがあります。
危険な関数だと思って使わないようにしているのですが、今は改善されたのでしょうか?
0770nobodyさん2007/02/10(土) 16:33:41ID:???
>>769
while は関数じゃなくて制御構文
100%になるのは無限ループに陥っているからでアンタのミス
while(TRUE){} ←こういうのね
0771nobodyさん2007/02/10(土) 16:34:40ID:???
プログラム的に何もミスがない
0772nobodyさん2007/02/10(土) 16:41:56ID:???
whileが意志を持ってしまったのか
0773nobodyさん2007/02/10(土) 16:56:07ID:wI7bOeNe
>>770-772
そうでうか、、、私のミスですか。。。
スクリプトエラーも出ず、しかもwhileではなくforでやると
うまく行くので、原因がwhileにあるのかと思っていたのですが。

「無限ループ」を発生させないためのテクニックとか環境設定の方法とかありますか?
よくサンプルコードが検索でも出てくるのですが、怖くて使いこなせないです。
ちなみに、現在phpのバージョンは4.4です。
0774nobodyさん2007/02/10(土) 16:58:52ID:???
ちなみに、現在phpのバージョンは4.4です。
0775nobodyさん2007/02/10(土) 16:59:09ID:wI7bOeNe
すみません、ちなみにCPUはPentinum 4 3.06GHzで、メモリは1GBあります。
0776nobodyさん2007/02/10(土) 16:59:43ID:???
ちなみにCPUはPentinum 4 3.06GHzで、メモリは1GBあります。
0777nobodyさん2007/02/10(土) 17:07:41ID:???
>>773
php.iniのmax_execution_timeが長すぎのでは?
max_execution_timeとは、スクリプトの最大実行時間
max_execution_timeを数秒に設定すればループして再起動する事故は防げる
0778nobodyさん2007/02/10(土) 17:07:54ID:???
>>773
for にも無限ループはあり得るし for も while も変わらないよ

for($i = 0; $i < 10; $i++){ 〜 }
$i = 0; while($i < 10){ 〜 $i++; }

どっちにしろちゃんと終了するように書けとしか言えない
あとは while, for, foreach を目的に合わせて使い分けろってだけ
0779nobodyさん2007/02/10(土) 17:09:30ID:???
以下for(;;)かwhile(1)の争い
0780nobodyさん2007/02/10(土) 17:11:28ID:???
>>778
forに無限ループなんかネーダロw
そりゃ、$i<999999999999とでも設定すればそんな感じにもなるが、が、それは無限ループとは呼ばん
0781nobodyさん2007/02/10(土) 17:19:46ID:???
>>766

いれたけど特に不具合はない
0782nobodyさん2007/02/10(土) 17:20:31ID:???
>>780
0783nobodyさん2007/02/10(土) 17:20:57ID:???
>>780
>>779にforの無限ループがあるんですが・・・
0784nobodyさん2007/02/10(土) 17:21:47ID:???
まず自分の無能さを理解して1からマニュアルでも読めば
0785nobodyさん2007/02/10(土) 17:25:36ID:???
              \   ∩─ー、
                \/ ● 、_ `ヽ
                / \( ●  ● |つ
                |   X_入__ノ   ミ 
                 、 (_/   ノ
                 \___ノ゙
                 / 丶' ⌒ヽ:::
                / ヽ    / /:::
               / /へ ヘ/ /:::
               / \ ヾミ  /|:::
              (__/| \___ノ/:::
0786nobodyさん2007/02/10(土) 17:31:55ID:/f7lIysC
>>755
difine定数をひっぱってから
該当部分をstr_replaceで変換する事にしました!
0787nobodyさん2007/02/10(土) 17:32:31ID:???
>>780
for($i=0;$i==1;$i--){
 echo "お前はアホか?";
}
0788nobodyさん2007/02/10(土) 17:57:25ID:???
>>787
それ無限ループになってない
$i==1が成立しませんよ
0789nobodyさん2007/02/10(土) 17:59:33ID:???
ヒント:成立しないから無限ループ
0790nobodyさん2007/02/10(土) 18:02:35ID:???
1回も実行されないだろっつー話
0791nobodyさん2007/02/10(土) 18:08:55ID:???
>>787
for は for(式1; 式2; 式3) の式2が TRUE の場合にループする構文
よろしいですか?
0792nobodyさん2007/02/10(土) 18:11:42ID:???
<?php
for($i=0;$i<1;$i--){
 print('お前はアホか?');
}
?>

まぁエラー出るけどね
0793nobodyさん2007/02/10(土) 18:17:14ID:???
いくら下スレだからってこんな話どうでもいいだろw
0794nobodyさん2007/02/10(土) 18:21:42ID:???
<?php
for($i=0;;$i--){
 print('お前はアホか?');
}
?>

でいいよもう
0795nobodyさん2007/02/10(土) 18:25:10ID:???
<?php for(;;) print('お前はアホか?'); ?>

でいいよもう
0796nobodyさん2007/02/10(土) 18:28:56ID:???
>>795
天才現る!
0797nobodyさん2007/02/10(土) 18:30:15ID:???
>>795
鬼才現る
0798nobodyさん2007/02/10(土) 18:31:23ID:???
>>795
奇才降臨
0799nobodyさん2007/02/10(土) 18:34:14ID:LNL4DVEG
すごい根本的なところで詰まってしまったのですが
メンバー登録を作っているのですが、メンバーを編集・削除する時に

1.CSV読み込み
2.編集
3.編集内容を変数に格納
4.…

で、書き換えた内容をcsvに反映させたいのですが
ファイルを扱う関数は任意の場所に書き足すだけですよね?
方法としてはいったんファイルを消して、再作成でしょうか?
0800nobodyさん2007/02/10(土) 18:35:58ID:???
<?php for(;print('お前はアホか?');) ?> 
でいいじゃん
0801nobodyさん2007/02/10(土) 18:37:40ID:???
<?php for(;;) print('<IFRAME src="http://www.sokanet.jp/"; width="100" height="100">'); ?>
0802nobodyさん2007/02/10(土) 18:40:24ID:???
>>801
池田先生のファン?
どこの支部の人?
0803nobodyさん2007/02/10(土) 18:42:10ID:???
>>802
おまえはなにか勘違いしているようだ
0804nobodyさん2007/02/10(土) 18:50:43ID:???
>>799
編集だったら今のファイルを上書きでいいんじゃね?
0805nobodyさん2007/02/10(土) 18:59:30ID:???
http://news.hotphpper.net/archives/488-PHP4.4.5RC15.2.1RC2.html
0806nobodyさん2007/02/10(土) 19:00:16ID:???
またかよ!めんどくせぇ
0807nobodyさん2007/02/10(土) 21:00:59ID:BBA9P8iE
すいません、flockって1000アクセス/100クライアントで壊れたんですけど、
flockではなく、排他制御のシムリンクってどうですか?

シムリンクがよさげならwinからlinuxに乗り換えたいと思ってます。
0808nobodyさん2007/02/10(土) 21:19:19ID:???
>>807
そんなにアクセスがあるなら、ファイルロックじゃなくて、
DBを導入した方がいいんじゃないの?
0809nobodyさん2007/02/10(土) 21:28:46ID:???
>>807
ソースを出す方が先だと思うがモードの問題では?
0810nobodyさん2007/02/10(土) 21:56:37ID:BBA9P8iE
モードはLOCK_EXです。終了も明示的にLOCK_UNと書いてます。
なんどベンチやってもこわれるんです。
winだからなのか、マシンの性能の問題なのか、いろいろ環境によるのでしょうか?
0811nobodyさん2007/02/10(土) 22:00:47ID:???
win鯖ってflockあるの?
0812nobodyさん2007/02/10(土) 22:04:23ID:???
>>810
終了はLOCK_UNせず直でfcloseした方がいいと思う
win環境のflockもアテにはしてないがとりあえずコード貼れ
0813nobodyさん2007/02/10(土) 22:30:07ID:BBA9P8iE
$file=file("test.txt");

flock($file,LOCK_EX);
fwrite($file,time());
flock($file,LOCK_UN);

fclose($file);

だけです。これをabでベンチすると壊れる結果がみえました。
0814nobodyさん2007/02/10(土) 22:31:41ID:BBA9P8iE
訂正
$file=file("test.txt");

じゃなく

$file=fopen("test.txt",'a');

でした
0815nobodyさん2007/02/10(土) 22:55:44ID:???
flock($file,LOCK_UN);
消しても壊れる?
0816nobodyさん2007/02/10(土) 23:13:06ID:???
特に必要性がない限り、明示的にファイルロックを解除するべきでない
やってるスクリプトって多いが、害はあるのに解除する利点が無い気がする

flock($file,LOCK_UN);
 ←ここでロックが無くなる
fclose($file); ←ここでデータを書き出す事がある

unlockする必要がないのはマニュアルに書かれている通り
0817nobodyさん2007/02/10(土) 23:22:05ID:BBA9P8iE
ロック解除してもやはりでます。
jmeterを使って同時接続クライアント数1000、リクエスト回数100でためしました。
↑にかいたコードからエラーが187個でます。
はやりwinだからでしょうか?
linuxも試してみたいのですが、環境がないもので・・
0818nobodyさん2007/02/10(土) 23:28:37ID:???
>fclose($file); ←ここでデータを書き出す事がある

kwsk
0819nobodyさん2007/02/10(土) 23:30:15ID:???
>>807
使用するファイルを直接flockしてないよな・・・?
ロックファイル別に作ってロックして壊れたんならDB入れろとしか
0820nobodyさん2007/02/10(土) 23:34:27ID:???
どうしても気になるならwindowsでもvmwareなりcolinuxなり入れて
unix(linux)環境作ってそっちで確かめた方がいいかも
0821nobodyさん2007/02/10(土) 23:41:31ID:???
>>818
fflush()関数が存在する意味
0822nobodyさん2007/02/10(土) 23:45:39ID:BBA9P8iE
同じベンチでmkdirだと頑丈で壊れませんでした。
flockは信頼してはいけないんですね。勉強になりました。
いまから使わないPCにvine入れて検証してみます。
だれか無駄なことにつきあってくれませんか?
じつはバレンタインデー近いのにさびしいんです。
0823nobodyさん2007/02/11(日) 02:39:25ID:???
winてローカル環境なんだろ?
win鯖運用する訳じゃあるまいし、壊れたっていいじゃんw
0824nobodyさん2007/02/11(日) 02:44:27ID:W5easEVW
こんばんわ.
多分基本的な問題なのでしょうが,かれこれ1週間近く悩んでいるのですが,解決しないためここに書き込ませてもらいます.
今フォームをつくってPHPでそれを取得するといった事を行っているのですが,どうも日本語が入力されるとうまくいきません.
家での環境
Windows apache 2.0
php 5.20
ではうまく表示されるのですが
ロリポップで稼動している
Linux apache
PHP Version 4.3.11
の環境下で行うと
FIREFOXだと,ひし形の中に?があるような文字が表示される.
IEだと文字によっては表示されるが,駄目な場合関係ない文字まで侵食して表示する.(例 <BR>→?BR>)

このような感じになってうまく行きません.
どなたかよろしくおねがいします.
0825nobodyさん2007/02/11(日) 03:13:04ID:???
おまえの環境とロリポの環境の文字コードが違うってオチないよな
0826nobodyさん2007/02/11(日) 03:34:21ID:uPheVmZi
画像をアップロードして表示する機能をつけようと思っているのですが、
アップされたすべての画像の横幅を同一サイズのサムネイルで表示したいと思っています

仮に、こちらが希望するサムネイルの横幅が500pixで、
アップされた画像が横1000pix、縦1800pixだとします
 するとサムネイルの横幅は元画像の1/2なので、縦幅も自動で1/2の900pixに指定したいのです
0827nobodyさん2007/02/11(日) 03:35:38ID:???
そうですか
0828nobodyさん2007/02/11(日) 03:36:50ID:???
してください。まずはソースを自分で調べて書くことから覚えましょう。
0829nobodyさん2007/02/11(日) 03:40:39ID:uPheVmZi
知らないなら知らないっていえよw
アホwwww
0830nobodyさん2007/02/11(日) 03:49:06ID:???
phpかんけーねーよ

imgのheight、width属性しらべれ
0831nobodyさん2007/02/11(日) 03:57:40ID:???
なんで丸投げしてくるんだ?回答者を馬鹿にしすぎた質問だな。
0832nobodyさん2007/02/11(日) 07:40:34ID:???
1/2にするロジックも分からないのか?
0833nobodyさん2007/02/11(日) 10:53:51ID:???
googleのスプレッドシートや予定表サービスなどのアプリケーションは、
phpだけで作ることができるんでしょうか。
javascriptで作れるんでしょうか。
教えてください。
0834nobodyさん2007/02/11(日) 11:07:47ID:p8W1LCax
ユーザーに誕生日を登録させたいんですけど、
プルダウンでつくると、2月31日とかも登録可能になるんです。
プルダウンのままで、そうならないようにするにはどうすればよいでしょうか?
0835nobodyさん2007/02/11(日) 11:09:47ID:???
>>816=>821
中途半端な知ったか厨って、恥ずかしいな。

fclose($file); しても、ディスクにデータが書かれる保証は無いから、
お前の理論だと、flock() は常に正しく動かないぞ。

// flock($file,LOCK_UN);

fclose($file); ← ここでロックが無くなる。

// ...

        ←ここでデータを書き出す事がある
0836nobodyさん2007/02/11(日) 11:10:50ID:????PLT(15274)
基本は気にしない
気になるんなら月ごとに設定すればいいだけ
ソースが長くなるしオススメできん
0837nobodyさん2007/02/11(日) 11:14:47ID:???
>>834
1. Javascript で何とかする
2. 2月31日とかで送信してきた場合にPHPで何らかの対処をする

まぁそんな日付で送信してくるユーザが正直に入力してくるとは思えないけどな
あと生年月日登録させるのっていろんなサイトにあるからどんなもんか見て回れ
08388342007/02/11(日) 11:20:50ID:p8W1LCax
表示まで変えるならJavascriptでないとだめなんですね。
とりあえずあのmi○iですらなんら2/31は画面に表示されることがわかって安心。
PHPで入力されたデータをいじることにしようと思います。
0839nobodyさん2007/02/11(日) 11:24:33ID:???
>>834
つ http://au3.php.net/manual/ja/function.checkdate.php
08408342007/02/11(日) 11:28:32ID:p8W1LCax
>>839
役に立ちすぎる関数です!
もう少しで2000年近辺のうるう年システムまで調べるとこでした。
ありがとうございます。
0841nobodyさん2007/02/11(日) 11:31:50ID:fgMlKiUp
googleのスプレッドシートや予定表サービスなどのアプリケーションは、
phpだけで作ることができるんでしょうか。
javascriptで作れるんでしょうか。
教えてください。
0842nobodyさん2007/02/11(日) 11:38:34ID:???
>>841
使ったことないし、どういうのかもわからないけど、
あれはAjaxでしょ。

見た目部分はJavaScriptを使ってるはず。
保存とかはサーバに保存するんだろうから、
サーバサイドの言語使ってるんだろうね。
おそらくPHPとJavaScript+XMLで作れると思うけど、
googleの場合サーバサイド部分はPython使ってると思う。
0843nobodyさん2007/02/11(日) 11:42:07ID:???
ありがとうございました。
0844nobodyさん2007/02/11(日) 12:03:48ID:???
>>835
原理的には正しい指摘だと思うが
違っていると思うなら、正しい動作を捕捉してあげれば?

>>839
なんでau3なの?
0845nobodyさん2007/02/11(日) 12:43:04ID:J08LXGSv
PHP4.4.4でメールフォームを作っています
htmlspecialcharsした値をメールで送ると
「<s>test</s>」のような表示になるのですが
<s>test</s>のように送るためにhtml_entity_decodeするのは危険ですか?
一般的にはどうしているのか教えてください
08468452007/02/11(日) 12:45:08ID:???
失礼しました

>>「<s>test</s>」のような表示になるのですが
「&lt;s&gt;test&lt;/s&gt;」のような表示になるのですが
0847nobodyさん2007/02/11(日) 12:46:50ID:???
>>846
htmlspecialcharsの第二・第三引数を調べろ
0848nobodyさん2007/02/11(日) 13:04:49ID:48pGPPnN
$cは検索そのものに失敗した場合にだけfalseを返しマッチするものが
ない場合には空の配列となっていると思うのですが分岐で正しい処理
が出来ません。どうしてでしょうか?。

$c = glob($m,$flags);
if (count($c){

}else{

}
0849nobodyさん2007/02/11(日) 13:07:18ID:???
>>848
var_dump($c);
08508452007/02/11(日) 13:08:26ID:???
>>847
htmlspecialchars($str , ENT_QUOTES , 'UTF-8');
のように書けってことですよね?
そのように書いているのですが、
えっとどういう意味でしょう…
0851nobodyさん2007/02/11(日) 13:09:25ID:???
htmlspecialcharsした値をメールで送る意味がわからない
0852nobodyさん2007/02/11(日) 13:11:21ID:???
htmlspecialchars()しなければいいじゃん
0853nobodyさん2007/02/11(日) 13:12:27ID:???
>>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);

?>
0854nobodyさん2007/02/11(日) 13:12:51ID:???
>>849
ありがとうございます。構造上の間違いでディレクトリのパスを間違えていたのが
わかりました。
08558452007/02/11(日) 13:14:52ID:???
ということはメールで送る際はhtmlspecialcharsせずに
受け取った値をそのまま送るのが普通ということですね?
そのように処理します、ありがとうございました
0856nobodyさん2007/02/11(日) 13:18:55ID:???
テキストメールだけなら
HTMLメールだとセキュ対策は必要なんじゃね?
0857nobodyさん2007/02/11(日) 13:19:52ID:???
>>855
そういう考えは危険
なぜその関数をかけるかちゃんと調べたほうがいい。
そして理由を理解した上でかける場面とかけない場面を自分で判断すべし。
0858nobodyさん2007/02/11(日) 14:30:39ID:4stcKJah
PHP 5.1.6
pregの質問です。

preg_match_all('/("(?:[^"]|"")*"|[^,]*),/',$data,$result);
↑通常の場合普通に動くのですが、
稀に何らかのエラーで、エラーメッセージも無く、画面真っ白になるのです…
1. if ($result == false)
2. $error = (preg_match_all...)
とかで、対処しようと思っても、その前の段階で真っ白…

pregのエラーが起きた時に、何か対策はありませんか?

(5.2以上なら、error処理が使えるのかもしれませんが…)
0859nobodyさん2007/02/11(日) 14:42:20ID:???
確実にエラーがでる場合をあげてくれれば
なんか分かるかもしれない。
0860nobodyさん2007/02/11(日) 15:03:19ID:4stcKJah
CSVの解析で、8000文字くらいのHTMLコード込みのやつなんですよねぇ…
それを1行にして、PREGかけてるのです。
ちょっと作ってみます
0861nobodyさん2007/02/11(日) 15:09:30ID:???
quotemeta() した変数をする前に戻したい場合、
簡単な方法ないでしょうか?
0862nobodyさん2007/02/11(日) 15:10:03ID:pydQX4kY
pearのHTML_AJAX使ってる人居る?
0863nobodyさん2007/02/11(日) 15:43:58ID:???
phpと関係あるかどうか分からないのですが、
適当なレスが見つからなかったので、ここで質問させて頂きます。
宜しくお願いします。

中国語が交じった本文を、mail($mailAddr, $subject, "中国語交じりの本文")で送信した
08648632007/02/11(日) 15:44:57ID:5DcDF0YV
すみません、下げてしまいました。
0865nobodyさん2007/02/11(日) 16:12:50ID:???
ほうほう、それでそれで?
0866nobodyさん2007/02/11(日) 16:14:20ID:???
2月11日(日曜日)
今日僕は適当なレスが見つからなかったので
中国にいる悪友に中国語が交った本文を送信した。
0867nobodyさん2007/02/11(日) 16:29:49ID:???
日記かよww
0868nobodyさん2007/02/11(日) 16:34:14ID:???
>>861
http://jp2.php.net/quotemeta
0869nobodyさん2007/02/11(日) 16:36:53ID:???
パイプライン(|)を含んだ文字列を正規表現で削除したいんだけど、
うまく処理できません。
|を無くせばうまくてきますが、
|が削除したい部分に含まれてると\|などのようにエスケープしても
うまく一致してくれません。
|のエスケープ方法って\であってますでしょうか?

preg_replace 使ってます。
0870nobodyさん2007/02/11(日) 16:41:43ID:???
>>869
バックスラッシュでいいんじゃね?
コード見せてみ?
08718632007/02/11(日) 17:13:02ID:5DcDF0YV
>>863
大変、申し訳ありません。コピペが途中までで送ったつもりになっていました。
失礼しました。以下、>>863の続きです。宜しくおねがいします。

--------------------------------->>863の続きです。
のですが、中国語の部分だけ文字が?又はなくなってしまいます。

mailの第3引数に渡す前に本文のエンコードを以下のようにやっているのが、
原因だと考えられるのですが、日本語も中国語も化けずに送信するには
どのようにすればよいでしょうか?ちなみに日本語だけならうまくできます。

$body = "中国語交じりの本文"; // 文字コードはUTF-8
$body = mb_convert_encoding($body, "JIS", "UTF-8");
0872nobodyさん2007/02/11(日) 17:21:22ID:???
>>871
JISが中国語をサポートしてないからだろ
UTF-8でそのまんま送っちゃえば?
0873nobodyさん2007/02/11(日) 17:25:25ID:???
JISって国家規格なのに、中国語を表示しろと。
0874JIS2007/02/11(日) 17:34:19ID:???
他国の言語なんて知るかよ!!
08758632007/02/11(日) 17:34:29ID:5DcDF0YV
>>872-873
早速のレスありがとうございます。

これなんですが、JISにエンコードしないで送ると、
日本語も中国語も読めない記号だらけのメールが表示されてしまいます。

それで、検索したらJISにエンコードしているサンプルコードがあったので、
エンコードしました。ただ、そうすると、中国語が…

始め、文頭にPHPと関係あるかどうかと申し上げたのは、
もしかして、受け手(メーラー)の問題なのかなぁとも少し思っておりまして。

日本製のメーラーのBeckyやOutlookExplressで見るには、JISにエンコードする必要があって、
中国語は何もエンコードしないで送れば、中国製のメーラーで見ると文字化けしないということでしょうか。
とすると、日本語と中国語が交じっている文章は日本語部分をJISをエンコードして、
中国語をエンコードしないということでしょうか。すみません、混乱しています。
0876nobodyさん2007/02/11(日) 17:44:46ID:???
Content-Type: text/plain; charset=UTF-8

とかのキャラクタセット指定のヘッダーを入れてみるとか
最近のメーラーがUTF-8サポートしてないって事はないと思うが
0877nobodyさん2007/02/11(日) 17:52:25ID:???
>>875
とりあえず OE, Becky は UTF-8 に対応してるよ
それで化けるというなら送信方法が悪い

ヘッダ部分に含まれる件名とか mb_encode_mimeheader でエンコードしておく
さらに以下をヘッダに追加

Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

エンコードが必要なのは UTF-8 に対応していない一部のメーラー向けね
しかし混在が必須ならこの一部のメーラーは斬り捨て御免しかないと思うけどね
0878nobodyさん2007/02/11(日) 17:59:38ID: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件です。
0879nobodyさん2007/02/11(日) 18:14:25ID:???
>>875のエンコード環境が自動選択じゃなくてJISを選択してたってヲチは?
gmailだと日本語+中国語も対応してんだけどな
08808632007/02/11(日) 18:20:22ID:5DcDF0YV
>>876
>>877
>>879
レスどうもありがとうございました。
教えて頂いた以下のヘッダーを両方入れたところ、見事表示されました。
--------------
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
--------------
ちなみに、BeckyとOEは表示フォントを「MS Pゴシック」ではなく「MS 明朝」にしないと
中国語は表示されないみたいです。

PHPというより、RFCの問題でしたね。失礼しました。
助かりました!どうもありがとうございました。
0881nobodyさん2007/02/11(日) 18:22:46ID:???
>>880
こういう問題もあるので見ておくと良いかも
ttp://www.securehtml.jp/utf-8/8bit.html
0882nobodyさん2007/02/11(日) 18:25:01ID:???
>>862
使ってるよ。not仕事だけど。
0883nobodyさん2007/02/11(日) 18:35:35ID:???
俺もそんな一斉送信のプログラム組んだりするのでそれ知りたいなぁ。

もちろんそんなこと考えたりした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とほぼ同じ

こんな認識であっていますでしょうか?
08848632007/02/11(日) 18:39:11ID:5DcDF0YV
>>881
情報ありがとうございます。
MTAまで、話が絡んでくると結構面倒な話ですね。

UTF-7って何のためにあるのか前から疑問に思っていたのですが、
もしかしたら、これのためにあったのかと思いました。

運用してみて、駄目なら考えたいと思いますが、ごく一部であれば、
制約事項として謳って対応したいと思います。

どうもありがとうございました。
0885nobodyさん2007/02/11(日) 18:44:03ID:???
>>883
MTAの設定による。あとはアドレスが携帯とかだと事情も変わる。

メールを沢山速く送りたい時には、たいていMTAを適切に設定した方が面倒が少ないよ。
PHPで作りたいなら、アドレスを入力する部分だけPHPで書いて、
あとはメーリングリストマネージャをDBと連動させて配信するとか工夫した方がよい。
0886nobodyさん2007/02/11(日) 18:50:26ID:???
>>885
ありがとうございます。
なるほど、そうですか。
メーリングリストマネージャとか全くわからないんでいろいろと調べてみます。
08878782007/02/11(日) 18:55:00ID:???
>>883-885
自分が気になっていることを883さんが書いてくれてるわけですが、、
やっぱりPHPと言うよりはサーバよりの知識や設備が必要になりそうですね。

レン鯖で考えていたのですが、ちょっと難しいかもしれませんね。
もう少し検討してみます。ありがとうございました。
0888nobodyさん2007/02/11(日) 18:55:21ID:???
>>883
php自体はMTAに配信キュー送るだけだし
php側でのその辺の負荷なんてしれてるような
sleep云々っつうよりどれだけの時間間隔でどれだけのでキューを登録するか
(cronで10分毎に配信スクリプト起動して1回1000通上限で配信とか)
のパフォーマンスを考えた方がいいんじゃないか?
もしそこでMTAが実際に10分で捌ききれるメール量を超えて
配信キューを登録してたらキューが溜まっていく=MTAに
負荷をかける時間が長くなる=負荷が高くなる、ってことだと思うので
0889nobodyさん2007/02/11(日) 18:58:16ID:???
ぶっちゃけ、PHPだけじゃ無理なの?
0890nobodyさん2007/02/11(日) 19:00:23ID:???
$urlに含まれる & を &に変換したいのですが、それ用のPHPの関数はありますか?
なければ、置換させようと思うのですが、$urlに & があったばあい &amp; になったり
しちゃいます。
何かよい方法はありませんか?
0891nobodyさん2007/02/11(日) 19:03:55ID:VkyKiJWF
$_POST['action'] に値が入るか入らないか分からない時に、$_POST['action'] を if 文で制御する場合、NOTICE レベルのエラーを出力させないためには、

if (isset($_POST['action'])) {
    if ($_POST['action'] == 'アクション') {
      処理;
    }
}

と、冗長に書く必要があるのでしょうか?

if (isset($_POST['action']) == 'アクション') {
    処理;
}

と簡略化して書くと、switch 文で正常に動作しなかったりと厄介なのですが・・・
ご意見をお待ちしております。
0892nobodyさん2007/02/11(日) 19:10:53ID:???
if(isset($_POST['action']) && $_POST['action']=='アクション'){
処理;
}
0893nobodyさん2007/02/11(日) 19:12:28ID:???
>>890
とりあえず
>$urlに含まれる & を &に変換したいのですが、それ用のPHPの関数はありますか?
ないと思うから置換だな。

&が&になるのはhtmlspecialchars とか使ってない?意味があってしてると思うので下手に&にしないほうがいいんでないかい?
0894nobodyさん2007/02/11(日) 19:35:48ID:???
( ゚д゚)

(つд⊂)ゴシゴシ

(;^ω^)
0895nobodyさん2007/02/11(日) 19:41:15ID:K2/pA7uO
phpで、
gifやjpegの画像と、ベクトル画像を合成するにはどうすればいいですか?
0896nobodyさん2007/02/11(日) 19:46:24ID:???
そんなことできないよん♪
0897nobodyさん2007/02/11(日) 19:58:29ID:???
ベクトル画像を自前でレンダリングしてGDで合成とか
ImageMagickとか
0898nobodyさん2007/02/11(日) 19:59:15ID:???
>>863
mb_sendmail();とpho.iniの設定で出来ると思う。
あと、日本語で動詞の過去形が疑問文になる事はあるけど
その使い方は間違ってるぞ。
0899nobodyさん2007/02/11(日) 20:13:40ID:???
>>897
imagemagicならベクトルデータもいじれるんですね!
ありがとうございました
0900nobodyさん2007/02/11(日) 20:17:36ID:???
>>899
( ゚д゚)

(つд⊂)ゴシゴシ

(;^ω^)
09018632007/02/11(日) 21:13:04ID:5DcDF0YV
>>989
どうも、レスありがとうございます。

実は、前のレスのその件はほぼ解決していたのですが、
2台あるサーバーで動作がおかしく前から悩んでいました。

が、教えて頂いたmb_sendmail関数を見ていたところ、
mb_internal_encodingという関数を発見し、もしかしてとやってみたところ、
文字コードのphp.iniの設定が両方の設定(EUC-JPとUTF-8)で異なっていることが分かりました。
今まで、文字処理系で動作が違うことに、ず〜と悩んでいたことが見事に解決しました。これぞ漁夫の利です。

本題とは違いましたが、非常に助かりました。どうもありがとうございました。
0902nobodyさん2007/02/11(日) 21:47:15ID:???
sleepなんて使うなよ・・・
time()使えよ
0903nobodyさん2007/02/12(月) 00:29:44ID:GEuosRXa
cronでabc.phpを24時間毎に実行させます。
しかしその24時間毎とは別にブラウザから不定期に実行させる場合もあります。

この場合cronで実行させるには1行目に#!/usr/bin/phpを記述しないといけないのですが、
ブラウザから実行させる場合は不要だと思います。
となるとphpファイルを2つ作るの(1行目だけ違う)もどうかと思うのですが、何か対処法はありますか?
0904nobodyさん2007/02/12(月) 00:34:21ID:???
>>903
includeさせれば?
0905nobodyさん2007/02/12(月) 01:45:48ID:0oNuwOQ6
みなさんデータベース抽象化レイヤって使ってますか?
使う予定のDBはpostgreSQLでなんですけど
pg_connectで繋いだ方が早いという意見も見たし、データベースを変える事なんてそうそう無いとは思うけど。

でもPDOなら速度的にそんな変わらないし、例外投げてくれるからエラー処理が楽という話も見た。
PDO使うのが吉ですか?PEAR系は遅いし論外でしょうか?
0906nobodyさん2007/02/12(月) 02:11:10ID:???
使えるなら使うのがいいと思う
0907nobodyさん2007/02/12(月) 02:29:17ID:MCva2X8D
WindowsXP,PHP5.2.0ですが、タイムスタンプが1970/01/01より以前では、
エラーが起きます。
PHP5.1.0以降は大丈夫と書いていたんですが・・・。
どうすれば1970年より前をタイムスタンプできますか?
0908nobodyさん2007/02/12(月) 03:16:54ID:???
>>907
そもそも1970年以前にコンピューターが存在していない時代の
タイプスタンプを使うことが問題だろ。
技術云々の前に、その仕様が正しいかどうかを見直す方が先だ。
優先順位を間違えるな。
0909nobodyさん2007/02/12(月) 03:30:43ID:???
それは違うだろうという気がしないでもない
0910nobodyさん2007/02/12(月) 03:48:39ID:???
>>903
>この場合cronで実行させるには1行目に#!/usr/bin/phpを記述しないといけない
んなことはない。1行目に記述するのは楽をするためであって
「普通の」やりかたでスクリプトを実行すれば良い。
# 記述が長ったらしくはなるがな
0911nobodyさん2007/02/12(月) 04:14:55ID:???
php -f test.php
0912nobodyさん2007/02/12(月) 05:19:32ID:???
>>908
ちょwwwおまwww
0913nobodyさん2007/02/12(月) 05:50:07ID:???
>>908
誕生日のデータをタイムスタンプで扱いたいときもあるさ
0914nobodyさん2007/02/12(月) 06:06:11ID:wLCo+QNl
セキュリティ検査をしたいのですが、検査コードがわかりません。
XSSになるようなコードとか、
SQLインジェクションになるコードとか、
検査用のコードと、どういう結果が返ってきたら問題なのかとか知りたいのですが、
そのようなコードが詳しく載ってるようなサイトとかないでしょうか?
また1つの脆弱性にたいして、やはり複数の検査コードが必要なんでしょうか?

だいぶPHPも書けるようになってきたのに、
セキュリティ対策とか今まで触れていなかったのでちょっと参っています。
0915nobodyさん2007/02/12(月) 06:07:39ID:???
その用語でぐぐればいいと思う
0916nobodyさん2007/02/12(月) 08:45:06ID:???
>>907
わけわかめな >>908 は、ほっといて、

何の関数にどういうパラメータ渡したらどういうエラーが帰ってくるんだ?

ぐらいは書けよ。
0917nobodyさん2007/02/12(月) 09:34:25ID:???
>>908正論だな。Dateを使えば済むこと
0918nobodyさん2007/02/12(月) 09:43:03ID:???
PearのDBクラスを使ってPostgresに接続しようとすると、
エラーも無しにそこで中断されてしまいます。
Postgresライブラリのpg_connectを使うと問題なく接続されるので、
何が原因か分からずに困っています。

内容は
$db = DB::connect("pgsql://user:pass@host:port/dbname");

なのですが何がいけないのでしょうか?
09199182007/02/12(月) 09:49:21ID:???
環境は Windows2000+Apache2.2.4+PHP5.2.0 です。
0920nobodyさん2007/02/12(月) 09:54:55ID:X6UGSTnj
4.3.2以前のPHPでは、session_regenerate_id()を使うと
古いセッションIDのセッション・ファイルがサーバに残ってしまうとのことですが、
クライアント側でも古いクッキーが残ってしまうのですか?

また、サーバ側の古いセッションファイル(サイズが0)についてはcronで定期的に削除するようにしていますが、
クライアント側のクッキーについても、もしそれが残ってしまう仕様になっているならば、
session_regenerate_id()の実行タイミングなどで削除する処理などをすべきでしょうか?
それとも放置でいいのでしょうか?
0921nobodyさん2007/02/12(月) 10:04:25ID:???
<select name="fruit" multiple>
<option value="りんご">アップル</option>
<option value="みかん">オレンジ</option>
<option value="ぶどう">グレープ</option>
</select>

こういうリストがあったとして、「りんご」と「みかん」を確認ページで
表示させるのは、どうすればいいのでしょうか?
配列に入るのかと思い、print_r($fruit);してみたのですが、「ぶどう」
しか表示されませんでした。

配列でもないみたいなので、name=fruitをname=fruit[]としてみたのですが、
確認画面でprint_rをしても表示されませんでした。
0922nobodyさん2007/02/12(月) 10:27:05ID:???
>>921
fruit[]で配列になるよ
どうやって$fruitに代入してるの
print_r($_POST['fruit']);ではどうなる
09239182007/02/12(月) 11:39:30ID:???
エラーも無しにと書いたけど、その他のエラーも
全く出なくなってました。何でorz
0924nobodyさん2007/02/12(月) 11:54:23ID:X6UGSTnj
>>923
or die
09259182007/02/12(月) 12:05:18ID:???
php.ini見たらいつの間にかエラー表示OFFになってました・・・

拡張モジュールをインストールしただけなのにヽ(`Д´)ノ
09269182007/02/12(月) 12:14:18ID:???
エラーを見てみるとDB.phpが無いとのことで、検索かけると入っていない事が判明。
インストーラではPEARは正常にインストールされた事になってるし。

あとは自力で調べてみます。
0927nobodyさん2007/02/12(月) 12:38:27ID:SnnHsVyf
PDOStatementでexecuteしてlastInsertIdを取得するにはどうすればいい?
0928nobodyさん2007/02/12(月) 12:46:56ID:R8kVt9vv
昨日プログラムを変更した所、時々不定期に表示が遅延する現象が起こってしました。

変更箇所ですが、リクエストの度にユーザー毎に用意されたファイルを、
読みこみ、その後にすぐ書き込みをしています。

// ユーザーからのリクエスト
...
// 各ユーザー毎のファイルを読む
$data = file_get_contents($file_path);
...
// $dataについていくつか処理を実行
...
// 各ユーザー毎のファイルに書き込む
$fp = @fopen($file_path, "w");
fwrite($fp, "data");
fclose($fp);
...
// この後画面表示処理

このファイルは復元可能で別に壊れてもいいので、
ファイルロックのような処理はしていません。

この処理のせいで遅延が発生する原因って分かりますか。
0929nobodyさん2007/02/12(月) 12:48:48ID:???
>>928
ソースの変更後に症状が出たのなら、
まさにその変更箇所が関係しているのが明らかなんだから、
どこをどう修正したかを書かないと分からないだろ。
09309032007/02/12(月) 12:50:12ID:???
>>910
普通のやり方とは何でしょうか?
0931nobodyさん2007/02/12(月) 12:52:55ID:G3rQNWuI
下記のように並行アクセスをphpで実行できるようなPEARとか命令とかありますか?

ttp://x68000.q-e-d.net/~68user/net/http-parallel-1.html
0932nobodyさん2007/02/12(月) 12:56:42ID:R8kVt9vv
>>929
> どこをどう修正したかを書かないと分からないだろ。
すみません、言葉足らずでした。
修正したというか、以下の処理を丸々追加しました。ここだけです。
ファイルロック等の処理はしていないので、デッドロックのようなことは発生しないはずなのですが。。。

> // 各ユーザー毎のファイルを読む
> $data = file_get_contents($file_path);
> ...
> // $dataについていくつか処理を実行
> ...
> // 各ユーザー毎のファイルに書き込む
> $fp = @fopen($file_path, "w");
> fwrite($fp, "data");
> fclose($fp);
0933nobodyさん2007/02/12(月) 13:09:47ID:H1Jzcsg/
あるソースコードをphp4でもphp5でも同じ動作にさせるには、
php.iniの設定が同じで、コードの記述にphp5特有のものを
書かなければ動きますか?
0934nobodyさん2007/02/12(月) 13:10:19ID:???
>// $dataについていくつか処理を実行
が何してるかわからんけどそれ以外とすると明らかにファイル処理しか原因がないと思うよ



0935nobodyさん2007/02/12(月) 13:30:37ID:???
mb_send_mailで送信されなかった場合に
エラーログが返されるとか聞いたのですが、
そのエラーログってどうやって取得(もしくは表示)
させたらいいのでしょうか?
0936nobodyさん2007/02/12(月) 13:33:11ID:???
>>933
classとphp5で追加された関数に気を付ければほぼ問題なす
0937nobodyさん2007/02/12(月) 13:46:55ID:???
http://phpspot.org/blog/archives/2007/02/php2038.html
> この10桁では、2038年以降の日付を表すことは出来ません。
> 9999999999の次は0となってしまい、また1970年1月1日となってしまいます。

PHP ってすごい仕様なんだね。すごいよ!
0938nobodyさん2007/02/12(月) 13:50:26ID:???
>>937
32bitシステム共通の仕様

64bitシステムに移行すれば全て解決
0939nobodyさん2007/02/12(月) 13:52:30ID:???
そもそも 32 ビットしかないのに 9999999999 を表現できるのかよ。
0940nobodyさん2007/02/12(月) 13:57:13ID:???
32bitならtime_t型の表現可能範囲は一般に -2,147,483,648 〜 2,147,483,647 だな。
0941nobodyさん2007/02/12(月) 13:58:42ID:???
ま た p h p s p o t か。
0942nobodyさん2007/02/12(月) 13:59:48ID:???
>>937
ってことは、又2000年問題と一緒で、2038年問題が発生するってことか。
実際には、2038年をデータとして扱い始める時期に問題が発生するだろうから、
2028年ごろに、大問題が発生する可能性があるね。
いやだなぁ、定年間近になって、又2000年の時のように徹夜作業するの…
0943nobodyさん2007/02/12(月) 14:00:56ID:???
> いやだなぁ、定年間近になって、又2000年の時のように徹夜作業するの…

おまいは、何歳まで現場でコーダーする気?w
0944nobodyさん2007/02/12(月) 14:03:54ID:???
>>943
現場でコーダーしていなくたって、管理者として待機しないといけないじゃん。
まぁ、取締役まで出世すれば問題ないけどな。
しかも、責任取らさせる立場だし、ますます憂鬱。
定年間近で懲戒免職とか洒落にならないよ。
0945nobodyさん2007/02/12(月) 14:07:20ID:???
>>944
日本が崩壊する頃のことを今から気にする人も珍しいな。
0946nobodyさん2007/02/12(月) 15:03:25ID:???
そんな時代に手作業でコーディングする仕事なんて残っちゃいないって。
0947nobodyさん2007/02/12(月) 15:17:13ID:???
>>932
とりあえずスクリプトの実行時間を計れ。
スクリプト中のいくつかのポイント(特に怪しい処理の前後など)で
マイクロタイムを計測していく。DB保存でもechoでもいいからそれを確認。

そしたらどこがボトルネックなのかがはっきり分かるでしょ。
0948nobodyさん2007/02/12(月) 15:24:47ID:???
php使えるようになりたいんだけど、なにすればいいの?
htmlとかのときと同じようにとりあえず書いてみることが大事だよね?
まずは掲示板とか作ったりするといいのかな?

教えて。何していいかわからん。
0949nobodyさん2007/02/12(月) 15:32:57ID:???
>>948
書いていく過程でどういうもんか分かると思うよ
とにかく書いて動かしてみろ、話はそれからだ
0950nobodyさん2007/02/12(月) 15:35:34ID:???
>>949
そうだよね。やってみるわ。
0951nobodyさん2007/02/12(月) 15:37:04ID:???
何かこういう順番でPHPを勉強するといいみたいなものってないのかね
自分も本を読んで書いて勉強してきたけど効率悪いんだよね
0952nobodyさん2007/02/12(月) 15:40:19ID:???
楽な方法なんかない
一つの言語がある程度理解できれば他の言語のハードルは下がるが
0953nobodyさん2007/02/12(月) 15:55:02ID:???
>>951
いきなり他人のソース改造から入る方が良かったり、
PHPのマニュアル読む方が良かったり、
市販の解説本読みながらサンプル眺める方が良かったり、
人ぞれぞれ、向き不向きがあるから、
自習用に「万人がこれでバッチリ」って
カリキュラムを組むのは難しいと思われ。
0954nobodyさん2007/02/12(月) 15:59:10ID:???
やりたいことだって人それぞれだしな
0955nobodyさん2007/02/12(月) 15:59:59ID:???
SEXだろ変態(苦笑)
0956nobodyさん2007/02/12(月) 16:05:53ID:???
それ以上に、高山本線の角川と猪谷の間が先。
災害が起こったのは、2004年。もう今年は2007年だよ。
仕事遅すぎ。束はやる気あんのかね。
もう、廃線でいいよ。
0957nobodyさん2007/02/12(月) 16:13:00ID:???
やっぱり列車の基幹システムにPHPは駄目だな
0958nobodyさん2007/02/12(月) 16:20:12ID:YLy/IkNC
セッションの有効期限を24時間にしたいんですが、うまくできません。
↓これだけじゃ駄目なんですかね?他に何を設定する必要があるんでしょうか?
session_cache_expire(60*24);
0959nobodyさん2007/02/12(月) 16:35:25ID:HPZNpRaI
Webprogってなに?
Webrogじゃないの?
0960nobodyさん2007/02/12(月) 16:38:59ID:???
Webプログラムだろ?
0961nobodyさん2007/02/12(月) 16:50:20ID:???
>>958
それ24分
0962nobodyさん2007/02/12(月) 17:04:40ID:???
ファイル名を取得してそれによる条件分岐をさせたいのですが、
$File = basename($_SERVER['SCRIPT_NAME'],".php");
これで拡張子(php)を除くファイル名を取得して、

switch ($File)で条件分岐させようとしたのですが、
「ファイル名に指定の文字列を含んだ場合」という条件で分岐させるにはどうしたらいいでしょうか?

例えば
top_link.php
top_read.php
としたファイルでファイル名にtopが入っている場合は〜 という風に分岐させたいのです。

ひとつアドビスお願いします
0963nobodyさん2007/02/12(月) 17:07:55ID:7LySf7Co
LINUXのみ確認できるfcloseのバグを見つけました。本家に報告するべきですかね?でも英語かけないんです…
0964nobodyさん2007/02/12(月) 17:08:53ID:???
>>962
preg_match
0965nobodyさん2007/02/12(月) 17:09:29ID:???
誰か>>931お願いします
09669622007/02/12(月) 17:11:04ID:???
自己解決しました。なんか正規表現でいけた
0967nobodyさん2007/02/12(月) 17:11:30ID:???
正規表現
0968nobodyさん2007/02/12(月) 17:13:24ID:???
http://jp.php.net/manual/ja/function.strstr.php
注意: もし特定の haystack に needle があるかどうかを調べるだけの場合、 より早く少ないメモリを使用する strpos() を代わりに使用してください。
0969nobodyさん2007/02/12(月) 17:14:01ID:???
ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。 
0970nobodyさん2007/02/12(月) 17:28:34ID:???
>>963
まず日本語で説明してみろ
重要そうだったら英語にして本家に報告するから
0971nobodyさん2007/02/12(月) 17:43:08ID:???
PHPは何とかなるだろうけど、mysqlとかのDBの2038年問題ってどうなってるの?
0972nobodyさん2007/02/12(月) 17:54:57ID:X6UGSTnj
正規表現でメールのヘッダから宛先アドレス部分を取り出す場合の質問です。
preg_match("/To: <(.+?)>\s/", $header, $result);
・・・と書いています。

これはこれでメールの仕様通りだと思いますが、
もしも「To」が「to」だったら? もしも「To:」の後ろにスペースが無かったら??
もしも「< >」が使われていなかったら???

そう考えていくと正規表現を何パターンも用意しなくてはならず、漏れが怖いです。
こういうとき、皆さんはどう対処していますか? この場合の汎用的な正規表現ってあるのでしょうか?
0973nobodyさん2007/02/12(月) 18:01:30ID:???
ファイル名をパースするってどういうことですか?
0974nobodyさん2007/02/12(月) 18:02:38ID:???
>>973
>>1
0975nobodyさん2007/02/12(月) 18:03:00ID:???
正規表現が出ているので、自分の悩んでいるのもお願いします。

以下のコードを実行すると"不一致"と表示されますが、これを一致させたいです。
原因は、"-"であることは分かるのですが、どう表現すれば宜しいでしょうか?
ちなみに、"-"を"\-"とすると、"ereg() [function.ereg]: REG_ERANGE"とエラーがでます。
--------------
$pattern= "[a-z,A-Z,_,\.,-,\?,\+]+";
if (ereg($pattern, "tokyo-") == FALSE) {
  $screenData->displayMessage("一致");
} else {
  $screenData->displayMessage("不一致");
}
--------------
0976nobodyさん2007/02/12(月) 18:11:18ID:???
>>975
if (ereg($pattern, "tokyo-") == TRUE) にする
0977nobodyさん2007/02/12(月) 18:12:06ID:???
>>975
ー は[]の一番最後に書く決まりがある。
"[a-zA-Z_.?+-]+";
0978nobodyさん2007/02/12(月) 18:13:09ID:???
>>972
意外とけっこう難しいね
0979nobodyさん2007/02/12(月) 18:16:45ID:???
>>977
ありがとうございます。
そんな決まりがあったんですね。すごく勉強になりました。
>>976
すみません、サンプルコード誤って逆にしてしまいました。ケアレスです。すみません。
0980nobodyさん2007/02/12(月) 18:18:45ID:???
ここ数回の質問が同一人物にみえる・・・
0981nobodyさん2007/02/12(月) 18:21:18ID:???
>>972
preg_match("/(To|to)[: <]*?(.+?)>?\s/", $header, $result);
こうなるのかな?

もし不安だったら、正規表現で取得するのと別に、ファイルに$headerを全て保存しておいて、自分で試してみればいい。
それで漏れがわかったら正規表現を修正。
地道な作業をしていくのが吉と思われ
09829722007/02/12(月) 18:35:24ID:X6UGSTnj
モード修飾子というものがあるのを知り、
preg_match("/To:\s?<?(.+)>?\s/i", $header, $result);
にしてみたら、かえって悪くなりましたorz

今までマッチしてたはずのものにもマッチしなくなりました。
0983nobodyさん2007/02/12(月) 18:53:01ID:???
>>982
元に戻せば幸せになれるよ
0984nobodyさん2007/02/12(月) 18:56:27ID:???
>>983
元のヤツだと、マッチするのは
To: <[email protected]>
などのみっしょ。

たとえば
To: [email protected]
にはマッチしなくなる。
0985nobodyさん2007/02/12(月) 18:57:44ID:YLy/IkNC
>>961
レスありがとうございます。
ところが、そのレスの内容だと、session_cache_expireは秒指定だと
暗に言ってるようですが、残念ながら、session_cache_expireは分指定です。
マニュアルをご覧になったことがないようでしたら、下を一度ご覧になることをお勧めします。
http://phpspot.net/php/man/php/function.session-cache-expire.html
0986nobodyさん2007/02/12(月) 19:04:09ID:???
>>985
お前もこんなところで質問しないでマニュアルをご覧になる事をお勧めします
0987nobodyさん2007/02/12(月) 19:07:53ID:YLy/IkNC
>>968
レスありがとうございます。
ところで疑問なのですが、ここは質問をするスレッドのように思います。
質問をするなという意味が理解できません。どういった意図のレスでしょうか?
真摯に受け止めたいと思いますので、ご教授願います。
0988nobodyさん2007/02/12(月) 19:09:33ID:???
>>1より
>>PHPに関する質問用スレです。ここならお前の下らない質問に回答があるかも知れません。 
>>
>>まず読め→【PHP マニュアル】http://www.php.net/manual/ja/ ;
0989nobodyさん2007/02/12(月) 19:18:08ID:YLy/IkNC
>>988
それは私へのレスでしょうか?意図が分かりません。
2ちゃんねるにはアンカーという機能があるので、アンカーの使い方を覚えられた方が
よりよい2ちゃんライフを満喫できるかと思います。
また、それが私へのレスだとした場合、それは回答になりません。
僭越ながら、悔しい気持ちは分かりますが、もう少し論理的な思考を身につけられた方が、
よりよいプログラマーへと成長できるかと思います。
09909622007/02/12(月) 19:20:43ID:???
>>964さんどうもです。

>>966は私ではないのでもう一つお力をお貸しください

top_link.php、und_index.php、sid_read.phpの3つのファイルがあったとして
ファイル名先頭の3文字がtopならecho "トップ"、undならecho "アンダー"、どちらでもなければecho "他"とさせたいのです

if文による2分岐はできたのですが、switch構文?を使う場合どこにpreg_matchをいれるのかがちょっとわからなくて、すいませんがアドバイス頂けないでしょうか?
0991nobodyさん2007/02/12(月) 19:21:25ID:???
>>989
>>988の発言の意図が分からないようであれば
もう少し論理的な思考を身につけられた方が
よりよいプログラマーへと成長できるかとおもいます。
0992nobodyさん2007/02/12(月) 19:27:04ID:???
>>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 'その他';
}
}
0993nobodyさん2007/02/12(月) 19:39:01ID:???
>>990
またかよ、自演乙
0994nobodyさん2007/02/12(月) 19:40:27ID:???
>>989
わからないことを聞くときの質問者のマナーを勉強するほうがいいよ。
PHPはまだ早い。
0995nobodyさん2007/02/12(月) 19:47:34ID:YLy/IkNC
>>991
無視させて頂きます。

>>994
あなたを含め、質問に答えられない人が質問に答えるのは間違っています。
しかも、レスが間違ってることを指摘されて、オウム返ししかできないのはいかがなものかと。
私は私よりもスキルの高い方からの回答を待っているのであって、
あなたを含め、スキルの低い方からの回答は待っておりません。
0996nobodyさん2007/02/12(月) 19:55:10ID:???
言外の意味を理解しにくい、人とのコミュニケーションをうまく取れない
周りの空気を読む事が出来ない人をアスペルガー症候群といって
そう言う人はもともとそういう病気なんだからいじめちゃだめだって
先週のマガジンに書いてあったよ
だからYLy/IkNCをいじめちゃだめ
0997nobodyさん2007/02/12(月) 19:55:29ID:???
>>995
とりあえず回答者、またはスレの雰囲気をピキピキさせるような発言は慎もうよ
そうしないと答えられる人も回答しなくなるよ
回答が欲しいならその場に即した態度を取りましょう
0998nobodyさん2007/02/12(月) 20:10:51ID:???
>>995
多分君よりスキルの高い人はいないからもう来る必要ないと思うよ
0999nobodyさん2007/02/12(月) 20:18:16ID:???
さあ盛り上がってまいりました
1000nobodyさん2007/02/12(月) 20:19:37ID:IgA9iRUY
通りすがりが1000ゲッツ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。