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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/02/09(土) 14:51:11ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/

◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0002nobodyさん2008/02/09(土) 14:52:07ID:???
【簡易FAQ】 (1/3)
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プログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
0003nobodyさん2008/02/09(土) 14:52:19ID:???
【簡易FAQ】 (2/3)
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.を参照
0004nobodyさん2008/02/09(土) 14:52:34ID:???
【簡易FAQ】 (3/3)
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
0005nobodyさん2008/02/09(土) 14:52:52ID:???
関連リンク
■本家マニュアル   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/
0006nobodyさん2008/02/09(土) 14:53:56ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/
【PHP】下らねぇ質問はここに書き込みやがれ 62
http://pc11.2ch.net/test/read.cgi/php/1199956159/
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
【PHP】下らねぇ質問はここに書き込みやがれ 59
http://pc11.2ch.net/test/read.cgi/php/1195204145/
【PHP】下らねぇ質問はここに書き込みやがれ 58
http://pc11.2ch.net/test/read.cgi/php/1194084457/
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/
【PHP】下らねぇ質問はここに書き込みやがれ 56
http://pc11.2ch.net/test/read.cgi/php/1192092941/
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/
【PHP】下らねぇ質問はここに書き込みやがれ 54
http://pc11.2ch.net/test/read.cgi/php/1189309377/
【PHP】下らねぇ質問はここに書き込みやがれ 53
http://pc11.2ch.net/test/read.cgi/php/1188047468/
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
0007nobodyさん2008/02/09(土) 23:19:21ID:???
                     ,   ─=、─-=ニL」_
                    /二ニ=‐-=ニ、\    ,>
                  ,ムイ/  .}、    ヽ. ヽ  ァ′  _人_人_人_人_人_人_
                 /   /    ノ,ト、 ,ィ ,ハ. ∨ト、   )
 (\ __           ∧  ;'  ,ノlノj,ィ込ァ`! ,), V \  ) 下らねぇ質問は
. ,f\孑=ァ),__          | ! i,ァ示. ノ'ノ ゞr'リ リ   ! |    \)
〈ヾ、ム,. 》 :|| \        |!、ト、ト弋リ 、      l  ,ノ※     )  ここに書き込みやがれ!
. `ー'─(,ムイ'   \    ,. -'‐ \\   ア`ヽ _ムイi   !      )
     \     `  7マ'7   | ヽ.≧ ゝ._ノ ,: ィ´|.※ |     )    ですぅ!
.        `  ,     i ,ハ}   |.※ | >x、. イ  ! i|.   !     )
          `7ぇxl/  ,    !  i  《 ,≫vヘ.)、i),  !     ⌒Y⌒Y⌒Y⌒Y⌒Y
          /  /    |_ i.※ i.  《|{,//iヘ.∨), ∨   ,r- 、
            /  /     ! )`i   !,  《!_/i |《ヘ.∨), ∨ ,Xヘ. }
        /  ム._.  !/ .|.※ |ヘ.  《  i | 《.ヘ.∨ヘ,.マ^ヽヽノ
        ‘ーx,     i  !  |.   | ',. 《.  ! i 《. | |  メ.}i;xr≦
           ∨  ヽ. |   |.※ |  ∨《  Li  《 L! :|. |    |
            \.  ∨   |.   |  〈 》〜〜〜''〜 | i    !
             \/   .!.※ ! ,/」Lニ=- |!>X<| :| i    !
             //     ¨¨¨’ >厂    K  >' :| |、 ,ノ
0008nobodyさん2008/02/09(土) 23:42:21ID:???
>>1 死ね。テンプレ変えるしろくでないやつ >>1 が立てちゃったんだな

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0009nobodyさん2008/02/09(土) 23:43:59ID:???
建て直すか?
0010nobodyさん2008/02/09(土) 23:56:56ID:???
2chのルール的にたてなおすのはマズイ。
とりあえずつかうべ。
トリップは嫌われるしそれだけで荒らしだすやついるから非推奨。
0011nobodyさん2008/02/10(日) 00:13:48ID:???
なんでそんなにIDのみに固執するんだ?
IDIDって煩い奴は煽りがしにくくなるからとしか見えないのだが

>>10
トリップ嫌われるっつーのは変なコテが沸く所にあるんだろ
一時的なトリップは識別として使えるんだから問題ないと思うが?

