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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2008/05/27(火) 18:04:33ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0002nobodyさん2008/05/27(火) 18:06:01ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/
【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/
0003nobodyさん2008/05/27(火) 18:06:28ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

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

という質問にこのようなレスをもらいました。
 
前すれ954:nobodyさん :2008/05/26(月) 11:04:01 ID:??? [sage]
前すれ>>947
$template = 'あなたの携帯は#AU#AU#/AU##DO#ドコモ#/DO#です。';
function filter($m) { return $m[1] == 'DO' ? $m[2] : ''; }
echo preg_replace_callback('@#([A-Z]+)#(.*?)#/\\1#@', 'filter', $template);

後は filter() 内を好きなように変えな


=========
実際にこれをホストがドコモであれば表示させるようにしたいのですが、どうしたらよいのでしょうか?
よろしくお願いします。


0007nobodyさん2008/05/27(火) 19:09:37ID:???
USER_AGENTでキャリア判別して
条件で振り分ければいいだけだろ
0008(><)2008/05/27(火) 19:13:26ID:???
実際に作ってもらえませんか?
よろしくお願いします。
0009nobodyさん2008/05/27(火) 19:50:10ID:???
丸投げは受け付けておりません
作ってくださいはスレ違い
ていうか自分でできないならカスタムタグとかややこしいのやめなよ
0010nobodyさん2008/05/27(火) 22:19:12ID:???
マルチマルナゲ小僧ウゼ
0011nobodyさん2008/05/27(火) 22:32:31ID:aRsYQ2ls
教えてください。

WEB上で商品管理のデータベースを作成したいと思います。
DBは件数も500件以下でDB自体使用不可のサーバなのでCSVファイルで何とかしたいと思っています。
テーブル数は2個

商品マスタと商品販売履歴の2つです。

2つのCSVをキーで連結した内容をHTML表示をしたいのですが何か良いサンプルのあるページがありますでしょうか?
0012nobodyさん2008/05/27(火) 22:40:29ID:???
$rireki['syouhin_name'] = $syouhin[$rireki['syouhin_id']]
0013nobodyさん2008/05/27(火) 22:47:39ID:???
実際に作ってもらえませんか?
実際に作ってもらえませんか?
実際に作ってもらえませんか?
実際に作ってもらえませんか?
実際に作ってもらえませんか?
0014nobodyさん2008/05/27(火) 22:52:30ID:aRsYQ2ls
>>12さん
ありがとうございます。
早速回答いただいたのですが、CGIのド素人なもんでわかりません。汗
これからCGIの勉強も兼ねているので何か良いサンプルがと思って。。。
すみません。
0015nobodyさん2008/05/27(火) 22:57:22ID:???
>>14
SQLがわかるなら
php text-DB
とかでぐぐってみれ
CSVじゃないけど
0016nobodyさん2008/05/27(火) 23:15:25ID:aRsYQ2ls
>>14さん
ありがとうございます。
そう言う手もあるんですね。
ちょっと調べてみます。
0017nobodyさん2008/05/27(火) 23:49:57ID:???
php5ならMySQLiteが使えるんじゃ?
0018nobodyさん2008/05/28(水) 00:09:43ID:???
>>11
SQLiteも使えないの?
0019nobodyさん2008/05/28(水) 00:35:28ID:???
>>14
ふ〜ん。ネット知識(笑)?
0020nobodyさん2008/05/28(水) 12:46:54ID:go49LsrY
>>17
なんですかそれは
0021nobodyさん2008/05/28(水) 13:35:28ID:???
MySQL + SQLite = MySQLite
0022nobodyさん2008/05/28(水) 13:57:55ID:???
ポスグレもまぜてやれよ
0023nobodyさん2008/05/28(水) 14:28:29ID:RqPfU0bI
メールフォームで、ファイルをアップロードしてもらって
それを添付ファイルとして受け取るものを作っているのですが
悪意のあるユーザがウイルスファイル等をアップして送信してきた場合
それを確かめる方法はあるのでしょうか?
0024nobodyさん2008/05/28(水) 14:35:11ID:???
つノートン先生
0025nobodyさん2008/05/28(水) 16:50:27ID:???
>>23
ttp://www.phppro.jp/news/282
0026nobodyさん2008/05/28(水) 17:00:38ID:???
>>25
>>23 じゃないけど、これは便利かも。
だけど、これライセンスがGPLなんだな。ちょっと残念。
0027nobodyさん2008/05/28(水) 17:03:01ID:???
送られたときにサーバにインストールされてるウイルスソフトをコマンドから起動オプションつけてチェックすりゃいいんじゃないの?
どういうコマンドかわからないといけないが、それならexecとかでできるでそ?
0028nobodyさん2008/05/28(水) 17:30:11ID:xPg3d+eW
PHP Version 5.2.4
Apache1.33 (Release 10337100/API Version 19990320)

