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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2008/03/16(日) 17:23:27ID:???
まず読め→【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カテゴリ)の各スレで
0002nobodyさん2008/03/16(日) 17:23:57ID:???
【簡易FAQ】 (1/3)
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
0003nobodyさん2008/03/16(日) 17:24:08ID:???
【簡易FAQ】 (2/3)
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照
0004nobodyさん2008/03/16(日) 17:24:20ID:???
【簡易FAQ】 (3/3)
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
0005nobodyさん2008/03/16(日) 17:24:55ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

(以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0006nobodyさん2008/03/16(日) 17:25:21ID:???
■過去ログ
【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/
0007nobodyさん2008/03/16(日) 17:31:12ID:???
■関連スレ
くだすれ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/
0008nobodyさん2008/03/16(日) 17:49:38ID:???
【PHP】PEAR Part3
http://pc11.2ch.net/test/read.cgi/php/1188789351/
【PHP】フレームワーク Akelos
http://pc11.2ch.net/test/read.cgi/php/1187333485/
正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
正規表現 part4
http://pc11.2ch.net/test/read.cgi/tech/1186030400/
MySQL 総合 Part13
http://pc11.2ch.net/test/read.cgi/db/1201632550/
Oracle 総合 Session6
http://pc11.2ch.net/test/read.cgi/db/1162215948/
SQLite 6
http://pc11.2ch.net/test/read.cgi/db/1193118037/
Microsoft SQL Server 総合スレ 5
http://pc11.2ch.net/test/read.cgi/db/1175091880/
PostgreSQL Part.5
http://pc11.2ch.net/test/read.cgi/db/1196512717/
データベース
http://pc11.2ch.net/db/
0009nobodyさん2008/03/16(日) 21:29:23ID:???
お約束ってことで。>>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カテゴリ)の各スレで
0010nobodyさん2008/03/17(月) 00:31:39ID:???
                 , .-==== - 、
                  ∠   `^`^~^`ヽ、 \
              ,∠ -‐……‐- 、    \ \
             / .::.::.::.::.:..;.:.:.:..:.:..`ト、    \ \
            / . .::/.:/::.::.:/.::.::.:://.: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 : |
0011nobodyさん2008/03/17(月) 04:09:43ID:???
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
0012nobodyさん2008/03/17(月) 05:17:29ID:???
いつになったら元のテンプレにかわるんだか
0013nobodyさん2008/03/17(月) 05:52:26ID: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の時点でエスケープするか。

どっちがいいのでしょう?よろしくお願いします。
0014132008/03/17(月) 05:55:25ID:???
よくよく考えてみたら、echoのときにだすと、<>もエスケープされてしまいますね。
関数内で処理してそれを普通にechoするしかなさそうですね。
自己解決しました。どうもスレ汚しすみません・・・
0015nobodyさん2008/03/17(月) 06:03:38ID:???
>>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
0016nobodyさん2008/03/17(月) 07:26:35ID:???
>>15
ありがとうございました
mbstring.strict_encodingとは何ですか?
ググってもそれが何かがはっきり書いているページが見つかりません
0017nobodyさん2008/03/17(月) 07:46:48ID:Qd55gHoh
PHPを勉強しようと思っているのですが
本を買うお金もないのでネットで勉強しようかと思います。

俺はここを参考にしてた!とかお勧めのPHP講座サイトはあるでしょうか。
当方プログラミングの経験は無く、0からはじめることになりまず
0018nobodyさん2008/03/17(月) 07:47:01ID:???
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という属性は、実際にはないのでは
ないでしょうか?
0019nobodyさん2008/03/17(月) 08:10:14ID:???
やはりmbstring.strict_encodingは
php.ini-recommendedの中だけに記述されてある
幻の属性のようですね
ジャップにしか関係ないことなので手抜きされているのでしょうか。

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

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

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

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

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

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

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

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

こっちのスレのがオススメ
同じぐらいの人がちらほら居る
0028nobodyさん2008/03/17(月) 23:57:52ID: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 をかましてみましたがそれでも現象は変わりません。

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

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

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

/lib/
         db.inc.php

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

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

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

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

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

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

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

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

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

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

やりたいことは、配列 $record の値を $last_record に保持しておき、
ループの次周でその値の中のいくつかを使用することです。
0041nobodyさん2008/03/18(火) 02:31:52ID:???
>>39
逆転の発想ですねありがとうございます、助かりました
0042292008/03/18(火) 02:38:54ID:XUFQaeko
>>34
なるほど
ありがとうございます
0043nobodyさん2008/03/18(火) 03:16:50ID:???
>>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とか弄ってないの?
0044nobodyさん2008/03/18(火) 03:23:43ID:???
すまん上の最後の使いたいのは〜はどこか記憶の片隅に置いといてくれ
やりたいのはこういう事だよね?
$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と=の間が全角なのはおいといて・・・
0045nobodyさん2008/03/18(火) 03:35:37ID:???
普通にプログラムするなら
自分で最小コード書いて検証しろ
で駄目だったら人に聞け

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

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

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

こんなくだらないことに時間をとらせてしまいすいませんでした。
そして大いに助かりました。どうもありがとうございます。
0047nobodyさん2008/03/18(火) 08:23:48ID:jD2oSeYG
PDTで、他サーバのPHPを使ったリモートデバッグをすることは可能でしょうか?
ZendStudioでは出来たのですが、
PDTでは「PHP実行可能ファイル」という部分で、
ローカルのファイルしか指定できないようなので、
出来るのかどうかわかりません(><)
0048222008/03/18(火) 09:52:16ID:npoe+Lzf
>>27
誘導ありあがとうございます
これからそちらを利用させていただきます
0049nobodyさん2008/03/18(火) 11:52:57ID: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に詳しい人教えてください
0050nobodyさん2008/03/18(火) 11:57:55ID:???
>>49
Call to undefined function sqlite_open()
でググってみ
ググったほうが早いケースはググったほうがいいぞ
0051nobodyさん2008/03/18(火) 11:58:41ID:???
>>49
多分ロードの順序性
php_pdo.dll が php_sqlite.dll より前に必要だった気がする。
php_pdo_sqlite.dll  は使ってないから知らない。
0052nobodyさん2008/03/18(火) 12:03:14ID:???
うん。先にPDOを有効化だろうね。
ロード出来てるかどうかは、phpinfoで見たほうが確実かと。
0053nobodyさん2008/03/18(火) 12:18:50ID:oLNpLuBr
>>50-52
ありがとうございます。
php.iniの順序を変えたんですが、不可能でした。
なーんでできねえかなあ
0054nobodyさん2008/03/18(火) 12:37:17ID:???
まさかと思うけど、apacheは再起動してるよね?^^;
0055nobodyさん2008/03/18(火) 12:38:54ID:???
あとは編集してる php.ini が違うとか。
phpinfo で Configuration File (php.ini) Path を確認。
http://jp.php.net/manual/ja/function.phpinfo.php
0056nobodyさん2008/03/18(火) 13:56:46ID:???
使えてもたしか2系なんでpdo_sqliteつかっときゃいい
0057nobodyさん2008/03/18(火) 14:41:35ID:nN03NNVP
HTML + CSS で、テーブルの特定の行や列だけを
枠で囲むことってできるでしょうか?
セルを枠で囲むことは border でできますが、
<tr> に border を付けてもうまくいかなかった。。。
0058nobodyさん2008/03/18(火) 15:10:26ID:???
スレ違い
0059nobodyさん2008/03/18(火) 15:19:15ID:???
>>57
できるが全力でスレ違い
0060nobodyさん2008/03/18(火) 15:38:13ID:???
スレというより板違い。
Web製作板で聞くといいよ。
0061nobodyさん2008/03/18(火) 15:42:53ID:???
Web製作じゃなくて、Web制作だろ。
喧嘩売ってんの?それとも馬鹿?
どっか逝けよ
0062nobodyさん2008/03/18(火) 19:17:04ID:czwwJPYu
phpを趣味でやっていまして、
phpを仕事にしたいのですが、
28歳からでも業界に入ることは可能ですか?