それに変なコテ沸けばNG設定で終わりだし
0012nobodyさん2008/02/10(日) 00:33:14ID:???
>>11だな。IDのが手間かからんし、ageるからメ欄を空けたIDでいいとは思うが
別にトリップ使って聞くのはなんら問題ない。
それより質問者がちゃんとわかるほうが大事。
0013nobodyさん2008/02/10(日) 01:04:04ID:???
11はバカだな。今までのスレの流れも解らんのか。
こういう奴には何を言っても無駄だな…。
0014nobodyさん2008/02/10(日) 01:11:13ID:???
IDに固執する人のレスってまともなレスが無いんだけど
もうちょっと何でトリップがダメなのか言ってくれ
0015nobodyさん2008/02/10(日) 01:29:37ID:???
別に前スレでトリップでもいいって言ってんじゃないか
もう少し煽り耐性をつけてください
0016nobodyさん2008/02/10(日) 03:29:25ID:V6SpMkY1
ある文字がカタカナかどうか調べる方法を教えて下さい
コードはUTF-8です
0017nobodyさん2008/02/10(日) 04:01:26ID:???
mb_convert_kana で変換されてたらカタカナってのは駄目か?
ttp://jp.php.net/manual/ja/function.mb-convert-kana.php
0018nobodyさん2008/02/10(日) 04:03:23ID:???
ごめん。変換されてなかったら…だなw
素直に mb_ereg 使った方がいいかも
0019nobodyさん2008/02/10(日) 04:04:03ID:???
それはグッドアイデアですね
正規表現でやるより速そう
ありがとうございました
0020nobodyさん2008/02/10(日) 04:08:40ID:???
>>18
確かによく考えたらシンプルなロジックでは出来なそうですね
むーん
0021nobodyさん2008/02/10(日) 04:22:55ID:???
文字のコード範囲調べた方が速い
0022nobodyさん2008/02/10(日) 04:43:35ID:???
php カタカナ判定
でググッて自分で検証しろ
これぐらいやってから質問したほうが自分のためだよ
0023nobodyさん2008/02/10(日) 12:40:04ID:???
UTF-8のカタカナ
(\xe3(\x82|\x83)[\x80-\xbf])*
0024nobodyさん2008/02/10(日) 19:37:02ID:XCnCYEX+
PEAR Mailがうまく動作せず、ログも吐いてくれないので困っています。助けてください。
OS:Red Hat系,SMTPサーバ:Postfix
PHPのソース
<?php
require_once("Mail.php");
$params = array(
"host" => "localhost",
"port" => 25,
"auth" => false,
);

$mailObject = Mail::factory("smtp", $params);
$recipients = "orenchi@mail.jp";
$headers = array(
"To" => "to",
"From" => "from",
"Subject" => "Test Mail"
);
$body = "This is test mail";
$mailObject -> send($recipients, $headers, $body);
?>
require自体はうまくいきました。25番ポートが開放されていることも確認しました。
恐らく$paramsのhost名が間違っているかPostfixの設定がダメなのか、のどちらかだと思われます。
PHPファイルとpostfixが同一サーバ内だからhost=localhostでいけると思ったのですが、main.cfのhostnameパラメで指定したFQDN
に合わせる必要があるのでしょうか。それとも他の設定ミス・・・?
0025nobodyさん2008/02/10(日) 20:04:57ID:???
http://pc11.2ch.net/test/read.cgi/php/1201425479/
前スレ埋めようぜ
0026nobodyさん2008/02/10(日) 23:55:39ID:???
>>24
>PEAR Mailがうまく動作せず
っておい
>>1の質問する時の注意の3番目を1000回復唱してから前スレに書き込め
0027nobodyさん2008/02/11(月) 00:14:33ID:???
で、前スレでマルチ死ねって言われてスルーかなw
0028nobodyさん2008/02/11(月) 03:20:16ID:???
テンプレ見て思ったんだが、画像を保存する場合にファイルかDBか自由って書いてあったが、
プロとしてやるならソレはおかしい。

動的な画像もファイルに保存するというのは、少し考えればまずいってことが分かるはずだが。
0029nobodyさん2008/02/11(月) 04:10:06ID:smM9I7ZN
pearが使えないのでphp5.2から再インストールしていたら、mbstringが使えなくなりました。

症状としてはphpinfoでmbstring関連のワードが出てきませんし、mb_language() でもFatal errorになってしまいます。
php.iniは;外したりなど行なってますし、以前使っていたphp5のphp.iniバックアップも試してみました。
また、以前は全く問題無く使えていました。ただ、php5だったのは確かですが、バージョンまでは分かりません。