$_SERVER["HTTP_REQUEST"] が
プロトコル+ドメイン(http://*****/) を含む場合があるのですが、
どういった場合にそうなるのか、
ご存知の方いらっしゃいましたらご教授ください。

Vista + IE7のマシンでアクセスした場合に発生するようなのですが、
自分の環境では発生しません。(Vista, XP, 2000 + IE7, IE6)
0029nobodyさん2008/05/28(水) 17:41:01ID:???
>>28
そもそも HTTP_REQUEST なんてあったっけ?
003028です2008/05/28(水) 17:56:48ID:xPg3d+eW
すいません間違いました。
REQUEST_URIでした (汗
0031nobodyさん2008/05/28(水) 19:13:53ID:???
簡易データベースご存知じゃないですか?
フリーのを希望です よろしくお願いします
0032nobodyさん2008/05/28(水) 19:15:12ID:???
データベース板に行ってください
0033nobodyさん2008/05/28(水) 19:15:23ID:???
SQLite
0034nobodyさん2008/05/28(水) 19:17:53ID:???
>>31
Access
0035nobodyさん2008/05/28(水) 21:05:23ID:WhRd6kiT
ほい!
「にっこっこ掲示板」ヤフーで検索してみ!「にっこっこ」でOK
新しいの誕生したよ
まだ規制ないし、色々貼れる
0036nobodyさん2008/05/28(水) 23:00:08ID:Atkwe23P
php内にてファイルの内容を表示させようと考えています
test.txtの内容が
echo 'test';
となっていて、別ファイルにて
<?php
readfile("test.txt");
?>
と記述すると画面上には
echo 'test';
と表示されます。これを
test
と表示、つまりファイル内に記載してあるphpを出力したいのですがどうすればよろしいでしょうか?
ご教授よろしくお願い致します
0037nobodyさん2008/05/28(水) 23:01:04ID:???
eval
0038nobodyさん2008/05/28(水) 23:01:37ID:???
include
0039nobodyさん2008/05/28(水) 23:04:10ID:???
require
0040362008/05/28(水) 23:23:55ID:Atkwe23P
>>37さん
ありがとうございました。期待する動作ができました
0041282008/05/28(水) 23:35:57ID:brAZ0jIa
自己解決しました。
GET **** HTTP/1.0 の **** の部分が
$_SERVER['REQUEST_URI'] にそのまま入ってきてるだけでした。
なぜ同じような環境で、リクエストの仕方が変わってくるのかはまだ解明していませんが。

それでは失礼しました。
0042nobodyさん2008/05/28(水) 23:48:19ID:???
XMLファイルへの書き込みをしてるんですが、
<data>
  <log>
    <date>2008/05/27</date>
    <name>hoge1</name>
  </log>
  <log>
    <date>2008/05/28</date>
    <name>hoge2</name>
  </log>
</data>

こんな感じの中に三つ目の<log>を入れるにはどうしたらいいのでしょうか。
今までは.logとか.datに書き込みだったのでfputs()だったのですが、
XMLにfputsするとXMLがおかしくなるみたいです・・・;
0043nobodyさん2008/05/29(木) 00:34:19ID:???
>>42
おまえ質問へたすぐる
0044nobodyさん2008/05/29(木) 00:51:09ID:???
>>42
どうおかしくなるのか詳しく
0045nobodyさん2008/05/29(木) 02:41:16ID:???
>>42
XML ドキュメントを操作したかったら
DOMDocument や SimpleXML を使いな。

$xml = '<?xml version="1.0" encoding="UTF-8"?><data />';
$data = new SimpleXMLElement($xml);
$log = $data->addChild('log');
$log->addChild('date', '2008/05/27');
$log->addChild('name', 'hoge');
echo $data->asXML();
0046nobodyさん2008/05/29(木) 09:53:26ID:???
他サイトのFORMのGETの結果を取得して
特定文字列を置換して表示したいのですが、
どうすれば良いですか?
0047nobodyさん2008/05/29(木) 09:54:40ID:smrRJpNe
すいませんテンプレ読んでませんでした。

他サイトのFORMのGETの結果を取得して
特定文字列を置換して表示したいのですが、
どうすれば良いですか?

また来ます。
0048nobodyさん2008/05/29(木) 10:38:06ID:???
・他サイトのFORMのGETの結果を取得
・特定文字列を置換
・表示

どれがわからんの?
0049nobodyさん2008/05/29(木) 13:13:54ID:NlmBigbp
よろしくお願いします。

[環境]
ApacheFriends XAMPP (basic package) version 1.6.6a ######

Apache 2.2.8
MySQL 5.0.51a
PHP 5.2.5 + PHP 4.4.8 + PEAR

このページ→ttp://kawama.jp/archives/2005/12/mysql_error_136.html

>ググってみても、それらしきソースは見つからない。そこでmy.iniを見てみると、
>なんだか見慣れないオプションが設定されている。

>sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

>http://www.limy.org/program/db/mysql/mysql_option.html

>↑このサイトによると、「他ベンダーのデータベースやバージョンの違うMySQLと
>の互換性の>為に使用します。詳細は不明です。」とのこと。
>とりあえずコメントアウトしてMySQL再起動してみたら、見事解決。。。


sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
をコメントアウトしたいのですが、【my.ini】が見つかりません。

C:\WINDOWS\my.iniには【sql-mode=…】の記述はないし、
C:\xampp\mysql\bin\my.cnfにもそういった記述はありませんでした。

一体どこにあるのでしょうか?
0050nobodyさん2008/05/29(木) 13:21:16ID:???
>>49 XAMPPのことはよくわからないけど、 mysqld --verbose --help みたいにして、現在の設定をダンプ出来ないの? ていうか、PHP関係ないね。
0051nobodyさん2008/05/29(木) 18:25:23ID:???
LINUX でPHP5.1.6にGDライブラリ追加したいんですが
configureからやり直しで再インストールするしかないですか?
0052nobodyさん2008/05/29(木) 18:30:11ID:jCzn3hSF
連投すいません。一応あげときます。
0053nobodyさん2008/05/29(木) 18:34:17ID:2c4uBvQ0
形状の違いから酵素に冒されないのは理解できるのですが、
アミノ酸まで分解とまではいかなくても蛋白質構造が胃酸で変性しないのですか?

異常プリオンとは熱・酸に冒されないほど化学的に安定した構造なのでしょうか?
0054nobodyさん2008/05/29(木) 19:08:32ID:???
>>51
--with-gdを付けないでビルドしたんなら、そりゃconfigureからやり直しだろう
どうやってインストールしたかも書かないのはエスパー希望ですか?
0055nobodyさん2008/05/29(木) 19:24:15ID:UIFzCbrI
あ〜ん、までの平仮名一文字づつについて繰り返し処理をしたい。
やり方として配列に あ〜ん を一文字づつ入れてwhileで処理する以外にスマートな方法ないですか?
事前に配列に入れておかなくても、数値のfor処理みたいに
繰り返し一周ごとに文字を あ→い みたいに進める方法があればいいんですが。
0056422008/05/29(木) 19:28:09ID:QTbXsS7l
>>45
大体はわかりましたが、
data.xmlというXMLファイルを開いて書き込むにはどうすればいいのでしょうか
0057nobodyさん2008/05/29(木) 20:46:29ID:???
>>55
ASCIIアルファベットならスマートにできるが、平仮名だと配列とかに入れとくしか俺は知らんなー
00588312008/05/29(木) 21:10:20ID:6osKbEoJ
>>57
そうですかー。
正規表現も あ-ん とかないですもんね。
レスありがとうございました。
0059nobodyさん2008/05/29(木) 21:11:35ID:???
>>55
かなり無理やり

mb_language("ja");
mb_internal_encoding("sjis");
for ($i=0xb1; $i<0xde; $i++) {
echo mb_convert_kana(chr($i),"H");

}
0060nobodyさん2008/05/29(木) 21:59:46ID:???
宿題でa-zとなってたのを
あ-んに置き換えて質問したと予想
0061nobodyさん2008/05/29(木) 22:00:43ID:???
>>58
や、正規表現なら[あ-ん]はあるぞ
mb_eregとかのmb系になるが
0062nobodyさん2008/05/29(木) 22:24:13ID:???
[らめぇ]
0063nobodyさん2008/05/30(金) 00:36:16ID:zkzWC96U
getで取得した値で判断して404を返したいのですがうまくいきません…

foo.php

<?php

if (!$_GET['foo']) header('HTTP/1.1 404 Not Found');

echo "foo is true";

?>

こう書いて foo.php にアクセスしても foo is true となってしまいます
<?php以前には何も書いてないのでheader以前の出力はないと思うんですけど。。。
0064nobodyさん2008/05/30(金) 00:44:37ID:???
ブラウザのキャッシュが残ってない?
0065nobodyさん2008/05/30(金) 01:30:16ID:???
Ctrl+F5しても一緒ですね。。。
0066nobodyさん2008/05/30(金) 01:30:31ID:zkzWC96U
あ、>>65は私です
0067nobodyさん2008/05/30(金) 01:37:00ID:???
値を調べてみた?
print_r ($_GET['foo']);
0068nobodyさん2008/05/30(金) 01:44:20ID:???
foo.php?foo=&毎回違う適当な文字列
でアクセス
0069nobodyさん2008/05/30(金) 02:02:55ID:???
>> 63
そりゃ、header出力後に処理を継続してるんだからechoされるのは当然だと思うんだが。
404ヘッダー吐いたからと言って処理は停止したりせんよ。
0070nobodyさん2008/05/30(金) 06:26:13ID:???
あ、確かに。言われてみればそりゃそうだな。
0071nobodyさん2008/05/30(金) 09:27:42ID:???
Noticeって修正した方がいいんかな。
0072nobodyさん2008/05/30(金) 10:29:07ID:2R6P0FMx
ひょっとしたらスレ違いかもしれませんがご存知でしたら教えてください。

ルートディレクトリにある.htaccessに設定したinclude_pathを
下のディレクトリにあるスクリプトが実行されたとき
そのディレクトリにある.htaccessでinclude_pathを再定義したいのですが
うまくいきません。
このようなことはできないのでしょうか?
0073nobodyさん2008/05/30(金) 10:33:04ID:2R6P0FMx
すいません。できました。↑
再定義したファイルが別のファイルだったという
単純なオチでした。スレ汚しごめんなさい。
0074nobodyさん2008/05/30(金) 11:00:15ID:jYsEwVCp
前スレで、FAXをブラウザから操作できないか聞いたものですけど、
全く役に立たないレスばかりでした。もう、このスレには絶対に来ません。
0075nobodyさん2008/05/30(金) 11:06:47ID:???
前スレを知らないが、方法あるよ。
もう来ないんじゃどうしようもないか。
俺もたぶん来ないけどな。
0076nobodyさん2008/05/30(金) 11:13:15ID:???
set/getで対応してるメンバはワーニングはかないようにするにゃどうすりゃいいんでしょうか。
0077nobodyさん2008/05/30(金) 11:38:32ID:???
>>74
送信は gs で g3fax 形式にしてモデムにATコマンドで叩き込め。受信はその逆だ。
0078nobodyさん2008/05/30(金) 12:42:33ID:???
ATコマンド懐しいな
もうATDTくらいしか覚えてねえや
0079nobodyさん2008/05/30(金) 16:48:45ID:Dv5a9ryj
クラスのインスタンスを作成するときに
以下のように'=&'とやっているコードを見かけるのですが
どのような意味があるのでしょうか?
あるのとないのでは動作に影響があったりするものでしょうか?

$obj =& new Classname($param);

テンプレート5-18に書かれているように
パフォーマンスの目的だけで参照渡しにしているだけ
なのでしょうか。
00809552008/05/30(金) 16:55:17ID:83eH6Skx
商品登録用のCSVアップローダのテンプレートorサンプルをさがしているんですが、
何か良いものってありますでしょうか?
0081nobodyさん2008/05/30(金) 17:23:14ID:???
質問です
pearのsmartIRCっていうのを使おうとしてるんですが、複数chに同時接続ってできないんでしょうか?
0082nobodyさん2008/05/30(金) 17:23:47ID:???
サンプルならマニュアルでいいじゃん

アップロードの処理
http://jp.php.net/manual/ja/features.file-upload.php
fgetcsv
http://jp.php.net/manual/ja/function.fgetcsv.php
0083nobodyさん2008/05/30(金) 17:47:41ID:???
質問です
環境
 PHP 5.2.5
win XP
IIS

wwwrootじゃない場所にある画像を表示するために

header("Content-type: image/jpeg");

$file = "元画像";
$file2 = "新ファイル";

$img = imagecreatefromjpeg($file);
$flg = imagejpeg($img);
//$flg = imagejpeg($img,$file2);
$flg = imagedestroy($img);

というソースを組んだのですが、画像を表示できません。

imagejpegに保存先の引数を与えると、新しい画像ファイルが保存されるので
元画像を取り込めてはいるようです。

IISを使っているのですが、そこに原因があるのでしょうか?

取り込んだ画像をwwwroot以下に保存して、imgタグの参照先に直接ファイルを
指定する方法はセキュリティーの問題で使用できません。

よろしくお願いします。
0084nobodyさん2008/05/30(金) 18:14:23ID:???
>>83
ただ画像を出力するならGD不要
header("....");
$file = "/home/hoge/image.jpg";
readfile($file);

headerを送信する前に何か送ってない?
0085832008/05/30(金) 18:25:13ID:???
>84
アドバイスどうもです、試してみます。

上記したソースのみなので、header前は何も処理していないです。
0086nobodyさん2008/05/30(金) 18:48:03ID:???
>>83-85
処理とかじゃなくて<?phpの前に
改行とかあってもNGなんだけど、だいぢょうぶ?
てか、えらーを確認しる
0087832008/05/30(金) 19:03:02ID:???
readfile($file);を使用してみても何も表示されず、
もちろん<?phpの前には何も書いてません。

エラーも特に出ておらず、$flg = imagejpeg($img);の前にechoとかすると
エラーが出ることは確認してます。
0088nobodyさん2008/05/30(金) 20:07:39ID:???
error_reportingと
display_errorsの設定は?
0089nobodyさん2008/05/30(金) 21:49:55ID:???
PHPとCSVでデータベース作成してるんですが
画像を表示させるにはどうすればいいのでしょうか?
相対アドレスでひとつひとつ指定していくしかないのでしょうか?
0090nobodyさん2008/05/30(金) 21:58:28ID:jYsEwVCp
>>77
ありがとう、確かにその方法があった・・・
ATコマンドマニュアル書にも書いてある・・・

でも、もう遅い・・・
今日がリリースだった・・・

遅いよおおお、もっと早く・・・
0091nobodyさん2008/05/30(金) 22:16:16ID:???
もうこないでくださいね^^
0092nobodyさん2008/05/30(金) 22:43:51ID:???
すみません。PHPのプログラムで僕のちんぽをたたせてください><;
0093nobodyさん2008/05/30(金) 23:09:04ID:???
僕のちんおかちんこちんにしてお(^ω^)
0094nobodyさん2008/05/31(土) 02:16:30ID:???
>>90
あの態度じゃ当然
0095nobodyさん2008/05/31(土) 09:24:49ID:rg5NRkec
>>79
http://ml.php.gr.jp/pipermail/php-users/2004-January/020601.html
0096nobodyさん2008/05/31(土) 10:25:15ID:???
>>95
そういうことじゃなくて、
クラスをnewするときに限っての話だと思うよ。

$obj =& new Classname($param);

$obj = new Classname($param);
の違い。

使い分ける理由はあるのか?と。

0097nobodyさん2008/05/31(土) 10:53:26ID:???
PHP5以降はないでFA?
0098nobodyさん2008/05/31(土) 14:25:14ID:???
javaでいうAPIドキュメントみたいなサイトってありますか?
0099nobodyさん2008/05/31(土) 14:27:10ID:VvNY8ycB
formのデータを取得したいんだけど、うまく出来ない

select 名前(田中) select select select
select 名前(佐藤) select select select
select 名前(伊藤) select select select

という感じで、名前の部分以外はselectで選択するようになっている。
名前の部分は、選択する必要がなく、labelで書いているんだけど、この名前もselectのものと同じように
配列で取得したいんだ
でもlabelには、元々name属性もvalue属性もないからできない
いい方法ありますか?
0100nobodyさん2008/05/31(土) 14:30:20ID:???
>>98
>>1 の一行目ぐらい読め。
0101nobodyさん2008/05/31(土) 14:46:36ID:YpR0nkCv
[OS]:CentOS4
[PHP]:Ver 4.3.11

PEARのImage_Graphを使おうとしています。
$ pear install --alldeps Image_Graph-alpha
とすると「requires PHP extension "gd"」と出るので、
$ yum install php-gd
をしました。

再度pear install --alldeps Image_Graph-alphaを実行しても
同じエラーが出ます。
どのようにしてImage_Graphを使うようにするのでしょうか?

エラーの詳細です
------------------------------------------------
[root@hoge /]# pear install --alldeps Image_Graph-alpha
pear/Image_Canvas requires PHP extension "gd"
pear/Image_Graph requires package "pear/Image_Canvas" (version >= 0.3.0)
pear/Image_Color requires PHP extension "gd"
No valid packages found
install failed
------------------------------------------------

よろしくお願いします
0102nobodyさん2008/05/31(土) 15:21:54ID:???
>>99
hidden
>>101
まずgdが正しくインストールされたのか確認する
01031012008/05/31(土) 15:36:36ID:YpR0nkCv
>>102
返信ありがとうございます

[root@hoge ~]# rpm -ql php-gd
/etc/php.d/gd.ini
/usr/lib/php4/gd.so

次に/usr/lib/php.iniの中の
extension_dir = "./"
に従い、

$ cp -p /usr/lib/php4/gd.so /usr/lib/

(php.iniが/usr/libの中にあり、extension_dirが./になっているので
やってみました)

php.iniに
extension=gd.so
を追加。

apacheを再起動。

/usr/lib/の中には
libgd.a
libgd.so
libgd.so.2
libgd.so.2.0.0
があります。

しかし、同じメッセージが出てしまいます
0104nobodyさん2008/05/31(土) 15:37:05ID:???
phpinfo見なされ
0105nobodyさん2008/05/31(土) 16:11:52ID:???
>>101
conf.d内にgd.iniあるならphp.iniには追加しなくていい
0106ノシ2008/05/31(土) 18:34:12ID:???
ランダムコメントを独自タグで表示させたいのですがどうしたいいのでしょうか?


#COM#ランダムコメント1,区切って2,ランダム3#/COM#

とあったら
#COM# から #/COM#

まで,で区切られた文字列を
ランダムに表示させたいです。わかるかたよろよろしくお願いします。 

0107nobodyさん2008/05/31(土) 18:36:00ID:???
>>106
で、どこがわからないのですか?
全部1からコード書いてくれって依頼か?
0108ノシ2008/05/31(土) 20:09:24ID:fD/ntKdG
それで、
正規表現を使うのも変換するのもわかるのですが


変換ルーチンに

つまり

\\1
で指定した文字を
どのように持ち込むかがわかりません
0109nobodyさん2008/05/31(土) 20:29:34ID:???
またお前か
0110nobodyさん2008/05/31(土) 20:52:03ID:???
xamppでコントロールパネルからapacheを再起動させようと一回停止して
また開始ボタンを押しても一向に起動されないんですけどなぜでしょうか?
パソコン自体を一度再起動してもなりません。
0111nobodyさん2008/05/31(土) 21:06:24ID:???
configが間違ってる
0112nobodyさん2008/06/01(日) 04:27:33ID:???
sage
0113nobodyさん2008/06/01(日) 13:15:34ID:Ss8+miwE
ご教授願います。

[OS] WindowsXP
[HTTPD] AN HTTPD 1.42p
[PHP] 5.2.6
[現象]
includeが使えたり使えなかったり。
include "hoge.php"; 以降の記載が無視される。

しかし、使える場合もある。
使える組み合わせ(呼び出す側と呼び出される側の組み合わせ)なら何回やっても使える。
使えない組み合わせだと何回やっても使えない。

そのため、どこの部分で引っかかっているのか判らない
エラーは吐かない。

ちなみに、以前php4(xampp環境)で使用していたときは、問題なく使えていた。

解決のための切り分けのヒントでもいいのでお願いします。
0114nobodyさん2008/06/01(日) 13:28:36ID:???
>>113
>>88
01151132008/06/01(日) 13:38:18ID:Ss8+miwE
>>114

ありがとうございます。
現在適応しているphp.iniは

error_reporting = E_ALL & ~E_NOTICE
display_errors = On

です。
よろしくお願いいたします。
0116nobodyさん2008/06/01(日) 14:01:08ID:???
includeが使える場合と使えない場合のコードを出してくれ
0117nobodyさん2008/06/01(日) 15:07:29ID:???
>>89
0118nobodyさん2008/06/01(日) 15:21:44ID:???
>>89
0119nobodyさん2008/06/01(日) 23:10:35ID:???
何をもって「使えた」「使えなかった」と判断してるんだ?
0120nobodyさん2008/06/01(日) 23:46:09ID:???
使えない=include以降が無視される って話だろ?チガタラスマ
0121nobodyさん2008/06/02(月) 09:47:17ID:???
使えない組合せで、どこまで処理が進んでるか調べろ
01221132008/06/02(月) 10:21:58ID:1QPDvcRn
>>116

ちょっとどちらのコードもかなり大きいのでここに貼り付けるのは不可能。
コード書くのがへたっぴなものでかなり膨大なサイズに・・
だから、切り分けの手段のヒントが欲しかったです。
でもここに貼り付けられるように、パターンが似たサンプルコードを書いていたら、結果として切り分け成功しました。
ありがとうございます。

>>119

>>120 の仰る通り。
include以降が無視される場合が使えない。
ただ、使える使えないって書き方はとても論理的ではなかったですね。
反省・・

>>120

フォローありがとうございます。
こんな論理的でない文章を理解していただけて助かります。

>>121

includeをコードのしょっぱなに持ってきていたので、最初の行ですでにそれ以降が無視されるという現象に・・
01231132008/06/02(月) 10:22:37ID:1QPDvcRn
とりあえず、皆様のアドバイスを元に、切り分けた結果
includeされているファイルに問題がありました。
しかし、ここで疑問に思うのは、なぜエラーを吐かないのか
実は、includeされているファイルはさらに別のファイルをincludeするという二重include構造になっていました。
このさらにincludeされているファイルが悪いようです。(下記に示すところのファイルC)

ファイルA ← ファイルB ← ファイルC
( ← はincludeで読み込んでいる)

こいつは単体でアクセスしてもエラーを吐かず、ソースにも何も表示されません
そのため、どこに問題があるのか今の段階ではまだ絞れていません
このファイルCだけならここに張ることも可能なのですが、人様が作ったものでフリーで公開されていたものなので
ここに晒していいかどうかわからないので、とりあえず自分でもう少し絞っていこうと思います。
(このコードがphp5と相性が悪い線が強そうです。)

ご迷惑おかけしました。
皆様のアドバイスでここまでこぎつけたことは事実です。
ありがとう!!
0124nobodyさん2008/06/02(月) 11:40:17ID:???
exitとかdieとかで正常に終了している
0125nobodyさん2008/06/02(月) 11:57:28ID:???
mysqliが設定されているか確認したいのですがどうすれば確認できるでしょうか?
php version5.1.6をyumコマンドでインストールしました。
01261132008/06/02(月) 12:01:29ID:1QPDvcRn
>>124

そのファイルCは、RSSパーサーなんですよね。
で、いろんなRSSを突っ込んでみたんですけど、やはり結果は一緒で
でもPHP4だと正常に動くんです。

ちなみに仰られていたので、 exit と die を検索かけて見ましたが使用されていませんでした。
というか、これで思いついた、@マークをすべて消し去ればどこでエラーが出てるかわかるかも・・・
01271132008/06/02(月) 12:23:07ID:1QPDvcRn
解決!

@mb_convert_encoding()
が原因でした。

問題は、PHPのバージョンではなく、私のphp.iniの設定だったようです。
このフリーのRSSパーサー(>>123 でいうところのファイルC)がコードの中に@mb_convert_encoding()でエンコードする
文字コードを別に設定しており、その設定が私のphp.iniと反する設定になっていました。

64 | $page = EUC_JP;
156 | $hoge = @mb_convert_encoding($hoge, $page, 'auto')
みたいな感じになっていました。

切り分けの際に、以前のphp.iniも適用して調べたと思ったのですが、抜けがあったみたいですね。
(再起動忘れたかな・・・)

スレ汚し、失礼いたしました。
ヒントを与えて下さった方々ありがとうございました!
0128nobodyさん2008/06/02(月) 12:48:43ID:RzwMZ6BK
連想配列でkeyとvalueを維持しつつ
Sqlの order by key,value
のようなことをさせるにはPHPではどのようにすれば良いのでしょうか?
0129nobodyさん2008/06/02(月) 13:10:12ID:???
@付けといてエラーを吐かないとか、もう・・・うっかりさんめ
0130うっかりさん2008/06/02(月) 13:20:46ID:???
火から顔が出そうな思いです・・・
切腹します。
0131nobodyさん2008/06/02(月) 13:27:10ID:???
>>128
asortしてからksortしたらどうなるだろ?
0132nobodyさん2008/06/02(月) 14:46:49ID:???
array_multi_sort
0133nobodyさん2008/06/02(月) 15:18:53ID:???
>>128
連想配列のキーに重複は無いからvalueの並び順はかんけーない
ksort
0134nobodyさん2008/06/02(月) 18:52:31ID:SnLmoVqt
はじめまして

初歩的な質問で申し訳ないのですが、『WT_HeaderNavi()』という関数を自分で設定し
↓のように記述して

------------------------------------------------------------
<?php
echo '<a href="' . WT_HeaderNavi(999) . '">TEST</a>';
?>
------------------------------------------------------------

実行すると↓のように<a></a>のタグの前に【関数で出力される値】が来てしまいます。

------------------------------------------------------------
【関数で出力される値】<a href="">TEST</a>
------------------------------------------------------------

↓のように順序通り出力するにはどうすればよいのでしょうか?

------------------------------------------------------------
<a href="【関数で出力される値】">TEST</a>
------------------------------------------------------------

色々ググったのですが、見つかりませんでしたのでご教授お願い致します。
0135nobodyさん2008/06/02(月) 19:34:08ID:???
>>134
WT_HeaderNavi(999)の中でechoやらprintやらしてねーか?
関数の最後で return 【関数で出力される値】; だな
0136nobodyさん2008/06/02(月) 19:40:40ID:???
135>>
その通りでした!!ぐっときました!!
ありがとうございました!!

0137nobodyさん2008/06/02(月) 19:55:59ID:???
スレタイに合致しすぎた痛い質問とその解決を見てむかついてきた。
0138nobodyさん2008/06/02(月) 19:58:22ID:???
沸点低い奴は見なくていいよ
0139nobodyさん2008/06/02(月) 20:00:55ID:???
137>>
痛くてゴミんなさい!!怒っちゃやーよ!!
0140nobodyさん2008/06/02(月) 20:25:46ID:???
回答が思いつかんかったからってむかつくなよw
0141nobodyさん2008/06/02(月) 21:43:01ID:???
>>140
0142となりのPHP2008/06/02(月) 21:57:27ID:+h9IA1ez
写真をアップロードする機能を作りたいのだが、写真を保存するフォルダー
について皆さんに聞きたい。

お・ま・え・らならどう管理する?

知りたいw
0143nobodyさん2008/06/02(月) 21:59:08ID:???
DBにつっこむだろjk
0144となりのPHP2008/06/02(月) 22:01:05ID:+h9IA1ez
>>143
データベースに保存するの?
フォルダーに保存するの?

これどっちがいいの?
メリットを教えてくれ・・・ ちくび・・・
0145nobodyさん2008/06/02(月) 22:31:54ID:???
DB一択だろ常考
0146nobodyさん2008/06/02(月) 23:17:54ID:???
俺ならflickrにアップして、そこから読み出すPHPを書く
0147nobodyさん2008/06/02(月) 23:37:55ID:???
>>146
('-')...
0148nobodyさん2008/06/03(火) 00:01:19ID:JBxIkCY5
失礼します。
Array
(
[くるま] => 15
[ろば] => 14
[もも] => 14
[とけい] => 13
[りんご] => 13
[しょうゆ] => 6
[えんぴつ] => 1
)
のように降順にソートされた連想配列から配列の要素を比較して上位3件
のキー値を取り出してそれぞれ別の配列に入れたいのですが、
どのようにするのがスマートでしょうか?

以下のような結果にしたいです。
配列@ ( [0] => くるま )
配列A ( [0] => ろば [1] => もも )
配列B ( [0] => とけい [1] => りんご )

御指南よろしくお願いします。
0149nobodyさん2008/06/03(火) 00:31:58ID:nQlafZ13
>>148
値(数字)をキーにした多次元配列にpushしていったらどうでしょう?
0150nobodyさん2008/06/03(火) 00:58:26ID:nQlafZ13
こんな感じで。(もとの配列を$orgとして、多次元配列$resultに)
foreach ($org as $key => $value)
$res[$val][] = $key;
0151nobodyさん2008/06/03(火) 01:35:06ID:nQlafZ13
>>150
ごめん1行目と2行目の変数名がバラバラだ・・orz
多分気づくと思うけど2行目は
 $result[$value][] = $key;

別々の配列にしたいときは、ループ内でキーを
 $result["ex".$value][] = $key;
とか文字列にしておいて、
extract($result);
とか。
0152nobodyさん2008/06/03(火) 01:59:05ID:JBxIkCY5
>>151さん

解決できました!
ありがとうございます。
非常にスマートです!
0153nobodyさん2008/06/03(火) 02:45:23ID:???
「非常にスマート」かぁ?w
0154nobodyさん2008/06/03(火) 15:11:01ID:O1BZb4u6

strip_tags でタグを削除したいと思ったんですが、
元の文字列がUTF8 などだと タグ<>の部分まで合わせて文字にとなっているようで

※その部分が文字化けしているように見える。しかし、htmlに出力すると、文字とタグにちゃんとわかれている。

strip_tags でタグが削除できないようであるのですが、
これをどうにかstrip_tags でタグ削除させる方法はないでしょうか?

0155nobodyさん2008/06/03(火) 15:37:51ID:???
>>154
なんか微妙に言ってることがわからないんだが、俺の環境では

echo strip_tags('<a>りんく</a>ああ<b>いい</b>うう');

//出力
りんくああいいうう

なにも問題ないぞ?
こういうことじゃないのか?
0156nobodyさん2008/06/03(火) 16:07:48ID:z9NWRSRZ
今取り組んでいる課題の内容が

「郵便番号の情報が書かれている.phpファイルを
.htmlファイル上で読み込ませ、郵便番号の検索を行えるようにする。」

と言う物なのですが、
実行すると本来住所が書き出されるべき場所に
何故か.phpファイル上のデータが全て書き出されてしまいます。

ttp://www.vipper.org/vip834693.jpg

参考資料と見比べても特に違いが見受けられないので
やはりphp.iniやhttpd.confの設定が間違っていると言うことなのでしょうか。
もし理由の分かる方がいらっしゃいましたら回答をお願いしたいです。

PHP:5.2.6(SQLite込)
Apache:2.0.63
OS:WindowsXP

以下命令文を書きますので
何卒宜しくお願い致します。
0157【yubin01.html】2008/06/03(火) 16:08:32ID:z9NWRSRZ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:v="urn:schemas-microsoft-com:vml">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<head>
<title>郵便番号による検索</title>
<script src="prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function buttonf(){
uri = "yubin01.php";
data = Form.serialize("form1");
option = {method: "post", parameters: data, onComplete:ajaxReq};
new Ajax.Request(uri,option);
}
function ajaxReq(request1){
$("addr").value = request1.responseText;
}
</script>
</head>
<body>
<p>郵便番号を入力してください。 例 : 101-0025,26,35,41,43,46,48,51</p>
<form id="form1">
郵便番号<input type="text" id="zcode" name="zcode" size="10" />
<input type="button" id="b1" name="b2" value="住所検索" onClick="buttonf(); return false;" />
<br />
住所<input type="text" name="address" id="addr" value="" size="80" />
</form>

</body>
</html>
0158【yubin01.php】2008/06/03(火) 16:09:02ID:z9NWRSRZ
<?php
$BOM = "\xef\xbb\xbf";
$code1 = $_POST["zcode"];
$code2 = split("-",$code1);
$code = $code2[0].$code2[1];
$address= array(
"1010025" => "東京都千代田区神田佐久間町",
"1010026" => "東京都千代田区神田佐久間河岸",
"1010035" => "東京都千代田区神田紺屋町",
"1010041" => "東京都千代田区神田須田町",
"1010043" => "東京都千代田区神田富山町",
"1010046" => "東京都千代田区神田多町",
"1010048" => "東京都千代田区神田司町",
"1010051" => "東京都千代田区神田神保町"
);
echo $BOM.$address[$code];
?>
0159nobodyさん2008/06/03(火) 16:17:19ID:???
>>156
phpが実行されていない
phpがサーバーに入っていないか許可されていない
0160nobodyさん2008/06/03(火) 16:38:38ID:???
>>159
何か初歩的なことを間違えているようですね…。
設定見直して出直してきます。
回答ありがとうございました。
0161nobodyさん2008/06/03(火) 16:47:34ID:???
アドレス C:¥www¥public_html¥yubin01.html って・・・
webサーバとはなにか?から出直してら
0162nobodyさん2008/06/03(火) 16:54:38ID:???
=>と->と=&の意味を調べてもなかなか出てこなくて
わからないので教えてもらえませんか
あと定期的に実行するにはどうやればいいですか
0163nobodyさん2008/06/03(火) 17:05:50ID:???
=>
http://jp.php.net/manual/ja/language.types.array.php

->
http://jp.php.net/manual/ja/language.oop5.basic.php

=&
http://jp.php.net/manual/ja/language.references.php

定期的に実行
cron
0164nobodyさん2008/06/03(火) 18:07:39ID:???
sleep()で常時実行しまくりんぐもできるな。
借り物でやったら垢削除ものだが。
0165nobodyさん2008/06/03(火) 19:02:27ID:???
>>163
レスありがとうございます
>=>
http://jp.php.net/manual/ja/language.types.array.php
う〜んarrayにしか使わないってことですか?

>->
http://jp.php.net/manual/ja/language.oop5.basic.php
すみませんもう少し説明してもらえないでしょうか
(classに関係有るってことくらいしかわかりませんでしたorz)

>=&
http://jp.php.net/manual/ja/language.references.php
ん、、、、いまいち普通の代入(=)との差がわからないのですが、、、

>定期的に実行
>cron
ありがとうございます
いまいち使い方がわかりませんがもう少し調べてみます
0166nobodyさん2008/06/03(火) 19:15:03ID:???
>>165
>う〜んarrayにしか使わないってことですか?
他に使ってる例でもあんの?

>すみませんもう少し説明してもらえないでしょうか
>(classに関係有るってことくらいしかわかりませんでしたorz)
インスタンスのプロパティやメソッドにアクセスするための構文。
C++やJavaでいうドット(.)と同じ。
分からんなら使わなくて特に問題なし。
詳しく知りたければオブジェクト指向について学ぶべし。

>ん、、、、いまいち普通の代入(=)との差がわからないのですが、、、
値渡しと参照渡しの違い。
マニアな人しか使わないから知らなくてもOK。PHPだと最適化してくれるし。
詳しく知りたければ参照について学ぶべし。

>>cron
窓鯖ならタスクでおk
0167nobodyさん2008/06/03(火) 20:56:04ID:???
>>166
返信どもです
>インスタンスのプロパティやメソッドにアクセスするための構文。
>C++やJavaでいうドット(.)と同じ。
>分からんなら使わなくて特に問題なし。
>詳しく知りたければオブジェクト指向について学ぶべし。
何となくだけどわかりました、ありがとうございます
0168nobodyさん2008/06/03(火) 22:32:01ID:???
痛すぎる
0169nobodyさん2008/06/03(火) 22:46:55ID:KEz04zwq
くだ質ですが、、ひとつのファイルでGETとPOSTを同じ要素で
取得する可能性がある場合、どうしていますか?

自分はREQUESTを使っていますが、↓する方法もあると思います。

if($GET){
$id = $_GET["id"];
}else($_POST){
$id = $_POST["id"];
}

ただこれだとソースが長くなるので、正しいのか否か悩んでいます。
0170nobodyさん2008/06/04(水) 00:42:39ID:???
REQUEST_METHOD
0171nobodyさん2008/06/04(水) 02:08:12ID:???
$_REQUESTでなんで悪いの?
0172nobodyさん2008/06/04(水) 02:40:35ID:???
まずは正しいif文の書き方を学んだほうがよいと思われる
0173nobodyさん2008/06/04(水) 03:46:25ID:IW2VxFJn
質問させて下さい。

以下のようなURLの場合で、
http://hoge/index.php/id/foo/password/bar

index.phpにて「/id/foo/password/bar」の部分を
取得したいのですが、どのようにすれば宜しいでしょうか?
0174nobodyさん2008/06/04(水) 03:58:25ID:???
mod_rewrite
0175nobodyさん2008/06/04(水) 04:07:25ID:???
>>173
$_SERVER{'PATH_INFO']

スラッシュ区切りにする必要はあるのかね
てか認証で使うパスワードをGETで渡すのはどうかと・・・
0176nobodyさん2008/06/04(水) 16:05:31ID:???
>>175
わたしのおっぱい触ってもいいわよ♪
01772008/06/04(水) 16:07:38ID:???
クエリで
index.php?test
が作れて、
GETでは
index.php?test=testが作れるのは知ってるんですが
PATH_INFOかクエリで

index.php?test/test

と取得するにはどうしたらよいのですか?
0178nobodyさん2008/06/04(水) 17:03:50ID:???
mod_rewrite
0179nobodyさん2008/06/04(水) 17:19:13ID:???
>>177
質問に質問して悪いんだけど、
クエリで index.php?test が作れる、ってどういうこと?
PHP クエリ、なんかでググってみたけど出てこなかった。
index.php?test で値を渡せるの?
0180noun2008/06/04(水) 17:53:03ID:3HEKVG38
<?php
$query = getenv ("PATH_INFO");
$var = split ("[/\.]", $query);
echo "引数は「$var[1]」と「$var[2]」です。";
?>
このようばスクリプトをindex.phpで作ったら
index.php/a
でアクセスすると
引数は「a」と「」です。
と表示されます。
index.php?a/b
とアクセスすれば
引数は「a」と「b」です。
と表示させるにはどのようにしたらよいのですか?
このように考えてみましたけど動きませんでした

<?php
$query = getenv ("PATH_INFO");
$var = split ("[?\](.+)[/\.]", $query);
echo "引数は「$var[1]」と「$var[2]」です。";
?>
宜しくお願いします
0181nobodyさん2008/06/04(水) 18:02:16ID:???
これじゃあ……ダメ?

<?php
$query = $_SERVER["QUERY_STRING"];
list($q1,$q2) = explode("/",$query,2);
echo "引数は「{$q1}」「{$q2}」です。";
?>
0182nobodyさん2008/06/04(水) 20:01:45ID:???
[?\](.+)[/\.]で何をマッチさせたいんだよw
0183nobodyさん2008/06/04(水) 20:14:32ID:???
>>181
引数3つにするときは$q1,$q2,$q3にするのかw
0184nobodyさん2008/06/04(水) 20:37:04ID:???
<?php

$fileName = "conf.xml";
$xml = simplexml_load_fileName($fileName);

$db = $xml->db;

print $db->id ."<BR>";
print $db->pass ."<BR>";
print $db->host ."<BR>";
print $db->dbname ."<BR>";

?>
とすると $xml = simplexml_load_fileName($fileName); エラーとでます、何が悪いんでしょうか?
0185nobodyさん2008/06/04(水) 21:18:54ID:???
喧嘩売ってんのか?
0186nobodyさん2008/06/04(水) 21:20:15ID:???
うるせー屑!
0187nobodyさん2008/06/04(水) 21:21:53ID:???
頭が悪い。
simplexml_load_file($filename);
0188nobodyさん2008/06/04(水) 21:23:42ID:???
>>184
やさしくレスしてやろう
そんんあ関数無い
simplexml_load_file
http://jp.php.net/manual/ja/function.simplexml-load-file.php
これだろ?
0189nobodyさん2008/06/04(水) 21:36:14ID:???
>>185
いえ、喧嘩売ってません。 シリアスです。

>>186
別人ですね。

>>187
>>188
ありがとうございます^^
しかし、$xml = simplexml_load_fileName($fileName);
をsimplexml_load_file($filename);にしてみたところ、エラーが出ます。
何が悪いんでしょうね・・・
0190nobodyさん2008/06/04(水) 21:42:22ID:???
>>189
>>1を読まない -20
マニュアルを読まない -10
検索しない -10
エラーを書かない -10
上げない -5
丁寧語を使用 +5

合計点:-50
評価:非常に悪い質問です。
php.iniでphp_xmlをロードしてから出直してきてください。
0191nobodyさん2008/06/04(水) 21:42:30ID:???
どうせ$fineNameと$filenameの違いだろ
0192nobodyさん2008/06/04(水) 21:43:57ID:???
悪いのは頭だって言ってんだろw
$xml->db ← マニュアル読めとしか言いようがない
0193nobodyさん2008/06/04(水) 21:45:10ID:???
すまんphp_xmlとか適当言った
>>191かxmlパースエラーだろ
0194(^ω^)2008/06/04(水) 21:50:18ID:+gTsOca6
あのー

前レスであった
PATH_INFO
とクエリを同じに使うやり方が気になったのですが誰か教えてくれませんか?

index.php?test/b

とかのURLのが気になります
0195nobodyさん2008/06/04(水) 21:51:28ID:???
>>194
んあ?どういうこと?
$_SERVER['PATH_INFO']で取得できないの?
0196nobodyさん2008/06/04(水) 21:54:17ID:???
無事解決しました^^
お騒がせして申し訳ないです。
>>190
+5評価ありがとうございます!
0197nobodyさん2008/06/04(水) 21:56:43ID:???
>>194
>index.php?test/b
PATH_INFO関係ない。それはクエリだ。
PHPerバカばっかか。
0198nobodyさん2008/06/04(水) 22:01:16ID:???
>>196
解決方法を書かない -30
最低ランクに近い質問ですね
0199(^ω^)2008/06/04(水) 22:09:58ID:+gTsOca6
>>197

w(°0°)w?
どうやって取得するのですか?
index.php?test
なら取得できますけど
index.php?test/a
までは取得できません…
0200nobodyさん2008/06/04(水) 22:12:49ID:???
>>199
$_SERVER見れ
0201nobodyさん2008/06/04(水) 22:19:33ID:O5TCb6Oo
PHPの中でapacheのプロセス数知るにはどうしたらいいですか?
0202help2008/06/04(水) 22:29:52ID:hG5521Jr
2進数 1111111111111111111111111111111 (31桁の2進数)
を10進数に変換するプログラムを書き、桁とその桁の値に該当する
10進数(例えば、4桁目は2の3乗で8である)および変換された
10進数を表にして出力せよ。
0203nobodyさん2008/06/04(水) 22:30:46ID:???
>>202
すれば?
0204nobodyさん2008/06/04(水) 22:38:47ID:???
>>201
システム関数
0205(^ω^)2008/06/04(水) 22:43:13ID:+gTsOca6
こんなページ発見したのですが

http://s.sameha.net/?xtool/test


これは
http://s.sameha.net/?id=xtool&kp=test

みたいなのです。
http://s.sameha.net/?id=xtool&kp=test


これはGETで受け取ってるだけですが
http://s.sameha.net/?xtool/test

これはクエリで受け取りたいのですが、受け取れません(@_@;)
教えてください
0206help2008/06/04(水) 22:44:02ID:hG5521Jr
202続きです。
書き出しからまったくわからないので、
どなたか教えてください。javascriptでお願いします。
0207nobodyさん2008/06/04(水) 22:48:28ID:???
>>205
なんでわざわざスラッシュ区切りにしたいの?

>>206
<script type="text/javascript">
0208nobodyさん2008/06/04(水) 22:54:52ID:???
>>205
>>181
※ ただし、>>181は若干間違っているので、自分で修正しろ。

>>206
氏ね。
0209nobodyさん2008/06/04(水) 22:56:15ID:???
これはPHPerはバカばっかって印象づけたい他言語マニアの工作だろ?
そうだよな? さすがにここまで低次元なわけないよな。
頼むよ、マジで……。
0210nobodyさん2008/06/04(水) 23:24:54ID:???
つーか1が別スレリンクとかはずすから
しかも1も昔のに変えるし
初心者は初心者スレがあるのに・・・
0211nobodyさん2008/06/04(水) 23:32:13ID:???
>>202
スーパーヒントやるから、これアレンジしてみろ。

$bin_num = "1111111111111111111111111111111";
$digits = strlen( $bin_num );
$i = 1;
$bin_num = 1;
while(1)
{
 if( $i > $digits ) break;
 print $i . " | ";
 if( $i <> 1 ) $bin_num .= '1';
 print bindec( $bin_num ) . "<br />";
 $i++;
}
0212nobodyさん2008/06/05(木) 01:35:11ID:???
>>202
おい!
いくら課題丸投げだとしても、
質問のしようってもんがあるだろw
0213nobodyさん2008/06/05(木) 03:53:21ID:nVJ3HHkI
エラーを表示させない時、@を付ければエラーは無視されますが、
途中で関数がある場合、プログラムがそこで止まってしまいます。

ページ内にその関数が無くてもページ全体を読み込ませる(エラーを出さない
ようにするには、どうすればいいのでしょうか?
0214nobodyさん2008/06/05(木) 03:59:39ID:???
関数を呼ぶ前にfunction_existsでチェックするとかはダメかな?
0215nobodyさん2008/06/05(木) 05:48:02ID:???
offsetgetって連想配列のキーもくるんけ?
0216nobodyさん2008/06/05(木) 06:02:42ID:???
来てました。
0217sage2008/06/05(木) 07:24:33ID:SaqvuSsK
sage
0218nobodyさん2008/06/05(木) 09:42:23ID:???
Xdebugの関数の一覧ってどこ探せばありますか?
ぐぐっても出てこない。
0219nobodyさん2008/06/05(木) 10:53:03ID:???
一発でヒットしたけど...

ttp://xdebug.org/docs/all_functions
02202132008/06/05(木) 11:01:36ID:???
>>214
デザイン用のファイルに関数を入れている場合(エラー出力など)
があるのですが、関数のある・なしを調べるのではなくて、
ある場合でも無視して出力したいのです。

やっぱり、そういう事は出来ないのでしょうか?
0221nobodyさん2008/06/05(木) 12:00:06ID:???
>>220
その関数内にエラー処理でdieかexitがあるんじゃないの?
0222nobodyさん2008/06/05(木) 12:22:00ID:AlWPneO4
cli版のアップグレードが分からず悩んでいます。
OSX(10.4.11)にPHP5.2.4をインストールしましたが
cli版は4.xのままになっています。

インストール手順はtar.gzを解凍

./configure時に--enable-cliを指定

make

make install

ターミナルでphp -vで確認すると4.x

cli版のアップグレードは別の方法があるのでしょうか?
何かヒントを頂ければ有り難いです。

0223nobodyさん2008/06/05(木) 13:22:17ID:???
>>222
で、prefixはどこにしたの。
インストール先にPATHが通っていないと当然デフォルトのまま。
0224nobodyさん2008/06/05(木) 13:45:58ID:???
which php で場所確認
0225nobodyさん2008/06/05(木) 14:05:43ID:86SziVzy
>>223
確認したらprefix指定していませんでした。
だから今はphp4のcli版とphp5のcli版が共存している状態で
そのままphp -vすると4.x、php5のディレクトリのcli版を
指定すれば5.2.4と表示されていたのですね。

prefix指定して再インストールしてみます。
ありがとうございました。
0226nobodyさん2008/06/05(木) 17:01:33ID:???
pcntlの関数を使いたいんですけど
CentOS5.1のphp5.1.6に組み込まれていません。

セキュリティフィックスのことを考えると
自分でコンパイルするのは選択肢になりません。

これを読むと、あとから追加する方法はあるようなのですが
どうすればいいでしょうか?
http://blog.poyo.jp/archives/id-1075268306
0227nobodyさん2008/06/05(木) 17:12:42ID:tEsaaIDA
キーボードからの入力、任意のキー入力があれば検知
ということはPHPで可能でしょうか?

JavaScriptでは検索するとあったのでやり方が分かったのですが、
PHPで書いている他のスクリプトと出来れば一緒くたにしたい
と思っての質問です。

スレのテンプレやマニュアル、検索などしてみたのですが、
これ!という関数を見つけることが出来ませんでした。

アドバイス頂けるようでしたらよろしくお願いいたします。
0228nobodyさん2008/06/05(木) 17:18:54ID:???
>>227
不可能。
0229nobodyさん2008/06/05(木) 17:19:46ID:???
>>227
CLIならSTDINを読めばできるんじゃない?
0230nobodyさん2008/06/05(木) 17:42:59ID:???
>>227 が実行する環境がどうなってんのか、だな。
0231JAM2008/06/05(木) 18:11:04ID:???
れっつPHP
http://php.s3.to/
にあるPHP proxyのfsockopen(ソケット接続)
ができないのですが、PHPプロ串を動かすのに何か条件はいりますか?

パーミッション644にしていまして、777にしても動きませんでした。
0232nobodyさん2008/06/05(木) 18:20:11ID:???
条件は設置してあるサーバで許可してるかどうか、だな。
パーミッションわからないのにいじるのはやめとけ
0233nobodyさん2008/06/05(木) 20:19:39ID:???
>>232
XREAでも動かないのはPHP-CGIを入れてないからですか?

(.htaccessで)
0234nobodyさん2008/06/05(木) 21:43:30ID:???
10日でできるPHPを一通りやって実務経験は問い合わせフォームを作っただけの俺が
3000件前後の商品の検索システムと、商品の登録・編集システム(DBを使った)を1ヵ月半で作れると思いますか?
0235nobodyさん2008/06/05(木) 22:22:48ID:???
むり
0236nobodyさん2008/06/05(木) 22:24:37ID:???
それはお前にしかわからない
0237nobodyさん2008/06/05(木) 22:31:32ID:???
print関数で、配列の値をまとめて出力したい場合、
forループなどで一要素ずつ吐き出していくしかないでしょうか?

print_r( array_values( $array ) ); のような手軽な方法があれば、教えて下さい。
また、print( array_values( $array ) ); の場合、Arrayが返されますが、
この理由はなぜでしょう?
0238nobodyさん2008/06/05(木) 22:42:23ID:???
>>234
簡単じゃん。

SQLのDBにあるテーブルを
INDEX, ITEM_NAME, PRICE と言うようなものを作るんだろ?

登録は、ITEM_NAMEが一致しないか、まずSELECTで検索してから
INSERTかUPDATE(値段の更新)かを実行すればよし。

商品を削除するには、商品名でSELECTして、ユーザに選択させて
DELETEすればよし。

検索は、条件(商品名部分一致、値段上下)くらいだろうから、普通に
SELECT文で、画面表示すればいいじゃん。

コア部分をまず作成して、多分これが1週間くらい。それから、だんだんと
拡張してゆけばよし。

それから。
SQLインジェクションとか、最初にそういうセキュリティ面の共通関数を
作っておかないと、後で大変なことになるから…
0239nobodyさん2008/06/05(木) 22:43:21ID:???
こいつの作ったシステムはあんまり使いたくねー
02402342008/06/05(木) 22:59:12ID:???
言い忘れてました
1ヵ月半で作り上げて客先に納品できますでしょうかね?
0241nobodyさん2008/06/05(木) 23:10:43ID:MYkhFPuI
>>240
Accessを使って作ってしまった方が簡単にできるんじゃないですか?

それと並行して時間を見つけてPHPで作ってみて
上手くいったら裏で切り替えるとか
0242nobodyさん2008/06/06(金) 00:39:43ID:???
ショッピングシステムなんて安価なのが沢山あるのに、まだ独自に作る・作らせるなんてやってる馬鹿がいるのか。
精魂込めた1店舗より、適当に増殖させまくった1000店舗の方が、圧倒的桁違いに儲かるという事実を顧客に教えてやれよ。
0243nobodyさん2008/06/06(金) 00:47:24ID:5yuWZEZB
クラス内でグローバル変数って使えないのでしょうか?
以下のようにしたのですが、表示されません。

$GLOBALS['test']="aaa";
class class_test{
global $test;
function test_a(){
echo $this->test;
}
}

$obj = new class_test("");
$obj->test_a();
0244nobodyさん2008/06/06(金) 01:02:38ID:???
パースエラー出てないか?
02452432008/06/06(金) 01:06:18ID:???
>>244
parse error, unexpected T_GLOBAL, expecting T_FUNCTION in

パースエラーが出ます。やはりこういう書き方は駄目なのでしょうか?
0246nobodyさん2008/06/06(金) 01:07:47ID:???
抽象化するためのオブジェクト指向だよ?
0247nobodyさん2008/06/06(金) 03:14:20ID:XxyWIPlY
使用メモリーサイズから、
立ち上げ可能な最大プロセス数を算出しようと思います
このような用途の場合、
memory_get_peak_usage (true)

memory_get_peak_usage (false)
のどちらが適切でしょうか?
falseの場合、
emalloc() が使用するメモリのみを報告するとのことで、
trueの場合の値とは大きさがかなり異なるので迷っています
0248nobodyさん2008/06/06(金) 06:27:29ID:???
イメージの縦・横サイズが大きいとアップロードできないんだけど、なんででしょう?
ファイルサイズは1Mもなくて、Php.iniのMaxサイズは超えてないのに。
0249nobodyさん2008/06/06(金) 06:37:23ID:???
メモリ不足じゃねえのか?
02502372008/06/06(金) 07:06:03ID:???
誰か回答いただけませんか?(´;ω;`)
0251nobodyさん2008/06/06(金) 07:17:19ID:???
>>250
print( implode( ",", $array ) ); だとダメなんか?
0252nobodyさん2008/06/06(金) 07:49:30ID:???
join使えば?
0253nobodyさん2008/06/06(金) 07:51:58ID:???
>>251-252
それです!
ありがとうございました!

マニュアルにおける配列関数のページばかり見ていて、
文字列関数を見落としていました。
0254nobodyさん2008/06/06(金) 09:54:25ID:7wBcJbju
$request = mysql_query($query);
$result = mysql_num_rows($request);
if($result) {
while( $result = mysql_fetch_assoc($request) ) {
 foreach($result as $key => $value) {
  print "{$key} : {$value}";
 }
}
} else {
 print "該当なし";
}

検索結果がない場合を考慮して、
mysql_num_rowsで検索結果数を確認しているのですが、
mysql_fetch_assocも使っていて、
mysql_num_rowsは、非効率な処理をしているのではないかという気になります。

検索結果がない場合の処理として、
もっと最適な方法はありますでしょうか?

スピード重視ですので、PDOなどを利用する予定はありません。
0255nobodyさん2008/06/06(金) 10:43:08ID:???
>>254
外のifを外してprintのとこでカウントする
カウント0で"該当無し"
0256nobodyさん2008/06/06(金) 10:59:21ID:???
SJISでページ作ってます。

フォームの内容を次のページで確認したりするために表示すると

「表示」という文字列が「表\示」というふうに間に半角の¥マークが入ったりします。
他にもいくつかの文字列で確認できています。

\を省くようなプログラムを書いてしまうと本来の\を記入したいときなどに
不都合が起きてしまうので
それ以外の方法で何とかしたいのですが

原因・解決方法を教えてください
よろしくおねがいします。
0257nobodyさん2008/06/06(金) 11:05:11ID:???
いつの時代のPHPだよw
02582562008/06/06(金) 11:30:51ID:???
自己解決しました。
スレ汚しすいません
0259nobodyさん2008/06/06(金) 14:53:07ID:???
ちょっとした疑問が・・・・
apache+mod_fcgidでphp動かすのと
apache+mod_phpで動かすのどっちが早いのでしょうか?
やっぱり圧倒的にmod_phpですかね・・・
0260nobodyさん2008/06/06(金) 17:07:39ID:???
皆さんPdo使ってる?
02612272008/06/06(金) 17:19:55ID:qm+hYxPW
>>228-230
>>227を実現したかった環境はPHP5.2の入っているレンサバです。
今回はPHPでの実装をあきらめて、JavaScriptで実装してみます。

お答えいただきました皆さま、ありがとうございました。
02622542008/06/06(金) 17:44:36ID:???
>>255
ご回答ありがとうございます。

外のifを外してしまうと、
$result(クエリ)が存在しない場合、
whileループをしなくなり、
foreachループでも「データが存在しない配列データ使うな」というエラーが
出てしまいますのです。

一応の善後策として、print書き出しのところを変数$fooに代入して、
whileループ後、$fooが空だったら、「該当無し」を代入してから書き出し、
という方法を取ってみました。

入門書以外の書籍を見つけられないので、
どうもPHP+MySQLはつまづきやすいです。
定石集みたいな本があれば嬉しいのですが、何かお薦め本ありますか?
0263nobodyさん2008/06/06(金) 17:59:09ID:9VzUi8vG
質問です。
特定の文字列以外はNGにしたいのですが、

$hoge = $_POST["data1"];
$hogehoge = "ここがわかりません。"

if(!stristr($hoge , $hogehoge)){
echo "NG";
}else{
echo "OK";
}

こんな感じでテキストボックスから「数字 か "n"」のみを受付たいのですが、
どなたかお力を貸してください。お願いします。
0264nobodyさん2008/06/06(金) 18:07:11ID:???
preg_matchか、is_numericとstrposの二段構えの方がいい。
ちなみに後者の方がちょっと早いけど、たぶんそこまでこだわるの無駄。
02652632008/06/06(金) 18:39:49ID:???
>>264さん回答ありがとうございます。

さっそくググってみました。
正規表現がいまいちわからないのですが、
数字 か "n" の場合

/[n\d]/

で合ってるのかな?
一応テストしてみたら思うとおりに動きました。
ありがとうございました。
0266nobodyさん2008/06/06(金) 18:51:20ID:???
純粋にnか数字を検索したいだけの場合、
/\d|n/
nで始まる複数の数字(例:n012345678)って決まってる場合は、
/^n[\d]+?$/
とかじゃね?
0267nobodyさん2008/06/06(金) 18:55:46ID:???
GDライブラリの内部文字コードのみEUCみたいなんですが、
これを直すにはコンパイルしなおすしかないのでしょうか?
システム全体はUTF8でGD内部だけEUCなのが使いにくくてしょうがない・・・
02682632008/06/06(金) 19:00:30ID:???
やっぱりうまく動いてませんでした。

数字(何桁でも可。数字以外が含まれるとNG)
n (1文字だけならOK。 n0123とか nabcとかはNG)

の正規表現を教えて下さい。
何度もごめんなさい。
0269nobodyさん2008/06/06(金) 19:14:20ID:???
>>268
丸投げやめれ
限りなく答えに近いヒントは書いた

>>267
GDってUTF-8対応してたはず。(2.0以降?)
アップグレードしてみれば?
02702672008/06/06(金) 19:40:41ID:???
CentOS4.6でrpmでインスコしてある4.3.9はGD関数が内部UTF8で動いていて、
ソースから入れた5.2.6が内部EUCという非常に意味不明な状況。
phpのconfigureに文字コード指定もないっぽいし、GD自体はソースから入れたほうがもちろん新しい。
やっぱりどこかに文字コード指定する場所があるんですかね?
0271nobodyさん2008/06/06(金) 19:50:57ID:+VeYItW2
PHPで掲示板などを作ろうと思ってます。
今「PHPによるWebアプリケーションスーパーサンプリング」って本で勉強しているんですが
PEAR、Smarty、MySQLとかいろいろなPHPと連携出来る
プログラミングが出てきて、どれを選ぶべきか困ってます。

Smartyだとこういうコトが出来て
MySQLだとこういうコトが出来る
みたいなのが分からないので
掲示板作りにもっとも適しているのはどれなんですか?
0272nobodyさん2008/06/06(金) 19:59:15ID:???
「どれ」じゃなくて仕様次第じゃPEAR/Smarty/MySQL全部つかうよ
02732712008/06/06(金) 20:11:09ID:+VeYItW2
>>272
マジですか?

今考えてるのが明和水産のような形式の画像掲示板を作ろうと思ってるんですが
全部必要でしょうか?
0274nobodyさん2008/06/06(金) 20:16:42ID:???
>>270
PHPの問題かGDの問題かまず切り分けてくれよw
というか、主語が不明瞭で文章が分かりづらいよ。

>phpのconfigureに文字コード指定
php.iniのmbstring.internal_encoding = EUC-JP
が有効になってるとかそういうことじゃなくて?
0275nobodyさん2008/06/06(金) 20:17:40ID:???
>>273
>Smartyだとこういうコトが出来て
>MySQLだとこういうコトが出来る
>みたいなのが分からないので
つーか、その仕組みを理解するために本買ったんだろw
もっとよく読めよ。
0276nobodyさん2008/06/06(金) 20:53:34ID:???
その3者って用途も効果も全然違うんじゃ・・・
0277nobodyさん2008/06/06(金) 21:16:01ID:???
>>259
遅レスだけど、比較するまでもなく、mod_phpに決まってるだろ。
ソケット介さず、HTTPD直接動かすんだから。
0278nobodyさん2008/06/06(金) 21:58:27ID:liAI2iTp
二度押し対策について教えて下さい。
ショッピングなどので注文ボタンを連続して押すと注文データが二つ出来てしまうという件です。

webで検索するとJavaScriptの方法があるのですが、それですとJS無効にしている人には対応ができません。
それで、トランザクションIDなどを発行して、formにhiddenで埋め込んで、送信されてきたIDとセッションに保存されたIDを比較するというやり方が
あると思うのですが、それでも、0.1秒くらいの間隔で連続送信された場合、セッションの処理が追いつかず二度受付がされてしまいます。

お金が絡むことなので、かなりシビアな管理が必要なのですが、どのような方法がありますでしょうか?
私が考えたのは、一回送信したら送信完了画面の表示処理になるまでロックするとか。
そうすると、ロックの解除タイミングが難しく異常終了した場合に、永遠にロックがされてしまい、
OSのリブート以外復旧する方法がなくなってしまうのではないかと、危惧してしまいます。

又は、メールで一回確認メールを送りつけて、そのメールに記載されているURLをクリックすると
注文完了になる、というロジックも考えたのですが、そのような方式でやっているネットショップを、
10年間位ネット使用歴がありますが、見たことがありませんし、利便性が悪いこともわかります。

それで、別の方法として注文ボタンを押しても完了とはせずに、
手動でこちらが確認して注文確認のメールを送るという案も考えました。
が、それも前述と同様で手間がかかる上に、利便性が悪いということで躊躇しています。

あとは、二重注文を承知で、返品を受け付けるという処理があるのですが、
利便性はいいのですが、お客さまからの苦情がこないか不安です。
もちろん、二重注文の免責事項として注文ボタンの前に書きます。

結局、あれやこれや考えたのですが、結論が出ませんでした。お知恵を貸して頂けないでしょうか?
宜しくお願いします。
0279nobodyさん2008/06/06(金) 22:10:37ID:???
>>278
倍儲かるじゃないか。そんなもんな、気付かず支払いに進んじゃう方が究極の馬鹿なんだからほっとけ。
0280nobodyさん2008/06/06(金) 22:12:57ID:???
そこまでやるなら、
単純に、客がWEB上で注文の確認とキャンセルできる仕組みを用意した方が良い。Amazon方式。
それかロック処理に時間制限を付けるとか。ネットバンク方式。
0281nobodyさん2008/06/06(金) 23:43:30ID:sB0HvGVD
>>243
いや、そのコードはおかしい。
0282nobodyさん2008/06/06(金) 23:53:56ID:???
>>243
コンストラクタ内で呼ぶしかないんじゃない。

$GLOBALS['test'] = 'aaa';


class class_test{
var $test = null;

function class_test(){
global $test;
$this->test = $test;
}

function test_a(){
echo $this->test;
}
}

$obj = new class_test();
$obj->test_a();
0283nobodyさん2008/06/07(土) 00:06:58ID:???
だから、何のためのクラスだよ。オブジェクト指向だよ。
グローバル変数使ったら意味ないじゃん。
いわゆるデータメンバを使うべき。
0284nobodyさん2008/06/07(土) 00:17:23ID:???
フォームのチェックボックスをGETで送信したとき、

 × hoge.php?foo=aaa&foo=bbb&foo=ccc
 × hoge.php?foo[]=aaa&foo[]=bbb&foo[]=ccc(※[]はシリアライズされる)
 ○ hoge.php?foo=aaa,bbb,ccc

みたいにすることはPHP側でできますか?
02852822008/06/07(土) 00:32:36ID:???
>>283
283が言いたいのは、こんな感じってこと?

class DataMember{
var $test = 'aaa';
function get(){
return $this->test;
}
function set($value){
$this->test = $value;
}
}


class class_test{
var $DataMember = null;

function set(&$obj){
$this->DataMember =& $obj;
}

function test_a(){
echo $this->DataMember->get();
}
}

$mem = new DataMember();

$obj = new class_test();
$obj->set($mem);
$obj->test_a();
0286nobodyさん2008/06/07(土) 00:48:17ID:???
PHP4の書き方キモイ
0287nobodyさん2008/06/07(土) 00:54:03ID:???
今時PHP4って昭和かよw
02882822008/06/07(土) 01:02:25ID:???
>>286,287

PHP4の書き方はキモイのかw

レンタル鯖とか今だPHP4が多いからこっちのほうが汎用性あるかと思ったんだけど。
(まぁ、PHP5の書き方は勉強してないのでわからんけど)

PHP4も今年でサポートきれんだっけかね。
0289nobodyさん2008/06/07(土) 01:24:09ID:7vwhHYDO
↓こーゆーのってどうやってやるの?
http://www.fxtokyo.jp/
0290nobodyさん2008/06/07(土) 01:26:16ID:???
>まぁ、PHP5の書き方は勉強してないのでわからんけど
わからんなら今からやれ。1時間後にスラスラ書けてなきゃ自分の無能を呪え。
0291nobodyさん2008/06/07(土) 01:34:40ID:???
>>290
メンバ変数にスコープがつけられるとか、メソッドチェーンができるとか、
コンストラクタが__constructとかするとか、__callとか__destructがあるとか
ソレぐらいしか分からんすけど、今度やってみます。

>>289
ソース見る限り、JavaScriptですね。非同期通信って奴かな。
0292nobodyさん2008/06/07(土) 01:47:30ID:???
>>289
PHPほとんど関係ないなーw
SAJAXでググれ。
0293nobodyさん2008/06/07(土) 05:46:06ID:???
php4使うのはいいけどせめて5の書き方知ってろよw
0294nobodyさん2008/06/07(土) 07:47:07ID:???
つか、それ以前の人がほとんどのくせに、
ここぞとばかりにPHP4の書き方を叩いてるな。
もっと他に叩くべき対象は、このスレに溢れてると思うんだが。
0295nobodyさん2008/06/07(土) 08:05:31ID:???
うんうんお前の存在とかな
0296nobodyさん2008/06/07(土) 12:27:13ID:???
>>294
PHP3遣い乙www
0297nobodyさん2008/06/07(土) 13:13:44ID:???
ホームページ公開用のデータベースツール教えていただけませんか?
0298nobodyさん2008/06/07(土) 13:17:04ID:???
エスパー仕事しろ
0299nobodyさん2008/06/07(土) 13:20:33ID:???
>>297
残念。そんなツールは無かった。
0300nobodyさん2008/06/07(土) 13:40:09ID:???
phpmyadmin
phppgadmin
0301nobodyさん2008/06/07(土) 13:45:32ID:???
ざわ・・ざわ・・
0302nobodyさん2008/06/07(土) 13:50:29ID:5XgOB7as
phpでシステムを組もうと考えているのですが、
phpの場合明確ではありませんよね。

例えば、日本ユニシスのようにgifを使っていたら、
急に特許使用料を請求されるというリスクがありますか?

Javaの場合は、SunMicrosystemsが明確に使用は無料ということを打ち出しています。

PHPの場合、それが全然明確ではありません。
もしかしたら・・・というリスクが脳裏をよぎります。
実際のところどうなのでしょうか?
0303nobodyさん2008/06/07(土) 13:52:11ID:???
明確ではないってのは何を根拠として?
0304nobodyさん2008/06/07(土) 13:54:20ID:5XgOB7as
>>303
PHPの使用に当たって、完全にフリーだという公式の文章がどこにもないからです。
つまり、将来的に有料化できることを留保していて使わせているという疑念があります。
0305nobodyさん2008/06/07(土) 13:58:27ID:???
>>302
えーっと、、、
ここは「下らねぇ質問スレ」ですよ?
0306nobodyさん2008/06/07(土) 13:58:58ID:5XgOB7as
法律に疎い方がいると誤解を招くので、敢えて書かせて頂きますが、
著作権というのは自然発生的に発生して著者者は権利を当然に獲得します。
そして、著作権の放棄は法律上できません。
著作権の譲渡ならできますが、譲渡は文章で明確に譲渡する旨の記載がない限り譲渡できません。
このような背景から、PHPは将来その使用料の支払いが発生する可能性があるというわけです。
0307nobodyさん2008/06/07(土) 14:02:26ID:???
ライセンス読め
0308nobodyさん2008/06/07(土) 14:05:42ID:5XgOB7as
当然ライセンスは読んでいます。
0309nobodyさん2008/06/07(土) 14:06:45ID:???
GPLが厳しいってんで自主的に大幅にゆるめた独自のPHPライセンスを用意したのに、
それに対して不満が出たの初めて聞いた。
オープンソースの中じゃ、極めて甘いライセンスに部類すると思うけど。

将来的に有料になる可能性は、Javaだって否定できない。
恒久的な規約は存在しないんだから。
0310nobodyさん2008/06/07(土) 14:08:04ID:5XgOB7as
>>309
なるほど、よく分かります。安心しました。
0311nobodyさん2008/06/07(土) 14:17:34ID:???
もうそこまで心配し始めたらほとんど全てのオープンソース使えないだろ・・
mysqlとかは結構怪しいライセンスだから、気持ち悪いし離れたいが
0312nobodyさん2008/06/07(土) 14:20:35ID:5XgOB7as
つまり、PHPは大丈夫そうに見えるが、MYSQLのようにSunMicrosysystemsの支配下になって、
無料ではバージョンアップは提供しないと公言しだしたら、有料化ってこともありうるってことですか。
それでは、PHPが大丈夫という論拠の基盤も危ういということになりませんか?
0313nobodyさん2008/06/07(土) 14:20:59ID:???
MySQLのライセンスはちょっと怖かったからSQLiteでがんばってる。
0314nobodyさん2008/06/07(土) 14:25:18ID:5XgOB7as
>>313
それも敏感すぎると思いますよ。
そもそもシステムは出来上がってしまえば、外部からはPHPを使っているかMYSQLを使っているかなんて分かりませんよね。
NHKの受信料だって、私はテレビを持っていませんと玄関先で言えば、それまでです。たとえ持っていたとしても。
そこまで、調査する権限はNHKにはありません。
それは、PHPやMYSQLを所管する団体・企業にも同じことが言えるのではないでしょうか?
0315nobodyさん2008/06/07(土) 14:36:01ID:???
>>314
>そこまで、調査する権限はNHKにはありません。

権限はありますお。
実際にはやらないだけです。
0316nobodyさん2008/06/07(土) 14:37:48ID:???
>>314
そもそも、GPLでも配布しないのならば、ソースコードが欲しいといわれても渡す必要は無い。
0317nobodyさん2008/06/07(土) 14:48:43ID:5XgOB7as
ここの人達は、ああいえばこう言うで面白い人達ですね。
いや、私もそのたちですから、嫌いじゃないですけど。
とりあえず、PHPは有料化になってもあまり影響はないということは分かりました。
長々とありがとうございました。
0318nobodyさん2008/06/07(土) 15:13:45ID:PnYVZOmj
PHP SDLについて勉強してる人とかいるのかな?
http://www2.uploda.org/uporg1468122.jpg

OSに依存せずにゲームとか作れると思うんだが、
HSPみたいな感じでPHPでゲームが作れるっぽい
0319nobodyさん2008/06/07(土) 15:47:48ID:???
PHPでゲーム作るぐらいなら、FLASHで作ったほうが良い気がする。
0320nobodyさん2008/06/07(土) 16:04:20ID:???
>>317
お前が吹っかけた質問に回答してあげてるだけなのになんだその言い草は。
0321nobodyさん2008/06/07(土) 16:04:53ID:???
>>319
それはどういう点で?
0322nobodyさん2008/06/07(土) 16:20:12ID:???
>>321
FLASHの方が公開しやすい。
お手軽系ゲームの最大の課題は、セキュリティ上怖いからインストールしてもらえないこと。
FLASHはそういう問題がない。

ゲーム作っても、誰も遊んでくれないんじゃ、やっぱ楽しく無いでしょ。
0323nobodyさん2008/06/07(土) 16:24:53ID:???
mysqlは商用で使う場合はライセンス必要なはずだが・・・
自社サービスとかでもね・・・
0324nobodyさん2008/06/07(土) 16:52:13ID:???
PHPでプログラミングをする時の文字コードって何がいいですかね?
eclipseでEUC-JPでやろうとするとUTF8がデフォルトで設定されてて変更が必要だったので色々めんどくさくて
0325nobodyさん2008/06/07(土) 17:41:07ID:???
>>324
UTF8でいいよ
0326nobodyさん2008/06/07(土) 18:38:55ID:???
>>323
GPLv2を適用すればいいじゃん。商用でもGPLを採用できる。

GPLv2のウェブサービスを提供する場合、
結果を返しているだけでアプリケーションを配布していないので
ウェブサービスの利用者にソースコードを公開する必要は無い。

ウェブサービスシステムを納品する場合は、納品者に対して
アプリケーションのソースコードを渡してGPLにしないといけないけどね。
ってGPL以前に、PHP製アプリを納品=PHPソースコード納品ですからw
0327nobodyさん2008/06/07(土) 18:59:20ID:???
>>326
GPL採用できるは知らんかった

まぁでも商用サイトとかある程度の規模考えると
商用ライセンスを選んだ方がパフォーマンスも違うしいいんだけどね・・・
0328nobodyさん2008/06/07(土) 19:12:34ID:???
>>326
なるほどって感じ。勉強になる。
でもその場合、社員がソースを持ち出したり流出させたりしても罪に問えるのかな。

ちなみに自分が作ってるPHPのシステムはソースを公開したくないから、スクランブラを自作した。
PHPにはPHPのパース関数もあるから、結構簡単。

>>327
前に見たときはライセンス証を発行してただけだと思ってたけど、今はパフォーマンスとか違うの?
0329nobodyさん2008/06/07(土) 19:19:18ID:???
ライセンスとか言ってる奴あほなの?
黙って使っておけばいいだけじゃん
0330nobodyさん2008/06/07(土) 19:22:35ID:5XgOB7as
>>329
そういう遵法精神のかけらもないのは、ゆとりの典型だな。
内部告発で、あちらこちらの有名企業が倒産しているニュースとか知らないんだろうなぁ。

>>328
>>でもその場合、社員がソースを持ち出したり流出させたりしても罪に問えるのかな。
ソースそのものは、窃盗罪の客体としては保護されない。
会社のUSBでソースを持ち出せば、USBを持ち出したということで罪に問われた判例はある。
この場合は、不正競争防止法に抵触する可能性がある。
0331nobodyさん2008/06/07(土) 19:26:18ID:???
>>330
遵法って勝手にmysqlが言い張ってるだけじゃん
そんな法律ねーだろ
0332nobodyさん2008/06/07(土) 19:28:34ID:5XgOB7as
>>331
もうね、君は馬鹿丸出しだよ。
債務不履行(民法415条)という言葉すら知らないのかねw
0333nobodyさん2008/06/07(土) 19:30:46ID:???
お前が馬鹿丸出しだよ
いい加減にしろ
0334nobodyさん2008/06/07(土) 19:31:08ID:???
>>330
窃盗って言うのかどうかは知らんが、知的財産権はあるでしょ。

GPLとしたソースに対して知的財産権が開発対価を支払った会社に存在するかは
疑問だけど。
0335ASP2008/06/07(土) 20:21:11ID:Fr6pkwVX
質問なんですが
.htaccessか何かで拡張子を入力しなくてもファイルを表示することは可能らしいですが、どうやるのですか?

http://ex.net/test.html
とあれば
http://ex.net/test

こう入力すれば

http://ex.net/test.html
これと同じ内容が表示できるという奴ですが教えてください
0336nobodyさん2008/06/07(土) 20:22:18ID:???
それphp関係あんの?
0337nobodyさん2008/06/07(土) 20:31:39ID:???
>>335
mod_rewriteを使えば可能。

Apacheのモジュールなのでレン鯖なら使えないこともあるんじゃないかな。
.htaccessの書き方はぐぐってください。
0338ASP2008/06/07(土) 20:48:05ID:Fr6pkwVX
>>337
ありがとうございます。

一応鯖はXREAです(`・ω・´)
できますかね…
0339nobodyさん2008/06/07(土) 20:54:38ID:???
できる
0340ASP2008/06/07(土) 20:56:59ID:Fr6pkwVX
ググッタラ

test/test.cgi


test/test.html

に偽装することはできるみたいですが

test/test.cgi


test/test

にはできないです


どうしたらいいのでしょうか…
0341nobodyさん2008/06/07(土) 20:58:39ID:???
仕様ちゃんと読めよ
0342nobodyさん2008/06/07(土) 21:07:50ID:???
>>340
.htaccess質問コーナー Part7
http://pc11.2ch.net/test/read.cgi/hp/1206025115/
0343お・・・ぱい飲んで!2008/06/07(土) 21:43:39ID:9L3fMoWH
写真共有サイトを作成しているのだが、タグ機能で悩んでいる。

データベースに保存する時に

1.タグの数だけフィールドを用意する。
2.タグをカンマで区切ってデータベースに保存する。

どっちがええの?

ユーザーがタグをクリックした際に、検索結果を表示させなくちゃいけない。

ここで悩んでいる。 おれ間に合わない><
0344nobodyさん2008/06/07(土) 21:50:46ID:???
>>343
第三正規形くらいで
0345nobodyさん2008/06/07(土) 22:07:40ID:???
|写真ID|写真名|タグ名|

|写真ID|写真名|
|写真ID|タグ名|

>>343じゃないけどこんな感じ?
0346nobodyさん2008/06/07(土) 22:47:09ID:TJsqbfRl
携帯から書き込める掲示板を作ってます。
auからPOSTしたときだけ、MySQLに記録される文字列が
URLエンコードされた状態なんですが、携帯の仕様でしょうか。

PCとか、docomoとかなら普通にSJISで2バイト文字扱えてるんです。
0347nobodyさん2008/06/07(土) 23:15:13ID:???
文字コードとURLエンコードは関係ない
0348nobodyさん2008/06/07(土) 23:24:06ID:???
>>346
methodの指定をお忘れなく
0349nobodyさん2008/06/07(土) 23:26:31ID:???
>>348
「POSTしたとき」って書いてあるだろカス
0350nobodyさん2008/06/07(土) 23:28:43ID:???
>>349
post
━━ vt. 〔英〕 郵送[投函]する ((off)); 【簿】(仕訳帳から元帳に)転記する ((up)); 最新情報を知らせる ((up; on, about)).
0351nobodyさん2008/06/07(土) 23:34:39ID:???
>>348-350
すいません。
POSTメソッドでデータを送ったときです。
0352nobodyさん2008/06/07(土) 23:37:56ID:???
>>350
PHPでのPOSTはPOSTメソッドだろjk
お前は郵便屋さんでもやってこい
0353ASP2008/06/07(土) 23:40:36ID:Fr6pkwVX
携帯のUAだけで会員ページをつくれる用にしたいのですが、
(モバゲーのマイページみたいな)

構造はこれだとおもったのですが、動きませんでした。
@登録してきたUAをlog.datフォルダに追加
A配列を作成する
BUAが、log.datにあればアクセス許可、なければ拒否
C最後に一部配列を削除

このように考えました。誰か教えてください。


0354nobodyさん2008/06/07(土) 23:43:27ID:???
頼むからPHPの質問を持ってきやがってください
0355nobodyさん2008/06/08(日) 00:04:54ID:ZGtee/4V
今までMySQLを使ってフォーム内容の保存をしてきたのですが、
PHPのみのテキストファイルで保存しようと試行錯誤しています。

基本的に、ファイル内の特定行を編集する時でも、
一度ファイル内容をすべて読み込んで、対象となる文字列を
置き換えすることで、編集とするのでしょうか?
それとも、行を取得してその行のみ編集する事ができるのでしょうか?

今は前者の方法で、file_get_contentsでログファイルを読み込んで
編集したい文字列(行)を置換しているだけです。
0356nobodyさん2008/06/08(日) 00:06:36ID:???
>>328
組み込み等に使われるmysqlはライセンス証のみ
Webサービスなんかの場合はmysql enterpriseとなってバイナリ自体が違うものになる
こっちの方が一般で配布されてる物より早い

>>340
mod_rewriteなんか使わなくてもできるぞ

0357nobodyさん2008/06/08(日) 00:08:40ID:???
>>355
書き方次第で出きる
0358nobodyさん2008/06/08(日) 00:13:08ID:???
>>357
>>355じゃないが、どうやればいいのか気になる。

例えば、ファイルポインタを使用したとしても、
内部的にはどうやっても全行読み込むと思うんだが。
03593552008/06/08(日) 00:26:11ID:???
>>358
そうなんです。どうやっても全行読み込まないと行けなくなります。
しかも、1度だけではなく、読み込んで参照して書き込んで…
っと、3回は同じファイルを全行読み込んで操作する。

この方法が非常に非効率に感じ、質問しました。
03603282008/06/08(日) 00:29:35ID:???
>>356
勉強になった。ありがとう。

>>355
固定長じゃなければ、それと同等な事になるんじゃない。
簡易DB的に使いたいなら SQLiteも良いよ。
0361nobodyさん2008/06/08(日) 00:32:47ID:???
昨日から今日にかけて、SQLite房ウゼーーー
素直にMySQLにしろよ。なんで、SQLiteなんてマイナーなDBすすめるんだよwww
0362nobodyさん2008/06/08(日) 00:34:45ID:???
>>359
それこそSQL使えば?って話だと思うんだけど。
0363nobodyさん2008/06/08(日) 00:35:24ID:???
× それこそSQL使えば?
○ それこそMySQL使えば?
0364nobodyさん2008/06/08(日) 00:36:31ID:???
>>361
インストールもいらないし、ライセンスもラクだからね。
手軽なわりに結構使えて良いよ。
0365nobodyさん2008/06/08(日) 00:39:02ID:???
>>356
>mod_rewriteなんか使わなくてもできるぞ
どうやんのさ?
http://hoge/test/test
は、
http://hoge/test/test/
として認識されるはずだぞ?

0366nobodyさん2008/06/08(日) 00:42:34ID:???
>>361
まぁ、GoogleGearsとかでも採用されてるみたいだし、SQLite
PHP5で標準搭載とか、汎用性のあるDBらしいじゃないの。
0367nobodyさん2008/06/08(日) 00:47:38ID:???
BDBの延長と考えてればSQLiteも悪くない
でもMySQLが使えないから代用とかで使おうとすると、できない事も多いから評価をちゃんとしとけ
0368nobodyさん2008/06/08(日) 09:44:02ID:???
こういう使い方しても問題はありませんか?

-A.php-
$tmp="test";
require_once 'B.php';

-B.php-
print $tmp;
0369nobodyさん2008/06/08(日) 10:12:52ID:???
オッケー
0370nobodyさん2008/06/08(日) 10:13:09ID:???
それだけ問題はないけどね・・・

print吐くものを_onceはちょっと気持ち悪い
0371nobodyさん2008/06/08(日) 11:10:33ID:???
http://collexy.com/
これと似たようなソフトご存知ありませんか?
↑and検索がうまく機能していないので他探してます。

トップページに全件表示、検索ピックアップ、csv管理、 ぐらいの機能でいいのですが
あと出来ればフリーで探してます。
0372nobodyさん2008/06/08(日) 12:55:24ID:???
>>1
0373nobodyさん2008/06/08(日) 13:18:34ID:???
最近質問者滅茶苦茶だな
回答者はスルーでいいよ
ID表示しろとかそれ以前の問題
0374nobodyさん2008/06/08(日) 13:24:35ID:yZTiWUeO
>>372さん
>>1を良く読まずに書き込んでしまいました。申し訳ないです。
サーバーはCORESERVER.JPを使用しています。php5.2.5です。

collexyのサンプルでは[メダカ グッピー]でand検索しても0件と表示されてしまい使用に思い切れないです。
(ちなみに製作目的はある商品の発売スケジュールサイトです。)
0375nobodyさん2008/06/08(日) 13:28:00ID:???
>>371
なんでお前のためにソフトを探してあげないといけないの?
0376nobodyさん2008/06/08(日) 13:33:24ID:???
>>369-370
ありがとう

>>370
なにか問題があるのでしょうか・・・
ページの上部や下部とか各部分を
require_onceで読み込んでもいるんだけど
0377nobodyさん2008/06/08(日) 13:37:34ID:yZTiWUeO
>>375さん
ご存知でしたら教えて頂きたいとお伺いしただけです。
勘違いなされて不快に感じたなら謝ります。
0378nobodyさん2008/06/08(日) 13:43:41ID:???
>>376
>>370じゃないけど _once だと、複数回表示に使用できないからだと思う。

自分の場合は、関数・クラス定義・定数以外を include / require するのも趣味じゃないけど。
0379nobodyさん2008/06/08(日) 13:48:44ID:???
>>370じゃないけど、こんな感じ?

require_onceは設定ファイルの読み込みとか、
一回しか読み込まれないものに使うべきじゃね?
0380nobodyさん2008/06/08(日) 15:01:49ID:???
>>377
ほれ建ててやったからこっちいっておくれ

http://pc11.2ch.net/test/read.cgi/hp/1212904818/

散々言われてるが探してますはスレ違い
スレタイで何でも質問していいと勘違いされやすいが
ここは作る方を対象としたスレです
0381nobodyさん2008/06/08(日) 15:13:48ID:???
>>380 GJ!
0382nobodyさん2008/06/08(日) 20:33:28ID:???
はじめまして、ご教授下さい。
$a = 2008; $b = 06; $c = 08;
上記が入っている場合、
$z = ($a$b$c)を入れたい。
どうすれば$z = 20080608となるでしょうか?
変数をくっつけたいです
よろしくお願いいたします。
0383nobodyさん2008/06/08(日) 20:35:33ID:???
>>382
.
0384nobodyさん2008/06/08(日) 20:43:22ID:???
>>383
ディスプレイにゴミがついてるかと思ったw
03853822008/06/08(日) 20:51:05ID:???
$z = ($a+$b+$c)
と実行したら$zが2022と出てしまいました。
0386nobodyさん2008/06/08(日) 20:54:02ID:???
>>385
>>383
0387nobodyさん2008/06/08(日) 20:54:06ID:???
>>383のヒントに気がつかないか・・・
文字列の結合は「.」。
03883822008/06/08(日) 21:03:53ID:???
ゴミみたいなのに気づきませんでした。
ありがとうございます。
文字列の結合は「.」で行うとできたのですが、
問題が発生いたしました。

$today = getdate();
$b = $today['mon'];
$c = $today['mday'];
$a = $today['year'];

で下記の変数を入れたのですが
$a = 2008; $b = 06; $c = 08;

結合すると「200868」となり、月と日の0が無くなっちゃいました。どうすれば0もありで結合できますか?
もう少しお力を貸して下さい
0389nobodyさん2008/06/08(日) 21:22:52ID:???
>>388
$z = sprintf( "%04d%02d%02d", $a, $b, $c );
03903822008/06/08(日) 21:26:25ID:???
>>389
ありがとうございます。
試してみます
0391nobodyさん2008/06/08(日) 21:34:49ID:???
>>388
$z = date("Ymd");
0392nobodyさん2008/06/08(日) 21:37:20ID:???
すいません、非常にスレ違いかも知れないんですが質問させてください。
今両親がネットで中古販売を始めるということで
ダヴィンチ・カートという市販のソフトを使っていろいろ作っているのですが
その中の転送先フォルダという項目が分からないせいか、
404エラーでショッピングカートのページが表示されず困っています。

調べてみると
http://www.netdeoshigoto.com/cart/support/troubleshoot/trouble_nso.html#answer_shop_2
のような手順を踏めと書いてあるのですが、
いろいろ試してみてもバージョンが違うのか、はたまたわたしが滅茶苦茶なことをしているのか、
一向に表示できず、参っています。
どなたかもし知っている人がいたら教えてもらえてください・・・orz
0393nobodyさん2008/06/08(日) 21:44:58ID:???
すいません、思わず書き込んだけどものっそい勢いでスレ違いですね。
失礼しました。
0394nobodyさん2008/06/08(日) 21:55:09ID:???
>>388
せっかく教えてもらった人の回答をゴミみたいと言うなんて・・・最低だな
0395nobodyさん2008/06/08(日) 21:56:08ID:???
>>388
そもそも$bに06なんて入ってないじゃん。6だろ。どっから06なんて出てきたんだ?
03963842008/06/08(日) 22:02:47ID:???
>>394
ごめん、たぶん俺が振ってる。
0397nobodyさん2008/06/08(日) 22:11:53ID:???
んなこと分かってるが質問者がそう言ったらお終いだろ
0398nobodyさん2008/06/09(月) 00:17:25ID:???
>>327
今のところ同じ物だろ?
ソースいじるのに相談乗るぐらいで

mysqlは真顔で「商用だと使用できない」とか嘘つくやつがいるから困る。

今後はGPL版と有料版を分けるらしいから他のDBが伸びてくるだろうね。
03993822008/06/09(月) 08:37:18ID:???
はじめまして、下記のように変数を入れて
$timestamp = mktime(0, 0, 0, $a, $b, $c);
$timestampより日付情報(Ymd)を抜き取る方法を教えて下さい。
どうかよろしくお願いします。
0400nobodyさん2008/06/09(月) 08:50:49ID:???
>>399
はじめまして、じゃないだろw
date()関数に$timestampを入れてみ。
先ずはマニュアル見てみようか。
0401nobodyさん2008/06/09(月) 08:59:24ID:???
>>1
0402nobodyさん2008/06/09(月) 09:20:17ID:???
>>398
webからDLするものに関しては同じ
バイナリは別物
0403nobodyさん2008/06/09(月) 11:07:18ID:???
どこに質問していいのか分からないのでここで質問させてください。

<?php
$conn = mysql_connect("localhost", "usr", "passwd");
mysql_select_db("kisop", $conn);
$res = mysql_query("SHOW TABLES",$conn);
if($res){
print ("データ獲得に成功しました。");
}
mysql_free_result($res);
?>

でやってみると
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in 〜
と表示されてしまいます。
また、mysql_free_result($res); の部分を削除すると今度は何も表示されません。

一応、本を見ながらやっていてコマンドプロンプトではDBに接続できてます。

お願いします。
0404nobodyさん2008/06/09(月) 11:17:41ID:???
$conn, mysql_select_dbの返り値, $res それぞれprint_rしてみれば、
どこでエラー吐いてるかわかるべ?
0405nobodyさん2008/06/09(月) 11:28:40ID:???
>403
mysql_error()
0406nobodyさん2008/06/09(月) 12:10:03ID:???
つか、
× SHOW TABLES
○ SHOW TABLES;

こういう低次元なお話じゃないの?w
0407nobodyさん2008/06/09(月) 12:14:17ID:???
>>406
0408nobodyさん2008/06/09(月) 12:15:25ID:???
>>406
低次元
0409nobodyさん2008/06/09(月) 12:24:29ID:???
どうせテーブル名間違えてるとか
ユーザー名とパスワードが本当は変数だとか、
そういう答えですよ。
0410nobodyさん2008/06/09(月) 12:31:54ID:???
エラーメッセージというのはコピペしてここに貼るためのものじゃないんだぜ?
04114032008/06/09(月) 13:47:05ID:???
どうやらMySQLでユーザーの作成がうまくいってなかったようです。

一度アインストールして最初から設定したらきちんと表示されました。
04122632008/06/09(月) 15:30:03ID:???
>>269
遅レスですが>>266を参考にさせてもらい

/^\d+$|^n?$/

で自分なりに期待する動きはできました。
ありがとうございました。
間違っていたら指摘していただけると助かります。
0413nobodyさん2008/06/09(月) 15:37:46ID:???
/^n?$/
だと空文字列でも引っ掛かる。
/^n$/
↑ nのみの場合は、これ。

つか、PHP関係ないじゃん。
正規表現スレ行けよ。
04142632008/06/09(月) 15:53:14ID:???
>>413
おっと失礼。
そしてありがとうございました。
0415nobodyさん2008/06/10(火) 00:25:50ID:???
PHPでもダック・タイピングってできますよね?
0416nobodyさん2008/06/10(火) 00:46:12ID:???
ただ覚えたてのその言葉を使いたいだけだろ。
ポリモーフィズムとの違いを説明できるか?

質問のレベルで回答のレベルも決まるんだから、もっと意識して書いて欲しい。
答えはできる。以上。
0417nobodyさん2008/06/10(火) 01:02:30ID:yqKKYTz7
$sql="SELECT * FROM test";
$res = mysql_query($sql,$conn);
while($row = mysql_fetch_array($res)){
echo $row["id"];
}

こういうPHPからMySQLにアクセスして、テーブル一覧を表示しています。
同じデータをもう一度実行する場合、whileの後に
$res = mysql_query($sql,$conn);
として、もう一度SQLコマンドを実行しなければ行けません。

1度、SQLを実行して$resで取得したクエリを
何度もwhileで出力する事は出来ないのでしょうか?
0418nobodyさん2008/06/10(火) 01:12:35ID:???
>>417
出力する内容がそんなに長くないなら、一回配列に書き出しちゃえば?

$sql="SELECT * FROM test";
$res = mysql_query($sql,$conn);

$rows = array();
while($row = mysql_fetch_array($res)){
$rows[] = $row;
}

//出力時には出力したいタイミングで
foreach($rows as $row){
echo $row["id"];
}

とか。
04194152008/06/10(火) 01:27:16ID:???
>>416
ありがとうございます。
ぶっきらぼうな聞き方でしたね。すいません。

PHPでも全然問題無くできるとは思ってたんですが、
RubyがやたらDuck Typingを強調しているので、何か知らないすごい機能が
あるんじゃないかと思って、一応こっちで聞いてみました。

そうなると、使いどころによってはインターフェイスだって使えるPHPって
なかなかいいなと思いました。
04204172008/06/10(火) 01:37:13ID:???
>>418
なるほど。一度配列に入れてから使い回すわけですね。

参考にします。ありがとうございました。
0421nobodyさん2008/06/10(火) 01:51:04ID:???
基本的にfetch系のMySQL関数って、
mysql_query();で、リソース型で保存された変数にアクセスしてるだけで
SQL文を実行してるわけではないと思ってたけど。
04224212008/06/10(火) 02:05:19ID:???
http://jp.php.net/manual/ja/features.persistent-connections.php
正直、よく分からん……。
MySQL関数を使ったときのログを、SQL文で保存するような方法ってないかなぁ?
内部の仕組み知りたい。
0423nobodyさん2008/06/10(火) 21:38:23ID:sCtgQ3vr
インターネット上にある1GB級のファイルをダウンロードして、
ローカルにコピーしたいのですが、
これを、
$htmldata = file_get_contents($URL);
$htmldataを元にローカルにファイルを作って書き込み処理

のようにしますと、物凄くメモリーが食います。
ファイルをダウンロードしながら、逐次ローカルにファイルを作るようなことはできないでしょうか?

アドバイス宜しくお願いします。
0424nobodyさん2008/06/10(火) 21:52:08ID:???
copy()
0425nobodyさん2008/06/10(火) 21:52:32ID:???
PHPでやるこっちゃないような・・・
0426nobodyさん2008/06/10(火) 21:55:33ID:???
url_openが許可されてればfopenでやれそうな気はするけど
使えなきゃsocket開いて自前で全部書けばできるんじゃない?
0427nobodyさん2008/06/10(火) 23:31:43ID:???
require_once 'thread.inc';

ず っ と 待 っ て ま す 。
0428nobodyさん2008/06/10(火) 23:50:06ID:???
Movabletypeについては何処で質問したらいいの?
0429nobodyさん2008/06/10(火) 23:52:16ID:???
>>428
http://pc11.2ch.net/test/read.cgi/blog/1188704566/

検索くらいしようぜ・・
0430nobodyさん2008/06/10(火) 23:57:26ID:???
MovableTypeなんてWebプログラム板の話題でもない上にperlで書かれてるのに
なんでこのスレに来るのか激しく疑問だ
0431nobodyさん2008/06/11(水) 00:09:42ID:???
サーバー上で動くものだからあながち板違いでも無いと思うけど。
んでこのスレをこの板の総合質問スレと思ったとか?
0432nobodyさん2008/06/11(水) 01:28:09ID:???
次スレではスレタイを「PHPの下らねぇ―」に。
墨付き括弧内はただの修飾として読み飛ばされやすい
0433nobodyさん2008/06/11(水) 02:44:31ID:???
OOP-PHPでグローバルっぽい変数を使いたい場合は、
メイン処理部分でメンバ変数のアクセサ作るのが定石なのかな?

デザインパターンもっと勉強しておくんだったな。
0434nobodyさん2008/06/11(水) 02:49:26ID:???
Configクラスでも作っておけば
0435nobodyさん2008/06/11(水) 04:51:30ID:???
グローバル変数を使える言語なので、グローバル変数を使えばよい。
後々の管理がどうたらこうたらほざく痴呆のために、>>434が言うようにまとめておけばよい。
0436nobodyさん2008/06/11(水) 06:49:49ID:???
$GLOBALってなんで$_GLOBALじゃないの?
0437nobodyさん2008/06/11(水) 10:49:25ID:???
>>429
ブログ板か・・・ありがとう
0438nobodyさん2008/06/11(水) 11:03:07ID:???
志村〜
0439nobodyさん2008/06/11(水) 12:15:45ID:FwH5w6fU
mysqliでDBに接続してデータのやり取りをしたいのですが
マニュアルを見る限りinsertやupdateの際に
beginを宣言していないようなのですが、明示的に宣言しなくても
関数が勝手にやってくれているのでしょうか?
0440nobodyさん2008/06/11(水) 12:27:14ID:???
>>439
つAUTOCOMMIT
0441nobodyさん2008/06/11(水) 12:37:07ID:FwH5w6fU
>>440
ありがとうございます
0442nobodyさん2008/06/11(水) 12:51:14ID:???
mysql_query('BEGIN;');

mysql_query('COMMIT;');
0443nobodyさん2008/06/11(水) 15:20:36ID:dkaR05Is
Googleの検索結果ように、URLからhttp://https://の部分を省いて
表示するにはどうすればいいのでしょうか?
やはり、str_replaceなどでの置き換えでしょうか?
0444nobodyさん2008/06/11(水) 15:24:28ID:???
ereg 系が便利
0445nobodyさん2008/06/11(水) 18:50:21ID:???
ファイルのアップロードに関して、ファイルの実体はどの時点でサーバーに送られるんでしょうか?
スクリプトの実行前なのか、実行中なのか。
実行中ならどの時点なのか知りたいです。
04464452008/06/11(水) 18:51:05ID:zOqFVLX/
ID忘れ
0447nobodyさん2008/06/11(水) 19:16:57ID:???
実行前
0448nobodyさん2008/06/11(水) 19:19:31ID:???
>>447
ありがとう
0449nobodyさん2008/06/11(水) 19:21:50ID:???
いえいえ
0450nobodyさん2008/06/11(水) 19:42:57ID:xqxU9BrJ
フォームを実行したら、実行結果と共に、
入力結果が反映されて値に入っているフォームも同時に返したいんだが、
これをいちいちプログラムで書かずに実行するライブラリとかありませんかね?

イメージ:

<form method="post" action="/">
<input type="text" name="foo" value="" />
</form>

で「こんにちは」と検索したら、

<form method="post" action="/">
<input type="text" name="foo" value="こんにちは" />
</form>

検索結果と共に↑をそのまま出力してくれる感じ。

いちいち手書きで値を入力したプログラム書くのが
なんだかバカバカしくなって……。
0451nobodyさん2008/06/11(水) 19:45:12ID:???
postで検索?
0452nobodyさん2008/06/11(水) 19:51:29ID:???
imagecreatefromjpegとimagecreatefrompngの代わりになる関数ってなんかありますか?

なんかサイズが大きいとエラーもはかずにスクリプトがとまっちまう。
0453nobodyさん2008/06/11(水) 19:51:55ID:???
>>451
何か問題が?

ちなみに、今はフォームを書き出す関数を作り、
引数なしだったら、デフォルト書き出し。
引数付きだったら、値付き書き出し、
という処理で対処してますが、
なんだか美しくないです。
0454nobodyさん2008/06/11(水) 19:55:09ID:???
検索とかクエリー投げるものは普通getですね
別にpostでもいいけど
0455nobodyさん2008/06/11(水) 20:03:07ID:???
>>452
Imagemagick
0456nobodyさん2008/06/11(水) 20:53:02ID:???
>>452
エラーを吐かずに止まるのはphp.iniの割り当てメモリが不足してんじゃないのか?
0457nobodyさん2008/06/11(水) 21:41:12ID:???
>>450

<form method="post" action="/">
<input type="text" name="foo" value="<?php echo get_post('foo') ?>" />
</form>


function get_post($name){

return (isset($_POST[$name]))? $_POST[$name] : "";

}

とかやっておけば、POST送信後でも送信前でも、問題なく動くと思うけど、こういうのじゃダメ?
04584502008/06/11(水) 22:26:42ID:???
>>457
これをもう少し効率化した関数を作っているのですが、
結局、フォームの内容が変われば、
それに合わせて関数を書き換える必要があります。

$_REQUEST( or $_POST or $_GET )に作られる配列のキーと、
そのformの持つname属性は必ず一致するはずです。

上記を前提に、
どんなフォームでも送信前は通常と送信後は値を代入した、
汎用的なライブラリが存在しないかな?と思い、質問しました。

ないようなら、作ろうかと。
0459nobodyさん2008/06/11(水) 23:02:11ID:FV2F4cCv
($_SERVER["REQUEST_METHOD"=="POST"){
foreach($_POST as $k => $v)
}
0460nobodyさん2008/06/11(水) 23:02:47ID:FV2F4cCv
($_SERVER["REQUEST_METHOD"=="POST"){
foreach($_POST as $k => $v)
}
0461nobodyさん2008/06/11(水) 23:10:00ID:???
>>459
だから、それがどうしたのよ?
0462nobodyさん2008/06/11(水) 23:19:21ID:???
>>458
そうすると、form内容部分を全部PHPコードで出力するようなことになりそうだけど。(echoとかして)

ソレをやっちゃうとデザイン組むのが面倒くさそうだね。

使ったこと無いけど、PEAR::HTML_QuickFormとかはどうなんだろうね。
テンプレートを作らないでフォーム生成するってなら、QuickFormでもなんか出来そうじゃない?
04634502008/06/11(水) 23:25:43ID:???
>>459-460
ifがないです。
そもそも、>>459だと、クエリが存在しないデフォルト表示は、どうするんでしょう?
そして、クエリのキーと一致するフォーム内要素の(特に)typeをどう判別するのでしょう?

とても傲慢な書き方になってしまいますが、
そういうことが聞きたいのではありません。

>>462
とりあえず、本命と思われるQuickFormのライブラリ群を眺めましたが、
該当する機能が見つかりませんでしたので、質問してみました。

結局、従来のQuickFormで作っても、
手書きと同じようにフォームの要素ごとに場合分けしないといけないのです。

もういっそ、QuickFormの拡張ライブラリの形で作ってみようと思います。
CPANモジュールしか作ったことがないので、PEARのルールがよく分かりませんが、
個人的に使う分には問題ないだろうとw
0464nobodyさん2008/06/11(水) 23:39:41ID:???
何がやりたいのかが分からないから、
とっとと作ってくれ
コード見りゃ理解できるかもしれないからなw
0465nobodyさん2008/06/11(水) 23:59:08ID:???
>>463
まぁ、フォーム一個作るのに、Attributeの指定を一つ一つに施したりだとか、
プロパティ値で内容いじるぐらいだったら、
上であげた形で、普通にHTMLのコードに関数差し込んだ方が、楽じゃない?

結局最初にフォーム作ってフォームデザインするときにはHTMLかいて調子整えたりするわけだし。

04664502008/06/12(木) 03:44:55ID:???
INPUT限定だけど、実現したいのはこれをもっと汎用的にしたライブラリ。
ソース汚いのは突発で書いたから我慢して。

$form = <<<_EOF_
<form method="post" action="/">
<input type="text" name="name" value="" />
<input type="text" name="name2" value="" />
<input type="text" name="name3" />
</form>
_EOF_;

$obj = simplexml_load_string( $form );
$array = get_object_vars( $obj );

if( !empty( $_REQUEST ) ) {
 foreach( $_REQUEST as $q_key => $q_value ) {
  foreach( $array as $key => $value ) {
   if( $key <> '@attributes' ) {
    if( is_array( $array[$key] ) ) {
     for( $i = 0; $i < count( $array[$key] ); $i++ ) {
      if( $q_key == $array[$key][$i][name] ) {
       isset( $array[$key][$i][value] ) ?
        $array[$key][$i][value] = $q_value :
        $array[$key][$i]->addAttribute( 'value', $q_value );
}}}}}}}
 
$result = $obj->asXML();
$result = str_replace( '<?xml version="1.0"?>', '', $result );
print $result;
0467nobodyさん2008/06/12(木) 07:20:39ID:???
>>466
Parse error: syntax error, unexpected T_AS in form.php on line 14
0468nobodyさん2008/06/12(木) 07:34:42ID:???
そのまま書いたら全角だから当然だ。
0469nobodyさん2008/06/12(木) 09:53:55ID:???
車輪を見てコロを作るようなもんか
0470nobodyさん2008/06/12(木) 11:10:16ID:???
現在400件程度のデータをMYSQLを使うかXMLで使うかで迷ってます。
400件程度ならXMLの方がいいですよね?
いいアドバイスよろしくお願い致します。
0471nobodyさん2008/06/12(木) 11:13:12ID:???
>>1
0472nobodyさん2008/06/12(木) 15:40:02ID:???
>>470
ここPHPのスレな。
データをどう処理するかによって全然違うし、MYSQL板でも池
0473nobodyさん2008/06/12(木) 18:24:19ID:LQ12XrxF
($_SERVER["REQUEST_METHOD"=="POST"){
foreach($_POST as $k => $v)
}
これじゃだめなん?
if($_SERVER["REQUEST_METHOD"=="POST"){
foreach($_POST as $k => $v)
}
これなら通るのかな?

0474nobodyさん2008/06/12(木) 19:35:58ID:???
>>473
それ答えになってないと思うぞw

>>450
多分ないと思う
そもそも全く同じフォームをエラーとかで戻すとき以外に
そんな事する必要あるのってあんまりないんじゃ?
0475nobodyさん2008/06/12(木) 19:54:41ID:???
pearやsmartyやZFのformライブラリ使えばいいんじゃね?
デフォルト値の引数あるでしょ。
俺はめんどいから普通に書くけど。
0476nobodyさん2008/06/12(木) 21:26:36ID:/br5Qw5C
動画のファイルから画像を取り出したいのですがPHPでできますか? 

0477nobodyさん2008/06/12(木) 21:30:12ID:???
ffmpeg使ったら?
0478nobodyさん2008/06/12(木) 22:29:47ID:???
SQL使ってページング処理するときって、
クエリの結果を全部変数で受け取ってから、プログラム内でページング処理する?
それとも、SQLのLIMIT使って、ページ移動毎にクエリ飛ばす?

ケースバイケースなのは分かってるけど、
自分のプログラムがどっちのケースに向いてるのか
判断の基準が分からない。
検索結果数で目安とかってあるんですかね?
0479nobodyさん2008/06/12(木) 22:36:09ID:???
普通は後者。
0480nobodyさん2008/06/13(金) 00:15:22ID:???
>>466
それだと、PHP4の案件はいってきちゃったときとか、結局面倒くさいんじゃないの。
最近はそんな案件ないのかな?

>>478
普通に後者でしょ。
配列とかやたらメモリ食うし。
0481nobodyさん2008/06/13(金) 00:26:44ID:???
>>466
汚いにしても限度がある、と言いたい
0482nobodyさん2008/06/13(金) 00:48:04ID:iGfhCZYk
読みこんだセッションを、別のセッションIDで保存したいと考えています。
動作的にはsession_regenerate_idと同じだと思うのですが、
今回の場合、セッションIDを自分で指定したいのです。
session_id()で指定する場合は、session_start()の前に指定しなければならないので、
「読み込んだ後の変更」にはなりません。
実際、読み込んだ後にsession_idで指定しても、
発行されるクッキーは旧IDが入っています。
いい方法があれば教えてください。
0483nobodyさん2008/06/13(金) 01:30:58ID:VBSX1FXW
ブラウザから送信されるPOSTメソッドの
HTTPのBODY部分のサイズを取得する方法ってありますか?

バージョンは、php5です。宣しくお願いします。
0484nobodyさん2008/06/13(金) 01:55:11ID:???
>>482
面白そうだからやってみた。

<?php
require_once('./settings.php');
session_start();
print_r($_SESSION);
if(isset($_SESSION['hoge'])){
  $old = $_SESSION['hoge'];
}else{
  $old = 'atai';
}

session_destroy();

$a = rand();
session_id($a);
session_start();


$_SESSION['hoge'] = $old.'_atai';



?>
<a href="./session.php">hoge</a>

こんな感じでどう?
0485nobodyさん2008/06/13(金) 01:59:37ID:???
1.セッションをスタートさせる
2.セッションの中身を変数に書き出し
3.とりあえずセッションの中身を破棄
4.session_idで自分で値指定(例では面倒なのでrandしてみた)
5.session_start
6.値の格納

requireしてるsettings.phpは、ini_set('session.use_trans_sid', 1)して、GETクエリにセッション渡して動作みてるのに使っただけ。

一応動いてるように見えるけど、どうでしょうね。
0486nobodyさん2008/06/13(金) 02:06:41ID:???
>>483
POSTメソッドで送られてきたHTTPのBODYって、$_POST変数に格納された値のこと?
だったら、$_POSTに格納されてる値をstrlenとればバイト数でるんじゃない?
0487nobodyさん2008/06/13(金) 02:07:27ID:???
>>481
主にどの辺が?
リファクタリングしてみてよ
うまい人の見たい。
0488nobodyさん2008/06/13(金) 02:13:10ID:???
というかそれ以前の問題な気する
0489nobodyさん2008/06/13(金) 02:21:00ID:???
いいから適当なフレームワーク使えよって思うのは俺だけ?
0490nobodyさん2008/06/13(金) 02:28:05ID:???
>>488
具体性がないと、ただ難癖つけたいだけにしか見えないよ。
具体的に指摘して欲しい。
2chの行数制限を踏まえた上で。
0491nobodyさん2008/06/13(金) 02:33:11ID:???
>>487
このソースは、value値を自動的に書き換えるためだけに、生成されたHTMLを一度XML書式の配列に落として、
値の中身見て、値を突っ込むの?
こんな方法で実現させるぐらいなら、普通に処理したほうが良くない?

もしくは、Quick_Formちょろっといじって該当の機能つけるとか。

まぁ、もしくは、inputタグを生成する関数(or class)作って、REQUEST_METHODがPOSTだったときにvalue値をごにょごにょするようにするとか。
0492nobodyさん2008/06/13(金) 02:54:37ID:???
>>482
> 実際、読み込んだ後にsession_idで指定しても、
> 発行されるクッキーは旧IDが入っています。

そこでもう一回 session_start() じゃだめだっけ?
0493nobodyさん2008/06/13(金) 03:05:52ID:???
>>492

>>484でソース書いた者ですが、
あのソースで動くなら、>>492で行ってる通りっスね。
destroyって、セッション殺すわけじゃなくてセッション変数に入ってる値を破棄するだけだから。

session_start();

session_id('nantoka');

session_start();

で書き換わるね。
0494nobodyさん2008/06/13(金) 08:48:03ID:VkO+Sagj
vainlinux4.2 apache2.2 mysql php5.0の環境を構築中です。
いままではaccessで顧客情報を共有しており、それをmysqlにインポートするべく
phpmyadminをインストールしcsvにてインポートしようとしているのですが、
phpmyadminのインポートするファイル形式の選択肢がsql形式しかありません、
いろいろググってみたのですが該当する理由がわかりませんでした。
他のページでは形式が選べる的なことが書いてあるのですが、当環境では見当たらないのです。
ご教授願えるとありがたいと思います。よろしくお願いします。

0495nobodyさん2008/06/13(金) 09:34:22ID:???
テーブルを選択してインポートじゃない?
0496nobodyさん2008/06/13(金) 10:55:37ID:???
>>494
ENGINE
0497nobodyさん2008/06/13(金) 13:33:09ID:EDleoE9a
ブログの自動投稿に関しての質問です

mysqlなどのDBを自前で用意するときは、
DBのサーバー名、ログインユーザー名、パス、DB名、DB内のテーブル名などがわかっているので
1. mysql_connect()でDBにアクセス→DBの任意のテーブルに文字列をINSERTするスクリプトを書いておく
2. CRONで1.を定時に実行させる
で自動投稿が可能ですが

fc2などのブログに自動投稿しようと思った場合はどのような処理や関数を使えばいいのでしょうか
こちらは掲示板の自動投稿に近いと思うのですが、
そのやり方ですら思いつきません

どうぞよろしくお願いします
0498nobodyさん2008/06/13(金) 13:36:24ID:???
スパマー乙
0499nobodyさん2008/06/13(金) 13:36:36ID:???
量産型ブログでも作るんですか?

レンタルブログ使った事ないから知らないけど、
cronのような機能を使えない以上は、
POSTするプログラムを用意して、
こちら側で定期実行するしかない気がするんだけど。
0500nobodyさん2008/06/13(金) 13:47:10ID:EDleoE9a
>>498
いえ、スパマーではなく単なる知的好奇心です

>>499
そうですね
そのPOSTするプログラムを作りたいのですが、
1.フォームにIDとパスワードをPOST
2.記事をPOST
このやり方がわかりません・・・
と思って質問させてもらったのですが、1、2をそのままやればできるのかもしれないと思いました
実験してなかったのでやろうと思います
0501nobodyさん2008/06/13(金) 13:54:48ID:???
ここに下手なこと書いてスパマーがまねしたらどうすんだ
0502nobodyさん2008/06/13(金) 14:05:36ID:EDleoE9a
>>501
そうですね すいません
スパム行為によって利益をあげることを目標としているスパマーは嫌いですけど
技術を身につける上での通過点としてスパム行為の知識を持っておくのはアリかなと思い、質問させてもらったのですが
こういう質問はもっとひっそりとしたところでやるべきだったのかもしれません
すいません
0503nobodyさん2008/06/13(金) 17:41:51ID:???
http://www.ranking-php.com/

ここでSQLの設定ができずに登録が先に進まないんですが仕様ですか?
0504nobodyさん2008/06/13(金) 18:43:20ID:???
>>503
よくある質問(何も無いけど)を見て、もしわからなければ
お問い合わせ(エラーになるけど)で質問したらいいかも
0505nobodyさん2008/06/13(金) 20:50:13ID:???
>>504
全くサポートなしですよね
そこでPHPユーザーの皆さんのお知恵を拝借したいと質問した次第です。
0506nobodyさん2008/06/13(金) 21:01:00ID:???
>>505
>SQLの設定ができずに
とだけ言われても返答のしようも無いですよ。

同じものを取得して実際にインストールしてみろとでも?

なにをやって、どういうエラーが出ていて、そのソースにはこういた記述があって・・・
ぐらいは書いた上で質問してもらえると助かります。
0507nobodyさん2008/06/14(土) 00:14:23ID:???
(1) http://example.com/index.php?foo=bar
(2) http://example.com/?bar のように、
とフォーム入力側で実現することは可能でしょうか?

 <form method="get" action="./index.php">
  <input type="text" name="foo" value="" />
 <form>
 
GETでinputに値を渡して、
URLを(2)のように表示させたいのです。
.htaccessだとうまく実現できずに困っています。
0508nobodyさん2008/06/14(土) 00:31:48ID:???
action="./"
0509nobodyさん2008/06/14(土) 00:33:52ID:???
どっちみちrewrite使わないと無理
0510nobodyさん2008/06/14(土) 00:34:53ID:???
ああ>>509は勘違いだった
0511nobodyさん2008/06/14(土) 00:41:18ID:???
>508も勘違いだったw
foo=も消したいのか・・・
JavaScriptでURL作るなりしないと、formを普通にsubmitするだけじゃ無理じゃね?
0512nobodyさん2008/06/14(土) 03:03:01ID:???
>>507
<?php
//大雑把だけどむりやりブッ飛ばして
if(isset($_GET['foo'])){
header('Location: '."./?".$_GET['foo']);
}

//取得する?って事かな
if(isset($_GET)){
print_r($_GET);
}

?>
<form method="get" action="./">
<input type="text" name="foo" value="">
<input type="submit" value="送信">
</form>
0513nobodyさん2008/06/14(土) 04:21:01ID:SvNsf5Rj
質問です
Aサーバーに置いてあるa.logファイルをBサーバーから書き換えるには
何を使えばいいでしょうか?
fopen("ftp://アノニマス:パスワ@ftp.a.ne.jp/headline.log","w");
とすると、FTP server reports 553 /headline.log: Permission denied
と言うエラーが出ます。
headline.logファイルの属性は、777と666で試しました。
結果は変わらずです。
使う関数を間違えているのでしょうか?
0514nobodyさん2008/06/14(土) 04:25:52ID:???
RHEL 上の apache2 に php4 + mysql4 と php5 + mysql5 両方の環境を構築することは可能でしょうか。
0515nobodyさん2008/06/14(土) 04:27:27ID:???
ディレクトリのパーミッションを確認
0516nobodyさん2008/06/14(土) 04:28:34ID:???
こんな時間に続けて書き込みがあるとはw

>>515>>513
0517nobodyさん2008/06/14(土) 04:56:10ID:UEa+HjFV
目的)   ブログのRSSを自宅鯖上のウェブページに表示したい
システム). OS:Linux Vine4.2    HTTP:Apache2.2.3    PHP 5.2.6
操作1)  PHPをApacheに組み込み、test.phpにアクセス(*1
.        情報が表示されたのでPHPの正常動作を判断
操作2)  自鯖のHTTPディレクトリにファイル(/var/www/html/rss/rssv.php)を作成(*2
操作3)  自鯖の公開ページにソースを記述(*3
        が、RSSは表示されず、ソースを張った場所には何も表示されず
       *2)のいじった場所はShift_JISで上記の結果。改変後は「ページが表示できません」エラー

*1)   <?php
      phpinfo();
      ?>
*2)   <?php
      require "XML/RSS.php";
      $code = "UTF-8";        /*←ここいじった*/
      (ry
*3)   <iframe src="./rss/rssv.php?u=http://(´・ω・`).com&n=3" (ry></iframe>

何処かおかしいところがあればご教授下さい。
マニュアル他解説サイトなどを手がかりにしましたが、
自鯖公開ページとPHPは同じエンコーディングじゃないとまずいのではと思い、
その部分を変更してみましたが目標に至れず質問しますた。
0518nobodyさん2008/06/14(土) 08:55:45ID:???
mbstringのエンコード
0519nobodyさん2008/06/14(土) 10:01:05ID:???
外部ファイルに文字列を出力したとき改行部分(¥nと書いたところ)のところが上矢印になってしまいます。
どうすれば改善できるでしょうか
0520nobodyさん2008/06/14(土) 10:02:39ID:???
>>519
>>1
0521nobodyさん2008/06/14(土) 10:03:32ID:???
>>519
文字コード
0522nobodyさん2008/06/14(土) 10:38:31ID:???
>>520-521
素早い回答ありがとうございました
ですが知識の乏しい自分にはどうしてもわかりませんでした
もう少しわかりやすくお願いできないでしょうか
0523nobodyさん2008/06/14(土) 11:09:42ID:???
>>522
>>520の意味すら読み取れ無いのならば、初心者板へ行けとしか。
0524nobodyさん2008/06/14(土) 11:10:24ID:???
>>522
>>520
05255182008/06/14(土) 11:19:12ID:aruCSElJ
OSwindowsXPHome Apache2.2.8 PHP5.2.6
もしかしてこういうことですか?
2ちゃんねるそのものが初心者なもので

一応マニュアルやリファは読んだのですが
わからなかったのでここにきました
0526nobodyさん2008/06/14(土) 11:26:19ID:???
>>519
メモ帳で見てるだろ?
もしメモ帳で見てるなら問題は無い
05275192008/06/14(土) 11:37:26ID:aruCSElJ
>>525は518ではなく519でした

>>526
そうだったのですか
ありがとうございます
0528nobodyさん2008/06/14(土) 11:38:35ID:???
>>519
"\r\n"にしてみれ
0529nobodyさん2008/06/14(土) 11:40:11ID:???
Windows世代の憂鬱ですね、わかります。
0530nobodyさん2008/06/14(土) 11:52:08ID:???
PHP的にはPHP_EOL定数も使える
0531nobodyさん2008/06/14(土) 14:21:20ID:QTSkypnp
Fatal error: Smarty error: [in admin/anq_result.tpl line 38]: [plugin] modifier 'n12br' is not implemented (core.load_plugins.php, line 118) in C:\xampp\libs\Smarty.class.php on line 1092

は何て言っているんですか??
0532nobodyさん2008/06/14(土) 14:45:47ID:???
n[l]2br ぢゃね?
05335132008/06/14(土) 15:00:41ID:SvNsf5Rj
>>515
ありがとうございます
fopen("ftp://アノニマス:パスワ@ftp.a.ne.jp/headline/headline.log","w");

wwwフォルダだったので新たにheadlineフォルダを作ってそこのパーミッションを
766でやってみました。ファイルのパーミッションは666です。

次はFTP server reports 553 /headline/headline.log: No such file or directory
となりました。ファイルのパスなどは間違えていないのですが…
0534nobodyさん2008/06/14(土) 15:22:56ID:???
>>533
FTPサーバ側でanonymousにカキコ権限あるか確認
05355132008/06/14(土) 16:44:49ID:SvNsf5Rj
>>534
サクラのレンタルでも調べられますか?
あと、別にFTPに拘ってるわけでもなく複数のサーバー使ってるので
それらの情報をヘッドライン.logとして書き込めれば何でもいいのですが…
オススメの関数とかありますか?
ちなみにソケットとか言うのはサーバー側が使えません。
関係ないかもしれませんが。
0536nobodyさん2008/06/14(土) 17:27:37ID:???
>>535
sakura共有なら普通にftp関数使ってユーザでログインすればいいんじゃない?
たしかftpはインスコされていたと・・・

http://www.php.net/manual/ja/function.ftp-put.php
0537nobodyさん2008/06/14(土) 17:38:23ID:???
>>535
テラスマヌ、今うちのsakura共有見たらftpは無かった
0538nobodyさん2008/06/14(土) 17:53:13ID:???
>>535
うちのsakura共有でやってみた。以下でいけたぽい

unlink("ftp://ゆーざID:パスワード@ホストIP/home/ゆーざID/www/test.txt");
$fp = fopen("ftp://ゆーざID:パスワード@ホストIP/home/ゆーざID/www/test.txt", "w");
fputs($fp, date("Y-m-d H:i:s"));
fclose($fp);

sakuraのユーザID、パスを使う
ファイルがある場合は先に削除しないとエラーになる(上書きできないみたい)
ホストIP以降のパスはフルパス
05395352008/06/14(土) 18:04:15ID:SvNsf5Rj
>>538
マジですか…
先にファイルのデータを読み取ってそれに追加したいのですが…
とりあえず試してみます
05405352008/06/14(土) 18:11:15ID:SvNsf5Rj
追伸です。データ送信できました!
しかし、メチャクチャ遅いのですが…
さらに書き込み終わった後、すぐにエラーでIEが閉じてしまいました…
0541nobodyさん2008/06/14(土) 23:11:31ID:???
こんばんわ。
PHPでCSVのデータを表示できる事は出来たのですが
その各項目をテーブルに収めたいのです。。
echo を使うと大変で(汗 Smartyを使うしかないのでしょうか?
0542nobodyさん2008/06/14(土) 23:17:41ID:???
>>541
<table summary="hoge">
<tbody>
<?php foreach($array as $val): ?>
<tr>
<td><?php echo $val[0]; ?></td>
<td><?php echo $val[1]; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>

こういう書き方じゃダメ?
0543nobodyさん2008/06/14(土) 23:22:53ID:???
追記:
最近では非推奨らしいけど、ショートタグとか言われてる記述があるよ。

<?php echo $hoge; ?>

<?=$hoge?>
0544nobodyさん2008/06/15(日) 00:11:54ID:???
賢い俺にはショートタグ非推奨なんて関係ない。
0545nobodyさん2008/06/15(日) 00:22:00ID:???
何で非推奨なんだろうね
0546nobodyさん2008/06/15(日) 01:55:32ID:???
そりゃキモイから
0547nobodyさん2008/06/15(日) 02:27:18ID:qXYgnKYO
Warning: htmlspecialchars() expects parameter 1 to be string, array given in C:\xampp\libs\plugins\modifier.escape.php on line 26
はどうゆうエラーですか??
0548nobodyさん2008/06/15(日) 02:58:53ID:???
>>547
htmlspecialchars()の引数1に、文字じゃなくて配列が渡されました。
かな。
0549nobodyさん2008/06/15(日) 03:01:05ID:???
今時xampp(笑)
0550nobodyさん2008/06/15(日) 15:02:23ID:T2nrQoQe
こんにちは、メモリの使用上限を2ギガに設定しているのですが、
たまに、

Fatal error: Allowed memory size of xxxxxx bytes exhausted

を吐くのですが、エラーログにファイルパスを吐いてくれません。
php.iniの設定がまずいのでしょうか?
他のerrorはファイルパスを吐きます。
どうすれば、ファイルパスを吐かせることが出来るか、
ご教示下さい。よろしくお願いします。

出来ない場合のプランとしてob_startと、$php_errormsg
ob_get_contents()、$_SERVERなどを使ってログ出しを
しようかなと思っています。
0551nobodyさん2008/06/15(日) 16:24:41ID:???
>>550
php.iniの設定を見直せ
0552nobodyさん2008/06/15(日) 16:46:24ID:PnCbQKDp
質問です
if(eregi("$value$",$host))
としているのですが仮に
ZQ068252.ppp.dion.ne.jpと言うIPがあるとして
valueに「.ppp.dion.ne.jp」と書くと規制するのですが
「ZQ068252.」の部分で規制しようとするとスルーします
どうしてでしょうか?
0553nobodyさん2008/06/15(日) 16:58:36ID:???
if(eregi("$value$",$host))

if(eregi($value,$host))
にすればok
05545522008/06/15(日) 17:01:46ID:PnCbQKDp
ありがとうございました!
最後の$はこれ以降文字があったらダメ!
みたいな設定ですかね?
とにかくありがとうございます。
0555nobodyさん2008/06/15(日) 17:06:34ID:???
正規表現で$は何を意味するか調べてみましょう。
05565522008/06/15(日) 17:06:46ID:PnCbQKDp
すみません$を退けたらdion以外のプロバイダも
弾くようになってしまったのですが…
それ以外何も弄っていません
0557nobodyさん2008/06/15(日) 17:12:31ID:???
>>556
最低限のことくらい自分で調べろって
05585522008/06/15(日) 17:17:35ID:PnCbQKDp
調べましたが…
$が行の最後で^が行の最初と書いてました…
現在も捜索中ですが「.ppp.dion.」の中間文字列など
文字列がマッチするって言う表記がありません…
調べて見ますが一言で片付くならご教授お願いします
0559nobodyさん2008/06/15(日) 17:18:25ID:???
一言で片付くなら自分でやれよw
どんだけ自己中心的なのw
05605522008/06/15(日) 17:21:42ID:PnCbQKDp
そうですねw
"\/$value\/"で大丈夫でしょうか?
今から実験してみますがw
05615522008/06/15(日) 17:25:27ID:PnCbQKDp
"/$value/"
…つwww
ダメじゃん orz
0562nobodyさん2008/06/15(日) 17:32:37ID:???
おまえさんはこっちに行ったほうがいい
http://pc11.2ch.net/test/read.cgi/php/1168450843/
0563nobodyさん2008/06/15(日) 17:33:47ID:???
ZQ068252.任意の文字.dion
ではじくなら

$value = "/ZQ068252\..+\.dion/";
if(eregi($value,$host)) {/*やりたいこと*/};

で、どう?検証してないから駄目かもですが。
0564nobodyさん2008/06/15(日) 17:49:14ID:???
strstrでいいじゃん
0565nobodyさん2008/06/15(日) 17:50:19ID:???
いやstrposでいいか
0566nobodyさん2008/06/15(日) 21:13:30ID:4qgDFbgL
session_start();
echo session_id();
というページを閲覧し、web developper(firefoxのアドオン)で
HTTPレスポンスヘッダを閲覧しても、
クッキーを設定しているフィールドが見えません。
ヘッダの、
クッキーを設定しているフィールドを見ることができるアドオンがあれば
おしえてください。
どういう生ヘッダで書かれているのかみたいんです
0567nobodyさん2008/06/15(日) 21:55:17ID:???
livehttpheaderでおkでした
0568nobodyさん2008/06/16(月) 01:33:53ID:d68qAwtQ
セッションIDを自前で再設定して、
セッションクッキーを、
setcookieで上書きしたいのですが、
セッションと同名のクッキーをsetcookieで発行しても、上書きできず、
クッキーフィールドが二行になってしまいます。
セッションクッキーのフィールドを上書きする方法はないものでしょうか?
0569nobodyさん2008/06/16(月) 03:18:40ID:???
include_once("hogeclass.php");

$foo = new hoge;
$bar = $foo->as_strings;
print $bar;
exit;

この場合は、正常に動作するのですが、

$foo = new hogeHoge;
$bar = $foo->as_strings;
print $bar;
exit;

class hogeHoge{
 function __construct() {

 }
}
05705692008/06/16(月) 03:21:15ID:???
すいません。間違えました。
include_once("hogeclass.php");

$foo = new hoge;
$bar = $foo->as_strings;
print $bar;
exit;

上の例は、正常に動作するのですが、
下の例では、失敗します。
$barに何も値が入りません。

$foo = new hogeHoge;
$bar = $foo->as_strings;
print $bar;
exit;

class hogeHoge{
 function __construct() {
  ...省略
 }
 ...省略
}

PHPファイルで、クラスを直接扱いたい場合は
どのようにすればよろしいでしょうか?

注意点あるいは参考サイト、資料などを教えて頂けますと幸いです。
0571nobodyさん2008/06/16(月) 03:58:25ID:???
>>570
http://jp.php.net/oop5
0572nobodyさん2008/06/16(月) 11:57:07ID:???
全角半角まじった文章から、指定バイト数ぶんの文字をとりたい。
で、例えば「あ1い」から4バイトとろうとすると文字化けしてしまう。

うまいこと文字化けせずに出せるような関数ありますか?
なければ文字化けせずにとれるうまい方法を教えてほしいのですが。
0573nobodyさん2008/06/16(月) 12:47:09ID:???
>>572
世界最高のハッカーでもそれは無理な相談だ。

2文字じゃなく4バイトなんだよな?
4バイト目がマルチバイトの一部の場合は、
3 or 5バイト取得したいってわけでもないんだよな?

この意味が分からんなら、ちょっとバイトについて勉強してこい。
この意味が分かるなら、人に伝達する努力をしろ。
0574nobodyさん2008/06/16(月) 12:48:35ID:???
誰かが言う前n言っておく。
それよりバイトしろ。
0575nobodyさん2008/06/16(月) 12:51:05ID:???
バイトいってきます
0576nobodyさん2008/06/16(月) 13:01:42ID:???
あっ、すいません、4バイト取得しようとして文字化けするようなら3 or 5バイト取得したいんです。
0577nobodyさん2008/06/16(月) 13:08:57ID:???
ブラウザ表示限定なら、バイト列をレスポンスして、ブラウザでデコードするJSなりASなりを書けば、特殊な字を書かない限りは対応できるよ、俺なら。
0578nobodyさん2008/06/16(月) 13:55:38ID:???
mb_strlenは?
0579nobodyさん2008/06/16(月) 13:57:33ID:???
>>578
文字数ではなくバイト数をご希望のようです
0580nobodyさん2008/06/16(月) 14:05:46ID:???
前から1バイトずつ見ていくしかないかな
0581nobodyさん2008/06/16(月) 14:06:10ID:???
>>572
echo mb_strcut("あ1い", 0, 4, "sjis");

あ1
0582nobodyさん2008/06/16(月) 14:10:54ID:???
うまくいきました。皆さんありがとうございました。
0583nobodyさん2008/06/16(月) 14:29:35ID:???
PDO::FETCH_ORI_ABSってMysqlだとちゃんと動かんの?
普通にふぃっちするだけなんだけど。
0584nobodyさん2008/06/16(月) 14:32:14ID:???
>>583
コードうp
0585nobodyさん2008/06/16(月) 15:01:09ID:???
include 'db.php';
$sql = "select * from users order by id ";

$stmt = Db::singleton()->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL));
$stmt->execute();
var_dump( $stmt->fetch( PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 3) );
var_dump( $stmt->fetch( PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 1) );

こんな感じ
普通にIdが1・2・3という順番でくる
0586nobodyさん2008/06/16(月) 15:29:45ID:???
http://bugs.php.net/bug.php?id=34625
ぐぐったら上から3つ目くらいに出てきた
0587nobodyさん2008/06/16(月) 16:49:42ID:NSiUFpCp
array_searchやin_arrayを多次元配列に対応させたいのですが、
なにか良いアイデアはないでしょうか?

このとき、多次元配列の深さ(?)はマチマチです。

たとえば、

$hoge = array(
'a' => 'a1',
'b' => array(
'b1' => 'b1',
'b2' => array(
'b2_1',
'b2_2'
)
)
);

このような配列があるとき

print(in_array('b2_1', $hoge));
で、trueが返ってくるようにしたいのです。

自分なりに考えたのは
foreachで回して、もし配列だったらさらにforeachで回す、
というような方法なのですが、
もうすこしスマートなやりかたがあったら教えていただきたいのですが・・・

アドバイスお願いします。
0588nobodyさん2008/06/16(月) 17:10:05ID:???
array_walk_recursive
0589nobodyさん2008/06/16(月) 17:14:43ID:???
書いてみた

function recursive_in_array($str, $arr){
$ret = false;
foreach($arr as $v){
if(is_array($v)) $ret = recursive_in_array($str, $v)?true:$ret;
else $ret = $v==$str?true:$ret;
}
return $ret;
}
05905872008/06/16(月) 17:25:50ID:NSiUFpCp
>>588
array_walkという関数は知っていましたが
array_walk_recursiveという関数もあったのですね!
これをうまく使えばなんとかなりそうです。

>>589
あらかじめ関数を作って、配列が見つかったらもう一度関数を呼び出す、
ということですね!
たしかにこれならスマートにできますね!

ほんとうにみなさんの知識や発想にはいつも驚かされます。
ありがとうございました!
0591nobodyさん2008/06/16(月) 18:28:20ID:???
>>587
$target = 'b2_1';
array_walk_recursive( $hoge, create_function( '$value,$key', 'if( $value == $target ) print "true";' ) );
眠くて、全然思考がまとまらんのに、なぜこんなことやってんだろ?w
0592nobodyさん2008/06/16(月) 19:51:28ID:pwDo5eRw
PHP5を使ってます。

PDOを使った、総レコード数を出すにはどうしたらよいでしょうか?

rowCount()は知っているのですが、これもいまいち使えません。。。

ちなみに、ページ切り替え処理をやるために、総レコード数を出そうとしています。

宜しくお願いいたします。
0593nobodyさん2008/06/16(月) 20:08:26ID:???
>>592
COUNT(*)
0594nobodyさん2008/06/16(月) 20:23:25ID:pwDo5eRw
>>593

ありがとうございます。
ただ、

$SQLtxt = "SELECT COUNT(*) FROM table_name;";
$ss = $dbh->query($SQLtxt);
print "レコード数:$ss<BR>";


上記でもダメだったのですが、
数値化するために何かする必要はありますか?
0595nobodyさん2008/06/16(月) 20:25:17ID:???
PDOStatementからfetch
0596nobodyさん2008/06/16(月) 20:31:12ID:???
>>594からなら
$count = $ss->fetchColumn();
0597nobodyさん2008/06/16(月) 20:42:31ID:pwDo5eRw
>>596
ありがとうございます。できました!

向学ののために知りたいのですが、fechでも可能なのでしょうか?

$dbh = new PDO($host, $user, $pass);
$SQLtxt = "SELECT COUNT(*) FROM table_name;";
$ss = $dbh->fech($SQLtxt);
print "レコード数:$ss<BR>";

上記で実行したところ、fetchの行がエラーとなりました。。。


このあたり、prepareとか使えば、このあたり処理が速くできそうですね。
0598nobodyさん2008/06/16(月) 20:42:54ID:IjgN4Ncj
テキスト処理について質問です。
テキストファイル(実態はhtmlのソース)の中から、
<img src=".*">となっているところのみを抜き出して表示したいのですが、

if (preg_match_all("/<img src=.*>/si", file_get_contents("hoge.txt"), $matchs)) {
 foreach ($matchs as $value) {
  echo $value . "<br>\n";
&nsbp;}
}

という風な感じだと、
最初に現れる<img src=から、最後に現れる</html>まで全てmatchしてしまいます。
<img src=.*>のものだけを取り出すにはどのように改良したらよいか教えてください。

<img src="example0.jpg"><br>
<img src="example1.jpg"><br>
<img src="example2.jpg"><br>

このようにしたいです。
0599nobodyさん2008/06/16(月) 20:45:29ID:???
>>597
お前は何を言ってるんだ
0600nobodyさん2008/06/16(月) 21:02:02ID:???
>>597
もちろんfetchでも取れるが、ちゃんとマニュアルを読んだほうがいい
0601nobodyさん2008/06/16(月) 21:04:46ID:???
>>598
?
0602nobodyさん2008/06/16(月) 22:00:42ID:6F6SIf0V
setcookie("cookie_test","on",time()+60);

として60秒間はクッキーが有効になる設定をしているのですが、
60秒経ってもクッキーが消えていない時があります。(ifでチェックすると)

こういう場合、どうすればいいのでしょうか?
アクセスする環境やPCの問題なので、仕方ないのでしょうか?
0603nobodyさん2008/06/16(月) 22:46:53ID:???
>>602
きっちり60秒で消えなければいけない場合は時計の同期を考えないといけない
誤差程度の時間で消えてるなら気にしなくても大丈夫

どうしても60秒経過の判定が必要なら
何秒に発行したかまでクッキーに書いておいて読み込んで判定させるといい
0604nobodyさん2008/06/17(火) 00:58:42ID:uGaLdLWH
<?php
header( "Content-type:text/html;charset:utf-8" );
print "こんにちは";
?>

上記スクリプトを、
UTF-8で記述すると、IE7で文字化けします(Shift-JISで表示)。
※ ちなみに、FireFox2.0 / OPERA / Safari は、OKでした。

また、上記スクリプトの記述を、Shift-JIS にすれば、IEで正常に表示されます。

UTF-8で記述した上記のスクリプトでも、IEで文字化けしない対策はありませんでしょうか?
また、こういった事例と対策が説明されているページや資料などありましたら、
ご教示頂けましたら幸いです。
0605nobodyさん2008/06/17(火) 01:02:32ID:???
charset=utf-8 だろ
0606nobodyさん2008/06/17(火) 01:08:30ID:???
>>605
うわ……w
ありがとうございます。
もの凄い単純なミスでした。
どうして気付かないときは、半日でも一日でも気付かないんだろう……orz
0607nobodyさん2008/06/17(火) 01:15:38ID:???
$proxy = "192.168.10.1";
$port = 8080;
$url = "http://";
$fp = fsockopen($proxy, $port);
while(!feof($fp)){
$line = fgetss($fp, 4000);
print($line);
}
fclose($fp);

このようにプロキシ経由でソースを取得します。
mb_strpos関数である文字列が最初に現れる位置を探し
mb_substr関数で上記で取得した位置に+2した値から
文字を取り出すようなプログラムを考えています。
これら2つの関数の使い方は分かるのですが
fgetssを使用しているので上手く組み込むことが出来ません。
ソースの取得法又は関数で何かご教授いただきたいです。
0608nobodyさん2008/06/17(火) 01:18:10ID:???
$line .= fgetss($fp, 4000)
してループ抜けてからmb使えば?
06095682008/06/17(火) 01:22:10ID:???
ヤッター
遂にセッションIDを上書きする方法を見つけました!
header('Set-Cookie: '.session_name().'='.session_id().'; path=/');
とheaderで出力したら二行になりませんでした
0610nobodyさん2008/06/17(火) 01:28:33ID:???
fgetssで10行ほど文字列を取り込み、
それらの行全体での位置を探し、取り出したいので
ループを抜け出すと一行分しかできません。
取得法を変えるしかないですかね。
0611nobodyさん2008/06/17(火) 01:42:44ID:???
>>610
だから .= だっつってんだろが
0612nobodyさん2008/06/17(火) 01:44:02ID:???
>>610
連結代入って知ってる?
0613nobodyさん2008/06/17(火) 01:53:35ID:???
>>611-612
すいませんでした。意味が理解できたのでやってみます。
ありがとうございました。
0614nobodyさん2008/06/17(火) 07:04:37ID:???
ご教授
0615nobodyさん2008/06/17(火) 10:27:36ID:cJ7L3+9A
ある設定がしてある時のみ実行するのに一番コストの低い方法って何ですか?

とりあえず、設定がしてあるときにはfunctionの中身を定義して、
無いときには、空のfunctionを定義しています。
0616nobodyさん2008/06/17(火) 10:33:45ID:???
エスパー↓
06176152008/06/17(火) 10:42:28ID:cJ7L3+9A
わかりにくかったですか?補足します。
Cだと、
#if
#define NANIKA (hogehoge())
#else
#define NANIKA ()
#endif
という風にやれば、ある条件の時のみ、hogehoge()が実行されます。
PHPのほうでは
function nanika() {hogehoge();} と
function nanika() {;} をifの分岐でそれぞれ定義しています。
今のやり方よりも、実行時の負荷の低くなるやり方があれば、教えてください。
0618nobodyさん2008/06/17(火) 10:45:13ID:???
関数ポインタを変数に入れて切り替えるとか?
0619nobodyさん2008/06/17(火) 10:51:41ID:???
>>617
else節の省略が駄目な理由は?
06206022008/06/17(火) 11:16:09ID:???
>>603
レスありがとうございます。数秒の誤差は気になりますので
やっぱりちゃんと判定できる必要があります。

>何秒に発行したかまでクッキーに書いておいて読み込んで判定させるといい 何秒に発行したかまでクッキーに書いておいて読み込んで判定させるといい

と言うのはタイムスタンプを入れてそれで判別するということでしょうか?
06216152008/06/17(火) 11:18:54ID:cJ7L3+9A
すいません。大分間違った聞き方をしているようです。
整理しなおしてみます。

Cだと、
#if jouken
#define nanika(x) (nanika_func(x))
#else
#define nanika(x) ()
#endif

のようにすれば、nanika(hogehoge());は、
joukenのときだけnanika_func(hogehoge());を実行し、
joukenから外れる場合はnanika_func()もhogehoge()も実行されません。
PHPのほうでは
if (jouken)
function nanika(x) {nanika_func(x);} else
function nanika(x) {;}
のようにしておいて、nanika(hogehoge());というコードを書いています。
この場合、joukenに合わない場合、hogehoge();が一度実行されますが、
hogehoge();も実行されないようにできれば、
負荷を減らせられると考えています。何かありませんか?

hogehoge();が実行されるときの副作用に関しては、
現時点でも注意を払っています。
0622nobodyさん2008/06/17(火) 11:30:17ID:???
凝ったこと考えず素直に
if(JOKEN) nanika(hogehoge());
ではアカンの?
0623nobodyさん2008/06/17(火) 11:30:33ID:???
プリプロセッサとインタプリタの動作はわかってるのかな?
そこまで負荷を気にするのであればAPC等のアクセラレータを考えたほうがいい
0624nobodyさん2008/06/17(火) 11:36:08ID:???
>>621
Cだと、条件成立時には前者が関数としてコード化され実行ファイルに組み込まれ、
不成立だと消滅する。

実行時に条件判定をするなら、これは使えないんじゃないかな。
06256152008/06/17(火) 12:10:45ID:cJ7L3+9A
>>623
インタプリタなスクリプト言語でも、構文解析はともかく、
実行時は処理せずスキップする何かがあるかもと思って質問しました。

よくよく考えると実行時にスキップできるような処理系なら、
特別な構文とか技を使わなくても処理をカットするように実装するだろうから、
普通に記述してれば最適なようになってるでしょうね。

>>624
実行時というか、nanika()を呼ぶたびではなく、
function nanika();の定義時にjoukenを判断するだけでかまいません。
0626nobodyさん2008/06/17(火) 13:13:39ID:DvvNmeRS
URLを色々いじれる.htaccessってなんていう奴だったっけ…

modみたいな…

test.htmlをCGIに偽装して
test.cgiみたいにできる奴…
0627nobodyさん2008/06/17(火) 13:19:40ID:???
mod_rewriteのことか?
0628nobodyさん2008/06/17(火) 14:25:05ID:???
スレチだが、ずっと疑問だったクッキーやらセッションやら消しても、
なぜかこちらの情報が保存されてるサイトがあったから、
MACアドレスでも収集したのかとずっと思ってたんだが、
Flashクッキーなんてものがあったのね。
知らなかったわー
0629nobodyさん2008/06/17(火) 14:32:18ID:???
サーバ側でMACアドレスなんてわかるわけねーだろww
0630nobodyさん2008/06/17(火) 14:36:04ID:???
そもそもMACアドレスってルータ越しには伝わらんのじゃ?
0631nobodyさん2008/06/17(火) 14:39:18ID:wifkyQV+
質問です。
「この商品を見てる人はこんな商品も見てます。」
こういうの良く見るけど、どうやってるのでしょうか?PHPで出来ますでしょうか?
よろしくお願いします。
0632nobodyさん2008/06/17(火) 14:42:53ID:cLskKZdP
for($i = 1 ; $i <= 4 ; $i++)
{
$array['x'] = 15;
$array['y'] = 15;

switch($i)
{
case 1 : $array['x']++;
case 2 : $array['y']++;
case 3 : $array['x']--;
case 4 : $array['y']--;
}

for($j = 1 ; $j <= 4 ; $j++)
{
switch($j)
{
case 1 : $array['x']++;
case 2 : $array['y']++;
case 3 : $array['x']--;
case 4 : $array['y']--;
}

$array_map[] = "[{$array['x']}/{$array['y']}]";
}
}

array_unique($array_map);
print_r($array_map);

こういったループを徐々に深く(3重や4重)にしていきたいんですが、
ループを重ねるのはやはり大変なので、何か良いループ方法はありますでしょうか?
0633nobodyさん2008/06/17(火) 15:13:18ID:???
>>615

hoge.php
--------------------
function hoge(){
//code
}


main.php
---------------------

if(jouken){
require_once('hoge.php');
}


とか。
0634nobodyさん2008/06/17(火) 15:22:28ID:???
>>631
できますよ、実装は様々だけど。
例えばリファラを記録しておいて、一定数に達したらそういうメッセージ出すとか、
実際にはこんな商品を見ているという事実がなくても、
関連商品のリンクを見ているということにして貼る方法もあります。
下の方法は嘘になりますが見てる側からはわからないです。
また下の方法はHTMLだけで出来るのでPHPすら必要ないでしょうね。
06356032008/06/17(火) 15:42:12ID:???
>>620
そういうことです。
必要なデータ+時間をクッキーで送って
時間から60秒経過していれば〜の処理をする
のような感じでいいかと

でもクッキーはユーザー側で切ったり消したり値を書き換えたりできるから
60秒きっちりが取れないかもしれない。
特に連投制限のようなものだと意図的にやってる人には効果が無いので
もしそういう処理をやろうとしているならサーバ側でも何かしないとあまり意味が無いよ。
0636PHP℃素人2008/06/17(火) 16:35:00ID:6VYoJ2QR
自宅サーバの電源を切り忘れたときに外出先から携帯電話を使って
切断できたら便利だと思いPHPでシェルを実行するスクリプトを考え中です。
サーバOSはLinuxでユーザーに予め電源切断のみの権限を与えておきます。
<?php
echo shell_exec('shutdown -h now');
?>
としたのですがこれでよいでしょうか?
0637nobodyさん2008/06/17(火) 16:39:44ID:???
用途にもよるけど普通サーバの電源は年中無休でつけとくものだぜ
echoはしなくてもいいんじゃない?
あとパスワード設定するか誰でもアクセスできるような位置にはおかないこと
0638nobodyさん2008/06/17(火) 16:40:27ID:???
うごけばそれでよい
0639PHP℃素人2008/06/17(火) 16:45:30ID:6VYoJ2QR
>>637
実行したか確認したいのですがechoはいりませんか?
0640nobodyさん2008/06/17(火) 16:54:26ID:???
そんなマネやったことないからわからんけど、echoで出力するハズの
タイミングでは既に落ちてるんじゃ?
0641nobodyさん2008/06/17(火) 16:54:34ID:???
>>639
shutdownするってことはwebサーバも落ちるんだから確認のしようがないんじゃ?
外部のレンタルサーバにpingうつスクリプト置くか、pingうってくれるサイトから、
自鯖をシャットダウン後、ping送って確認してみるといいんじゃないか?
0642PHP℃素人2008/06/17(火) 17:38:30ID:6VYoJ2QR
>>640 >>641
とりあえず試してみます。
0643nobodyさん2008/06/17(火) 18:41:16ID:jPkgqGii
htmspecialchars($str, ENT_QUOTES);

上記でHTMLエンティティに変換したのですが、
HTMLエンティティを元に戻すにはどうしたらよいのでしょうか?
0644nobodyさん2008/06/17(火) 18:57:48ID:???
>>643
http://jp.php.net/htmlspecialchars
0645nobodyさん2008/06/17(火) 19:16:40ID:???
>>639
-tを付けて少し待たせるようにして、その間にメール送信
0646nobodyさん2008/06/17(火) 20:12:03ID:???
>>625の説明文が未だに理解できない……
__AUTOLOAD使うとかじゃいかんの?
0647nobodyさん2008/06/17(火) 20:44:51ID:???
>>632
念のために確認するが、
$array['x'] = 15;
$array['y'] = 15;
は、最初のループの内側でいいのか?
毎回初期化されるぞ。

どういう用途を想定しているのか分からんけど、再帰使えばいいと思う。
0648nobodyさん2008/06/17(火) 20:57:00ID:???
PHPを用いて CSVのデータを検索させたいのですが何かサンプルございませんでしょうか?
0649nobodyさん2008/06/17(火) 21:01:32ID:???
>>648
http://www.php.net/manual/ja/function.fgetcsv.php

少しはマニュアルよめ
0650nobodyさん2008/06/17(火) 22:30:39ID:???
多次元配列に収められた配列の分割方法がわかりません。
$arr[0]['name']=イヌ
$arr[0]['color']=白
$arr[0]['sex']=オス
$arr[1]['name']=ネコ
$arr[1]['color']=黒
$arr[2]['name']=リス
$arr[2]['color']=茶
$arr[2]['sex']=オス
上記のようなデータが格納された配列「$arr」があるとして、

0にあるものを配列「$hoge0」←(name=>イヌ,color=>白,sex=>オス)
1にあるものを配列「$hoge1」←(name=>ネコ,color=>黒)
2にあるものを配列「$hoge2」←(name=>リス,color=>茶,sex=>オス)

といった感じに、各配列に分解したいのですが、その方法を教えてください。
0651nobodyさん2008/06/17(火) 22:31:01ID:???
>>648
え、検索したらサンプルいっぱいでるじゃん
”PHP CSV”
0652nobodyさん2008/06/17(火) 22:34:08ID:???
>.650
array_walk_recursive

試しもせず、具体的なロジックまで求めだしたら、教えて君。
0653nobodyさん2008/06/17(火) 22:59:51ID:cLskKZdP
>>647
座標(15,15)から8歩でいける場所を全て抽出しようと思ってます
再帰とはどのようなものなのですか?
0654nobodyさん2008/06/17(火) 23:09:37ID:???
バカは一生バカのままでいろ。

>>650
for( $i=0; $i < count($arr); $i++) {
 foreach($arr[$i] as $key => $value) {
  ${hoge.$i}[$key] = $value;
 }
}

>>653
関数の中でその関数を呼び出す
0655nobodyさん2008/06/17(火) 23:54:31ID:7t0PU3Q3
サーバー FreeBSD PHP仕様

昔CGI-PLANTさんで配布していた
設定したファイルが更新していた場合に別ファイルで更新マークを付けられる、GETSTAMPを愛用いていました。
この度久しぶりにサイトを作る事にして、
古いデータからそのパッケージを発掘しまして、再利用する事にしました。
ところが、説明書などがなく、配布元さんでは公開停止。
ググって出てきた情報とうろ覚えの記憶で
JavaScript版の設定と記述をしたのですが、
CGI自体は動作しているのですが、HTMLでの表示が出来ません。
エラーなどではなくただスルーされてる感じなのですが、
いかんせんきちんとした説明書がないため何が足りないのかわかりません。

CGIを起動して、IDなどは一通り設定しました。
表示させたいファイルで、CGIを指定する記述と、
マークを出したい部分へはDocument〜の記述もしました。

申し訳ないのですが、どなたかこのCGIの説明書などをお持ちの方、
JavaScript版の設定方法を教えて頂けませんでしょうか。
0656nobodyさん2008/06/17(火) 23:55:17ID:???
>>653
ソレを出したいってことなら、一回発想変えてみたら?
方眼紙とか用意して点打ってみると、もっと効率のいい方法が見えてくる気がする。

function x_y($x, $y, $walk=8){
$map = array();
for($i=0;$i<=$walk;$i++){
$move_x = $i;
$move_y = $walk-$i;
for($j=0;$j<=$move_y;$j++){

$map[] = "[".($x+$move_x)."/".($y+$j)."]";
$map[] = "[".($x-$move_x)."/".($y+$j)."]";
$map[] = "[".($x+$move_x)."/".($y-$j)."]";
$map[] = "[".($x-$move_x)."/".($y-$j)."]";
}
}
return $map;
}

$map = x_y(15, 15, 8);

echo "<pre>";
print_r(array_unique($map));
echo "</pre>";

たとえばこんな。
0657nobodyさん2008/06/17(火) 23:57:59ID:???
>>655
まず、そのソースコードが、PHPか確認して下さい。
次に、スレタイをもう一度確認してください。
06586552008/06/18(水) 00:04:28ID:29hzMdPj
>>657
すみません、PHP専用のスレだと気がつきませんでした。
大変失礼しました。
0659nobodyさん2008/06/18(水) 00:33:45ID:???
PHP自信のアドレスを確認するにはどのようにすればいいのでしょうか?
0660nobodyさん2008/06/18(水) 00:38:31ID:???
PHP_SELF

もういやd
0661nobodyさん2008/06/18(水) 00:39:04ID:???
>>659
$_SERVER調べれ
0662nobodyさん2008/06/18(水) 00:45:48ID:???
http://localhost/hoge/hoge.php?action=entry
みたいなアドレスでPHP_SELFでやりましたら、
/hoge/hoge.php
のような感じで出てきたのですが、
http://localhost/hoge/hoge.php
という感じに出せないのでしょうか?
0663nobodyさん2008/06/18(水) 00:47:15ID:???
>>662
>>661
0664nobodyさん2008/06/18(水) 01:27:41ID:???
おまえら本当にマニュアル読もうとすらしないのな?
検索やキーワードで簡単に調べられるのに、それすらしないのな?
PHPのマニュアルは、スクリプト言語史上、最も親切な部類に属するのに。

だから、いつまで経ってもバカなんだよ。
まともな知識のある奴とバカの温度差が激しすぎる。
0665PHP℃素人2008/06/18(水) 01:32:36ID:FEsYSSp5
>>642 中間報告です
はじめにsudo設定でユーザhogeにノーパスワードおよびシステム終了権限を与える。

<?php echo shell_exec('sudo shutdown -t 5'); ?>
は白ページが出てなにも実行されない

そこでwhoコマンドであなたは?とたずねる
<?php echo shell_exec('who'); ?>
hogeですよと表示される hoge pts/0 Jun 17 20:22 (192.168.1.10)

でもsudoの実行ログを確認すると
Jun 17 22:01:45 linux sudo: (pam_unix) authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=www-dataとなっていた
Apacheはwww-dataユーザの権限で動作しているのが原因か?
0666nobodyさん2008/06/18(水) 01:44:19ID:???
$ php hoge.php
$ php -f hoge.php

こいつらってなんか違うの?
0667nobodyさん2008/06/18(水) 01:50:39ID:???
ajaxについて教えてください。

以下のサイトにあるサンプルをサーバにあげて実行したのですが、
エラーになって正常に動きません。
エラーメッセージは xmlDoc has no properties です。
ttp://www.geekpage.jp/web/google-maps-api/gxmlhttp-3.php

このサンプルでは、phpからXML出力したものを読み込んでいますが、
ためしに、読み込み先をxmlファイルにして、サーバにxmlファイルを置くと
問題なく処理されます。

他のサイトで見つけたものを試しても、PHPからのXMLではうまくいかず、
読み込み先をxmlにした場合にうまくいきます。

関係あるかわかりませんが、サーバはXREAを使っています。

よろしくお願いします。
0668nobodyさん2008/06/18(水) 01:53:31ID:???
>>687
よくわかりませんがajaxはJavaScriptですよね
よくわかりませんがheaderでこのファイルはxmlですよって教えてあげてください
よくわかりませんがxrea無料なら自動広告が原因の可能性もなきにしもあらず
よくらからないのはめんどうなので適当にレスしたからです
0669nobodyさん2008/06/18(水) 04:43:20ID:zzNhp0Rl
ネットカフェからの接続を一部制限したいんですが、
何かよい方法ないでしょうか?
ネカフェ専用のブラウザがあったりして特別なUA持たせてるとか、
届け出るときにIP帯も届け出て公開しなければならなくてどこかに一覧があるとか、
ネカフェは絶対特定のProxy経由で接続しないといけないとかとか・・・
犯罪予告の防止にも国として何か対策を講じてくれるのが一番なのですが、
現状ないので何かネカフェからの接続がわかるような方法がありませんか?
0670nobodyさん2008/06/18(水) 05:06:32ID:z89NqzwY
区切り文字ごとにハッシュ配列に分解してくれる関数ってないですか?
$text = "a=1@b=2@c=3@=@@";
$hash = parseText($text,"@","=");
echo $hash["a"] // 1
echo $hash["b"] // 2
echo $hash["c"] // 3
こんな感じにしたいのですが。
0671nobodyさん2008/06/18(水) 05:12:48ID:???
explode
0672nobodyさん2008/06/18(水) 05:27:50ID:z89NqzwY
explode組み合わせて作りってことですか?
0673nobodyさん2008/06/18(水) 06:20:16ID:z89NqzwY
なんかぐぐってもそれらしいのは出てくるんだけど、汎用的なのがない;;
0674nobodyさん2008/06/18(水) 07:11:58ID:???
>>673

おいおい。答え書いてくれてるじゃん・・・。
別に正規表現でもいいけど。
マニュアル読め。
0675nobodyさん2008/06/18(水) 07:26:09ID:???
要するにレディメイドな関数が欲しいんだろ。
ここ数スレ回答し続けてるけど、怠け者の次元が桁外れ過ぎる。
はっきり言って、無能だらけ。
0676nobodyさん2008/06/18(水) 07:43:37ID:???
function str2hash( $input, $delimiter1, $delimiter2 = '=' ) {
 $temp = explode( $delimiter1, $input );
 for( $i = 0; $i < count( $temp ); $i++ ) {
  if( preg_match( "/^(.+?){$delimiter2}(.+?)$/", $temp[$i], $matches ) ) {
   $hash[$matches[1]] = $matches[2];
  } 
 }
 return $hash;
}

ほれ、レディメイドな関数だよ。
parseTextなんて名前じゃ意味分からんから変えたよ。

俺は、PHPはじめてまだ1週間くらいなので、
言語への慣れを身につけたいから、
クソみたいな質問にも極力まじめに回答し続けてるんだけど、
質問者はこの先、未来ないぜ?
ちょっとはマジメに覚える気になれよ。
0677nobodyさん2008/06/18(水) 07:47:45ID:???
ちなみに、foreachじゃなく、forを使ったのは、
array_spliceで配列中のゴミを削除しようと思ったからだけど、
途中方向転換したから。
適当にforeachで書き換えた方が可読性は高まる。
0678nobodyさん2008/06/18(水) 08:07:58ID:???
function str2hash($str, $sep1, $sep2) {
    $data = explode($sep1, $str);
    foreach($data as $tmp) {
        if (trim($tmp) == "") {
            next($data);
        } else if (preg_match("/^(.+?){$sep2}(.+?)$/", trim($tmp), $matches)) {
         $hash[$matches[1]] = $matches[2];
      }
    }
    return $hash;
}
06796672008/06/18(水) 08:45:28ID:???
>>668
PHPからの出力に問題があるのかと思って、こちらに書かせてもらいました。
それで、ためしに広告が出ないサーバ(お金払ったところ)で試したら、
うまくいきました!!
ありがとうございました。
0680nobodyさん2008/06/18(水) 10:31:02ID:???
ホスト名を逆引き検索する以下の関数があると思うのですが、
逆引き検索に時間が掛かると処理がここで長い時には30秒も止ることがあります。
gethostbyaddr($ip)
マニュアルを見ましたが、タイムアウトを設定できるようなことが書いていなかったのですが、
時間が掛かる場合には強制的にタイムアウトさせる方法などありますか?
逆引きできれば別の方法でもいいのですが。
0681nobodyさん2008/06/18(水) 10:54:43ID:???
無理矢理バージョンだと、
set_time_limitをgethostbyaddrの前後に追加する。
前のset_time_limitは指定タイムアウト時間。
後のset_time_limitは元に戻す。

ソケット使って自作した方がいいと思うよ。
あんまり安定した関数じゃない。
0682nobodyさん2008/06/18(水) 11:02:55ID:???
class SubClassA {
...
public function method( SubClassB ) {}
}

サブクラスのメソッドの引数にクラス名を入れているサンプルをよく見るんだが、
これはどういう処理をしているの?

マニュアルのどこに載ってるかだけでもいいから教えて欲しい。
さんざん探したけど、分からなかった。
06836822008/06/18(水) 11:14:25ID:???
追記です。

class SubClassA {
...
public function method( SubClassB $hoge ) {}
}

と、引数部分にクラス名 変数となっている場合がほとんどです。
この二者の関係性がどうしても調べられずに困っています。
0684nobodyさん2008/06/18(水) 11:28:30ID:???
http://jp.php.net/manual/ja/language.oop5.typehinting.php
0685nobodyさん2008/06/18(水) 11:31:43ID:???
>>684
ありがとうございます!
クラス(オブジェクト)における型指定をしているだけなんですね。
もっと複雑な処理をしているものと思って、理解できるのか戦々恐々としてました。
勉強になりました。
0686nobodyさん2008/06/18(水) 12:39:32ID:???
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/

とりあえず張っとく
0687nobodyさん2008/06/18(水) 14:24:51ID:AqO1gOD5
YYYYMMDDhhmmの形で十分刻みで値を変えてたいです。

ex)
2008年06月18日14時18分だったら
200806181400