ちなみに、英検と簿記検定で1級は持っています。
例えば、海外のシステムをphpで作るとか、
会計系のシステムをphpで作るなどのお仕事の需要はありますか?
有識者の方教えて下さい。
0063nobodyさん2008/03/18(火) 19:27:34ID:???
>>62
頑張ればできるんじゃね?
どっちかってーと設計の方にまわされそうだと思うけど
0064nobodyさん2008/03/18(火) 20:02:34ID:???
>>62
英検1級って・・・
悪いことは言わないから、他のを目指したほうがいい。
いろいろと勿体無い。
0065nobodyさん2008/03/18(火) 20:10:18ID:???
>>62
英検1級がどれほどのものか分からんが
ブリッジエンジニアがいいんじゃないか?
中国でも行ってろ
0066nobodyさん2008/03/18(火) 20:37:01ID:???
英検1級は英語だけなら最高峰の大学入れるレベルでしょ
実際にはTOEFLとらないとだめだけど余裕で海外の4年生大学へ留学できるぐらいのレベルなはず
0067nobodyさん2008/03/18(火) 21:52:44ID:???
>>62
IT業界は頭脳土方、頭よりも体力勝負
プログラムのプの字もわからない上司や経営者からは、品質よりもコストダウンだけを強いられる
ろくにテストもできずにバグが出たら開発部が上司や営業部からフルボッコ
成果報酬、実力主義、みなし労働で残業代ゼロの素敵な世界
0068nobodyさん2008/03/18(火) 22:12:19ID: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);
}
0069nobodyさん2008/03/18(火) 22:16:45ID:???
>>68
エラーを見てみ
0070nobodyさん2008/03/18(火) 22:27:20ID:A85b11Lf
renameでファイルの移動が出来ません。
ローカルサーバ上では出来ているのですが、
なぜかレンタルサーバ(CORESERVER)上では出来ません。

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

0071682008/03/18(火) 22:31:32ID:uQDfWjhj
>>69
何のエラーも出ません…
ただ、わかるのは動作するサーバーとしないサーバーがある
くらいなのです…
0072nobodyさん2008/03/18(火) 22:44:29ID:???
>>71
warningも?
GDの問題じゃないよね?
0073nobodyさん2008/03/18(火) 22:45:15ID:???
>>70
ディレクトリのパーミッションを777にしてみれば?
0074nobodyさん2008/03/18(火) 22:47:42ID:???
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());
}
0075nobodyさん2008/03/18(火) 22:49:39ID:???
>>74
SQLがダメな可能性大。SQL見せて。
0076702008/03/18(火) 22:51:44ID:A85b11Lf
>>73
777にしているのですが、全く変わりません。

調べてみると、利用しているCORESERVERはセーフモードが有効だから
それでrenameに制限がかかっているみたいです。
対処法も全く分からないし、こんなことなら借りるんじゃなかった・・・
0077nobodyさん2008/03/18(火) 22:54:51ID:???
$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;

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

でも共有でsafemodeじゃ無いところって殆ど無いし、あってもヤバそうなとこばっかじゃない?
0079nobodyさん2008/03/18(火) 23:11:35ID:???
>>77
ヒアドキュメントは使わないから分からんが、'が怪しくないか?
\入れないとダメな気が・・。
途中でechoしたらどうなる?
0080682008/03/18(火) 23:11:39ID:uQDfWjhj
>>72
Warningも出ません。
GDの問題も考えられますか?
GDはインストールされてますが基本的にサムネを作るなどの別箇所は
問題なく稼動しております。
0081nobodyさん2008/03/18(火) 23:21:01ID:???
>>80
headerは関係なさそう
GDのバージョンチェック汁
0082nobodyさん2008/03/18(火) 23:22:17ID:???
>>80
それ、gifもjpegもpngも、いずれの場合もダメなの?
pngでheader吐いてないのも気になるんだけど・・。
0083682008/03/18(火) 23:45:40ID: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でテストは行っております。
0084nobodyさん2008/03/19(水) 00:19:58ID:???
とりあえず、headerの問題かどうか切り分けてみなよ。
ファイルに出せるかどうか。
0085682008/03/19(水) 00:42:40ID:2SyStzeC
>>84
とりあえずheader以外の出力方法を探して書いて見ますが
知ってたら教えて下さい。
一応自分でも探してみてます。
0086nobodyさん2008/03/19(水) 00:48:38ID:???
>>85
ブラウザではなくファイルとして保存は出来るのか、と聞いてるんですが。
0087682008/03/19(水) 00:58:59ID:2SyStzeC
>>86
あ、それならやり方わかります。
今からやってみます。
0088682008/03/19(水) 01:23:58ID:2SyStzeC
とりあえず保存は出来てますね…
0089nobodyさん2008/03/19(水) 02:10:58ID:aPCtWHEb
PEARの各パッケージのファイルが具体的にどのディレクトリにインストールされているか
調べるにはどうしたらいいですか?
0090nobodyさん2008/03/19(水) 02:13:45ID:???
URL欄にc:\php\pearと入れる
0091nobodyさん2008/03/19(水) 02:22:01ID:???
Linuxの時はどうなりますか?
0092742008/03/19(水) 02:37:23ID:hGKuSH/D
>>79
ちょこちょこ弄ってみましたがよけい酷くなって(笑)
難しい。。
0093nobodyさん2008/03/19(水) 02:54:32ID:???
>>92
まずは切り分けれ。

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

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

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

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

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

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

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

例えば

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

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

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

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

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

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

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

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

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

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

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

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

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