使用OS:win98、Apeche2です。

WINDOWSフォルダ内のphp.iniは色んなサイトのを10種類くらい試してみました。現在は下記のようになっています。
extension=php_mbstring.dll
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8 などなど。

mysqlもinfoにないです。extension=php_mysql.dllコメントアウト済み。

他にチェックすべき点はありますでしょうか?
0030nobodyさん2008/02/11(月) 04:13:00ID:???
違う場所のphp.ini読んでる
0031292008/02/11(月) 04:22:13ID:???
>>30
ありがとうございます。
バックアップ用php.iniなど検索して、windowsフォルダ以外全て消してみましたがダメでした。
0032nobodyさん2008/02/11(月) 05:35:45ID:???
それだけじゃ解らんな。
1. 他に指定してる extension との絡み
2. php -i | grep Load での php.ini の読まれる所
3. extension_dir

とか、色々考えられるな。その程度の環境晒しじゃ何とも言いようがない。
0033nobodyさん2008/02/11(月) 11:06:19ID:???
>3. extension_dir
パスを切るか、dllあるフォルダに移動するだけで正しく動いたらこれだろうな。
0034nobodyさん2008/02/11(月) 11:14:05ID:???
php.ini ファイルを読み込んでいないか疑っているのなら、まずはphpinfo の 
Configuration File (php.ini) Path を確認してみては?

あと apache経由と直に実行するのでは、使用される php.iniが違ったりするから注意。

具体的な情報もってるわけじゃないけど OSがwin98ってのは気になるなぁ。
0035nobodyさん2008/02/11(月) 12:19:01ID:???
以下のサイトにランダムな文字列を生成するサンプルが載っているのですが、rand(48,120);としているところが何故rand(48,122);じゃないのかが解りません。
これはサンプルが間違っているんでしょうか。
0036nobodyさん2008/02/11(月) 12:19:47ID:???
すいませんURL載せ忘れました。。
http://jonasjohn.de/snippets/php/rand-str.htm
0037nobodyさん2008/02/11(月) 12:19:55ID:???
質問です。
$abc = $_POST['abc'];
$edf = $_POST['edf'];

$stock = array ($abc,$edf);

$fp = fopen('data.csv','a');
fputcsv($fp, $stock);
fclose($fp);

フォームから投稿された変数abcとedfを配列stockに格納し、
csvファイルに書き出したいのですが、
変数には日本語が入るためその中身を" "で括って保存したい場合、
もっともシンプルに行うにはどのような処理を追加したらいいでしょうか?

正規表現などでそれぞれの変数の文字列を置換しても出来ると思うのですが、
よろしくお願いします。
0038nobodyさん2008/02/11(月) 12:33:18ID:mbEbK9iH
すみません、ID出し忘れです。
0039nobodyさん2008/02/11(月) 12:56:56ID:???
>>35
文字コードに対応するの出すんなら122のが正しいだろうな。
それに記号だったら再計算とかかなり無駄なことしてる>>36のは。
0-9A-Za-zだけのテーブル作ってそこから拾えばいいのに。
0040nobodyさん2008/02/11(月) 13:22:11ID:???
>>37
こういうやり方はダメなの?

$fp = fopen('data.csv','a');
$line = '"' . $abc . '","' . $def . '"' . "\n";
fwrite($fp,$line);
fclose($fp);
0041292008/02/11(月) 14:31:04ID:???
>>32-34
ありがとうございます。今の状態は
http.conf に PHPIniDir "C:/php"で、php.iniをc:\phpに移動(他は全部削除)
Configuration File (php.ini) Path no value←これは不味いですか?Loaded Configuration File C:\php\php.ini
C:\>php -i | grep Load
File STDIN:
Loaded Configuration File => C:\php\php.ini

php.iniは
default_charset = UTF-8
extension_dir = "c:/php/ext" (php/ext内に下記dllファイル確認しました)
extension=php_mbstring.dll
extension=php_mysql.dll

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
0042nobodyさん2008/02/11(月) 14:48:37ID:???
ひょっとしてその iniファイルってバージョンアップ前のを修正して使ってる?
自分は、5.0 -> 5.2でそれをやったときに動作しなかった記憶がある。(原因は知らない)
0043372008/02/11(月) 14:51:02ID:mbEbK9iH
>>40
ありがとうございます。
fputcsvを用いない場合はそれで希望通りの表示がされるようですね。
ただ配列の1変数として変換を行いたい場合の処理も教えて頂けると助かります。