2008年6月18日14時25分だったら
200806181410
といった感じです。

そこで簡単に組んだのですが最初は毎時0分から20分ぐらいまでは使えませんでした。
(原因は分を10で割って丸めた値から単純に-1して10倍したため-10という値を吐いた)
この点を修正した後にどんどん問題はスケールが大きくなって行くことに気づきました。
結局日にちをまたぐとき(毎日0時0分から20分まで)も同様の問題が起こることになり、
月替わりのときですと、さらに面倒なことになると思うのですが、単純に解決することは出来ないでしょうか。


宜しくお願いします。
0688nobodyさん2008/06/18(水) 14:34:01ID:???
>>687
お前が「簡単に組んだ」内容を示してみろ。

あと、例示の内容だが、
ってなんか不思議なんだが。
俺なら
18→10
25→20
ってする。
0689nobodyさん2008/06/18(水) 14:39:44ID:???
その手の処理をするときは、一度UNIXタイムタンプ(time_t)に変換してから処理して終ったら戻せ
0690nobodyさん2008/06/18(水) 14:49:02ID:???
>>687
688に賛成だけど

$y 年,$m 月,$d 日,$h 時, $i 分
date("YmdHi", mktime($h, (intval($i / 10) - 1) * 10, 0, $m, $d, $y))
0691nobodyさん2008/06/18(水) 14:59:20ID:???
date('YmdHi',floor(time() / 600) * 600)
こんなんとか?
0692nobodyさん2008/06/18(水) 15:09:13ID:???
じゃあ俺ならこうしてみようかな
preg_replace('/^(\d{11})./', '${1}0' ,date('YmdHi'));
0693nobodyさん2008/06/18(水) 15:11:44ID:AqO1gOD5
>688
http://firestorage.jp/download/4aa4312921c6d26b8669b1a7ede8229b677cc851