ネット商売なんて運営してみないとわからないことばかりだからね。
0122nobodyさん2008/03/19(水) 19:25:28ID:Q3E6mXW1
サイトの閲覧者のIPアドレスやリモートホスト、UserAgentなどを取得する際
1、$x = $_SERVER["x"];
2、$x = $_ENV["x"];
3、$x = getenv("x");
のどれを使うのが適切なのでしょうか?
0123nobodyさん2008/03/19(水) 19:27:44ID:???
合わせ技が基本
0124nobodyさん2008/03/19(水) 19:37:56ID:???
ip $_SERVER['REMOTE_ADDR']
リモホ gethostbyaddr($_SERVER['REMOTE_ADDR']
ua $_SERVER['HTTP_USER_AGENT']
0125nobodyさん2008/03/19(水) 19:47:27ID:???
>リモホ 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']
0126nobodyさん2008/03/19(水) 19:54:05ID:???
>>125
頭大丈夫か?
0127nobodyさん2008/03/19(水) 19:54:52ID:???
>>126
ゆとりの逆切れワロス
0128nobodyさん2008/03/19(水) 19:56:57ID:???
>>126を見て逆ギレと判断とかすごいな・・・
0129nobodyさん2008/03/19(水) 19:57:39ID:???
頭湧いてるので放置しといてあげてください
0130nobodyさん2008/03/19(水) 19:58:39ID:???
>>125
何がどう問題なんだよ?
まさか)の閉じミスとか誰が見てもわかるようなくだらんこと指摘しないよな?
01311222008/03/19(水) 20:23:13ID:???
>>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);}
という様にしています。
0132nobodyさん2008/03/19(水) 21:04:49ID:???
こんな可愛い子がチベットで苦しんでいる時に、平和ボケした質問ばっか
http://up2.viploader.net/pic/src/viploader603856.jpg
0133nobodyさん2008/03/19(水) 21:59:06ID:???
PHPをソースからインストールしたからか、peclでインストールしようとすると
ERROR: `phpize' failed
になります。
どうしたらphpizeが成功しますか?
0134nobodyさん2008/03/19(水) 22:33:57ID:???
フォームを作る時気をつける点は、
1クロスサイトスクリプティング
2SQLインジェクション

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

mkdirを使って作成したフォルダの所有権がwww-dataであるため、
そのフォルダの中にFTPでアップロードできません。
chownをphpで実行し所有権を一般ユーザーに変更しようとするのですが
実行権限がないらしく変更できません。
www-dataから一般ユーザーに所有権を変更する方法を教えてください。
偉い人
0138nobodyさん2008/03/20(木) 01:57:01ID:???
>>133
phpizeを使えるようにする
とりあえずphp-devel
0139nobodyさん2008/03/20(木) 02:06:12ID: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); 配列の中に配列をいれる命令は左記ではだめでしょうか?
0140nobodyさん2008/03/20(木) 02:31:56ID:???
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);

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

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

サンクス子
0148nobodyさん2008/03/20(木) 11:49:34ID:???
>>145
間違った事教えんな
知らない黙ってろよw
0149nobodyさん2008/03/20(木) 16:47:35ID:MUwPIg+F
>>141
の質問って他にどこかに書いてあるの??
0150nobodyさん2008/03/20(木) 17:11:31ID:???
>>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可能な容量が設定できるアップローダ探しています。
>
> 何方かご存知ありませんか?
0151nobodyさん2008/03/21(金) 01:20:25ID:qnaE/6xK
PHPのクラスってイベントないの?
あとプロパティの役目を担うのがメンバ変数ってことでいいの?
0152nobodyさん2008/03/21(金) 01:40:18ID:???
イベントって?
0153nobodyさん2008/03/21(金) 01:57:37ID:qnaE/6xK
がーん!!
0154nobodyさん2008/03/21(金) 02:57:26ID:???
>>151
ない
そう
0155nobodyさん2008/03/21(金) 02:57:42ID:Qvdb31U5
スレ違いかもしれんが、「json」で検索かけても1つもあたらなかったので、ここで質問します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

どっかのサイトのコピペで動かしたんだろうからこんな構成だろ。
phpはどこで動くか「PHP 入門」でググれ
0226nobodyさん2008/03/23(日) 00:23:16ID:???
フォームのテキストエリアに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件, 本文)
という風に置き換えています。

ある程度は正常に動作するのですが、下記の場合に問題が発生します。
0227nobodyさん2008/03/23(日) 00:24:01ID:???
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に変更し、後ろの文字を判断して置き換えようとしましたが、難解です。
よろしくお願い致します。
0228nobodyさん2008/03/23(日) 00:31:49ID:???
str_replace使わない
0229226-2272008/03/23(日) 00:59:24ID:???
すいません、事故解決しました
0230nobodyさん2008/03/23(日) 13:09:00ID:???
アップローダで画像は○MBまで、圧縮ファイルは○MBまでという感じにファイル毎に
アップロードできる容量を制限できるのを探しています。
ご存知ありませんでしょうか??
0231nobodyさん2008/03/23(日) 13:21:27ID:???
スクリプト探しはスレ違い
0232nobodyさん2008/03/23(日) 13:23:56ID:???
どこで聞けばいいのでしょうか?
一番、ここが近いような感じがしたのでここで質問させてもらいました。
0233nobodyさん2008/03/23(日) 13:24:34ID:???
>>230
php.iniで設定できる項目があるから、それをやれば一発。
わざわざアップローダーを探す必要ない。
0234nobodyさん2008/03/23(日) 13:38:33ID:???
>>233
ファイル種別ごとに制限するのってどうやるの?
0235nobodyさん2008/03/23(日) 13:41:00ID:???
MAX_UPLOAD_SIZE_PER_MIMETYPEか
0236nobodyさん2008/03/23(日) 14:00:45ID:???
そんなディレクティブ無いんだが…
ぐぐってもヒットしねーし
0237nobodyさん2008/03/23(日) 14:00:51ID:???
>>235
http://www.google.co.jp/search?hl=ja&q=MAX_UPLOAD_SIZE_PER_MIMETYPE&btnG=%E6%A4%9C%E7%B4%A2&lr=
HITしないのだが・・・汗
0238nobodyさん2008/03/23(日) 14:09:29ID:???
>>235
>>141>>145>>150か。
0239nobodyさん2008/03/23(日) 14:12:44ID:???
無いから諦めるのか、無いなら作ってみるのか、人生の分かれ道だな。
0240nobodyさん2008/03/23(日) 14:48:35ID:???
前スレ見れないorz
0241nobodyさん2008/03/23(日) 16:23:02ID:???
iniで設定した
サイズ以下
なら
_FILES情報を参照して
○×を
判断するコードを
書けば












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

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

php4のforeachは参照渡し出来ないのね
Notes見て書き直した thx
0258nobodyさん2008/03/24(月) 08:12:46ID: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
0259nobodyさん2008/03/24(月) 10:22:43ID:???
safe-modeとかじゃないの?
0260nobodyさん2008/03/24(月) 10:53:22ID:???
それだと何にも動作しないだろ

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

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

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

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

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

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

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


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

Bサーバのhoge.php

<?php
echo "aaa";
?>


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

どうしてココの住民は、無関心ではいられないのだろうか。
何かとすぐ切れやすい子どもが、このスレに体現されているとしか評価しようがない。
0315nobodyさん2008/03/26(水) 07:17:30ID: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意味不明な質問かもしれませんが、
「ここはおかしい」や「こうした方がいい」等のアドバイスでも構いませんので、ご回答お願い致します。
0316nobodyさん2008/03/26(水) 09:07:29ID:???
>>315
サイトのアクセス状況による
一日数十とか数百単位しかアクセス無いなら前者で良いだろうけど
2ちゃん並にくることが予測されるなら後者の方が良いと思う
とりあえず前者でサイト開いてみて段階踏んだらどうよ?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

俺の場合、BASIC->C->C++->Java->PHPだな。
0366nobodyさん2008/03/27(木) 12:36:13ID:???
>>365
C++からJavaとか、JavaからPHPとか頭が退化してんじぇねーの?
0367nobodyさん2008/03/27(木) 13:07:09ID: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で送るデータはinfo@example.com等です。
どこが間違っているんでしょうか?
0368nobodyさん2008/03/27(木) 13:10:27ID:???
>>366
確かにそうだなw
でも、しょうがないじゃん。これで食ってるんだから。
0369nobodyさん2008/03/27(木) 13:10:55ID:???
>>366
レベルひっくー
0370nobodyさん2008/03/27(木) 13:11:15ID:???
ずっと$_POSTを引きずり回さなくても・・。
0371nobodyさん2008/03/27(木) 13:16:48ID:???
職業プログラマは自分で言語を選べないんだよ…
0372nobodyさん2008/03/27(木) 13:27:47ID:2PjNLBe+
>>370
問題はそこじゃないわけで(ry
ちなみに

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

でも

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

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

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

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

どなたか、お助けください。
0382nobodyさん2008/03/27(木) 16:11:42ID:???
>>381
>>1
0383nobodyさん2008/03/27(木) 16:22:31ID:???
>>381
rsvg-convert
0384nobodyさん2008/03/27(木) 17:29:35ID:wJkba3DR
php.iniにて
mbstring.internal_encoding = eucJP-win
と設定しております。
<?=phpinfo()?>
でブラウザから確認するとちゃんとeucJP-winとなるのですが、
コマンドラインから実行する際に
print mb_internal_encoding();
としたらEUC-JPとなってしまいました。
コマンドラインではphp.iniの設定は読まれないのでしょうか?
またどこで設定すれば良いのでしょうか?
0385nobodyさん2008/03/27(木) 18:36:22ID:???
>>381
svgなんて死んだ規格使うなよ
0386nobodyさん2008/03/27(木) 18:38:13ID: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
はあるんですけども。。。
0387nobodyさん2008/03/27(木) 18:44:21ID:???
>>386
見つからない './xsl.so' の './' はどこでしょう。
03883862008/03/27(木) 19:03:53ID: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ファイルの位置ってどの段階で
指定しているのだろう・・・?
03893862008/03/27(木) 19:12:46ID:???
というか、rpmをきちんと削除しないでインスコしたのが元凶な
気がしてきた。
0390nobodyさん2008/03/27(木) 19:39:44ID:???
>>388
つい昨日、いろんな理由で、PHPをsrc.rpmからいれて
同じような問題がおこって設定した。

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

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

どうも。

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

rpmはphp本体とモジュールで分かれていた。
つまり、php-なんたら-xsl-なんたら.rpmを入れるんじゃね?
って>>392といっている事同じなんだが。
0394nobodyさん2008/03/27(木) 22:16:05ID: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'])
という感じにして処理するしかないのでしょうか?
0395nobodyさん2008/03/27(木) 22:24:40ID:???
>>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を参照するってのが一般的かと
03963942008/03/27(木) 22:26:52ID:???
>その他を選んだ場合のみavoteを参照するってのが一般的かと
あーなるほど。盲点でした。
voteにその他を追加すればよいのですね。
どうもありがとうございます。
0397nobodyさん2008/03/27(木) 22:58:32ID:???
imagick2.1.1を入れました

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

これだと外部にある画像を読み込んでくれません
URLを読み込むにはどうしたいいのでしょう?
マニュアル調べても分からなくて
0398nobodyさん2008/03/27(木) 23:09:22ID:6a96K/LD
A〜Zまでを一つずつではなく、連続で表示したいのですが
どういう風に書けばいいのでしょうか?
0399nobodyさん2008/03/27(木) 23:11:58ID: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 の時は処理してくれません。
何故でしょう?どうしたらいいんですか? 七転八倒したんですが良くわかりません
どなたかご回答お願いします
0400nobodyさん2008/03/27(木) 23:53:54ID:???
>>399
{$scheResult->fields[8]}
日がゼロサプレスすると、1桁ってのがヒントかもしれぬ
0401nobodyさん2008/03/28(金) 00:01:40ID:???
>>398
foreach (range('A','Z') as $c) echo $c;

echo implode(range('A','Z'));
一つずつの意味がよくわからんけどこういうことがしたいのかな。
0402nobodyさん2008/03/28(金) 00:05:40ID:???
GDのImageCreateFromJpegで読み込んでImageJPEGで生成したものを
Imagickに受け渡してなんとかなった気がする
すごい無駄な処理を噛んでる気がするけど
0403nobodyさん2008/03/28(金) 00:28:16ID: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<hoge@hoge.net>";
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
?>
記入したメールアドレスに宛ててメールを送信するスクリプトを作っているのですが、
どうしてもメールのサブジェクトが文字化けしてしまいます・・・。
どうしたら良いでしょうか?
0404nobodyさん2008/03/28(金) 00:32:27ID:???
>>403
mb_convert_encoding();
で指定
04053982008/03/28(金) 00:52:16ID:???
>>401
これです!上手く行きました。ありがとうございました。
04064032008/03/28(金) 00:59:07ID:AaqCMoS5
>>404
どうしても
「【メールのサブジェ%/%H![ 」と言う感じに文字化けしてしまいます・・・
0407nobodyさん2008/03/28(金) 01:46:26ID: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を使えるのですがどう書けばいいかわかりません
ご教授ください
0408nobodyさん2008/03/28(金) 02:14:59ID:???
foreach($obj->children as $child)
0409nobodyさん2008/03/28(金) 05:08:33ID:???
memcacheをセッションストレージに使うことにしました
デフォルトだと使用メモリサイズが64Kですが
もしこれを超えたらどうなりますか?
0410nobodyさん2008/03/28(金) 08:48:06ID:???
>>409
メモリーリークが発生するから、モジュール版phpを使っていると、
apacheが自動的に再起動がかかる。経験済み。
0411nobodyさん2008/03/28(金) 09:53:44ID:???
>>406
まさかと思うが、ソースをSJISとかで記述してるのではあるまいな?
0412nobodyさん2008/03/28(金) 10:24:19ID:???
>>407
それは、Well-formedですらないからあれだけど、
XMLパーサ関数ならキレイにbとcだけ取り出せるよ。
0413nobodyさん2008/03/28(金) 19:16:19ID:???
>>410
メモリーリークって・・・そんなバギーなんですか?
理想的には他のアプリが影響受けないようにmemcache用の別鯖立てた方が
いいってことかな?
0414nobodyさん2008/03/28(金) 19:25:09ID:???
$aa = "123456";
(中身は変動します)
この先頭から3文字だけ削除するにはどうしたらいいですか?
0415nobodyさん2008/03/28(金) 19:56:16ID:???
>>414
substrとかで調べると幸せになれるかも。
0416nobodyさん2008/03/28(金) 20:21:31ID:???
皆さんは成果物をどのレベルまで作り込みますか?
・まったくalertが出ないレベル
・errorは出ないけどalertは許すレベル
0417nobodyさん2008/03/28(金) 21:10:11ID:???
何がエラーで何が仕様か分からないレベル
0418nobodyさん2008/03/28(金) 21:10:50ID:???
>>416
質問は許すがおまえは許さないレベル
0419nobodyさん2008/03/28(金) 22:04:45ID:???
>>416
alertって何?
0420nobodyさん2008/03/28(金) 22:30:01ID:???
>>416
正座のまま後ろに倒れた人
0421nobodyさん2008/03/28(金) 22:36:57ID:???
>>416
言い逃れができるレベル
0422nobodyさん2008/03/28(金) 23:11:19ID:???
E_NOTICEがでるプログラムなんてかこわるい
0423nobodyさん2008/03/28(金) 23:18:16ID:???
ID出してない >>416 の人気に嫉妬
0424nobodyさん2008/03/29(土) 01:20:21ID:nk5k7Lsc
simplexml-load-fileについて質問です。
あるxmlファイルをsimplexml-load-file()でパースした時に
以下のような警告が出てしまいます。

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

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

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

とする場合と

echo "abcdef-ghijklmn";

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

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

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

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

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


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

ぐぐってみたものの分からず。
よろしくお願いします
0452nobodyさん2008/03/29(土) 17:21:41ID:???
>>451
マニュアル1度くらいは読もうよ
0453nobodyさん2008/03/29(土) 17:34:33ID: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);
0454nobodyさん2008/03/29(土) 17:43:23ID:???
phpがキッカケでこの業界に入ったのが、3年前の今頃。
金が良かったこともあって、流される感じで時間を過ごしてしまった。

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

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

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

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

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

とでもして試してごらん

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

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

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

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

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

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

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

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

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

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

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

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

でもその後も欲しい…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

妥協して安全性には少し難がありますが、ビット長の短いものに変更したいと思います。
0493nobodyさん2008/03/30(日) 12:48:20ID:???
>>463
はい、マニュアルどうぞ
http://www.php.net/manual/ja/types.comparisons.php
0494nobodyさん2008/03/30(日) 18:18:33ID:???
$_SERVER["HTTP_CONNECTION"] って普通のブラウザ(携帯除く)なら必ず Keep-Alive になるのでしょうか?
スパムを防ぐのにこれを入れておくと、どういう不都合が考えられますか?
0495nobodyさん2008/03/30(日) 19:14:15ID:pBE7+GD1
すでに存在する関数「db_get」というのが読み込まれているのですが、それを無効化して、あらたに「db_get」という関数を定義することはできるのでしょうか?
他のファイルで旧「db_get」を使用しているため、古いのは残したまま、別のPHPでは新しいdb_getを実行したいのです。
なお読み込みは全て共通ファイルで読み込んでいるので、新しいPHPでも古いdb_getは読み込まれています。
やはり新しいほうを別の名前にするしかないでしょうか?
0496nobodyさん2008/03/30(日) 20:25:54ID:LU6QHGFg
iniファイルで文字を取得して出力しているのですが、
伸ばし棒のところで文字化けしてしまいます。
どうしたらいいでしょうか?
0497nobodyさん2008/03/30(日) 20:30:28ID:???
>>495
名前空間使えばできるけど現状では無理。
プレフィックスつけるかクラスに閉じ込めるのが現実的かと。
>>496
コード見せて。
0498nobodyさん2008/03/30(日) 20:37:26ID: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=アー
0499nobodyさん2008/03/30(日) 20:58:40ID:???
>>498
shift-jisやめれ
0500nobodyさん2008/03/30(日) 21:46:48ID:???
ばーかばーか
0501nobodyさん2008/03/30(日) 22:07:04ID:???
EUCかUTF-8あたりで保存するんだ。
0502nobodyさん2008/03/31(月) 00:21:19ID:???
ディレクトリにあるファイル数を確認し、0000x.incというファイル名前をキーに
降順で読み込む。また、10件以上有る場合は次ページ以降を作ってそちらに読み込む。

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

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

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

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

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

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

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

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

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

echo date("m") + 1; // string + 1 が気持ち悪ければ (int) するなり何なり
0535nobodyさん2008/03/31(月) 18:18:58ID:???
年の瀬で涙目
05365312008/03/31(月) 18:20:45ID:???
ですよね
0537nobodyさん2008/03/31(月) 18:29:17ID:???
12より大きけりゃなんたらって処理入れるだろ普通w
05385302008/03/31(月) 18:33:57ID: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");
}
0539nobodyさん2008/03/31(月) 18:37:28ID:NIwRaO2m
redhat 7.3 + rpm 標準付属の php-4.1.2 を使っています。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>1読んでID出そうな

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

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

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

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

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

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

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

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

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

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


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

0612nobodyさん2008/04/02(水) 18:45:37ID:???
回転寿司でたとえてくれ
06135842008/04/02(水) 18:52:54ID: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);
0614nobodyさん2008/04/02(水) 19:49:28ID:???
>>613
まず、過程で変数の中身がどうなってるかvar_dumpでもしろ

あと
http://www.php.net/manual/ja/language.variables.php
の「変数のスコープ」でも読め
0615nobodyさん2008/04/02(水) 20:30:58ID:oWuCtB30
質問です。
英語文字列の先頭だけ小文字から大文字に変換する関数はありませんか?
あったら教えてください。お願いします。
0616nobodyさん2008/04/02(水) 20:48:09ID:???
>>615
マニュアル嫁
http://jp.php.net/manual/ja/function.ucfirst.php
0617nobodyさん2008/04/02(水) 20:52:43ID:oWuCtB30
>>616
ども
0618nobodyさん2008/04/02(水) 20:52:48ID:???
そんな関数あったのか、プログラマ甘やかされすぎだろ
0619nobodyさん2008/04/02(水) 21:17:01ID:???
>>611
何が言いたいのか未だによく分からんがとりあえず配列をくずして1行にして抜き出せば?
0620nobodyさん2008/04/02(水) 21:36:11ID:???
>>618
それがPHPクォリティ
0621nobodyさん2008/04/02(水) 22:13:20ID:XY6vuSiH
>>619
実は一行にした場合、スマートにA点B点間を切り取る書き方がわかりません
またA点B点になるものが20個くらいつながっていますので
0622nobodyさん2008/04/02(水) 22:20:18ID:???
>>621
とりあえずコード出してみろ
0623nobodyさん2008/04/02(水) 22:51:28ID: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 に文字列が固まって入っている。 これでいいんじゃない?
0624nobodyさん2008/04/02(水) 23:09:23ID:???
>>621
そもそも何を取り出したいのか分からない
0625nobodyさん2008/04/03(木) 04:39:25ID:NUyg6E0X
質問です。

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

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


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

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

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

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

使わない方法があるなら俺にもぜひ教えてもらいたい。
たまに他人のソース見て疑問に思うんだが、
includeやrequireの形跡はないのに、ソース中に見当たらない変数を使用してたりする。
(echo $hoge;とだけ書いてるのにちゃんと$hoge;が表示されてる。$hogeがどこで定義されてるかは不明。)
これってどういう方法使ってやっているの?
importでもないし、namespaceなんかもないし・・・
06336212008/04/03(木) 09:40:11ID: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>という二つの文字列の間、および文字列そのものを含んだ部分の切り取り)
0634nobodyさん2008/04/03(木) 09:47:21ID:???
$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);
0635nobodyさん2008/04/03(木) 09:57:16ID:???
性器表現 db insert into (*)
0636nobodyさん2008/04/03(木) 12:01:29ID:???
性器表現はこうだろw ((i))
0637nobodyさん2008/04/03(木) 12:50:10ID:???
>>631
自分が無知なのを棚に挙げて、人をアホ扱いですかw
どんだけスイート脳なんだよ。

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

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

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

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

自分のホームページがあまりにもアクセス数が少ないので、
自動でカウンターだけでも上げて気休めしてみよーかなと。
0645nobodyさん2008/04/03(木) 15:24:34ID:???
そんなもんブラウザのオートリロードじゃダメなのか?
0646nobodyさん2008/04/03(木) 15:35:09ID:???
>>644
cronで呼び出せば?
06476442008/04/03(木) 15:37:18ID:???
レスありがとうございます。
パソコンを立ち上げなくても、サーバー側で自動でアクセスしてみたいのです。
cronというのは どんな感じですか?
0648nobodyさん2008/04/03(木) 15:41:38ID:???
$count = time(); // 1207200000 ほど引いたほうがいいかも
1日に86400ほど増える。
0649nobodyさん2008/04/03(木) 15:44:02ID:???
カウンターなんて自分で設定したらいいだろ
レンタルカウンターだとしたら無駄に負荷かかって迷惑だからやめとけ
0650nobodyさん2008/04/03(木) 15:49:06ID:???
まさにスレタイにピッタリの質問。
0651nobodyさん2008/04/03(木) 16:13:39ID:???
>>647
まずググレ。
0652nobodyさん2008/04/03(木) 16:14:02ID:???
ファイル管理だったら複数ファイルに分けるべきだろ
0653nobodyさん2008/04/03(木) 17:11:38ID: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」と表示させたい)
どうしたらいいんでしょう? ご回答よろしくお願いします
0654nobodyさん2008/04/03(木) 17:25:55ID:???
>>653
$test=testFunc(1);
print<<<EOF
{$test}
EOF;
0655nobodyさん2008/04/03(木) 17:42:20ID:???
>>653
$ が { のすぐ後に続く場合にのみ認識されます
ってとこ見ると可変関数しかないんでないかなー。
0656nobodyさん2008/04/03(木) 17:48:38ID:2KfD0E2x
>>653-654
ありがとうございます
{$test(1)}みたいに、引数を持たせることは出来ないんでしょうか? 最終的には
for($i=0;$i<10;$i++){
print <<<EOF
 {$test($i)}
EOF;
}
みたいな感じで動的に変化する処理を考えてたので…… 弱ったなぁ
根本的にやり直ししかないのかな、、
0657nobodyさん2008/04/03(木) 17:58:22ID:???
>>656
そこだけヒアドキュメントやめるなりすればいいだけだと思うが
0658nobodyさん2008/04/03(木) 17:59:30ID:???
ここ見てると、やたらヒアドキュメントが好きな人が多いけど、なんで??
0659nobodyさん2008/04/03(木) 18:12:19ID:???
>>655
というか可変関数で出力できないでしょ
ヒアドキュメント内は
0660nobodyさん2008/04/03(木) 18:15:15ID:???
>>659
ところがどっこい{$hoge(1)}で出来る。
0661nobodyさん2008/04/03(木) 18:17:54ID:???
ヒアドキュメントなんだし他に何行もあるんだろ

>>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;
}

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

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

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

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

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

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

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

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

ですが、やっぱりJavascriptしか無理っぽいですね・・。
タイマーみたいなのが作りたいので、ストップ処理も入るし、
そうなると、forとsleepを使っても出来ないみたいです。
0691nobodyさん2008/04/04(金) 00:28:43ID:???
>>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__________;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ob_flush();
flush();

使えばいくない?
0718nobodyさん2008/04/04(金) 21:49:14ID:???
任意のウェブサイトのphpファイルのソースを見る方法って存在しますか?
0719nobodyさん2008/04/04(金) 21:50:19ID:???
>>715
出来ました!!
こりゃ便利! 助かりましたありがとう!
0720nobodyさん2008/04/04(金) 21:55:09ID:???
>>718
犯罪ダメ絶対
0721nobodyさん2008/04/04(金) 23:10:34ID:???
ソースを見るだけで犯罪になるの?
0722nobodyさん2008/04/04(金) 23:49:40ID:???
>>718
ウェブサイトの管理者に頼み込む
合法ぅ
0723nobodyさん2008/04/05(土) 00:26:17ID:???
>>721
不正アクセス禁止法で逮捕
0724nobodyさん2008/04/05(土) 00:28:40ID:???
.phpsでアクセスする
最後のsはソースの意味
詳しくはググれ
0725nobodyさん2008/04/05(土) 00:29:25ID:???
phps 拡張子
0726nobodyさん2008/04/05(土) 00:34:13ID:???
>>724
それで見れるんなら苦労しないだろ・・
0727nobodyさん2008/04/05(土) 00:48:09ID:???
マジレスカコワルイ
0728nobodyさん2008/04/05(土) 02:10:23ID: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;
0729nobodyさん2008/04/05(土) 02:17:36ID:???
gakkiの話なんか一切出てきてないじゃないか。
0730nobodyさん2008/04/05(土) 02:24:44ID:???
function returnData(){
 return $pInfoAry; ←この段階で$pInfoAryの中身はnull
}
0731nobodyさん2008/04/05(土) 02:28:31ID:???
>>728
OOPのgetterでもないのになんでそんな書き方するの?
普通に$pIngoAry[0]['gakki1'];でいいじゃない。
0732nobodyさん2008/04/05(土) 02:39:32ID:???
>>728
スコープの範囲を勉強をしたほうがいい
globalを定義するか引数で値を渡すか
そもそもそんな無意味そうな関数作っても・・・
07337282008/04/05(土) 05:55:14ID:2dn41xYV
>>730-732
ありがとうございます そうでした、スコープすっかり忘れてました
恥ずかしい… ていうかヤバイなぁ、どんどん忘れてく
ちょっと試したいことがあるので、無意味な関数かどうかは今のところ
わからないんですが、、
また何かあったら質問します すみませんがよろしくお願いします
0734nobodyさん2008/04/05(土) 07:05:54ID:IhNkb+FD
PHPのファイルを作成したので
Xamppで開発環境を整えて
ブラウザで見ようとしたのですが
Not Foundで
「The requested URL /xampp/index.php was not found on this server.」
というエラーが出てうまくいきません
どのような原因が考えられますか?
0735nobodyさん2008/04/05(土) 07:18:40ID:???
まんまwas not found on this serverじゃないのか
0736nobodyさん2008/04/05(土) 07:21:47ID:IhNkb+FD
>>735
今回見れなかったtest.phpと同じディレクトリに
index.htmlがあるんですがそれは見れるんです
サーバ上で見つからなかったというのは
どのような原因が考えられますか?
0737nobodyさん2008/04/05(土) 07:48:45ID:???
まずはエラーログ見れ。
0738nobodyさん2008/04/05(土) 08:01:35ID: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.


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

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

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

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

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

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

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

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

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

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

あと、softbankは1分以上の時間を空けて送信しないとエラーになるという話を
聞いたことがあるのですが本当でしょうか?
0767nobodyさん2008/04/06(日) 01:28:14ID:???
php関係あんの?
0768nobodyさん2008/04/06(日) 01:46:47ID:???
このスレはこの程度か
どうもありがとうございました
0769nobodyさん2008/04/06(日) 03:01:47ID: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の受け渡しと同様の事がしたいと言えばお分かりになると思います。
良い方法をご存知の方がいらしたらご教示ください。よろしく御願いします。
0770nobodyさん2008/04/06(日) 03:17:28ID:???
説明が分かりにくい
引数の数と内容が分かっているんだからどうとでも出来るんじゃないの?

どんな値を入れたら、どう処理して、どんな値が欲しいのか説明してくれないと意味が分からない。
0771nobodyさん2008/04/06(日) 03:20:44ID:???
>>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);
}
0772nobodyさん2008/04/06(日) 03:25:35ID:???
call_user_func_array(array($this,'fuga'), $args);
07737692008/04/06(日) 03:33:00ID:???
>>770
自分でもわかりにくかったと思います。すいません。
うまく説明できなさそうだったので、スレ違いで怒られるの覚悟でJSでの等価機能を出しました。

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

>>772
まだ call_user_func_arrayがどういう動きをしてくれるやつか見ていないのでわからないですが、
取り急ぎありがとうございます!
0774nobodyさん2008/04/06(日) 06:44:09ID:???
>>771
異常=動作しない(パース自体が正常にいかない)
0775nobodyさん2008/04/06(日) 08:43:39ID:???
[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>を書き込むことなく改行を反映させることはできないのでしょうか?
もしできるのならばサンプルを頂けるとありがたいです。よろしくお願いします。
0776nobodyさん2008/04/06(日) 08:45:47ID:???
>>775
http://jp.php.net/nl2br
0777nobodyさん2008/04/06(日) 09:45:17ID:???
>>775
俺ならこうする

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

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

if($aaa){
処理
}

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

if(!$aaa){
処理
}
0781nobodyさん2008/04/06(日) 11:45:52ID:???
URLに変数を指定する方法を教えてください。
for ( $no = 1; $no <= 3; $no++){
print '<img src="img/abc[$no].JPG">';
}
としましたが、ソースを開くと<img src="img/abc[$no].JPG">が3つ書かれているだけでした。
0782nobodyさん2008/04/06(日) 12:09:54ID:???
$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>';

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


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

die(mysql_error());

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

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

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

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

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

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

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

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

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

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

// インポート
$tmp = file("hoge.dat");
$arr = hoge($tmp); // hoge関数はインポートする関数。そういうのがあるのか知らないですが。。
0824nobodyさん2008/04/06(日) 22:55:36ID:???
しりあらいず
0825nobodyさん2008/04/06(日) 22:56:10ID:???
>>823
使ったことはないけど。
http://jp2.php.net/manual/ja/function.serialize.php
0826nobodyさん2008/04/07(月) 01:31:39ID:HAJ8ltXQ
$number = "1234";

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

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

mb_send_mailでメール送信する場合、その後popenする必要ってありますか?
もらったコードには入ってるんですが、どこにもpcloseは無いし、
これって不要では?と思って外してみたんですが、それでも普通にメールが送信されます。
でも何か意味があってしてるのかもしれないので、メール関数を使った後に
プロセスをオープンしておく理由があれば教えてください m(_ _)m
0834nobodyさん2008/04/07(月) 13:36:17ID: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;
}
?>

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

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

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

echo $ranking . "位\n";

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

こんな書き方知らんかった
08488062008/04/07(月) 17:31:04ID:???
>>846
単純に最初の %s が全部食ってるだけだと理解してもらう前に
「sscanfもおかしいです。」を期待したんですけどね。
0849nobodyさん2008/04/07(月) 21:18:56ID:???
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 の設定さえしておけば、この時間を越えて有効なセッションが存在してしまうことはないと考えてよいのでしょうか。
0850nobodyさん2008/04/07(月) 22:30:11ID:???
>>849
>>9

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

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

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

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

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

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

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

しっかし、こういう事を調べたいときに、ソースのどこを読むべきなのか、それが良くわからん。。。
0860nobodyさん2008/04/08(火) 15:36:08ID:???
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: hoge@example.com' . "\r\n" .
'Reply-To: hoge@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mb_send_mail ($_POST['email'], "件名", "本文1行目\n本文2行目\n", $headers);

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

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

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

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

以上、よろしくお願いします。
0863nobodyさん2008/04/08(火) 16:23:47ID:???
>>860
21行目
0864nobodyさん2008/04/08(火) 16:40:53ID:???
>>860
エラーの文字通りだから、適当に本物のヘッダーと見比べてみたら?
0865nobodyさん2008/04/08(火) 17:24:11ID:???
>>862
入れてやってみたがちゃんと出たよ。
サンプルと完全に同じコードでやってんの?
0866nobodyさん2008/04/08(火) 18:22:50ID: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>";
}

}
0867nobodyさん2008/04/08(火) 18:27:15ID:???
>>866
同じ変数名使ってるから変になる
$array = array("バナナ","リンゴ","みかん");
$array[1] = array("赤","青");
ってやった時点で
その配列は
array("バナナ",array("赤","青"),"みかん");
になる
08688602008/04/08(火) 18:45:06ID:???
>>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サーバに使ってメール送信プログラムを動かせている人とかっていませんでしょうか?
0869nobodyさん2008/04/08(火) 18:53:09ID:???
>Windows環境のPHPでRadishをSMTPサーバに使ってメール送信プログラムを動かせている人
いっぱい居る
0870nobodyさん2008/04/08(火) 19:02:32ID:???
>>868
その板で解決してるように見えるぞ?
よく嫁
0871nobodyさん2008/04/08(火) 19:11:31ID:???
>>868
http://jp2.php.net/manual/ja/function.mb-send-mail.php
ヘッダを \r\n で区切って食わせろとは書かれてない。

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

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

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

>>870

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

>>871

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

が、

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

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

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

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

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

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

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

SMTP = localhost
smtp_port = 25

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

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

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

お騒がせしました。

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

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

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

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

まぁPHPとは関係ないな
0884nobodyさん2008/04/09(水) 00:32:42ID:???
そんな評論家みたいなレス要らないよ。
解決策を!
0885nobodyさん2008/04/09(水) 00:57:57ID: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を取得したいのですが、どのようにすればよりですか?
0886nobodyさん2008/04/09(水) 01:01:17ID:???
>>885
取り出す条件は何よ
foreachでkey取り出せばいいって話じゃなくて?

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

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

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

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

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

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

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

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

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

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

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

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

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

どのようにすればよいのでしょうか?
よろしくお願いします。
0927nobodyさん2008/04/10(木) 08:16:32ID:???
すみません・・・自己解決しました。
クオートするまえに%を付け足せばいいだけでした・・・
よく考えずに質問してしまって申し訳ありません;;
09289272008/04/10(木) 08:17:28ID:wqutz9kO
ID表示するのを忘れてました;
スレを汚してしまって申し訳ありません;;
0929nobodyさん2008/04/10(木) 08:51:01ID:???
>>916はファイルを読み込まずに行を挿入するっていう関数があると思ってるんだろ。
答えは>>924だ。
0930nobodyさん2008/04/10(木) 08:54:53ID:???
>>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の処理が同時に
行われないようにするとかの処理が必要。
0931nobodyさん2008/04/10(木) 09:26:30ID:???
そんなことせんでも配列内で解決できるだろ
0932nobodyさん2008/04/10(木) 09:37:53ID:???
できない
0933nobodyさん2008/04/10(木) 09:41:59ID:???
工工エエエエエ(´Д`)エエエエエ工工
0934nobodyさん2008/04/10(木) 09:49:04ID:???
>>932
それはお前のレベルが低いだけだ・・・
0935nobodyさん2008/04/10(木) 10:20:23ID:???
最初から挿入したいとこに何かキーを入れといて、
全読み込み→キーを挿入したい文字列に置換→上書き
ってすれば楽。置換後の文字列にまたキーを入れておけば
次回以降も同じ処理で追記できるべ。
0936nobodyさん2008/04/10(木) 10:30:27ID:???
>最初から挿入したいとこに何かキーを入れといて、

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

