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

このエントリーをはてなブックマークに追加
1nobodyさん
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
2nobodyさん:2008/03/16(日) 17:23:57 ID:???
【簡易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)、起動&再起動あたり
3nobodyさん:2008/03/16(日) 17:24:08 ID:???
【簡易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.を参照
4nobodyさん:2008/03/16(日) 17:24:20 ID:???
【簡易FAQ】 (3/3)
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
5nobodyさん:2008/03/16(日) 17:24:55 ID:???
関連リンク
■本家マニュアル   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/
6nobodyさん:2008/03/16(日) 17:25:21 ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/
【PHP】下らねぇ質問はここに書き込みやがれ 64
http://pc11.2ch.net/test/read.cgi/php/1202536271/
【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/
7nobodyさん:2008/03/16(日) 17:31:12 ID:???
■関連スレ
くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/
PHP関連の書籍 第5版
http://pc11.2ch.net/test/read.cgi/php/1203696253/
【PHP】フレームワーク CakePHP 3ホール目【本命】
http://pc11.2ch.net/test/read.cgi/php/1205475360/
【PHP】 Smarty 隔離スレ 【テンプレート】
http://pc11.2ch.net/test/read.cgi/php/1201879269/
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
【PHP】フレームワークについて語るスレ10【総合】
http://pc11.2ch.net/test/read.cgi/php/1202521438/
【PHP】Ethna part.2【国産フレームワーク】
http://pc11.2ch.net/test/read.cgi/php/1186096518/
ZendFramework Part2
http://pc11.2ch.net/test/read.cgi/php/1204726884/
フランチョスとsymfony
http://pc11.2ch.net/test/read.cgi/php/1201177567/
最強のPHPエディタはなに?
http://pc11.2ch.net/test/read.cgi/php/1133785416/
8nobodyさん:2008/03/16(日) 17:49:38 ID:???
9nobodyさん:2008/03/16(日) 21:29:23 ID:???
お約束ってことで。>>1shine

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
10nobodyさん:2008/03/17(月) 00:31:39 ID:???
                 , .-==== - 、
                  ∠   `^`^~^`ヽ、 \
              ,∠ -‐……‐- 、    \ \
             / .::.::.::.::.:..;.:.:.:..:.:..`ト、    \ \
            / . .::/.:/::.::.:/.::.::.:://.:l.:|:ヽ     i  \
              / . ::./::/:.:::.:/.::.:::,.イ/.:::l.:|.::..ヽ    i    \
           i.:i.:.:l.l.::l「.`メ.:.:///∠ l.:|.::i.::.ヽ  i   , ィ´
           |::|.::|:l:::lレく:/ // /⌒i.:ト、l.::.:::.〉 i / /
           |::|.::|:l:::l1 トミ   ,ィr==ト、l:.::.:/  レ'´ .:/
          lハ:::ト、::l」_リ    i l.:.:.:. リ l/:/ ,f.: .: .:.:i   下らねぇ質問は
               l/ ヽ' ' ' '     ┴ー'//  ,f: : : : :.:|   ここに書き込みやがれ
           rソ   ハ、   「`7  ' '∠ イ  ,f: : : : : : :|   チビ人間
           rソ  ノ.:i:.:.> ‐一 ´_⊥:{  {.: : : : : : .:|
            rソ  ノr'77´ 二`ニ´  ̄`{  { : : : : : : |
         rソ   ノr'77 /^フ介ト、     {  { : : : : : :.|
        ,f  ノ.:r'77\ //j,。l l〉〉   ,r.{  ト、 : : i : |
11nobodyさん:2008/03/17(月) 04:09:43 ID:???
php.iniのmbstringのセクションを以下のようにしました。
かえた方がいいところがあれば教えて下さい

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding =UTF-8
mbstring.http_input = auto
mbstring.http_output =UTF-8
mbstring.encoding_translation = Off
mbstring.substitute_character = none
mbstring.func_overload = 0
mbstring.strict_encoding = Off
12nobodyさん:2008/03/17(月) 05:17:29 ID:???
いつになったら元のテンプレにかわるんだか
13nobodyさん:2008/03/17(月) 05:52:26 ID:l3H5wOjF
外部から受け取った値$_POST['hoge']を、
<a href〜>でリンクさせた文字列に変換して返す関数があるのですが、
XSS対策にエスケープするのは、関数内でやるか、echoしたときにやるか、
どちら側でやったほうがいいのでしょうか?

function hoge($str) {
  return "<a href=\"$str\">$str</a>\n";
}

echo hoge($_POST['hoge']);

上記がXSSなので、

function hoge($str) {
  $escape = htmlspecialchars($str);
  return "<a href=\"$escape\">$escape</a>\n";
}

と関数内でエスケープ済みのを返すか、

echo htmlspecialchars(hoge($_POST['hoge']);

とechoの時点でエスケープするか。

どっちがいいのでしょう?よろしくお願いします。
1413:2008/03/17(月) 05:55:25 ID:???
よくよく考えてみたら、echoのときにだすと、<>もエスケープされてしまいますね。
関数内で処理してそれを普通にechoするしかなさそうですね。
自己解決しました。どうもスレ汚しすみません・・・
15nobodyさん:2008/03/17(月) 06:03:38 ID:???
>>11

[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding =UTF-8
mbstring.http_input = pass
mbstring.http_output =pass
mbstring.encoding_translation = Off
mbstring.substitute_character = long
mbstring.func_overload = 0
mbstring.strict_encoding = On
16nobodyさん:2008/03/17(月) 07:26:35 ID:???
>>15
ありがとうございました
mbstring.strict_encodingとは何ですか?
ググってもそれが何かがはっきり書いているページが見つかりません
17nobodyさん:2008/03/17(月) 07:46:48 ID:Qd55gHoh
PHPを勉強しようと思っているのですが
本を買うお金もないのでネットで勉強しようかと思います。

俺はここを参考にしてた!とかお勧めのPHP講座サイトはあるでしょうか。
当方プログラミングの経験は無く、0からはじめることになりまず
18nobodyさん:2008/03/17(月) 07:47:01 ID:???
php.ini-recommendedに、以下の説明があります
; enable strict encoding detection.
;mbstring.strict_encoding = Off

一方、phpinfoは以下のようになっています
mbstring.script_encoding no value no value
mbstring.strict_detection Off Off

なんか、php.ini-recommendedの記述って
script_encodingとstrict_detectionがごっちゃになってないですか?
つまり、mbstring.strict_encodingという属性は、実際にはないのでは
ないでしょうか?
19nobodyさん:2008/03/17(月) 08:10:14 ID:???
やはりmbstring.strict_encodingは
php.ini-recommendedの中だけに記述されてある
幻の属性のようですね
ジャップにしか関係ないことなので手抜きされているのでしょうか。

mbstring.internal_encodingとmbstring.script_encodingって
どういう違いがあるのでしょうか?
20nobodyさん:2008/03/17(月) 08:36:06 ID:???
>>17
>>1もよめないのか
このスレで推薦するサイトはただ1つ公式マニュアルのみ
21nobodyさん:2008/03/17(月) 13:27:38 ID:???
>>17
その手の質問きたら俺は毎回ここをオススメしてる
宣伝と思われそうだがw

http://www.phppro.jp/school/phpschool/

初心者には普通にオススメ
あと何か作ってみたいものを見つけるのが良いんじゃないかな?
22nobodyさん:2008/03/17(月) 13:46:19 ID:Qd55gHoh
>>20
すいません。
テンプレのものは少し敷居が高かったみたいでした。

>>21
ありがとうございます!
参考にします!
23nobodyさん:2008/03/17(月) 15:05:48 ID:???
なんという自演宣伝
2422:2008/03/17(月) 16:28:07 ID:Qd55gHoh
すいません。さっそく躓いてしまいました。
http://www.phppro.jp/school/phpschool/vol1/4

http://localhost/hello.phpにブラウザで見てみると
Object not found! と表示されてしまいます。

htdocsに入れたので間違いないと思います。
ちなみにXAMPPコントロールパネルは
Apacheがチェックなしで起動になっている状態
MySqlがチェックありで起動になっている状態です。

どういった原因が考えられるでしょうか
25nobodyさん:2008/03/17(月) 16:34:32 ID:???
>>24
まさか、拡張子非表示じゃないよね?
そのファイルを右クリックしてプロパティでファイル名を確認してみろ
2622:2008/03/17(月) 16:43:35 ID:Qd55gHoh
>>25
ありがとうございました。
ご指摘の通りでした。

こんな単純なミスをして申し訳ないです。
27nobodyさん:2008/03/17(月) 20:09:06 ID:???
>>22
くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/

こっちのスレのがオススメ
同じぐらいの人がちらほら居る
28nobodyさん:2008/03/17(月) 23:57:52 ID:d6AL+8ck
$last_record = array();
foreach($data as $record) {
$last_record = array_diff($record,array());
print_r($record, true);
print_r($last_record, true);
}

上記、1つめのprint_rには配列が表示されますが、
2つめの出力は空の配列になってしまいます。

通常の代入で上手くいかなかったため
array_diff をかましてみましたがそれでも現象は変わりません。

配列と参照渡しに関する挙動を疑って調べてみましたが、
関係ありそうな文献は見つかりませんでした。
原因が分かるようでしたら助言お願いいたします。
29nobodyさん:2008/03/18(火) 00:22:25 ID:???
PHPでデータベースに接続するコードを書いたのですが
これはどこにアップすればいいのでしょうか?
public_html 外のディレクトリにアップしたらいいのでしょうか?
セキュリティが心配です><
30nobodyさん:2008/03/18(火) 00:27:46 ID:???
ドキュメントルート配下にhtmlで書けばok
3129:2008/03/18(火) 00:48:08 ID:XUFQaeko
.htaccess で拡張子をPHPじゃなくHTMLにすれば大丈夫ってことですね?
32nobodyさん:2008/03/18(火) 01:09:45 ID:???
ゴメン嘘
33nobodyさん:2008/03/18(火) 01:10:52 ID:???
>>28
print_rは配列ポインタが終端まで行くのでresetしましょう
つーかdebugで表示させるならprint_rじゃなくvar_dump使え

あと通常の代入で上手くいかなかったって
どう上手くいかないの?

本来やりたい事は$last_recordに何か追加でを代入したいって事だよね?
34nobodyさん:2008/03/18(火) 01:13:47 ID:???
>>29
/public_html/
        index.php

/lib/
         db.inc.php

こんな感じで
index.phpからdb.inc.php呼ぶとかで良いんでない?
本当ならlibと同階層アプリケーションディレクトリ作って
そこにあるindex.phpのシンボルをpublic_htmlに貼るのが良いけど
35nobodyさん:2008/03/18(火) 01:18:56 ID:???
996 :nobodyさん :sage :2008/03/18(火) 00:13:59 ID:???
前々からphpとperlとcでどれだけのパフォーマンスが違うのか、
よく分からなかったので、メジャーな処理20パターンで試してみた。
が、絶句した。なんで、ファイル処理がこんな実装になっているのかと・・・

前スレのこの乞食は反省しろ
36nobodyさん:2008/03/18(火) 01:43:20 ID:???
cとphpを比べてる時点で・・・
phpはcで作られてるんだからcより遅くて当たり前
37nobodyさん:2008/03/18(火) 02:07:53 ID:???
RubyはRubyで作られています
38nobodyさん:2008/03/18(火) 02:08:01 ID:Hp4TM78s
PHP+SQLiteの構成なのですが

「データを削除→登録→削除→登録」してるとSQLiteのrowidがぐちゃぐちゃになるので整理
したいのですがいい方法はありませんでしょうか?

もしくは上から〜行から〜行までというように指定する方法はありませんでしょうか?

なにとぞよろしくお願いします
39nobodyさん:2008/03/18(火) 02:10:29 ID:???
削除しない
40nobodyさん:2008/03/18(火) 02:18:07 ID:???
>>33
レスありがとうございます。

>print_rは配列ポインタが終端まで行くのでresetしましょう
>つーかdebugで表示させるならprint_rじゃなくvar_dump使え

了解です。実際はlogファイルに吐いてます。

>あと通常の代入で上手くいかなかったって
>どう上手くいかないの?

現状と同様に [ array() ] だけの出力になってしまいます。

>本来やりたい事は$last_recordに何か追加でを代入したいって事だよね?

やりたいことは、配列 $record の値を $last_record に保持しておき、
ループの次周でその値の中のいくつかを使用することです。
41nobodyさん:2008/03/18(火) 02:31:52 ID:???
>>39
逆転の発想ですねありがとうございます、助かりました
4229:2008/03/18(火) 02:38:54 ID:XUFQaeko
>>34
なるほど
ありがとうございます
43nobodyさん:2008/03/18(火) 03:16:50 ID:???
>>40
最後のを使いたいだけであれば
array_sliceかarray_pop(こっちは元の配列から削除する)を使えば良い

$last = array_slice($data,-1);
var_export($last,true);
$last = array_pop($data);
var_export($last,true);

var_exportはprint_rと使い方は一緒、ただ配列ポインタのresetを勝手にしてくれる

んで、>>28のコードは実際使ってるコードじゃないよね?
間に何らかの処理が入ったコードだと思うんだけど
そこらへんでなんか$recordとか弄ってないの?
44nobodyさん:2008/03/18(火) 03:23:43 ID:???
すまん上の最後の使いたいのは〜はどこか記憶の片隅に置いといてくれ
やりたいのはこういう事だよね?
$data = array(
    array(1,22,345345),
    array(2,222,34532245),
    array(3,223,34534125),
    array(4,225,34532345),
    array(5,226,31245345),
);
 
$lastRec = array();
foreach ($data as $rec) {
    if (empty($lastRec)) {
        $lastRec = $rec;
        continue;
    }
    echo "前のキー:".$lastRec[0]."<br>\n";
   
    $lastRec = $rec;
}

まぁやっぱり実際書いてる部分のコードを見ないと何ともいえないな
28の
$last_record = array_diff($record,array());
この部分の$last_recordと=の間が全角なのはおいといて・・・
45nobodyさん:2008/03/18(火) 03:35:37 ID:???
普通にプログラムするなら
自分で最小コード書いて検証しろ
で駄目だったら人に聞け

で、駄目だった最小コードをここに張れ
4628:2008/03/18(火) 04:41:34 ID:???
>>43-44

>$last_record = array_diff($record,array());
>この部分の$last_recordと=の間が全角なのはおいといて・・・

!!!
お恥ずかしい限りです。
まさにそこが代入できない原因でした。

こんなくだらないことに時間をとらせてしまいすいませんでした。
そして大いに助かりました。どうもありがとうございます。
47nobodyさん:2008/03/18(火) 08:23:48 ID:jD2oSeYG
PDTで、他サーバのPHPを使ったリモートデバッグをすることは可能でしょうか?
ZendStudioでは出来たのですが、
PDTでは「PHP実行可能ファイル」という部分で、
ローカルのファイルしか指定できないようなので、
出来るのかどうかわかりません(><)
4822:2008/03/18(火) 09:52:16 ID:npoe+Lzf
>>27
誘導ありあがとうございます
これからそちらを利用させていただきます
49nobodyさん:2008/03/18(火) 11:52:57 ID:oLNpLuBr
PHPのバージョン5.25インストールして
sqlite使おうとしているんだができない。
sqlを作成するプログラムを作ると

Fatal error: Call to undefined function sqlite_open()
というエラーがでる。

やったことは
php.iniに

extension=php_sqlite.dll
extension=php_pdo_sqlite.dll
extension=php_pdo.dll
という行を追加

dllファイルまでのパスも
extension_dir = "c:/php/ext"と指定し
それらのdllは全てフォルダの中に入っているのに
なぜか動作しない

もうググりまくって色々調べたけどわからない。誰かsqliteに詳しい人教えてください
50nobodyさん:2008/03/18(火) 11:57:55 ID:???
>>49
Call to undefined function sqlite_open()
でググってみ
ググったほうが早いケースはググったほうがいいぞ
51nobodyさん:2008/03/18(火) 11:58:41 ID:???
>>49
多分ロードの順序性
php_pdo.dll が php_sqlite.dll より前に必要だった気がする。
php_pdo_sqlite.dll  は使ってないから知らない。
52nobodyさん:2008/03/18(火) 12:03:14 ID:???
うん。先にPDOを有効化だろうね。
ロード出来てるかどうかは、phpinfoで見たほうが確実かと。
53nobodyさん:2008/03/18(火) 12:18:50 ID:oLNpLuBr
>>50-52
ありがとうございます。
php.iniの順序を変えたんですが、不可能でした。
なーんでできねえかなあ
54nobodyさん:2008/03/18(火) 12:37:17 ID:???
まさかと思うけど、apacheは再起動してるよね?^^;
55nobodyさん:2008/03/18(火) 12:38:54 ID:???
あとは編集してる php.ini が違うとか。
phpinfo で Configuration File (php.ini) Path を確認。
http://jp.php.net/manual/ja/function.phpinfo.php
56nobodyさん:2008/03/18(火) 13:56:46 ID:???
使えてもたしか2系なんでpdo_sqliteつかっときゃいい
57nobodyさん:2008/03/18(火) 14:41:35 ID:nN03NNVP
HTML + CSS で、テーブルの特定の行や列だけを
枠で囲むことってできるでしょうか?
セルを枠で囲むことは border でできますが、
<tr> に border を付けてもうまくいかなかった。。。
58nobodyさん:2008/03/18(火) 15:10:26 ID:???
スレ違い
59nobodyさん:2008/03/18(火) 15:19:15 ID:???
>>57
できるが全力でスレ違い
60nobodyさん:2008/03/18(火) 15:38:13 ID:???
スレというより板違い。
Web製作板で聞くといいよ。
61nobodyさん:2008/03/18(火) 15:42:53 ID:???
Web製作じゃなくて、Web制作だろ。
喧嘩売ってんの?それとも馬鹿?
どっか逝けよ
62nobodyさん:2008/03/18(火) 19:17:04 ID:czwwJPYu
phpを趣味でやっていまして、
phpを仕事にしたいのですが、
28歳からでも業界に入ることは可能ですか?

ちなみに、英検と簿記検定で1級は持っています。
例えば、海外のシステムをphpで作るとか、
会計系のシステムをphpで作るなどのお仕事の需要はありますか?
有識者の方教えて下さい。
63nobodyさん:2008/03/18(火) 19:27:34 ID:???
>>62
頑張ればできるんじゃね?
どっちかってーと設計の方にまわされそうだと思うけど
64nobodyさん:2008/03/18(火) 20:02:34 ID:???
>>62
英検1級って・・・
悪いことは言わないから、他のを目指したほうがいい。
いろいろと勿体無い。
65nobodyさん:2008/03/18(火) 20:10:18 ID:???
>>62
英検1級がどれほどのものか分からんが
ブリッジエンジニアがいいんじゃないか?
中国でも行ってろ
66nobodyさん:2008/03/18(火) 20:37:01 ID:???
英検1級は英語だけなら最高峰の大学入れるレベルでしょ
実際にはTOEFLとらないとだめだけど余裕で海外の4年生大学へ留学できるぐらいのレベルなはず
67nobodyさん:2008/03/18(火) 21:52:44 ID:???
>>62
IT業界は頭脳土方、頭よりも体力勝負
プログラムのプの字もわからない上司や経営者からは、品質よりもコストダウンだけを強いられる
ろくにテストもできずにバグが出たら開発部が上司や営業部からフルボッコ
成果報酬、実力主義、みなし労働で残業代ゼロの素敵な世界
68nobodyさん:2008/03/18(火) 22:12:19 ID:uQDfWjhj
PHPの5.14以降header()を複数呼び出しできなくなったと
マニュアルに書いていたのですが下記の記述も複数呼び出しになりますか?
ちなみにバージョン5.22では動作しましたが今使いたい5.25で動作しません。

if($imgsize[2] == 1){
$image = imagecreatefromgif("${save_dir}$savefile");
$newimage = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($newimage,$image, 0, 0, 0, 0, $newwidth, $newheight,$imgwidth,$imgheight);
header("Content-type: image/gif");
imagegif($newimage,null,100);
} else if ($imgsize[2] == 2) {
$image = imagecreatefromjpeg("${save_dir}$savefile");
$newimage = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($newimage,$image, 0, 0, 0, 0, $newwidth, $newheight,$imgwidth,$imgheight);
header("Content-type: image/jpeg");
imagejpeg($newimage,null,100);
} else if ($imgsize[2] == 3){
$image = imagecreatefrompng("${save_dir}$savefile");
$newimage = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($newimage,$image, 0, 0, 0, 0, $newwidth, $newheight,$imgwidth,$imgheight);
imagepng($newimage,null,100);
}
69nobodyさん:2008/03/18(火) 22:16:45 ID:???
>>68
エラーを見てみ
70nobodyさん:2008/03/18(火) 22:27:20 ID:A85b11Lf
renameでファイルの移動が出来ません。
ローカルサーバ上では出来ているのですが、
なぜかレンタルサーバ(CORESERVER)上では出来ません。

renameが利かない原因ってあるのでしょうか?

7168:2008/03/18(火) 22:31:32 ID:uQDfWjhj
>>69
何のエラーも出ません…
ただ、わかるのは動作するサーバーとしないサーバーがある
くらいなのです…
72nobodyさん:2008/03/18(火) 22:44:29 ID:???
>>71
warningも?
GDの問題じゃないよね?
73nobodyさん:2008/03/18(火) 22:45:15 ID:???
>>70
ディレクトリのパーミッションを777にしてみれば?
74nobodyさん:2008/03/18(火) 22:47:42 ID:???
1時間くらいにらめっこ+グルグルしてるんですが
実行してみるとDB Error: syntax errorと表示され困ってます。。
どこも悪くないと思うんですが・・・ よろしくお願いします。

<?php
require_once("DB.php");



$dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName";

$conn = DB::connect($dsn);

if(DB::isError($conn)){
die($conn->getMessage());
}

$last_name =addslashes($_POST['last_name']);
$first_name =addslashes($_POST['first_name']);
$age =addslashes($_POST['age']);


if(preg_match("/windows/",$_ENV["OS"])){
$sql=mb_convert_encoding($sql,"SJIS","EUC-JP");
}
$result = $conn->query($sql);
if(DB::isError($result)) {
die($result->getMessage());
}
75nobodyさん:2008/03/18(火) 22:49:39 ID:???
>>74
SQLがダメな可能性大。SQL見せて。
7670:2008/03/18(火) 22:51:44 ID:A85b11Lf
>>73
777にしているのですが、全く変わりません。

調べてみると、利用しているCORESERVERはセーフモードが有効だから
それでrenameに制限がかかっているみたいです。
対処法も全く分からないし、こんなことなら借りるんじゃなかった・・・
77nobodyさん:2008/03/18(火) 22:54:51 ID:???
$last_name =addslashes($_POST['last_name']);
$first_name =addslashes($_POST['first_name']);
$age =addslashes($_POST['age']);

から

$sql = <<<EOS
INSERT INTO member
(
last_name,
first_name,
age
)
VALUES
(
'$last_name',
'$first_name',
$age
)
EOS;

です。
78nobodyさん:2008/03/18(火) 22:56:00 ID:???
>>76
ああ、そうだった、そう言えば。ごめん。

でも共有でsafemodeじゃ無いところって殆ど無いし、あってもヤバそうなとこばっかじゃない?
79nobodyさん:2008/03/18(火) 23:11:35 ID:???
>>77
ヒアドキュメントは使わないから分からんが、'が怪しくないか?
\入れないとダメな気が・・。
途中でechoしたらどうなる?
8068:2008/03/18(火) 23:11:39 ID:uQDfWjhj
>>72
Warningも出ません。
GDの問題も考えられますか?
GDはインストールされてますが基本的にサムネを作るなどの別箇所は
問題なく稼動しております。
81nobodyさん:2008/03/18(火) 23:21:01 ID:???
>>80
headerは関係なさそう
GDのバージョンチェック汁
82nobodyさん:2008/03/18(火) 23:22:17 ID:???
>>80
それ、gifもjpegもpngも、いずれの場合もダメなの?
pngでheader吐いてないのも気になるんだけど・・。
8368:2008/03/18(火) 23:45:40 ID:uQDfWjhj
>>81-82
ありがとうございますGDのバージョンはこうです。

GD Support enabled
GD Version bundled (2.0.34 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.3.5
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XPM Support enabled
XBM Support enabled
JIS-mapped Japanese Font Support enabled

後、jpgでテストは行っております。
84nobodyさん:2008/03/19(水) 00:19:58 ID:???
とりあえず、headerの問題かどうか切り分けてみなよ。
ファイルに出せるかどうか。
8568:2008/03/19(水) 00:42:40 ID:2SyStzeC
>>84
とりあえずheader以外の出力方法を探して書いて見ますが
知ってたら教えて下さい。
一応自分でも探してみてます。
86nobodyさん:2008/03/19(水) 00:48:38 ID:???
>>85
ブラウザではなくファイルとして保存は出来るのか、と聞いてるんですが。
8768:2008/03/19(水) 00:58:59 ID:2SyStzeC
>>86
あ、それならやり方わかります。
今からやってみます。
8868:2008/03/19(水) 01:23:58 ID:2SyStzeC
とりあえず保存は出来てますね…
89nobodyさん:2008/03/19(水) 02:10:58 ID:aPCtWHEb
PEARの各パッケージのファイルが具体的にどのディレクトリにインストールされているか
調べるにはどうしたらいいですか?
90nobodyさん:2008/03/19(水) 02:13:45 ID:???
URL欄にc:\php\pearと入れる
91nobodyさん:2008/03/19(水) 02:22:01 ID:???
Linuxの時はどうなりますか?
9274:2008/03/19(水) 02:37:23 ID:hGKuSH/D
>>79
ちょこちょこ弄ってみましたがよけい酷くなって(笑)
難しい。。
93nobodyさん:2008/03/19(水) 02:54:32 ID:???
>>92
まずは切り分けれ。

$sqlの内容を、echoとかで表示して、
そのSQLはきちんと通る?
94nobodyさん:2008/03/19(水) 05:45:59 ID:???
いつも工学スレにいるが、実装系のスレはどこも何でこんな低レベルなの?
このスレの中にも、実装系で飯食っている奴がいるんだよな。
こんなのばっかりだから、あっちこっちでシステムトラブルが発生するだよ。
95nobodyさん:2008/03/19(水) 10:01:56 ID:???
ここで解決出来なかったら、PHP-usersに投げてみるといいよw
96nobodyさん:2008/03/19(水) 10:10:31 ID:???
>>94
派遣会社(ヤクザ)が経歴にゲタを履かせるのが常習化してるから。
3重派遣なんかになると、3回下駄がついて、初心者が中級者ぐらいの経歴になってしまう。
とうぜん、求められたものなんてこなせない。

解決したいなら、派遣なんて使うな。
97nobodyさん:2008/03/19(水) 10:35:46 ID:Git3E2u1
crypt()でMD5暗号化を行おうと思ったら、CRYPT_MD5定数が0(=無効)になってた.

CRYPT_MD5を有効(=1)にするにはどうしたらいいの?

再コンパイルすればいいのか?と思ったが、configureのオプションにそれらしきものは見当たらない・・

ちなみにPHP4.4.8 on Linuxです
98nobodyさん:2008/03/19(水) 11:54:02 ID:???
>>97
ただの勘だけど、configureに LDFLAGS='-lcrypt' を渡したらよろしくやってくれるかも。
99nobodyさん:2008/03/19(水) 12:10:02 ID:Git3E2u1
>>98
ありがとう.その後格闘の結果、なんとかなりました.

PHPを使わず、crypt()システムコールを直接呼ぶCのプログラム作ってみたらちゃんとMD5暗号化できたたので
そのプログラムをexec()でPHPから呼ぶことにします.

せっかく-lcryptを追加してみたら?とヒントをくれたので報告しておくと
Makefileの中ですでに定義されていました.
でもなぜCRYPT_MD5が有効になっていなかったのかは不明・・
100nobodyさん:2008/03/19(水) 12:38:05 ID:0Yuq8Q66
質問です。
あるhtml文字列が正しいhtmlかどうかをチェックしてくれる
スクリプトやモジュールはありませんか?

例えば

<div class="hoge">
ほげほげ

だったら<div>が閉じられていないのでおかしいという事を
返してくれるような機能が欲しいのですが。

知っている方いましたら教えてください。お願いします。
101nobodyさん:2008/03/19(水) 12:38:37 ID:???
>>99
            ___
          /ノ^,  ^ヽ\
         / (○)  (○) ヽ
        / ⌒(__人__)⌒:::  l
   ⊂ ̄ヽ_|           | 
    <_ノ_ \         /
        ヽ       ⌒,
        /____,、ノ /
        /    (__/
       (  (   (
        ヽ__,\_,ヽ
        (_/(_/
102nobodyさん:2008/03/19(水) 12:46:39 ID:???
>>99
モジュールのconfig.m4を実行する順番の問題じゃない?
Makefileに書いてあってもext/standard/config.m4(多分)を実行する時点で
LDFLAGSに'-lcrypt'がないと意味ないよ。まぁ勘なんだけど。

あと、crypt()はシステムコールじゃないよね?。man 2 cryptしちゃったよ。

>>100
Tidyは?
103nobodyさん:2008/03/19(水) 13:41:51 ID:???
HTTP_Requestで取得した文字列の中から正規表現で抽出したいのですが
この場合preg_match_allの第二引数には何をいれればいいんでしょうか・・・

104nobodyさん:2008/03/19(水) 13:52:50 ID:???
>>103
何を抽出したいんだよ
それにpreg_match_allの第2引数なんて公式見れば解るだろ
105nobodyさん:2008/03/19(水) 14:00:47 ID:???
>>104
すいませんorz
PEARを初めて使ったのですが、ほとんど理解できないままやっているもので・・・

HTTP_Requestで取得した文字列を第二引数に入れたいのですが、それをどうやるのかがわかりません。PEARで定義された変数でもあるんでしょうか?
106php学習中 ◆CyaS/rIHbo :2008/03/19(水) 14:05:06 ID:???
質問です

PHPからMySQLにアクセスする際にID,パスワード,ユーザーネームが漏れてしまいます。
他のファイルから読み込むとしても、サーバー側の管理者に見られたりするように思えるのですが、
一般的にパスワードの管理はどうやってやるのでしょうか?
107nobodyさん:2008/03/19(水) 14:06:37 ID:???
>>105
http_requestでぐぐればすぐでてきたよ・・・
pearで良く使われたりす物の使い方等は検索した方が早い
108nobodyさん:2008/03/19(水) 14:09:09 ID:???
109nobodyさん:2008/03/19(水) 14:09:44 ID:???
>>106
何のid,pass,ユーザ名?
何かサービス等を作ろうとしてて
DBに保存してるIDとかパスが見られるっていうなら
DBにハッシュを登録しておけばいい
ただそのハッシュ化の方法が解れば
サーバ管理者が勝手に登録しようと思えばできる
110php学習中 ◆CyaS/rIHbo :2008/03/19(水) 14:17:07 ID:???
>>109
MySQLのid,pass,ユーザ名です。
MYSQLに接続する際や、SQLクエリを実行する際に使うのですが、参考書ではソースに直接書いていたものでして。
111nobodyさん:2008/03/19(水) 14:24:44 ID:???
>>106
実行時にユーザーに入力させればいいやんけ。
112nobodyさん:2008/03/19(水) 14:27:34 ID:???
>>110
そんなの気にスンナ
それが嫌なら自鯖立てるか
VPSとか専用鯖借りて
自分でmysqlサーバ立てて
rootのパス設定すればいい
113nobodyさん:2008/03/19(水) 14:29:19 ID:???
>>110
>参考書ではソースに直接書いていたものでして
それが普通と思うんだ

>サーバー側の管理者に見られたりするように思えるのですが、
鯖缶とはそういうもんだ

>>112
禿同
114php学習中 ◆CyaS/rIHbo :2008/03/19(水) 14:33:00 ID:???
>>113
ソース剥き出しで普通なのでしょうか・・・
レン鯖なんですけど、怖いですね
とりあえず初心者なんで参考書通りやってみます。
115nobodyさん:2008/03/19(水) 14:33:48 ID:???
サーバの管理者なんてDBの中身覗いたり消したりなんて思いのままだぞ
116nobodyさん:2008/03/19(水) 14:50:07 ID:???
>>114
最近は知識だけ豊富でそれを活かしてない奴が多いんだな

鯖管ならユーザー毎のID,PASSは知らなくてもDBやディレクトリ内を自由に触る事は出来る
そうじゃなかったらDB等に不具合が出たら対応が出来ないからな
そこは鯖管のモラルだ
信頼出来ないなら自分ですべてを構築すればいい

あとPHP自体はサーバー側で実行されてそれを返すからクライアント側にはどんなコードが実行されているのかは判らないぞ
まぁ、馬鹿やってHTML内にコードがそのまま残っているとかの馬鹿をしてしまえば意味は無いがな

んな変な部分に気を回すよりもっと大事な部分があると思うんだがなぁ
117nobodyさん:2008/03/19(水) 15:03:40 ID:???
>>107
そうですか・・・失礼しました。検索はしているのですが理解できなくて。
自分の理解力の無さのせいですね。
もう一度きちんと調べてみます。ありがとうございました。
118nobodyさん:2008/03/19(水) 15:04:31 ID:???
コンセント抜く技術を持った掃除のおばちゃんが最強だろjk
これ一発で鯖管なんて涙目だぜ
119nobodyさん:2008/03/19(水) 15:25:32 ID:???
おぼちゃんが抜けるような場所にコンセント設置?jk
どんなショボい社内サーバだろうが、UPSくらいあんだろ。
120nobodyさん:2008/03/19(水) 15:51:56 ID:???
データセンターも利用できない商用サイトなんてありえんだろ。
sakuraの専用鯖は、1万円/月から利用できるし、それくらいの費用も稼げないのか・・・
121nobodyさん:2008/03/19(水) 18:57:00 ID:???
初期投資ケチる客って結構いるよ。

ネット商売なんて運営してみないとわからないことばかりだからね。
122nobodyさん:2008/03/19(水) 19:25:28 ID:Q3E6mXW1
サイトの閲覧者のIPアドレスやリモートホスト、UserAgentなどを取得する際
1、$x = $_SERVER["x"];
2、$x = $_ENV["x"];
3、$x = getenv("x");
のどれを使うのが適切なのでしょうか?
123nobodyさん:2008/03/19(水) 19:27:44 ID:???
合わせ技が基本
124nobodyさん:2008/03/19(水) 19:37:56 ID:???
ip $_SERVER['REMOTE_ADDR']
リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
ua $_SERVER['HTTP_USER_AGENT']
125nobodyさん:2008/03/19(水) 19:47:27 ID:???
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
>リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
126nobodyさん:2008/03/19(水) 19:54:05 ID:???
>>125
頭大丈夫か?
127nobodyさん:2008/03/19(水) 19:54:52 ID:???
>>126
ゆとりの逆切れワロス
128nobodyさん:2008/03/19(水) 19:56:57 ID:???
>>126を見て逆ギレと判断とかすごいな・・・
129nobodyさん:2008/03/19(水) 19:57:39 ID:???
頭湧いてるので放置しといてあげてください
130nobodyさん:2008/03/19(水) 19:58:39 ID:???
>>125
何がどう問題なんだよ?
まさか)の閉じミスとか誰が見てもわかるようなくだらんこと指摘しないよな?
131122:2008/03/19(水) 20:23:13 ID:???
>>123
レスありがとうございます。
サーバーによって取得できたりできなかったりする(?)ので、
if(!isset($_SERVER["HTTP_ADDR"])){$ip = getenv("REMOTE_ADDR");}
else{$ip = $_SERVER["HTTP_ADDR"];}
の様に合わせて使うという解釈で良いのでしょうか?

>>124
レスありがとうございます。説明不足ですみません。
リモートホストは、IPアドレスとリモートホストを>>122の方法で一旦取得してから
if($host == null || $host == $ip){$host = gethostbyaddr($ip);}
という様にしています。
132nobodyさん:2008/03/19(水) 21:04:49 ID:???
こんな可愛い子がチベットで苦しんでいる時に、平和ボケした質問ばっか
http://up2.viploader.net/pic/src/viploader603856.jpg
133nobodyさん:2008/03/19(水) 21:59:06 ID:???
PHPをソースからインストールしたからか、peclでインストールしようとすると
ERROR: `phpize' failed
になります。
どうしたらphpizeが成功しますか?
134nobodyさん:2008/03/19(水) 22:33:57 ID:???
フォームを作る時気をつける点は、
1クロスサイトスクリプティング
2SQLインジェクション

これらの対策をすれば怖いもんなしですか?
135nobodyさん:2008/03/19(水) 22:35:34 ID:???
>>134
お前のその単純な思考こそが怖いものなし。
136nobodyさん:2008/03/19(水) 22:37:57 ID:hGKuSH/D
>>135
上手いお答えありがとうです。
まだまだ知識不足なのでもっと勉強しますね。
137nobodyさん:2008/03/20(木) 01:34:09 ID:FxALsn1D

mkdirを使って作成したフォルダの所有権がwww-dataであるため、
そのフォルダの中にFTPでアップロードできません。
chownをphpで実行し所有権を一般ユーザーに変更しようとするのですが
実行権限がないらしく変更できません。
www-dataから一般ユーザーに所有権を変更する方法を教えてください。
偉い人
138nobodyさん:2008/03/20(木) 01:57:01 ID:???
>>133
phpizeを使えるようにする
とりあえずphp-devel
139nobodyさん:2008/03/20(木) 02:06:12 ID:zGG3/JO8
質問します
Linux red3 2.4.20-8 redhat 8 php 4.2.2



$NENDO_MLIST = array("19","18","17","16","15");
foreach($NENDO_MLIST as $key => $value ){
$nsts[$key] = NEN_CHK($value);
}

↑のループで格納される $nstsですが、NEN_CHK関数の戻りは配列で戻ります。
そうなると、$nstsも配列なので配列の中に配列がはいると思ったのですが、うまくいきません。

$nsts[$key] = NEN_CHK($value); 配列の中に配列をいれる命令は左記ではだめでしょうか?
140nobodyさん:2008/03/20(木) 02:31:56 ID:???
function NEN_CHK($value) {
return array($value);
}

$NENDO_MLIST = array("19","18","17","16","15");
foreach($NENDO_MLIST as $key => $value){
$nsts[$key] = NEN_CHK($value);
}

print_r($nsts);

入ってるみたいだけど?
141nobodyさん:2008/03/20(木) 08:35:28 ID:F5SoFDz/
PHPでもCGIでもいいので
一日あたりのアップ制限とWEBスペースの使用容量制限が出来るアップローダ知らない?
142nobodyさん:2008/03/20(木) 09:12:07 ID:???
前質問した人と同じ人?
143nobodyさん:2008/03/20(木) 09:15:25 ID:???
>>141
自分で作ってみて、判らない事があったらまた来て下さい。
144nobodyさん:2008/03/20(木) 09:18:13 ID:KMpVbNin
>>137
chownはルート権限がないと実行できないので、レンタルサーバーだとまず無理。
フォルダのパーミッションを777にするとか、中のファイルのパーミッションを666にするとかで対処せよ。
145nobodyさん:2008/03/20(木) 09:47:12 ID:???
>>141
php.iniのmaxなんとかって所を修正すれば一発だろ。
何回も同じこと聞いてんじゃねーぞニート!
146nobodyさん:2008/03/20(木) 09:53:37 ID:???
>>145
ありがとう。オカマ野郎。
147139:2008/03/20(木) 11:23:30 ID:zGG3/JO8
>>140

うまくいってました。
結果の表示の仕方が悪かっただけでした

サンクス子
148nobodyさん:2008/03/20(木) 11:49:34 ID:???
>>145
間違った事教えんな
知らない黙ってろよw
149nobodyさん:2008/03/20(木) 16:47:35 ID:MUwPIg+F
>>141
の質問って他にどこかに書いてあるの??
150nobodyさん:2008/03/20(木) 17:11:31 ID:???
>>149
前スレ。
で、php.ini に MAX_UPLOAD_SIZE_PER_DAY 的な設定をできるお方が活躍なさった。

【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/974
> 974 名前:nobodyさん[sage] 投稿日:2008/03/16(日) 16:51:54 ID:???
> CGI・PHPは問わないので一日に
> UP可能な容量が設定できるアップローダ探しています。
>
> 何方かご存知ありませんか?
151nobodyさん:2008/03/21(金) 01:20:25 ID:qnaE/6xK
PHPのクラスってイベントないの?
あとプロパティの役目を担うのがメンバ変数ってことでいいの?
152nobodyさん:2008/03/21(金) 01:40:18 ID:???
イベントって?
153nobodyさん:2008/03/21(金) 01:57:37 ID:qnaE/6xK
がーん!!
154nobodyさん:2008/03/21(金) 02:57:26 ID:???
>>151
ない
そう
155nobodyさん:2008/03/21(金) 02:57:42 ID:Qvdb31U5
スレ違いかもしれんが、「json」で検索かけても1つもあたらなかったので、ここで質問します。

webサイトから簡単にJSONやXMLの取得式を出してくれる
ジェネレーターを紹介してるブログがあったような気がするんですが。

その記事をブクマするの忘れてて困っています。
誰かしりませんか?
156nobodyさん:2008/03/21(金) 03:03:52 ID:???
>>155
なぜここなんだ
phpでjsonデコードするなら
json_decodeってのがphp5からある
157nobodyさん:2008/03/21(金) 03:13:43 ID:Qvdb31U5
>>156
あ、完全にスレ間違えた。
WebProg全体の下らねぇ質問スレかと思ってしまった。

すまん。
158nobodyさん:2008/03/21(金) 03:34:32 ID:???
>>151

イベントってなに?
159nobodyさん:2008/03/21(金) 03:36:28 ID:???
JavaScriptのじゃね
160nobodyさん:2008/03/21(金) 03:54:45 ID:???
まぁまぁ、そんな怒らずに自分のおならの匂いをかいでエクスタシー感じようよ!
161nobodyさん:2008/03/21(金) 06:56:08 ID:???
>>160
何気に癒された・・・・
162nobodyさん:2008/03/21(金) 10:47:15 ID:???
>>160
そのフレーズ、久しぶりに聞いたww
ちゃんと、生きてたか?
163nobodyさん:2008/03/21(金) 11:21:22 ID:???
自己解決しました
164nobodyさん:2008/03/21(金) 12:15:12 ID:???
自己対決しました
165nobodyさん:2008/03/21(金) 12:30:05 ID:???
>>164
欧米かっ!
166nobodyさん:2008/03/21(金) 13:33:57 ID:iVwKKU5l
クラスのプロパティで質問なのですが

メソッド間で使いまわさなければ varでなくて
基本的にコンストラクタと function cHoge( $a $b, $c, $d, $e ........,)
インスタンス時に $c = new cHoge( $a $b, $c, $d, $e ........,)
ぶわーーーっと書いてもいいんですか?

html生成で大量に渡すデータがありまして・・・
167nobodyさん:2008/03/21(金) 13:35:37 ID:???
もわーーーーーーっとならok
168nobodyさん:2008/03/21(金) 13:45:19 ID:???
ぶわーーーっとならngじゃね?
169nobodyさん:2008/03/21(金) 13:46:46 ID:???
>>166
ぶわーって何をそんだけ渡すんだよw
渡す物が多い時とか多少はあるが
そういう場合オブジェクトとか配列渡したりすると思うが・・・?
170nobodyさん:2008/03/21(金) 13:46:50 ID:???
>>166
大漁なら雪駄作ってやれ
171nobodyさん:2008/03/21(金) 13:54:27 ID:???
自己解決しました
172nobodyさん:2008/03/21(金) 14:02:48 ID:iVwKKU5l
>>169
>配列
はっ!
・・・・・了解しました。

各ページで流用可能な一行掲示板でも作ろうと思いまして
カラーテーブルとかデフォルトの名前とか 名前にあわせたhtmlの幅とかetc・・・
173nobodyさん:2008/03/21(金) 14:25:17 ID:???
>>172
色とか幅は、CSSで対応した方がいいよ。
全体を divタグでくくってそのタグのクラス名をつかって切り分ける。
174nobodyさん:2008/03/21(金) 14:52:24 ID:iVwKKU5l
<option value="006600" style="color:#006600">■</option>
<option value="336600" style="color:#336600">■</option>
<option value="009933" style="color:#009933">■</option>
プルダウンメニューで使う色です
175nobodyさん:2008/03/21(金) 14:55:10 ID:???
false,null,0がいいかげんな言語だな->PHP
176nobodyさん:2008/03/21(金) 14:57:45 ID:???
そもそも型がいいかげんなんですけど何か?
177nobodyさん:2008/03/21(金) 18:34:13 ID:???
型なんてものにとらわれているなんて
時代遅れだなw
178nobodyさん:2008/03/21(金) 20:12:20 ID:???
ちゃんと型指定宣言すれば無問題、しなくてもなんとなく動くのが問題。
179nobodyさん:2008/03/21(金) 22:35:58 ID:???
POSTで送信してheader("Location:$_SERVER['HTTP_REFERER']")
でフォームページに戻した時、ファイル名以下のパラメーターが消えています。
例)test.php?id=1 の?以降

GETだと問題ないのですが、これは仕様なのでしょうか?
180179:2008/03/21(金) 22:36:22 ID:q6goC1hT
すみません、sageてしまいました・・。
181nobodyさん:2008/03/21(金) 22:39:16 ID:???
action="test.php?id=1"
182nobodyさん:2008/03/21(金) 22:53:10 ID:???
エ〜!
183nobodyさん:2008/03/21(金) 23:05:12 ID:???
>>179
GETとPOSTの違い知ってます!?
184nobodyさん:2008/03/21(金) 23:24:44 ID:???
rubyで作られたウイルスがあるそうだな
phpでもあるのか?
185nobodyさん:2008/03/22(土) 00:19:08 ID:???
ねーよ
実行環境普通ないだろ
186nobodyさん:2008/03/22(土) 00:29:52 ID:???
ヒント:PHP=ウイルス
187nobodyさん:2008/03/22(土) 00:34:01 ID:???
php自体がウイルスだったのか!?
188nobodyさん:2008/03/22(土) 00:40:25 ID:???
PHP=トラブル=ウイルス
189nobodyさん:2008/03/22(土) 01:01:40 ID:???
MySQLにて、BLOB型でデータを保存しているのですが
表示の際に必要なMimeTypeの取得ができません
バイナリデータからMimeTypeを取得する方法はないでしょうか
190nobodyさん:2008/03/22(土) 01:04:23 ID:???
phpが直接の原因でトラブったときって、どこの窓口にクレームを出せばいいの?
やっぱり、経済産業省の情報処理関係のやつを扱っている部署?
191nobodyさん:2008/03/22(土) 02:07:21 ID:???
PHPはウィルスなんですね
CGIが一番安全ですのね
192nobodyさん:2008/03/22(土) 02:13:30 ID:???
>>191
CGI?
なんか、ゆとり的発言ですね、あなた。
193nobodyさん:2008/03/22(土) 02:24:03 ID:???
>>192
CGIもダメなんですね
194nobodyさん:2008/03/22(土) 02:33:38 ID:???
CGIって何の事言ってるの?ひょっとしてPerl?
195nobodyさん:2008/03/22(土) 03:18:05 ID:???
入力されたものをサーバー側で処理してお答えする物はみんなCGIですよ。

と、Webプログラム歴0秒の俺がお答えしてみる。
196nobodyさん:2008/03/22(土) 03:21:04 ID:???
>>195
さすが、プログラム歴0秒だけあって、チープなお答えですねw
197nobodyさん:2008/03/22(土) 03:23:22 ID:???
「ええ、PL/Iがよいです」というようなお答えが求められてるんじゃないのか。
198nobodyさん:2008/03/22(土) 03:24:01 ID:???
ってかcgiの定義って何だ?
別プロセスを生成するもの?
199nobodyさん:2008/03/22(土) 03:54:10 ID:???
春休み的問答乙
200nobodyさん:2008/03/22(土) 04:21:58 ID:???
ちょっとはぐぐってから言えよ
とかそんなんの略じゃね
201nobodyさん:2008/03/22(土) 07:21:41 ID:???
尊敬されることと人気があることとは相反する命題だということ。
スポーツ選手は、人気があっても尊敬されることはない。
学者や官僚は、尊敬されることがあっても人気はない。
つまり、そういうことに人生は集約されるというのが結論。
202nobodyさん:2008/03/22(土) 07:38:29 ID:+pkNsEKf
現在自宅でサーバーを運用しております。

色々手探りでやっているのですが、
セキュリティーのためにポート番号を変えています。

phpもあわせてポート番号を変えたいのですが、
設定ファイルのどの部分を触れば帰ることが可能でしょうか?
ご教示いただきたくお願い申し上げます。
203nobodyさん:2008/03/22(土) 07:43:40 ID:???
apacheのポートを変えたらphpも必然的に変わるのでは?
204nobodyさん:2008/03/22(土) 07:50:34 ID:+pkNsEKf
>>203
アドバイスありがとうございます。
昨日、Apacheのポートも変えたのですが、そうするとブラウザから接続が出来なくなってしまいました。
ブラウザからの接続はそのままでphpのポートだけセキュリティーのため変えたいのですが、そのようなことは可能でしょうか?

たびたびすみません。宜しくお願いします。
205nobodyさん:2008/03/22(土) 08:11:48 ID:???
>>204
セキュリティのためにポート番号を変更したのなら、
ブラウザから普通には繋がらない状態で、予定どおりなんじゃね?
206nobodyさん:2008/03/22(土) 09:58:41 ID:???
春休みにも程がある。
207nobodyさん:2008/03/22(土) 10:18:29 ID:???
ブラウザからの接続と
PHP実行のための接続の
2種類を考えているってことか?よく分からん
208nobodyさん:2008/03/22(土) 11:15:40 ID:???
Page Magic (htmlページの一部を取り込む)
ttp://www.office-neo.jp/pagemagic/PageMagic.dll/pagemagic.html

これと同じような事ができるphpスクリプトってどこかに転がっていませんかね?
209nobodyさん:2008/03/22(土) 11:23:49 ID:???
a.phpに入力フォームがあって、submitするとDBにデータ登録を行い、
成功したら成功画面へ遷移。失敗したらページAへ戻って入力データを復元する
という場合、どんなファイル構成にしたらスマートでしょうか?

自分としては
a.php→a.php(POSTでsubmit)
a.phpではPOSTの場合と初期表示を場合わけし、POSTの場合はDB登録処理。
成功なら成功画面へリダイレクト
失敗ならPOSTで受け取ったデータを再度フォームに表示
というのを考えたのですが、こういう場合標準的な方法などはあるのでしょうか?
210nobodyさん:2008/03/22(土) 11:26:14 ID:???
extensionとzend_extensionの違いって何?
211nobodyさん:2008/03/22(土) 11:26:28 ID:???
>>209
それでいいんじゃない?
212nobodyさん:2008/03/22(土) 11:28:26 ID:???
>>208
phpの十八番なんだからそんくらい自分で作れ
213nobodyさん:2008/03/22(土) 11:31:13 ID:???
>>212
その割に見つからないんですよね。
本当にphpで可能なんでしょうか?
214209:2008/03/22(土) 11:39:44 ID:???
>>211
ありがとうございます。
他にも間に確認画面をはさむ場合とか、
検索結果から個別の詳細画面へ飛んだあと、検索結果へ戻れるようにする方法とか、
いろんなケースごとにページ構成やデータの受け渡し方法を
説明した本やサイトなどはないですかね?

それともこういうのはフレームワークを使えば悩まなくて済むんでしょうか?
215nobodyさん:2008/03/22(土) 12:06:20 ID:???
>>213
余裕で可能

>>214
フレームワークでその枠組みが提供されるわけではないので悩まなくて済むことはないが、ページ遷移管理の補助にはなる。
現状のphpではこれがベストだと言える方法論は無いので、もし現在php勉強中なら
一度自分で泥臭い方法で作って経験を積んでみることをお勧めする。
その後既存のFWを活用したりOO的設計を意識してみたりするとより理解が深まると思う。(上のを自作ライブラリとして纏め上げてもいいし)
サイトとしてはここ参考になるかな?
http://takagi-hiromitsu.jp/diary//20060409.html
216nobodyさん:2008/03/22(土) 13:45:04 ID:???
>>214
> 検索結果から個別の詳細画面へ飛んだあと、検索結果へ戻れるようにする方法とか、
わるいこといわないから、JavaScriptのback()にしとけ
217nobodyさん:2008/03/22(土) 14:01:00 ID:???
phpでヘッダ情報送って外部サイトのソースを取得する方法ありましたっけ
pythonのurllib2みたいなライブラリか何かでも。
218nobodyさん:2008/03/22(土) 14:08:13 ID:???
>>217
file_get_contents(url);
219nobodyさん:2008/03/22(土) 14:08:33 ID:???
>>217
簡単な奴ならファイルを開くのと同じ命令でURLを開けるよ。

ユーザーエージェント設定したりPOSTしたりするなら
なんかのライブラリが必要だが。まあPEARとかにある。
220nobodyさん:2008/03/22(土) 14:13:53 ID:???
>>218
なるほど、第3引数からヘッダ情報を付加できるのね。
どもども。>>219
221nobodyさん:2008/03/22(土) 16:41:59 ID:???
呆気に取られた方法としてはINI_SET
222nobodyさん:2008/03/22(土) 22:04:57 ID:+pkNsEKf
>>205
ご教示ありがとうございます。
変えたいのはphpのポートだけなんです。
昔javaを使ったことがあるのですが、javaは8080ポートを使っていましたが、
セキュリティーのためにjavaのポートを閉じた記憶があります。
それでも、ブラウザからサイトは見ることは可能でした。

phpの場合は、それが出来ないというのは、そのような仕様なのでしょうか?
言語的にセキュリティーが甘いという印象を感じてしまうのですが、
f/wなどで無理やり閉じるという方法しかないでしょうか?
223nobodyさん:2008/03/22(土) 22:11:45 ID:???
頭に蛆でも湧いてんじゃないの?
224nobodyさん:2008/03/22(土) 23:30:05 ID:???
httpd.confの中書き換えればいいじゃん
225nobodyさん:2008/03/23(日) 00:22:11 ID:???
>>222
JavaはなぜOKだったかのか教えてやるよ
8080…tomcat→Java
80…Apache→AJP…8007…tomcat→Java

どっかのサイトのコピペで動かしたんだろうからこんな構成だろ。
phpはどこで動くか「PHP 入門」でググれ
226nobodyさん:2008/03/23(日) 00:23:16 ID:???
フォームのテキストエリアにURLが入力された場合、
ビュー時に過去そのURLが入力された件数も同時に出力されるようなプログラムを作っています。

例)
http://aaa
http://bbb
と入力されたら
http://aaa 5件
http://bbb 13件
と出るような感じです。

現状、本文中のURLを preg_match_all にて配列に格納し、
その配列をループで回して、格納されたURLを元にDBから同一のURLの数を取得しています。
そして str_replace にて、
str_replace(元のURL, 元のURL + $nbsp;n件, 本文)
という風に置き換えています。

ある程度は正常に動作するのですが、下記の場合に問題が発生します。
227nobodyさん:2008/03/23(日) 00:24:01 ID:???
http://pc11.2ch.net/test/read.cgi/php/
http://pc11.2ch.net/test/read.cgi/php/1205655807/222n-

と入力された時、
str_replace(元のURL, 元のURL + $nbsp;n件, 本文)
の処理にて、
http://pc11.2ch.net/test/read.cgi/php/

http://pc11.2ch.net/test/read.cgi/php/1205655807/222n-
の該当部分にマッチしてしまい、
このような現象が起こってしまいます。
http://pc11.2ch.net/test/read.cgi/php/ n件1205655807/222n-

この問題を解消するにはどのようなアプローチが考えられますでしょうか?
str_replaceをereg_replaceに変更し、後ろの文字を判断して置き換えようとしましたが、難解です。
よろしくお願い致します。
228nobodyさん:2008/03/23(日) 00:31:49 ID:???
str_replace使わない
229226-227:2008/03/23(日) 00:59:24 ID:???
すいません、事故解決しました
230nobodyさん:2008/03/23(日) 13:09:00 ID:???
アップローダで画像は○MBまで、圧縮ファイルは○MBまでという感じにファイル毎に
アップロードできる容量を制限できるのを探しています。
ご存知ありませんでしょうか??
231nobodyさん:2008/03/23(日) 13:21:27 ID:???
スクリプト探しはスレ違い
232nobodyさん:2008/03/23(日) 13:23:56 ID:???
どこで聞けばいいのでしょうか?
一番、ここが近いような感じがしたのでここで質問させてもらいました。
233nobodyさん:2008/03/23(日) 13:24:34 ID:???
>>230
php.iniで設定できる項目があるから、それをやれば一発。
わざわざアップローダーを探す必要ない。
234nobodyさん:2008/03/23(日) 13:38:33 ID:???
>>233
ファイル種別ごとに制限するのってどうやるの?
235nobodyさん:2008/03/23(日) 13:41:00 ID:???
MAX_UPLOAD_SIZE_PER_MIMETYPEか
236nobodyさん:2008/03/23(日) 14:00:45 ID:???
そんなディレクティブ無いんだが…
ぐぐってもヒットしねーし
237nobodyさん:2008/03/23(日) 14:00:51 ID:???
238nobodyさん:2008/03/23(日) 14:09:29 ID:???
>>235
>>141>>145>>150か。
239nobodyさん:2008/03/23(日) 14:12:44 ID:???
無いから諦めるのか、無いなら作ってみるのか、人生の分かれ道だな。
240nobodyさん:2008/03/23(日) 14:48:35 ID:???
前スレ見れないorz
241nobodyさん:2008/03/23(日) 16:23:02 ID:???
iniで設定した
サイズ以下
なら
_FILES情報を参照して
○×を
判断するコードを
書けば












242nobodyさん:2008/03/23(日) 16:44:26 ID:???
MAX_UPLOAD_SIZE って自鯖が前提??
243nobodyさん:2008/03/23(日) 16:54:24 ID:???
そんなことはない
244nobodyさん:2008/03/24(月) 00:30:37 ID:uH/l/FDX
mktime の挙動について知りたいのですが最新バージョンでは
サマータイムの指定が消えているときいたのですが
サマータイム期の時間を入れると勝手に考慮して返してくるのでしょうか?
245nobodyさん:2008/03/24(月) 00:33:21 ID:???
タイムゾーンがそうなっていればyes
246nobodyさん:2008/03/24(月) 01:15:16 ID:9vjRnJNj
Cookieの有効/無効を確認する方法についてですが、
初回アクセス時にCookieを送信 → 再読み込み(?)してCookieを取得できるかどうかで判断
という方法しか思いつかないのですが、初回アクセス時に確認する方法はないでしょうか?
247nobodyさん:2008/03/24(月) 01:17:40 ID:???
>>246
php.iniで確かそれを設定する方法があったと思う。
248nobodyさん:2008/03/24(月) 01:17:43 ID:???
初回アクセス時に確認するならcookieはいつセットされんの?
249nobodyさん:2008/03/24(月) 01:22:08 ID:???
セットしないでって事じゃないの?そんな方法知らんけど
250nobodyさん:2008/03/24(月) 01:32:39 ID:???
COOKIE_FROM_FARST_ACCESS = true
251nobodyさん:2008/03/24(月) 01:39:23 ID:???
そもそも、cookieって何で必要なんだろう?
httpパケットが送信元のブラウザに返ってくるということは、
httpレベルでコネクションが保障されているわけだろ。
同じパソコンで複数のコネクションをしていた時なら、保障はされないが、
それは仕様ということで問題ないと思うのだが。
252nobodyさん:2008/03/24(月) 01:40:10 ID:???
253nobodyさん:2008/03/24(月) 01:41:00 ID:???
一番最初にはセットされないで
次からのアクセスでcookieは判定できるようになるからムーリー
254nobodyさん:2008/03/24(月) 02:00:56 ID:???
php4のforeachでオブジェクトの入った連想配列を参照渡しで回したいんだけど
foreach ($foo as &$bar)ってやったらエラーorz

どう書けばいいんだろ…
そもそも無理なのかな?
255nobodyさん:2008/03/24(月) 02:06:51 ID:???
>>254
困ったならマニュアルを何故見ない
http://jp2.php.net/foreach
256nobodyさん:2008/03/24(月) 02:21:01 ID:???
>>251 春だねぇ。
257254:2008/03/24(月) 03:25:37 ID:???
>>255スマソ下の方まで読んでなかった

php4のforeachは参照渡し出来ないのね
Notes見て書き直した thx
258nobodyさん:2008/03/24(月) 08:12:46 ID:0RNOryeF
困ってます。
/home/username/www/foo.php
を用意し、このスクリプト内で
shell_exec("/home/username/www/bar.php");
としているのですが、期待する動作をしてくれません。
(反応がなくなり、しばらくするとService Temporarily Unavailable
しか表示されなくなります)
動作させる方法はないでしょうか?

●foo.php
<?php echo shell_exec("/home/username/www/bar.php"); ?>

●bar.php(パーミッションは705)
#! /usr/local/bin/php
<?php echo 'hoge'; ?>

●環境
FreeBSD
www639.sakura.ne.jp
Apache/1.3.39 (Unix)
PHP Version 4.4.8
Server API CGI
259nobodyさん:2008/03/24(月) 10:22:43 ID:???
safe-modeとかじゃないの?
260nobodyさん:2008/03/24(月) 10:53:22 ID:???
それだと何にも動作しないだろ

"php /PATH/TO/FILE"
261nobodyさん:2008/03/24(月) 11:26:50 ID:0RNOryeF
>>260

●foo.php
<?php echo shell_exec('php -f '.dirname(__FILE__).'/bar.php'); ?>
●bar.php
<?php echo 'hoge'; ?>

としてみましたが、状況変わらずです。
262nobodyさん:2008/03/24(月) 13:00:12 ID:BuclIAIb
この流れで申し訳ないんだがちょっと質問です。

今サーバ二つ借りてるんですが
少し疑問に思ったことがあったのでお願いします。

AサーバからBサーバのphpをrequireしてみたらできました。
プログラムもしっかり動いてます。

これって危険なんじゃないかと思いますがそんなこともないのでしょうか?
.htaccessのリファラとかで規制するものなのでしょうか?

よろしくお願いします。
263nobodyさん:2008/03/24(月) 13:02:53 ID:???
bサーバのphp中の処理がrequireできたの?
264nobodyさん:2008/03/24(月) 13:11:40 ID:BuclIAIb
>>263
そうですね。


Aサーバのphp
<?php
require_once("http://www.Bサーバ.com/hoge.php");
?>

Bサーバのhoge.php

<?php
echo "aaa";
?>


こんな感じです。
265nobodyさん:2008/03/24(月) 13:27:33 ID:???
よくもそんな恐ろしいことを…
266nobodyさん:2008/03/24(月) 13:32:08 ID:???
ワロタ
267nobodyさん:2008/03/24(月) 13:34:17 ID:BuclIAIb
>>265
具体的にどう恐ろしいのでしょうか…?

1.無断で他サーバに接続し、勝手にプログラムを使用していること。
2.サーバの管理状態の適当さ

今パッと思いつくのがこの程度なのですが。
268nobodyさん:2008/03/24(月) 13:59:15 ID:???
偽装し放題だな。
269nobodyさん:2008/03/24(月) 14:03:28 ID:???
262さんに質問です。
こんなことは可能ですか?

Aサーバのphp
<?php
$hoge_str="ほげほげ";
require_once("http://www.Bサーバ.com/hoge.php");
?>

Bサーバのhoge.php
<?php
echo $hoge_str;
?>
270nobodyさん:2008/03/24(月) 14:26:16 ID:BuclIAIb
>>269
できませんね。

requireでもphpで処理して出力したHTMLしか取得してないということですかね。
少し勘違いしてました。

ありがとうございました。
271nobodyさん:2008/03/24(月) 14:31:06 ID:???
おぉ恐ろしい
272nobodyさん:2008/03/24(月) 15:11:37 ID:gLm40CNz
require_once "HTTP/Request.php";
$req =& new HTTP_Request($url);
if (!PEAR::isError($req->sendRequest())) {
$body = $req->getResponseBody(); }

$bodyが大きすぎる場合があります
例えば$bodyを5KByteだけ読み込みたい場合はどうすればいいでしょう
273nobodyさん:2008/03/24(月) 15:37:15 ID:???
substr
274nobodyさん:2008/03/24(月) 15:48:51 ID:???
>>273
ありがとう
275nobodyさん:2008/03/24(月) 17:35:29 ID:???
それだと全部読んで5kにつめるからwhile分回しのがいいやね
あるいは何バイトまで読むか関数に引数いれとくとか
276nobodyさん:2008/03/24(月) 17:46:23 ID:???
ID:BuclIAIbはネ申!
277nobodyさん:2008/03/24(月) 17:49:58 ID:???
他サーバの呼び出せたらAPI作ることに関しては自由度が高まりそうだが
セキュリティ的に不可能じゃね?試してないが
278nobodyさん:2008/03/24(月) 20:18:25 ID:???
APIって基本的にXML化されたファイルを読み込んで
PHPで処理する方式だろ?AmazonAPIとかGoogleとかそうだったはず。
279nobodyさん:2008/03/24(月) 21:00:43 ID:???
>>278
簡単にいえば内部で使っているものを外部でも簡単に使えるようにするための仕組み。

例えば内部処理だけで使っている配列を、外部の人も使いたいといった場合、
配列にアクセスするための仕組みを提供したりする。
方法は配列を返す関数を作ってgetリクエストで呼び出したり、
配列をXMLに書き出してXMLで提供したり。
280nobodyさん:2008/03/24(月) 21:42:32 ID:???
このスレには中高生しかいないw
281nobodyさん:2008/03/25(火) 00:03:26 ID:???
>>280
中高生しかいないんですか?ということは>>280さんも中高生?
僕は中1です。
最近ホームページはじめたのでPHPに興味あります。
これで掲示板とカウンター作って将来会社たてたいとおもいます。
よろしく。
282nobodyさん:2008/03/25(火) 00:05:32 ID:???
やるなら目標はもっとでかいことにしようぜ。
283nobodyさん:2008/03/25(火) 00:16:05 ID:???
>>280
恥を知れ
284nobodyさん:2008/03/25(火) 00:18:02 ID:???
突然ですが質問すみません

当方、PHP4.4.6でmb_send_mail でメール配信していたのですが、
PHP4.4.1 環境に移したところ

メール本文の途中が切れて送られるようになったり、
まったく空だったりするようになりました。
切れる場所も、文字数で切られている訳でもなく、
原因が掴めません。

メールが長い場合、(5KB以上程度?)の時に起こるようです。
しかし、MaxMessageSize を超えていることもなく・・・

似たような現象ご存知の方いらしゃれば
ご教授お願いします
285nobodyさん:2008/03/25(火) 01:31:10 ID:9FmYRybR
シグマリオン3でPHPのコーディングしたいんですが
良いエディタないですか?
286nobodyさん:2008/03/25(火) 02:52:44 ID:???
exec() あたりで1時間ほどかかるシェル処理をしたいんですが、
普通にブラウザから処理したらタイムアウトになりそうなんで、
何か良い方法ないでしょうか。
287nobodyさん:2008/03/25(火) 03:16:25 ID:???
>>286
ブラウザに定期的に何かを出力すればいいんでない?
flushあたりの関数使って
一応set_time_limitを0にしてやったほうがいいと思う
まぁ普通にバッチ処理でいいと思うけど
288nobodyさん:2008/03/25(火) 03:16:42 ID:???
>>286
何がしたいんだ
289nobodyさん:2008/03/25(火) 08:57:49 ID:???
>>286
exec("重い処理処理.sh > /dev/null &");
290nobodyさん:2008/03/25(火) 09:15:14 ID:tA2earVE
xbitのサーバーがphp4.4.18から4.3.9にダウングレードされるのですが
同じでphp4でも、コード修正が必要な事はあるのてじょうか?
291nobodyさん:2008/03/25(火) 09:17:33 ID:???
292nobodyさん:2008/03/25(火) 09:56:17 ID:tA2earVE
ぉぉぉ
ありがとうございます
293nobodyさん:2008/03/25(火) 13:23:00 ID:j8ua+z8X
すみません、質問します
スケジューラを作ってるんですが、カレンダーの画面で各日にちの
イベント名と簡単な概要が表示されるとします
この場合、たとえば3月なら31回(日にち分)sqlのリクエストをループまわして
そのイベント名なり概略なりを個別に受け取るべきなんでしょうか?
where month=3 and day=1 … day=31って感じで。
それとも、ループはせずにwhere month=3と一回だけにしてphpのプログラムで
結果を解析・表示すべきですか? どっちが効率がいいというか安全なのか、、
皆さんどうやってますか?
294nobodyさん:2008/03/25(火) 13:35:18 ID:???
前者にどういうメリットがあると思ってるわけ?
295293:2008/03/25(火) 13:56:51 ID:j8ua+z8X
いやー、メリットなさそうだなと思いつつ、経験豊富なプロの方なら
別の考え方も提示してくれるかもと思ったもので。。
そんなことないみたいですね ありがとうございました!
296nobodyさん:2008/03/25(火) 14:44:38 ID:???
やっぱ中高生しかいない。
297nobodyさん:2008/03/25(火) 16:37:28 ID:DHM98VQb
会員ログインの仕組みなどで

ログイン→DBの登録情報を確認→正しければアクセス許可

としているのですが、ID情報をセッションで持ち回して
どのページでも上の処理を入れて毎回アクセスをチェックしています。
最近、こういう方法だとアクセスの度にSQLを発行するので良くないのでは?
っと思っているのですが、いかが思いますか?より良い方法があれば教えて下さい。
298nobodyさん:2008/03/25(火) 16:44:42 ID:???
ログイン済みかどうか、
セキュリティを考慮したユーザID
をセッションに登録し
後の動作でそれを確認するのが普通だろ
299nobodyさん:2008/03/25(火) 17:50:35 ID:???
>>293
クエリの回数が少なくなるようにしようぜ。
あとその日付をバラバラにしたカラムじゃ
「2007年3月15日〜2008年3月15日を削除」とかやってらんないぜ。
「日ごとのスケジュール登録件数」が欲しくても集計使えないぜ。
日付にふさわしいデータ型使え。

>>297
セッション変数に残すのは認証されているかどうかを表すフラグと、
認証されている場合はそのユーザの識別子、この二つだけでも十分なんだぜ。
クエリの事だが必要だったら遠慮せず発行するもんだぜ。
データベースを使うセッションハンドラとかよくある話だしな。
300nobodyさん:2008/03/25(火) 21:10:54 ID:???
>>298
素人丸出しのレスだなwww
二重ログインという言葉自体知らないんだな。
301nobodyさん:2008/03/25(火) 21:12:46 ID:???
>>300
経験不足っぽいレスだな
302nobodyさん:2008/03/25(火) 21:59:53 ID:1pYd+uTd
こんばんわ

ログインしてページ内容を取得したいのですが
ヘッダーに
<noscript>
<meta http-equiv="Refresh" content="0; URL=http://javasをonにしてね.html"/>
</noscript>
という壁がありまして・・・どうにかいい方法はないのでしょうか?
303nobodyさん:2008/03/25(火) 22:00:46 ID:???
>>300 >>298のレスから「二重ログイン」がどこから出てくるんだ?
覚えた言葉をすぐ使いたがる中高生だろオマエw
304nobodyさん:2008/03/25(火) 22:06:37 ID:???
女子高生ですが何か?
305nobodyさん:2008/03/25(火) 22:23:04 ID:???
>>304
んなヒゲの生えた女子高生がおるか!
306nobodyさん:2008/03/25(火) 22:40:34 ID:???
>>304
メールくだしあ

「中高生」って流行ってるの?
307nobodyさん:2008/03/25(火) 22:40:56 ID:???
>>303
DBを使う代わりに、セッションにログイン情報を格納すればすむという安易な考えが本当素人考え。
308nobodyさん:2008/03/25(火) 22:55:33 ID:???
>>306
流行ってるわけない。
春休みで変なのが沸いてるだけだから華麗にヌルー
309nobodyさん:2008/03/26(水) 00:43:09 ID:???
>>307
エスパーか藻前は?
310307:2008/03/26(水) 00:57:54 ID:???
なんでわかったんですか!
はい、伊藤です。
311nobodyさん:2008/03/26(水) 02:43:19 ID:???
エスパーときたら、魔美
312nobodyさん:2008/03/26(水) 02:46:00 ID:???
>>311
kwsk
313nobodyさん:2008/03/26(水) 03:44:58 ID:???
毎回のように娘をベッドの上で裸にする父親が
主人公のアニメ・漫画。
314nobodyさん:2008/03/26(水) 06:12:28 ID:???
愛情の反対は嫌悪じゃなくて、無関心だと言う。

どうしてココの住民は、無関心ではいられないのだろうか。
何かとすぐ切れやすい子どもが、このスレに体現されているとしか評価しようがない。
315nobodyさん:2008/03/26(水) 07:17:30 ID:BV+jSJbq
phpの質問なのかmysqlの質問なのかわからないのですが、
やりたい事がphpを使って操作する事なのでこちらで質問させて頂きます。

php+mysqlでアクセス解析を作りたいのですが、UA、リファラー、現在の日時等を取得して、
UA、リンク元、累計アクセス数、日別・月別・曜日別アクセス数などを表示したい場合、
全て1つのテーブルに保存するのと、項目ごとに別のテーブルに保存するのではどちらが効率的でしょうか?

書き方がわかりにくいと思いますが、全て1つのテーブルに保存する場合、
1行目 useragent=IE6, referer=http〜, date=2008/1/1 0:00:00
2行目 useragent=IE5, referer=http〜, date=2008/1/1 0:00:00
という形になり、テーブルの内容を全て配列に入れてからphp側で検索・ソート等して出力するか、
表示したい項目ごとにデータベース側で検索して出力する事になると思います。

項目ごとにテーブルを作る場合、
テーブル「useragent」
name count
IE6  2
IE7  5
という形になり、テーブルの内容をほとんどそのまま出力すればいいだけになります。

アクセス時の処理では前者の方が後者より速く負荷もかからないと思うのですが、
表示時の処理はログが増えるほど前者が後者より遅く、高負荷になるのではないかと考えています。

mysqlについてはphpmyadminで軽く触った程度なので、根本的に間違っているor意味不明な質問かもしれませんが、
「ここはおかしい」や「こうした方がいい」等のアドバイスでも構いませんので、ご回答お願い致します。
316nobodyさん:2008/03/26(水) 09:07:29 ID:???
>>315
サイトのアクセス状況による
一日数十とか数百単位しかアクセス無いなら前者で良いだろうけど
2ちゃん並にくることが予測されるなら後者の方が良いと思う
とりあえず前者でサイト開いてみて段階踏んだらどうよ?

あとログとしてデータが残り続けるなら前者である一定の値にきたら
offsetかましてcountの効率を上げる方法もある…
317nobodyさん:2008/03/26(水) 09:14:01 ID:???
>一日数十とか数百単位しかアクセス無いなら前者で良いだろうけど
>2ちゃん並にくることが予測されるなら後者の方が良いと思う

10か3億か、ってお前極端すぎww

病院に行け
318nobodyさん:2008/03/26(水) 09:15:32 ID:???
テーブル設計の問題だなぁ
>>315
dbスレ行ったほうがいいんじゃね?

つか普通は全部纏めて入れる
日ごとにUAの集計したら「午前中」とか「リファラの無いIE6」とかが欲しくなった時どうにもならないし

表示スクリプトは数十行だろうから、とりあえず両方書いてダミーデータで速度見るのもいいかもね
319302:2008/03/26(水) 09:50:54 ID:ynVuNR2N
やっぱり無理ですよね・・・
320nobodyさん:2008/03/26(水) 11:09:58 ID:???
>>319
何がしたいのかよくわかんねーんだわ
321nobodyさん:2008/03/26(水) 11:19:54 ID:ynVuNR2N
>>320
mixiなりアマゾンなり、phpからログインして情報取れますよね?
例えば今回liveアカウントへいこうとすると
javascriptを有効にしてくださいというページに飛ばされてしまいます
単純にnoscriptでジャンプされてしまうのですが、どうしたら良いのか思いつかず・・・
322nobodyさん:2008/03/26(水) 11:22:07 ID:???
phpで取得したときに勝手に飛ばされるっけ?
323nobodyさん:2008/03/26(水) 11:55:25 ID:YOiMNcCa
>>322
いや飛ばされない。IEで解決。
324nobodyさん:2008/03/26(水) 12:00:13 ID:???
意味分からんことばっか言って混乱させるなよ・・orz
325nobodyさん:2008/03/26(水) 12:03:32 ID:???
奥さん、昨晩旦那が浮気していましたよ。
326302:2008/03/26(水) 12:12:25 ID:ynVuNR2N
ちなみにPEARでやってみているんですが
最初のレスポンスの時点でjs有効にしてねというページが返ってきます
327nobodyさん:2008/03/26(水) 12:16:09 ID:???
まさかmetaが入ってる文字列を出力して開いてるなんてオチじゃないだろうな?
328nobodyさん:2008/03/26(水) 12:37:10 ID:tSZRDvWr
PHPでXML(Atom)をつかっての送受信をしたいのですが、
署名による認証のしかたがわかりません・・。
(PEARにもXML-RPCはあるのですが、暗号化や複合化ができるようなものはなさそうで)
わかる方がいればおしえてください。
329302:2008/03/26(水) 14:58:59 ID:ynVuNR2N
標準関数でも
いろいろ試して見ましたが、解決せず
PEARスレに行ってきます
ありがとうございました
330nobodyさん:2008/03/26(水) 15:07:16 ID:???
行ってらっしゃ、気をつけて。(^ー^)ノ~~
331nobodyさん:2008/03/26(水) 16:08:50 ID:oGx/hZT1
$test = "1,2,99";
if(strstr($test,"9")){
echo "含まれています";
}

とした場合、$test内に「9」が含まれていないのに、
「99」でもヒットされてしまいます。どういう風に修正すればいいのでしょうか?
332nobodyさん:2008/03/26(水) 16:08:58 ID:???
奥さん、昨晩旦那が浮気していましたよ。
333nobodyさん:2008/03/26(水) 16:22:02 ID:???
エスパー解釈で難癖つけるのが流行っているのか?
334nobodyさん:2008/03/26(水) 16:22:07 ID:???
>>331
は?
何がしたいの?

$test_ary=explode(".",$test);
foreach($test_ary as $val){
if(strstr($val,"9")){ echo "含まれています"; }
}

でもすれば?
335nobodyさん:2008/03/26(水) 16:28:34 ID:???
>>331
>$test = "1,2,99";
>if(strstr($test,"9")){
>echo "含まれています";
>}

>とした場合、$test内に「9」が含まれていないのに、

9って思いっきり含まれてるじゃん。
336nobodyさん:2008/03/26(水) 16:31:41 ID:???
strstrの使い方が違うような。
337nobodyさん:2008/03/26(水) 16:48:42 ID:???
>>331にとっては「99はあるけど9は含まれてない」という感覚なんだろうね。

explode するとループで悩む年頃だろうから
if (preg_match('/\D9\D/', $test)) 辺りでどうですか。

>>334
質問者と同じ地雷を踏んでますよ。
338nobodyさん:2008/03/26(水) 16:54:54 ID:???
9という数値なのか、9という文字なのか
まぁそういう概念がないんだろうけど
339nobodyさん:2008/03/26(水) 16:55:41 ID:???
配列にして==9にすりゃいいじゃん
340337:2008/03/26(水) 16:56:21 ID:???
$test = "9,1,2,3" とか $test = "1,2,3,9" のことを考えてなかった。
眠いので修正せず放置しとこう。
341nobodyさん:2008/03/26(水) 17:05:24 ID:???
しかし、そもそもこのフォーマットは何なんだ??
せめてカンマ区切りにしとけばいいのに・・。
342nobodyさん:2008/03/26(水) 17:15:35 ID:???
配列にしてるのに
態々==9とかあほかw
in_arrayでいいだろ

343nobodyさん:2008/03/26(水) 17:32:49 ID:???
>>334>>341 にはCSVに見えないのか
344nobodyさん:2008/03/26(水) 17:45:18 ID:???
中高生ですから
345nobodyさん:2008/03/26(水) 18:04:16 ID:???
含まれてるじゃなくてイコールじゃないのにっ真になるのがおかしいと言いたいのだろうか・・・
でも本人が含むって言葉思いっきり使ってるし$testを配列みたいに解釈してしまってんだろうか。
ひょっとして
$test = "1,2,99";
$test_ary=explode(".",$test);
foreach($test_ary as $val){
if($val ==9){ echo "含まれています"; }
}
みたいなことをしたいのか?これだと99と9はイコールじゃないが。
しかしこれだtstrstr使う意味がないしarray使うべきだし・・・難問だ。
346nobodyさん:2008/03/26(水) 18:11:56 ID:???
本人が登場してくれない限りは解決出来ないな。
347nobodyさん:2008/03/26(水) 18:12:53 ID:???
みんながいじめるから質問者が逃げちゃったじゃないか!
348315:2008/03/26(水) 18:18:00 ID:???
>>316,>>318
個人の趣味サイトなので、アクセス数は最大でも重複カウントなしで1000/日というところです。
>>318さんのおっしゃる通り、今後条件別にログを表示させたくなった時に前者の方が良さそうですね。

ログ表示ページはそれほど頻繁に閲覧されるものでもないと思うので、
表示に関して多少非効率的になっても、前者の方法を使う方向でいきたいと思います。

インデックスとか>>316さんの言うoffset等、理解できていない部分が沢山ありますので、
データベース関連のサイトやスレなどを見て勉強してきます。

回答ありがとうございました。
349nobodyさん:2008/03/26(水) 18:29:36 ID:???
質問者よりも explode(".",$test) さんの悩みのほうが深刻そうだ。
350nobodyさん:2008/03/26(水) 21:34:16 ID:???
中高生の悩みは性だけじゃないのか。
351nobodyさん:2008/03/27(木) 02:13:01 ID:???
中高年の悩みも性だな。
352nobodyさん:2008/03/27(木) 06:31:18 ID:???
echo "<body>"とすると何故か3〜5秒くらいラグが発生してしまいます。

<html>
<head></head>
<?php
echo "<body>";
?>
テスト
</body>
</html>

これだけの記述でもタイムラグが発生するのですが、body要素をphpで出力するのには何か問題があるのでしょうか?
それとも、xreaの無料サーバーを使っているのですが、このサーバー側の仕様か何かなのでしょうか?
353nobodyさん:2008/03/27(木) 07:12:29 ID:???
単にサーバが重いだけでは?
時間おいてためすべし。
354353:2008/03/27(木) 07:14:52 ID:???
あ、あと1つ言い忘れたけど、
xrea無料といえば自動挿入広告が重い原因にもなるから、
htaccessで広告表示しないようにして手動広告はるのがお勧め。
355nobodyさん:2008/03/27(木) 07:18:47 ID:???
1ヶ月PHP勉強してきましたが、全然意味不明。
いざ自分でコード書こうと思ったら意味不明
PHP考えた人まじ天才 もうわけわからないっす
356nobodyさん:2008/03/27(木) 07:34:07 ID:???
それはない
357352:2008/03/27(木) 09:24:16 ID:???
>>354
レスありがとうございます
確認したところ、どうやら広告関係の問題だった様です

広告は手動で挿入しており、出力後のソースを見ても自動の広告が無かったので、
手動で広告を入れると勝手に切り替わるものだと思っていました
サポートページ等を見ながら修正したいと思います
ありがとうございました
358nobodyさん:2008/03/27(木) 09:41:52 ID:5276Wbjq
snoopyクラスってマイナー?
359nobodyさん:2008/03/27(木) 09:50:33 ID:???
すぬーぴー?
360nobodyさん:2008/03/27(木) 10:31:06 ID:???
マイナーじゃないかな。
俺もチラッと触っただけだけど。
361nobodyさん:2008/03/27(木) 10:42:00 ID:5276Wbjq
そうか・・・
362nobodyさん:2008/03/27(木) 11:53:37 ID:???
>>355
おれもそう思う、感心する
PHPでプログラムできる人たちマジ神ですね
リスペクトしてます
363nobodyさん:2008/03/27(木) 12:07:08 ID:???
そこまで分からなかったら、他の言語やってからにすれば?
364nobodyさん:2008/03/27(木) 12:15:59 ID:???
PHPが「全然意味不明」だとどの言語ダメな気がする
365nobodyさん:2008/03/27(木) 12:25:39 ID:???
「なでしこ」とかはどう?

俺の場合、BASIC->C->C++->Java->PHPだな。
366nobodyさん:2008/03/27(木) 12:36:13 ID:???
>>365
C++からJavaとか、JavaからPHPとか頭が退化してんじぇねーの?
367nobodyさん:2008/03/27(木) 13:07:09 ID:2PjNLBe+
$_POST['email']にSQLインジェクション対策を行おうとしています。

echo $_POST['email']."<br>";
$_POST['email'] = mysql_real_escape_string($_POST['email']);
echo $_POST['email']."<br>";

しかし、mysql_real_escape_stringにPOSTのデータを通すと$_POST['email']の中身がfalseになります。
ちなみに、POSTで送るデータは[email protected]等です。
どこが間違っているんでしょうか?
368nobodyさん:2008/03/27(木) 13:10:27 ID:???
>>366
確かにそうだなw
でも、しょうがないじゃん。これで食ってるんだから。
369nobodyさん:2008/03/27(木) 13:10:55 ID:???
>>366
レベルひっくー
370nobodyさん:2008/03/27(木) 13:11:15 ID:???
ずっと$_POSTを引きずり回さなくても・・。
371nobodyさん:2008/03/27(木) 13:16:48 ID:???
職業プログラマは自分で言語を選べないんだよ…
372nobodyさん:2008/03/27(木) 13:27:47 ID:2PjNLBe+
>>370
問題はそこじゃないわけで(ry
ちなみに

$email = mysql_real_escape_string($_POST['email']);
echo $email;

でも

echo mysql_real_escape_string($_POST['email']);

でもだめでした。
373nobodyさん:2008/03/27(木) 13:32:35 ID:???
>>367
> 注意: mysql_real_escape_string() を利用する前に、MySQL 接続が確立されている必要があります。
> もし存在しなければ、E_WARNING レベルのエラーが生成され、FALSE が返されます。

問題はここですか。
374nobodyさん:2008/03/27(木) 13:33:13 ID:???
>>367
http://www.php.net/manual/ja/function.mysql-real-escape-string.php
> 注意: mysql_real_escape_string() を利用する前に、
> MySQL 接続が確立されている必要があります。
> もし存在しなければ、 E_WARNING レベルのエラーが生成され、
> FALSE が返されます。link_identifier が指定されなかった場合は、
> 直近の MySQL 接続が用いられます。
375nobodyさん:2008/03/27(木) 13:39:44 ID:???
>>367さんは値を受け取ってすぐmysql_real_escape_stringするつもりなのかもしれないけど、
これは普通、sql発行する直前に書かない? 当然、その前で何らかのチェックはするけど。
376nobodyさん:2008/03/27(木) 13:50:36 ID:???
アアーッ

すみませんでした
preg_matchでマッチングさせた後mysql_connect()の前でやってました
ありがとうございました
377nobodyさん:2008/03/27(木) 14:33:15 ID:???
>>376
どうでもいいけど、今時mysql_connect()なんか使わないで、PDOを使えよ。
378nobodyさん:2008/03/27(木) 14:40:55 ID:???
>>377
ここにいる基礎が出来ないヤツらに、PDO勧めるのは間違い。
379nobodyさん:2008/03/27(木) 14:51:12 ID:???
だってphp4系なんだもん
380nobodyさん:2008/03/27(木) 15:26:27 ID:???
>>378 ぷっ
381nobodyさん:2008/03/27(木) 15:56:56 ID:???
SVG形式のデータを画像(jpeg等)にして、保存したり、別の画像に重ね合わせたりしたいのですが
どなたか、良いアイデアをご教示願えないでしょうか。
当初、imagickを使用すれば良いと単純に考えていたのですが
今回の開発環境がPHP4系だったもので、上記ライブラリは使用不能であり
煮詰まってしまいました。

どなたか、お助けください。
382nobodyさん:2008/03/27(木) 16:11:42 ID:???
383nobodyさん:2008/03/27(木) 16:22:31 ID:???
>>381
rsvg-convert
384nobodyさん:2008/03/27(木) 17:29:35 ID:wJkba3DR
php.iniにて
mbstring.internal_encoding = eucJP-win
と設定しております。
<?=phpinfo()?>
でブラウザから確認するとちゃんとeucJP-winとなるのですが、
コマンドラインから実行する際に
print mb_internal_encoding();
としたらEUC-JPとなってしまいました。
コマンドラインではphp.iniの設定は読まれないのでしょうか?
またどこで設定すれば良いのでしょうか?
385nobodyさん:2008/03/27(木) 18:36:22 ID:???
>>381
svgなんて死んだ規格使うなよ
386nobodyさん:2008/03/27(木) 18:38:13 ID:8KxLf7TG
PHP5.2.5をインストールしたところ、

PHP -v

とやると

PHP Warning: PHP Startup: Unable to load dynamic library
'./xsl.so' - ./xsl.so: cannot open shared object file:
No such file or directory in Unknown on line 0

こんな感じのエラーがいくつも出てしまうんですが、なぜでしょう?
ちゃんと
/usr/lib64/php/modules/xsl.so
はあるんですけども。。。
387nobodyさん:2008/03/27(木) 18:44:21 ID:???
>>386
見つからない './xsl.so' の './' はどこでしょう。
388386:2008/03/27(木) 19:03:53 ID:8KxLf7TG
>>387

ああ、カレントですね。で、

cd /usr/lib64/php/modules/

php -v

PHP Warning: PHP Startup: dom: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0

です・・・。今一歩?いや、離れた?.soファイルの位置ってどの段階で
指定しているのだろう・・・?
389386:2008/03/27(木) 19:12:46 ID:???
というか、rpmをきちんと削除しないでインスコしたのが元凶な
気がしてきた。
390nobodyさん:2008/03/27(木) 19:39:44 ID:???
>>388
つい昨日、いろんな理由で、PHPをsrc.rpmからいれて
同じような問題がおこって設定した。

.soファイルの位置は/etc/php.iniのextesionなんたらで指定できる。

俺は面倒だったから絶対パス指定に書き換えた。
391386:2008/03/27(木) 20:33:09 ID:???
>>390

どうも。

そのようにやったら、メッセージが386から388のに変わった。
要するに、入ってる*.soが古いらしいんだが、なんでPHPの
インストールで入ってくれないのか分からん。
392nobodyさん:2008/03/27(木) 21:23:38 ID:???
>>391入れなかったから入ってくれなかったんじゃねーの?
393390:2008/03/27(木) 21:46:16 ID:???
俺はsrc.rpmからいれたんでちょっと違うんだが、
それでも(configureをいじって)rpmパッケージを作成してから
入れたので参考になるかもしれん。

rpmはphp本体とモジュールで分かれていた。
つまり、php-なんたら-xsl-なんたら.rpmを入れるんじゃね?
って>>392といっている事同じなんだが。
394nobodyさん:2008/03/27(木) 22:16:05 ID:xfNpn7Y+
phpというよりはhtmlよりの質問で申し訳ないのですが、
プログラムやってる人じゃないとフォームはなかなか使わないと思うので、
スレ違いとはわかっていますがご指南お願いします。

アンケートを作っています。回答を選択する場合、一般的にはselectを使いますよね?
<select name="vote">
<option value="1">value1</option>
<option value="2">value2</option>
</select>

適切な回答内容がない場合、その他という形でテキストフォームから追加できるようにしたいのですが、
その場合の書き方の検討がつきません。

<input type="radio" name="select">
<select name="vote">
<option value="1">value1</option>
<option value="2">value2</option>
</select>
<input type="radio" name="select">
<input type="text" name="vote">

フォーム配置のイメージとしてはこんな感じなのですが・・・

textのほうのname名を別名(たとえばavote)にして、

if ($_POST['select'] && $_POST['avote'])
という感じにして処理するしかないのでしょうか?
395nobodyさん:2008/03/27(木) 22:24:40 ID:???
>>394
<select name="vote">
<option value="1">value1</option>
<option value="2">value2</option>
<option value="3">その他</option>
</select>
<input type="text" name="avote">
として、その他を選んだ場合のみavoteを参照するってのが一般的かと
396394:2008/03/27(木) 22:26:52 ID:???
>その他を選んだ場合のみavoteを参照するってのが一般的かと
あーなるほど。盲点でした。
voteにその他を追加すればよいのですね。
どうもありがとうございます。
397nobodyさん:2008/03/27(木) 22:58:32 ID:???
imagick2.1.1を入れました

$image = new Imagick();
$image->readImage($url);

これだと外部にある画像を読み込んでくれません
URLを読み込むにはどうしたいいのでしょう?
マニュアル調べても分からなくて
398nobodyさん:2008/03/27(木) 23:09:22 ID:6a96K/LD
A〜Zまでを一つずつではなく、連続で表示したいのですが
どういう風に書けばいいのでしょうか?
399nobodyさん:2008/03/27(木) 23:11:58 ID:U1kIZSVM
質問します
var_dump()をかけると、以下を返す連想配列$evDayAryがあります
Array ( [2008-03-01] => 1 [2008-03-02] => 2 [2008-03-07] => 1 [2008-03-09] => 1 [2008-03-13] => 1 [2008-03-15] => 2 [2008-03-16] => 1 [2008-03-29] => 1 [2008-03-30] => 1 )
これに対して、
if($evDayAry["{$scheResult->fields[8]}"]){処理;} とするとき、
{$scheResult->fields[8]}が
2008-03-13 2008-03-15 2008-03-16 2008-03-29 2008-03-30 の時は処理をするのに、
2008-03-01 2008-03-02 2008-03-07 2008-03-09 の時は処理してくれません。
何故でしょう?どうしたらいいんですか? 七転八倒したんですが良くわかりません
どなたかご回答お願いします
400nobodyさん:2008/03/27(木) 23:53:54 ID:???
>>399
{$scheResult->fields[8]}
日がゼロサプレスすると、1桁ってのがヒントかもしれぬ
401nobodyさん:2008/03/28(金) 00:01:40 ID:???
>>398
foreach (range('A','Z') as $c) echo $c;

echo implode(range('A','Z'));
一つずつの意味がよくわからんけどこういうことがしたいのかな。
402nobodyさん:2008/03/28(金) 00:05:40 ID:???
GDのImageCreateFromJpegで読み込んでImageJPEGで生成したものを
Imagickに受け渡してなんとかなった気がする
すごい無駄な処理を噛んでる気がするけど
403nobodyさん:2008/03/28(金) 00:28:16 ID:AaqCMoS5
<?php
if($_POST['address']){
$mailto=$_POST['address'];
$mailsubject=mb_convert_encoding("【メールのサブジェクト】","JIS","EUC-JP");
$mailbody=mb_convert_encoding("メールを送信しました。","JIS","EUC-JP");
$mailheader="From: php mail<[email protected]>";
mb_language("Japanese");
if(mb_send_mail($mailto,$mailsubject,$mailbody,$mailheader)) print "送信完了";
else print "送信失敗";
}
print<<<STD
<html><head><title></title></head><body>
<a href="mail.php" style="font-size:10pt;">更新</a><br><br><br>
<form action="mail.php" method="POST">
<div style="border:1px #A5ACB2 solid;text-align:center;padding:15px; 0px 10px 0px;">
<div style="margin:0px 0px 0px 0px;font-size:10pt;color:#6b6b6b;">メールアドレスを記入して送信して下さい</div>
<input type="text" name="address" style="width:250px;border:1px #A5ACB2 solid;">
<input type="submit" value="送信" style="width:80px;border:1px #909eb2 solid;background-color:#f0f0f0;margin:10px 10px 0px 0px;">
</div></form></body></html>
STD
?>
記入したメールアドレスに宛ててメールを送信するスクリプトを作っているのですが、
どうしてもメールのサブジェクトが文字化けしてしまいます・・・。
どうしたら良いでしょうか?
404nobodyさん:2008/03/28(金) 00:32:27 ID:???
>>403
mb_convert_encoding();
で指定
405398:2008/03/28(金) 00:52:16 ID:???
>>401
これです!上手く行きました。ありがとうございました。
406403:2008/03/28(金) 00:59:07 ID:AaqCMoS5
>>404
どうしても
「【メールのサブジェ%/%H![ 」と言う感じに文字化けしてしまいます・・・
407nobodyさん:2008/03/28(金) 01:46:26 ID:g+1Sesc4
<a>
<b>
<c>abcde</c>
<d>efghi</d>
<children>
<a>
<b>
<c>abcde</c>
<d>efghi</d>
<children>
<a>
<b>
<c>abcde</c>
<d>efghi</d>
</children>
</children>
<a>
<b>
<c>abcde</c>
<d>efghi</d>

こういうxmlで<children>の数が不規則な場合、どうやってすべての<c>と<b>を取得すればいいでしょうか?
simplexmlを使えるのですがどう書けばいいかわかりません
ご教授ください
408nobodyさん:2008/03/28(金) 02:14:59 ID:???
foreach($obj->children as $child)
409nobodyさん:2008/03/28(金) 05:08:33 ID:???
memcacheをセッションストレージに使うことにしました
デフォルトだと使用メモリサイズが64Kですが
もしこれを超えたらどうなりますか?
410nobodyさん:2008/03/28(金) 08:48:06 ID:???
>>409
メモリーリークが発生するから、モジュール版phpを使っていると、
apacheが自動的に再起動がかかる。経験済み。
411nobodyさん:2008/03/28(金) 09:53:44 ID:???
>>406
まさかと思うが、ソースをSJISとかで記述してるのではあるまいな?
412nobodyさん:2008/03/28(金) 10:24:19 ID:???
>>407
それは、Well-formedですらないからあれだけど、
XMLパーサ関数ならキレイにbとcだけ取り出せるよ。
413nobodyさん:2008/03/28(金) 19:16:19 ID:???
>>410
メモリーリークって・・・そんなバギーなんですか?
理想的には他のアプリが影響受けないようにmemcache用の別鯖立てた方が
いいってことかな?
414nobodyさん:2008/03/28(金) 19:25:09 ID:???
$aa = "123456";
(中身は変動します)
この先頭から3文字だけ削除するにはどうしたらいいですか?
415nobodyさん:2008/03/28(金) 19:56:16 ID:???
>>414
substrとかで調べると幸せになれるかも。
416nobodyさん:2008/03/28(金) 20:21:31 ID:???
皆さんは成果物をどのレベルまで作り込みますか?
・まったくalertが出ないレベル
・errorは出ないけどalertは許すレベル
417nobodyさん:2008/03/28(金) 21:10:11 ID:???
何がエラーで何が仕様か分からないレベル
418nobodyさん:2008/03/28(金) 21:10:50 ID:???
>>416
質問は許すがおまえは許さないレベル
419nobodyさん:2008/03/28(金) 22:04:45 ID:???
>>416
alertって何?
420nobodyさん:2008/03/28(金) 22:30:01 ID:???
>>416
正座のまま後ろに倒れた人
421nobodyさん:2008/03/28(金) 22:36:57 ID:???
>>416
言い逃れができるレベル
422nobodyさん:2008/03/28(金) 23:11:19 ID:???
E_NOTICEがでるプログラムなんてかこわるい
423nobodyさん:2008/03/28(金) 23:18:16 ID:???
ID出してない >>416 の人気に嫉妬
424nobodyさん:2008/03/29(土) 01:20:21 ID:nk5k7Lsc
simplexml-load-fileについて質問です。
あるxmlファイルをsimplexml-load-file()でパースした時に
以下のような警告が出てしまいます。

Warning: simplexml_load_file() [function.simplexml-load-file]: Bytes: 0xAD 0xE0 0xA3 0xB0

原因なんですが、どうやらxmlファイルのデータに があると
このエラーが出てしまう見たいなのですが解決方法ってありませんか?
425nobodyさん:2008/03/29(土) 02:00:57 ID:???
 を取る
426424:2008/03/29(土) 02:08:21 ID:???
>>425
ウェブサービスから送信されてくるデータなんで
そういう訳にもいかないんです。
427nobodyさん:2008/03/29(土) 02:15:54 ID:???
>>426
受け取って、>>425
428nobodyさん:2008/03/29(土) 02:18:32 ID:???
パースする前にトリミングすればいいじゃん
429nobodyさん:2008/03/29(土) 02:25:05 ID:???
そもそも、何でそんな警告が発生するんだろ。
XMLのencoding指定が正しくされていないとかいうオチ?
430424:2008/03/29(土) 02:38:45 ID:???
>>427>>428
いや、本来はそうしたいのですが、こちらとしては受けて側で、
勝手に仕様を変えられる立場にはないんです。
431nobodyさん:2008/03/29(土) 02:40:02 ID:???
何を言ってるんだ?
432424:2008/03/29(土) 02:45:12 ID:???
>>431
抽象的な表現で誤解を与えてしまってすみません。
例えていいますと、私は流れてきた電波を映像に変換するテレビを作る立場の人間で、
テレビ局に、電波をハイビジョンで送ってくれとかノーマルで送ってくれとか、いう立場にないという意味です。
433nobodyさん:2008/03/29(土) 02:47:09 ID:???
録画してCMカットする知能が無くて絶望した

file_get_contents()とかで取り込んでから加工しろ
ここまで言わないと分からないなんてどんな馬鹿だよ…
434nobodyさん:2008/03/29(土) 03:00:02 ID:???
柔軟性が足りないということかなw
きっとURLをそんままぶちこんでるんだと思うよ
変数で受け取ってからゴミをとってそれからパースする
そのままぶちこまなくてもイインダヨ
435424:2008/03/29(土) 03:18:20 ID:???
>>433>>434
アドバイスありがとうございます。そういうことだったんですね。
そういう発想がなかったのですが、それならなんとかなりそうです。
遅い時間に、どうもありがとうございました。
436nobodyさん:2008/03/29(土) 05:10:26 ID:???
$a = "abcdef";
echo $a."-ghijklmn";

とする場合と

echo "abcdef-ghijklmn";

の場合ではどちらが表示が早い、もしくは負荷がかからないのでしょうか?
437nobodyさん:2008/03/29(土) 05:12:27 ID:???
変数にいれない分下のほうが早いが
ミリ秒とかマイクロ秒とかとてつもなく小さい誤差なので気にしなくていい
438nobodyさん:2008/03/29(土) 05:14:54 ID:???
ちょwはやw
ありがとうございます

プログラム文自体が短い方が早いのかと思いましたがストレートに書いた方がいいのですね
439nobodyさん:2008/03/29(土) 06:13:04 ID:???
プログラム文の短さなんて何の関係もねーよ
小学生乙
440nobodyさん:2008/03/29(土) 12:22:06 ID:siokcgs9
echo time();
すごい時間かかる処理
echo time();

なぜか数秒しか立ってないんだけど
ちゃんと処理時間を割り出すにはどうすればいいのかしら
441nobodyさん:2008/03/29(土) 12:33:44 ID:???
すごく時間のかかる処理って具体的にどのくらいだよ。
442nobodyさん:2008/03/29(土) 12:55:37 ID:???
echo time();
for($i=0;$i<1000000000000000;$i++){echo time();}
echo time();
443nobodyさん:2008/03/29(土) 13:08:22 ID:???
>>442
それだと、メモリーリークして最後まで実行できないよ。
444nobodyさん:2008/03/29(土) 13:08:41 ID:???
printで表示するとき「 ' 」と「 " 」で文字列を囲めますが
どっちで囲んだほうがいいとかありますか?
445nobodyさん:2008/03/29(土) 13:18:51 ID:???
「 ' 」は波平、
「 ''' 」はオバQ。
446nobodyさん:2008/03/29(土) 13:48:32 ID:???
>>444
それぞれ用途が違う.
447440:2008/03/29(土) 14:05:55 ID:siokcgs9
違うサーバーから一件がつ
何百人分のデータを取得加工したり
レンダリングは数十分後なのに

5秒経過とか出る件について
448nobodyさん:2008/03/29(土) 14:28:22 ID:???
phpのそのブロック間の処理時間は5秒で正しい
449nobodyさん:2008/03/29(土) 15:33:43 ID:???
すごい時間かかる処理ってのがバックグラウンドで動いてるんでしょどうせ
450nobodyさん:2008/03/29(土) 16:16:00 ID:???
>>444
まずマニュアルを探せ、そして読め
http://www.php.net/manual/ja/language.types.string.php
その上で質問すると自分のためになるよ
451nobodyさん:2008/03/29(土) 17:14:52 ID:7xNaxr2G
PHP初心者ですが質問が

テキストデータがあります
1
3
7
12


みたいな感じで入っています。
そこから、データを整数型で読み出して
最大値を取り出すにはどうすればよいでしょうか?

ぐぐってみたものの分からず。
よろしくお願いします
452nobodyさん:2008/03/29(土) 17:21:41 ID:???
>>451
マニュアル1度くらいは読もうよ
453nobodyさん:2008/03/29(土) 17:34:33 ID:7xNaxr2G
>>452

すんません、一度読んでみます。

あと、もしよろしければお願いが。
一応プログラム載せてみますので
その間にもしまずそうな所あればご指摘願えませんか?

下記プログラムだと結果が12でなく7になってしまって
よろしくお願いします。

$fp=fopen("test.txt","r");
$num=0;
$makusu=0;
for($num=0;$num<10;$num++){
$tdata[$num]=fgets($fp,1024);
if($makusu<$tdata[$num]){
$makusu=$tdata[$num];
}
}
fclose ($fp);
454nobodyさん:2008/03/29(土) 17:43:23 ID:???
phpがキッカケでこの業界に入ったのが、3年前の今頃。
金が良かったこともあって、流される感じで時間を過ごしてしまった。

が、振り返ると、人から言われたことをそのまま翻訳するだけの流れ作業的仕事。
自由な発想で作りたかったけど、一度もそのような機会が恵まれず、昨日付けて会社を退職しました。

来月から、大学の先輩を頼って監査法人に入ります。
数年後には、公認会計士を目指して頑張ります。

このスレは、仕事で分からなかったときに何回がお世話になりました。
本当にどうもありがとうございました。
455nobodyさん:2008/03/29(土) 18:13:18 ID:???
俺が作るとしたらこんな感じだな
条件が書かれていないから考えられる中でのシンプル

$csvdata = file("./test.txt"); //textを配列に取り込む
sort($csvdata,SORT_NUMERIC); //配列の値を数値として並び替え
echo '最大値:'.end($csvdata); //数値として並び替えしているから配列の最後の値を表示

>>453
それは数字ではなく文字列で比較しているからだな
1 と 7 の文字の場合7の文字コードの方が大きい
if($makusu<((int)$tdata[$num]){

とでもして試してごらん

456nobodyさん:2008/03/29(土) 18:25:10 ID:???
>>455
キャストでtypoしてるよ。

× if($makusu<((int)$tdata[$num]){
○ if($makusu<(int)$tdata[$num]){

>>453の微笑ましいロジックのまま対処してるとこに和んだ。
457nobodyさん:2008/03/29(土) 18:38:41 ID:???
>>456
フォローサンクス
typoはよくやるんだよなぁ…この癖を直さないとなぁ

とりあえずなぜその結果が出たのか?の疑問だったからなぁその部分だけ解決する方法をね
あとは試行錯誤してコードを直していくのが自分のレベルアップの為だと思うし
458nobodyさん:2008/03/29(土) 19:15:19 ID:???
$makusuて
459440:2008/03/29(土) 20:52:41 ID:siokcgs9
処理はバックグラウンドって
そんなバカな
460nobodyさん:2008/03/29(土) 21:54:44 ID:???
$aaa[0] = array( "abc"=>"123","def"=>"456");
$aaa[1] = array( "AAA"=>"123","BB"=>"456");

こういう配列で$aaa[0]の一番最初のabcは$aaa[0][0]ではないのでしょうか?
うまくとりだせません
461nobodyさん:2008/03/29(土) 22:08:51 ID:???
$aaa[0]["abc"]
462nobodyさん:2008/03/29(土) 22:10:32 ID:???
>>460
意味わかんないのに "abc"とか書くなって
頼むからマニュアルか入門サイトか入門本でも見てくれ
463nobodyさん:2008/03/29(土) 22:40:12 ID:TG/x4Siy
!$a
$a == null
is_null($a)

の違いがわかりません
動作的には全部一緒の動作をするようですが
どう違うのでしょうか?
464nobodyさん:2008/03/29(土) 22:48:13 ID:???
>>463
それを説明するのはむずかしい
全部状態が0なんだよ
$a == false
$a = 0
なんかも
465nobodyさん:2008/03/29(土) 23:35:26 ID:???
>>463
とりあえず試してみた。
!$a は$aが0や'0'や空文字列やfalseの時にも真になる。
$a==null も同様。

is_null($a);は$aがnullのときだけ真になる。
$a==nullも同様。
466465:2008/03/29(土) 23:36:05 ID:???
ミスった。最後は
$a===null ね。
467nobodyさん:2008/03/29(土) 23:37:10 ID:???
is_nullは違うだろ.emptyなら同じだが
468nobodyさん:2008/03/29(土) 23:54:09 ID:7xNaxr2G
453です。

すいません、お礼がすごく遅くなりまして。。

みなさんのおかげでなんとか解決できました。
本当にありがとうございます。
469がぐゆき:2008/03/30(日) 00:36:27 ID:OfxxBLHH
質問させてください

変数に入っているtextを一行ずつ処理したいのですが
どうしたら宜しいでしょうか???

ファイルを読み込んで一行ずつ処理する方法は沢山ありますが
変数内のtextの処理は見つかりませんでした…

ご教授よろしくお願いいたします。
470nobodyさん:2008/03/30(日) 00:38:19 ID:???
explode("\n", $text)
471nobodyさん:2008/03/30(日) 01:17:19 ID:???
>>470
サンクス

でもその後も欲しい…

foreach($sub_text as $text){
処理
処理
処理
}

でいいのけ???
472nobodyさん:2008/03/30(日) 01:19:11 ID:???
だめだぴょん
473がぐゆき:2008/03/30(日) 01:21:01 ID:OfxxBLHH
>>472
ぴょんじゃねーよwww

おしえてくだしあwww
474nobodyさん:2008/03/30(日) 01:51:39 ID:???
自分の頭使って考えろボケカス
475がぐゆき:2008/03/30(日) 02:12:14 ID:???
自分で考えた結果やっぱりこうなったぉ???

foreach($sub_text as $text){
処理
処理
処理
}

今の所うまくいってるみたいだけど…?

もっとスマートというか…セオリーがあったら
nobody大先生に教えてもらいたいぽ…

476nobodyさん:2008/03/30(日) 02:14:12 ID:???
二度と来ないで下さい。
次の質問よろ。
477nobodyさん:2008/03/30(日) 02:57:50 ID:xDq/YOeJ
プログラムをいろいろと拡張する中で使用する自作関数が増えてきたのですが、
大量の関数をうまく扱うコツなんかはないでしょうか?
478nobodyさん:2008/03/30(日) 03:19:53 ID:???
本当にそんなに自作関数が必要か客観的に見直してみる。
479nobodyさん:2008/03/30(日) 04:18:46 ID:???
>>478
自作関数は必要でしょ。どの言語体系でも関数を自作で作られる機構は用意されているし、
世の中ビルトイン関数だけで片付くものじゃない。
素人かな?
480nobodyさん:2008/03/30(日) 04:28:44 ID:???
自作関数そのものが要らないとは言ってなくね?
1度しか使わないうえに数行で書き直せるようなコードがガッツリ関数化されてたなんてのは良くある話

同じような系統の処理をクラスに纏めるとか、命名規則とか、ちゃんとコメントを入れるとか
1年後に見ても何をする関数なのかすぐ理解できるような書き方をしておくと扱いやすいかも知らん
481nobodyさん:2008/03/30(日) 04:33:45 ID:???
>>479
ワラタ プログラミング学び始め3ヶ月の初心者乙w
482nobodyさん:2008/03/30(日) 04:50:10 ID:???
>>480
>>478は、見直してみろって言っているが、暗に自作関数は要らないと言っていると思うんだが。
後半は、同意。

>>481
3ヶ月どころか、3年を通り越して7年もやっているんだが。phpだけじゃないが。
483nobodyさん:2008/03/30(日) 04:56:45 ID:???
>>482
とてもそうは見えないですよ。本当のところは3週間くらいかと思った。そもそも国語力が足りないんじゃないですか?

484nobodyさん:2008/03/30(日) 05:04:06 ID:???
>>483
意味分からん。
phpはビルトイン関数が多いから、自作関数を作るのはビルトイン関数を
把握しきれていない証拠だといいたいのか?

ビルトイン関数はユーティリティー関係が充実しているのは確かだが、
それだけではシステムは組めない。
業務クラスを実装していけば、複数の業務で共通する処理を業務共通クラスとして外だしにすることもよくあること。

もっと、勉強してこい。
485nobodyさん:2008/03/30(日) 06:34:08 ID:???
>>484はプログラミング初心者ではないと思うが、日本語初心者だろうとは思う
486nobodyさん:2008/03/30(日) 06:34:28 ID:???
>>483
>>478は自作関数は要らない ではなく、関数化する必要が在る・無いを見極める事が必要って言っていると思う

関数化は作る時の作業効率だけではなく、他人が後からトレースする時の効率も考える必要があると思う
スパゲティコードもトレースに時間がかかるけど、関数だらけのもトレースに時間がかかる
自作関数の中にまた自作関数があって、その中に自作関数があって、やっている事は数行で1度しか呼び出しされない
とか…それが解るのはそのファイル内の処理を全てトレースして理解してからなんだよね
関数化やライブラリ化するのかそのバランスを見極める必要はあると思う
487nobodyさん:2008/03/30(日) 09:29:29 ID:oSilb2mW
パスワードをハッシュで保存して、パスワードが入力されたらハッシュ化して比較しようと思っています。
ハッシュ文字列が長いので、ログのサイズカット目的で、
substrで7文字程度にカットしようと思うのですが、これで行った比較は正確なものと言えるでしょうか?
488nobodyさん:2008/03/30(日) 09:41:35 ID:???
部分だけの比較でなんで正確だと思うんだ。
489nobodyさん:2008/03/30(日) 10:15:54 ID:???
>>477
自分は単なる関数でもクラスのstaticメソッドにして整理してる。

>>487
正確はどうかは、ここで言う「正確」という言葉の定義による。
ログの目的にもよるけど、ログ出力するときだけカットするようにしたら?
490nobodyさん:2008/03/30(日) 10:24:41 ID:???
数万文字程度なら黙って全部MD5にぶちこめ
491nobodyさん:2008/03/30(日) 10:32:48 ID:???
>>490
md5で生成された32バイトの文字列が長いということではないの?
492487:2008/03/30(日) 11:00:37 ID:???
レスありがとうございます

>>488
言われてみればそうですね。ほぼ正確という言葉が正しかったですね。

フォーラムを作っていてトピックや発言を消せるようにパスワードをつけています。
DBを用いずテキストにログを保存しているため、ログが蓄積するとDBに比べ速度が遅くなります。
少しでも読み込む文字列を少なくするために、保存する時にハッシュ化したパスワードをカットしようと思った次第です。
アルゴリズムはビット長の長いwhirlpoolを使っています。

妥協して安全性には少し難がありますが、ビット長の短いものに変更したいと思います。
493nobodyさん:2008/03/30(日) 12:48:20 ID:???
>>463
はい、マニュアルどうぞ
http://www.php.net/manual/ja/types.comparisons.php
494nobodyさん:2008/03/30(日) 18:18:33 ID:???
$_SERVER["HTTP_CONNECTION"] って普通のブラウザ(携帯除く)なら必ず Keep-Alive になるのでしょうか?
スパムを防ぐのにこれを入れておくと、どういう不都合が考えられますか?
495nobodyさん:2008/03/30(日) 19:14:15 ID:pBE7+GD1
すでに存在する関数「db_get」というのが読み込まれているのですが、それを無効化して、あらたに「db_get」という関数を定義することはできるのでしょうか?
他のファイルで旧「db_get」を使用しているため、古いのは残したまま、別のPHPでは新しいdb_getを実行したいのです。
なお読み込みは全て共通ファイルで読み込んでいるので、新しいPHPでも古いdb_getは読み込まれています。
やはり新しいほうを別の名前にするしかないでしょうか?
496nobodyさん:2008/03/30(日) 20:25:54 ID:LU6QHGFg
iniファイルで文字を取得して出力しているのですが、
伸ばし棒のところで文字化けしてしまいます。
どうしたらいいでしょうか?
497nobodyさん:2008/03/30(日) 20:30:28 ID:???
>>495
名前空間使えばできるけど現状では無理。
プレフィックスつけるかクラスに閉じ込めるのが現実的かと。
>>496
コード見せて。
498nobodyさん:2008/03/30(日) 20:37:26 ID:LU6QHGFg
class page{
private $ini = "";
public function __construct(){
$this->ini = parse_ini_file("PHPdefine.ini");
}
public function vewheader(){
print $this->ini["bbs_title"];
}
}

↓PHPdefine.ini
bbs_title=アー
499nobodyさん:2008/03/30(日) 20:58:40 ID:???
>>498
shift-jisやめれ
500nobodyさん:2008/03/30(日) 21:46:48 ID:???
ばーかばーか
501nobodyさん:2008/03/30(日) 22:07:04 ID:???
EUCかUTF-8あたりで保存するんだ。
502nobodyさん:2008/03/31(月) 00:21:19 ID:???
ディレクトリにあるファイル数を確認し、0000x.incというファイル名前をキーに
降順で読み込む。また、10件以上有る場合は次ページ以降を作ってそちらに読み込む。

こんな感じのことできますか?
503nobodyさん:2008/03/31(月) 00:43:38 ID:???
>>502
「0000x.incというファイル名前をキーに」
というところが意味分からん、何のキー?
504nobodyさん:2008/03/31(月) 01:00:09 ID:???
>>502
「…ファイル数を確認し、」以降が全くわからん。

・あるディレクトリ内のファイル数を確認したい。
・ファイル名は "連番.inc" にしてある。ファイル名で降順ソートしたい。
・ソート後、ひとつずつファイルを読み込んで1件/1ファイルとして出力したい。
・最大10件/ページになるようにしたい(ので、ファイル数を確認した)。

自分のエスパーカではこれぐらいが限度だ。
505nobodyさん:2008/03/31(月) 01:13:18 ID:???
>>503
そうですね。書いてても分かりませんでした。

>>504さんのおっしゃるとおりです!ビックリエスパーですorz

連番.incファイルを読み込みたいんです。
その内容はただのtableタグで書かれた表なんですが、データベースとか使えない
サーバーで、それ以前の問題の気もしますが。

・連番の数の大きいほうが、新しいファイルなので降順にしたい
・一つのページに表は10個読み込みたい。
・10個以上ある場合、次のページにいくようにしたい。

以上のことがしたいんだと思います。
506nobodyさん:2008/03/31(月) 01:20:16 ID:???
ひとまず質問するならID出そうな、>>1読んでね
で、出来るかどうかなら「出来る」
507nobodyさん:2008/03/31(月) 02:25:45 ID:???
プログラムの能力よりもコミュニケーション能力が如何に大切かがようやく分かったような気がする。
508nobodyさん:2008/03/31(月) 04:13:28 ID:???
system()で
対話形式、たとえば、ssh でパスワード入力したいんだけど、
良い方法ないでしょうか。
単純に
system("ssh -phogehoge localhost")
としちゃうとパスワードがローカルユーザーに漏れてしまう可能性があるので。
509495:2008/03/31(月) 08:55:13 ID:aabaHexl
>>497
そうなんですか……
おとなしく接頭語をつけることにします。
ありがとうございました。
510nobodyさん:2008/03/31(月) 09:47:51 ID:???
511nobodyさん:2008/03/31(月) 09:52:46 ID:???
>>508
そういう場合、一般的には expect スクリプトを用意するんだけど、
sshだったらホストベースのRSA認証でログインするのがいいんじゃない?
とはいえ、信用できないユーザがいるホストからスクリプトでログインしたいとはなかなか豪快な話。
512nobodyさん:2008/03/31(月) 11:20:40 ID:zaGfhvtn
>>505
方法は二つ
・各ファイルの情報を持つ親ファイルを作る。
・ファイル名を工夫する。ハイフォン等を用いてファイル番号と行数をファイル名とする。
513nobodyさん:2008/03/31(月) 11:40:30 ID:???
ハイフォン(笑)
514nobodyさん:2008/03/31(月) 13:23:58 ID:???
>>495
http://jp.php.net/manual/ja/function.runkit-function-redefine.php
とか使えばできる
ただこれは標準関数じゃないので
peclからインスコが必要
515nobodyさん:2008/03/31(月) 13:25:46 ID:D840Cc+c
iniファイルの値を配列として取得することは出来ないでしょうか?
516nobodyさん:2008/03/31(月) 13:29:03 ID:???
>>515
parse_ini_file
517nobodyさん:2008/03/31(月) 13:30:35 ID:???
>>514
指定したクラスに新しいメソッドを動的に追加することもできるんだ。
前そんな話が出てたと思うけど便利だね。
518nobodyさん:2008/03/31(月) 13:46:22 ID:D840Cc+c
>>516
parse_ini_fileの場合は連想配列で取得ですよね?
連想配列ではなくて、通常の配列で取得する方法を探しているのですけど
519nobodyさん:2008/03/31(月) 13:59:27 ID:???
じゃあarray_values(parse_ini_file($filename))
520nobodyさん:2008/03/31(月) 14:37:58 ID:???
>>518
教えてもらうほうが偉そうってすごいよなw
最近は質問系サイトの影響かと思っているが
521nobodyさん:2008/03/31(月) 14:40:30 ID:???
質問スレは、質問者で成り立っているんだから、
ある程度傲慢でもしょうがないんじゃないの。

そんなことに、いちいち突っ込む奴がどうかと・・・
522nobodyさん:2008/03/31(月) 14:52:28 ID:???
成り立ってるのはお互い様だろ
523nobodyさん:2008/03/31(月) 15:12:31 ID:???
>>521
おいおい何言ってんだ。回答者で成り立ってんだよお前知障か。
質問者なんていなくとも誰も困らん。
524nobodyさん:2008/03/31(月) 15:19:28 ID:???
>>523
両方だろ。馬鹿レスしていると、お前のチンチンちょん切るよ!
525nobodyさん:2008/03/31(月) 15:32:30 ID:???
質問者以外はお帰りください(笑)
526nobodyさん:2008/03/31(月) 15:41:29 ID:???
>>518
で,その問題はそれで解決したのか?
527nobodyさん:2008/03/31(月) 15:45:56 ID:???
尋ねる人と答える人以外は必要ないしな。
茶々入れる人は最優先でいらない人。
528nobodyさん:2008/03/31(月) 16:03:28 ID:???
華麗にスルー
529nobodyさん:2008/03/31(月) 16:43:15 ID:???
ばーかばーか
530nobodyさん:2008/03/31(月) 17:48:52 ID:bWUoRvpM
echo date("m",strtotime("+1 month"));

としたら、04ではなく、05になります。
今はまだ3月なので4になるはずなのですが、どうしてでしょうか?
531nobodyさん:2008/03/31(月) 17:58:54 ID:???
>>530
04月には31日がないからPHPさんも困ったんじゃないかな
532530:2008/03/31(月) 18:06:52 ID:bWUoRvpM
>>531
この書き方の場合、「月だけ+1して表示」することは出来ないのでしょうか?
どういう風な書き方をするのがベストなのでしょうか?
533nobodyさん:2008/03/31(月) 18:11:58 ID:???
mktime
534531:2008/03/31(月) 18:16:30 ID:???
>>532
> 「月だけ+1して表示」
それをそのまま書くとか

echo date("m") + 1; // string + 1 が気持ち悪ければ (int) するなり何なり
535nobodyさん:2008/03/31(月) 18:18:58 ID:???
年の瀬で涙目
536531:2008/03/31(月) 18:20:45 ID:???
ですよね
537nobodyさん:2008/03/31(月) 18:29:17 ID:???
12より大きけりゃなんたらって処理入れるだろ普通w
538530:2008/03/31(月) 18:33:57 ID:bWUoRvpM
>>534-537
みなさん、ありがとうございます。
それでは以下のようなコードを書いてみましたが、いかがでしょうか?

// 次の月にまたぐ場合
if(date("j")>=abs($_POST["day"])){
$month = date("m")+1;

// 12より大きい場合
if($month > "12"){
$year = date("Y",strtotime("+1 year"));
$month = "01";
}else{
$year = date("Y");
}
}else{
$month = date("m");
$year = date("Y");
}
539nobodyさん:2008/03/31(月) 18:37:28 ID:NIwRaO2m
redhat 7.3 + rpm 標準付属の php-4.1.2 を使っています。

APC とか、MMCache とか、ionCube とか、e-accelerator とか、
スクリプトキャッシュを入れたいんだけど、
rpm を使って簡単に導入できるものってある?

DAG とかで公開されてる rpm は、fedora core 2 以降がほとんどで、
redhat 7.3 みたいな古代遺跡には対応してくれてないみたいなんだよね。。。
540nobodyさん:2008/03/31(月) 18:39:32 ID:???
いかかですか?って、アホだなぁという感想しか
541nobodyさん:2008/03/31(月) 18:56:58 ID:???
>>538
ググッた結果mktimeで一日とかのタイムスタンプを作ったほうが楽そう
542nobodyさん:2008/03/31(月) 19:13:13 ID:???
12の剰余をとるほうが楽じゃね?
543nobodyさん:2008/03/31(月) 19:23:19 ID:???
>>538
初っ端から違和感があるけどPOSTされるデータがよく分からないから黙っておく
$month = date("m")+1;とすると03が4になっちゃうんじゃないかな

年月日までの精度でいいなら単純なint値として扱って
出力時に整形するほうが楽で安全だと思うよ

個人的にはgetdate()で作った配列をバラして使うのが好き
544nobodyさん:2008/03/31(月) 19:33:15 ID:???
PHPでこの先生きのこれますか?
545nobodyさん:2008/03/31(月) 19:42:39 ID:???
きのこるって書きたいだけの人よりは。
546nobodyさん:2008/03/31(月) 20:06:02 ID:???
先のことなど日曜プログラマが気にすることはないよ
547nobodyさん:2008/03/31(月) 20:27:31 ID:???
プロでも日曜プログラマに適わないのも居るがなw
548nobodyさん:2008/03/31(月) 20:51:28 ID:???
業務で使わないなら気にすることはないって言ってるんだろうに
敵う敵わないとか関係ないだろ
549nobodyさん:2008/03/31(月) 21:30:46 ID:???
PHPで生き残れるかは本人しだいだけど、PHPが生き残るかは・・・
5年後には今のN88-BASIC並に廃れてたりちて。
550nobodyさん:2008/03/31(月) 22:40:55 ID:???
「どの言語で作るか?」
よりも
「何を作るか?」

が、重要だと思いますです。
551nobodyさん:2008/03/31(月) 22:51:49 ID:???
「どうやって作るか?」が重要だと思いますです
552nobodyさん:2008/03/31(月) 23:05:10 ID:???
ソースがめちゃくちゃ汚かったとしても
目的を達成する物が出来たら良いと思いますです。
553nobodyさん:2008/03/31(月) 23:16:49 ID:???
いや良くねぇよw
554nobodyさん:2008/03/31(月) 23:28:28 ID:???
一人ならいいかもね
複数でやるには汚いと効率悪い
さらに無駄に処理が重いなら良くは無いかも
555nobodyさん:2008/03/31(月) 23:42:08 ID:???
でも、「効率がよい」って定義も難しくない?

例えば効率が良いと思ってフレームワーク使っても
結局、別の人間がそのフレームワークを使えなければいけないわけで。
556nobodyさん:2008/03/31(月) 23:47:19 ID:???
php書くのにちょうどいいエディタはありますか?
557nobodyさん:2008/03/31(月) 23:47:37 ID:???
何年か前に書いたperlのソースを見たら死にたくなったよ

一人でも綺麗に書いた方がイイ!
558nobodyさん:2008/03/31(月) 23:56:33 ID:???
>>556
emeditor
559nobodyさん:2008/03/31(月) 23:58:29 ID:???
>>556
phpだけで考えるならphpeditorスタンダードアローン版
560nobodyさん:2008/04/01(火) 00:53:09 ID:+ectGcI2
SQL文をヒアドキュメントにしてる場合に、配列の展開はどうすればよいでしょうか?
中括弧で括っても駄目でした。 御教示よろしくお願いします。

$sql = <<< _EOD_
INSERT INTO table2ch VALUES(
'{$entry["name"]}',
'{$entry["kana"]}'
)
_EOD_;
561nobodyさん:2008/04/01(火) 01:17:42 ID:???
>>558-559
トン使ってみる。

562nobodyさん:2008/04/01(火) 01:26:48 ID:???
>>560
出るよ

$entry = array('name'=>'a', 'kana'=>'b');
$sql = <<< _EOD_
INSERT INTO table2ch VALUES(
'{$entry["name"]}',
'{$entry["kana"]}'
)
_EOD_;
echo $sql;

↓結果
INSERT INTO table2ch VALUES( 'a', 'b' )
563nobodyさん:2008/04/01(火) 01:31:50 ID:???
複数の変数展開を要するHTMLの出力には、
ヒアドキュメントを使って全てまとめて出力するのと、
変数部分のみを<?php echo $hoge;?>のようにして出力するのでは
どらが高速でしょうか?
564nobodyさん:2008/04/01(火) 01:36:37 ID:???
死ぬほどわずかしか変わらないから自分が書きやすいほうでおk
565nobodyさん:2008/04/01(火) 01:42:15 ID:???
即レスありがとうございます
死ぬほどわずかでも速い方が精神衛生上良いので、
もし分かれば教えて欲しいです
566nobodyさん:2008/04/01(火) 02:05:45 ID:???
なら前者。
俺ならテンプレートエンジン使うし使わない場合でもHTMLを変数に格納して変数展開はドット演算子で接続するかな。
567nobodyさん:2008/04/01(火) 07:02:29 ID:???
インタープリタで死ぬほどわずかな差を求めても意味ないだろ。
速くしたけりゃ中間言語コンパイラ使うとかもっと抜本的な
解決策を探るべきだよ。
568nobodyさん:2008/04/01(火) 07:07:25 ID:???
ううん
愛なんていらないの
優しい言葉が欲しいだけなの
569nobodyさん:2008/04/01(火) 07:11:52 ID:???
重複しないように値を入れていきたいのですがうまくいきません(重複してしまいます)

if($list["$i"] == ""){
  $list["$i"] = "1234";
}

$list["$i"] == "" この式がおかしいのでしょうか?

もし$list["$i"]がなければ処理という式はどう書けばいいでしょうか?
570nobodyさん:2008/04/01(火) 07:12:22 ID:???
>>568

夕べの寝言、わざと言ったんだよ。知ってた?
571569:2008/04/01(火) 07:32:15 ID:???
事故解決しますた

配列またはオブジェクトをキーとして使用することはできません。
これを行なうと、warning: Illegal offset type を発生します。

だって
572nobodyさん:2008/04/01(火) 08:03:38 ID:???
うまくいかないで伝わるわけないだろ
573nobodyさん:2008/04/01(火) 09:18:24 ID:QfLzxrc0
任意のファイル名でファイルをダウンロードさせるにはどうしたらいいですか?
content-typeをtext/html以外にして出力すれば、
ダウンロード自体はさせることが出来ましたが、
ファイル名が、その処理をするphpのuriになります
リクエストを受けたPHP側で、ダウンロードさせるファイル名を決定するには
どうしたらいいのでしょうか?
574nobodyさん:2008/04/01(火) 09:19:25 ID:???
575nobodyさん:2008/04/01(火) 15:07:37 ID:???
>>569

>>1読んでID出そうな

isset
empty
だろうか、やりたいことがはっきり分からない

問題の出るきちんと動く最小ソースを張れ
576nobodyさん:2008/04/01(火) 15:22:24 ID:???
>>575
>>571らしい。
577nobodyさん:2008/04/01(火) 16:46:41 ID:???
>>574
Content-Dispositionというヘッダを使えばいいんですね
ありがとうございました
578nobodyさん:2008/04/01(火) 17:59:15 ID:QfLzxrc0
PHPで出力をダウンロードさせている時に
ブラウザ側からコネクションが切断された場合、
それを検出するにはどうしたらいいですか?
TCPだからapacheはコネクションの切断を検知してますよね
だからといっていきなりPHPの処理を止めることはないような気がします
何らかのイベントが飛んでくる…?
579nobodyさん:2008/04/01(火) 18:06:41 ID:???
580nobodyさん:2008/04/01(火) 20:20:45 ID:???
PHPのロゴマークが物故割れた!!
581nobodyさん:2008/04/01(火) 20:30:50 ID:???
今年はこれか
そういえば犬の出るバージョンがあったな
582nobodyさん:2008/04/01(火) 20:34:40 ID:???
>>566
>>567
遅くなったけどありがとう
583nobodyさん:2008/04/01(火) 20:39:09 ID:???
えいぷりるふうるw
584nobodyさん:2008/04/02(水) 00:57:36 ID:YnvkKP4H
print_rをしたとき

Array ( [0] => Array ( [0] =>test.php ) [1] => Array ([0] => Array ( [0] => test2.php ) ) )

と、階層化されている配列の場合、ひとつの配列内にまとめるには
どうすればいいのでしょうか?(階層は多階層とします)
585nobodyさん:2008/04/02(水) 01:14:30 ID:???
>>584
宿題は自分でやりましょうw
586nobodyさん:2008/04/02(水) 02:29:34 ID:???
>>584
ヒントは「再帰的関数」
587nobodyさん:2008/04/02(水) 07:03:03 ID:???
>>579
ありがとうございました
「デフォルトの動作はリモートクライアントとの接続が断となった際に
スクリプト の実行は破棄されます」とのこと
ちょっと予想外です
今まで、スクリプトが中断される可能性を考えずに組んできたので
予想外の不整合の種が埋め込まれていたかも・・・不安
588nobodyさん:2008/04/02(水) 07:21:07 ID:OgmDUsd7
$str = "<p>あいうえお</p><p>かきくけこ</p>";
echo preg_replace("/<p>(.+)<\/p>/", "<div>\\1</div>", $str);

<div>あいうえお</div><div>かきくけこ</div>と置き換えたいのに、
<div>あいうえお</p><p>かきくけこ</div>となってしまいます。
どこをどうしたらいいのかアドバイスお願いします。
589nobodyさん:2008/04/02(水) 07:23:28 ID:???
結構表現が曖昧だなぁ

シャットダウン関数を定義した場合、リモートユーザーが STOP ボタンを押した後、
「次にスクリプトが何か出力を行おうとした場合、」
PHP は接続が破棄されたことを検知し、 シャットダウン関数がコールされます

何も出力されなかったら接続の破棄は検知されない?
出力を伴わない作業であれば、ある程度アトミックに動作する?
590nobodyさん:2008/04/02(水) 08:08:15 ID:???
>>588
/<p>(.*?)<\/p>/si
とか最短マッチにする。
591589:2008/04/02(水) 11:51:06 ID:???
http://hrgs.xrea.jp/2006/02/20/php_ignore_user_abort
やっぱり出力しない時は切断を検知しないんですね
出力がない限り通信が発生しないから
592588:2008/04/02(水) 12:15:06 ID:???
>>590
レス遅れてすみません。

見事思い通りに動作しました。
助かりましたありがとうございました。
593nobodyさん:2008/04/02(水) 13:56:21 ID:???
オブジェクトをグローバル化できないこんなPHPなんて!
594nobodyさん:2008/04/02(水) 14:08:09 ID:???
オブジェクトをグローバル化?
やろうと思えば出来るが、普通はやらないな。
595nobodyさん:2008/04/02(水) 14:26:05 ID:???
>>594
なんか、お前の鼻に突くレスむかつくは。
お前性格悪いだろ。ニート臭がぷんぷんなんだが。
596nobodyさん:2008/04/02(水) 14:30:54 ID:???
>>595
わきから口をはさむが、お前の性格の悪さの滲み出かたのほうが半端ない。クズは死ね。
597nobodyさん:2008/04/02(水) 14:51:00 ID:???
プゲラウッヒョー
598nobodyさん:2008/04/02(水) 15:46:08 ID:???
ガソリン安いな〜
これほど自民党の一党独裁の問題点が分かりやすい現象は無いなw
599nobodyさん:2008/04/02(水) 16:01:35 ID:???
オブジェクトグローバル化って何なんだよww
春休みにも程があるぞ
600nobodyさん:2008/04/02(水) 16:06:57 ID:???
>>598
ガソリン税が減ったぶん、他の税金が増えて公務員が儲かるだけなんだが、アホにはわからないんだろうな。
601nobodyさん:2008/04/02(水) 16:11:43 ID:???
>>600
俺の財布から直接出ていく金額の問題。
あと所得税なら還付される(可能性がある)し。
602595 :2008/04/02(水) 16:12:49 ID:???
ここは、本当に煽りに対して耐性がないね。
>>596が即レスしてきたのには笑えた。

ネットワーク関連のスレだと、これくらいの煽りだと完全にシカトだよ。
アプリケーションエンジニアがネットワークエンジニアに比べて、
如何に忍耐力がないかを示せたと思う。

技術力の根底は、忍耐力。もう少し反省して我慢強くなれよ。そうじゃないと、何をやっても大成しない。
603nobodyさん:2008/04/02(水) 16:13:12 ID:???
>>597-601 ニートうざい。
604nobodyさん:2008/04/02(水) 16:15:10 ID:MqFvUnGs
ここは質問する人のためのスレなんだ。
雰囲気悪くするだけの雑談をしたいのなら他所でしてください
605nobodyさん:2008/04/02(水) 16:18:54 ID:???
>>602,603


ガキはすっこんでろ。
606nobodyさん:2008/04/02(水) 16:42:06 ID:???
ニート同士仲良くしようぜw
607nobodyさん:2008/04/02(水) 16:43:01 ID:???
まあまあ、そう怒らずに自分のオナラの匂いを嗅いでエクスタシー感じようよ。
608nobodyさん:2008/04/02(水) 17:56:48 ID:???
>>607←これ、あっちこっちのスレで見かけるんだが、流行ってんの?w
609nobodyさん:2008/04/02(水) 18:02:16 ID:Exm72Bty
文字列の抜き出しで質問ですが
[141]=> "AAAAAAAAAAAAAAAAAAAACCC1111111111111111111111111111111"
[142]=> "11111111111111111111111111111"
[143]=> "11111111111111111111111111111111111111DDDAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAACCC111111111111111111111111111111111"
[144]=> "11111111111111111111111111111"
[145]=> "11111111111111111111111111111111111111DDDAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAACCC111111111111111111111111111111111"
このような時、"CCC111111111111111111111111111111111111111111111DDD"という
始点終点の一意の単語を目安に、ひと塊ずつ抜き出すには
どのようなやり方がよいのでしょうか?
[143]のように纏まらせたい終端と、始点が混ざっていて混乱しています。
610nobodyさん:2008/04/02(水) 18:05:03 ID:???
もうちょっと一般化してから質問してくれ
611nobodyさん:2008/04/02(水) 18:17:37 ID:Exm72Bty
[1]=> "<a href=hoge>hoge</a></td></tr></table><br /><hr /><table><tr><td>"
[2]=> "一人目です</td><td>名前"
[3]=> "<a href=hoge>hage</a></td></tr></table><br /><hr /><table><tr><td>"
とあった場合

$取得一個目 = "<table><tr><td>一人目です</td><td>名前<a href=hoge>hage</a></td></tr></table>"と
抜き出したり...

612nobodyさん:2008/04/02(水) 18:45:37 ID:???
回転寿司でたとえてくれ
613584:2008/04/02(水) 18:52:54 ID:YnvkKP4H
>>586さんのヒントを元に↓のように書いてみたのですが、
上手く行きません。。どうすればいいか教えていただけないでしょうか。

function hairetu($val){
for($i=0;$i<count($val);$i++){
if(is_array($val[$i])){
$array = hairetu($val);
}else{
$array[] = $val[$i];
}
}
return $array;
}

$array = array("バナナ","リンゴ","みかん");
$array[1] = array("赤","青");

$fruit = hairetu($array);
print_r($fruit);
614nobodyさん:2008/04/02(水) 19:49:28 ID:???
>>613
まず、過程で変数の中身がどうなってるかvar_dumpでもしろ

あと
http://www.php.net/manual/ja/language.variables.php
の「変数のスコープ」でも読め
615nobodyさん:2008/04/02(水) 20:30:58 ID:oWuCtB30
質問です。
英語文字列の先頭だけ小文字から大文字に変換する関数はありませんか?
あったら教えてください。お願いします。
616nobodyさん:2008/04/02(水) 20:48:09 ID:???
617nobodyさん:2008/04/02(水) 20:52:43 ID:oWuCtB30
>>616
ども
618nobodyさん:2008/04/02(水) 20:52:48 ID:???
そんな関数あったのか、プログラマ甘やかされすぎだろ
619nobodyさん:2008/04/02(水) 21:17:01 ID:???
>>611
何が言いたいのか未だによく分からんがとりあえず配列をくずして1行にして抜き出せば?
620nobodyさん:2008/04/02(水) 21:36:11 ID:???
>>618
それがPHPクォリティ
621nobodyさん:2008/04/02(水) 22:13:20 ID:XY6vuSiH
>>619
実は一行にした場合、スマートにA点B点間を切り取る書き方がわかりません
またA点B点になるものが20個くらいつながっていますので
622nobodyさん:2008/04/02(水) 22:20:18 ID:???
>>621
とりあえずコード出してみろ
623nobodyさん:2008/04/02(水) 22:51:28 ID:njUPskxT
>>621

$txt = implode("", $array);

$j = 0;
$str = "";
for ($i = 0; $i < strlen($txt); $i++) {
$string = substr($txt, $i, 1);
if ($str == $string) {
$data[$j] .= $string;
} else {
$j++;
$data[$j] = $string;
}

$str = $string;
}

$data に文字列が固まって入っている。 これでいいんじゃない?
624nobodyさん:2008/04/02(水) 23:09:23 ID:???
>>621
そもそも何を取り出したいのか分からない
625nobodyさん:2008/04/03(木) 04:39:25 ID:NUyg6E0X
質問です。

大まかに5つぐらいにカテゴリわけできるデータがあります。
すべて一つのファイルにまとめてそれを読み書きするのと
カテゴリごとに5ファイルにわけて読み書きするのではどちらが早いでしょうか?

例えば1カテゴリあたり1MBだしたらどうなんでしょう
マイクロ秒単位ぐらいしかかわらないとかいうかんじなんでしょうか


626nobodyさん:2008/04/03(木) 04:47:03 ID:???
関数呼び出しのオーバヘッドを考慮すれば
1つのファイルのほうが早いに決まってる
ベンチとらないと正確な数値はわからないが気にする必要はないと思うけど
ただ管理するファイル数が多くなると凡ミスで1つのファイルが狂うと
他のファイルにも影響が出る可能性があるからデータは1つにまとめたほうがいい
DBを利用できるならDBを使ったほうが早いし管理も楽
627nobodyさん:2008/04/03(木) 05:27:31 ID:???
>>626
>関数呼び出しのオーバヘッドを考慮すれば
>1つのファイルのほうが早いに決まってる

今だに、requireやincludeを使っているのだろうかw
628nobodyさん:2008/04/03(木) 06:45:56 ID:cpVDKaLE
ユーザ一人一人にページが持てて
ミクシィのコミュニティのようなのを作りたいのですが
なにを勉強すればいいのでしょうか?
629nobodyさん:2008/04/03(木) 07:01:00 ID:???
>>626
ありがとうございます
1つのファイルでやってみます

>>627
includeで呼び出しますが何かまずいのでしょうか?
630625:2008/04/03(木) 07:02:00 ID:NUyg6E0X

625です
631nobodyさん:2008/04/03(木) 08:29:48 ID:???
>>625
気にしなくていい
>>627がアホなだけ
関数を含め何かをを呼び出すということはなんかしらオーバヘッドが発生している
requireやincludeに限ったことではない
632nobodyさん:2008/04/03(木) 09:07:40 ID:???
>今だに、requireやincludeを使っているのだろうかw

使わない方法があるなら俺にもぜひ教えてもらいたい。
たまに他人のソース見て疑問に思うんだが、
includeやrequireの形跡はないのに、ソース中に見当たらない変数を使用してたりする。
(echo $hoge;とだけ書いてるのにちゃんと$hoge;が表示されてる。$hogeがどこで定義されてるかは不明。)
これってどういう方法使ってやっているの?
importでもないし、namespaceなんかもないし・・・
633621:2008/04/03(木) 09:40:11 ID:2nubDXXG
>>623
ニュアンスはだいたいわかるのですが
欲しい形としては、ループする文字列だけ格納ではなく(AAAとか)
-----
<h2>ああああ</h2><p>ああああああああ</p><br /><hr /><h2>そそそ</h2><p>ととと</p><br /><hr />
<h2>ててて</h2><p>いいい</p><br /><hr />....
-----

となっているものを いらないところをスルーして
$data[ 1 ] => "<p>ああああああああ</p>"
$data[ 2 ] => "<p>ととと</p>"
$data[ 3 ] => "<p>いいい</p>"
と格納できれば・・・。
(この例だと <p> </p>という二つの文字列の間、および文字列そのものを含んだ部分の切り取り)
634nobodyさん:2008/04/03(木) 09:47:21 ID:???
$string = "<h2>ああああ</h2><p>ああああああああ</p><br /><hr /><h2>そそそ</h2><p>ととと</p><br /><hr />
<h2>ててて</h2><p>いいい</p><br /><hr />";
preg_match_all("|<p>(.*?)</p>|si", $string, $matchs);
print_r($matchs);
635nobodyさん:2008/04/03(木) 09:57:16 ID:???
性器表現 db insert into (*)
636nobodyさん:2008/04/03(木) 12:01:29 ID:???
性器表現はこうだろw ((i))
637nobodyさん:2008/04/03(木) 12:50:10 ID:???
>>631
自分が無知なのを棚に挙げて、人をアホ扱いですかw
どんだけスイート脳なんだよ。

>>632
__autoloadでぐぐれ
638nobodyさん:2008/04/03(木) 13:00:44 ID:2nubDXXG
>>634
ばっちりでした。マーベラスです。ありがとうございました。
639nobodyさん:2008/04/03(木) 13:26:53 ID:???
>>627

なんで、オーバーヘッドの話から、
requireやincludeの話になってんの?w

わずかな差しかないが、__autoloadを使ったほうが、
クラスの存在のチェックなどをするぶん、
requireやincludeよりも遅いが。
640nobodyさん:2008/04/03(木) 13:53:40 ID:???
そもそも>>625の質問はデータファイルのことだろ?
クラスファイルは無関係だろが
641nobodyさん:2008/04/03(木) 14:11:22 ID:???
で結局どうなの
ファイルの容量は気にしなくていいってことなのか

でもファイルがでかいならオーバーヘッドうんぬんより分割した方がいいと思うが
642626:2008/04/03(木) 14:13:06 ID:???
読みがfileなりfreadなりで書きがfwriteなりfile_put_contentsの話でしょ?
1つのファイルに書き込むより5つのファイルにに書き込む方がオーバヘッドが大きい
書き込みの際にはDBのようなトランザクション処理ができないので
1つのファイルに書き込み失敗するとデータの整合性が狂うしロールバックもできない
(どれか失敗したら全てのファイルのデータ数を数えて少ないとこにあわせて末尾から削除とかもできるが面倒)
よって1つのファイルにデータをまとめて1度だけ書き込みを行ったほうがよい
ということを言ったつもりだったんだけど
643nobodyさん:2008/04/03(木) 14:20:07 ID:???
で、結局管理データが大きければDB使えってことでFAだな。
644nobodyさん:2008/04/03(木) 15:21:07 ID:BSwpnKE2
サーバーで自動巡回するクローラーのような
PHPまたはCGIみたいなのありませんか?

自分のホームページがあまりにもアクセス数が少ないので、
自動でカウンターだけでも上げて気休めしてみよーかなと。
645nobodyさん:2008/04/03(木) 15:24:34 ID:???
そんなもんブラウザのオートリロードじゃダメなのか?
646nobodyさん:2008/04/03(木) 15:35:09 ID:???
>>644
cronで呼び出せば?
647644:2008/04/03(木) 15:37:18 ID:???
レスありがとうございます。
パソコンを立ち上げなくても、サーバー側で自動でアクセスしてみたいのです。
cronというのは どんな感じですか?
648nobodyさん:2008/04/03(木) 15:41:38 ID:???
$count = time(); // 1207200000 ほど引いたほうがいいかも
1日に86400ほど増える。
649nobodyさん:2008/04/03(木) 15:44:02 ID:???
カウンターなんて自分で設定したらいいだろ
レンタルカウンターだとしたら無駄に負荷かかって迷惑だからやめとけ
650nobodyさん:2008/04/03(木) 15:49:06 ID:???
まさにスレタイにピッタリの質問。
651nobodyさん:2008/04/03(木) 16:13:39 ID:???
>>647
まずググレ。
652nobodyさん:2008/04/03(木) 16:14:02 ID:???
ファイル管理だったら複数ファイルに分けるべきだろ
653nobodyさん:2008/04/03(木) 17:11:38 ID:2KfD0E2x
質問させてください
$test="テスト";
print<<<EOF
{$test}
EOF;
以上を実行したら、「テスト」が出力されると思いますが、
$testの中身をfunction関数を実行した結果にしたいと思います

サンプルとして以下のようなfunctionをつくり、
function testFunc($i){
if($i==1){return "結果1";}else{return "結果2";}
}
print<<<EOF
{$testFunc(1)}
EOF;

などとしてみたのですが、うまくいきません(「結果1」と表示させたい)
どうしたらいいんでしょう? ご回答よろしくお願いします
654nobodyさん:2008/04/03(木) 17:25:55 ID:???
>>653
$test=testFunc(1);
print<<<EOF
{$test}
EOF;
655nobodyさん:2008/04/03(木) 17:42:20 ID:???
>>653
$ が { のすぐ後に続く場合にのみ認識されます
ってとこ見ると可変関数しかないんでないかなー。
656nobodyさん:2008/04/03(木) 17:48:38 ID:2KfD0E2x
>>653-654
ありがとうございます
{$test(1)}みたいに、引数を持たせることは出来ないんでしょうか? 最終的には
for($i=0;$i<10;$i++){
print <<<EOF
 {$test($i)}
EOF;
}
みたいな感じで動的に変化する処理を考えてたので…… 弱ったなぁ
根本的にやり直ししかないのかな、、
657nobodyさん:2008/04/03(木) 17:58:22 ID:???
>>656
そこだけヒアドキュメントやめるなりすればいいだけだと思うが
658nobodyさん:2008/04/03(木) 17:59:30 ID:???
ここ見てると、やたらヒアドキュメントが好きな人が多いけど、なんで??
659nobodyさん:2008/04/03(木) 18:12:19 ID:???
>>655
というか可変関数で出力できないでしょ
ヒアドキュメント内は
660nobodyさん:2008/04/03(木) 18:15:15 ID:???
>>659
ところがどっこい{$hoge(1)}で出来る。
661nobodyさん:2008/04/03(木) 18:17:54 ID:???
ヒアドキュメントなんだし他に何行もあるんだろ

>>656
for($i=0;$i<10;$i++){
if($i==1){$test = "結果1";}else{$test = "結果2";}
print testFunc($test);
}

function testFunc($test){
return <<<EOF
{$test}
EOF;
}

よく分からんがこんな感じでどうよ?
662656:2008/04/03(木) 18:27:04 ID:2KfD0E2x
みなさんすみません
>>661さんのと可変関数ていうのを調べて、トライしてみます
確かに最悪ヒアドキュメントやめればいいんですよね
ソースが汚くなりそうで気が引けるんですが…

ともかくありがとう またよろしくお願いします
663nobodyさん:2008/04/03(木) 18:28:29 ID:???
まずマニュアルを読め
664nobodyさん:2008/04/03(木) 18:45:05 ID:???
汚くなるのは作り方が悪いだけだろ
665nobodyさん:2008/04/03(木) 18:45:32 ID:???
>>660
ひとまずphp4では出来ないな
php5限定か
666nobodyさん:2008/04/03(木) 18:49:15 ID:???
>>660
{$hoge(1)}って
どういう意味になるの?
変数とユーザー関数混じっているんだけど
667nobodyさん:2008/04/03(木) 18:52:34 ID:???
>>666
それはググレばあっという間に解決するぞ
668nobodyさん:2008/04/03(木) 19:31:29 ID:???
可変関数はis_function_exists()してからcall_user_func()で呼んでるなぁ。
669nobodyさん:2008/04/03(木) 20:12:51 ID:???
個人的にヒアドキュメントを使ったソースの方が汚い気がする。
   <<<AAA
AAA; ←こいつインデントできねーし
670647:2008/04/03(木) 20:19:44 ID:BSwpnKE2
ありがとうございます。
cronというのは、UNIX(?)で設定するということですよね!?

たとえばPHPファイルを一つ置いて、勝手に巡回するとかできないでしょうか?
671nobodyさん:2008/04/03(木) 20:28:41 ID:???
>>670
WebCronでぐぐるといい。
勝手に指定したページにアクセスしてくれる。
672nobodyさん:2008/04/03(木) 20:49:27 ID:4LgtZJ5T
Authってなんて読むの?
673nobodyさん:2008/04/03(木) 20:52:04 ID:???
スレと関係ある質問をしろ
674nobodyさん:2008/04/03(木) 20:55:10 ID:4LgtZJ5T
>>673
PEARとかでもAuthってあるから聞いてみた。
ぐぐったり辞書見ても書いてないんだもの。

サポートセンターに電話する時はずかちい
675nobodyさん:2008/04/03(木) 20:58:13 ID:???
単語でわからんかったら
Authとは
とかそんな感じで検索すればだいたい出る
676nobodyさん:2008/04/03(木) 21:00:59 ID:???
またかよ
677nobodyさん:2008/04/03(木) 21:33:03 ID:4LgtZJ5T
>>675
出ませんねぇ…
678nobodyさん:2008/04/03(木) 21:35:44 ID:???
>>674
お前は何を言ってるんだ
679nobodyさん:2008/04/03(木) 21:36:38 ID:???
おめーはinformationがinfoとかになってても「わかりません」とか言うのか
680nobodyさん:2008/04/03(木) 21:40:59 ID:???
「Authとは」でググっても
goo辞書で「Auth」で英和辞書引いても
そのものずばりが出てくるじゃねーか。嘘吐いて他人の手間増やして楽しい?
681nobodyさん:2008/04/03(木) 22:58:11 ID:YxD7y5X8
for($i=0;$i<5;$i++){

}
682nobodyさん:2008/04/03(木) 22:59:43 ID:YxD7y5X8
すみません、間違って途中で押してしまいました・・・。

for($i=0;$i<5;$i++){
echo $i;
}
こういうforで出力する時、表示は「01234」となりますが、
カウントダウンのように、0の次は1、1の次は2など、
順番に表示させることは出来ないのでしょうか?
683nobodyさん:2008/04/03(木) 23:10:10 ID:???
できまsn
684nobodyさん:2008/04/03(木) 23:43:08 ID:???
じゃばすくりぷとって知ってる?
685nobodyさん:2008/04/03(木) 23:43:16 ID:???
>>682
そういうのがやりたいならJavaScriptかなー
686682:2008/04/03(木) 23:54:43 ID:???
>>683-685
Javascriptはすでにやっているので、他の方法を探してみました。
無理だと言うことですね。他の方法を探してみます。
687nobodyさん:2008/04/04(金) 00:00:01 ID:???
>>682
43210って出したいって意味なら出来る
688nobodyさん:2008/04/04(金) 00:05:08 ID:???
JavaScriptを使わないってことはページを手動で更新するってことだ。
それでいいならクッキーを利用して5の次4,3,2,1,0なんて表示は出来るがな。
689nobodyさん:2008/04/04(金) 00:09:15 ID:???
>>686

>Javascriptはすでにやっているので、他の方法を探してみました。

サーバサイドとクライアントサイドがごっちゃになってないかな?
て思った。
690682:2008/04/04(金) 00:14:46 ID:???
>>689
サーバサイドでやりたいので、PHPを試しました。

ですが、やっぱりJavascriptしか無理っぽいですね・・。
タイマーみたいなのが作りたいので、ストップ処理も入るし、
そうなると、forとsleepを使っても出来ないみたいです。
691nobodyさん:2008/04/04(金) 00:28:43 ID:???
>>669
かなり目立つように書いてカタマリに見える工夫するかなあ。
エスケープするときなんかはイチイチ考えなくていいしキレイ(な気がする)


-----
echo "<h1 id=\"header\">{$a}</h1>" ;

-----
echo '<h1 id="header">'.$a.'</h1>' ;

-----
echo <<<__________D_O_C__________

<h1 id="header">{$a}</h1>

__________D_O_C__________;

692nobodyさん:2008/04/04(金) 00:45:45 ID:???
>>690
違いは分かってるよ!!!と主張してるみたいなので方法論。

header()でrefreshすれば近いことはできるんじゃ?

693nobodyさん:2008/04/04(金) 00:51:41 ID:f6Xk8xc+
文字列である'$name'を、ローカルにある変数$nameの値で置き換えたいのですが
どのような方法があるでしょうか。

↓例えばこんな風になってて
$string = '$name';
$name = 'MyName';

$stringを使って"MyName"と表示させたいのです。
すぐ思いつくのはevalですが、文のみということみたいなので(?)
無理やりあてはめて書いてみたのが

echo eval("return $string;"); //MyNameと表示される

でもこれだとなんか変というか・・・(コードの見た目が)
他により一般的な書き方があったらおしえてください。
694nobodyさん:2008/04/04(金) 01:04:03 ID:???
>>690
>forとsleepを使っても出来ない
これは目的のものがJavaScriptでは出来なくて諦めたってことだよな?

断言してもいいが、やり方が間違ってるだけで出来ないことは絶対ない。
コードの一部を載せるんじゃなく、最終目的を明確にした上でweb制作板のJavaScriptスレに質問してみな。
695693:2008/04/04(金) 01:34:35 ID:f6Xk8xc+
自己レスです。

$string = '$name';
$name = 'MyName';
eval("\$string = \"$string\";");
echo $string; //MyNameと表示される

マニュアルに載っていた例ですが、実際のコードの前後の兼ね合いから
案外すっきりいけるようでしたので、これでいってみますm(_ _)m
696nobodyさん:2008/04/04(金) 11:09:35 ID:???
WebCronってタイムアウトしそうな重いページだと、リトライしてくれるのかしら・・・

>690
サーバーサイドの時点で、ページ遷移は絶対必要だから
タイマーの部分だけiframeとrefreshで回転させて・・・
697nobodyさん:2008/04/04(金) 11:22:02 ID:???
無理にサーバサイドでやる理由がわからんな・・。
698nobodyさん:2008/04/04(金) 13:23:02 ID:???
>>76
安易にパーミッションを777にするよりも、
まずディレクトリーのオーナをかえて、必要最低限度のパーミッションにした方がいいよ。
699nobodyさん:2008/04/04(金) 14:09:44 ID:???
2週間以上前のレスにレス返すなよw
700nobodyさん:2008/04/04(金) 14:25:36 ID:???
ごめん、10日近く京都に納品で環境構築していたから、
その間レスできなかった。やめた方がいい?まだ、気になるレスがあるんだが・・・
701nobodyさん:2008/04/04(金) 14:27:06 ID:???
好きにしろよ
本人は見てるか分からんが、参考になる人はいるだろうし
702nobodyさん:2008/04/04(金) 14:27:16 ID:???
>>700
(屮゚0゚)屮 カモーン
703nobodyさん:2008/04/04(金) 14:34:51 ID:???
http://bananavi.jp/shizuoka/mobile/bbs/bbs.php?area_id=3

こんなPHP探してるんですが何処で配布されてますか?
704nobodyさん:2008/04/04(金) 14:52:44 ID:???
Shift_JISで書いているファイルにShift_JISで書いたファイルをincludeしてechoすると
文字化けしてしまいます。
エンコードが違うならわかりますがなんででしょうか?
705nobodyさん:2008/04/04(金) 14:53:14 ID:???
エンコードが違います
706539:2008/04/04(金) 14:56:39 ID:???
恵まれない子に愛のレスを。。。
707nobodyさん:2008/04/04(金) 14:58:19 ID:???
>>704
スクリプトの内部エンコードが違う。
残念だけど、PHP を Shift-JIS で書くのはおススメしない。UTF8 か EUC-JP を使うべし。
http://manual.xwd.jp/ref.mbstring.html
708704:2008/04/04(金) 15:05:46 ID:???
>>707
なるほど
ありがとうございます
709nobodyさん:2008/04/04(金) 15:10:15 ID:mEsRuTBT
プロジェクトに必要なライブラリってどこにどんな感じに定義してますか?
必要としているPEARのパッケージのリストとか
710nobodyさん:2008/04/04(金) 15:59:03 ID:???
シフトJISだからだ
711nobodyさん:2008/04/04(金) 18:21:35 ID:???
所詮、このスレの住人はこの程度か
どうもありがとうございました
712nobodyさん:2008/04/04(金) 18:38:04 ID:???
中二乙
713nobodyさん:2008/04/04(金) 19:42:09 ID:???
すまん。俺中一だwww
714nobodyさん:2008/04/04(金) 19:44:20 ID:YqX/EKLM
phpからmysqlにDELETEのsql文を投げて、実行された行数を知りたいです
それが一発でわかる関数などあるでしょうか?
理想としては、以下の処理が出来るようにしたいです。
1)1回目の削除実行→3行削除されたとわかる(「3件削除しました」とメッセージ)
2)2回目の削除実行→すでに削除済みなので0(行)が返ってくる
3)「(0だから)対応するデータはありません」などとアラート表示
よろしくお願いします
715nobodyさん:2008/04/04(金) 20:12:09 ID:???
>>714
http://jp2.php.net/manual/ja/function.mysql-affected-rows.php でどう?

あと、delete で where条件を指定しない(全削除)の場合は、1=1みたいなダミーの
条件文が必要だけど、PDOを使うと自動的に付けてくれるとか、聞いたことがある。

716nobodyさん:2008/04/04(金) 20:14:10 ID:???
>>715 補足
ダミーの条件が必要らしいのは、行数を知りたい場合だけ。
消すだけなら要らない。
717nobodyさん:2008/04/04(金) 20:56:03 ID:???
>>682
それは毎回文字が消えて次の文字が表示されなきゃだめなわけ?

ただ順番に文字を表示するだけなら

ob_flush();
flush();

使えばいくない?
718nobodyさん:2008/04/04(金) 21:49:14 ID:???
任意のウェブサイトのphpファイルのソースを見る方法って存在しますか?
719nobodyさん:2008/04/04(金) 21:50:19 ID:???
>>715
出来ました!!
こりゃ便利! 助かりましたありがとう!
720nobodyさん:2008/04/04(金) 21:55:09 ID:???
>>718
犯罪ダメ絶対
721nobodyさん:2008/04/04(金) 23:10:34 ID:???
ソースを見るだけで犯罪になるの?
722nobodyさん:2008/04/04(金) 23:49:40 ID:???
>>718
ウェブサイトの管理者に頼み込む
合法ぅ
723nobodyさん:2008/04/05(土) 00:26:17 ID:???
>>721
不正アクセス禁止法で逮捕
724nobodyさん:2008/04/05(土) 00:28:40 ID:???
.phpsでアクセスする
最後のsはソースの意味
詳しくはググれ
725nobodyさん:2008/04/05(土) 00:29:25 ID:???
phps 拡張子
726nobodyさん:2008/04/05(土) 00:34:13 ID:???
>>724
それで見れるんなら苦労しないだろ・・
727nobodyさん:2008/04/05(土) 00:48:09 ID:???
マジレスカコワルイ
728nobodyさん:2008/04/05(土) 02:10:23 ID:2dn41xYV
$pInfoAryという配列を作り、以下のプログラムを書きましたが何も出力されません
出力するデータが配列中にあるのは確認してあります、何故でしょうか?

function returnData(){
 return $pInfoAry;
}
$aaa = returnData();
echo $aaa[0]['gakki1'];

ちなみに、以下もダメでした
function returnData(){
 return var_dump($pInfoAry);
}
$aaa = returnData();
echo $aaa;

以下は大丈夫だったんですが、、
function returnData(){return "さんま";}
$aaa = returnData();
echo $aaa;
729nobodyさん:2008/04/05(土) 02:17:36 ID:???
gakkiの話なんか一切出てきてないじゃないか。
730nobodyさん:2008/04/05(土) 02:24:44 ID:???
function returnData(){
 return $pInfoAry; ←この段階で$pInfoAryの中身はnull
}
731nobodyさん:2008/04/05(土) 02:28:31 ID:???
>>728
OOPのgetterでもないのになんでそんな書き方するの?
普通に$pIngoAry[0]['gakki1'];でいいじゃない。
732nobodyさん:2008/04/05(土) 02:39:32 ID:???
>>728
スコープの範囲を勉強をしたほうがいい
globalを定義するか引数で値を渡すか
そもそもそんな無意味そうな関数作っても・・・
733728:2008/04/05(土) 05:55:14 ID:2dn41xYV
>>730-732
ありがとうございます そうでした、スコープすっかり忘れてました
恥ずかしい… ていうかヤバイなぁ、どんどん忘れてく
ちょっと試したいことがあるので、無意味な関数かどうかは今のところ
わからないんですが、、
また何かあったら質問します すみませんがよろしくお願いします
734nobodyさん:2008/04/05(土) 07:05:54 ID:IhNkb+FD
PHPのファイルを作成したので
Xamppで開発環境を整えて
ブラウザで見ようとしたのですが
Not Foundで
「The requested URL /xampp/index.php was not found on this server.」
というエラーが出てうまくいきません
どのような原因が考えられますか?
735nobodyさん:2008/04/05(土) 07:18:40 ID:???
まんまwas not found on this serverじゃないのか
736nobodyさん:2008/04/05(土) 07:21:47 ID:IhNkb+FD
>>735
今回見れなかったtest.phpと同じディレクトリに
index.htmlがあるんですがそれは見れるんです
サーバ上で見つからなかったというのは
どのような原因が考えられますか?
737nobodyさん:2008/04/05(土) 07:48:45 ID:???
まずはエラーログ見れ。
738nobodyさん:2008/04/05(土) 08:01:35 ID:IhNkb+FD
[Sat Apr 05 06:44:58 2008] [notice] Child 4608: Exit event signaled. Child process is ending.
[Sat Apr 05 06:44:59 2008] [notice] Child 4608: Released the start mutex
[Sat Apr 05 06:45:00 2008] [notice] Child 4608: Waiting for 250 worker threads to exit.
[Sat Apr 05 06:45:00 2008] [notice] Child 4608: All worker threads have exited.
[Sat Apr 05 06:45:00 2008] [notice] Child 4608: Child process is exiting
[Sat Apr 05 06:45:00 2008] [notice] Parent: Child process exited successfully.


エラーログはこんな感じです
アパッチは問題がないようです
739nobodyさん:2008/04/05(土) 11:59:09 ID:???
xamppなんて使うな
740nobodyさん:2008/04/05(土) 12:14:32 ID:???
>>738
どうしてphpの質問をしないのですか?
よかったら教えてください
741nobodyさん:2008/04/05(土) 12:21:33 ID:L0wIdTdL
一行掲示板でformにaction="<?= $_SERVER[ "PHP_SELF" ]; ?>とやっています
phpをiframeで呼び出した時、コメントを書いてinput内でエンターを押しても何もおきません
$_POSTに中身はあるのにログの更新がされていません(ちゃんとsubmitを押すとok)
直接開いた場合と、iframeではどんな差異があるのでしょうか?
ちなみにiframeにしているのはニコ動のように独立させたいからです
742nobodyさん:2008/04/05(土) 12:29:26 ID:???
なんで=2回も書いてんの?
743nobodyさん:2008/04/05(土) 12:51:29 ID:???
>>741
いまいち言ってることがわからんから勘レスだが
ブラウザの仕様の問題でPHPの話じゃないんじゃね?
744nobodyさん:2008/04/05(土) 14:23:10 ID:IhNkb+FD
>>739
本来はわかりやすくて簡単なはずなんです
どうしても使いこなしたいのでもうちょっと粘っていきます

>>740
Xamppに関する質問ではありません
htmlファイルは問題なく表示できるのに
作成したPHPファイルをブラウザで見ると
サーバーにありませんと言われてエラーが生じているのが問題なんです

本当にくだらない質問ですが結構悩んだつもりなので
わかる人がいたらどうか教えてください
745nobodyさん:2008/04/05(土) 14:30:58 ID:???
またメモ帳でファイルを作成してindex.php.txtで保存されててっていうオチか?
746nobodyさん:2008/04/05(土) 14:34:57 ID:???
>>744
本当にサーバに無いんだろ
ファイル名とアドレスを見直せ

素の状態のXAMPPなら複雑な不具合なんて起きるわけ無い
この程度のことも解決できないようなヤツがややこしい状態を作れるとも思えないしな
747nobodyさん:2008/04/05(土) 14:38:24 ID:???
index.php.txt もありそうだなあ。

俺は
> 今回見れなかったtest.php
> /xampp/index.php was not found
変わったリライト仕込んでるなと思った。
748nobodyさん:2008/04/05(土) 15:10:11 ID:IhNkb+FD
>>747
すみませんエラー表示をコピペしたのは
test.phpのほうではなくindex.phpのほうです

ファイルの種類はPHP Scriptなのでテキストではないようです
749nobodyさん:2008/04/05(土) 15:30:05 ID:???
phpが仮に動作していないとしても、テキストとして表示されるはずなので、
ファイルが見つからないといわれてる以上、本当にそのファイルがないとしか考えられない。
xamppがC直下にインストールされていると仮定した場合、
C:\xampp\htdocsがデフォルトのドキュメントルートだが、
http://localhost/を開いた場合、C:\xampp\htdocs\xampp直下が表示されるように設定されている。
C:\xampp\htdocs以下にindex.phpをおいて、http://localhost/index.phpにアクセスした場合でも
C:\xampp\htdocs\xampp\index.phpにアクセスされる。
C:\xampp\htdocs以下に、phpというフォルダをつくり、そこにindex.phpをいれ、
http://localhost/php/でアクセスしてみ
750nobodyさん:2008/04/05(土) 15:32:32 ID:???
おまえ優しいな
751nobodyさん:2008/04/05(土) 15:37:52 ID:???
XAMMPはその辺の初期設定が初心者向きじゃないんだよな
もっと素の設定でインストールしたほうが初心者は迷わないだろうね
752749:2008/04/05(土) 15:42:03 ID:???
とおもったが、勘違い。
http://localhost/を開いた場合、/xamppにリダイレクトされるのは、
http://localhost/index.phpのヘッダでそうかいてたからのようだ
Apacheの設定ではなかった。すまぬ。
このindex.phpを上書きすれば、普通にhttp://localhost/でも見れるはず
753nobodyさん:2008/04/05(土) 16:06:28 ID:IhNkb+FD
>>749
試してみましたがそれでもうまくいきませんでした
ですが再インストールするとなぜかうまくいくようになりました
原因は不明ですが結果オーライなのでもうこれでいいです
つまらない質問に真剣に対応していただきありがとうございます
754nobodyさん:2008/04/05(土) 16:48:23 ID:???
       ヽ(・ω・)/   ズコー
      \(.\ ノ
755nobodyさん:2008/04/05(土) 16:49:39 ID:gVFutqXh
指定の時間、たとえば27:00になる度にあるファイル(a.log)を書き換えたいのですが
どうすればできるでしょうか?
756nobodyさん:2008/04/05(土) 16:54:58 ID:???
>>755
コンピュータにとっての03時でいいのなら >>2 の 6. 参照。
「夜更かししたときの27時と、早起きしたときの03時は別」という判定まではできない。
757nobodyさん:2008/04/05(土) 17:22:38 ID:???
#!/usr/bin/perl
use LWP::Simple;
print get("http://www.google.co.jp/");

こんなのを書いてみました
PC上でactiveperlで動かすと思った通りの動作をしますが、
cgiとして実行させると500エラーになります
もっと簡単にテキストを表示させるだけのcgiはちゃんと動くので、
パスやパーミッションその他の理由ではないと思われます
perlのバージョンは5.005だそうです

よそを読みにいくことに制限があったり、LWP::Simple;が使えなかったり
することはありますか
その場合の代替案はありますか
758nobodyさん:2008/04/05(土) 17:25:17 ID:???
ん、PHP専用?
墨括弧の中は無視して読む癖があった
759nobodyさん:2008/04/05(土) 17:54:20 ID:???
xampでつかの間の楽をするより各最新verを自分で構築していったほうが
勉強にはなるぞ
760nobodyさん:2008/04/05(土) 18:30:31 ID:???
墨括弧もなにも>>1すら読んでない阿呆はカエレ
761nobodyさん:2008/04/05(土) 20:55:12 ID:???
Linux上のPHP5.2.5でですが、
Apache2モジュールのPHPソースは改行コードがCRだけでも正常に動作するのに、
コマンドライン(CLI)だとPHPスクリプトの改行コードがCRだけだと異常を生じるのは仕様ですかね?
両方同じなら(正常でも異常でも)わかるんですが、別なのでちょっと気になりました。
PHPソースの文字コードはUTF-8です。
762nobodyさん:2008/04/05(土) 21:10:45 ID:???
あぱっちがかいぎょうこーどをほかんしているからだよ
763nobodyさん:2008/04/05(土) 22:09:17 ID:???
ヒアドキュメントに出てくるEOMとかEOTとかはいったい何の略ですか?
適当ですか?
764nobodyさん:2008/04/05(土) 22:16:30 ID:???
End Of [Message Text File Document]

まぁ適当なんだが
765nobodyさん:2008/04/05(土) 22:18:57 ID:???
DはDataじゃね?どうでもいいけど
766nobodyさん:2008/04/06(日) 00:56:17 ID:axME/ew+
会員制のツールを作って、会員にメールを送信するときに
会員は全員携帯を利用で携帯のアドレスに対して送信することになるのですが

携帯からメールを送るときのように、一度に5件までしかccに入れられない
といったようなことはないでしょうか?

あと、softbankは1分以上の時間を空けて送信しないとエラーになるという話を
聞いたことがあるのですが本当でしょうか?
767nobodyさん:2008/04/06(日) 01:28:14 ID:???
php関係あんの?
768nobodyさん:2008/04/06(日) 01:46:47 ID:???
このスレはこの程度か
どうもありがとうございました
769nobodyさん:2008/04/06(日) 03:01:47 ID:MAjG8Csa
function hoge() {
  $args = func_get_args();
  echo huga($args);
  echo piyo($args);
}
function huga($a) { return $a; }
function piyo($a,$b) { return $b; }
hoge(1,2,3); //=> 12
こんな感じの事がやりたいのですが、func_get_args()だと配列を渡すだけになってしまうので、
全然出来ないです。どうにかして巧くやる方法はありますでしょうか?
ちなみにhoge()から呼ばれるのは動的に決定するので、foo()やbar()が呼ばれるかもしれません。

JSを知っている人なら、argumentsの受け渡しと同様の事がしたいと言えばお分かりになると思います。
良い方法をご存知の方がいらしたらご教示ください。よろしく御願いします。
770nobodyさん:2008/04/06(日) 03:17:28 ID:???
説明が分かりにくい
引数の数と内容が分かっているんだからどうとでも出来るんじゃないの?

どんな値を入れたら、どう処理して、どんな値が欲しいのか説明してくれないと意味が分からない。
771nobodyさん:2008/04/06(日) 03:20:44 ID:???
>>761
何を持ってして異常なのか説明をしない限り
エスパー回答者がお前を混乱させるだけ。

>>769
JavaScript の

function hoge() {
  fuga.apply(this, arguments);
  piyo.apply(this, arguments);
}

を PHP でやるならこうだな。

function hoge() {
  $args = func_get_args();
  call_user_func_array('fuga', $args);
  call_user_func_array('piyo', $args);
}
772nobodyさん:2008/04/06(日) 03:25:35 ID:???
call_user_func_array(array($this,'fuga'), $args);
773769:2008/04/06(日) 03:33:00 ID:???
>>770
自分でもわかりにくかったと思います。すいません。
うまく説明できなさそうだったので、スレ違いで怒られるの覚悟でJSでの等価機能を出しました。

>>771
まさにそれです!
助かりました。ありがとうございます。

>>772
まだ call_user_func_arrayがどういう動きをしてくれるやつか見ていないのでわからないですが、
取り急ぎありがとうございます!
774nobodyさん:2008/04/06(日) 06:44:09 ID:???
>>771
異常=動作しない(パース自体が正常にいかない)
775nobodyさん:2008/04/06(日) 08:43:39 ID:???
[aa.txt]
あいうえお<br>
かきくけこ

[aa.php]
<?php
print '<table border=0 Align="center"><tr><td>';
$file = fopen( "aa.txt", "r" );
fpassthru( $file );
print '</tr></td></table>';
?>

今はこうして読み込んでいるのですが、txtファイルに<br>を書き込むことなく改行を反映させることはできないのでしょうか?
もしできるのならばサンプルを頂けるとありがたいです。よろしくお願いします。
776nobodyさん:2008/04/06(日) 08:45:47 ID:???
777nobodyさん:2008/04/06(日) 09:45:17 ID:???
>>775
俺ならこうする

$file = file("aa.txt");
foreach ($file as $value) {
  $value = rtrim(htmlspecialchars($value)) . "<br>";
  echo $value;
}
778nobodyさん:2008/04/06(日) 10:04:49 ID:???
>>776
ファイルポインタの関係でうまくいきませんでした…。便利そうなのですが

>>777
別の変数を使って変換するんですね!参考にさせていただきます。
779nobodyさん:2008/04/06(日) 10:06:04 ID:???
あるかないかの判定で、ある場合の判定を書くときは

if($aaa){
処理
}

はわかるのですがこの逆のはどう書くのでしょうか?
つまり$aaaがなければ、というときです。
780nobodyさん:2008/04/06(日) 10:08:28 ID:???
自己解決しますた

if(!$aaa){
処理
}
781nobodyさん:2008/04/06(日) 11:45:52 ID:???
URLに変数を指定する方法を教えてください。
for ( $no = 1; $no <= 3; $no++){
print '<img src="img/abc[$no].JPG">';
}
としましたが、ソースを開くと<img src="img/abc[$no].JPG">が3つ書かれているだけでした。
782nobodyさん:2008/04/06(日) 12:09:54 ID:???
$noって気持ち悪いな
慣例的には$i、ネストしてるときは中のは$jなどと表記する

で、配列は0から始まるのでたぶん開始は0だろ

for ($i = 0; $i < 3; $i++) {
  "<img src=\"img/{$abc[$i]}.JPG\">";
}
といった具合に>>2の5番のように書くか、

シングルクオテーションで書きたいなら、一度抜けて変数をくっつける
'<img src="img/' . $abc[$i] . '.JPG>';

""のエスケープが面倒なのはわかるが
シングルクオテーションは返って使いにくい場合もある
783782:2008/04/06(日) 12:16:09 ID:???
ってabcって変数じゃなかったのか
ダブルクオテーション中になら普通に$noとかけるぞ
でも{}で囲むの推奨
シングルで書きたいなら>>782の通り
784nobodyさん:2008/04/06(日) 12:25:35 ID:???
>>782,783
そのまま普通に書くだけでよかったのですね。
ありがとうございました。
785nobodyさん:2008/04/06(日) 12:29:16 ID:???
>>778
まさかnl2br($file)とかやってるわけじゃないだろうな?
786nobodyさん:2008/04/06(日) 13:05:47 ID:???
::の意味を教えて下さい。
ダブルコロン、スコープ定義演算子、トークなどと呼ばれているそうなのですが、一体何を意味しているのでしょうか?
787nobodyさん:2008/04/06(日) 13:07:26 ID:???
>>786
そこまで知ってるなら分かりそうなもんだがw
http://jp.php.net/oop
788nobodyさん:2008/04/06(日) 13:29:33 ID:???
”スコープ解決演算子”に統一してください
789nobodyさん:2008/04/06(日) 13:51:06 ID:???
>>774
ヒアドキュメントステートメントで syntax error, unexpected $end が出るならここの警告を参考に。
http://docs.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc
これと違うならエラー内容とソースを教えてね
790nobodyさん:2008/04/06(日) 15:17:34 ID:???
localhostでは正常に掲示板が動いてるのにアップロードすると掲示板の内容が更新されなくて涙目
レンタルサーバはPHP Version 5.2.0 ・開発環境はXAMPPの最新版+winXP
テキストファイルもわすれずアップロードしてるんでやっぱりパーミッションに問題があるんでしょうか・・・
設置場所は特に制限は無いです。
791nobodyさん:2008/04/06(日) 15:33:03 ID:???
>>790
まず読み込んでvar_dumpしたり
ちゃんと読み込んでるかテストする努力はしないの?しないのね、わかった
792nobodyさん:2008/04/06(日) 16:07:04 ID:???
だからお前みたいなやつはXAMPPなんか使うなっての
793nobodyさん:2008/04/06(日) 16:41:51 ID:???
パーミッションの設定が無効になってたみたいです。ありがとうございました^^
794nobodyさん:2008/04/06(日) 16:42:25 ID:???
echo str_replace('カ','','カモメカモメカチンカチン');
795nobodyさん:2008/04/06(日) 17:07:00 ID:???
echo str_replace('アップル','オッ','アップルパイ');
796nobodyさん:2008/04/06(日) 17:55:28 ID:???
if($uho){
echo "やらないか?";
}
797nobodyさん:2008/04/06(日) 18:00:31 ID:Y8ah/cU4
PHP+MYSQLでテーブルの作成がうまくいきません。

$sv = "サーバー";

$dbname = "DB";

$user = "ユーザー";

$pass = "パスワード";



$conn = mysql_connect($sv, $user, $pass) or die("接続エラー");

mysql_select_db($dbname) or die("接続エラー");

$sql = "CREATE TABLE test_tbl(id int(8) primary key, name varchar(200),time varchar(200),check varchar(200))";
$res = mysql_query($sql, $conn) or die("作成エラー");


上記ではテーブルが作れず「作成エラー」となってしまいます。
どなたか教えてください。。。
798nobodyさん:2008/04/06(日) 18:04:27 ID:???
die("作成エラー");

die(mysql_error());

まぁクリエイト文が間違ってるんだろ
799nobodyさん:2008/04/06(日) 18:04:41 ID:???
>>797
まずマニュアル
http://www.php.net/manual/ja/function.mysql-query.php
ここ読んでエラー取得しる

DBに対して権限無いとかじゃないだろうね
800nobodyさん:2008/04/06(日) 18:12:30 ID:???
鯖のIPアドレスとユーザ名とパスワード書いたら作ってあげるよ^^
801nobodyさん:2008/04/06(日) 18:16:25 ID:???
>>800
面白半分でもそういうこと書くなよ
本当に晒して誰かがアクセスしたらどうする気なんだ?
不正アクセス幇助してるようなもんだろ
802nobodyさん:2008/04/06(日) 18:20:35 ID:???
では晒しては駄目です
803nobodyさん:2008/04/06(日) 18:32:29 ID:???
本人が晒しておいて不正も何もないやろ

802のちんこの小ささにワラタ
804nobodyさん:2008/04/06(日) 18:41:56 ID:???
fscanfがおかしいです。

$data = fscanf($fp, "%s,%d,%d,%d");
print_r ($data);
----
ファイルの内容
abc,1,2,3
----
出力
Array
(
[0] => abc,1,2,3
[1] =>
[2] =>
[3] =>
)

配列にちゃんと入ってくれないです。なんで?
805nobodyさん:2008/04/06(日) 18:48:33 ID:???
きょうの名言
 「fscanfがおかしいです。」
806nobodyさん:2008/04/06(日) 18:54:27 ID:???
名言ですね。

>>804
おかしいのは fscanf だけだろうか。

$data = sscanf('abc,1,2,3', "%s,%d,%d,%d");
var_dump($data);
807nobodyさん:2008/04/06(日) 19:03:08 ID:???
>>806
bool(false) になりました。ということは$dataがおかしいですか?
808nobodyさん:2008/04/06(日) 19:04:33 ID:???
>>806
間違えました。
array(4) {
[0]=>
string(9) "abc,1,2,3"
[1]=>
NULL
[2]=>
NULL
[3]=>
NULL
}
になりました。
809804:2008/04/06(日) 19:13:00 ID:???
自己解決しました

おかしかったのは私の頭でした
810804:2008/04/06(日) 19:13:56 ID:???
区切り文字を「,」から「\t」にしたらウマくいきました。
よくわからないけど、最初からファイル作るところからやり直しです。
811nobodyさん:2008/04/06(日) 19:22:47 ID:???
出力結果見たまんまじゃんか
%sが"abc,1,2,3"に反応してるだけ

"%[a-z],%d,%d,%d"とか書けばいけるんでないの?
試してねーけど
812804:2008/04/06(日) 19:37:26 ID:???
>>811
array(4) { [0]=> NULL [1]=> NULL [2]=> NULL [3]=> NULL }
になりました。
PHPはカンマ区切りでsscanfができなアホの子ということでしょうか。
813797:2008/04/06(日) 19:37:29 ID:???
>>798
>>799
フィールド名「check」を変更してみたら解決しました。
ありがとうございました。
814804:2008/04/06(日) 19:38:46 ID:???
>>811
また間違えました。[z-z]に打ち間違えました。
array(4) { [0]=> string(3) "abc" [1]=> int(1) [2]=> int(2) [3]=> int(3) }
ちゃんと入りました。
ごめんねPHP。
815nobodyさん:2008/04/06(日) 19:41:11 ID:???
アホの子はプログラム組もうと思わないほうがいいな
816nobodyさん:2008/04/06(日) 19:57:55 ID:???
>>814
PHPたんに土下座しろ
817nobodyさん:2008/04/06(日) 20:23:29 ID:???
プログラムなんか慣れだろ
知識積んでいけば最初は糞汚くても徐々に綺麗になっていく
いずれにしても時間かけないと駄目だ
818nobodyさん:2008/04/06(日) 20:55:14 ID:???
基本的なことなのですが、外部からソースを読み込む場合はどうすればよいのでしょうか?
file(source.php)ではできないようですが・・・。
819nobodyさん:2008/04/06(日) 20:57:59 ID:???
基本的には出来ません。
ソースが読み込めたら大変な事になると想いませんか?
820nobodyさん:2008/04/06(日) 21:23:34 ID:???
>>819
そうですか。
では、別の場所で定義した関数を別の場所で表示する事はできますか?
これだと何も表示されなくて困っているのですが。
<html><body>
 <?php function hoge(){ echo "I love php"; } ?>
 <h1>hogeと出力します。</h1>
 <?php
 hoge();
 ?>
</body></html>
821nobodyさん:2008/04/06(日) 21:28:22 ID:???
includeもしくはrequireしろ
822818:2008/04/06(日) 21:42:59 ID:???
>>821
おぉ、できました!
ありがとうございました。
823nobodyさん:2008/04/06(日) 22:50:32 ID:???
配列をファイルにエクスポートしたり、それを逆に配列にインポートしたりできますでしょうか?

イメージ的には、
// エクスポート
$arr = array(10,20);
$fp = fopen("hoge.dat", "w");
fwrite($fp, $arr);
flocse($fp);

// インポート
$tmp = file("hoge.dat");
$arr = hoge($tmp); // hoge関数はインポートする関数。そういうのがあるのか知らないですが。。
824nobodyさん:2008/04/06(日) 22:55:36 ID:???
しりあらいず
825nobodyさん:2008/04/06(日) 22:56:10 ID:???
826nobodyさん:2008/04/07(月) 01:31:39 ID:HAJ8ltXQ
$number = "1234";

1文字ずつ切り出して配列に入れたいのですが、
その用な関数ってあるのでしょうか?
827nobodyさん:2008/04/07(月) 01:38:40 ID:???
str_split($number)

ちなみにそのまま$number[0]でもアクセスできるけどね
828>>823:2008/04/07(月) 01:52:25 ID:???
>>824
>>825
ありがとうございます!
829826:2008/04/07(月) 03:11:36 ID:???
>>827
思い通りに出来ました。ありがとうございました。
830nonono:2008/04/07(月) 03:51:34 ID:s+jMxqnz
PHPで
$body = "あいうえおabc";
とあれれば
$body = "あ\い\う\え\お\a\b\c\"
と変換したいのですが
どうすればよいのですか?
お願いします。
831nobodyさん:2008/04/07(月) 10:19:04 ID:???
すぐ上に出てる文字列を配列に入れる関数を使って分解
forでまわして各配列に\を追加
あとは配列をくっつける
832nobodyさん:2008/04/07(月) 11:37:21 ID:???
preg_replace('/(.)/u', '$1\\', $body);
833nobodyさん:2008/04/07(月) 12:18:12 ID:AYrwwGs/
最近PHP始めたばっかで、人様が作ったやつを仕事でいじらされたりしてるんですが、
ちょっと分からなかったんで質問させてください。

mb_send_mailでメール送信する場合、その後popenする必要ってありますか?
もらったコードには入ってるんですが、どこにもpcloseは無いし、
これって不要では?と思って外してみたんですが、それでも普通にメールが送信されます。
でも何か意味があってしてるのかもしれないので、メール関数を使った後に
プロセスをオープンしておく理由があれば教えてください m(_ _)m
834nobodyさん:2008/04/07(月) 13:36:17 ID:nVWcjk0/
SQLで $n=mysql_query() でクエリー送って
その結果を使いたいんですが
mysql_fetch_object($n);などを使っても

複数該当した内の一番最初の行しか
表示されてないようなんですが
全ての行を表示するにはどうしたらいいでしょうか。

環境
データベースはMySQL でレンタルサーバland.toに
PHPをうpして使っています

PHP文
<?php
$connect = mysql_connect("localhost", "(ディレクトリ名)", "(パスワード)") or die ("サーバに接続できません");
mysql_select_db("(ディレクトリ名)",$connect) or die ("データベースに接続できません");
$sql = 'SELECT * FROM `img` where sex = 0 LIMIT 0, 30';
for($i=0; $i<2; $i++){
$n = mysql_query($sql, $connect) or die ("クエリーを実行できません");
$r = mysql_fetch_object($n);
mysql_close($connect);

print $r->name;
}
?>

よろしくおねがいします。
835nobodyさん:2008/04/07(月) 13:49:55 ID:???
ふぇっちあれい
836nobodyさん:2008/04/07(月) 14:04:24 ID:???
CMSを使ってみようかなと思い始めたのですが…

Xoopsは、gdgdっぽいし、何かお勧めは無いでしょうか?
837nobodyさん:2008/04/07(月) 14:05:32 ID:EvBdHmft
すみません、>836ですが、癖で下げてしまいました;;
838nobodyさん:2008/04/07(月) 14:18:32 ID:???
ここはそういうスレじゃないのだよ明智君
839nobodyさん:2008/04/07(月) 14:31:04 ID:???
>>833
mb_send_mail() と popen() の間に直接の関連性はないよ。
どんな理由でコマンドを実行してるのかは前任者や実装した人に聞くべき。

>>834
for ステートメントの中で毎回クエリを発行し直してるせい。
mysql_query() と mysql_close() をループの外に置こう。
840nobodyさん:2008/04/07(月) 14:36:27 ID:???
ポッペンて何だよ
なめてんのか
841833:2008/04/07(月) 14:36:28 ID:???
>>839
ありがとうございます!
そうですよね、直接聞いてみるべきでした。
でもやっぱり直接関連性がないことが分かって良かったです。
842nobodyさん:2008/04/07(月) 14:51:21 ID:Uht2ZkVV
よくある計算なのですが
foreachの出力の時に
1位
843nobodyさん:2008/04/07(月) 14:52:35 ID:Uht2ZkVV
よくある計算なのですが
foreachの出力の時に
1位 100点
1位 100点
1位 100点
4位 99点
5位 85点
5位 85点
7位  0点
と順位を計算するにはどういう式がいいのでしょうか?
844nobodyさん:2008/04/07(月) 14:53:40 ID:???
自分で作れよ。
845nobodyさん:2008/04/07(月) 15:03:40 ID:???
$counting = "0";
$ranking = "0";
foreach( $arrya_ranking as $key => $value)
{
$counting++;
if($compare_value != $value)
{
$ranking = $counting;
}

echo $ranking . "位\n";

$compare_value = $value;
}
???
846nobodyさん:2008/04/07(月) 15:15:09 ID:???
fscanfがおかしいです。
847nobodyさん:2008/04/07(月) 17:00:19 ID:???
>>811
> "%[a-z],%d,%d,%d"とか書けばいけるんでないの?

こんな書き方知らんかった
848806:2008/04/07(月) 17:31:04 ID:???
>>846
単純に最初の %s が全部食ってるだけだと理解してもらう前に
「sscanfもおかしいです。」を期待したんですけどね。
849nobodyさん:2008/04/07(月) 21:18:56 ID:???
CentOS 5.1 + 標準付属の PHP 5.1.6 で、セッション機能を使用しています。

php.ini または ini_set() で設定できる以下パラメータについて疑問があります。

session.gc_probability
session.gc_divisor
session.gc_maxlifetime

session_start() した瞬間に、probability / divisor の確率で、無効なセッションの掃除が行われることはわかりました。

掃除されていないセッションファイルが残ったまま、maxlifetime を過ぎたセッションにアクセスした場合、このセッションは有効なのでしょうか。

maxlifetime の設定さえしておけば、この時間を越えて有効なセッションが存在してしまうことはないと考えてよいのでしょうか。
850nobodyさん:2008/04/07(月) 22:30:11 ID:???
>>849
>>9

試せばわかることやん
851nobodyさん:2008/04/08(火) 01:02:02 ID:0iu/inKG
質問。
画像アップロード機能つきブログっぽいものを作ってます。
画像ファイル名をセッションIDで決めてます(md5(session_id())

初期画面→アップロード確認画面→確定と遷移させており、
アップロード確認画面にサムネイルを表示したい(Mixiみたいなかんじ)
ので、その時点で既にサーバ上にファイルを置いてます。

そこで確定押されたらそのままで問題なし、
キャンセルを押されたらサーバ上のファイルも削除とすればいいのですが、
そこでブラウザ毎閉じられた場合サーバ上に行き場のないファイルが残ってしまいます。

こういうのを感知する方法というかパッケージみたいなのはあるのでしょうか?
852nobodyさん:2008/04/08(火) 01:06:53 ID:???
その質問80回くらい見た
853nobodyさん:2008/04/08(火) 02:18:58 ID:???
>>835
>>839
できました!
ありがとうございました。
854nobodyさん:2008/04/08(火) 04:34:53 ID:???
>>849
ext/session/session.c を分かる範囲で読んでみたが、
session_start() 内でセッション内容を復元してから
GC が働くようになっていた。
考えりゃ名前の通り GC の挙動に対するオプションだし、
セッションの有効期限を保証するもんじゃないな。
自前のセッションハンドラ用意して面倒見るぐらいしか思いつかない。

>>851
お掃除スクリプト組んで
そのアップロード処理時なり cron なりで呼び出す。
855nobodyさん:2008/04/08(火) 07:05:28 ID:j9Rtxrkr
プログラミングに関しては全く無知の者です。

サーバーサイドでXMLをXSLTを用いて変換し、出力結果のみを表示させたいのですが、
このようなプログラムはPHPを使えば作成可能でしょうか?

具体的な作成方法はこれから自分で学ぼうと思っているので、
可能なのかどうかだけでも教えていただければさいわいです。
よろしくお願いします。
856nobodyさん:2008/04/08(火) 07:23:40 ID:???
可能だがわざわざXSLTを使わなくても
PHP側でXMLを読み込んで自分で好きに整形して表示したほうが簡単だしいいと思うが
857nobodyさん:2008/04/08(火) 07:30:38 ID:???
XSLTだったらPerlの方が楽
858849:2008/04/08(火) 12:48:26 ID:???
>>854
やっぱりそうなんだ。。。
自前セッション管理か、めんどくさいなぁ。。。
859849:2008/04/08(火) 12:56:47 ID:???
>>854
ソース読んだ。なるほど。
gc_maxlifetime 自体、probability に引っかかった後にしか参照されていないのね。。。
セッションファイル読み込み前に検証してくれりゃあいいのに。。。

しっかし、こういう事を調べたいときに、ソースのどこを読むべきなのか、それが良くわからん。。。
860nobodyさん:2008/04/08(火) 15:36:08 ID:???
XAMPP + RadishというフリーのSMTPサーバでメール送信のサンプルをwindowsで動かそうとしてます。
Fromヘッダを指定してメールを送ると

SMTP server response: 501 Syntax error in parameters scanning "From" in C:\xampp\htdocs\php\mail.php on line 21

とエラーメッセージが出てしまうのですが、原因とか分かる方いますか?
メール送信部分のソースは以下な感じです。

$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mb_send_mail ($_POST['email'], "件名", "本文1行目\n本文2行目\n", $headers);

よろしくお願いします。
861855:2008/04/08(火) 15:51:44 ID:j9Rtxrkr
>>856
そんなこともできるんですか・・・参考にします。

>>857
PHPの方が将来性があるような気がするので、
PHPで頑張ってみることにします。
862nobodyさん:2008/04/08(火) 16:02:03 ID:???
ここで質問していいのかわかりませんが、ほかに場所がわからなかったので質問させてください。

PHPにてオープンソースのImage_graphってものを使いサンプルのグラフを作成しました。
サンプルの実行例を見る限り、タイトル、メモリの数字などは表示されています。
ですが、実際はグラフは表示されるが、タイトルやメモリが表示されていません。
オープンソースなだけに同じように例が見当たりません。(円グラフの場合、項目名が表示されないのは発見)
どこが駄目かわかる方がいればご教授願えないでしょうか?

ソース:
http://pear.veggerby.dk/samples/code/id/log_axis_low/

以上、よろしくお願いします。
863nobodyさん:2008/04/08(火) 16:23:47 ID:???
>>860
21行目
864nobodyさん:2008/04/08(火) 16:40:53 ID:???
>>860
エラーの文字通りだから、適当に本物のヘッダーと見比べてみたら?
865nobodyさん:2008/04/08(火) 17:24:11 ID:???
>>862
入れてやってみたがちゃんと出たよ。
サンプルと完全に同じコードでやってんの?
866nobodyさん:2008/04/08(火) 18:22:50 ID:EAGbfhcM
バナナ
リンゴ
└青
└赤
みかん

と表示させたいのですが、上手くできません。
以下のソースについて指摘いただければと思います。

$array = array("バナナ","リンゴ","みかん");
$array[1] = array("赤","青");

for($i=0;$i<count($array);$i++){
// 配列の場合
if(is_array($array[$i])){

echo $array[$i]."<br>";
foreach($array[$i] as $value){
echo "└".$value."<br>";
}
// 変数の場合
}else{
echo $array[$i]."<br>";
}

}
867nobodyさん:2008/04/08(火) 18:27:15 ID:???
>>866
同じ変数名使ってるから変になる
$array = array("バナナ","リンゴ","みかん");
$array[1] = array("赤","青");
ってやった時点で
その配列は
array("バナナ",array("赤","青"),"みかん");
になる
868860:2008/04/08(火) 18:45:06 ID:???
>>863

レスありがとうございます。
21行目というのは

mb_send_mail ($_POST['email'], "件名", "本文1行目\n本文2行目\n", $headers);

の行になります。

>>864

見てみたのですが、違いがいまいちわかりません・・・。
ネット上で関数のリファレンス、サンプルコードなどもいくつか確認しましたが、呼び方も同じようです。

Googleで検索したところ、以下の方が同じ症状なのですが、結局解決には至っていないようです。

メッセージが送信できない - PHPプロ!Q&A掲示板
http://www.phppro.jp/qa/818

Windows環境のPHPでRadishをSMTPサーバに使ってメール送信プログラムを動かせている人とかっていませんでしょうか?
869nobodyさん:2008/04/08(火) 18:53:09 ID:???
>Windows環境のPHPでRadishをSMTPサーバに使ってメール送信プログラムを動かせている人
いっぱい居る
870nobodyさん:2008/04/08(火) 19:02:32 ID:???
>>868
その板で解決してるように見えるぞ?
よく嫁
871nobodyさん:2008/04/08(火) 19:11:31 ID:???
>>868
http://jp2.php.net/manual/ja/function.mb-send-mail.php
ヘッダを \r\n で区切って食わせろとは書かれてない。

>>866
$fruits = array("バナナ","リンゴ","みかん");
$attrib = array('', array('赤','青'), array('冷凍'));

ロジックそのままで、変数名だけをこれに合うように書き換えて試してみよう。
872860:2008/04/08(火) 19:32:59 ID:???
>>869

ありがとうございます。
実際に詳しく解説しているサイトなどあったら教えていただけないでしょうか?

>>870

メールアドレスは実際には送受信可能なものを指定しています。
さっきのURLではそれで解消されたように書いてあったのですが、私の環境では変わらないのです。

>>871

おおっ!それは気付きませんでした。

が、

$headers = 'From: [email protected]';
mb_send_mail ($_POST['email'], "件名", "本文1行目\n本文2行目\n", $headers);

のように変えてみたのですが、やはり同じく

SMTP server response: 501 Syntax error in parameters scanning "From"

が表示されてしまいます・・・。
873nobodyさん:2008/04/08(火) 19:40:28 ID:???
Radishの問題だろ
マニュアルを読め

PHPと関係なさ過ぎる
874nobodyさん:2008/04/08(火) 19:52:32 ID:???
>>872
そもそも、SMTPサーバとしては正常に動作してるか、メールクライアントとかでテストしたの?
875866:2008/04/08(火) 19:56:35 ID:???
>>871
アドバイスありがとうございます。参考にさせていただきます。
876860:2008/04/08(火) 20:20:38 ID:???
>>873
>>874

Radish自体はデフォルトの設定(解凍して起動しただけ)の状態で、メールクライアントでのメール送信テスト(localhost:25を指定)は行っています。
そちらのテストでは正常に送信できていました。

php.iniにも以下を設定しており、Radishを落としている時はタイムアウトしたため、SMTPサーバとの疎通というよりは
PHPでのmail関数の使用法に問題があるのかと思い質問させて頂いたのですが・・・。

SMTP = localhost
smtp_port = 25

877nobodyさん:2008/04/08(火) 20:55:23 ID:???
878860:2008/04/08(火) 21:42:25 ID:???
>>877

いろいろ試してみたところ、php.iniのsendmail_fromのコメントアウトを解除したところ、無事メールが送信できるようになりました。
この設定はデフォルトというだけで、メールヘッダの方でFromを指定すれば問題ないと思っていたのですが、Windowsの場合必須なんでしょうか?

この設定を有効にした上で、第4引数でFromヘッダに任意のメールアドレスを指定するとちゃんとそのアドレスで送信されるようになりました。

お騒がせしました。

879nobodyさん:2008/04/08(火) 22:02:00 ID:tayW9iIo
教えてください。

PHPから別のPHPを実行させる為に、PHPのexce関数を使用しています。
WindowsXP上のサーバ環境で問題なく実行できます。
ところが、WindowsVista上のサーバ環境では、exce関数から別のPHPを実行する事ができません。

OSのセキュリティ関係が影響しているのではと思うのですが、原因を掴めていません。
WindowsVistaで、exce関数からPHPを実行させる方法を知っている方いましたら教えて下さい。
880nobodyさん:2008/04/08(火) 22:03:01 ID:???
vistaサーバでPHPましてやexecなんて走らせんな
881879:2008/04/08(火) 22:32:44 ID:tayW9iIo
実行させる方法ないでしょうか
882nobodyさん:2008/04/08(火) 23:20:24 ID:???
>>878
きもち悪い動きだねぇ。

自分は PHP5.2 / WinXP Homeで SMTP/POPはXMAIL を使ったテスト環境作ってるけど、
sendmail_from はコメントアウトされたままでメール送信できてる。
883nobodyさん:2008/04/08(火) 23:29:53 ID:???
初期状態のRadishはFromがいい加減だと受け付けない
php.iniで補完されて通るようになっただけだと思われ

まぁPHPとは関係ないな
884nobodyさん:2008/04/09(水) 00:32:42 ID:???
そんな評論家みたいなレス要らないよ。
解決策を!
885nobodyさん:2008/04/09(水) 00:57:57 ID:zhyjL3fT
配列に

["hoge1"]=>
array(9) {
["comment"]=>
string(4) "aiue"
["IP"]=>
string(13) "xxx.xxx.xxx.xxx"

["hoge2"]=>
array(9) {
["comment"]=>
string(4) "aiue"
["IP"]=>
string(13) "xxx.xxx.xxx.xxx"

みたいな構成の場合にhoge1とhoge2を取得したいのですが、どのようにすればよりですか?
886nobodyさん:2008/04/09(水) 01:01:17 ID:???
>>885
取り出す条件は何よ
foreachでkey取り出せばいいって話じゃなくて?

マニュアル:foreach
http://www.php.net/manual/ja/control-structures.foreach.php
887nobodyさん:2008/04/09(水) 01:05:50 ID:???
>>885
$array[0]['hoge1']?

質問の仕方が非常によろしくない。
888862:2008/04/09(水) 01:28:27 ID:???
>>865
おかしいですね、ソースはそのままなんですけど・・・。
もしかしたらサーバの設定が間違ってしまったのかも・・・。
一度見直してみます。
ありがとうございました。
889nobodyさん:2008/04/09(水) 02:15:28 ID:yG4BsjHJ
すみません質問です
画像のアップローダを作っていて、「A.jpg」と名づけて保存された写真に対して、
「A.jpg」という同じ名前で上書きアップロードをしています
で、その上書き保存はうまくいくんですが、どういうわけか画像のプレビューページに
戻ると古いA.jpgが表示されています
どうしたらいいでしょうか? リロードすると新しい画像になるのでキャッシュかなと
思うんですが、そのページに対して、キャッシュを保持させないような関数など
あるでしょうか?
もしphpの問題でなく、apacheの設定の問題だとしたら、申し訳ないですが
その場合でもご意見もらえたら嬉しいです お願いします

環境はphp5、apache2です
890nobodyさん:2008/04/09(水) 02:24:15 ID:???
[キャッシュさせない]とかでぐぐる

PHPに関する質問をお待ちしております
891nobodyさん:2008/04/09(水) 02:35:39 ID:???
これ、どうしてバレたの?解説して!

 埼玉県警本庄署は8日、中学で同級生だった高校2年の女子生徒(16)に「レイプしますよ」などとメールを送ったとして、脅迫の疑いで同県立高校2年の男子生徒(16)=本庄市=を逮捕した。調べに「間違いありません」と容疑を認めているという。

 調べでは、男子生徒は昨年10月から11月にかけて8回にわたり、別の県立高校に通う女子生徒の携帯電話に「暴行しますよ」「日時が決まりました」などとメールを送った疑い。

 男子生徒は、自分のアドレスが特定されないよう、別のアドレスに変換してメール送信できるサイトを利用していたが、アクセス記録などから発覚した。
892nobodyさん:2008/04/09(水) 02:38:59 ID:???
「別のアドレスに変換してメール送信できるサイト」に残っていたログを
警察が照会した
893nobodyさん:2008/04/09(水) 02:44:54 ID:???
ありがと。そのサイト裏切りじゃね?2chも警察の味方しているし。
警察に弱みでも握られているのかよ。
894nobodyさん:2008/04/09(水) 03:22:59 ID:???
法律的にきちんと請求された犯罪捜査の要求には答えるのは義務
なんで犯罪者をまもらなきゃいけないのかと・・
895nobodyさん:2008/04/09(水) 03:29:39 ID:???
何か心当たりでもあるんじゃないか?
896nobodyさん:2008/04/09(水) 05:20:12 ID:???
「警察の味方」って何だよw
普通の人間は警察の捜査には素直に協力するだろ
897nobodyさん:2008/04/09(水) 05:26:00 ID:???
なんちゃって暴走族なんだろ
いまどきダッセー
898nobodyさん:2008/04/09(水) 05:35:49 ID:???
PHPとの関わりがよくわからんのだけど
警察を explode() して配列に格納したいとかそんな用事か?
899nobodyさん:2008/04/09(水) 06:43:55 ID:???
>>898
なにそれ上手いこと言っているつもりなの?
900nobodyさん:2008/04/09(水) 11:17:42 ID:???
質問です。
DOMスクリプティングはPHPでもできますか?
901nobodyさん:2008/04/09(水) 11:29:11 ID:???
できまsn
902nobodyさん:2008/04/09(水) 11:39:41 ID:???
どうしてバレたの?とかアホかよ。
PHP関係ないしww
903nobodyさん:2008/04/09(水) 11:49:04 ID:???
>>901
ごめんなさい、どっちですか?
904nobodyさん:2008/04/09(水) 13:19:57 ID:???
DOMはDOMであってPHPちゃうやん。
PHPでDOMを生成することはできるけど。
905nobodyさん:2008/04/09(水) 15:38:30 ID:???
>>891
普通に考えればわかるだろ。
メールのアドレスを偽る(fromヘッダーとかの話だと思うけど)
送信経路も違う形にしても、結局使っていたサイトのアクセスログに
利用者のIPアドレス、ホストが出てくるからその時間帯に割り振られていた
地域と、ISPへの接続用ID/PWを調べれば即わかるって
906nobodyさん:2008/04/09(水) 15:49:11 ID:hapnZShV
よくログインのプログラムで
DBにセッションIDとか時間とか記憶させてるけど
後で何に使うの?
907nobodyさん:2008/04/09(水) 16:11:10 ID:???
後で何かあった時の原因究明
908nobodyさん:2008/04/09(水) 21:23:51 ID:???
一定時間リクエストが無かったときのタイムアウト検知に使うんじゃない?
909nobodyさん:2008/04/09(水) 21:39:41 ID:???
昔つきあってた彼女が子供を連れてたら複雑な心境だよ。
910nobodyさん:2008/04/09(水) 23:45:32 ID:???
ディレクトリ内のファイル数の合計を取得したいんですがどう書けばいいでしょうか?
911nobodyさん:2008/04/09(水) 23:57:05 ID:???
count(scandir($path));
912nobodyさん:2008/04/10(木) 01:19:01 ID:???
>>905
ってか、プロバイダーまでグルかよww

昔、ベッコウアメインターネットっていう会社があってけど、
警察から捜査要請があっても断っていた。

プロバイダー責任法とかで、警察に弱みを握られているんだろうな。
913nobodyさん:2008/04/10(木) 01:34:37 ID:???
scandirなんてあったのか、ずっとopendirとreaddir使ってたわ
914nobodyさん:2008/04/10(木) 01:46:15 ID:???
>>909
よう今日の俺。

自分が先にブチ込んだとは言え、
妊娠させるっていう本能的な目的を達成できなかったっていう
負け組感が心のどこかで微かに沸く気がする。

つーかどこの誤爆なんだww
915nobodyさん:2008/04/10(木) 01:46:39 ID:???
>>912
物凄く何をいまさらって感じ
916nobodyさん:2008/04/10(木) 02:37:53 ID:rhHoOlQn
PHPでファイルのある行に追記するという処理をしたいのですけど、
その辺りの処理はどのように書けばいいでしょうか?
917nobodyさん:2008/04/10(木) 02:45:58 ID:???
>>916
何がわからないのか書けよ

全部わからないなら小学校からやりなおせ
918nobodyさん:2008/04/10(木) 02:56:42 ID:???
ファイルのある行に追記するという処理が分からないんです。
日本語読めますか?
919916:2008/04/10(木) 02:58:51 ID:rhHoOlQn
>>917
アルゴリズム的なところが分からないのですけど。
ファイルを開いて、そのファイルの所定の位置に文字列を挿入する
という処理がしたいと思っています。
簡単に、どのようなソースを書けば、そのようなことが出来るでしょうか?
920nobodyさん:2008/04/10(木) 03:09:24 ID:???
>>919
マニュアルは読みましたか?
921916:2008/04/10(木) 03:23:23 ID:rhHoOlQn
読みましたが、買った本の内容がいまいちでして、
fgetsで一度ファイルの内容をすべて変数に格納してから
書き出すということを考えたのですが、
もうちょっと簡単に処理する方法はないでしょうか?
922nobodyさん:2008/04/10(木) 03:27:55 ID:???
それはマニュアルではありません
923916:2008/04/10(木) 03:37:04 ID:rhHoOlQn
>>922
すみません。
マニュアルは見てますが、
私がやりたい項目が見つかりません。
924nobodyさん:2008/04/10(木) 03:52:52 ID:???
>>921
「ない」
925nobodyさん:2008/04/10(木) 04:01:12 ID:???
質問が漠然としすぎてて答えようがねーんだわ

もうちょい具体的に書いてくれ
926nobodyさん:2008/04/10(木) 08:12:34 ID:wqutz9kO
ADOdbで
$hoge = $DB->qstr($_GET['hoge'])
とすると、適切にクオートして、引用符で囲んでくれますが、
このままだと LIKE '%$hoge%'
のように使うことができないのですが・・・

どのようにすればよいのでしょうか?
よろしくお願いします。
927nobodyさん:2008/04/10(木) 08:16:32 ID:???
すみません・・・自己解決しました。
クオートするまえに%を付け足せばいいだけでした・・・
よく考えずに質問してしまって申し訳ありません;;
928927:2008/04/10(木) 08:17:28 ID:wqutz9kO
ID表示するのを忘れてました;
スレを汚してしまって申し訳ありません;;
929nobodyさん:2008/04/10(木) 08:51:01 ID:???
>>916はファイルを読み込まずに行を挿入するっていう関数があると思ってるんだろ。
答えは>>924だ。
930nobodyさん:2008/04/10(木) 08:54:53 ID:???
>>916
1.対象ファイルをオープンする
2.tempファイルを作りオープンする
3.対象ファイルから1行読み込む
4.tempファイルに読み込んだ1行を書き出す
5.3-4を目的行まで繰り返す
6.対象ファイルからある行を読み出し、追加する
7.3-4を最後の行間で繰り返す
8.2つのファイルをクローズする
9.対象ファイルをリネーム
10.tempファイルを対象ファイル名にリネーム
11.リネームした対象ファイルを削除。

実際には1-11の途中で止まってしまっう事も考えて
フラグをセットしておくとか、1-11の処理が同時に
行われないようにするとかの処理が必要。
931nobodyさん:2008/04/10(木) 09:26:30 ID:???
そんなことせんでも配列内で解決できるだろ
932nobodyさん:2008/04/10(木) 09:37:53 ID:???
できない
933nobodyさん:2008/04/10(木) 09:41:59 ID:???
工工エエエエエ(´Д`)エエエエエ工工
934nobodyさん:2008/04/10(木) 09:49:04 ID:???
>>932
それはお前のレベルが低いだけだ・・・
935nobodyさん:2008/04/10(木) 10:20:23 ID:???
最初から挿入したいとこに何かキーを入れといて、
全読み込み→キーを挿入したい文字列に置換→上書き
ってすれば楽。置換後の文字列にまたキーを入れておけば
次回以降も同じ処理で追記できるべ。
936nobodyさん:2008/04/10(木) 10:30:27 ID:???
>最初から挿入したいとこに何かキーを入れといて、

どうやって?
937nobodyさん:2008/04/10(木) 13:44:24 ID:???
fileで読み込めば配列になるだろ
938nobodyさん:2008/04/10(木) 13:50:06 ID:???
ちょっと書いてみたがこんなかんじか?
もっといい書き方あるだろうけど

$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$new_array = array();
$count = 0;
for ($i = 0; $i < count($array); $i++) {
  if ($i == 3) {
    $new_array[$i] = 0;
    $count++;
  }
  $new_array[$i + $count] = $array[$i];
}
print_r($new_array);

$arrayはfileで読み込んだ配列ってことで

$array[3]に0を挿入した新しい配列を作るプログラム
この部分を関数にして引数で渡せば外部ファイル使う必要がないかな
939nobodyさん:2008/04/10(木) 14:09:04 ID:???
while(!feof($IN)){$lines[] = fgets($IN);}
でOK
940nobodyさん:2008/04/10(木) 14:16:48 ID:???
>>939
それ=fileみたいなもんだろ
941nobodyさん:2008/04/10(木) 14:27:18 ID:???
>>938
$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$newArray = array();
foreach($array as $key => $value) {
  if ($key == 3) {
    array_push($newArray,0);
  }
  array_push($newArray,$value);
}
var_dump($neArray);
942nobodyさん:2008/04/10(木) 14:38:51 ID:???
お前らすごいね
943nobodyさん:2008/04/10(木) 16:17:50 ID:???
制御構造の中に function を書いてるやつがいるんだけど、
これありなの?

if (なんたら){
 なんたら
} else {
 function hoge(){
  なんたら
}
 略
 $a = hoge();
 以下略
}
944nobodyさん:2008/04/10(木) 16:35:54 ID:???
制御構造的にはNGだけど間違っちゃいない、
ビギナーがやりそうだな
945nobodyさん:2008/04/10(木) 17:11:08 ID:???
ファイル操作がしたいんだけど

やればいいよ派
┣ファイルストリーム使うよ派
┃┣壊れるのは嫌だよ派(保守派)
┃┃┣処理がアトミックかどうかはFSに依存する(要出展)(ウィキペディア)
┃┃┗ソ連では、ファイルがお前をロックする!(アンサイクロペディア)
┃┗壊れてもいいよ派(過激派)
┃ ┗タロウくん壊れる訳がないよ派(無防備マン)
┗配列使うよ派
 ┣結果が同じならどうでもいいよ派(富豪プログラミング派)
 ┣配列の何が問題なのか分からないよ派(ゆとりプログラミング派)
 ┗問題が出てから対処するよ派(遅延プログラミング派)

しなくていいよ派
┣それは本当に必要なのか考えるべきだよ派(歴史修正主義派)
┣つかなんでこうするの?派(質問に質問で答えると0点だよ派)
┗やらずに済む方法を探すよ派
 ┣スレ違いだよ派(プログラム板派)
 ┣誰かに作ってもらうよ派(Web製作板派)
 ┗やっぱりペチパーには任せられないよ派(島根県松江市板)

マニュアル読めばいいよ派
┣マニュアルは最高だよ派(原理主義派)
┣マニュアルは嘘ばかりだよ派(PHP bugs も bogus ばかりだよ派)
┣User Contributed Notes は最高だよ派(二次創作派)
┗User Contributed Notes がないよ派(三流製作会社の SEO だよ派)
946nobodyさん:2008/04/10(木) 17:16:41 ID:???
>>941
$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$newArray = array();
foreach($array as $value) {
if ($key == 3) $newArray[] = 0;
$newArray[] = $value;
}
var_dump($newArray);
947nobodyさん:2008/04/10(木) 17:17:09 ID:???
マンドクセからDB派(環境は自分で作れ派)
を追加してくれ
948946:2008/04/10(木) 17:18:13 ID:???
×if ($key == 3)
○if ($value == 3)
949nobodyさん:2008/04/10(木) 17:51:20 ID:???
>>944
NGでもなんでもない。
>>943では関数定義が実行時に評価されるって話だ。

if (false) { function hoge() {} }
var_dump(function_exists('hoge'));
950nobodyさん:2008/04/10(木) 18:01:45 ID:???
>>946
これいいな。すごく分かりやすい。
951nobodyさん:2008/04/10(木) 18:03:06 ID:???
結局マニュアル見て>>949のを試すのが一番だな
ttp://www.php.net/manual/ja/language.functions.php
952nobodyさん:2008/04/10(木) 18:07:27 ID:???
>>946
修正後でも結果が変わると思うが?
916の指定行に値を追加したい
というのに対しての回答が938
その回答が941であって
やるならこうだろ

$array = array(1, 2, 3, 4, 5, 6, 7, 8, 9);
$newArray = array();
foreach($array as $key => $value) {
  if ($key == 3) {
    $newArray[] = 0;
  }
  $newArray[] = $value;
}
var_dump($newArray);
953nobodyさん:2008/04/10(木) 18:19:38 ID:???
俺は適材適所派
954nobodyさん:2008/04/10(木) 18:38:42 ID:F/t4zGMj
>>945
読みにくい。これだからプログラムしかしてない人はだめだね
955nobodyさん:2008/04/10(木) 18:45:30 ID:fx+O7o8h
>>951

動作するのは分かってるんだけど、可読性とかの意味でどうなのかと。
あと、わざわざ実行時評価にする意味がある場合があるのかな?
まあ、俺のところで使ってるやつは特に考えずにやったっぽいけど。
956nobodyさん:2008/04/10(木) 19:28:50 ID:???
>>955
>可読性
そりゃ見ての通りだ。
>意味がある場合があるのかな
普通にあるだろ。デメリットも多いがな。
957nobodyさん:2008/04/10(木) 19:56:50 ID:???
if(hoge()){function hoge(){while(hoge()){echo hoge();}}}
958nobodyさん:2008/04/10(木) 19:59:49 ID:???
まぁあれだ、マニュアル原理主義で実際の運用効率とか
考えないキモメンが考えそうなコードだなw
959nobodyさん:2008/04/10(木) 20:01:57 ID:???
>>943
こんなあいまいな質問の仕方なら
この展開もおかしく無いだろ

・言語構造として可能なのか
・実運用としてありなのか
ちゃんとした答えが必要なら、ちゃんとした質問を用意するって基本だろ
960nobodyさん:2008/04/10(木) 20:13:40 ID:???
それも違うな。

細かい技術的なことを気にするよりも、市場調査をしっかりして、
きちんとしたコンセプトを考える方が大事。
企画書なのに5ページも10ページも書いてくる奴は馬鹿。
961nobodyさん:2008/04/10(木) 20:25:01 ID:???
>>960 えーっと・・・・きみは・・・・バカ?
962nobodyさん:2008/04/10(木) 20:40:55 ID:???
今なら言える
「fscanfがおかしいです。」
963nobodyさん:2008/04/10(木) 21:25:17 ID:???
>>958
うちにも居るよ、
スパゲティコードしか書けないくせにプライドだけは
一人前のキモイ香具師、指摘すると青筋たててマニュアルを
持ち出すのなww
964nobodyさん:2008/04/10(木) 21:31:49 ID:???
phpinfo.phpをエイプリルフールに実行したことある人
965804:2008/04/10(木) 22:11:12 ID:???
なんか呼ばれた気がするが気のせいにしておこうっと
966nobodyさん:2008/04/10(木) 22:42:47 ID:???
知識人気取りのバカが多いな
967nobodyさん:2008/04/11(金) 03:48:55 ID:iBavl2hj
>>943
if (なんたら){
 function hoge(){
  なんたら1
}
} else {
 function hoge(){
  なんたら 2
}
}

$a = hoge();
ってのなら昔やったことあるが
968nobodyさん:2008/04/11(金) 04:29:31 ID:???
初めて見たぞこんなの。すげぇな。
969nobodyさん:2008/04/11(金) 06:26:31 ID:???
新スレ準備しようと思うんだけど、正しいテンプレは何時の奴なの?
970nobodyさん:2008/04/11(金) 06:29:54 ID:???
今は正しいのが無い
トリップもOKにしようぜ派と
IDしかダメ派で
争ってるとこだろ
IDしかダメ派の理由が曖昧すぎるけどな
971nobodyさん:2008/04/11(金) 06:41:48 ID:???
そして新スレへ
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/
972nobodyさん:2008/04/11(金) 06:46:53 ID:???
973nobodyさん:2008/04/11(金) 07:24:05 ID:???
> PHP bugs も bogus ばかりだよ派

これは泣ける
俺がmb_decode_numericentityで文字列最後に"&&&"とか"&&&&&"とか&が奇数続くと
一個&が減らされるってバグも通じなかったのか無視されてる
これがもし開発者の目にとまったら無念を晴らしてくれ
974nobodyさん:2008/04/11(金) 09:40:17 ID:???
誰かネタ投下キボンヌ
975nobodyさん
PHPにて、Image_Graphを使っています。
円グラフのマーカーの表示位置を基本は円グラフの中で、
表示出来ない場合(枠に文字列が重なるとかの理由で)は円グラフの外に表示し、
外に出た場合も文字列が重ならない(5%とかの小さいやつとか同士とかで)ようにする方法はあるのでしょうか?

Image_Graph_Marker_Pointing_Angularとかを調べてみたのですがそれっぽいのが見当たりませんでした。
わかるかたがおられたらお願いです、教えてください。
PHP Version:4.3.9