こんな感じです。
例示についてはどうしてもそこの数字の一つ減らしたかったためです。
分かりづらかったらすみません。

>689,690
いまmktimeについて読んでいます。

ちなみに鯖はxreaです。
0694nobodyさん2008/06/18(水) 16:25:20ID:???
>>680
http://jp2.php.net/gethostbyaddr
タイムアウト付きのコードがある
0695nobodyさん2008/06/18(水) 18:35:37ID:mVAzEHez
よくPHPで
『この画面で30秒以上経過したためタイムアウトしました。』
というのを見つけるのですが、
セッションを使ったやり方と使わないやり方が知りたいのですが実際に可能でしょうか?
教えてください
0696nobodyさん2008/06/18(水) 18:39:15ID:???
>>695
例えばどのページ?
0697nobodyさん2008/06/18(水) 18:42:25ID:mVAzEHez
>>696
ヤフー知恵袋です。
携帯(モバイル)でアクセスするさいの質問時によくタイムアウトしてしまいます。
0698nobodyさん2008/06/18(水) 18:53:35ID:EJ2w77Il
$num=10;
for($i=0;$i<$num;$i++){
$hoge.="<tr><td>$i</td></tr>";
}

上記に4行毎

<tr><th>No</th></tr>

を入れたいのですが
どこをどう繰り返せばいいのか教えてください。
お願いします。
0699nobodyさん2008/06/18(水) 19:32:07ID:???
>>698
if文
0700nobodyさん2008/06/18(水) 19:38:51ID:mVAzEHez
誰か教えてください(◎-◎;)
0701nobodyさん2008/06/18(水) 19:43:56ID:???
>>698
思ったとおりの動作になるかはわからんが