$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を挿入した新しい配列を作るプログラム
この部分を関数にして引数で渡せば外部ファイル使う必要がないかな
0939nobodyさん2008/04/10(木) 14:09:04ID:???
while(!feof($IN)){$lines[] = fgets($IN);}
でOK
0940nobodyさん2008/04/10(木) 14:16:48ID:???
>>939
それ=fileみたいなもんだろ
0941nobodyさん2008/04/10(木) 14:27:18ID:???
>>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);
0942nobodyさん2008/04/10(木) 14:38:51ID:???
お前らすごいね
0943nobodyさん2008/04/10(木) 16:17:50ID:???
制御構造の中に function を書いてるやつがいるんだけど、
これありなの?

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

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

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

マニュアル読めばいいよ派
┣マニュアルは最高だよ派(原理主義派)
┣マニュアルは嘘ばかりだよ派(PHP bugs も bogus ばかりだよ派)
┣User Contributed Notes は最高だよ派(二次創作派)
┗User Contributed Notes がないよ派(三流製作会社の SEO だよ派)
0946nobodyさん2008/04/10(木) 17:16:41ID:???
>>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);
0947nobodyさん2008/04/10(木) 17:17:09ID:???
マンドクセからDB派(環境は自分で作れ派)
を追加してくれ
09489462008/04/10(木) 17:18:13ID:???
×if ($key == 3)
○if ($value == 3)
0949nobodyさん2008/04/10(木) 17:51:20ID:???
>>944
NGでもなんでもない。
>>943では関数定義が実行時に評価されるって話だ。