その後色々試してみたのですが、
$abc = '"'.$_POST['abc'].'"';  //abcに「あ」を送信した場合

この時、$abcに"""あ"""が入ってしまうのですがこれは何故でしょうか。
'"'.で文字列を付加したことによって外側の""がつくようなのですが。
実際に文字列を付加しなくても、外側を""で括れる方法などありましたらお願いします。
0044nobodyさん2008/02/11(月) 14:53:05ID:???
>>43
foreachやらarray_mapやら使えばいくらでも好きなようにできるんじゃね
0045nobodyさん2008/02/11(月) 15:05:25ID:???
>>41
php.ini の記述はほんとに *それだけ* か?
php_mbstring.dll の前に違う extension の指定とかないのか?
0046nobodyさん2008/02/11(月) 15:13:44ID:???
>>43
fputcsv()はフィールド値が括る必要がある場合は勝手に括る
0047292008/02/11(月) 15:27:44ID:???
>>42
今は新しい方のiniファイルを使ってます。

>>45
extension=ほにゃららってところですよね?
extension=php_mbstring.dll
extension=php_mysql.dll
以外は全て「;」がついてます。

ところで、今mbstring使えるようになりました。
状況としては最初からやりなおそうと思って、Windows内php5ts.dllを削除しただけです。
phpのインストールサイトに、「php5ts.dll」をwindowsにコピペとありますが、まだしていません。でもphp infoは表示されます。
これって大丈夫なのでしょうか?いちおう今からコピペ&再起動しますが…
また、Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared"
となっているのですが、gdがあるのは普通ですか?あと、本当にmbstringが使える場合、上記にmbstringって出てきませんか?
昨日ググってたら、Configure Commandには出るのに、mbstring項目がないって書いてあるサイトがあったような気がします。

0048292008/02/11(月) 15:45:56ID:???
色々と不安ですが、使えるっぽいです。phpinfoは相変わらずです。今からまたググってみます。
php自体はビクつきながら、このまま使ってみます。皆様、色々とありがとうございました。
0049372008/02/11(月) 17:17:08ID:mbEbK9iH
>>46
色々試したみたところ、変数内に"か半角スペースのある場合のみ自動的に"で括るようですね。
取り合えず全ての変数に$abc." "と半角スペースを付加して対応することにします。
ありがとうございました。
0050nobodyさん2008/02/11(月) 17:33:57ID:???
>>47
もういらんレスかもしれんが、dllって普通system32に入れるんじゃないの?
0051nobodyさん2008/02/11(月) 17:35:23ID:???
んなもん用途しだい。
特定のアプリからしか使わないなら、アプリのフォルダでいい。
0052nobodyさん2008/02/11(月) 17:55:09ID:???
DLL Hellって聞いたことあるよね
0053nobodyさん2008/02/11(月) 19:14:29ID:???
>>52
デリヘル?
0054nobodyさん2008/02/11(月) 19:15:16ID:???
質問です。windows版のPHPにAPCをインストールして
動作させるにはどうすればいいのでしょうか。
OS:windows xp、PHPのバージョン:5.2.5
目的:ファイルのアップロードの進捗を表示できるようにしたい

extensionディレクトリにphp_apc.dllが既にあったのでラッキー、
後はphp.iniだけと思ってextension=php_apc.dllのコメントアウトをはずして
apc.rfc1867 = Onを書き込み、apacheを再起動してサンプルを動かすと
なぜかエラーでapacheが終了。サンプル自体は問題なさそうなので
APCがうまくインストールできてないのが原因だと思うのですが・・・
0055nobodyさん2008/02/11(月) 20:21:17ID:???
おいおいカーネルぶっ壊れたじゃねーか。
0056nobodyさん2008/02/11(月) 20:39:51ID:???
>>50
使うのだけ入れることはあるけど、PHPのはえらい数あるからバージョン管理ややこしくなるし
extに入ったままにしといたほうが更新したときに勝手に最新バージョンになるんじゃないかい。
0057nobodyさん2008/02/11(月) 22:12:41ID:bpntg1wU
PHP5.2って$_GETの$Keyword取得できないんですか?
0058nobodyさん2008/02/11(月) 22:47:39ID:bpntg1wU
できたのですが、
$_GET['Keyword']
て、入力されたキーワードは
$Keywordで表示できるんじゃないんですか?
$Keyword= $_GET['Keyword'];
とすれば表示されたからいいのですが
5時間悩みました
php5.2です
0059nobodyさん2008/02/11(月) 23:04:58ID:???
>>58
前はできたけど今はiniいじらないとできないようになった。
セキュリティ上の都合かな。
0060nobodyさん2008/02/11(月) 23:43:18ID:???
ID:???ってどうやるの?
0061nobodyさん2008/02/12(火) 00:07:29ID:wvmjAnme
$lockfp = fopen(ロックファイル名,'w');
while(!flock($lockfp, LOCK_EX)){
usleep(250000);
}
$result = mysql_query("SELECT COUNT(no) as count FROM テーブル名");
if (!$result) {
die(mysql_error());
}
$row = mysql_fetch_assoc($result);
$i = $row['count'];
$i++;
$sql = "INSERT INTO $tselect (no, 内容) VALUES ('$i', '内容')";
$result_flag = mysql_query($sql);
if (!$result_flag) {
die(mysql_error());
}
flock($lockfp, LOCK_UN);
fclose($lockfp);