$num = 10;
for ($i = 0; $i < $num; $i++) {
$hoge .= "<tr><td>{$i}</td></tr>\n";
if ($i % 3 == 0 && $i != 0) {
$hoge .= "<tr><th>No</th></tr>\n";
}
}
0702nobodyさん2008/06/18(水) 19:44:19ID:KjbYRyD7
>>700
4で割って余りが無い時とかは?
0703nobodyさん2008/06/18(水) 19:45:07ID:KjbYRyD7
>>700
$iを4で割って余りを見れば
0704nobodyさん2008/06/18(水) 19:47:39ID:NgS9+r3y
質問です。フォームメールのプログラムを練習で作ってみたのですが、うまくいきません。
以下コード
<?php
$to = $_POST[to];
$from = $_POST[from];
$body = $_POST[body];
$sub = $_POST[sub];
$frname = $from;
$fradrs = $from;
$toname = $to;
$toadrs = $to;
$subject =$sub;
$comment = $body;
mb_language("ja");
mb_internal_encoding("sjis");
$frname0 = mb_encode_mimeheader($frname);
$toname0 = mb_encode_mimeheader($toname);
$sdmail0 = "$toname0 <$toadrs>";
$mlhed = "From:\"$frname0\" <$fradrs>";
$rslt = mb_send_mail($sdmail0,$subject,$comment,$mlhed);
print "送信完了";
?>