if (false) { function hoge() {} }
var_dump(function_exists('hoge'));
0950nobodyさん2008/04/10(木) 18:01:45ID:???
>>946
これいいな。すごく分かりやすい。
0951nobodyさん2008/04/10(木) 18:03:06ID:???
結局マニュアル見て>>949のを試すのが一番だな
ttp://www.php.net/manual/ja/language.functions.php
0952nobodyさん2008/04/10(木) 18:07:27ID:???
>>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);
0953nobodyさん2008/04/10(木) 18:19:38ID:???
俺は適材適所派
0954nobodyさん2008/04/10(木) 18:38:42ID:F/t4zGMj
>>945
読みにくい。これだからプログラムしかしてない人はだめだね
0955nobodyさん2008/04/10(木) 18:45:30ID:fx+O7o8h
>>951

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

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

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

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

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

Image_Graph_Marker_Pointing_Angularとかを調べてみたのですがそれっぽいのが見当たりませんでした。
わかるかたがおられたらお願いです、教えてください。
PHP Version:4.3.9
0976nobodyさん2008/04/11(金) 11:33:10ID:Voj+sZUV
http://thewolf.sakura.ne.jp/i/tool/view.php
これみたいに、ソースを表示させるためにはどうすればいいですか?
0977nobodyさん2008/04/11(金) 11:40:07ID:???
悪魔でも故人の乾燥です。
0978nobodyさん2008/04/11(金) 11:52:09ID:???
>>976
ソースを取得して、エスケープして、表示する
0979nobodyさん2008/04/11(金) 12:45:21ID:Voj+sZUV
一旦エスケープするのか!ありがとうごじゃます
0980nobodyさん2008/04/11(金) 12:51:48ID:???
>>975
文字サイズから高さと幅を計算して、
重なるかどうかをチェックするしかないんじゃない?
重なった分だけずらせば重ならなくなる。
0981nobodyさん2008/04/11(金) 12:57:17ID:+Zr/2VQa
多次元配列のソートについてです。