これで$iが重複することは無いのか教えてください
0062nobodyさん2008/02/12(火) 00:13:38ID:???
ダメすぐるwww
0063nobodyさん2008/02/12(火) 00:18:43ID:wvmjAnme
まったく分からないのでどうかご教授お願いします
0064nobodyさん2008/02/12(火) 00:27:13ID:???
>>63
insertする$iが存在しないか確認しないと重複するかどうかわかるわけないし

ダメっていうのはすべてが問題外ってことやろ
質問する前にオナニーしておちつけ
0065nobodyさん2008/02/12(火) 00:30:37ID:wvmjAnme
ああ、すまない
説明不足だった

iは1から連番でつけていてcountで取得した番号=最終行という形になってる
データの削除はしたくないからテーブルにフラグをつけてデータが有効か無効か判断してるから番号の欠落とかはなしと考えてる
0066nobodyさん2008/02/12(火) 00:32:14ID:???
ごめん、”iは”じゃなくてテーブルの番号項目ということで
0067nobodyさん2008/02/12(火) 00:38:36ID:???
>>61
あまりPHPに詳しいわけじゃないんだが、$tselectって何?
PHPでは何か意味のある変数?
0068nobodyさん2008/02/12(火) 00:41:37ID:wvmjAnme
置き換え忘れただけの変数だ
テーブル名ということでお願いします
0069nobodyさん2008/02/12(火) 00:44:54ID:???
そんなコードを晒すなよ…。
0070nobodyさん2008/02/12(火) 01:02:47ID:???
なぜDBでファイルロック・・・
0071nobodyさん2008/02/12(火) 01:05:47ID:???
あらあら、うふふ
0072nobodyさん2008/02/12(火) 01:07:30ID:wvmjAnme
データベースに追加処理してるんだが

データの行数取得

データの追加

という形でやってるのだが
同時にアクセスがあった場合取得と追加のタイミングで
iが10とすると
1が10という数値を取得して11を追加する
そのときに2も10という数字を読んで同じく11を追加することになるんじゃないのか?
そこでファイルで排他ロックをして終わったらロック解除で自分がロックできない場合は処理を中断というのを想像してたんだが
0073nobodyさん2008/02/12(火) 01:18:43ID:???
テーブルのcountにプライマリキーかユニーク属性つければ重複はないよ
0074nobodyさん2008/02/12(火) 01:19:51ID:???
あぁすまん設定する所は
$tselectテーブルのnoにたいしてな
0075nobodyさん2008/02/12(火) 01:21:35ID:???
てか、そういうのはトリガとかストアドでやると思うけどなぁ
0076nobodyさん2008/02/12(火) 01:24:11ID:???
mysqlのバージョン書いてないからトリガー等に関しては何ともいえないな
0077nobodyさん2008/02/12(火) 01:25:09ID:???
普通serial型使うだろ。
0078nobodyさん2008/02/12(火) 01:26:25ID:???
ALTER TABLE `テーブル` ADD PRIMARY KEY ( `no` )でSQLのほうでの重複は大丈夫になったとは思うんだけど
PHP側でINSERTでリトライさせるには普通に行数取得からINSERTをwhileループでいいのかな?
0079nobodyさん2008/02/12(火) 01:28:44ID:???
というかデータベースの基本的な使い方がわかっていない気がする
0080nobodyさん2008/02/12(火) 01:29:00ID:???
しかし条件によっては無限ループになりそうなwhileとかよく使うねw
0081nobodyさん2008/02/12(火) 01:30:06ID:???
insertをwhile・・・あらあら
0082nobodyさん2008/02/12(火) 01:31:59ID:wvmjAnme
すまない最近触り始めたの最近だからまだまだ分からないことばかりなんだ…
もう一度調べなおしてから書き直してみる