実行すると、以下の文章が出力されます
"; $mlhed = "From:\"$frname0\" <$fradrs>"; $rslt = mb_send_mail($sdmail0,$subject,$comment,$mlhed); print "送信完了"; ?>
どなたかわかる人いましたらレスおねがいします。
0705nobodyさん2008/06/18(水) 19:47:53ID:???
>>700
どこでつまずいてるのさ?
それとも1から書いてくれって丸投げ?
0706nobodyさん2008/06/18(水) 19:48:18ID:???
>>700
これか?
http://www.tagindex.com/html_tag/page/meta_05.html
0707nobodyさん2008/06/18(水) 19:49:38ID:???
>>704
PHPが動作していない
0708nobodyさん2008/06/18(水) 19:52:19ID:???
>>694
助かりました。まさにそれです。
正常に処理できました。

このソースeclipseに張ると赤い印でソースコードのエラーが出るんですよね。
たぶん、eclipseの解析が悪いだけだと思うのですが、少し気持ち悪いです。
でも、正常に動いているので、問題はないです。
0709nobodyさん2008/06/18(水) 20:49:34ID:???
eclipseなんて使うな
07107042008/06/18(水) 20:58:22ID:NgS9+r3y
>>707

レスありがとうございます。再度動作できる環境を整えてやりましたところ、
エラーが出てしまいました。
Parse error: syntax error, unexpected $end in /home/www/free/XXX/XXXXX/mail.php on line 42
XXXXXはサーバーのURLです。

そしてコードの42行目は、

?>
です・・・。これは鯖が悪いのでしょうか?
0711nobodyさん2008/06/18(水) 21:04:45ID:???
>>710
syntax errorって書いてあるんだから、関数が走る走らないの前に、文法エラーなんでしょうよ。

ソース確認してみたら?
0712nobodyさん2008/06/18(水) 21:05:28ID:???
>>710
自分が悪いくせにサーバのせいにするなw
0713nobodyさん2008/06/18(水) 21:19:21ID:NgS9+r3y
>>711
http://www2.uploda.org/uporg1488564.txt
これが全ソースなんですが、確認しても間違いはないようなんです・・・。
0714nobodyさん2008/06/18(水) 21:26:30ID:???
>>713
10行目のEND_DOCの頭についてるスペースかな
0715nobodyさん2008/06/18(水) 21:27:25ID:???
なんかはじめたころの俺の書き方ソックリだwww
0716nobodyさん2008/06/18(水) 21:27:50ID:???
・・・ですぅ
0717nobodyさん2008/06/18(水) 21:34:34ID:NgS9+r3y
>>714
thx!
すべてのスペース削除して実行したらうまくいった。
昨日はじめたばっかりでよくわからないけど動くと感動するね。
0718nobodyさん2008/06/18(水) 21:59:51ID:???
態度豹変してワロタ
0719nobodyさん2008/06/19(木) 01:37:42ID:ThD97MPb
下記例につき、質問2点についてお教え願います。
例…4つの数字『1』、『2』、『3』、『4』、『5』から
  3つ選んたときの組み合わせを行います。
  数字を入れ替えると、同じ組み合わせになるものは、数に含まれません。
質問1…組み合わせの数を求めたい。
質問2…組み合わせの内容を知りたい。
答え1→10通り
答え2→『1.2.3』
    『1.2.4』
    『1.2.5』
    『1.3.4』
    『1.3.5』
    『1.4.5』
    『2.3.4』
    『2.3.5』
    『2.4.5』
    『3.4.5』

エクセル関数(combin)を使って、
質問1の答えを知ることができましたが、
質問2については、気合と根性で手作業で答えを導きましたが、
PHPで簡単に出来ないかと思い、書き込みしました。
よろしくお願い致します。
 
0720nobodyさん2008/06/19(木) 01:41:48ID:ThD97MPb
>>719です。

間違いがございましたので訂正致します。
訂正箇所…2行目
訂正前…4つの数字
訂正後…5つの数字
ご迷惑をお掛け致しますがよろしくお願い致します。
0721nobodyさん2008/06/19(木) 02:09:06ID:???
数学の基礎だぞ。
高校数学より中学レベル。
数字をアルファベット5個に置き換えたら分かりやすいかもね。
0722nobodyさん2008/06/19(木) 02:12:04ID:???
>>719
いい課題だから自分で可能なところまで考えてみ
0723nobodyさん2008/06/19(木) 02:19:17ID:???
ヒント:簡単なのは、randを使うかshuffleを使うかだな。
どっちでもいいけど。
0724nobodyさん2008/06/19(木) 02:33:47ID:???
だから宿題は自分でやれってw
0725nobodyさん2008/06/19(木) 02:40:05ID:js0BBwoJ
header関数で出力した内容を、後から削除する方法があれば教えてください
0726nobodyさん2008/06/19(木) 02:55:41ID:???
無理です
0727nobodyさん2008/06/19(木) 03:35:32ID:???
>>725
条件によって出力しなければいいだけじゃなくて・・・?
07287212008/06/19(木) 04:28:03ID:???
試しにやってみたら、
>>719が意外と難しい件w

重複数字の処理をどうすっかなー?
07297212008/06/19(木) 06:20:06ID:???
未だにできない……orz

最初に5*4*3の60パターン出して、
重複した数字がある要素を削除すれば、
一瞬で答えは出せるんだけど、
ここまできたら、実際の動作と同じロジックで答えを出したい。
0730nobodyさん2008/06/19(木) 06:24:59ID:???
お手軽3分プログラミング

writeCombPats(array(), 0);

function writeCombPats($vals, $level) {
if ($level == 3) {
echo implode(',', $vals)."\n";
return;
}

for($i=($vals != null? max($vals)+1: 1); $i<=5; ++$i) {
if (in_array($i, $vals)) {
continue;
}

array_push($vals, $i);
writeCombPats($vals, $level+1);
array_pop($vals);
}
}
0731nobodyさん2008/06/19(木) 06:26:53ID:???
ヒント:combinationは有名すぎる問題
07327212008/06/19(木) 06:51:26ID:???
実際の動作と同じロジックで実現させたら、
結局、全パターン試すのと変わらんロジックになった。
無駄な時間だった……。
07337212008/06/19(木) 06:57:06ID:???
>>730-731
こういうのって、どこで勉強するの?
コンピュータサイエンスな教科書に載ってたりする?
それともアルゴリズム系の本に載ってるの?