array_multisort()だと機械的にソートされてしまうのですが
自然順に任意のkeyを対象に
ソートをかけるにはどうすればよいのでしょうか?
0982nobodyさん2008/04/11(金) 13:14:07ID:???
usortかなにかに、
自然順の比較関数を使った関数を自分で書いてソート。

いかにもマニュアルのNotesにありそうなネタだけど...
と思って見たらやっぱりあった。
0983nobodyさん2008/04/11(金) 13:18:31ID:+Zr/2VQa
function fCmp($a, $b){
return strnatcasecmp($a[ "キー" ] ,$b[ "キー" ]);
}
uasort($array, "fCmp");
こんなカンジでしょうか?
キーの部分は、uasort行から渡せないですよね?
09849752008/04/11(金) 13:32:45ID:Krf8JFLU
>>980
やっぱしそこに行き着きますか・・・。
気づいてないだけで本当はあったってのを期待してたのですが・・・。

出来そうか試してみます。
0985nobodyさん2008/04/11(金) 14:25:11ID:???
>>984
一応、こんなん見つけたけど、
ttp://pear.veggerby.dk/forum/comments.php?DiscussionID=680
でもAxisにはバグがあるってのも見つけたから、いまいち自信ない。
0986nobodyさん2008/04/11(金) 14:55:30ID:???
>>983
何次元配列で、どこのキーを基準に、どうソートしたいのか分からん。
全体をまとめてソート?それとも多次元配列の構造を維持したいのか?
uksortでキーソートできるべ。
0987nobodyさん2008/04/11(金) 15:04:56ID:+Zr/2VQa
$array[] = array( "英語の名前" => "AAA", "時刻" => "1900....." "他" => "Active")
$array[] = array( "英語の名前" => "AaV", "時刻" => "1900.....")
$array[] = array( "英語の名前" => "aab", "時刻" => "1900.....")
二次元配列で 二次元目のキーを 英語でー 時刻でー 他でー と渡したいのです。
09889752008/04/11(金) 15:06:18ID:Krf8JFLU
>>985
一度、内容をよく見てみます。