いろいろアドバイスどうもです
0083nobodyさん2008/02/12(火) 01:33:46ID:???
>>82
がんばってください。というかIDがなんか惜しい
0084nobodyさん2008/02/12(火) 02:09:52ID:fBU5wm/g
質問します
file_exists()を使ってるんですけど、絶対に存在してるファイルを対象に
してもfalseが返ってきます
マニュアル見たらセーフモードが関連してるというのでそこも確認したら
OFFになっていて、問題なさそうです
何が原因でしょうか? 
0085nobodyさん2008/02/12(火) 02:19:27ID:???
>>84
ぐだぐだ言わずに(ry
0086nobodyさん2008/02/12(火) 02:59:11ID:???
具体的にどういうコード書いたのさ
それ出したほうが下手に説明するより早い。
0087nobodyさん2008/02/12(火) 03:21:03ID:???
>>84
絶対に間違っていないなら、PHPが動くはず
つまりなにかおかしいか間違っているんだよ

試しにソースと同じところにあるファイルとかで試してみたら?
あとはOSとか環境書くとさらによし。
0088842008/02/12(火) 03:22:15ID:fBU5wm/g
>>85-86 ありがとうございます
$theFile="../../../sample.jpg";
if(file_exists($theFile)){
echo "ファイルあったよ";
}else{
echo "ファイルなかった";
}
これだけです。 指定したファイルが存在してるのは確認済みです。
0089nobodyさん2008/02/12(火) 03:24:06ID:???
>>88
ソースと同じ場所にsample.jpgを置いて。
$theFile="sample.jpg";
で試して味噌
0090nobodyさん2008/02/12(火) 04:29:19ID:???
mb_strcutってバグってね?
echo mb_strcut("あいう",0,2,"UTF-8");
→何も表示されない
mb_substrだったら正常に動作した
php5.2.4だけど
0091nobodyさん2008/02/12(火) 05:18:27ID:???
>>8
0092nobodyさん2008/02/12(火) 08:11:27ID:S5CbnauF
array_uniqueの重複していた値の配列を取得したいのですが
どうするのがいいですか?
0093nobodyさん2008/02/12(火) 08:28:24ID:???
array_diff
0094nobodyさん2008/02/12(火) 08:46:22ID:???
ごめん。こっちかもしれん
array_intersect
0095nobodyさん2008/02/12(火) 08:59:36ID:uKoPznXF
Windowsでの絶対パス
@ file:///c:/xampp/htdocs/Project/require.php
A c:/xampp/htdocs/Project/require.php
B c://xampp/htdocs/Project/require.php

どれが一番正しいのでしょうか。
BだとSmartyのテンプレートディレクトリまでのパスでエラーが生じたので、
Aに直すとうまくいきました
0096nobodyさん2008/02/12(火) 09:05:17ID:???
>>95
dirname(__FILE__);
で表示されるものにあわせればOK
0097nobodyさん2008/02/12(火) 10:42:23ID:???
このスレは優しい人ばかりでだいすきです
0098nobodyさん2008/02/12(火) 10:43:56ID:uKoPznXF
>>96
有賀と御座います。
確認してみたところ、
C:\xampp\htdocs\Project
でした。
0099982008/02/12(火) 10:59:27ID:uKoPznXF
「有難う」の誤変換すみませんorz

ところで、英数字の先頭のみを大文字にするような関数ってありませんでしたっけ・・・?
0100nobodyさん2008/02/12(火) 11:00:52ID:r62/Kn46
原因が分からないため、どこに投稿すれば分からなかったのですが、
何か手掛かりがつかめればと思い投稿しました。

phpでサイトを構築しているのですが、
アクセスログを見ると、不審なログが不定期に記録されています。

たとえば、/foo/index.phpにアクセスがあると、その直後に
数秒間隔で、/index.phpへのアクセスログが数件残ります。

全てのユーザーではなく、全体の数パーセントの人です。
裏でアクセスするようなajaxのような仕組みはありません。
プログラムのミスなのかどうかよく分からないのですが、
どこ当たりがおかしいと思われますでしょうか?
宜しくお願いします。
0101nobodyさん2008/02/12(火) 11:11:54ID:???
>>99
ucfirst
■ このスレッドは過去ログ倉庫に格納されています