ちょっと、この辺の基礎知識をたたき直したいんだけど、
お薦め本か何かあったら教えて。
07346982008/06/19(木) 11:57:19ID:???
>>699さん>>701さん>>702-703さん
期待通りに動かすことができました。
ありがとうございました。
0735nobodyさん2008/06/19(木) 14:19:08ID:r2xEipfy
ハッシュのキーに配列の値を入れたいんですが何か方法はありますか?
現状は
$test["$array[0][0]"] = "value"
としても上手く代入できないので
$key = $array[0][0]
$test["$key"] = "value"
とやっています。
0736nobodyさん2008/06/19(木) 14:21:11ID:???
$test[$array[0][0]] = "value";
0737nobodyさん2008/06/19(木) 14:41:44ID:???
ちなみに二重引用符の中で配列を使いたいときは{}で括る
つまり下記のようにすればいい
$test["${array[0][0]}"] = "value"
0738nobodyさん2008/06/19(木) 14:50:30ID:r2xEipfy
なるほど、わかりました
変数を使い場合とはまたちょっと扱い方が違うんですね
ありがとうございました
0739nobodyさん2008/06/19(木) 17:41:16ID:???
リファレンスは何がおすすめ?
0740nobodyさん2008/06/19(木) 17:45:00ID:???
chmのマニュアル。
結局、これ以外選択肢がない。
0741顔文字マニア2008/06/19(木) 19:27:59ID:???
2chの顔文字を探しているのですが
どこいけばありますか?
0742nobodyさん2008/06/19(木) 19:29:05ID:???
google
0743ぬるぽん2008/06/19(木) 19:31:12ID:887sfRZc
無料でレンタルサーバでセキュリティー上
『この鯖だけは絶対借りないほうがいい…』
という鯖があれば教えてください。
僕が今知っているのは
ABCOROTIという鯖です。
0744nobodyさん2008/06/19(木) 19:34:00ID:???
>>741,743 板違いだよ
0745nobodyさん2008/06/19(木) 19:33:59ID:AA/L6lsn
FWでよくルーティングに正規表現みるんですが、
/をSplitするんでは不十分なんでしょうか?
0746nobodyさん2008/06/19(木) 19:37:03ID:???
.htaccessとかでは正規表現だし
やっぱ正規表現の方が融通きくし
0747nobodyさん2008/06/19(木) 20:09:16ID:???
>>743
板違いな上に営業妨害なので氏んだほうがいいよ
0748nobodyさん2008/06/19(木) 23:27:40ID:ZPdLjFPP
linuxで、インストールされてるperlモジュール一覧をバージョンも一緒に知りたいんですが
そんな便利なことができるなら教えてくだせえ
0749nobodyさん2008/06/19(木) 23:28:43ID:???
ゴクリ・・
0750nobodyさん2008/06/19(木) 23:39:01ID:???
          ,;r'"´;;;;;;;;;;;;;;;;;;;;;;;;;;`ヽ、
         ,r'";;;;:::::;彡-=―-=:、;;;;;;ヽ、
        /;;ィ''"´  _,,,,....ニ、 ,.,_ `ヾ;;;;〉
         `i!:: ,rニ彡三=、' ゙''ニ≧=、!´  屋上へ行こうぜ・・・・・・
        r'ニヽ,   ( ・ソ,; (、・')  i'
         ll' '゙ ,;:'''"´~~,f_,,j  ヾ~`''ヾ.  久しぶりに・・・・・・
        ヽ) , :    ''" `ー''^ヘ   i!
        ll`7´    _,r''二ニヽ.     l  キレちまったよ・・・・・・
        !:::     ^''"''ー-=゙ゝ    リ
        l;:::      ヾ゙゙`^''フ    /
        人、      `゙’゙::.   イ
0751nobodyさん2008/06/19(木) 23:43:33ID:???
超初心者スレいけよ
0752nobodyさん2008/06/19(木) 23:46:53ID:ThD97MPb
質問1について、いろいろと調べましたが、
エクセルのcombin関数と同様のがなく、ユーザー関数でできることがわかりました。
そこで、下記スクリプトを作成し、実行してみましたが、上手いこと生きませんでした。
----------
<?PHP

$a = 5 ; //総数
$b = 3 ; //抜き取り数

$c = gmp_fact($a)/(gmp_fact($b) * gmp_fact($a -$b)) //組み合わせ数
print "$c" ;

?>
---------
gmp_fact()を利用するには、
Http://www.swox.com/gmp/からGMPライブラリをダウンロードしなければならないのですが接続できません。
どうしたら良いかわからず手詰まっておりますのでご教授いただきたくお願い申し上げます。
また、上記スクリプトであっているのか、
そして、ほかに良い方法があればお教えいただきたく重ねてお願い申し上げます。
0753nobodyさん2008/06/19(木) 23:57:47ID:???
セッションハンドラの中で例外を投げたら、
Fatal error: Exception thrown without a stack frame in Unknown on line 0
という謎のエラーが出ました
セッションハンドラの中で例外を投げてはいけないのでしょうか?
0754nobodyさん2008/06/20(金) 00:03:01ID:???
質問1は、単純に順列だから、5枚中3枚だったら、
(5*4*3) / (3*2*1) って、公式で出せるし、
質問2なんて、三本木法の関数さえ、そのまま書いてくれてんじゃん。


しかし、こういう基本知識のアルゴリズム仕入れる本、どこに売ってるんだよ。
『プログラマの数学』にスクリプト言語での説明はなかったぞ。
PHPじゃなくていいから、誰か基本アルゴリズム書の良書教えてくれ。
0755nobodyさん2008/06/20(金) 00:04:58ID:???
>>753
セッション保存先のアクセス権がないんじゃね?
0756nobodyさん2008/06/20(金) 00:22:52ID:???
>>754
教科書
0757nobodyさん2008/06/20(金) 00:25:50ID:???
>>756
だから何の教科書よ?w
基礎情報処理の教科書でいいの?
07586872008/06/20(金) 00:33:44ID:???
遅レスですが皆さんありがとうございました。
0759nobodyさん2008/06/20(金) 00:34:52ID:TZ4JDjmY
Windows XP, Apache2, PHP5.2.3 (xampp1.6.3a)でUTF-8環境下なのですが
preg_match('/[ぁ-ん]+/', $value);
としたところ、どうやら
”ー”や”・”等の記号にもマッチしてしまうようです。
(本当はひらがなだけにマッチして欲しい、、、これはこれで便利ですが。)

'/[ぁ-ん]+/'とした場合に混ざってしまう記号は他に何がありますか?
また、正確にひらがなだけマッチさせたい場合はどうすればよいのでしょうか?
0760nobodyさん2008/06/20(金) 00:34:58ID:USTunk61
データベースで名簿のテーブルから氏名を検索するようなものを書いています。
検索自体の処理はできて10件ずつ表示することまではできたのですが、Googleの
ようにページ数を 1 2 3 … と並べて表示するのに全体で何ページあるのかが検索
結果とは別に必要になりました。

通常の検索はSQLでlimitを使って10件だけ取得しているのですが、件数を取得するのに
もう一度同じようなSQLを書いてcount()でレコード数を計算するのはなんだか無駄なような
気がしています。一般的にはどのようにしているのでしょうか。結果取得と総件数を取得するのに
2回SQLを発行するよりも良い方法はありますか。

PHPとMySQLを使っています。宜しくお願いします。
0761nobodyさん2008/06/20(金) 00:47:22ID:???
PEAR::Pager
07627602008/06/20(金) 00:56:17ID:???
>>761
ありがとうございます。
さっそく調べてみましたが、使用する際に全体の件数と表示データがそれぞれ
必要になるので、やはりデータベースからの取得は2回行う必要があるようでした。

名簿テーブルは10万件以上あって、あまり何度も検索したくないです。。
世間には検索エンジンのようなものがいろいろあるのですが、全体の件数を取得しながら
表示するデータだけ抽出するようなことはどのようにやっているのかと疑問に思っています。
0763nobodyさん2008/06/20(金) 01:05:38ID:???
>>757
数学の教科書
0764nobodyさん2008/06/20(金) 01:06:02ID:tcY9xQFv
>>756
教科書を読むよりも、実践の中で自分の足らざる部分を見つけて、
それを補うためには何をしていいのか、その都度考える方が大事だよ。

かくいう私も、そのように実践してきた。
いつも、新しいことを要求されて、その度にそれに応えようと、
勉強してきました。

その甲斐もあって私は28ですが、一部上場のSIerを経て、
横浜の一角に事務所を構えるまでのIT企業の社長になりました。

ここまで書くと私のことを何がすごい超人的な人のように勘違いして
しまう方も多いと思いますが、私としてはただ自然に当たり前のことをやってきただけです。

毎日の積み重ねを大事にしていけば、きっと自分の描く未来像が現実のものとなって、
目の前に現れるでしょう。それまで、辛抱です。辛抱こそ肝要ですよ。
0765nobodyさん2008/06/20(金) 01:08:32ID:???
じゃその「勉強してきました」って何で勉強したの?
0766nobodyさん2008/06/20(金) 01:28:39ID:???
>>763
だから、俺は質問者じゃないんで
順列の処理や三本木法の概念は分かるんだ。
高校数学までだけどね。

ただ、そういうのを実際プログラムで書くには、
どうやって書けばいいのか、出てこない。
だから、実例が載っているようなそういう本が欲しいんだよね。
0767nobodyさん2008/06/20(金) 01:31:48ID:tcY9xQFv
>>765
それは血の滲むような努力です。
といっても、それでは答えになっていないので、掻い摘んでいうと、
勉強とは、教科書や参考書を解くことではないということです。

もちろん、何もわからない状態では何を始めたらいいのかわからないでしょうから、
そのときに、自分のレベル・ニーズに合う専門書を購入して、基礎的な学問体系を
頭の中に叩き込むというのは初期の学習では一応有用です。

しかし、専門書は言うなれば昔の業績の集約です。
一昔二昔前に出された学術研究の成果が本という形に集約して出版されているに過ぎません。

となれば、次は最新の技術動向やいかに実務につなげていくか応用学習をして
始めて社会に通用する力となっていくのです。
雑誌、セミナー、その専門分野の人に直接会っての問答、研究会の参加、勉強する方法はいくらでもあります。
0768nobodyさん2008/06/20(金) 01:44:55ID:???
>>767
そりゃあんたが歩んできた人生限定の話だろ
0769nobodyさん2008/06/20(金) 01:48:22ID:pWiBbCze
セッションIDを自前で生成する必要があります
十分一意性のあるIDを生成するにはどうしたらいいでしょうか?
サーバのIPアドレスとマイクロ時間をmd5するだけでも十分でしょうか?
0770nobodyさん2008/06/20(金) 02:01:42ID:tcY9xQFv
>>768
人を批判するだけでは、何も進歩はありませんよ。
それがあなたの趣向だというなら、これ以上申し上げませんが。
0771nobodyさん2008/06/20(金) 02:03:48ID:???
こんなスレで自分語り始める方が端からは異常に見えますよ
ネタですか?
0772nobodyさん2008/06/20(金) 02:04:15ID:???
結局。具体的な本の名前は誰も出してくれないの?
0773nobodyさん2008/06/20(金) 02:06:20ID:???
>>769
com_create_guid
0774nobodyさん2008/06/20(金) 02:08:13ID:???
>>762
MySQL限定でいいなら SQL_CALC_FOUND_ROWS でググるといい
0775nobodyさん2008/06/20(金) 02:29:59ID:???
昔はアルゴリズム辞典とかよく読んだけど、今はもっとマシな本がある気がする。
07767692008/06/20(金) 02:30:06ID:???
uniqidという関数がありました
これが使えそうです
ethnaでは、通信統計情報とプロセスidとマイクロ秒を使ってましたが
なぜ、uniqidを使ってないのでしょう?
>>773
なんでwindows用ですか?
0777nobodyさん2008/06/20(金) 08:26:59ID:???
md5(uniqid(rand(), true)));
0778nobodyさん2008/06/20(金) 10:18:18ID:???
PHPの基本演算と公式の意味がわかってれば本なんていらないだろ。
ソースを丸写しにしないとなにもできないゆとりはプログラムに向いてない。
0779nobodyさん2008/06/20(金) 10:30:54ID:???
>>778
その程度の頭しか使わないシステムしか作ってこなかった中小のPGですか?
0780nobodyさん2008/06/20(金) 10:35:42ID:AZS/SHCF
文字列変数にスペースで区切った文字列がいくつか入っています。
文字列をスペースまでで判断し、文字数を調べるプログラムを作りたいです。いい方法があればヒントだけでも教えていただけたいです。
0781nobodyさん2008/06/20(金) 10:37:45ID:???
split して strlen したら?
0782nobodyさん2008/06/20(金) 12:09:28ID:???
create_functionにglobalでグローバル変数を読み込ませると、
可読性が一気に落ちるんですが、
何とか対処する方法ありませんか?
0783nobodyさん2008/06/20(金) 12:19:14ID:???
>>766
概念分かってればコード浮かぶだろ・・
分かってるつもりになってるだけじゃないの?
0784nobodyさん2008/06/20(金) 15:23:14ID:ONqtinSE
print preg_replace( '|(D)D+|', '$1', 'ABCDDDD' );
結果: ABCD

print preg_replace( '|[^X](/)/+|', '$1', 'ABCDDDD' );
結果: ABD

ええええええええええ?!
普通最初と同じようにABCDになると思うんだけど。

[^X] のせいなのは分かってるけど、
なんでC(マッチ文字列の直前の一文字)まで消えるの?
※ X は何でもいい。除外キーワードを使うと発生する。

バグ? 書き方おかしい?
07857842008/06/20(金) 15:24:15ID:ONqtinSE
訂正
print preg_replace( '|(D)D+|', '$1', 'ABCDDDD' );
結果: ABCD

print preg_replace( '|[^X](D)D+|', '$1', 'ABCDDDD' );
結果: ABD
0786nobodyさん2008/06/20(金) 15:31:35ID:j50/p+uL
クエリにキーを入れて$_GET[]で取得するPHPを作成していますが、
〜hoge.php?key=NOMIKONDEBOKUNOEKUSUKARIBA-
のように大文字を使っても良いのでしょうか?
0787nobodyさん2008/06/20(金) 15:33:55ID:???
>>785
1つめ、DDDDにマッチ→それをDに置き換え→ABCD
2つめ、CDDDDにマッチ→それをDに置き換え→ABD
だろ。
2つ目はX以外の1文字、D1文字、D1文字以上の連続の組み合わせだからCDDDDにマッチ
0788nobodyさん2008/06/20(金) 15:34:49ID:???
>>785

$0 = CDDDD
$1 = D
じゃないの?
0789nobodyさん2008/06/20(金) 15:37:39ID:???
>>786
オッケー
0790nobodyさん2008/06/20(金) 15:43:40ID:???
>>787-788
そっか。そうだよね。
冷静に考えてみたら、俺が間違ってた。
元はURLを対象にしてたんだけど、
print preg_replace( '|[^https?://](/)/+|', '$1', 'http://example.com//foo///bar.html' );
結果:http://example.co/fo/bar.html

これをhttp://example.com/foo/bar.htmlにしたいんだ。
って、スレ違いかな……?
0791nobodyさん2008/06/20(金) 16:03:01ID:???
>>790
echo preg_replace("|([^:/]{1})/+|", '$1/', 'http://example.com//foo///bar.html');
0792nobodyさん2008/06/20(金) 16:15:48ID:???
>>791
完璧です! ありがとう!
/をパターンに含む必要なんてなかったんだ。頭いい。つか、俺頭悪いorz
オライリーのやつ買うかなぁ……。
07937862008/06/20(金) 16:21:33ID:???
>>789
ありがとう
クエリに日本語を入れるとfirefoxでは使えないのね
07947922008/06/20(金) 16:24:22ID:ONqtinSE
print preg_replace("|([^:/]{1})/+|", '$1/', 'http:////');
結果: :////

う〜ん……?
http:// になると思うんだけどなぁ?

さすがに、スレ違いですので、ちょっと自分で考えてみます。
>>791さん、本当ありがとう。
0795nobodyさん2008/06/20(金) 16:25:12ID:???
>>793
URLエンコードされてるだけで、使えてるだろ
07967922008/06/20(金) 16:25:46ID:???
あ、結果: http://// ですね。
ちょっとテンパってて間違いばかりしてます。
すいませんです。
0797nobodyさん2008/06/20(金) 19:36:21ID:???
>>796
正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/

が詳しいと思われる。
07987592008/06/20(金) 20:15:44ID:TZ4JDjmY
誰か誰か
0799nobodyさん2008/06/20(金) 20:26:29ID:???
>>798
いやらしい質問禁止
0800nobodyさん2008/06/20(金) 20:28:53ID:???
>>798
バカ正直に全部並べるとか
0801nobodyさん2008/06/20(金) 20:57:41ID:???
>>798
ttp://code.nanigac.com/source/wiki/view/498
全て全角ひらがなか?(UTF-8)のとこ

ちなみにそれは長音とかも除外になってるけどいいのかな?
08027592008/06/21(土) 02:03:52ID:uExffoGD
>>799-801
ありがとうございます
長音除外OKです
0803nobodyさん2008/06/21(土) 12:52:26ID:13aabwEx
プログラム的な質問じゃないんですが、firefox3を入れたところ、
これまで正常に動いていたページの出力処理が途中で終わってしまうようになりました。
(カレンダーの生成がされないなど。また、読み込み処理にやたら時間がかかります→ページ遷移が遅くなった)
error.logにエラーとして出力はされてないので、プログラムの問題ではないのかなと思ってるんですが…
似たような人いますか? 何が原因と考えられるでしょう?
0804nobodyさん2008/06/21(土) 12:57:41ID:???
ブラウザによって出力内容が変わるようにしてるの?
してないのならブラウザの解釈の問題じゃないの
0805nobodyさん2008/06/21(土) 13:12:41ID:???
なんでわざわざPHPスレで質問するのか
08068032008/06/21(土) 13:14:16ID:13aabwEx
>>804
ブラウザごとの出力変更はしてません。やはりFx3の問題でしょうか
IEとsafariで確認したら、今までどおりサクサク動いています
とりあえず気にせず作業します、ありがとう

あと、Fx3ですがファイルのアップロードフィールドに一度選択されたファイルは
backspaceやdeleteで消せなくなってます。ページリロードしないと空欄に戻せません。
自前でクリアボタンを用意する必要があります。結構大問題です
皆さん気をつけてください
08078032008/06/21(土) 13:15:54ID:???
>>805
phpとFx3の相性みたいなものがあるのかと思ったので
phpで開発してるのにperlスレで聞いてもしかたないですから 失礼しました
0808nobodyさん2008/06/21(土) 13:52:18ID:???
>>807
そのPHPの出力結果をIEで取得して、ソースをローカルに保存して、Firefox3で開いたらちゃんと表示されんのかね。
それで表示されないんだったら、HTMLの解釈の問題なんじゃない。
表示されるようなら、送出してるheaderがしょっぱいとかそういう話?
0809nobodyさん2008/06/21(土) 14:11:20ID:???
Firebugでも入れて確認したら。
1.1beta か、1.2alpha なら Firefox3 でも動作するらしいし。
08108032008/06/21(土) 14:47:40ID:???
>>808
どうもです Fx2で動かしてたときはサクサク動いてたんです
ということは、headerの問題ではないのかな、と。
>>809
よくわからないですが、それ入れてみます>Firebug
ありがとうございました
0811nobodyさん2008/06/21(土) 14:57:52ID:???
>>810
ごめん、>>808で言いたかったのは、
正常に表示されたときの出力結果(つまりプレーンなHTML)を一度保存して、
HTMLファイルとしてFx3で表示したら、HTMLは表示されるのかな?ってこと。
ソレが表示されないんだったら、HTMLの記述自体がぽしゃってるんじゃないかと。
08128032008/06/21(土) 15:03:49ID:???
>>811
それは大丈夫でした ほんとにいろいろご意見ありがとう
0813nobodyさん2008/06/21(土) 15:23:24ID:???
>>812
ページ中にJavaScript使ってるならだけど、JavaScriptでこけてるっていう可能性は?
PHPは、サーバで処理した出力結果をブラウザに返してるわけだし、
PHPでのエラーって言うのも考えづらいかなぁと思うんだけど。
Fx3でHTTPヘッダの解釈が変わってたら、header関数で吐いてるheaderが上手く読み取られてないという可能性もありそうな。

http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/030livehttp.html
Fx3で使えるか分からないけど、これで送出されるヘッダ確認できるっぽいけど。

これもまた見当違いかなー。

0814nobodyさん2008/06/21(土) 15:51:54ID:???
スレタイ読めとくそども
0815nobodyさん2008/06/21(土) 18:58:12ID:???
MagpieRSSで特定の先頭の文字を含むタイトルだけ除外ってできますか
0816nobodyさん2008/06/21(土) 19:24:40ID:owHyGhA6
PHP5+Smartyです。
Smartyスレ確認したんですけど隔離スレになってるのでこちらで助けてください。。

index.tpl内で外部サイトにおいてある css やら js をリンクするHTMLを書いてるのですが
実際に出力されるhtmlを見ると「http://」が外れてしまいます。

<script ... src="http://example.com/ex.js">

<script ... src="example.com/ex.js">

http:// が外れないようにするにはどうしたらいいのでしょうか。
{literal} で囲ったりもしてみたのですがダメでした。
0817nobodyさん2008/06/21(土) 20:00:06ID:???
どう書いてるんだよw
0818nobodyさん2008/06/21(土) 20:11:08ID:???
普通外れないから
変なフィルタプラグインでも呼んでるんじゃねえか?
0819nobodyさん2008/06/21(土) 20:43:11ID:???
こわいおガクガク
0820nobodyさん2008/06/21(土) 21:26:25ID:???
>>816
SmartyはPHP4で書かれているので、PHP4環境でしかまともにテストしていません。だから何か不具合があっても諦めてください。
0821nobodyさん2008/06/21(土) 21:51:51ID:???
んなわけないだろアホw
08228162008/06/21(土) 21:59:21ID:owHyGhA6
>>817,818,820
サンクスです。
恥ずかしながら818さんがビンゴでした。
自分で "http://" を "" に置換するアウトプットフィルタ書いてました orz

今日半日くらい潰しました。ありがとうございます。。
0823nobodyさん2008/06/21(土) 22:00:21ID:???
なんでそんなこと忘れるんだ?
0824nobodyさん2008/06/21(土) 22:35:08ID:???
NGワード機能みたいな感じでいろいろ登録してまして・・
なんとなくYUI使ってみようかとやってみたらハマッたわけなのです。
0825nobodyさん2008/06/21(土) 22:47:50ID:???
俺もYUIちゃん使いたいなぁ(性的な意味合いで)
0826nobodyさん2008/06/22(日) 00:32:52ID:LpK23FuM
同一IPはノーカウントや、アクセス解析などは一切不要、ログ保存は欲しいな。

ってレベルの、携帯で表示できるphpのアクセスカウンタについて勉強して
作ってみようかなと思っているのですが参考になるサイトまたはスクリプトを知りませんか?
ググッてはみているのですが、知識があまりないので
色々多機能なスクリプトを見ても激しく処理落ちしてしまうんででででででd

0827nobodyさん2008/06/22(日) 00:54:46ID:???
人のコピーしても何も上達しないと思うけど
0828nobodyさん2008/06/22(日) 01:16:24ID:kUNjCWuS
UTF-8@Linux、PHP5で使ってます。
<?PHP
$a="あ";
echo $a . " ";
echo escapeshellarg($a);
?>

PHP5.2.4で上のようなコードを実行すると、
あ 'あ' のように想定通りの出力が得られるのですが
PHP5.2.6(yumでアップデート)では、
あ '' という出力になり、escapeshellargが
上手く動いてくれないようです。どうしたらよいでしょうか?
08298262008/06/22(日) 01:53:59ID:LpK23FuM
>>827
とりあえず一通りの処理の仕組みを理解したいんですよ。
送る→受け取る→表示させる。くらいしかまだわからないので…
なんでカウントできんの?って感じなんです。
0830nobodyさん2008/06/22(日) 02:16:52ID:G75vU74G
>なんでカウントできんの?
http://www.e-and-a.ws/06/093.asp

つーかあなたはこっち
http://pc11.2ch.net/test/read.cgi/php/1213356756/l50
0831nobodyさん2008/06/22(日) 02:40:53ID:LpK23FuM
>>830
申し訳ない。
逝ってきます…
0832nobodyさん2008/06/22(日) 11:33:03ID:???
ファイル出力してそれをメモ帳で見たとき
改行されているようにするには何をつければよいでしょうか?
\nではメモ帳では改行されません(他のエディタなら改行されてます)
よろしくお願いします
0833nobodyさん2008/06/22(日) 11:39:05ID:???
>>832
\r
0834nobodyさん2008/06/22(日) 12:26:05ID:???
\r\n
0835nobodyさん2008/06/22(日) 14:50:21ID:v+r8Rhil
mod_rewriteを使って、

http://example.net/test/test
とアクセスすれば、
http://example.net/test/test.(testから始まる拡張子で)にアクセスされるようにしたいです。

http://example.net/test/test.cgiがあれば
http://example.net/test/testにアクセスしたら
http://example.net/test/test.cgiが表示されるというようにです。

こう考えましたが動きませんでした。


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ (.*).(.*) [L]
0836nobodyさん2008/06/22(日) 14:57:03ID:???
日本語で頼む
あとここはPHPスレだから、mod_rewriteはスレ違い
0837nobodyさん2008/06/22(日) 15:32:36ID:???
>RewriteRule ^(.*)$ (.*).(.*) [L]
パネェwww
08388322008/06/22(日) 17:05:07ID:???
>>833,>>834
ありがとうございます

\r や \r\n でも駄目でした

やはり無理なのでしょうか
0839nobodyさん2008/06/22(日) 17:06:54ID:???
やはりって何だよw
0840nobodyさん2008/06/22(日) 19:01:41ID:???
>>838
メモ帳はWindowsの改行コードでしか開けない
他の多くのエディタは改行コードを見て自動判別して開く
それだけの違い
メモ帳がしょぼいということなので諦めろ
どうしてもっていうならサーバOSをWindowsにしろ
0841nobodyさん2008/06/22(日) 19:21:43ID:???
\r\nでダメってことはコードの書き方に問題があるんじゃないのか
0842nobodyさん2008/06/22(日) 20:46:29ID:???
>>838
どうダメなの?
0843nobodyさん2008/06/22(日) 21:00:27ID:???
>>838が真面目に取り組まないところがダメ
0844nobodyさん2008/06/22(日) 22:56:04ID:???
文字コード:Shift-JIS
改行コード:\r\n

これで、メモ帳で正常に出力される。必ず。
つまり、どこかに落ち度があるってことだ。
0845nobodyさん2008/06/23(月) 02:12:57ID:wqaDeiWn
質問させて下さい。

require_onceでファイルを読み込む場合に
そのファイルがあるかどうか判断する方法を探しています。
file_existsだとインクルードパスを考慮してくれないので
それ以外の方法でないでしょうか?

何故このような質問をしたのかというと、
PHP5の__autoloadを使って動的にファイルを読み込む際に、
拡張子が2パターンある為、無ければこっちの拡張子という
分岐が発生するためです。

0846nobodyさん2008/06/23(月) 02:18:58ID:???
答えになってなくて申し訳ないけど
なんでそんな処理をする必要があるのか解らないな
0847nobodyさん2008/06/23(月) 02:19:48ID:???
すまん。ちゃんとスクロールできてなくて

>何故このような質問をしたのかというと、
から読めてなかったww
0848nobodyさん2008/06/23(月) 02:58:20ID:???
if (file_exists()){
require_once();
}
ってやるしかないんでないの?
0849nobodyさん2008/06/23(月) 03:03:57ID:???
ベタだけど、get_include_path()でパスを拾い自力で探索したらどうだろうか。
0850nobodyさん2008/06/23(月) 04:11:57ID:PQglpgve
質問です
POSTするデータって最大何文字とかありますか?
ページAからページBに送られたPOSTデータを、そのまま配列にして
一つの値として次のページに渡したいと思ってます
0851nobodyさん2008/06/23(月) 04:20:48ID:???
気にせず送れ
0852nobodyさん2008/06/23(月) 04:40:50ID:uq5ou2cM
PHPでHTMLを動的生成させており、外部のJavaScriptファイルを
ヘッダで読み込んでいるのですが、その外部JavaScriptのソースを
HTMLを吐きださせているPHP側から制御したいと考えています。

今は外部JavaScriptのソースを呼び出す時に、

JavaScript.php?val1=hoge&val2=hoge

の様にしてURLから変数を渡しているのですが、出来ればURLからの変数受け渡しは避けたいと考えています。
HTML側に直接JavaScriptソースを書き込む以外に、URLからの変数受け渡しを避ける方法は何かありませんでしょうか?

宜しくお願いします。
0853nobodyさん2008/06/23(月) 05:03:48ID:???
なんで避けたいの?
0854nobodyさん2008/06/23(月) 05:39:37ID:???
>>853
偽装されるからに決まっているだろ。
お前は、インジェクションとかサニタイジングって言葉すら知らないニートか前科者だろ?www
0855nobodyさん2008/06/23(月) 05:44:29ID:???
なんで避けたいの?
0856nobodyさん2008/06/23(月) 05:47:54ID:???
JavaScriptで変数渡せないか
0857nobodyさん2008/06/23(月) 05:55:28ID:???
めんどくせーもん作ってるな
JavaScript.phpはval1の値によって違うJavaScriptになるっていうことなのか。
サニタイズはURL避けてもじゃなくてもやっとくことじゃね。
0858nobodyさん2008/06/23(月) 06:04:57ID:???
>>854
そんなの内部で適切に処理すればいい。
0859nobodyさん2008/06/23(月) 06:12:55ID:???
>>858
毒は内部になるべく入らないようにするのがシステム屋として当然の思考。
初めから、毒を入れる前提で作るってどういう設計思想なのか?
0860nobodyさん2008/06/23(月) 06:17:49ID:???
×毒を入れる前提
○毒が入る前提

クライアント側は任意のURLを入力できるんだから毒が入る前提で考えるほうが現実的だろ。
859の当然と言い切る自信はどこから来てるのか謎だ。
0861nobodyさん2008/06/23(月) 06:20:35ID:???
POSTって誰も言わないのは、あえて?

単純にアウトプットの問題であって、
アウトプットを元PHPにそのまま読み込ませてるってだけ。
なら、普通にGETがイヤならPOSTでやれば?

たまたまそういう用途に使ってるってだけで、
別にこの件、JavaScriptは全く関係ないよね。

セキュリティ? それ以前のお話だろ?
0862nobodyさん2008/06/23(月) 06:21:34ID:???
別のサイトにあるJavaScriptとかだとうまくいかないらしいが
<script>
var val1="hoge"
var val2="hoge"
</script>
<script type="text/javascript" src="sample .js"></script>
</head>
で、sample.jsのJavaScriptからval1を使える。

インジェクションってSQLインジェクション?
JavaScript.phpがDBとか使って毎回違うJavaScriptを動的に生成しているの?
俺には分かりません。
セッションみたいなこととかかな?
0863nobodyさん2008/06/23(月) 06:26:36ID:???
>>861
POSTさせる方法を俺は知らないので言いませんでした。
0864nobodyさん2008/06/23(月) 06:26:37ID:???
なんでインジェクションっていうだけでSQLに直結するの?
0865nobodyさん2008/06/23(月) 06:30:02ID:???
JavaScript.phpが
val1やval2の値以外も動的に変わるJavaScriptとかDBにアクセスる必要あるとかなら
HTML側に直接JavaScriptソースを書き込めばいいよ。
0866nobodyさん2008/06/23(月) 06:32:10ID:???
>>859
残念ながら毒が100%入らないシステムは不可能なのだよ。
>>861
POSTでどうやって読み込ませると?
0867nobodyさん2008/06/23(月) 06:33:26ID:???
直結していたら聞かないよ。
0868nobodyさん2008/06/23(月) 06:35:40ID:???
>>859
かなりレベル低いなオイ
0869nobodyさん2008/06/23(月) 06:39:00ID:???
>>866
GETで受け取れてるのにどうしてPOSTでは受け取れないの?

ねえバカなの?
0870859 2008/06/23(月) 06:42:21ID:???
お前らは技術云々の前に、日本語の読解力も何も典型的な理系馬鹿だな。

俺は、「毒は内部になるべく入らないようにする」と主張しただけで、
誰も、毒が入らない前提で作れなんていってないだろ。

始めから、脆弱性が分かっている仕組みを作るな、といっているのに、
毒が入らないシステムを作れ、なんて一言も言ってないぞ。

俺が「毒を入れる前提で作るな」と書いたのが、
「毒が入らないシステム前提で作るな」と勝手な脳内変換されて馬鹿なレスが続いて吹いたww
0871nobodyさん2008/06/23(月) 06:42:26ID:???
>>869
じゃコード書いてみ
0872nobodyさん2008/06/23(月) 06:43:04ID:???
>>870
レベルひっくw
0873nobodyさん2008/06/23(月) 06:44:51ID:???
>>870
お前が858の意味を取り間違えていたのはどうなんだw
0874nobodyさん2008/06/23(月) 06:48:48ID:???
なんで煽り合うのが好きな人がいるの?
それは仕方のないことなのか。
0875nobodyさん2008/06/23(月) 06:49:03ID:???
>>871
バカの相手疲れる。

function stringPost(){
var form=document.getElementById(form_id);
var postString=form.text.value;
postString=encodeURIComponent(postString);
var obj=XMLRequest();
obj.onreadystatechange = function(){
if (obj.readyState == 4 && obj.status == 200){
req=obj.responseText;
//hogehoge
}
}
var URL='responseURL';
obj.open("POST",URL,true);
obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
obj.send('string='+postString);
}
0876nobodyさん2008/06/23(月) 06:59:48ID:???
俺には難しくてなんだかわからん
0877nobodyさん2008/06/23(月) 07:04:29ID:???
つか、外部JavaScriptをPHPで書き出すのが一番低コストじゃね?とか思ったけど、
どうせAdsenseなんだろ。
0878nobodyさん2008/06/23(月) 07:28:46ID:???
>>875
疲れると言い訳しつつも口を出さずにいられない小心者乙www
0879nobodyさん2008/06/23(月) 07:31:51ID:???
結局、PHPスレにも関わらず、ソースごと回答してるんだから、
煽ってる奴に比較すれば遙かにまとも。無知を棚にあげて恥ずかしくないの?
0880nobodyさん2008/06/23(月) 07:39:56ID:???
>>875
屁理屈だけが得意って感じだね
JavaScript使えばPOSTできるのは当たり前でしょw
それが>>852に対して提示する解決方法なの?

信じられないんだけどww

あと、課金者はsageてる人のIDも見えるから
そこんとこ宜しくねww
0881fushianasan2008/06/23(月) 07:50:54ID:???
>>880
可哀想だからそんなにムリしなくてもいいんだよ。
ほら、リモホくらい見せてやるから。
さすがに痛々しいわ……w
0882pl655.nas957.p-tokyo.nttpc.ne.jp2008/06/23(月) 07:51:29ID:???
あー、hいらねーのか。
08838802008/06/23(月) 07:57:23ID:???
>>881
勘違いしているようだけど、
俺は今までお前を煽ってた奴じゃないよ?

あと、ホスト名なんか晒して何がしたいの?
08848802008/06/23(月) 07:58:51ID:???
で、>>880に対するご意見は?w
痛々しいとか言うだけじゃなくてマトモに言い返してみせてよ。
>>852への解決方法がAjaxでPOSTしろなんて
ギャグとしか思えないんだけどww

他には浮かばなかったの?
0885nobodyさん2008/06/23(月) 08:06:21ID:???
>>875
これ使ってinnerHTMLみたいにしてJavaScript呼べるよってことなのかな?
0886nobodyさん2008/06/23(月) 08:21:27ID:???
>>880
これ最後ね。
ちょうど、Djangoでハマッて現実逃避してるとこだしなw

>あと、課金者はsageてる人のIDも見えるから
こういうのが無様なんだよ。やめようぜ。
何の課金だよw ●か? 株か? モリタポか? 言ってみてくれよ。

自分の知識を前提として、世の中を捉えてると、
視野が狭いどころじゃない、いずれ苦痛を味わうハメになる。
それをゆっくり理解していってくれ。

>JavaScript使えばPOSTできるのは当たり前でしょw
それができないと強く主張する奴に対して、「できるよ」と伝えた。
そして、どうしてもできないと言い張る奴に対して具体例を見せた。
それだけの話だよ。理路整然としていると思うけど。

>それが>>852に対して提示する解決方法なの?
仮に、外部JavaScriptが自分で書き出せる範囲なら、
PHPで書き出す処理に作り替えればいいだけだし、
上記の環境が不可能かどうかすら書いていないから、
それに対して、より具体的な回答はムリだよね? 分かるよね?

ただ「JSでGETで受け渡すのイヤだ」という要望に対して、
「じゃ、POSTでやれば?」は、まっとうな回答でしょ?

より、具体的な環境と要望を示してくれれば、
それに対して、より適切な回答を用意するのも構わないけどね。

>>852への解決方法がAjaxでPOSTしろなんて
んなこと言ってないよw
受け渡しが目的なのに、Ajax側でPOSTしてどうすんだよw
0887nobodyさん2008/06/23(月) 09:05:39ID:???
SESSION使うのが一番楽な気がするが・・・
0888nobodyさん2008/06/23(月) 09:14:50ID:???
三行でまとめてくれ
0889nobodyさん2008/06/23(月) 09:15:23ID:???
出た!
セッション万能主義者。

完全な思考停止状態。

もう少し、質問者の仕様を理解してから言えよ
08908872008/06/23(月) 09:37:48ID:???
>>875
ajax使ってもpostString書き換えたら一緒だろ

>>889
セッション嫌いな方なんですね

つーか>>852の情報だけでやるなら
>>862>>865の方法がシンプルなわけだが
そもそもjavascriptファイルを動的に吐かなきゃできないってのは
ちゃんとロジックを分離できてないだけだろ
0891nobodyさん2008/06/23(月) 10:00:09ID:???
>>890
俺がセッションが嫌い理由を少しだけ教えてやるか。
セッションのデータは、セッションファイルに書き込まれる。
つまりファイル処理が発生するわけだが、
ページのリクエストが短い時間で接続されると、
前のリクエストのセッションが書き終わっていない前に、
古いセッションデータが読み込まれて大変なことになる。

そうなる頻度は、環境にもよるが10万回のうち3件前後。
弱小サイト運営しているやつには分からんだろうが、
一日数十万件のアクセスがあるサイトは、無視できなくなる。
0892nobodyさん2008/06/23(月) 10:01:40ID:???
>>886
ずいぶん顔真っ赤ですねww
だれも読まない文章乙
0893nobodyさん2008/06/23(月) 10:13:15ID:???
>>891
ファイルベースでやるとそうなるね
0894nobodyさん2008/06/23(月) 10:27:06ID:???
memcachedとDBでセッション管理している俺には関係ねぇ
0895nobodyさん2008/06/23(月) 10:36:29ID:???
HTMLにコメントでJS用変数を直書きしておいて
(<!-- 1,2,3,4,5 -->とか)
それを呼び出したJSで取り出して使うってのはどう?
0896nobodyさん2008/06/23(月) 16:13:57ID:???
興味あるやつ見てってくれや
http://sugo69.adjt.jp/?a=intro&s=533045
0897nobodyさん2008/06/23(月) 16:18:14ID:???
>>894
>memcachedとDBでセッション管理している俺には関係ねぇ

どういう管理をしているのか分からないけど、
セッション管理に、memcachedを使うのはよくない。

アクセスが急増したりセッションに入れるデータが増えていくと、
急速にメモリーを食うようになる。それにメモリーの使用の予測がつかない。

やるならDBだと思うよ。
0898nobodyさん2008/06/23(月) 16:27:48ID:0IlltlK0
session_start()を使いログインしてるかどうか判断するとき、
ログインしていない人までファイルが作られてしまうので、
先にクッキーにセッションIDがあるかどうか調べてからsession_start()するようにしているのですが、
これって意味のある行為でしょうか?

ファイルが作られる分の無駄な処理を減らしたいと思ってしているのですが。
08998522008/06/23(月) 16:45:14ID:???
>>852です。
自分の質問でスレが荒れてしまったようで申し訳ないです。

URLからの受け渡しを避けたい理由はセキュリティ的な面と、
XHTML1.0TransitionalでURLから変数を渡そうとするとValidaterにぶーぶー文句言われるからです。
一応サニタイズはしていますが、ソースの美観の問題で工夫次第で避けられるなら避けたいなと。
JavaScript.phpに変数を渡して、それに応じてPHPで吐きだしたJavaScriptコードでDOMをいじらせたいんです。

>>862>>865
保守性の面で、JavaScriptはHTMLソースから完全に分離して管理したいこともあって、
js呼び出しに直書きJavaScriptを使うのはちょっと微妙です。

>>861
JavaScript経由無しでHTMLヘッダからPOSTって投げられるんでしょうか?

>>877
JavaScript.phpの内容はPHPで書き出しているんですが

>>887
セッションについては少し調べてみます。

>>895
HTMLコメントって外部JSから拾えるんでしょうか
0900nobodyさん2008/06/23(月) 17:28:23ID:???
PHPを独学で学んでいます。PHPの絵本を読み、次に少し難易度の高い本を読み、PEARの本を読みました。
掲示板やアンケート、ショップの記入欄とかは、なんとか作れそうです。
このレベル、もしくは少し上のレベルのプログラムのサンプルが
解説つきでたくさん載っている、実践的な教本があれば教えていただきたいのです。

よろしくお願いします。
0901nobodyさん2008/06/23(月) 17:32:15ID:???
追記です。近くの書店では、あまりに初歩的なサンプル集しかありません。アマゾン等では内容を把握できませんので、是非ともアドバイスを頂きたい次第です。
0902nobodyさん2008/06/23(月) 17:39:19ID:???
>>900
PHP関連の書籍 第6版
http://pc11.2ch.net/test/read.cgi/php/1213919075/
0903nobodyさん2008/06/23(月) 17:42:21ID:???
ありがとうございます。
すいませんでした。
0904nobodyさん2008/06/23(月) 19:03:04ID:???
Cent上でPHP4.4.7を動かしていたのですが
次のプロジェクトでSQLSERVERに接続する必要が出て
再コンパイルが必要ということに行き着いたのですが、今までやったことが無く
いまいち実態がつかめていません。
php.iniやその他各種設定は保持されたままなのかといった、事後の影響が
どう出てしまうのか想像できず、怖くて踏み切れない状態です。

このあたりのことを詳細に解説してくれるようなサイトや書籍等はございますでしょうか。
0905nobodyさん2008/06/23(月) 19:48:30ID:???
>>862は駄目で
>>895は見込みありなのか
キビシーな
0906nobodyさん2008/06/23(月) 19:55:18ID:???
>>899
>JavaScript経由無しでHTMLヘッダからPOSTって投げられるんでしょうか?
当たり前でしょ(;^ω^)

>JavaScript.phpの内容はPHPで書き出しているんですが
だから、Javascript.phpじゃなくて、外部jsそのものをPHP化できないの?って言ってる。
そしたらPHP間の通信だから、何でもできるだろ。
PHP→JSだとPOST受け渡しにAJAX使ったり多少技術力が必要になる局面もある。

つか、なんでも聞く前に調べろよ。



>>900
>>902は全く参考にならん。クソスレ。
はっきり言って要望の良書は少ない。
とりあえず、スーパーサンプルと活用編の2冊買えばいいんじゃね?
正直、PHPは簡単だから、わざわざ本買わなくても、
配布されてるやつをマニュアル片手に読み解けば、
半月でそれなりにはなれる。



>>904
なんで再コンパイルが必要なの?
php.iniの修正くらいで、普通、必要ないよ。
0907nobodyさん2008/06/23(月) 19:56:26ID:???
お前は害悪だから黙ってろ
0908nobodyさん2008/06/23(月) 20:09:20ID:???
>>902
そのスレをすすめるのは単なる嫌がらせとしか思えない
09098522008/06/23(月) 20:32:19ID:???
>>906
> だから、Javascript.phpじゃなくて、外部jsそのものをPHP化できないの?って言ってる。
> そしたらPHP間の通信だから、何でもできるだろ。

説明に誤解があったようですが、外部jsそのものをPHP化しています。
その「何でも」を伺いたいです。

宜しくお願い致します。
0910nobodyさん2008/06/23(月) 20:33:29ID:???
とりあえず852は1読めや
0911age2008/06/23(月) 20:37:48ID:DyP7tiX7
PHP4.4
PHPというよか正規表現の質問になってしまうかもですが
次のコードの出力が「aaa777aaaa」になります。
自分の予想だと「aaa777aaaa888」になると思ったのですが…。
888が入らないは正常でしょうか?


$string='11aaa1222333444555666777aaaa888';
$pattern = '/(a*)(.*?)(7*)/';
$replacement = '${1}${3}';
echo preg_replace($pattern, $replacement, $string);
0912nobodyさん2008/06/23(月) 20:39:37ID:???
Javascript.phpはtext/javascriptを書き出してるだけなの?
なら、本当に何でもできるじゃん。POSTだろうが、他のあらゆる手段だろうが。
それとも、呼び出し側は静的なHTMLファイルなの?
なら、呼び出し側もPHPにしちゃえば?
0913nobodyさん2008/06/23(月) 20:51:55ID:???
>>852
とりあえず、jsのおいてあるディレクトリに、mod_rewriteで、書き換えるようにするのは?

<script type="text/javascript" src="hoge_hoge.js"></script>


.htaccessの中身-------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.+?)_(.+?)\.js js.php?val1=$1&val2=$2 [L]
</IfModule>


とか。そんな感じで。
0914nobodyさん2008/06/23(月) 20:57:59ID:???
>>911
888は(a*)(.*?)の$2に引っ掛かってるんだろたぶん
$2見てみればいいじゃん。
0915nobodyさん2008/06/23(月) 21:18:08ID:???
>>911
preg_replaceは、その正規表現にマッチする全てを置換するので、
何個も複合して、置換繰り返してると思われる。

preg_match_all($pattern, $string, $r);
echo "<pre>";
print_r($r);
echo "</pre>";

を見てみれば、なにやら不穏なことになっているのが分かると思う。
0916nobodyさん2008/06/24(火) 00:01:36ID:xMpVBPQk
質問します、配列の中で、任意のキーの位置を知りたいです
どうしたらいいでしょうか?

$testAry = array('dog'=>5, 'cat'=>10, 'rat'=>15);
となっているとして、'dog'の位置(0)を返す方法を考えてます
調べたんですが一発で引き出せる関数があるんでしょうか?
なかったらどうしたらいいでしょう。キーはユニークです、重複しません。
アドバイスお願いします。
0917nobodyさん2008/06/24(火) 00:15:21ID:???
'dog'に位置なんてありません。
0918nobodyさん2008/06/24(火) 00:22:50ID:???
>キーはユニークです、重複しません。
当 た り 前 だ w w w

array_search('dog', array_keys( $testAry ) );
09199162008/06/24(火) 00:54:44ID:xMpVBPQk
>>917
どういうことですか?
>>918
ありがとうございました 助かりました
0920nobodyさん2008/06/24(火) 03:33:24ID:???
>>919
分かりやすく書くと

$testAry = array();
$testAry['dog'] = 5;
$testAry['dog'] = 10;

print $testAry['dog']; // 10
0921nobodyさん2008/06/24(火) 03:35:28ID:???
いや分かんないそれw
0922nobodyさん2008/06/24(火) 05:37:00ID:???
KEYを通常の配列に置き換えて考えてみればいい。
$array[0] = 1 と、$array[0] = 5 は共存しない。
当たり前だよね。連想配列のKEYというのは、数字の添え字を文字に置き換えただけ。

つまり、上記と同様に、
$array['dog'] = 1 と、$array['dog'] = 5 は共存しない。

正直、>>919レベルの質問は初心者スレに書いてくれと毎回思う。
はっきり言うけど、邪魔。ちなみに俺は、>>918
0923nobodyさん2008/06/24(火) 05:51:34ID:???
眠気が吹き飛ぶ程に笑った
09249042008/06/24(火) 10:45:20ID:???
>>906
mssqlの接続について調べたら、どこも再コンパイルするようにと書いてあったからなんですよ。
肝心の再コンパイルについてのことを詳しく書いてる場所が無かったので相談に乗っていただこうと
こちらに書かせていただきました。
0925nobodyさん2008/06/24(火) 11:09:18ID:???
phpinfo() を表示させてみ
0926nobodyさん2008/06/24(火) 11:11:23ID:???
つーかコンパイルくらいで何躊躇してんだか。
心配ならバックアップ取るなり別マシンでやってみるなりすれば。
09278982008/06/24(火) 11:12:24ID:ayMy4FEX
このスルーはなんなんだろう。分かり難い?
0928nobodyさん2008/06/24(火) 11:16:51ID:???
好きにすればって感じ
09299112008/06/24(火) 11:44:04ID:tF7holEs
preg_match_all($pattern, $string, $r);
echo "<pre>";
print_r($r);
echo "</pre>";
の出力は下記のようになりました
なんで項目が44個ずつなのかワカラナイ…
*適宜改行してあります
*本文長杉出たので2回連投します
09309112008/06/24(火) 11:44:36ID:tF7holEs
Array(

[0]=>Array([0]=>[1]=>1[2]=>[3]=>1[4]=>aaa[5]=>[6]=>1[7]=>[8]=>2[9]=>[10]=>2
[11]=>[12]=>2[13]=>[14]=>3[15]=>[16]=>3[17]=>[18]=>3[19]=>[20]=>4[21]=>
[22]=>4[23]=>[24]=>4[25]=>[26]=>5[27]=>[28]=>5[29]=>[30]=>5[31]=>[32]=>6
[33]=>[34]=>6[35]=>[36]=>6777[37]=>aaaa[38]=>[39]=>8[40]=>[41]=>8[42]=>[43]=>8[44]=>)

[1]=>Array([0]=>[1]=>[2]=>[3]=>[4]=>aaa[5]=>[6]=>[7]=>[8]=>[9]=>[10]=>[11]=>[12]=>
[13]=>[14]=>[15]=>[16]=>[17]=>[18]=>[19]=>[20]=>[21]=>[22]=>[23]=>[24]=>[25]=>
[26]=>[27]=>[28]=>[29]=>[30]=>[31]=>[32]=>[33]=>[34]=>[35]=>[36]=>[37]=>aaaa
[38]=>[39]=>[40]=>[41]=>[42]=>[43]=>[44]=>)

[2]=>Array([0]=>[1]=>1[2]=>[3]=>1[4]=>[5]=>[6]=>1[7]=>[8]=>2[9]=>[10]=>2[11]=>
[12]=>2[13]=>[14]=>3[15]=>[16]=>3[17]=>[18]=>3[19]=>[20]=>4[21]=>[22]=>4[23]=>
[24]=>4[25]=>[26]=>5[27]=>[28]=>5[29]=>[30]=>5[31]=>[32]=>6[33]=>[34]=>6[35]=>
[36]=>6[37]=>[38]=>[39]=>8[40]=>[41]=>8[42]=>[43]=>8[44]=>)

[3]=>Array([0]=>[1]=>[2]=>[3]=>[4]=>[5]=>[6]=>[7]=>[8]=>[9]=>[10]=>[11]=>[12]=>
[13]=>[14]=>[15]=>[16]=>[17]=>[18]=>[19]=>[20]=>[21]=>[22]=>[23]=>[24]=>[25]=>
[26]=>[27]=>[28]=>[29]=>[30]=>[31]=>[32]=>[33]=>[34]=>[35]=>[36]=>777[37]=>
[38]=>[39]=>[40]=>[41]=>[42]=>[43]=>[44]=>))
0931nobodyさん2008/06/24(火) 11:45:45ID:???
0932nobodyさん2008/06/24(火) 11:57:07ID:???
いちいち貼るなバカ
0933nobodyさん2008/06/24(火) 12:05:54ID:???
真ん中の、.* は0回以上だからな、 .+ にしてみ。
09349112008/06/24(火) 12:12:26ID:tF7holEs
>>932
申し訳ない…

>>933
ちょっとスッキリ
[0] => Array
(
[0] => 1
[1] => 1
[2] => aaa1
[3] => 2
[4] => 2
[5] => 2
[6] => 3
[7] => 3
[8] => 3
[9] => 4
[10] => 4
[11] => 4
[12] => 5
[13] => 5
[14] => 5
[15] => 6
[16] => 6
[17] => 6777
[18] => aaaa8
[19] => 8
[20] => 8

0935nobodyさん2008/06/24(火) 12:53:03ID:???
>>915などの言うとおりみたい
1=$1,2=$2,3=$3た
で置換してみ
0936nobodyさん2008/06/24(火) 14:23:14ID:bfjplt45
CGIなんて触った事ないんだが、GD使った画像処理スクリプトつくんなきゃならなくなったんで質問させてください。

レンタル鯖にGD用のTrueTypeフォントがインストールされているのか?

サポートに問い合わせ

回答来たけどよく分からん

俺無知乙

色々ググって調べる

phpinfoの./configure欄に--with-freetype-dir=/usr/localとあることが判明

これって使えないの? ←いまここ

という感じで、もう一度サポートに
・/usr/local 以下のフォント一覧の表示方法(もしくは一覧そのもの)
を聞けばいいのでしょうか? それと、このフォントはCGIでも使えるのでしょうか?

ちなみに俺が最初にした質問は
>GDライブラリを使おうと思っていて、enabledであることを確認しました。
>そこで、恐らく幾つかのフォント(特にTrueTypeなどのアウトラインフォント)を
>フォローしていると思うのですが、フォントがインストールされているパスと
>フォントファイル名一覧を教えていただけないでしょうか。よろしくお願いいたします
こんな感じで、それに対する回答は各種パスやらバージョンやらPerlモジュール検索の仕方なんかで、結局フォントの在り処が分からなかったので放置してます
0937nobodyさん2008/06/24(火) 14:40:10ID:???
>>936
別にOSにインストールする必要は無い。
無かったら自分でファイル用意すりゃいいだけ。
フリーの日本語フォントもあるからそれで試したら。
0938nobodyさん2008/06/24(火) 14:40:45ID:???
おっとw
0939nobodyさん2008/06/24(火) 15:05:13ID:???
ついでに言うけど、freetype-dir はライブラリの置き場所指定するだけだし、
通常サーバでフォントが必要になることはほとんどないと思うから
そういう但し書きが無い限りフォントは無いと思うよ。
フリーなやつ探したり、自分で買ったやつを自分の場所に置いて使うんじゃないかな。
09409362008/06/24(火) 15:10:48ID:bfjplt45
>>937
その発想は無かった。
自分のPCにインストールして、TTFファイルをコピペして鯖に置けばいいのかな。
とにかく、ありがとう。
09419362008/06/24(火) 15:15:40ID:bfjplt45
>>939
>freetype-dir はライブラリの置き場所指定するだけだし
/usr/local なんてどう考えてもおかしいと思ってたけど、そういうことだったのか。
丁寧な補足に感謝。
0942hoge-php-users2008/06/24(火) 17:10:26ID:???
PHPユーザ会とかの勉強会って基本、ディスカッション形式なのでしょうか?
出たいのですが、最初は雰囲気になれるために聞いているだけでいたいですorz...

過去にこういった集まりに出た方、いらっしゃいましたらご教示お願いいたします。m(_ _)m
0943nobodyさん2008/06/24(火) 17:35:22ID:XKNDO3RB
PHP5のリファレンスについての質問です。
あまりよく理解していません。
echoするときに$ary[20]という変数名を使いたくない場合、
メモリを節約する(変数のコピーをしない?)にはこれでいいですか?


$ary[20]; //大きなデータ

function foo(&$ary[20]) {
  //なんらかの処理
}

foo($ary[20]);
$data =& $ary[20];

echo $data;
0944シャープ2008/06/24(火) 18:00:29ID:22rywXeu
test/
ディレクトリにあるファイルで、
testから始まるファイルをすべて削除するには、どうすればよいのでしょうか?
そんなことは可能でしょうか?
0945hoge-php-users2008/06/24(火) 18:34:02ID:???
>>943さん
それでOKです。
メモリを節約する目的で使うのが適当か、はベンチマークとってください。

>>944さん
確か
`rm test/test*`
でできたはず
違っていたら大変なので問題ないところでテストしてください。
0946hoge-php-users2008/06/24(火) 18:38:54ID:???
訂正
`rm -rf test/test*`
レンタルサーバとかでは使えないかも…
0947nobodyさん2008/06/24(火) 18:49:24ID:???
>>946
unlink
じゃなかったっけ?
09489432008/06/24(火) 19:31:24ID:XKNDO3RB
>>945
ありがとうございます。
安心しました。
0949nobodyさん2008/06/24(火) 19:33:23ID:???
>>944
http://jp.php.net/rmdir
の下の方にあるユーザーからのコメントを参考にすると良いよ

>>945
それはただ単にシステムコールしてるだけだろ

0950nobodyさん2008/06/24(火) 19:57:50ID:???
そりゃシステム関数呼んでるけど
それをシステムコールとは言わん
0951nobodyさん2008/06/24(火) 19:59:58ID:???
>>945
明示的に参照にしても意味ないよ
0952nobodyさん2008/06/24(火) 20:35:11ID:ED0kh2wU
function hoge( $foo = $bar ) {
 ...
}

上のような感じで、関数の引数のデフォルト値に変数を指定できません。
どうしても実現したいのですが、下のような感じにしないとダメですか(ノ_<。)

function hoge( $foo = NULL ) {
 global $bar;
 if( is_null( $foo ) ) $foo = $bar;
 ...
}
0953シャープ2008/06/24(火) 20:35:39ID:22rywXeu
回答ありがとうございます。
僕は、ファイルをマッチして、ループで削除を繰り返すと考えていたのですが、そのようなことはどうすればできますか?
0954nobodyさん2008/06/24(火) 20:42:33ID:???
>>953
後出しうぜー
http://www.php.net/manual/ja/function.opendir.php
http://www.php.net/manual/ja/control-structures.while.php
http://www.php.net/manual/ja/function.preg-match.php
http://www.php.net/manual/ja/function.unlink.php

あとは自力で。
0955nobodyさん2008/06/24(火) 20:54:56ID:???
>>952
マニュアル読まない房うぜー
http://www.php.net/manual/ja/functions.arguments.php

あとは自力で。
09569522008/06/24(火) 21:17:11ID:???
>>955
ご案内頂いたURLは、既読です。
引数を、別のグローバル変数から値渡しする方法は書かれていませんでした。
0957nobodyさん2008/06/24(火) 21:19:07ID:???
>>956
ちゃんと読めよ
0958nobodyさん2008/06/24(火) 21:19:25ID:???
>>956
引数にwhileループを適用する方法も書かれてないけど、これについてはどう思いますか?
09599522008/06/24(火) 21:30:05ID:???
>>957
ちゃんと読んでいます。
>デフォルト値は、定数式である必要があり、 (例えば) 変数やクラスのメンバーであってはなりません。
デフォルト値に変数をそのまま使えないということも理解しています。
だから、>>952に自分なりの回避案を記載し、「この方向で最適でしょうか?」と質問しているのです。


>>958
意味が分かりません。
0960nobodyさん2008/06/24(火) 21:34:18ID:???
>>959
global変数なんて使うな
09619522008/06/24(火) 21:43:58ID:???
>>952に対して、まともなご返答を頂けないでしょうか?

>>960
参照渡しでなく、値渡しをするだけであり、
関数外へグローバル変数への影響は一切与えませんので、
問題はないと理解していますが、使ってはいけない理由を教えて下さい。
0962nobodyさん2008/06/24(火) 21:45:23ID:???
自分で調べろボケ
アドバイスくれっつーからしただけだ。
まともな返答が欲しけりゃまともな質問者になれ。1も読んでないくせに減らず口叩くな。
0963nobodyさん2008/06/24(火) 21:51:33ID:???
>>952を見て「回避策は正しいですか」という質問には読めず
「デフォルト引数値に変数を使う方法はありませんか」としか
思えない俺には、まともなご返答をする資格はないな
0964nobodyさん2008/06/24(火) 21:51:45ID:???
>>962
相談「引数のデフォルト値にグローバル変数を値渡ししたい」
アドバイス「グローバル変数なんて使うな」

これはアドバイスとは言わない。
つか、>>962みたいなのしかいないならいいや。
自分よりレベルが下の人間の回答は役に立たない。
0965nobodyさん2008/06/24(火) 22:04:50ID:???
>>952
それをどうしても実現しなきゃならん理由って何なの?
普通に組んでたらそんな事ってほぼ無いと思うんだが・・・

define('HOGE','aiueo');

function aaa($a = HOGE) {
 echo $a;
}

aaa();

こんな感じでやったら?
0966nobodyさん2008/06/24(火) 22:08:43ID:???
$arg = ('foo' => $bar);
function ($arg) {
extract($arg);
print $foo;
}
0967nobodyさん2008/06/24(火) 22:10:42ID:???
>>965
値渡ししたい変数というのは、
配布するスクリプトでユーザーが設定するコンフィグ変数なのです。

ですので、>>965氏のおっしゃるように、
実際は定数として扱うのが正しいのですが、
定数の書き方にしてしまうと、
PHPを知らない対象ユーザーが、間違えた書き方をしてしまう可能性が出てくるのです。
0968nobodyさん2008/06/24(火) 22:21:46ID:???
function hoge($foo = NULL) {
 if (is_null( $foo)) $foo = $GLOBALS['bar'];
 ...
}
0969nobodyさん2008/06/24(火) 22:31:02ID:???
>>968
>>952で自分なりの回避策として考えていましたが、
やはり、それが最適ですかね?
0970nobodyさん2008/06/24(火) 22:58:15ID:???
ポカーン
0971nobodyさん2008/06/24(火) 23:06:25ID:???
>>967
きっちり注意書き書いておけば大丈夫だと思うがな・・
でなければ設定自体がまともにできんだろ・・・

0972nobodyさん2008/06/24(火) 23:14:26ID:???
そもそもPHPを知らないユーザがイジって不安ならxmlやini形式とかの
設定ファイルにしてパースしろよって思う
0973nobodyさん2008/06/24(火) 23:45:45ID:???
それやっても>>952は同じ問題にぶち当たるけどね
0974nobodyさん2008/06/24(火) 23:50:37ID:???
>>952が書いたことやりたいなら

function hoge(&$bar){
}

とかで参照渡しでいいじゃないの。
0975nobodyさん2008/06/25(水) 00:14:41ID:???
>>974 関数抜けた時に消えるよ、Cやら他言語やってる奴が陥る典型例
グローバル変数は変らない

ユーザの書き換えミスを心配するなら値チェックするフォームが妥当だと思う
is_null使う所なのか? とか全体的に違和感の有る書き方だけど
0976nobodyさん2008/06/25(水) 00:34:40ID:???
>>975
あぁ、そうだったんだ。参照渡しとかあんまりやらないから知らなかった。

ユーザ情報がなんたらとかバリデーションかますとかだったら、クラスでやったほうがいいんでないの。
とか、そういう方向性は。
0977nobodyさん2008/06/25(水) 00:40:05ID:???
>>976 俺もやらかした、気にすんなw

グローバル関数に関してはこういうもんだから、別個にVBでも何でも良いから
ファイル書きかえる実行ファイル用意して設定を入れたphpファイル作らせて
からアップロードなりさせたら良いんじゃないの。

気になることがユーザの間違いなら対処方法としてはそれで良いんじゃねのかと
コードから自己顕示欲が漂う
0978nobodyさん2008/06/25(水) 03:15:16ID:???
まぁ普通は952みたいなことはしない。
そうせざるを得ないなら設計が悪い。
それでも自分のコードを押し通したいなら、別に悪コードではないから自己責任で。
0979nobodyさん2008/06/25(水) 03:17:46ID:???
うん、>>952はglobal引くなら、せめて変数名全部大文字にするとか、なんか分かりやすくすればいいと思うよ。
0980nobodyさん2008/06/25(水) 03:45:25ID:???
俺の一番嫌いな変数global変数
これってメモリ余計に食うしバグの原因になりやすい変数でしょ
大嫌い
0981nobodyさん2008/06/25(水) 03:56:34ID:???
>>952はどうしてもそんなコード書かなきゃいけないか考え直した方がいい
0982nobodyさん2008/06/25(水) 04:03:18ID:???
>>964
>相談「引数のデフォルト値にグローバル変数を値渡ししたい」
>アドバイス「グローバル変数なんて使うな」
>
>これはアドバイスとは言わない。
>つか、>>962みたいなのしかいないならいいや。
>自分よりレベルが下の人間の回答は役に立たない。

なんだこりゃ・・・親切もいいところだろ。
0983nobodyさん2008/06/25(水) 04:12:22ID:???
昔はperlもPHPもglobal変数ばっかりだったよ
でも今は、なるべくローカル変数を使う傾向になってるよ

global変数はセキュリティ的にもバグ的にもチームで分担作業するにしても
あまりよくない変数です
0984nobodyさん2008/06/25(水) 04:17:02ID:???
>>952
こんな関数つくらないといけなくなるような設計が
そもそもおかしいというかw
なんでそんな関数必要になるの?マジ不思議
0985nobodyさん2008/06/25(水) 05:21:37ID:???
複数人でやってるプロジェクトなら誰かが止めそうな気はするなw
0986nobodyさん2008/06/25(水) 07:59:25ID:uulTChwW
俺が感じるのは、グローバル変数にものすごく敏感な人たちが、
セッション変数には、まったく無頓着であるということ。

セッション変数もグローバル変数と同等。
セッション変数に、あちらこちらのクラスでたくさんデータを詰め込んでいる
システムをあちらこちらでみる。

しかも、セッション変数が重複することによるバグの原因(運用で発見されることもある)
メモリーでセッションを管理している場合は、メモリーパンクでサーバーが炎上。D
0987nobodyさん2008/06/25(水) 10:18:13ID:???
>>952
俺ならクラスにスル
0988nobodyさん2008/06/25(水) 10:22:36ID:???
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/

次スレ
0989nobodyさん2008/06/25(水) 10:28:23ID:???
グローバル変数とか言ってるやつ、
どうせモバイルAdSenseだろ。
デフォルトコードから自分でローカル変数に書き換えて作り直せよ。
0990nobodyさん2008/06/25(水) 14:52:56ID:???
>>986
グローバル変数にものすごく敏感な人が100人いるとして
セッション変数にはまったく無頓着な人は何人くらい?
0991nobodyさん2008/06/25(水) 15:09:12ID:???
32.7人くらい
0992nobodyさん2008/06/25(水) 15:26:59ID:???
三割弱ワロス
0993nobodyさん2008/06/26(木) 14:30:34ID:j2dBQxrb
弱?
0994nobodyさん2008/06/26(木) 14:32:16ID:???
ん?
0995nobodyさん2008/06/26(木) 15:16:39ID:???
1/3弱
3割強
0996nobodyさん2008/06/26(木) 15:33:03ID:???
PHPってグローバル変数使いにくいね。
わざわざ関数の最初でglobal 変数名なんて
やらないといけないのだ物。
ローカル変数は何も宣言しなくても使えるのに。

Perlなんか逆に、何もつけなければグローバル変数。
ローカル変数を使うときには、my 変数名ってやるんだぜ?
0997nobodyさん2008/06/26(木) 16:54:12ID:???
中途半端な釣りだね。。。
0998nobodyさん2008/06/26(木) 17:12:40ID:???
生め
0999nobodyさん2008/06/26(木) 17:14:57ID:???
次スレ

【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
1000nobodyさん2008/06/26(木) 17:16:00ID:???
おあとがよろしいようで
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。