もうひとつ質問があるのですが、
円グラフのマーカーに、"XX.X%"と表示は出来るのですが、
"項目名\nXX.X%"と表示することは可能なのでしょうか?

何度も質問してすみません。
0989nobodyさん2008/04/11(金) 15:16:53ID:+Zr/2VQa
すいません、分かりやすく書きます。
return strnatcasecmp($a[ "キー" ] ,$b[ "キー" ]);
のところでは
0990nobodyさん2008/04/11(金) 15:24:24ID:+Zr/2VQa
渡された二つの配列において
"キー"の時の値を比べているんですよね?
このキーの部分を任意の値に変えるにはどのような書き方をすればいいのでしょうか?
0991nobodyさん2008/04/11(金) 16:09:20ID:???
>>990
こういうこと?

function Camp($a, $b){
global $array;
return strnatcmp($array[$a]['name'], $array[$b]['name']);
}
uksort($array, "Camp");

'name'の所を任意のキーに変えて使ってみれ。
0992nobodyさん2008/04/11(金) 17:10:31ID:???
肉食いたい
0993nobodyさん2008/04/11(金) 17:20:59ID:+Zr/2VQa
>>991
ありがとうございます。
nameの所を任意のキーで使いまわし出来るようにしたかったのです
class cSort
{
var $key;
var $dsec;
function cSort(){
$this->key = "";
$this->desc = "1";
}
function fCmp($a, $b){
$cmp = strnatcasecmp( $a[ $this->key ] ,$b[ $this->key ] );
return $cmp * $this->desc;
}
function fUasort($array){
uasort($array, array( $this, "fCmp") );
return $array;
}
} こんな風にしてみました
0994nobodyさん2008/04/11(金) 17:25:17ID:+Zr/2VQa
$cArray = new cSort();
$cArray->key = "キー名";
$cArray->desc = "-1"; //降順昇順
$ary_result = $cArray->fUasort($ary_list);
ただstrnatcasecmpだと英語は自然になるのですが
2バイト文字が先に来て、その後英数字の自然順になるのですね
記号→ひらがな→漢字→数字→自然順英語
半角を先頭に回したいのですが、今度はコレの問題が・・・・
0995nobodyさん2008/04/11(金) 18:14:16ID:???
>>994
それは比較関数を書くしかない。
マルチバイトに文字を切り出して、
文字コードの範囲で場合分けして比較ってことになるかな。

ttp://www.unicode.org/Public/UNIDATA/Scripts.txt
ttp://www.unicode.org/charts/
一応、unicodeの場合の参考URLってことで


多分、労力の割りに報われない仕事だと思うが。
0996nobodyさん2008/04/11(金) 18:47:23ID:+Zr/2VQa
>>995
ありがとございます
$cmp = strnatcasecmp( $a[ $this->key ] ,$b[ $this->key ] );
$att_a = "0";  $att_b = "0";
if( strlen( $a[ $this->key ] ) != mb_strlen( $a[ $this->key ], "UTF-8" ) ) $att_a = "1";
if( strlen( $b[ $this->key ] ) != mb_strlen( $b[ $this->key ], "UTF-8" ) ) $att_b = "1";

if( $att_a == 1 && $att_b == 0) $cmp = 1;
if( $att_a == 0 && $att_b == 1) $cmp = -1;

return $cmp * $this->desc;
単純に比較結果をひっくり返してみて、とりあえず全角が後ろにソートされたのですが
前頭に英語郡が合っても、途中に記号や全角文字が入ると
後方の全角グループに行ってしまいました。例: ABC株式会社
あくまで人間がやるような自然順を模倣しようとしているだけで
機械的やるには難しいようですね。。。。
0997nobodyさん2008/04/11(金) 19:50:31ID:???
機械的やる難しいアルヨ
0998nobodyさん2008/04/11(金) 20:51:52ID:???
fscanfがおかしいです。
0999nobodyさん2008/04/11(金) 22:01:47ID:???
↓こいつは明日死ぬ
1000nobodyさん2008/04/11(金) 22:14:29ID:???
おっけー!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。