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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
2nobodyさん:2007/09/09(日) 12:43:46 ID:64tYOx8R
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
【PHP】下らねぇ質問はここに書き込みやがれ 51
http://pc11.2ch.net/test/read.cgi/php/1185521566/
【PHP】下らねぇ質問はここに書き込みやがれ 50
http://pc11.2ch.net/test/read.cgi/php/1184143801/
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/
【PHP】下らねぇ質問はここに書き込みやがれ 45 (※実質48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 47
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 46
http://pc11.2ch.net/test/read.cgi/php/1178955837/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1178955768/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
【PHP】下らねぇ質問はここに書き込みやがれ 44
http://pc11.2ch.net/test/read.cgi/php/1176364487/
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
【PHP】下らねぇ質問はここに書き込みやがれ 42
http://pc11.2ch.net/test/read.cgi/php/1174217841/
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
3nobodyさん:2007/09/09(日) 12:44:18 ID:64tYOx8R
関連リンク
■本家マニュアル   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/
4nobodyさん:2007/09/09(日) 12:45:05 ID:64tYOx8R
【簡易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プログラムとして実行された結果になる。
5nobodyさん:2007/09/09(日) 12:45:41 ID:64tYOx8R
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に保存?
 → 好きにしてください

6nobodyさん:2007/09/09(日) 13:04:30 ID:???
 /:/:.:.:.:.:.:.:/:.:.:.:.:./:.:.:.:.:.:.:.:.:.:.:.:./:.:l:.:.:.:l:.:.:.:.:.:.:.:.:.:.:.:.',:.:.:.:.:.:.ヽ
./:/:.:.:.:.:.:.:/:.:.:.:.:./:.:.:.:.:.:.:.:.:.:.:.:.:.:/:.:/:.:.:.::!:.:.:.:.:.:.:.:.:.:.:.:.:',:.:.:.:.:.:.:.:',
':.:!:.:.:.:.:.:.:.:!:.:.:.:.:/:.:.:.:.:.:.:.:.:.:.:.:.:.:///,:.:./:.l:.:',:.:.:.:.:.:.:.:.:.:.:.:!:.:.:.:.:.:.:.:.l
:.:l:.:.:.:.:.:.:.:.!:.:.:.:/:.:.:.:.:.:.:.:.:.:.:.:.:./// ,:.:/:./:.:.:.',:.:.:.:.:.:.:.:.:.:.:|:.:.:.:.:.:.:.:.:!
/|:.|:.:.:.:.:.:.l:.:.:/:.:.:.:.:.:.:.:.:.:.::/イ/ /:/:./ト、:.:.:.ヽ:.:.:.:.:.:.:.:.:|:.:.:.:.:.:.:.:!|:、 
:.:!:.!:.:.:.:.:.:.l:`l丶、:.:.:.:.:.://., ' ./:/:./ !l ヽ:.:.:.:ヽ:_..- ':.:!:.:l:.:.:.:.:.l:.!:.ヽ
:.:.!:.!:.:.:.:.',:.',:.!:.:.:.:.:>'<、/ //,:./  !l _><\:.:.:.l:./:.:.:.:.://:.:.:.:
:.:.:',:',:.:.:.:.ヽV`ヾ〒_==ミー7/// ーrィ== 〒ア、/:':.:.:.:..://:.:.:.:.:
-、,.ヘヽ:.:.:.:ヽヽ ヾ、_ー'_ノ /'´〃    弋_ー'.ノ '  /:.:.:.:.:.//、:.:r‐‐
 ヽ.-l \:.:.:\、     /´        ヽ   /':.:.:.// ,.-J    下らねぇ質問はここに書き込みやがれ
./  .!   ヽ、:.ヽヽ、      i        ‐,.'ィ":./   !/  `    って言ってるです。
ヽ、  ,!   l l`ヾ.=-    _._ _._   -‐"‐/l !   l )  / 〉
) .! へ!  //  `丶、      ...     ,. '´   l !  !< ,   く
  ヽ_ ̄l   l !       `丶、   _.. '"       !l   !  / -,.、ノ:
ヽ-、 ', !  !l      /::,二 `"´二、:\     ,イl  l  '  /: : : :
: :!: :} l  ! !l     /::/ //:「ト、\ \::\  / l.! l    〉: : : :
7nobodyさん:2007/09/09(日) 13:06:17 ID:???
23.PHPでデ(ry
 → CakePHPを使ってください。
8nobodyさん:2007/09/09(日) 15:10:52 ID:64tYOx8R
testdir パーミッション777
dir1 パーミッション777

/testdir/dir1/test.php
に、mkdirでパーミッション777でdir2というフォルダを作るように
mkdir("../dir2",0777);
とし、ローカル環境でうまくいったのでレンタルサーバーに上げたらうまくいかない・・・
このときのエラーは
SAFE MODE Restriction in effect. The script whose uid is〜
というエラーが出たのですがこの場合何が原因なのでしょうか
9nobodyさん:2007/09/09(日) 15:12:52 ID:???
>>7
デって何?デバッグ?
>>8
セーフモード制限
10nobodyさん:2007/09/09(日) 15:26:10 ID:64tYOx8R
>>9
手動で作るしかないんですねorz
11nobodyさん:2007/09/09(日) 16:07:50 ID:sHQ1gr/N
これからPHPのDLをWinXPでしたいのですが、
ttp://www.apache.jp/
ttp://www.php.net/

このURLのPHPとApacheはどの組み合わせでDLした方が宜しいでしょうか?
12nobodyさん:2007/09/09(日) 16:11:22 ID:???
最新版でおk
13nobodyさん:2007/09/09(日) 16:14:01 ID:???
>>7
>デ
CakePHPってところからしてデザインとロジックの分離ってところだろうか...
いずれにせよそんな短い(ryじゃテンプレに入れられないな。
14nobodyさん:2007/09/09(日) 16:16:20 ID:sHQ1gr/N
>>12
有難うございます、インストールしてみます。
15nobodyさん:2007/09/09(日) 17:17:49 ID:???
WebProgの78で質問したものです。
当時PHP質問スレは無かったのですが、こちらが出来たのでこちらで質問します。

前回はShift_JIS形式のファイルで色々やってもダメだったもので、
今度はPHPファイルをEUC-JP形式にて試しました

mb_internal_encoding ("EUC-JP");
$to = "[email protected]";
$subject = "認証メール";
$body = "本人認証ですhttp//";
$from = "From: test<[email protected]> \r\nContent-Type: text/plain;";
$rs = mb_send_mail($to, $subject, $body, $from);


この状態で[http]と[//]の間に:を入れるとメールが送信されません
その時$rsには戻り値が入っており、if($rs)はtrueを通ります

mb_languageをJAに指定すると、英字が一つでも入ってたら駄目なようです

明確なエラーメッセージも無く解決方法が見つかりません
理由が分かるかた居ましたらよろしくお願いします

PHPはVersion 5.2.3です
16nobodyさん:2007/09/09(日) 17:25:38 ID:???
$body = '本人認証ですhttp//';
17nobodyさん:2007/09/09(日) 17:39:56 ID:???
>>16
レス有難う御座います
$body = '本人認証ですhttp//'; はいけるのですが、
$body = '本人認証ですhttp://';のように[:] コロンを入れると送信する事が出来ません
[""]でも['']でも同じ結果の様です
18nobodyさん:2007/09/09(日) 18:00:28 ID:sHQ1gr/N
php-5.2.4-Win32.zipとapache_2.2.4-win32-x86-no_ssl.msiをDLして一通り設定してみたのですが
phpinf();のファイルを作りlocalhostでアクセスしたのですが設定が反映されません。(WInXP)

php.iniの設定は
output_handler =  → output_handler = mboutput_handler

default_charset = "Shift_JIS"

extension_dir = "./" → extension_dir = "C:/php/extensions" 

#自分が参考書で確認した際上記のC:/php/extensionsの部分のextensionsがextになっていましたが
#phpをインスコした際のテストでモジュール指定がありませんのエラー内容にextでは無くextensionsとなっており
#extというフォルダ名をexitensionsに直してしまいました。ですのでextensionsにしましたが・・・。

extension=php_mbstring.dll  ;を取り有効に
mbstring.language = Japanise      有効
mbstring.internal_encoding = EUC-JP 有効
mbstring.http_input = auto        有効
mbstring.http_output = SJIS        有効
mbstring.encoding_translation = Onにして 有効
mbstring.detect_order = auto       有効
mbstring.substitute_character = none;  有効

以上の設定をphpフォルダのphp.iniのファイル内容にて変更してみました。何が足りない部分があるのでしょうか?
19nobodyさん:2007/09/09(日) 18:09:08 ID:jOYDLkNB
質問です。
1時間毎に1度ある数字に+1して通し番号を発行したいのですが
何を参考にすればいいでしょうか?
20nobodyさん:2007/09/09(日) 18:17:46 ID:???
>>19
サーバーのcronで+1するPHPを動作させる
21nobodyさん:2007/09/09(日) 18:23:45 ID:???
今の日時を時間に直して一時間未満を切り捨てれば良い
22nobodyさん:2007/09/09(日) 18:24:59 ID:jOYDLkNB
cron使わないといけないようなので面倒だし諦めます。
ありがとうございました。
23nobodyさん:2007/09/09(日) 18:27:19 ID:???
>>18
phpinf();?
24nobodyさん:2007/09/09(日) 18:36:45 ID:???
>>23
記述ミス申し訳ありませんでした。設定を一通り終えて、動作確認で
<?
phpinfo();
?>
というファイルをindex.phpとして作りhtdocsフォルダに置きlocalhostにアクセスしてみました。
しかしPHPに関するページの表示はされず、
<?
phpinfo();
?>
というファイル内容がそのまま表示されてしまいますが、色々と試しています・・・
25nobodyさん:2007/09/09(日) 18:40:18 ID:???
アパチェ
26nobodyさん:2007/09/09(日) 18:48:09 ID:???
>>24
アパチェのコンフィグでアドタイプしてサイキドウすればよろし
27nobodyさん:2007/09/09(日) 18:50:58 ID:???
>>18
・php.iniの読み込み指定
その1: Apacheのhttpd.confに PHPIniDir c:\php を書く、そしてApache再起動
その2: 環境変数 PHPRC で c:\php と指定、PCを再起動
好きな方を選べ

・extension_dir
phpのディレクトリに ext ってディレクトリがあるだろ
それがファイル名'php_'で始まる拡張モジュールの収まったディレクトリのこと
extension_dir = "c:\php\ext" って書いてやればいいよ
28nobodyさん:2007/09/09(日) 19:28:15 ID:???
>>25-26
<IfModule mime_module>という中に
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
を追加してみたのですが、空白ページに今度はなってしまいました

>>27
その1、その2、extensin_dirすべてをやり最後にindex.phpのファイル内容の
<?
phpinf();
?>

<?php
phpinfo();
?>
このように変換した所ページ表示がやっとできました。やっと自宅でPHPできるようになりました!
設定ミス、長文大変見ずらかったと思いますが付き合って頂いて大変助かりました
皆さん親切に何度も有難うございました!
29nobodyさん:2007/09/09(日) 20:19:51 ID:???
よかったのうよかったのう
30nobodyさん:2007/09/09(日) 20:53:02 ID:+iLUvfjN
ヒアドキュメントから定数を参照する方法ってある?

define("MAN", 'CO');

print <<<TEXT
{MAN}
TEXT;

みたいな感じで参照できねっすか?
31nobodyさん:2007/09/09(日) 21:41:38 ID:???
>>30
ムリ
32nobodyさん:2007/09/09(日) 21:50:17 ID:+iLUvfjN
>>31
アリ
33nobodyさん:2007/09/09(日) 21:53:14 ID:???
>>19
現在のUNIXタイムスタンプ-基準になる時間のUNIXタイムスタンプを
時間に変換する。
34nobodyさん:2007/09/09(日) 23:45:11 ID:???
$string = file_get_contents("./a.txt");
preg_match("/http:\/\/[a-z0-9\/\-_\.]+/i",$string,$match);
foreach($match as $key => $value){
$key++;
echo "$key"."+"."$value";
}
これに何か問題ってあるでしょうか?
35nobodyさん:2007/09/10(月) 00:12:30 ID:???
あるかもしれないけどないかもしれない。
答えは君だけが知っている
36nobodyさん:2007/09/10(月) 00:27:05 ID:???
>>34
preg_matchの修飾子に s を指定するべし
preg_matchではなく、preg_match_allを使うべし
[a-z0-9\/\-_\.]の中の / - . はエスケープする必要なし
- は最後に書くべし
37nobodyさん:2007/09/10(月) 00:42:18 ID:v8+qYSiw
携帯用のRSSリーダーを作っているのですが、

下の、
http://blog.zuzara.com/2006/06/06/84/

この方法を使って、本文抽出しているのですが、うまく本文だけを抽出してくれません。

一応、
http://private.ceek.jp/archives/002039.html

ここに書いてあったことを元に、句読点が存在していれば本文要素として認めて、最後に、

$res .= $val

として結合することで、精度が上がりましたが、まだ読めないサイトがあります。

精度を上げるには他にどうすれば良いでしょうか?


フィードは、はてなRSSの人気のフィード全てを使っています。
38nobodyさん:2007/09/10(月) 00:48:11 ID:???
無駄に改行しないことから
39nobodyさん:2007/09/10(月) 00:57:22 ID:???
sage
40nobodyさん:2007/09/10(月) 04:56:57 ID:iLiEDXXm
phpのconfigure時にpostgresqlがはいっているいないってどう確認
っすればいいの?
自分は
php info();

dbx support enabled
dbx version 1.1.0
supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT SQLite
てでたんだがphpのconfigureの部分はなかった。
だめなのかな?
追加できないの?

41nobodyさん:2007/09/10(月) 05:45:14 ID:???
>>40

くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/
42nobodyさん:2007/09/10(月) 08:51:38 ID:???
既存の関数に、フィルタかけたいんですがどうすればできますか?
たとえばecho関数にエスケープフィルタをアタッチして、
echoすれば必ずそのフィルタを経由する、みたいなことがさせたいんです。
ラッパー書けばできますが、
その関数名のままラップしたいんです
43nobodyさん:2007/09/10(月) 08:55:59 ID:???
さくらインターネットでは
phpをcgiで動かしていますが
#!を行頭に書かなくてもphpが使えます
どういう設定をしたらそんなことができますか
4442と43:2007/09/10(月) 09:10:54 ID:???
自己解決しました。
45nobodyさん:2007/09/10(月) 11:03:54 ID:???
>>40はマルチ
ttp://pc11.2ch.net/test/read.cgi/php/983128806/752

>>44
解決したんだったら解決策を書いてくれると助かる。
46nobodyさん:2007/09/10(月) 11:19:08 ID:???
>>45
ID出さないやつは全員自己解決。ってことだろ
4737:2007/09/10(月) 11:30:10 ID:v8+qYSiw
>>38
なるべく見やすくしたつもりですが・・・
48nobodyさん:2007/09/10(月) 12:25:07 ID:???
>>47
ここはブログじゃねえの!
4937:2007/09/10(月) 12:52:22 ID:v8+qYSiw
>>48
すみません。
これでも詰めたのですが、甘かったのですね。
50nobodyさん:2007/09/10(月) 13:41:02 ID:nbKfi6vV
FLASHのactionscriptに値の渡し方について教えて下さい。
ボタンを押すとダイナミックテキストの変数ipに表示させたいんですけど、
これでいいんでしょうか?
<?php
gethostbyaddr(getenv("REMOTE_ADDR".$_POST["ip"]));
?>
51nobodyさん:2007/09/10(月) 13:49:09 ID:???
$_SERVER["REMOTE_ADDR"]でいいよ
52nobodyさん:2007/09/10(月) 14:25:24 ID:nbKfi6vV
>>51 さん、ありがとうございます。
変数は[ ]の中にいれるんでしょうか?
<?php
 echo $_SERVER["REMOTE_ADDR".$_POST["ip"]] ;
?>
53nobodyさん:2007/09/10(月) 15:04:53 ID:???
>>50
src="フラッシュファイル名?ip=<?php echo urlencode(gethostbyaddr($_SERVER["REMOTE_ADDR"])); ?>"
じゃないのかな。
他にも値の渡し方はいくつかあるけど。
54nobodyさん:2007/09/10(月) 15:18:59 ID:???
>>52
$_SERVER["REMOTE_ADDR"]がIP調べるの定義済み変数だろ
そんくらい調べろ

echo $_SERVER['REMOTE_ADDR'] . "<br>\n" . gethostbyaddr($_SERVER['REMOTE_ADDR'];
55nobodyさん:2007/09/10(月) 17:26:27 ID:???
>>44
あなた誰ですか?
解決してません
引き続き回答をお待ちしております
56nobodyさん:2007/09/10(月) 18:17:34 ID:???
Apache関連は自鯖板とかで聞いて来い
IDも出さない馬鹿には誰もまともに答えないよ
57nobodyさん:2007/09/10(月) 18:49:12 ID:???
>>55
ID出さないとすぐ騙りが出て自己解決するのがこのスレ
58nobodyさん:2007/09/10(月) 21:10:18 ID:nbKfi6vV
皆さんご回答ありがとうございます。
>>53さんの方法でもPHPの変数が渡せるんですね。文字列としてやった事はあるんですけどね。
拡張子をphpにして、param と embedを修正したら表示できました。同じようにURLを入れて見たら文字列としてURLが表示しました。
他の方法も是非ご教授お願いしたいです。
>>54さん勉強不足ですみません。何故だか何度やっても表示しないんですよねー。
59nobodyさん:2007/09/11(火) 01:40:40 ID:j/8aPw/k
htmlで<base href="http://www.example.com/">としておくと
imgタグののsrcやaタグのhrefをルートからのパスで書くことができますよね
例)http://www.example.com/images/a.gif→src="images/a.gif"
例)http://www.example.com/a/b/c/→href="a/b/c/"

このbase hrefはphpのincludeには反映されないようなのですが、
includeでも同じような書き方を可能にする方法ありますか?
./や../などを使いたくないのです
60nobodyさん:2007/09/11(火) 01:59:53 ID:???
相対パスが嫌なら絶対パスでも使えば?
61nobodyさん:2007/09/11(火) 02:02:18 ID:j/8aPw/k
それはそうなんですけどそのhttp://www.example.com/部分を毎回手打ちで書くのが面倒くさいので
何かいい方法があればと思って聞いてみたんですが
6242:2007/09/11(火) 03:04:39 ID:zytLbqiK
ぐたぐたうるさいバカはほっといて・・・

だれかよろしくおねがいします
63nobodyさん:2007/09/11(火) 05:54:29 ID:???
>>59
>>60
っていうかimages/a.gifも相対パスな罠。
普通にinclude("aaa.php");とか書けばいいじゃん。
相対パスだからって「./」は必須じゃない。

実行ディレクトリが違うという話なら最初に
chdir("基準ディレクトリ");すればいい。
64nobodyさん:2007/09/11(火) 08:45:33 ID:???
>>61
つ【include_path 】
6559:2007/09/11(火) 10:40:52 ID:???
>>63-64
相対パスが嫌な訳ではなく、../../など、階層をページによって書き直すのが嫌なのです
深い階層にいくと、./なのか../なのか、../がいくつ必要なのかよくわからなくなるので

ありがとうございます、調べてみます
66nobodyさん:2007/09/11(火) 10:53:33 ID:TKViiXpy
少し聞きたいのですが、
switch文で1つのswitchが60個x12って1ファイルだと多すぎでしょうか?
キチンと動いてるのですが、たまに12箇所で同じ部分が表示されない時はあるのです。
67nobodyさん:2007/09/11(火) 10:55:47 ID:???
>>66
日本語でおk
68nobodyさん:2007/09/11(火) 10:56:22 ID:???
サーバルートからにすればいいじゃん"/imgdir/himei_butte.jpg"
htmlの下質だな、スレ違いに気づけ。
69nobodyさん:2007/09/11(火) 11:02:47 ID:???
$urlに格納すりゃいいじゃん。撃つ文字数がはぶける
70nobodyさん:2007/09/11(火) 11:31:38 ID:???
>>66
switchが12個でそれぞれにcaseが60個という意味か
そんなに書いたことないなー
状況がわからないけど自分ならもっとスマートに書けそうな気はする
71nobodyさん:2007/09/11(火) 11:35:29 ID:???
>>68
call_user_funcでアクション名を渡せば5行もかからないと思うけど
72nobodyさん:2007/09/11(火) 11:36:04 ID:???
73nobodyさん:2007/09/11(火) 11:48:32 ID:???
いくらなんでもswitchに詰め込みすぎ
74nobodyさん:2007/09/11(火) 12:20:06 ID:???
>>66
普通に動きそうな気はするが、ものすごく読みにくくて
バグがあっても気付きにくい構造になっちゃってる気はする。
75nobodyさん:2007/09/11(火) 12:28:30 ID:???
switch ($value) {
case 1: echo "1";break;
case 2: echo "2";break;
.
.
とかすごく無駄なことをしてそう
76nobodyさん:2007/09/11(火) 13:13:35 ID:???
>>66
> 12箇所で同じ部分が表示されない
これが少し気になるんだが、そのx12のswitchって
ひょっとして同じ条件を12回も再評価してるのか?
配列変数を使うとか、もう少し何とかならんのかそれ?
77nobodyさん:2007/09/11(火) 13:25:17 ID:???
どういうものなのか気になるな・・・。
720行ものcase文を書き上げた根性だけは立派だよ。
スキルを身につければきっと伸びる。
78nobodyさん:2007/09/11(火) 14:13:16 ID:???
>>77
> 720行ものcase文を書き上げた根性
同じ判定を12回やる内容ならコピペでしょ、ふつー。
わざわざ手で全部書いたのならそれこそバカかと。
79nobodyさん:2007/09/11(火) 15:11:05 ID:???
レスありがとうございます
/*===以前===*/
$min=現在時間
if(($min >="00")||($min <="15")){
$txta=現在時間00分;
$txtb=現在時間15分;
}else{
$txta=1時間+現在時間00分;
$txtb=1時間+現在時間15分;
}
/*===現在===*/
switch(date("i")){
case 00:
〜〜〜〜省略〜〜〜〜
case 15:
$txta=現在時間00分;
$txtb=現在時間15分;
break;
case 16:
〜〜〜〜省略〜〜〜〜
case 59:
$txta=1時間+現在時間00分;
$txtb=1時間+現在時間15分;
break;
default:
$txta="error";
$txtb="error";
break;
}
以前はifのものでやっていましたが他の条件のもので取得した時間で前後1時間のずれがあったりしていたのでswitchに変更しました。
このほかにそれぞれの時間を表示する時に使うcssやそのほかのテキストも同じswitch内に入れています。
ifでやる方がシンプルだと思うのですが、どうしてかうまくいきませんでした。
80nobodyさん:2007/09/11(火) 15:21:31 ID:???
>>75
予想的中おめww
81nobodyさん:2007/09/11(火) 15:30:20 ID:TKViiXpy
>>80
いえいえ省略したcaseの部分はbreak; してませんよ。
他にcssや他のテキストも入れていますので実際は省略する部分も少ないですが。
82nobodyさん:2007/09/11(火) 15:32:16 ID:dkCdLSVp
まず何をやりたいか書いてくれ
83nobodyさん:2007/09/11(火) 15:38:27 ID:???
>>79
文字列は" "で囲めよ
で数値は囲むなよ

どうみても以前の方がわかりやすい
84nobodyさん:2007/09/11(火) 15:41:10 ID:???
>>82
現在の時刻で分の部分が0-15なら
$txta = "現在時間00分"
$txtb = "現在時間15分";
それ以上なら
$txta = "1時間+現在時間00分";
$txtb = "1時間+現在時間15分";
を代入したいんだと思うがその使い道はまったく見当がつかない
85nobodyさん:2007/09/11(火) 15:44:50 ID:???
トン吉チン平カン太!
86nobodyさん:2007/09/11(火) 15:46:05 ID:TKViiXpy
みなさんレスありがとうございます。

ttp://apcube.net/ffxi_memo/chocobo_circuit/index.html
の表の部分です。
ttp://www.playonline.com/pcd/update/ff11/20070828N71VL2/ch04jp.jpg
を元にしています。
やはりifで作る方がいいのかな。
87nobodyさん:2007/09/11(火) 15:46:09 ID:dkCdLSVp
>>84
何故一気に1時間飛ばすのかな
88nobodyさん:2007/09/11(火) 15:49:40 ID:TKViiXpy
>>87
サイトを見てもらえばわかるのですが、
4コースのレースがあってそれぞれ1時間で1回のレースを行ってます。
なので、1レースが終わると次回は1時間後なのです。
89nobodyさん:2007/09/11(火) 15:49:41 ID:???
$min=現在時間
if($min >='00'&&$min <='15'){
$txta=現在時間00分;
$txtb=現在時間15分;
}else{
$txta=1時間+現在時間00分;
$txtb=1時間+現在時間15分;
}
90nobodyさん:2007/09/11(火) 15:53:03 ID:???
switchの使い方がおかしいと思うんだがな
91nobodyさん:2007/09/11(火) 15:58:25 ID:TKViiXpy
>>89
どうもです。
以前までそのやりかたで書いてたのですが、
レース時間が、00:45〜01:15など時間をまたいだレースなどで
うまく取得できない場合がありました。おそらく条件式をうまく使えてないのが原因だと思うのですが。
if($min >='45'&&$min <='59'&&$min >='00'&&$min<='15'){
のような感じで書いてました。
92nobodyさん:2007/09/11(火) 16:01:21 ID:Al3TIDzd
PHPと直接関係ない質問ですみませんが、
DBの設計を学びたいたいです。
とりあえず練習としてMySQL+PHPで掲示板を作りたいのですが、
どういうカラムが必要なのかとかがわかりません。
MySQLスレで過去に聞いてみたのですが返答もらえませんでした。
強引にPHPと結び付けてるようで申し訳ないですが、
MySQL+PHPでDB設計を学べるようなサイトがあったら教えていただけませんか?
また、DBを使った掲示板を作る場合、
自分ならどういったカラムを作るかなど、助言いただけたらよろしくお願いします。
93nobodyさん:2007/09/11(火) 16:08:30 ID:???
>>92
フリーの掲示板のログ読んで勉強すればいいと思うんだが
94nobodyさん:2007/09/11(火) 16:10:03 ID:???
>>91
forで時間分だけ回して、インクリメントで分を足して行って、
該当分にだけ処理させるように記述すれば良いんじゃないかな?
95nobodyさん:2007/09/11(火) 16:20:51 ID:???
>>94
ありがとうございます。
まだphp初めて間もないのでforも少し調べてみます!
96nobodyさん:2007/09/11(火) 16:50:09 ID:???
俺ならdate('i')の判定でまわしながらやる。
97nobodyさん:2007/09/11(火) 16:57:38 ID:???
if ( ($min >='45' && $min <='59' ) || ($min >='00' && $min<='15')){
98nobodyさん:2007/09/11(火) 17:00:59 ID:???
>>97
× if ( ($min >='45' && $min <='59' ) || ($min >='00' && $min<='15')){
○ if ( $min >= '45' || $min <= '15' ){
99nobodyさん:2007/09/11(火) 17:04:34 ID:???
沢山レスありがとうございます!

if ( $min >= '45' || $min <= '15' ){
これ有効なんですか!以前のものを修正してみます。
100nobodyさん:2007/09/11(火) 17:13:54 ID:???
caseが60個ある原因は分かったが、同じようなswitchが12箇所もある問題は?
101nobodyさん:2007/09/11(火) 17:18:09 ID:???
>>92
必要なカラムは表示させたい内容や処理させたい機能によるので
「掲示板だからこのカラム」なんてパターンは無い。
まず掲示板ってどういう仕組みで成り立ってるのかから勉強してこよう。
必要な機能とデータを列挙する段階はPHPやDB以前の問題だ。

その上で、列挙された機能とデータから仕組みを設計するのがPHP(というかWebアプリ)の勉強。
それができた上で、さらにそのデータを効率化・最適化するのがDBの勉強。
10237:2007/09/11(火) 18:22:10 ID:dkCdLSVp
>>37をどなたかお願いします
103nobodyさん:2007/09/11(火) 18:35:34 ID:???
>>102
日本語構文についての理解と正規表現の勉強
104nobodyさん:2007/09/11(火) 18:39:49 ID:???
>>92
初めはきちんとDBの勉強したほうがいいと思うよ。
アルゴリズムとデータ構造や、リレーショナルデータベースの科目取るとか、教科書読むとか
105nobodyさん:2007/09/11(火) 18:41:51 ID:???
>>102
特殊な用語とかコードとかで語られても知らん。
もtっと一般化して質問してくれ。
106nobodyさん:2007/09/11(火) 18:54:52 ID:???
>>102
こんな漠然とした内容で「精度を上げたい」と言われても
どういう場合に本文が抽出できないのかさっぱり分からんよ。
10792:2007/09/11(火) 19:12:38 ID:Al3TIDzd
>>93
他人のソースは正直何がなんだかわからなくて敬遠しがちです。
理解できるかは不明ですが、適当なものを探してみたいと思います。

>>101
どうもご丁寧にありがとうございます。
アドバイス通り掲示板にとって必要な機能とデータがどういうものなのか、
考えてみたいと思います。
考えてみたデータを生かしきれるかはわかりませんが、
不要なデータがあっても、とりあえず動けばいいみたいなスタンスで頑張ってみます。

>>104
そうですね。いくつか初歩的な構文は理解してるのみで、
詳細な部分は全く知らないので、いろいろ勉強してみたいと思います。
とりあえず学生ではないので授業は受けれませんw
文系だったのでそういった類の教科書も持っていないので、サイト巡回や本で勉強したいと思います。
108nobodyさん:2007/09/11(火) 19:57:18 ID:???
>>107
キミには掲示板ですらまだ早すぎだと思うんだ。
109nobodyさん:2007/09/11(火) 19:59:16 ID:???
早すぎるとか正気か?
掲示板なんてWebプログラムの初歩じゃないか。
110nobodyさん:2007/09/11(火) 20:02:39 ID:???
Webプログラムの初歩どころかプログラムってな〜に?レベルだぞこいつ。
11192:2007/09/11(火) 20:16:24 ID:Al3TIDzd
>>110
よろしければどの辺を見てそう感じたか教えてください。
今後の質問の仕方の参考にしますので。
DBに関しては初歩レベルでさっぱりですが、
一応プログラムの初歩的なことに関しては理解してるつもりです。
112nobodyさん:2007/09/11(火) 20:20:52 ID:???
>>111
放置しときな
いつもの答えられないけど何か言いたくて煽ってる人だから
113nobodyさん:2007/09/11(火) 20:31:17 ID:WeIbshbr
メール送信しているのですが、
JISで送信すると、ヤフーメールで見たら文字化けしています。
「$BHdO*1c1i=P$N$4A*6J$*Hh$lMM$G$7$?!#(B」のようになっているのでJISになっています。
おそらくYahoo側でEUC-JPで表示していると思うのですが、
メールを送信するときにどの文字コードで表示するか設定できるのでしょうか?
それとも、メールが届いた側で判別されるのでしょうか?
114軟式PHP:2007/09/11(火) 20:37:11 ID:???
>>107-112
喧嘩はイクないよ^^
掲示板は勉強になるから最初に作るにはいいと思う。
特にDB絡めるのなら、いい勉強になるよ。
とりあえず以下のように機能を列挙したらどうかな。
そして、機能を実装するのに必要なテーブル設計を考えてみる。
簡単なやつだったら1つのテーブルだけで作れるから。

●付ける機能
・記事を書き込む
・記事を読み込んで一覧にする

●拡張するなら…
・記事にレスをつけれる。
などなど
115nobodyさん:2007/09/11(火) 20:40:26 ID:???
>>111
とりあえず悩む前に作るのが一番いいよ
PK、名前、内容のフィールドを作って2〜3個のテストデータでもいれておいて
ちょっとつくってみて足りないものがあればどんどん付け足していくのでもいいから
とにかく思いついたものから作っていけばDBを使ったWEBアプリとは
大体どんなものか把握できるんじゃないか?
116nobodyさん:2007/09/11(火) 20:41:39 ID:???
>>113
メールを送信するときに、メールヘッダの中に文字コードの指定を含める。
117nobodyさん:2007/09/11(火) 20:58:11 ID:WeIbshbr
>>116
ありがとうございます
Content-Typ: text/text; charset=JIS
で解決しました。
11892:2007/09/11(火) 21:00:47 ID:Al3TIDzd
>>114-115
どうもアドバイスありがとうございます。
簡単な設計まで考えていただきありがとうございます。
作りながらDBの勉強をしたいと思います。
環境の再構築(DBインストールと設定)が今終わったので、
早速思いついたものからデータを入れて、取り出すテストからしてみたいと思います。

どうもお付き合いいただきありがとうございました。
119nobodyさん:2007/09/11(火) 21:18:19 ID:???
>>作りながらDBの勉強
志望フラグ乙
120nobodyさん:2007/09/11(火) 21:19:41 ID:???
PHPはPHPで
DBはDBで
各ある程度理解したらPHP+DBがいいかも
12137:2007/09/11(火) 21:29:32 ID:Ftl8Pgh5
>>103,105,106
ttp://www11.axfc.net/uploader/20/so/He_32859.zip.html
ソースと出力結果(文字のみ)です。出力の元は
ttp://www.100shiki.com/archives/2007/09/password_protector_sd.html
このページです。

記事本文と出力結果を比較して、出力結果の下のほうに要らない部分があります。
その部分を削れるようにして、なおかつ他のページの本文も正しく取得できるようにするにはどうすればいいでしょうか?

まとめると、
・ブログやニュースサイトの本文部分のみ取得したい。
・サイドバーなどのナビゲーションやリンク、広告は含めない
・ほとんどのサイトで本文部分のみ取得できるよう精度を上げるにはどうすればいいか

ということです。

一般化といわれてもよくわからないですが、このような感じで良いのでしょうか?
122nobodyさん:2007/09/11(火) 21:33:22 ID:???
>>120
そんな切り離してやるもん?
PHP+DBっていう1つの分野って考えてもいいんじゃない?
HTMLとCSSの関係みたいなもんだと思うんだけど
123nobodyさん:2007/09/11(火) 21:33:26 ID:???
>>121
そのzipが安全であるという保障は?
124nobodyさん:2007/09/11(火) 21:35:09 ID:???
>>122
DBの仕組み知っておかないとPHP+DBとかできないじゃん
125nobodyさん:2007/09/11(火) 21:38:57 ID:???
PHP-DBがHTML-CSSの関係と同じとかってwwww
12637:2007/09/11(火) 21:43:03 ID:dkCdLSVp
>>123
ウイルススキャンした後UPしてます
書き忘れましたが、パスはphpです。
127nobodyさん:2007/09/11(火) 21:44:21 ID:???
>>126
と見せかけてウイルスだろ?
12866:2007/09/11(火) 21:54:26 ID:TKViiXpy
沢山レスを頂いた結果、最終的にifで出来ました。
ifでキチンとした時間などが出なかった理由は分の値の勘違いでした(;´д⊂)
caseに比べると半分ほどのファイルサイズになりましたw
みなさんアドバイスありがとうございました!
129nobodyさん:2007/09/11(火) 21:57:07 ID:???
>>121
>>一般化といわれてもよくわからないですが
君にゃあ無理だ。一人でやるか諦めてくれ。
130nobodyさん:2007/09/11(火) 22:29:57 ID:???
聞くは一時の恥、聞かぬは一生の恥 とは言うけどさ
それは型から入って体現できる礼儀作法を学ぶには有効なんだ
しかし、プログラミングは頭使って考えなくちゃならん
初学者の陥る罠はなんでも他人に聞いて一時的に理解した
つもりになって、本当のところは何も理解していないんだ

それがとても悲しくなるときがある
131nobodyさん:2007/09/11(火) 23:36:08 ID:???
phpのGDにマスクレイヤー機能はありますか?
132nobodyさん:2007/09/12(水) 07:31:05 ID:???
ググッたらありました。
133nobodyさん:2007/09/12(水) 09:44:36 ID:xkG1TV3g
会員管理システムをつくりたいんですが、フローチャートはどんなかんじでしょうか?
134nobodyさん:2007/09/12(水) 10:24:27 ID:???
会員になる>ログイン>やったー>ログアウト
135nobodyさん:2007/09/12(水) 10:45:29 ID:???
>>134
それは会員登録だな
会員管理なんだから
ログイン>会員一覧表示>やったー>ログアウト
だろ?
136nobodyさん:2007/09/12(水) 11:26:53 ID:???
>>135
>>134はやったーの中に一覧表示とかいろいろ入ってるんだろう、きっと。
137nobodyさん:2007/09/12(水) 12:19:53 ID:???
管理システムなのに会員になるのか?
138nobodyさん:2007/09/12(水) 12:33:59 ID:???
「isset」だと上手く動かないのに、「empty」だと上手く動くのはなんでですかね?

逆の場合も時々あります。
139nobodyさん:2007/09/12(水) 12:39:23 ID:???
>>138
「上手く動かない」の状況が分からんよ。
その2つは全然意味が違うし。何をやろうとしたんだ。

単純にそれぞれで判定できないものを無理に判定しようとしただけで
ようするにマニュアルよく読みやがれこのカス野郎って話じゃないの?
140nobodyさん:2007/09/12(水) 12:45:54 ID:rYUimiSO
PerlのPackage関数のように、別ファイルをrequireしたときに名前空間をつけてあげることは可能でしょうか。

ご教示いただけますと幸いです。
141138:2007/09/12(水) 13:00:19 ID:???
>>139さんありがとうございました、そもそも判定基準が違いましたね。
PHPマニュアルを読むクセをつけます。
142nobodyさん:2007/09/12(水) 13:34:21 ID:???
>>140 classの事かな?
143nobodyさん:2007/09/12(水) 14:11:05 ID:???
>>141
うむ、がんばってくれ
144nobodyさん:2007/09/12(水) 14:13:55 ID:???
マニュアル読んでないのに何故issetとemptyを使おうと思ったのか不思議だ・・・
145nobodyさん:2007/09/12(水) 14:29:27 ID:???
>>144
マニュアルを読んでないとは書いてないぞ
146nobodyさん:2007/09/12(水) 14:58:02 ID:???
>>145
読んだらこんな質問は出ないはず
http://jp.php.net/ja/empty
の例に書いてあるし
147nobodyさん:2007/09/12(水) 15:15:54 ID:???
>>145
>PHPマニュアルを読むクセをつけます。
ここから読んでると判断する君の文章解析能力が心配だ
148nobodyさん:2007/09/12(水) 15:20:46 ID:???
>>147
君は読解力がついてないみたいでかわいそうだね。
>PHPマニュアルを読むクセをつけます。
というのはちゃんと読むことを指してると思うんだが
149nobodyさん:2007/09/12(水) 15:33:58 ID:???
ここは日本語スレですか?
常識的に考えて「マニュアルを読む癖をつけます」っていう言葉からは
今までマニュアルを読んでいないとは断定できないが
今まで読んでいたとも断定できない
つまりどっちともとれる表現であるというのが結論
つまり>>145の言ってることも正しいし>>147の言ってることも正しい
150nobodyさん:2007/09/12(水) 15:40:01 ID:???
さらっと字面を追っただけで「読んだ」なんて言わねーっつの
151nobodyさん:2007/09/12(水) 16:33:10 ID:???
くだらない質問に、くだらない突っ込みを入れた事に、くだらない突っ込みを入れるスレになってるなw
152nobodyさん:2007/09/12(水) 17:04:11 ID:xkG1TV3g
ありがとうございます。あともうひとつ質問させてください。

if ($_SERVER['REQUEST_METHOD'] === POST) {
}
if ($_SERVER['REQUEST_METHOD'] === "POST") {
}

POSTが送信されたか判断するとき、↑のどちらで書けばいいのでしょうか?
どちらの文も同じ動作でしたが文法的にどちらが推奨でしょうか。
153nobodyさん:2007/09/12(水) 17:07:03 ID:???
if ($_POST[''])
154nobodyさん:2007/09/12(水) 17:13:28 ID:bal64F9r
if ($_POST)
155nobodyさん:2007/09/12(水) 17:14:36 ID:???
>>152
文字列をクォートしないのは論外。
送信されるパラメータで
if(isset($_POST['hoge']))
とするのもあり。
156nobodyさん:2007/09/12(水) 17:22:06 ID:???
>>152
上のはこっそりとNotice errorが出ている
どうして上のをNoticeにしたのかわからないな
fatal エラーでいいじゃん
157nobodyさん:2007/09/12(水) 17:32:25 ID:???
定数を勝手に文字列にしてくれる親切な仕様
158nobodyさん:2007/09/12(水) 18:01:48 ID:???
>>152
上のは自動補正が働いてるだけで実際はミス。
159nobodyさん:2007/09/12(水) 18:28:10 ID:???
>>142
func.phpというのをよんだとき、Perlのように頭に
package f; 書けば呼び出し元ソース内で f::kansuu();
といったように使えるようにしたいのです。

恐れ入りますがご教示いただけますと幸いです。
160nobodyさん:2007/09/12(水) 18:35:02 ID:???
新しく取り組む言語でも自分の慣れた書き方で楽に済ましたいなんて甘い考えでプログラムやるな
161nobodyさん:2007/09/12(水) 19:09:30 ID:hkjgamim
>>159
クラス定義の中でfunc.phpを読み込めばいいと思います。
162nobodyさん:2007/09/12(水) 19:12:46 ID:5Xj/wG4U
empty関数について質問なのですが、引数で指定された変数の値を検査します。
変数に何もセットされていない場合には「false」を値が空だった場合には「true」を返します。

との事ですが(empty($_POST["test"])とした時、受け取った値が"123"ならば123ですよね
falseとtureの場合の違いが分からないのですが、どのような場合なのでしょうか?
163nobodyさん:2007/09/12(水) 19:19:49 ID:???
164nobodyさん:2007/09/12(水) 19:19:55 ID:i+nu8B4+
$bool = trueだったら$bool = falseにして
$bool = falseだったら$bool = tureに
一行でする方法ありますでしょうか?
165nobodyさん:2007/09/12(水) 19:29:37 ID:???
!$bool
166nobodyさん:2007/09/12(水) 19:29:42 ID:???
>>164
$bool = !$bool;
167nobodyさん:2007/09/12(水) 19:31:29 ID:5Xj/wG4U
>>163
何となく理解する事が出来ました。サイトまで教えて頂き有難うございます。
168nobodyさん:2007/09/12(水) 19:31:47 ID:???
>>165-166
そういう使い方ができるのですね
ありがとうございます
169nobodyさん:2007/09/12(水) 19:51:55 ID:???
>>161
class hoge {
include("func.php");
}

俺もこれで良いと思ったんだが、何気に出来ないんだな。
170nobodyさん:2007/09/12(水) 20:07:55 ID:hkjgamim
>>161で 「クラス定義の中でfunc.phpを読み込めばいいと思います。」 と申したあとに、
そんなことはできないかもしれないと思って試したら、 案の定できませんでした。
おそらくクラス定義の中ではメンバ宣言とメソッド宣言以外は不正なのでありましょう。
大変失礼しました。
171nobodyさん:2007/09/12(水) 21:20:44 ID:???
じゃコンストラクタ使えばいいじゃん
172nobodyさん:2007/09/12(水) 22:01:50 ID:???
クラスの使い方がおかしいだろ・・・
173nobodyさん:2007/09/12(水) 22:16:11 ID:5Xj/wG4U
PHPを実行した後構文等が間違っていたら何行目が間違ってますみたいな表示を
させる事は出来るのでしょうか?
インターネットオプションの詳細設定からスクリプトエラーごとに通知にチェックを
入れたのですが何をしてもページが表示できません。で止まってしまうのですが
174nobodyさん:2007/09/12(水) 22:23:22 ID:???
トン吉チン平カン太!
175nobodyさん:2007/09/12(水) 22:24:57 ID:???
>>164
$bool ? false : true;
があるじゃーのん?
176nobodyさん:2007/09/12(水) 23:14:21 ID:TcT1t6MR
PHP4で使えるORMなあれってどれがいいの?
ActiveRecord?とか言うヤツ?
PHP5への移行を視野に含めた上でお勧め教えてけろ
177nobodyさん:2007/09/12(水) 23:37:46 ID:???
<?php
session_start();
if(isset($_SESSION["login"])) {
?>
<HTML>
<HEAD>
<TITLE>a</TITLE>
</HEAD>
<BODY>
<form action = "secretlogin.php" method = "post"> //secret.phpかも
ようこそ <?=$_SESSION["login"]?>様!
<h2>掲示板に書き込む</h2>
<a href = ./sread_list.php>一覧ページ</a>ここをクリック<br> //./無しかも
<a href = ./logout.php>ログアウト</a>ここをクリック<br>

<hr>
<table>
<tr><td align = right>タイトル</td><td><input type = "text" name = "title"></td></tr>
<tr><td align = right>投稿者</td><td><input type = "text" name = "name"></td></tr>
<tr><td align = right>記事</td><td><text area rows=5 cols=30 name="article"></td></tr>
<tr><td><colspan = 2 align = "center">

<hr>
<input type = "submit" value = "送信"><input type = "reset" value = "取消"></td></tr>
</table>
</form>
</body>
</html>

何故か実行出来ないのですがどの辺りに問題ありますか?
178nobodyさん:2007/09/12(水) 23:40:56 ID:???
日本語で(ry
179nobodyさん:2007/09/12(水) 23:57:01 ID:???
>>177
問題箇所の特定くらい自分でしろ
180nobodyさん:2007/09/13(木) 01:41:33 ID:jFkqotf1
動的ページの場合
それぞれのページへsession_start();は書かないといけないのでしようか?
read.php を読み込んでそこへ各ページ用ファイルを読み込んでるページなんですが。
ページを移動すると、セッションが切れてしまいます。
181nobodyさん:2007/09/13(木) 02:06:32 ID:???
>>180
自己レス
list($GET_PAGE3,$_SESSION['navi_on'])=explode("-",$GET_PAGE03);
としていたので$_SESSION['navi_on']に何も入るはずがないページに行くと
セッションが空になっていたようです。
失礼しました
182nobodyさん:2007/09/13(木) 08:28:27 ID:???
perlでは臨時で変数を使いたいときに、
{
my $tmp = $foo;
}
ってブロック内で処理してたんですけど、
PHPではこういうときはどうやるんですか?
183nobodyさん:2007/09/13(木) 09:12:18 ID:???
>>182

まず>>1を読みたまえ
184182:2007/09/13(木) 09:25:06 ID:???
自己解決しました
185182:2007/09/13(木) 10:16:24 ID:NzuBOnrd
>>184
消えてくれませんか?
ここはレベルがほんとひくいですね。げんなりしました。
186182:2007/09/13(木) 10:24:30 ID:n543y+IO
>>185
185は私ではありません。
わざと人のことを騙って楽しむなんて気持ち悪い人たちですね。
信じられません。
もう質問はいいです。
187182:2007/09/13(木) 10:25:54 ID:NzuBOnrd
>>186
もう騙りはいいんで
188182:2007/09/13(木) 10:29:18 ID:GzCzMpSl
もう騙りはいいんで
189nobodyさん:2007/09/13(木) 10:32:09 ID:???
今回のケースは>>1に書いてあることを守れなかった>>182がいけない
190nobodyさん:2007/09/13(木) 11:12:21 ID:???
>>182
ここはこんなところだ
もう2度と来るんじゃないぞ
191626:2007/09/13(木) 11:41:49 ID:???
6つの変数が同じかどうか比較するためにはどう書いたら一番効率がいいでしょうか?
教えてくださいえらい人
192nobodyさん:2007/09/13(木) 11:46:05 ID:???
なんつうか、専ブラじゃデフォでsage設定だったりして、
単純にID出し忘れるやつもいるんだから、
ID出してまで本人ぶるのはやめようぜ。
本当に>>185 or >>186が本人だったらただの痛い人だが。
193nobodyさん:2007/09/13(木) 11:47:57 ID:TsTr8KNx
〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●〓●
TOSHIBAのCX925LL(ウィンドウズXP搭載)に市販のウィルス対策ソフトのウィルスキラーゼロ(E-フロンティア社)をインス
トール後、アップロードしようとしているのですが、相性が悪いらしくアップロードできません。

付属されていない市販のセキュリティーソフトをインストール、アップロードするために、元々インストールしてあったソフトウェア
「ファイナルストッパー」、「マカフィー・パーソナルファイアウォールプラス」をアンインストールした後、市販のセキュリティー
ソフトが相性が悪かった為か、うまくインストールアップロードできなかった場合、再度「ファイナルストッパー」「マカフィーパー
ソナルファイアウォールプラス」をインストールすることはできますか?
また、どうすればできますか?

どなたか教えてください。お願いいたします。
194nobodyさん:2007/09/13(木) 12:02:28 ID:???
>>192
だすわすれたらだせばいい
195nobodyさん:2007/09/13(木) 12:27:52 ID:???
>>191
if (($a * $b * $c * $d * $e * $f) / 6 == $a)
196nobodyさん:2007/09/13(木) 12:29:21 ID:???
なんで整数って決まってんだよw
197nobodyさん:2007/09/13(木) 12:40:27 ID:???
>>191
ageってww
そこまでしてID出したくないのかww
198nobodyさん:2007/09/13(木) 12:53:59 ID:???
>>191
効率ってコードサイズ?実行速度?
199nobodyさん:2007/09/13(木) 13:06:58 ID:???
>>195
平均出すなら * じゃなくて + だろ
平均出してもしょうがないけど
200nobodyさん:2007/09/13(木) 13:15:30 ID:???
>>199
相乗平均も知らない低脳ハッケーン
201nobodyさん:2007/09/13(木) 13:28:50 ID:???
>>201
相乗平均知らない低脳ハッケーン
202nobodyさん:2007/09/13(木) 13:29:29 ID:???
6で割ってるのが見えないの?
203nobodyさん:2007/09/13(木) 13:31:02 ID:???
>>200
6が見えてない馬鹿ハッケーン
204nobodyさん:2007/09/13(木) 13:33:55 ID:???
+して/って1の方が早くない?
205nobodyさん:2007/09/13(木) 13:34:49 ID:???
>>191
if ($a == $b && $a == $c && $a == $d && $a == $e && $a == $f) {
echo "同じ";
}
206nobodyさん:2007/09/13(木) 13:45:16 ID:???
201 :nobodyさん:2007/09/13(木) 13:28:50 ID:???
>>201
相乗平均知らない低脳ハッケーン
207nobodyさん:2007/09/13(木) 13:50:32 ID:???
191 :626:2007/09/13(木) 11:41:49 ID:???
6つの変数が同じかどうか比較するためにはどう書いたら一番効率がいいでしょうか?
教えてくださいえらい人

195 :nobodyさん:2007/09/13(木) 12:27:52 ID:???
>>191
if (($a * $b * $c * $d * $e * $f) / 6 == $a)





すべての変数が3という同じ値だとします。

(3 * 3 * 3 * 3 * 3 * 3) / 6 == 3

計算すると729 / 6 == 3


バカだな。ワロタwww
208nobodyさん:2007/09/13(木) 13:53:09 ID:???
×と+の間違いだとしても、

(2 + 4 + 3 + 3 + 3 + 3) / 6 == 3

で全部同じじゃなくてもtrueになる。
209nobodyさん:2007/09/13(木) 14:04:27 ID:???
perlで書くところのヒアドキュメント
$obj->msg(<<EOT);
ここにメッセージ
EOT

なんですが、phpで書いてもうまくいきません。
$obj->msg(<<< EOT)
ここにメッセージ
EOT;

正しい書き方教えてください。
210nobodyさん:2007/09/13(木) 14:51:35 ID:???
寝る間もないくらい仕事がコンスタントにくるweb制作者というのは
それだけで、いいweb制作者ということです。(低レートに甘んじてりゃ
それなりに仕事くると思っている人がいますが、現実はそうじゃない)

当然レートは高いのです。
年収1000万なんて軽いですよ。
211nobodyさん:2007/09/13(木) 15:51:15 ID:???
うん。技術力とは関係ないけどね。
212nobodyさん:2007/09/13(木) 16:42:03 ID:e5IQPewW
PHP5のPDOで、HTTP_Session的に、
sessionをデータベースに格納してくれるライブラリってありませんか?
213nobodyさん:2007/09/13(木) 16:44:06 ID:???
>>212
いまいち意味がわからないけどシリアライズでもしたら?
214nobodyさん:2007/09/13(木) 18:38:27 ID:???
>>209
マニュアル
215nobodyさん:2007/09/13(木) 19:14:09 ID:p1bkeaSR
携帯用掲示板を作っているのですが、
セッションを使わずに
入力→確認→投稿
のようなものを作りたいのですが
何か良い方法はないでしょうか?
hiddenも考えたのですが、ページの容量(入力したテキスト)が2倍になってしまいます。
216nobodyさん:2007/09/13(木) 19:34:09 ID:???
3画面構成のファイルを作りたいのですが、1ファイルのみで3画面を構成する事は出来ますか?
習った事を考えると3ファイル作らないと行けないのですが、出来ますか?
217nobodyさん:2007/09/13(木) 19:37:40 ID:???
>>215
自分でトークン発行すれば〜
>>216
出来るよ
218216:2007/09/13(木) 19:38:43 ID:???
>>217
有難うございました。
219nobodyさん:2007/09/13(木) 19:45:40 ID:p1bkeaSR
>>217
トークンとは何でしょうか?
220216:2007/09/13(木) 19:47:53 ID:HG9TD0jf
>>217
どのようにしたらいいでしょうか?POSTで別ファイルにデータを送り取得する方法以外で
ヒントでも教えて頂けると嬉しいのですが。
221216:2007/09/13(木) 20:09:07 ID:HG9TD0jf
PHP内で条件分岐をさせれば良かったのですね。すいませんでした
222nobodyさん:2007/09/13(木) 20:38:16 ID:???
>>219
徹君の愛称
223nobodyさん:2007/09/13(木) 20:57:25 ID:???
PHPに限ったことではないのですが、例えば
if (・・・) {
 $error+=1;
} else {
 if (・・・) {
  $error+=2;
 } else {
  if (・・・) {
   $error+=4;
  } else {
   //エラーが無いなら処理
  }
 }
}
このように様のifのネストが深くなっていくことが想定された場合
swich (0) {
default:
 if (・・・) {
  $error+=1;
  break;
 }
 if (・・・) {
  $error+=2;
  break;
 }
 if (・・・) {
  $error+=4;
  break;
 }
 //エラーが無いなら処理
}
上記の様にswitchまたはdo-whileなどで囲み、エラーはbreakで脱出するという書き方は邪道でしょうか?
224nobodyさん:2007/09/13(木) 20:59:11 ID:???
ネストしない書き方にしろよ
225nobodyさん:2007/09/13(木) 21:24:00 ID:???
>>223
それ以前の書き方に問題がある気がしてならない
226nobodyさん:2007/09/13(木) 21:33:08 ID:???
正統も邪道もあるかい。自分がいいならそれでいい
227nobodyさん:2007/09/13(木) 21:41:18 ID:???
基本的には好きなように書けばいいが、物には限度ってものがある
228223:2007/09/13(木) 21:43:20 ID:???
$sql = "SELECT hoge FROM tableA WHERE foo=?";
$res=& $db->query($sql, $foo);
if (!DB::isError($res) && $res->numRows()==1) {
 $res->fetchInto($row);
 $sql = "UPDATE tableB SET hoge=? WHERE foo=?";
 $res=& $db->query($sql, array($row['hoge'], $foo));
 if (!DB::isError($res) && $db->affectedRows()==1) {
  $res->fetchInto($row);
  $sql = "UPDATE tableC SET hoge=? WHERE foo=?";
  $res=& $db->query($sql, array($row['hoge'], $foo));
  if (!DB::isError($res) && $db->affectedRows()==1) {
   //以下(ry
  }
 }
}
こんなケースはどうでしょう?
どうやってネストを回避しますか?
229nobodyさん:2007/09/13(木) 21:55:01 ID:???
あくまで一例としてエラー情報を持たせてエラー画面に飛ぶ
即座に中断
ぐらいは誰でも瞬時に思いつく
230nobodyさん:2007/09/13(木) 21:58:54 ID:???
>>223
俺はこうする
if (・・・) {
 $error+=1;
} elseif (・・・) {
 $error+=2;
} elseif (・・・) {
 $error+=4;
} else {
 //エラーが無いなら処理
}
231nobodyさん:2007/09/13(木) 22:08:30 ID:???
(1行目)|項目1-0,項目2-0,項目3-0,項目4-0,項目5-0
(2行目)|項目1-1,項目2-1,項目3-1,項目4-1,項目5-1
(3行目)|,,,,
(4行目)|項目1-2,項目2-2,項目3-2,項目4-2,項目5-2
(5行目)|,,,,
(6行目)|項目1-3,項目2-3,項目3-3,項目4-3,項目5-3
↑…というcsvファイルを

データのない行(上の例では3・5行目)で区切って、
1〜2行目、4行目、6行目とそれぞれ配列に格納するには
どういう考え方でプログラムを組んだらよいでしょうか。

横方向であれば、file()で読み込ませた後に、
list()やexplode()関数で分割する考え方になりますが…
232nobodyさん:2007/09/13(木) 22:15:31 ID:???
switch case
233231:2007/09/13(木) 22:17:17 ID:???
>>232
それで解決しました
ありがとうございます
234nobodyさん:2007/09/13(木) 22:33:59 ID:???
>>228
function hoge() {
 $sql = "SELECT hoge FROM tableA WHERE foo=?";
 $res=& $db->query($sql, $foo);
 if (DB::isError($res) || $res->numRows()!=1) return false;
 $res->fetchInto($row);
 $sql = "UPDATE tableB SET hoge=? WHERE foo=?";
 $res=& $db->query($sql, array($row['hoge'], $foo));
 if (DB::isError($res) || $db->affectedRows()!=1) return false;
 $res->fetchInto($row);
 $sql = "UPDATE tableC SET hoge=? WHERE foo=?";
 $res=& $db->query($sql, array($row['hoge'], $foo));
 if (DB::isError($res) || $db->affectedRows() != 1) return;
 //以下(ry
 return true;
}

235nobodyさん:2007/09/13(木) 22:34:31 ID:???
or exit
でいいじゃんw
236nobodyさん:2007/09/13(木) 23:06:47 ID:???
つうか似たようなUPDATEが2回続いた時点で関数を分けたほうが(ry
237nobodyさん:2007/09/13(木) 23:07:57 ID:KIVNzqAT
正規表現のエスケープを一括で行ってくれる関数ってないですかね。
皆さんは自力でエスケープしてます?
238nobodyさん:2007/09/13(木) 23:09:13 ID:???
PHP 4.3.9 をダウンロードしたいのですが、
本家ダウンロードページでは最新バージョンへのリンクしか見つかりませんでした。
どこかでダウンロードできないでしょうか。
239nobodyさん:2007/09/13(木) 23:19:59 ID:???
>>237
preg_quote()
240nobodyさん:2007/09/13(木) 23:20:28 ID:???
最新バージョンを使いましょう
241nobodyさん:2007/09/13(木) 23:21:35 ID:???
なんでそんなセキュリティホールあるものをダウンロードしたいんだか。
ttp://jp2.php.net/releases/
242nobodyさん:2007/09/13(木) 23:23:39 ID:KIVNzqAT
>>239
ありがとうございます。そしてさすがPHP。
かゆい所に手が届きすぎです。
243nobodyさん:2007/09/13(木) 23:24:04 ID:???
3とかあるんだwww
すげー、逆に使ってみたい。
244nobodyさん:2007/09/13(木) 23:26:29 ID:???
>>241
見つかりました。ありがとうございます

なんでこのバージョンかというとクライアントの指定してきた
ミドルウェア(これもまた相当古いバージョンですが)が4.4系に対応していない為なのです。
最新版でもいけんだろ、と高をくくっていたら本当に4.4.7では動かなかったもので…
ともあれこれで作業できます。助かりました
245nobodyさん:2007/09/13(木) 23:29:52 ID:???
ネックになってる箇所特定して修正したほうが数十倍はいいと思うが・・・
246nobodyさん:2007/09/13(木) 23:30:06 ID:???
あー、確かに4.4で構造変わってPECLとか互換性無くなってたもんね。
まーそんなときもあるよな。
247nobodyさん:2007/09/14(金) 01:10:03 ID:rv5QGrrD
質問させてください

$a = "きしkydpxckdyyrxはにr6ksれなつにxsrrkyちてとyrkきくなにき";
($aは不規則の連続文字)

だとして行の先頭から指定の文字数(またはバイト)で
改行を差し込みたい場合はどうすればいいのでしょうか?


mb_substrでバイトを測れても、これだと
最初の改行を入れた後に次の行の先頭から測ることが必要ですよね
で、正規表現で測っても、eregi_replaceなどで変換ではなく
文中に差し込む必要があるため、どうしていいのかわからなくなってます;;
248nobodyさん:2007/09/14(金) 01:36:49 ID:???
指定の文字列+残りの文字列で正規表現取って間にコード入れて次に改行コードで切って同じことすれ
249nobodyさん:2007/09/14(金) 01:38:38 ID:???
つかmb_substrでいいじゃん。mb_substrがバイト数測るものとは知らなかったけど。
250nobodyさん:2007/09/14(金) 01:56:33 ID:rv5QGrrD
>>248
すいません、どうかソースでお願いします。
>>249
文字列を返すものでした。無知です。
251nobodyさん:2007/09/14(金) 02:36:09 ID:07nleTLs
すいません、初心者です。お教えいただきたいんですけど、
&&をつかうと"Parse error: syntax error, unexpected T_STRING "
がでてしまいます。
if(($a) == "XX" && ($c) == "XX"){
でなにかおかしいところってありますか?
252nobodyさん:2007/09/14(金) 03:03:06 ID:???
>>250
あとは置き換えてやるだけじゃね?
253nobodyさん:2007/09/14(金) 03:11:47 ID:???
>>251
($a)($c) のカッコが邪魔
254nobodyさん:2007/09/14(金) 03:26:09 ID:n3vYsmYw
OS:Windows
DB:SQL Server or Oracle
Webサーバ:Apache

次のような処理を現在ではPHP(+APC)を使っておこなっています。
これよりも、もっと高速に処理したい場合、どんな手段があるでしょうか?
(例えば、Cで作ったCGIとか、Apacheモジュール使うとか)
また、どの程度(1割くらい、とか倍以上、とかレベルでOK)早くなるでしょうか。

ちなみに、Webサーバを分散させる、マシンのスペックを上げる、そもそもHTTP使うな、
では、ちょっと無理な事情があるので、これ以外でお願いします。

やりたいこと
クライアント(ブラウザではない)からPOSTされてきたデータを元に以下の処理をします。
1.SQL文のWhere句にくっつけて実行、結果の値をクライアントに返す
2.パラメータの値により異なるファイルをダウンロードさせる
3.ファイルがアップロードされてきたときは特定のフォルダに保存
※1〜3はURLによって処理内容を分けています。

これらを1時間に20万リクエストくらいをさくさくこなしたい。
ちなみにサーバはCPU:3GHz、メモリ2〜3GBな感じを考えてます。

よろしくお願いします。
255nobodyさん:2007/09/14(金) 06:54:59 ID:???
>>254
Cで専用のApacheモジュールを作るのが1番早いけど
ボトルネックはファイルのアップダウンでプログラムの処理する部分はたいしたことないから全然変わらないと思う
256nobodyさん:2007/09/14(金) 08:34:24 ID:???
>>254
20万リクエストなんてそんなこそらじゃ出せないだろ。
会社の宿題かな?
257nobodyさん:2007/09/14(金) 08:36:46 ID:???
アップローダでも作るんだろ
Javaで作ったほうがいいと思うが・・・
258nobodyさん:2007/09/14(金) 09:02:48 ID:rtA26Ijr
>>254
20万アクセスに耐えるプログラムは組めたとしても
サーバー構成が1台でWEB+DBの設計だと持たないと思われるので
むりじゃね?
259nobodyさん:2007/09/14(金) 09:05:19 ID:???
>>254
処理内容を見る限りプログラム側の処理なんて微々たるもので
ほとんどはWebサーバーのパワーと帯域次第って感じに見えるから
PHPでもmod_perlでもJavaでもそんな変わんないんじゃないかな。
(CGIだとCで作ったって何で作ったって確実に今より遅くなると思う。
あとApacheモジュールって…PHPは最初からApacheモジュールなんだが)

ちなみにこれ、
1.Whereに付加する条件って何項目くらいあるの?十分に最適化されてるの?
2.ダウンロード・アップロードするファイルの平均サイズは?
3.ダウンロード・アップロードのリクエスト頻度は?
が気になるけど、処理速度を改善するとしたらダウンロード用か
アップロード用にWebサーバーと回線を分離してやるのがまず第一だと思うけどね。
聞いてる限りじゃボトルネックになりそうなのはここしか見当たらないから
それ以外に改善の余地なんてほとんどない気がする。

まずボトルネックになってるのはどこかちゃんと分析してやりなよ。
少ない資源でチューンしようって言うならそんな漠然とした話じゃ無理。
260nobodyさん:2007/09/14(金) 09:27:38 ID:???
test
261nobodyさん:2007/09/14(金) 09:31:26 ID:???
>>247
こんなんでどうだろ。
$a = "きしkydpxckdyyrxはにr6ksれなつにxsrrkyちてとyrkきくなにき";
$b = $a;
do {
$a = $b;
$b = mb_ereg_replace('^([^\n]{4})([^\n])', "\\1\n\\2", $a, "m");
} while($a != $b);
var_dump($b);

結果:
string(67) "きしky
dpxc
kdyy
rxはに
r6ks
れなつに
xsrr
kyちて
とyrk
きくなに
き"
262nobodyさん:2007/09/14(金) 09:32:18 ID:ri4+Axdv
mb_strlenって文字の長さを取得する関数ですよね?
<?

$text = "あいうえお";

echo mb_strlen($text);

?>
での出力が「8」になるのですがなぜでしょう?
ちなみに、文字コードはUTF-8です。
Shift_JISに直すと「5」と、正常に表示されます。
263nobodyさん:2007/09/14(金) 10:00:05 ID:???
>>262
mb_strlen("あいうえお","UTF8");
264nobodyさん:2007/09/14(金) 10:01:15 ID:ri4+Axdv
>>263
有難うございます
文字コードを指定して使えるんですね。
完全に見逃していました。
265nobodyさん:2007/09/14(金) 10:08:58 ID:???
>>262
>>264
つか、mbstring.internal_encodingの設定はどーなってんのよ。
266nobodyさん:2007/09/14(金) 10:12:11 ID:ri4+Axdv
すんません、Shift_JISなってました
267nobodyさん:2007/09/14(金) 13:16:52 ID:ri4+Axdv
include専用のPHPを作ったときって
パーミッション何にするのがいいのでしょうか?
0700?
268nobodyさん:2007/09/14(金) 13:22:09 ID:???
>>267
パーミッションは特に気にせずDOCUMENT_ROOTの範囲外に置くのがいいと思う。
269nobodyさん:2007/09/14(金) 13:23:29 ID:ri4+Axdv
>>268
サンクス
その方法頂きます
270nobodyさん:2007/09/14(金) 13:30:44 ID:ri4+Axdv
と思ったらレンサバだから置けなかったorz
271nobodyさん:2007/09/14(金) 13:34:58 ID:???
レン鯖でも置けるでしょ。今どきpublic_html内のみなんて鯖あるの?
272nobodyさん:2007/09/14(金) 13:38:12 ID:ri4+Axdv
無料鯖ならめちゃくちゃあるね・・・
273nobodyさん:2007/09/14(金) 14:19:16 ID:???
それじゃしょうがないな。
600か606にするしかないんじゃないかな。
600にしようと思ったらApacheの実行ユーザで
アップロードしないといかんと思うけど。
274nobodyさん:2007/09/14(金) 14:21:28 ID:ri4+Axdv
>>273
そかー
どもです。
275nobodyさん:2007/09/14(金) 14:22:42 ID:???
あ、606よりは604がいいのか。
276nobodyさん:2007/09/14(金) 14:47:02 ID:???
あたしゃ拡張子を.cgiにしてパーミッションで実行させないように
してるよ。
277nobodyさん:2007/09/14(金) 16:45:35 ID:sODpU595
EUC-JPなPostgres上に登録されてある'@'という文字を含むデータを読み込んできて
EUC-JPなPHPで処理をしているのですが、IE7やFirefoxなどでは化けてしまいます。
JIS-X0213(でしたっけ?)のローマ数字なのだと思うのですが、
正しく扱えない文字なのでしょうか?それともPHPが何か変な変換でも
かましていたりするのでしょうか?

UTF-8を使うのが正解なのかな。
278nobodyさん:2007/09/14(金) 16:50:55 ID:???
>>IE7やFirefoxなどでは化けてしまいます。

こういう事では?
279nobodyさん:2007/09/14(金) 18:29:39 ID:???
>>277
UTF-8がいいと思うけど
EUC-JPにも種類があってはしごたかやローマ数字等の拡張文字部分に違いがある
Postgresは知らないけどたぶんeucJP-ms(eucJP-win)だと思う
一方IEやFirefoxのEUC-JPはコードページ51932というやつ
最新のPHPではCP51932が使えたと思うから変換すれば使えるかも
$str = mb_convert_encoding($str, "CP51932", "eucjp-win");
でもEUCからEUCへの変換ってあほっぽいよね
何のために文字コード統一したのかわからない
で1行目に戻る
280nobodyさん:2007/09/14(金) 18:46:54 ID:sODpU595
まず mb_convert_encoding($str, "utf-8"); のように、
utf-8やsjis-winに変換すると '?' になります。

>>279 さんのを試してみると見事に変換に成功しました。
("utf8", "eucjp-win"); とか("sjis-win", "eucjp-win");
でもうまくいけるようです。

EUCからEUCへ変換するのは確かに間抜けですけど、
まぁ仕方ないのかもしれません。
これがバッドノウハウって奴でしょうか。
281nobodyさん:2007/09/14(金) 18:50:25 ID:???
>>274
htaccessが置けるなら、includeされるファイルを置くディレクトリを用意して、直アクセスは弾けば良い
282nobodyさん:2007/09/14(金) 19:23:17 ID:sODpU595
>>280 追記
Javaで書かれたコードでは正しく処理されていたので、
Javaはeucjp-winと同じ方法でutf-8と変換していたという事でしょうか。
283nobodyさん:2007/09/14(金) 21:37:58 ID:PTuC71hk
前回訪れた訪問日時を表示するように作りたいのですが、何かヒントを下さい・・・
284nobodyさん:2007/09/14(金) 21:41:13 ID:???
1.日時を記録する
2.次に訪れたら保存した日時を取り出す+記録する
3.表示する
285nobodyさん:2007/09/14(金) 21:45:51 ID:???
>>283
COOKIE
286nobodyさん:2007/09/14(金) 21:46:58 ID:???
携帯端末は?
287nobodyさん:2007/09/14(金) 21:50:15 ID:???
>>286
機器固有番号
288nobodyさん:2007/09/14(金) 22:09:16 ID:PTuC71hk
>>284-285
挑戦してきます。レス有難うございました。
289nobodyさん:2007/09/14(金) 22:53:02 ID:???
>>287 意味ねぇじゃん
290nobodyさん:2007/09/14(金) 23:11:59 ID:???
前回訪れた訪問日時なんて、
ログイン認証するようなサイトならともかく、
一般的な個人サイトならやめときな。
仕組み知らない訪問者は不気味がってアクセス数減るよ。
291nobodyさん:2007/09/15(土) 02:17:30 ID:???
仕組み知ってれば尚更行かないけどな
292nobodyさん:2007/09/15(土) 04:39:32 ID:V+kYhkB1
すいません。質問です。
10〜60の時はそのままで、0〜9の時は先頭に0をつけてて00や05にするには
何かいい方法ないでしょうか?
今は、if($a<10){ などとしてるのですが。
293nobodyさん:2007/09/15(土) 04:43:39 ID:???
sprintf("%02d",$a);
294nobodyさん:2007/09/15(土) 04:59:01 ID:???
>>293
うわ!すごい!ありがとうございます!
いままでifで数行使ってたのが1行で終わりました!
感謝です!
295nobodyさん:2007/09/15(土) 05:59:12 ID:???
wwwwwwwwwwwwwwwww
296nobodyさん:2007/09/15(土) 07:51:26 ID:rDYCANkK
おーーーーーーーーーーーーーーーーーーーーー
297nobodyさん:2007/09/15(土) 10:58:43 ID:???
mbではじまる関数が多いけどこれはなにか意味があるのでしょうか?
298nobodyさん:2007/09/15(土) 11:01:39 ID:???
っぱい
299nobodyさん:2007/09/15(土) 11:52:54 ID:FRg1UB2S
>>297
マルチバイト関数
300nobodyさん:2007/09/15(土) 12:26:59 ID:V+kYhkB1
phpでブラウザーがjavascriptが有効か無効かを調べるのはどうすればいいのでしょうか
301nobodyさん:2007/09/15(土) 13:56:23 ID:rxB3R/I3
これって何するスクリプトですか?
危険な香りがするのですあが・・・

ttp://usuarios.arnet.com.ar/larry123/safe.txt
302nobodyさん:2007/09/15(土) 15:25:45 ID:???
サーバの情報色々表示するスクリプトだろ
フリーの領域が何バイトあるかとか
別に危険な香りはしない
303nobodyさん:2007/09/15(土) 16:02:42 ID:CbXLFV8Y
PHPでは関数オブジェクトって作れないのかね?
$func = new Hoge();
$func('gorua');
こんなふうにやりたいのよ。
304nobodyさん:2007/09/15(土) 16:56:17 ID:???
ん?何のために?
305303:2007/09/15(土) 17:08:47 ID:CbXLFV8Y
いや、特別な理由ではないんですけどね。
オブジェクトの主要目的は関数オブジェクトにしたいなーと。
$factory = new MyFactory();
$obj = $factory->produce('foo');
よりは
$obj = $factory('foobar');
がイイナー。
まぁ、どっちでもいいんですが。
単にできないものかなと。
306nobodyさん:2007/09/15(土) 17:15:52 ID:???
正規表現で

$test = GetwordIntag("<title>ほげほげ</title><b>あああ</b><title>いいい</title>");
print_r($test);

function Hoge($str) {
preg_match("/<title>([^<]+)<\/title>/",$str,$match);
return $match;
}

と、このようにして、titleタグで囲まれた文字を配列で全て返すようにしたのですが、結果は
Array
(
[0] => <title>ほげほげ</title>
[1] => ほげほげ
)
となってしまいました。
どなたか、全て返す方法をご存知ではないでしょうか?
307nobodyさん:2007/09/15(土) 17:16:34 ID:???
>>306
$test = GetwordIntag("<title>ほげほげ</title><b>あああ</b><title>いいい</title>");

$test = Hoge("<title>ほげほげ</title><b>あああ</b><title>いいい</title>");
です。すみません。
308nobodyさん:2007/09/15(土) 17:23:16 ID:???
>>306
ループさせてください
309nobodyさん:2007/09/15(土) 17:27:58 ID:???
310nobodyさん:2007/09/15(土) 17:29:10 ID:???
>>308
>>309
ありがとうございます。
preg_match_allにすることで解決しました。
311nobodyさん:2007/09/15(土) 19:14:03 ID:???
PHP + MySQL でスケジュール表を作成中で、
縦に名前、横に日付、で○×という感じのUI (↓が例)にしたいのですが、

     1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 〜 31
名前1
名前2

名前ごとにSQLでforeachをさせるとHTML的にも簡単ですが、SQL回数が人数×日付になり
人数が増えた場合に速度や負荷が心配です。
(まあ気にするほどではないかもしれないが、設計的に間違ったスクリプトは嫌です)

日付でSQLをすると、該当月の末日数のSQLでDB鯖にはやさしいが
まず配列などに結果を入れて、後で表示HTML用にforeachする感じになり複雑です。

時と場合によると思いますが、皆さんは根本的にはどちらが好みでしょうか?
312nobodyさん:2007/09/15(土) 19:22:40 ID:???
>>311
日ごとに○と×なら整数型のビットフィールドにするとか。
1回のクエリーで1月分をまとめて取れるYo。
DBのテーブル設計を見直した方がよくないかい。
313nobodyさん:2007/09/15(土) 19:41:30 ID:???
test.txtの内容↓
ああああああ
いいいいいい

というのを、phpで

<p>ああああああ</p>
<p>いいいいいい</p>

と<p>タグで囲って出力したいのですが、方法が見つかりません
どのようにすれば良いのでしょうか?お願いします
314nobodyさん:2007/09/15(土) 19:50:25 ID:???
>>313
foreach (file('text.txt') as $line) { echo "<p>{$line}</p>\n"; }
こうか?
315311:2007/09/15(土) 19:53:28 ID:ITnns1Uw
>>312
1回!? マジですか

DBの設計まで行くと板違いになるので、情報小出しのようになってしまいましたが、
月の表示は>>311で、各○の部分はリンクで、押すと該当日のスケジュール(グラフ表示など)
という風にする予定です。 それでDBは日が中心のテーブルになってました。
(id, date, user_no, start_time, end_time, note こんな感じ)

DBのほうで月の表示用テーブルを増やし、各利用者が日のスケジュール登録時に
そっちのテーブルにも記録するような設計にする というのがイイのですかね?
いつもDB設計は変えず、表示のPHP側で色々複雑にしてた場合が多いので参考になります。

ただ、1回のクエリーでまとめて取る方法が分からないです。
もし宜しければ、簡単な表の例でいいのでSQLや処理を御教示お願い致します。
316312:2007/09/15(土) 20:12:00 ID:???
>>315
スケジュール表が、日ごとの有無と見えたので、
それなら1回のクエリで十分に見えました。
32ビットの整数なら1月分まとめて取り出せるなーと。

あと、1回のクエリで済ますなら配列を使う必要がありますね。

SQLは昔に少しかじった程度なのですぐに例をあげるのは無理です。
なんか偉そうなこといってスマンかった。orz
317nobodyさん:2007/09/15(土) 20:23:33 ID:rDYCANkK
>>314
それ行単位で囲むだけじゃん。

答えは>>318がきっと書いてくれるはず。
318nobodyさん:2007/09/15(土) 20:25:18 ID:???
断るw
319317:2007/09/15(土) 20:26:26 ID:rDYCANkK
ごめんなさい。
>>314で正解だ。
320nobodyさん:2007/09/15(土) 20:51:54 ID:???
>>314
ありがとうございます。ちょっと頭が固かったみたいです…

何度も質問すみません
今、Wikiもどきを作成しているのですが、
[http://nantoka.com:title=なんとか]

<a href="http://nantoka.com">なんとか</a>
のように出力することは可能でしょうか?
また、その方法があればご教授ください。。。
321nobodyさん:2007/09/15(土) 21:00:43 ID:???
>>320
preg_replace
322nobodyさん:2007/09/15(土) 21:06:45 ID:jy5G5jnH
phpの某コミュニティーでcookieのことを焼き菓子と読んでいたので、
それがずっと普通だと思っていて、金曜日の会社の設計会議で焼き菓子と何回か
発言したら、参加していた人から総スカンを食らった上に、
先輩に呼び出して、大目玉を食らいました。
ここの人は、cookieのことを焼き菓子って言ったりしますか?
323nobodyさん:2007/09/15(土) 21:15:44 ID:???
いわねえよwwwwww
ひさしぶりに吹いた
324nobodyさん:2007/09/15(土) 21:17:09 ID:???
>>321
$pattern = '/\[(.*):title=(.*)\]/';
$replace = '<a href="\1">\2</a>';
$str = '[http://hogehoge.com:title=ほげほげ]';
print preg_replace($pattern, $replace, $str);
でできました!
ありがとうございます!
325nobodyさん:2007/09/15(土) 21:18:23 ID:???
2ちゃん語をリアルで使うアフォと同じ。
326nobodyさん:2007/09/15(土) 21:21:10 ID:???
>>322
初耳だな
クッキーといっても食べれませんよ
程度なら耳にするが。そんな変なコミュあるのか?
327nobodyさん:2007/09/15(土) 21:24:08 ID:???
食べ残しに注意
328nobodyさん:2007/09/15(土) 22:17:50 ID:???
むぉたぶぇらるぇないよぉ・・もぐもぐ
329nobodyさん:2007/09/15(土) 22:50:03 ID:???
>>326
ビジネスの場で「ら」抜き表現は馬鹿っぽいからやめたほうが良いよ。
食べられませんって言ったほうがいい。
細かいけど。
330nobodyさん:2007/09/15(土) 22:52:32 ID:???
オマエはATOKか
331nobodyさん:2007/09/15(土) 23:12:15 ID:???
どっちかというと、Cookie発行をクッキーを焼く、取得を食べると表現するのを見かける。
332nobodyさん:2007/09/15(土) 23:17:20 ID:Xmsi68ZJ
ページ間移動してもプルダウンメニューの選択項目を保持し続けたいのですが、
項目選択後、送信ボタンを押して次ページに遷移し、
「戻る」のリンクをクリックして元のページに戻ると
常に一番上の選択項目が選択された状態となってしまいます。
下記の記述のどの辺りに問題があるかアドバイスいただけると嬉しいです。

mail.php
<?php
if($_POST['submit']){
header("Location: confirm.php");
exit();
}
require("./smarty/Smarty.class.php");
$smarty = new Smarty;
$smarty->template_dir = './smarty/templates';
$smarty->compile_dir = './smarty/templates_c';
$smarty->cache_dir = './smarty/cache';
$smarty->config_dir = './smarty/configs';
$smarty ->display("mail.html");
?>
333nobodyさん:2007/09/15(土) 23:18:18 ID:NcWcmSvF
2ch型掲示板をPHPで作っているのですが
ttp://pc11.2ch.net/test/read.cgi/php/1189309377/
のように拡張子を消してもPHPを実行させたいのですが、仕組みが分からず困っています・・・
ヒントだけでも構わないのでお願いします。
334nobodyさん:2007/09/15(土) 23:18:41 ID:Xmsi68ZJ
>>332の続きです

confirm.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<a href="mail.php">戻る</a>
</body>
</html>


mail.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<form action="mail.php" method="post">
<select name="test">
<option value="あ">あ</option>
<option value="い">い</option>
<option value="う">う</option>
</select>
<br>
<input type="submit" name="submit" value="送信する">
</form>
</body>
</html>
335nobodyさん:2007/09/15(土) 23:24:53 ID:???
>>333
$_SERVER
>>334
Session
336nobodyさん:2007/09/15(土) 23:38:19 ID:Xmsi68ZJ
>>335
レスどうもです。
Sessionを使う事も試してみたのですが、プルダウンメニューの場合どう記述すればよいか分かりませんでした。

例えばtextareaだと

<textarea>ここに表示したい内容を書いておく</textarea>

でページ移動しても記述内容を保存できるのは確認できたのですが。
337nobodyさん:2007/09/15(土) 23:50:07 ID:???
>>334
PHPというよりhtmlの問題じゃないの?selected属性ってなかったか?
338nobodyさん:2007/09/15(土) 23:54:07 ID:Xmsi68ZJ
>>337
selected属性も試したのですが、常にselectedを指定したものが表示されてしまうようになりました
(例:「あ」にselectedをつけた所、「う」を選択して送信ボタンを押し、戻るリンクで前画面に戻っても
毎回selectedが効いてしまっているようで、「あ」が選択された状態になってしまいました)。
339nobodyさん:2007/09/15(土) 23:58:12 ID:???
>>337
「う」を選択したという情報は$_SESSIONに保存してあるんだよね?
$_SESSIONの情報を元にselected属性を付けないとあかんですよ。
340nobodyさん:2007/09/15(土) 23:59:43 ID:???
そりゃ当たり前じゃん・・・

・selectedを付けると選択される
・ある要素を選択させたい

・ある要素のところにselectedを付ければいい
341nobodyさん:2007/09/16(日) 00:01:28 ID:???
「戻る」で入力項目を保持したい場合、通常はsubmitボタン使うけど、
ハイパーリンクにしたいのかな?
その場合はGETでmail.phpにパラメータを渡すか、JavascriptでPOSTに
してしまうか、セッション使うかになるかなあ。
submitボタンのが楽だと思うんだけど。
セッションは複数ブラウザ立ち上げたりするとアレなんで、フォームの
パラメータには使わないようにしてるなあ。

submitボタンを使う場合はhiddenでパラメータをformに埋め込み、
mail.phpにactionさせるだけ。
mail.phpには当然パラメータを受け取ってフォームに流し込む
仕組みが必要だけど、Smartyにはそのための関数やらがいろいろある。
もちっと調べなされ。
select〜optionあたりはべた書きじゃなく、↓みたいなのを使う。
http://smarty.php.net/manual/ja/language.function.html.options.php

個人的にはWebで基本かつ必須のformでの値の受け渡し方を理解していない
気がするので、まずはSmartyとか使わずにやってみた方がいいとおもう。
フレームワークやテンプレートエンジンは作業の効率化のためのものなので、
基本がなっていないと混乱すると思う。
342nobodyさん:2007/09/16(日) 00:06:42 ID:84mMghay
>>333
ttp://pc11.2ch.net/test/read.cgi/php/1189309377/」 は拡張子が消えていませんよ。
「.cgi」 という拡張子が現れています。
343nobodyさん:2007/09/16(日) 00:07:13 ID:???
>>341
>セッションは複数ブラウザ立ち上げたりするとアレなんで、フォームの
すいません、アレってどういうこと?
344nobodyさん:2007/09/16(日) 00:16:53 ID:ZprS1LjJ
>>339>>340
ご指摘ありがとうございます。
>>332のソースでは省いてますが、一応$_SESSIONに保存しているつもりです。
ただ、>>339>>340でご指摘されているとおり、$_SESSIONの情報を元にselectedをつけないといけないだろうなと言うのは想像が付くのですが、
記述の仕方が分かりませんでした。

>>341
ご指摘ありがとうございます。
submitボタンでは無くハイパーリンクにしたいです。
理由ですが、>>332は簡略化したものですが、実際には既存のソースを改造しています。
そしてご指摘の部分を触る権限があるか微妙なので。
どうしても無理ならsubmitボタンにする事も検討する必要があるとは思いますが。

後、ご指摘のとおりformでの値の受け渡しとか良く分かってません。
どうしても触る必要があり触っているのですが、まずはテンプレートエンジン無しで出来るようにしてみたいと思います。
345nobodyさん:2007/09/16(日) 00:55:38 ID:???
>>343
IEでCTRL+Nでブラウザも1個起動した場合、同じセッションが使用され、
サーバからは区別できなくなる。
IE以外のブラウザでも同様の現象が起きたりする。

んで、ブラウザAでページAを開いてて、ブラウザBを起動。
そちらでページBを閲覧し、ページAでsubmitする。
もしページAとページBで$_SESSIONに同じ変数を格納して
いた場合、ページAで入力した値がページBのもので上書きされる。

PHPだけでなくWebプログラム全般で起こる問題。
CRSF用にワンタイムチケット発行するついでに、チケットと
関連付けて入力内容をセッションに保持させればいいのかな〜
とか回避策考えてるけど、めんどいので放置中。
有効な対策とか知ってたら教えてくださいませ。
346nobodyさん:2007/09/16(日) 01:13:14 ID:???
>>344
退職者が管理してた社内システムの改修でもやることになったのかね。
PHPを勉強しつつ、ちょこちょこと機能追加や修正とか。

セッションにmail.phpでの入力値を全部格納してるなら、mail.htmlで
その値を取り出して動的に表示する仕組みを追加すればいいだけ。
confirm.phpの適当なところに
<?PHP print_r($_SESSION) ?>
って書けばセッションにちゃんと入ってるかどうかは分かるから確認。

Smartyはテンプレート(ここではmail.html)からセッションの値を
{$smarty.session.test}なんて記述で取得できる。
なんでさっきかいた{html_options}とか利用しつつ動的表示を行います。

でもま、他言語でのWebアプリ作成経験もない状態でアレモコレモは
却って習得に時間がかかると思う。
急がば回れで初心者向けPHPの本片手に基本からやった方がいいと思うよ。
フォームを利用したサンプルなんかは必ず載ってるし。
347343:2007/09/16(日) 01:13:51 ID:???
>>345
なるほど〜。
Webプログラムは専門じゃないのでこのような問題があるのは知りませんでした。
ありがとうございます。
348age:2007/09/16(日) 02:27:57 ID:Ws+84egL
SPLのExceptionの説明ってどっかにないですかね?
どれをどう使えばいいかよく分からないんで

Do You PHP はてな - いつの間にかExceptionの種類が増えてた
ttp://d.hatena.ne.jp/shimooka/20070820/1187594874
349nobodyさん:2007/09/16(日) 02:31:59 ID:???
350nobodyさん:2007/09/16(日) 02:44:55 ID:???
>>349
さんくす

読んでみたけどこれらの利点って、新たにファイルを読み込まなくていい事くらい?
351nobodyさん:2007/09/16(日) 17:57:23 ID:???
pregで

-html
あああああ
-html_end

の「-html」から「-html_end」を抜き出そうと思ったのですが、
preg_match('/-html\n(.+?)-html_end/', $str, $result);
としてもうまくいきません。どうすればよいのでしょうか?
352nobodyさん:2007/09/16(日) 19:09:38 ID:???
-html_end の直前にも改行あるっしょ
353nobodyさん:2007/09/16(日) 19:21:56 ID:???
>>352
それで試してみたところ、「-html」から「-html_end」が一行の場合は正常に出力したのですが、
-html
ああああああ
aaaaaa
-html_end
と、複数行になると、空のまま出力されてしまいます・・・
354352:2007/09/16(日) 19:31:09 ID:???
じゃあsオプション使えるかな?
pregはPerl互換らしいけどおれ先週末からPHPはじめたからどうだかわからん
/-html(.+?)-html_end/s
355nobodyさん:2007/09/16(日) 19:36:09 ID:???
>>354
それでいけました。ありがとうございます
オプションの存在を知りませんでした…orz
356355:2007/09/16(日) 19:45:40 ID:???
>>354
何度もすみません・・・
まったく私には理解不能な挙動をしているので、お手上げですorz

$str = file_get_contents("test.txt");
preg_match('/-html\n(.+?)\n-html_end/s', $str, $result);

と、テキストをファイルから読み込むと(内容は先ほどと同じです)、何も出力されない状態となってしまいました。
どうかお助けください
357352:2007/09/16(日) 20:41:28 ID:???
/-html\n(.+?)\n-html_end/sじゃなくて/-html(.+?)-html_end/sでダメ? 挙動がおかしい?
前者でダメならテキストファイルの改行コードが実行環境の改行コードと違うのかな?
もしsオプションが不安定なら
/-html([.\x0a\x0d]+?)-html_end/ とかでどう?
358nobodyさん:2007/09/16(日) 21:07:17 ID:???
>>356
テキストファイルとコードをUPして
359nobodyさん:2007/09/16(日) 21:20:08 ID:???
>>357 >>358
ありがとうございます。

$str = file_get_contents("test.txt");
preg_match('/-html(.+?)-html_end/s', $str, $result);

これで解決しました。
360nobodyさん:2007/09/16(日) 22:51:54 ID:4TCTiZPm
PHPのことを調べてもどうもよくわかるような解説がありません
具体的におしえてください
361nobodyさん:2007/09/16(日) 23:31:26 ID:???
>>360
ttp://www.php.net/manual/ja/
他に何が知りたいのさ。
362nobodyさん:2007/09/16(日) 23:44:45 ID:oQRqCBGu
メールを送信して、Yahooメールで見てみると、「山本」が「山」になってしまいます。
UTF-8からJISにエンコードすると、一部文字化けしてしまいます。
エスケープしてからエンコードしてエスケープを解除していても同じでした。
なので、件名をJIS、本文をUTF-8、ヘッダーのcharsetをUTF-8にしているのですが、
何か問題はありまs・・・・ありますよねorz
363nobodyさん:2007/09/16(日) 23:52:42 ID:???
>>362
UTF-8からJISに変換したものをテキストファイルに書き出したり
HTML上に表示させたりしても、その内容は化けてるの?
変換で化けるのかメール送信で化けるのかは切り分けた方がいいと思うけど。
364352:2007/09/17(月) 00:18:42 ID:???
JISコードの「本」には\が含まれてるからじゃない?
メールのヘッダ(件名や送信元)に漢字コードが含まれてる場合は普通はJISコードを
BASE64エンコードをして7ビット(アスキー)表現するのが普通
365nobodyさん:2007/09/17(月) 01:12:12 ID:???
質問です。
PHPが動作したときにある画像(例えばグーグルのロゴ画像など)
を自分のサーバに保存するようにしたいのですが、
どうしたらよいのでしょうか。
366365:2007/09/17(月) 01:22:27 ID:???
自己解決しました。
367nobodyさん:2007/09/17(月) 01:28:09 ID:???
>>366
まだ解決していないのに勘弁してください…
ダウンロードダイアログを開かずに自動でサーバに保存したいのです。
どなたかよろしくお願いします。
368nobodyさん:2007/09/17(月) 01:34:39 ID:AzPlrYBe
>>1
> ◆質問する時の注意
> ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
369365:2007/09/17(月) 01:53:43 ID:H7YfkkRc
すいませんでした。
ID表示させることを忘れていました。
370nobodyさん:2007/09/17(月) 01:59:17 ID:???
>>369
php.iniでallow_url_fopenがONに設定されていることが前提だけど、
file_get_contents()で該当URLの出力を読み込んでファイルに保存すればいい。
371365:2007/09/17(月) 02:00:06 ID:e+n8gM7j
↑は偽者です。
372nobodyさん:2007/09/17(月) 02:01:02 ID:???
>>371
一足遅かったなwww
373nobodyさん:2007/09/17(月) 02:14:08 ID:???
374nobodyさん:2007/09/17(月) 03:10:54 ID:nPCszMjg
参照渡しの値渡しって速度的な違いってありますか?
ほぼないですよね?
375nobodyさん:2007/09/17(月) 03:30:35 ID:???
>>374
参照渡し「の」値渡しってなんだ??
376nobodyさん:2007/09/17(月) 03:34:13 ID:???
>>374
渡すデータのサイズ次第だとは思うが、
多くの場合、参照渡しは遅い。
377nobodyさん:2007/09/17(月) 03:40:18 ID:H7YfkkRc
>>370
ありがとうございます。
おかげで出力できました。
378nobodyさん:2007/09/17(月) 03:41:44 ID:???
ちなみにfile_put_contentsで1行でいけるな
379nobodyさん:2007/09/17(月) 04:32:37 ID:???
エラーチェックくらいしようよ。
380nobodyさん:2007/09/17(月) 06:33:42 ID:JQdZ1nWf
月曜日になってしまいましたがそろそろ
>>300を教えて欲しいのですが。
381nobodyさん:2007/09/17(月) 06:44:26 ID:???
>>380
javascriptでなんかの値をセット

サーバに送信

成功したらおk、失敗したら×
382nobodyさん:2007/09/17(月) 07:16:14 ID:ySslSBrA
>>376
何言っちゃているの?お前?
オブジェクトのコピーが伴う値渡しが常に遅いに決まってるだろ。
383nobodyさん:2007/09/17(月) 11:06:30 ID:???
PHPの場合、単純にそうとも言い切れない
Cのような単純なポインタとは別もんだからな
384nobodyさん:2007/09/17(月) 11:10:11 ID:???
PHPは実際に値が変更されるまでは
データがコピーされないしな。
385nobodyさん:2007/09/17(月) 11:32:11 ID:???
>>382
もうすこし具体的に説明しないとあなたの負けです
386nobodyさん:2007/09/17(月) 11:39:26 ID:???
実際にベンチマーク出せばわかることだろ
どちら側もベンチマークすら出してないでどっちの負けとか言う馬鹿がいるんだな
387nobodyさん:2007/09/17(月) 12:32:21 ID:???
ばーかばーか
388nobodyさん:2007/09/17(月) 12:47:59 ID:iCPVuNeR
$_SERVER['REMOTE_ADDR']はhtmlspecialcharsをしておくべきでしょうか?
ipはクライアント側で自由に文字列を書き換えられませんよね。
389nobodyさん:2007/09/17(月) 12:49:29 ID:???
しておくべき
390nobodyさん:2007/09/17(月) 12:53:10 ID:iCPVuNeR
わかりました。date()もやったほうがいいんでしょうか?
391nobodyさん:2007/09/17(月) 12:59:10 ID:???
はぁぁぁぁぁぁぁぁぁぁぁぁ?????
392nobodyさん:2007/09/17(月) 13:06:11 ID:???
もう全部やっとけよw
393nobodyさん:2007/09/17(月) 13:23:40 ID:W3Fsfqr5
394nobodyさん:2007/09/17(月) 13:27:31 ID:???
395nobodyさん:2007/09/17(月) 13:41:38 ID:RU4hBw1O
PHP とJavaScriptのちがいはなに?
396nobodyさん:2007/09/17(月) 13:44:23 ID:???
(・(ェ)・)
397nobodyさん:2007/09/17(月) 14:02:04 ID:???
>>395
1.文法や書式が違う。でも基本がC言語からの発展なので似てるとこは多い。
2.PHPはサーバー側で動作する。JavaScriptはブラウザ側で動作する。
398nobodyさん:2007/09/17(月) 14:06:17 ID:???
>>395
PHP 3文字
JavaScript 10文字
399nobodyさん:2007/09/17(月) 14:10:20 ID:???
>>395
PHP技術者の平均時給 2,700円(PG)
JavaScript技術者の平均時給 1,100円(PG/DN)
400nobodyさん:2007/09/17(月) 14:19:56 ID:???
javascript技術者なんているのか・・・
401nobodyさん:2007/09/17(月) 14:56:44 ID:ySslSBrA
>>400
いるだろ普通に、っていうか、それは思っていても言ってはいけないことだろ。

天皇陛下は贅沢三昧の税金どろぼう、とか
長嶋はもう廃人で外にでしゃばって出てくるな、とか
拉致なんかの小さいことにこだわるよりも国益を優先されろ、とか

思っていても言ってはいけないことがある事くらい察しろ。
402nobodyさん:2007/09/17(月) 15:10:50 ID:???
酷い釣りだ
403nobodyさん:2007/09/17(月) 15:12:38 ID:RU4hBw1O
>>397
PHPだとクライアント側はいっさいさわれないってこと?
404nobodyさん:2007/09/17(月) 15:14:59 ID:???
当然です
405nobodyさん:2007/09/17(月) 15:24:49 ID:kIYZsn2K
>>346
返信遅くなり申し訳ありません。
作業内容としてはそんな所です。
もっともPHPを勉強してという所はすっ飛ばして、いきなり本番といった所ですが。

あの後、いろいろ調べたのですが、>>332よりはマシになったのですが、
まだ解決していません。

それと、教えていただいたセッションに入っているか確認する方法で、
問題なさそうな事を確認しました。

後は、>>341のアドバイスに従い、テンプレート無しで試してみました。
また>>339>>340のアドバイスを元に、$_SESSIONの情報を元にselected属性を付けてみたつもりです。
上記の状態で、Javascriptで戻った場合は大丈夫なのですが、普通にハイパーリンクで戻ると
設定項目は保持してません。
下記にソースを添付しますので、普通にハイパーリンクでも設定項目が保持できる方法をアドバイスいただけると助かります。
406nobodyさん:2007/09/17(月) 15:25:22 ID:kIYZsn2K
mail2.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="confirm2.php" method="post">
<select name="toshi">
<option <? if($_SESSION['toshi'] == "あ")echo "selected " ;?>value="あ">あ</option>
<option <? if($_SESSION['toshi'] == "い")echo "selected " ;?>value="い">い</option>
<option <? if($_SESSION['toshi'] == "う")echo "selected " ;?>value="う">う</option>
</select><br /><input type="submit" name="submit" value="送信する" />
</form>
</body>
</html>

confirm2.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$_SESSION['toshi'] = $_POST['toshi'];
print($_SESSION['toshi']);
?>
<br /><a href="mail2.php">普通に戻る(NG)</a><br />
<a href="javascript:history.back()">JavaScriptで戻る(OK)</a>
</body>
</html>
407nobodyさん:2007/09/17(月) 15:46:12 ID:???
<?php session_start(); ?>
408nobodyさん:2007/09/17(月) 15:59:15 ID:kIYZsn2K
>>407
アドバイスどうもありがとうございます。
最初は使用していたのですが、途中から下記のwarningが出てしまったので取り外しました。

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by

上記ソース内でセッションを切ってないのが原因かとも思いましたが、
切るタイミングがなさそうだったのでそのままにしてました。
なのでsession_start();を入れても設定項目を保持できない事にはかわりなかったりします。
409nobodyさん:2007/09/17(月) 16:00:49 ID:???
>>408
英語も読めないのか
410nobodyさん:2007/09/17(月) 16:10:32 ID:kIYZsn2K
>>409
すいません、日本語すら怪しかったりします・・・
今試したら、Warningが出なくなっていました。
そして選択項目も保持していました。

アドバイスを頂いた皆様どうもありがとうございました。
また何かありましたらよろしくお願いします。
411nobodyさん:2007/09/17(月) 17:57:19 ID:???
インクルードファイルの依存関係を図式化してくれるツールってありますか?
412nobodyさん:2007/09/17(月) 18:46:11 ID:iCPVuNeR
>>393
たかぎさんのおっしゃることはわかるのですが・・・う〜ん
413nobodyさん:2007/09/17(月) 19:31:07 ID:???
過ぎたるはなんとか
414nobodyさん:2007/09/17(月) 20:01:55 ID:???
>>411
doxygenあたりでできないかなと思ってやってみたがincludeのグラフは無かった。
クラスのグラフは生成してくれた。

graphvizとPerl等のスクリプトで生成するのはどうよ?
415nobodyさん:2007/09/17(月) 20:10:35 ID:YADbl6mN
>>412
たかぎさんはWEBプログラマではないと診た
416nobodyさん:2007/09/17(月) 20:15:05 ID:???
>>393>>412>>415
自演乙
417nobodyさん:2007/09/17(月) 20:21:39 ID:???
>>410
挿入する場所が一番上だったり途中だったりしたんですね
418nobodyさん:2007/09/17(月) 21:08:35 ID:kIYZsn2K
>>417
そのとおりです。
最初はbodyの下に入れてて、warningは出なかったのですが(ただし選択項目は不保持)、
何が原因かは分からないのですが、途中からwarningが出た為一度取り外しました。

その後>>409のアドバイスを元に、一番上に挿入した所、warinigがでなくなり選択項目も保持するようになりました。

後は本番に移植して動けば良いのですが、本番はソースが複雑だったので怪しい所ではありますが。
419nobodyさん:2007/09/17(月) 21:46:41 ID:Pxt8ssvb
PEAR::DB、PEAR::MDB2とPDOを比べると、
もう比較レベルにならないぐらいPDOが速いし、prepareとかすごく便利だお。
でも、PEARライブラリは、PEAR::DB、PEAR::MDB2に対応してるのしかないお。

PHP5に移行考える人はどうした感じ?
1. PERA使いまくり、PDOはまだ封印。
2. PEAR封印、PDOで1から書きまくる。
3. PEARに、PDO用のコンテナ書きまくる。
4. PEAR、PDOなんかいらね。フレームワークと運命共同体
5. MySQL関数やPostgreSQL関数使ってるからどうでもいい
420nobodyさん:2007/09/17(月) 22:01:51 ID:???
CakePHPのO/Rマッパーでオブジェクトとして扱って
SQLなんてものはどうしても必要なとき以外書かないので
どうでもいい。
421nobodyさん:2007/09/17(月) 22:47:06 ID:???
Zend Framework使ってる人っていないのかね?
422nobodyさん:2007/09/17(月) 23:09:07 ID:???
たびたび仕様変更→bugが紛れ込む→年月経てるわりに枯れてない感じ
なんでフレームワーク、拡張ライブラリともに利用する気になれない

#私見ですよ、私見。 悪意はありませんです、ハイ。
423nobodyさん:2007/09/18(火) 03:10:57 ID:???
場合による。
とにかく速度重視ならSQL関数べた書き
特に案件さえ通ればおkならPDOやFWのO/Rマッパーで楽をする
洋梨は好かん
424nobodyさん:2007/09/18(火) 03:21:07 ID:???
すみません、PHPを動作させる際にCGIモードとモジュールモード(mod_php)があるようなのですが、
自分のサーバでどちらのモードが有効なのか判断する方法はありますでしょうか?

また、意識的にどちらで動くか設定する方法があれば教えてください。
425nobodyさん:2007/09/18(火) 05:07:56 ID:???
426nobodyさん:2007/09/18(火) 07:49:43 ID:???
>>424
phpinfo
427nobodyさん:2007/09/18(火) 09:41:18 ID:???
>>403
さわれるよ
428nobodyさん:2007/09/18(火) 12:52:45 ID:???
>>419
PDO知らないのでPEAR使いまくり
429nobodyさん:2007/09/18(火) 14:04:24 ID:FMVGiEK2
DB関係の話大丈夫かな・・・?

膨大な量のCSVデータをMySQLに全て格納したいんですが、
何か手っ取り早い方法はないでしょうか。
phpMyAdminのインポートでは、ファイルサイズがオーバーしているらしくて読み込めません。

ちなみに、100MBくらいあります。
430nobodyさん:2007/09/18(火) 14:09:01 ID:???
>>429
手っ取り早いのはmyimportユーティリティ

>phpMyAdminのインポートでは、ファイルサイズがオーバーしているらしくて
単なるスクリプトの実行タイムアウトでは?
431nobodyさん:2007/09/18(火) 14:11:24 ID:FMVGiEK2
>>430
phpMyAdminでインポートさせようとすると
「エラー
アップロードしようとしたファイルが大きすぎるようです。対策については ドキュメント をご覧ください」

との表示が出ます。
(ドキュメントが英語でわからないですorz)
432nobodyさん:2007/09/18(火) 14:15:19 ID:FMVGiEK2
色々と検索してみた結果いいものを見つけました
ttp://www.eshima.info/archives/2006/11/xamppphpmyadmin.php

ちとこの方法でやってみます。有難うございました。
433nobodyさん:2007/09/18(火) 14:30:50 ID:LV1060jK
空のテキストファイルを開こうとすると、以下の文でNGと表示されてしまいます。
テキストファイルに何か一文字でも入力して保存しておくとOKと表示されました。
このテキストファイルには掲示板のログとして、csv形式で保存するのに利用したいのですが、
空でも読み込んでOKと出すにはどうしたらよろしいでしょうか?

$textfile = "test.txt";

if ($file = file($textfile)){
echo "OK";
} else {
echo "NG";
}
434nobodyさん:2007/09/18(火) 14:32:44 ID:???
>>433
返り血が読み込めたかどうかではなく、
読み込んだ結果何が入っていたかになる。
つまり、ファイルを開いたが何も入ってないと必然的にFALSE血が返る
435nobodyさん:2007/09/18(火) 14:43:42 ID:LV1060jK
そういうことだったんですね。
ファイルが存在してて、ファイルを開けるかどうかって判断だけがしたいのですが、
file関数ではだめでしたね;;
436nobodyさん:2007/09/18(火) 14:50:03 ID:???
>>435
is_readableとかどうでしょ
437nobodyさん:2007/09/18(火) 15:02:03 ID:LV1060jK
まさしくそれです!
勉強になりました。ありがとうございます。
438nobodyさん:2007/09/18(火) 15:17:27 ID:YODMOTH4
ieは、川のほとりで「はしで待ってて」というと普通なら、橋か端で待つのに、箸屋を探しにいって戻ってこない状態。
理解できないと言うよりそもそも理解の意味も分かってない。
439nobodyさん:2007/09/18(火) 15:37:22 ID:???
俺のたこ焼きだけたこが入ってなかったのですがどうしてですか?
440nobodyさん:2007/09/18(火) 15:37:49 ID:???
>>439
>>1読め、質問するならID出せ
441nobodyさん:2007/09/18(火) 15:43:49 ID:???
>>439
嫁のいやがらせ
442nobodyさん:2007/09/18(火) 15:56:54 ID:???
たこ入ってないほうが好きなんだけど
443nobodyさん:2007/09/18(火) 16:22:12 ID:???
変数展開がうまくいかないので書き方教えてください
$str= "$this->opt['class']"; // -> Array[class]になってしまう
$str= "${this}->opt['class']"; // -> Object->opt[class]になってしまう
444443:2007/09/18(火) 16:22:28 ID:???
事故解決しました
445nobodyさん:2007/09/18(火) 16:31:11 ID:FMVGiEK2
mb_convert_variables結構多様するけど
ループで回してmb_convert_encodingしたほうがいいのかな?

なんとなく気になった・・・
446nobodyさん:2007/09/18(火) 16:34:27 ID:???
>>444 真剣に質問してるのでそういうのはやめてください
447nobodyさん:2007/09/18(火) 16:37:34 ID:???
真剣なら>>1>>4ぐらい読もう
448nobodyさん:2007/09/18(火) 16:44:48 ID:???
真剣なら、おっぱいの画像をアッぷする位の気を使えよ。
449nobodyさん:2007/09/18(火) 17:07:20 ID:???
俺は本当に事故解決したことがある。事故って納期延期とかマジわろす
450nobodyさん:2007/09/18(火) 17:24:53 ID:???
社会人失格
451nobodyさん:2007/09/18(火) 17:30:52 ID:???
>>449
遅れるのは仕方が無いとして、遅れる連絡を早くしろといつも言っているじゃないか!
こっちのスケジュールが空いてしまうんだよ、賠償もんだそ。
452nobodyさん:2007/09/18(火) 18:01:59 ID:???
>>443
そのおっぱいカッコの使い方…さてはきさまPerl屋だな?
453nobodyさん:2007/09/18(火) 18:13:44 ID:???
ここはPerlerも多いだろ
454nobodyさん:2007/09/18(火) 18:35:05 ID:???
>>452
まぁそうなんだけど・・
Perlで書いてたモジュールをPHPで書いてるんだけどはじめてのPHPはむずいね
やっと変数展開の詳しいサイト見つかったからそこをヒントに解決したよ
みんなありがとよ おっぱいの画像は持ってないから勘弁を
455nobodyさん:2007/09/18(火) 18:41:17 ID:dkyCnIzv
PHP+MYSQLの勉強してるんだけど
今、おみくじ・フォームから入力したものをそのまま出力・なんのエラー処理もしてない一行掲示板
WEBを取り込んで軽く処理をさせて表示する物を作ったんだけど
次何作ればいいかな、MYSQL使った掲示板作ろうかと思ってるんだけどなんか違うんだよね
レベルが一気に上がりすぎてるのが原因か、いいサンプルが無いのか、今更掲示板作っても楽しくないのか
原因かわからないんだけど、どうも、やる気が出ない。
456nobodyさん:2007/09/18(火) 18:51:02 ID:???
そこでPHP(Smarty) + MySQL + Ajax な画面遷移のないWEBアプリに挑戦。
457nobodyさん:2007/09/18(火) 18:55:55 ID:???
掲示板作成の流れを基にCakePHPの使い方を教えてくれ。
458nobodyさん:2007/09/18(火) 19:10:03 ID:???
include_onceで絶対パスが読み込めなくなりました。
相対パスで記述した場合は読み込めます。
この辺の設定はどこに関係しているのでしょうか?


ドキュメントルートにtest.phpとtest.htmlを設置して、
単純に以下のように読み込ませるだけです。
--
<?php
include_once '/test.html';
?>
--

しかし、以下のエラーが出ます。
--
Warning: include_once(/test.html) [function.include-once]: failed to open stream: No such file or directory in e:\www\html\test.php on line 2

Warning: include_once() [function.include]: Failed opening '/test.html' for inclusion (include_path='.;c:\php\includes;C:\php\pear') in e:\www\html\test.php on line 2
--

環境は以下になります。
--
Windows 2000
Apache 1.3.34
PHP 5.1.2
--

何卒よろしくお願い致します。
459nobodyさん:2007/09/18(火) 19:14:41 ID:???
>>458
ドキュメントルートが/な訳ないだろwww
460nobodyさん:2007/09/18(火) 19:16:08 ID:???
include_once 'test.html';
または
include_once './test.html';

つかそれ絶対パスじゃないと思うが絶対パスにしたいなら
include_once 'e:/www/html/test.html';
461nobodyさん:2007/09/18(火) 19:17:17 ID:???
なんでID出してない奴に丁寧に答えてんだよ!
ほんとにお前優しいから困る
462nobodyさん:2007/09/18(火) 21:28:19 ID:WeDTSAXg
半年前の日付を求めるのはどうすればいいのでしょうか?

date("Y-m-d",strtotime("-6 month"));

では駄目でした。
463nobodyさん:2007/09/18(火) 21:32:41 ID:???
>>419に答えてくれた皆さんありがとう。
やっぱ、これがベストって感じなのは今はまだないっぽいですね。
464nobodyさん:2007/09/18(火) 21:44:27 ID:???
>>463
何をもってベストとするんだ?
>>462
それでできたけど。
465nobodyさん:2007/09/18(火) 22:31:54 ID:YODMOTH4
phpで動的ページを運営しているのですが、
javaスクリプトがオンとオフで違うページ(内容)を表示したいのですがうまくいきません。
read.phpであくまでもイメージですが、
<noscript>
<?
$script="no";
?>
</noscript>
<?
if($script=="no"){
echo $mainpage_no;
}else{
echo $mainpage;
}
?>
こんな感じでスイッチのようなものが欲しいのですが何か方法ないでしょうか
466nobodyさん:2007/09/18(火) 22:53:06 ID:???
<script language="JavaScript">
<!--
JavaScriptコード
//-->
</script>
<?php
PHPでOnの時のHTMLをうんたらかんたら
?>
<noscript>
<?php
PHPでOffの時のHTMLをうんたらかんたら
?>
</noscript>
467nobodyさん:2007/09/18(火) 22:53:20 ID:???
>>465 サーバとクライアントとを近藤してマイカ?
468nobodyさん:2007/09/18(火) 23:00:42 ID:WeDTSAXg
>>464
すみません、できました・・。

別の質問ですが、
$month="06"だった場合、表示する時に"6"としたいのですが、
どうすればよいのでしょうか?

date("n",strtotime($month))としても駄目でした
469nobodyさん:2007/09/18(火) 23:09:46 ID:???
>>468
echo sprintf('%d', $month);
echo substr($month, 1, 2);
echo (int)$month;

お好きなものを
470nobodyさん:2007/09/18(火) 23:14:31 ID:YODMOTH4
>>466
どもです。
それもやってみたのですが、ソースを見ると同じ内容が2回も書かれてるのをみて唖然として
それで今スイッチを探してるのです。
ネットで探してもそれらしき情報ないようでPHPの使う人はJAVAスクリプトは使わないんですかね。
471nobodyさん:2007/09/18(火) 23:15:17 ID:???
<html>
<head>
<script type="text/javascript">
window.onload=function(){
document.getElementById('main').style.display = "";
}
</script>
</head>
<body>
<noscript>
JavaScriptがoffな人のボディ
</noscript>
<div id="main" style="display:none">
JavaScriptがonの人のボディ
</div>
</body>
<html>

JavaScriptで振り分けたいなら、JavaScript使えばよろし。
472nobodyさん:2007/09/18(火) 23:19:59 ID:???
ああよく考えたら466はなってなかったな。すまん。
473nobodyさん:2007/09/18(火) 23:23:41 ID:???
>>470
JSが有効か無効かはサーバからは判断できないから
探してもそれらしき情報なんて出る訳が無い。

ソースまで気にするのならどっかにリダイレクトさせるなりするしかないんじゃね?
JSONつかってやるってのもあるだろうけど既存の動的なサイトがあるんなら
それを対応させるのは相当面倒になると思うよ
474nobodyさん:2007/09/18(火) 23:28:11 ID:ZcU0BWXG
フォームからデータを受け取ったページで
print_r($_SESSION);
を記述しておくと下のように表示されました(一部抜粋ですが)。

Array ( [action] => process [timing1] => あ [timing2] => い [comments] => う

ただし、print_r($_SESSION);の後に、
if(isset($_SESSION["○○○"]))を記述してみると(○○○にはtiming1などが該当)、
timing1はfalseに対し、
timing2とcommentsはtrueでした。

timing1もtrueになるようにしたいのですが、思い当たる点があればアドバイスいただければと思います。
475nobodyさん:2007/09/18(火) 23:53:14 ID:YODMOTH4
>>471
ありがとうございます。
やってみたところ希望してた動作をしてくれています。
感謝感謝です!
476nobodyさん:2007/09/18(火) 23:57:05 ID:dkyCnIzv
>>456
知らない言葉が沢山ですが
とりあえず、ググって見ようと思いますありがとう!
477nobodyさん:2007/09/18(火) 23:57:32 ID:YODMOTH4
>>473
>>471をみてオンの人の所で読みに行くphpでオン用オフ用で分けて変数が空なら
オフの内容を、変数に例えば$java="on";と入ってればオン用内容を出すようにしてみました。
かなりいいとこまで出来てきました。
478nobodyさん:2007/09/19(水) 00:01:08 ID:???
479nobodyさん:2007/09/19(水) 00:06:14 ID:???
純粋なPHPの質問ではないかもしれませんが、Web経由でユーザに
アップロードさせたWordやExcelファイルをPDFに変換した上で、
ユーザにPDFファイルを返す、ということをするにはどうすればよいでしょうか?
Webサーバ上にAcrobat8.1はインストールしてあります

Acrobatではムリで
http://www.simplesystems.co.jp/product/pdfutl/pdfutl.html#DocToPDF
↑こういうもの
を使わないとダメでしょうか?
480nobodyさん:2007/09/19(水) 00:09:15 ID:???
>>474
timeing1が何らかの理由でセットされてない或いはタイポしてるとしか
>>477
クライアントサイドからサーバサイドの変数を操作して引き継げてんの?
本当にいいとこまでできたんなら凄いからぜひコード見せて。振り分け関係の部分だけでいいから。
>>479
http://pear.php.net/package/File_PDF
とかCOMとか。
481nobodyさん:2007/09/19(水) 00:19:16 ID:???
>>480
ありがとうございます
でもdocumentationらしくものがなく・・・お手上げです
せっかく教えていただいたのにすみませんが私ではムリそうです
482nobodyさん:2007/09/19(水) 00:24:35 ID:???
なんのdocumentation?
つかどの質問なのか分かんないけど
483nobodyさん:2007/09/19(水) 00:44:57 ID:FnoZX1AE
>>480
レスありがとうございます。
print_r($_SESSION);で表示されてもセットされないって事があるんですか?
タイプミスは一応気にしてみてみたつもりですが、再度チェックしてみます。
484nobodyさん:2007/09/19(水) 00:58:17 ID:???
>>483
問題が発生するコード見せて
485nobodyさん:2007/09/19(水) 01:32:59 ID:FnoZX1AE
>>484
申し訳ない。
コードは今手元にないんだ。
明日と言うか今日再チャレンジしてみて、どうしても駄目だったら、
現象が再現する最低限のソースを出せるように準備したいと思います。
486nobodyさん:2007/09/19(水) 01:35:44 ID:???
<?php

function f(&$arg) {
return $arg['c'];
}
function g(&$arg) {
return $arg;
}
function h(&$arg) {
return isset($arg['c']);
}

$a=array();
f($a); // error
g($a['c']); // not error
h($a['c']); // not error
?>

なんでこの言語設計者はこんなバッドノウハウを埋め込みやがりますか?
487nobodyさん:2007/09/19(水) 01:43:48 ID:gkslbv3A
変数と式と値の違い、その他注意すべき構文上のグループがあればおしえてください。
isset() が関数ではなくステートメント(スペシャルフォーム?) なのは分かった。
488nobodyさん:2007/09/19(水) 01:45:10 ID:???
>>487
つマニュアル
489nobodyさん:2007/09/19(水) 02:00:28 ID:???
>>486
別にエラーにならないが?
490nobodyさん:2007/09/19(水) 02:01:10 ID:gkslbv3A
isset
(PHP 4, PHP 5)
isset ― 変数がセットされているかどうかを検査する

$a=array();
isset($a['b']]);
でエラーは出ないので$a['b']は「変数」ということでしょう。驚くべきことに。
んでは、「変数」って$aや$a[index] の他に何があるの?

もうPHPのソース読むしか無い?マニュアルすらアテにならんのだが。
491nobodyさん:2007/09/19(水) 02:02:35 ID:???
オッパッピー
492458:2007/09/19(水) 02:02:47 ID:RXNedNOk
458です。

>461
ID表示させず申し訳なかったです。

>459 >460
レスありがとうございます。

勉強不足で申し訳ないですが、
ドキュメントルートを起点にしたインクルードってできないのでしょうか?
493nobodyさん:2007/09/19(水) 02:03:13 ID:???
>>489
Undefined index: c in hoge on line 4
とでた
494nobodyさん:2007/09/19(水) 02:10:45 ID:???
Notice はエラーじゃねーよ
495nobodyさん:2007/09/19(水) 02:21:09 ID:???
E_NOTICEのEはexceptionとかerrorのEではないと?
これ、PHPのプログラムとして誤りではないんですか?
496nobodyさん:2007/09/19(水) 02:23:16 ID:???
>>492
できるよ。マニュアル参照。
497458:2007/09/19(水) 03:32:07 ID:RXNedNOk
>>496
もう少しヒントを頂けると嬉しいです、、。

include_pathに設定なんかを行う感じでしょうか?
特別なことをせずにインクルードできるなら是非教えて頂きたいです。
よろしくお願いします!
498nobodyさん:2007/09/19(水) 04:58:30 ID:???
>>486
エラーが出るのがおかしいと感じてるのか、出ない下2行をおかしいと感じてるのか分からんが、
http://www.php.net/manual/ja/language.references.php
ここ読んでなんとなくリファレンスとはそういうもんかなあと俺は思った。
関数の引数に限らず、
<?php
$a = &$hogehoge['aaaaaa'];
?>
リファレンスの代入でエラーになる事は無いみたい。

まあ俺なら
if (isset($a['c']) g($a['c']);
か、
g($a);
function g(&$arg) {
if (!isset($arg['c')) return;
}
とするけどね。
499nobodyさん:2007/09/19(水) 05:20:58 ID:Y/2cENkk
>>486の頭がおかしいと思う
500nobodyさん:2007/09/19(水) 08:15:46 ID:???
>>486
>>498 のように参照元が未定義でも黙って勝手に定義しちゃうな。
仕様と言われたらしょうがないが、嬉しくない動作だ。

error_reporting(E_ALL | E_STRICT);
unset($a);
$b = &$a[0]; # 沈黙
var_dump($a); # array(1) { [0]=> &NULL }

>>490
変数が定義済みかつ NULL 以外かどうかを bool で返す言語構造だ。
エラーを出すなんてマニュアルのどこに書いてあるのよ。
501nobodyさん:2007/09/19(水) 09:14:47 ID:???
>>498のような答えを待ってました、ありがとうです。
まだよくわかんないですが。。

どちらがオカシイというか、
・一貫性がないなぁ
・他のプログラミング言語ではみられないし、直観的でない動作だなぁ
という風に思ってました。


頭がおかしいとか言っちゃってる人?がいますが、この程度のこともハッキリできないって正直怖くね?
と思ってたのでちゃんと分かって有り難かったです。


でも例えば、

$a =& $hogehoge['b'];
return $a['c'];

これはE_NOTICEが出ないのに、
>>486のf($a)でエラーがでるのはなんでだろう。

こんなん、エラーが発生した位置から実際のバグが特定しにくいと思うんだけど…
とにかくPHPの参照と配列が組み合わさると地雷、という風に理解すればいいかねぇ。
502nobodyさん:2007/09/19(水) 09:18:42 ID:gkslbv3A
これがE_NOTICEを出さないって意味です。>>486のf($a)はE_NOTICEを出すので
厳密に参照引数と参照変数が同じというわけではなさそう。
<?php
function g() {
$a =& $hogehoge['b'];
return $a['c'];
}
g();
?>
まあとにかく地雷ってことか…
503nobodyさん:2007/09/19(水) 09:56:38 ID:rpyBUC34
おはようございます。
モジュールの評価をお願いしたいのですが、よろしいでしょうか。

機能としては、文字を整形するものです。
タグが使えない掲示板などでも、きれいな表の状態を維持できるものです。

公開ページになります。
http://penlabo.web.fc2.com/PHP/HTML-AA.html

よろしくおねがいいたします。
504nobodyさん:2007/09/19(水) 10:53:55 ID:Y/2cENkk
>>501
ごめん。
八つ当たりをしてしまった。
気にしないで下さい。
505nobodyさん:2007/09/19(水) 12:42:37 ID:???
オマエ童貞だろ
506nobodyさん:2007/09/19(水) 12:45:03 ID:Ur82wVvy
phpのプログラムの納品が終わりまして、一般ユーザー向けにマニュアル書いているんだけど、
言葉使いに迷っております。

ある機能があるんだけど、
hogehoge機能という言葉を使う代わりに、
hogehogeエンジン、hogehogeシステム、hogehogeプログラム、hogehogeロジック
って書こうと思いますが、どれが一般人に分かりやすいですか?
507nobodyさん:2007/09/19(水) 12:49:10 ID:???
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot sendsession cookie - headers already sent by (output started at /foo/bar.php:167) in /foo/bar.php on line 184
PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot sendsession cache limiter - headers already sent (output started at /foo/bar.php:167) in /foo/bar.php on line 184
session_start()のところでこんなエラーが出てスクリプトが止まってしまいます。
なにが原因でしょうか?
508nobodyさん:2007/09/19(水) 12:54:48 ID:???
次どうぞー
509nobodyさん:2007/09/19(水) 12:54:48 ID:???
>>506
一般ユーザって社内?コンシューマ?
社内ならシステムでいいんじゃね。

てか、その辺はお客さんと折衝してるときの
ニュアンスで決めちゃうからなー。
よくわからんわ。

>>507
>>1 IDを表示させてね。
>Cannot sendsession cookie - headers already sent
既にヘッダー文字列が送られている為にセッションを開始することが出来ません。

よくあるのは、空白とかが<?php ?>の前にある時ですかね。
510nobodyさん:2007/09/19(水) 13:02:09 ID:Ur82wVvy
>>509
レスありがとうございます。紛らわしくてすみません。
一般ユーザーというのは、一般消費者向けです。

マニュアルといっても、電子マニュアルでして、
サイトに載せる予定です。hogehoge機能のhogehogeの部分が横文字なので、
機能じゃなくて別の言葉はないか、とクライアントに言われて困っています。
511507:2007/09/19(水) 13:07:07 ID:qdL49ylm
>>509
ありがとうございます。
確かに先にheaderでというものをやってました。
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

session_start()はこれより前にやらないといけないということですね。
後で確認してみます。
512nobodyさん:2007/09/19(水) 14:36:21 ID:ywTkCFki
掲示板で
入力→確認→書き込み
の流れをファイル分担させずに、綺麗なソースで書きたいんだがお勧め方法ある?
513nobodyさん:2007/09/19(水) 14:39:15 ID:???
>>512
丸投げするなよ
綺麗なソースかどうかなんて見てみないとわかるわけないだろ
ていうかファイル分けないとか謎制限いらんだろ
フレームワークでも使って作れ
514nobodyさん:2007/09/19(水) 14:40:04 ID:???
>>512
掲示板最初から作るんだったら、どこかのサイトの掲示板を使った方が
いいんじゃない、その方が安全で手間がかからないし。
たとえば、
http://www.bigcosmic.com/
とか
515nobodyさん:2007/09/19(水) 14:41:09 ID:???
>>514
すげーーー、ここ月額でたった80円かよ。
しかも、めちゃめちゃ高機能。
おれも、ここに変えようかなぁ。
516nobodyさん:2007/09/19(水) 14:42:13 ID:ywTkCFki
>>513
ん〜、何ていうんだろ
いろんなとこでこの作業を行いたいからファイル分けると増えすぎてゴチャゴチャする

swtich ($resgit){

case "A":
require_once("hoge1.php");
break;

case "B":
require_once("hoge2.php");
break;

case "C":
require_once("hoge3.php");
break;

}

だと早いけど、
この実行するPHP「hoge1〜3.php」を何かの変数に格納して
あとで実行できないかなと・・・
517nobodyさん:2007/09/19(水) 14:42:49 ID:???
>>514
うわぁ、すごい安い!!!
それに、すごいかわいい。こんなに初めてかも。
おれ、ここの掲示板使ってみる。いい情報ありがとぉーーー
518nobodyさん:2007/09/19(水) 14:43:41 ID:???
>>514-515
何この自演宣伝
もう少し時間空けてから書き込めよ
519nobodyさん:2007/09/19(水) 14:44:36 ID:???
2chでの宣伝行為はひろゆきに金とられるぜ?
520nobodyさん:2007/09/19(水) 14:44:42 ID:???
>>517
早速おれも見てみた。
すごいね。これ。
しかも、すごい運用実績があるし、信頼できそうだね。
今使っている掲示板ダメダメなので、早速これ使ってみるよ。
521nobodyさん:2007/09/19(水) 14:46:55 ID:???
>>516
MVCをしたいってこと?
なんかフレームワーク使ってる?
それとも、デザイン込みで1ファイルにしたいの?

質問ばかりでごめんね。
やりたいことがはっきり見えなくて。
522nobodyさん:2007/09/19(水) 14:50:09 ID:ywTkCFki
>>521
こっちこそ詳しくかかずにすみません
PEARを使ってます
デザイン込みで1ファイルなので

<?
$type1 = Aの場合のPHP+HTML文
$type2 = Bの場合のPHP+HTML文
$type3 = Cの場合のPHP+HTML文
?>
<html>
<body>
<?
switch ($regist){

case "A":
  $typeAのPHP+HTML文を実行
break;

case "B":
  $typeBのPHP+HTML文を実行
break;

case "C":
  $typeCのPHP+HTML文を実行
break;

}
?>
</body>
<html>
523nobodyさん:2007/09/19(水) 14:50:41 ID:VHjt1ihL
>>516
require_once("hoge{$resgit}.php");
かな
524nobodyさん:2007/09/19(水) 14:53:58 ID:ywTkCFki
>>523
どもです。
ですが、require_onceを使うためには実行するPHPを別ファイルで保存しなくてはいけないので、
それをしないで、実行する文を変数か何かに格納して条件別にそれを実行したいのです。

ヒアドキュメントで
$text = <<<_HTML_
<html>
<body>
<? echo "テスト" ?>
</body>
</html>
_HTML_;

eval($text);

としてみたのですが、evalはPHP文のみみたいですね・・・。
525nobodyさん:2007/09/19(水) 14:56:09 ID:DH/EOPt7
>>524
やろうとしている事がアホすぎるってのは理解して、尚それをやろうとしてるの?
それとも、やろうとしてることがアホだって理解してないの?
526nobodyさん:2007/09/19(水) 14:58:13 ID:???
>>524
functionでいいのでは?
527nobodyさん:2007/09/19(水) 14:58:33 ID:VHjt1ihL
>>524
はぁはぁ、つまりユーザーアップロードのテンプレートを使わせたいわけだろ。
アップロード時に検査して問題がなければPHPとして置き換えたらいいでしょ。
それが嫌なら毎回置き換えろ。
528nobodyさん:2007/09/19(水) 14:59:54 ID:ywTkCFki
>>526
よく考えたらそれでよかったです・・・
有難うございましたorz
529nobodyさん:2007/09/19(水) 15:08:48 ID:???
PECLってペックルかとオモテたらピックルだったのね。
530nobodyさん:2007/09/19(水) 15:09:10 ID:???
ピクルかと思ってた
531nobodyさん:2007/09/19(水) 15:13:14 ID:???
>>528
いいんかいw
まぁ、良かったです。

>>529
ペクルって呼んでたorz
532nobodyさん:2007/09/19(水) 15:14:01 ID:???
俺はレガートにピークルってよんでたぜ
533nobodyさん:2007/09/19(水) 15:44:14 ID:ywTkCFki
$hogehoge = "あああ";
$test = "example.com";
$2ch = "まろゆき";

function Test(){
  global $hogehoge;
  global $test;
  global $2ch;

  echo $hogehoge;
  echo $test;
  echo $2ch;
}

Test();

外部の変数を取り込むにはglobalが必要ですが、
上記の場合では、
global $hogehoge;
global $test;
global $2ch;

としなくてはいけないですが、
変数を全て取り込むような宣言はありませんか?
534nobodyさん:2007/09/19(水) 15:48:17 ID:VHjt1ihL
$GLOBALSとか?
535nobodyさん:2007/09/19(水) 15:52:00 ID:DH/EOPt7
>>533
何がしたいのかよくわからないが、引数で配列にでもして渡せば?
536nobodyさん:2007/09/19(水) 16:05:39 ID:???
グローバル変数なんて使うなよ・・・
537nobodyさん:2007/09/19(水) 16:08:09 ID:???
perl慣れした人だとPHPは違和感あるかも
538nobodyさん:2007/09/19(水) 16:08:48 ID:???
Perl慣れした人がPHPに違和感感じなかったらPHPは何なんだよ
539nobodyさん:2007/09/19(水) 16:47:29 ID:???
つまりは

$GLOBALS[hogehoge] = "あああ";
$GLOBALS[test] = "example.com";
$GLOBALS[2ch] = "まろゆき";

function Test(){
  global $GLOBALS;

というわけだよ

っうか
global $hogehoge,$test,$2ch;
でよくね?

これで20個渡したりする場合もあるよ?
540nobodyさん:2007/09/19(水) 16:51:02 ID:???
>global $GLOBALS;
( д) ゚ ゚
541nobodyさん:2007/09/19(水) 16:52:31 ID:???
>>539
お前どこの基地外・・・
542nobodyさん:2007/09/19(水) 16:53:50 ID:???
>>539
なんだそりゃ・・・

$hogehoge = "あああ";
$test = "example.com";
$2ch = "まろゆき";

function Test()
{
echo $GLOBALS['hogehoge'];
echo $GLOBALS['test'];
echo $GLOBALS['2ch'];
}
543nobodyさん:2007/09/19(水) 16:56:33 ID:???
>>542
オブジェクトもそれで渡せたっけ?
544nobodyさん:2007/09/19(水) 16:57:52 ID:???
>>539
ネタだよな?w
http://search.net-newbie.com/php/language.variables.scope.html

例 12-3. globalのかわりに$GLOBALSを使用する

<?php
$a = 1;
$b = 2;

function Sum()
{
$GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;
?>
545nobodyさん:2007/09/19(水) 16:58:26 ID:???
用途がわからんから何ともいえんがこれでいいだろ・・・

class ex
{
private $hogehoge = "あああ";
private $test = "example.com";
private $ch = "まろゆき";

public function ex_print(){
echo $this->hogehoge;
echo $this->test;
echo $this->ch;
}

}

$a = new ex();
$a->ex_print();

もしくは

$a = array('hogehoge'=>'あああ','test'=>'example.com','2ch'=>'まろゆき');
test($a);

function test($output_array){
foreach( $output_array as $val ){
echo $val;
}
}
546nobodyさん:2007/09/19(水) 17:02:10 ID:???
仕事中のおまいらに質問

$hogehoge['aaa']
$hogehoge[aaa]

''って使ってる派? 使わない派?
どっちが多いのかな
547nobodyさん:2007/09/19(水) 17:03:10 ID:???
>>546
俺は使ってる
たしか、使わないと変数としての「aaa」かどうか判断するために時間かかるって聞いたぞ
548nobodyさん:2007/09/19(水) 17:05:37 ID:???
使わないとか意味がわかんねーよ、使わないでできるのかよ、って思ってやってみたらできたけどNoticeでるぞ
549nobodyさん:2007/09/19(水) 17:06:02 ID:???
>>546
使ってる。使わないとエラーでるし。
550nobodyさん:2007/09/19(水) 17:06:45 ID:???
>>546
明示的を重視して使ってる。(noticeもエラー扱いだし)
うちは’(シングルクォート)だけど、
’(シングルクォート)と”(ダブルクォート)だとどっち使ってる人が多いのかな?
551nobodyさん:2007/09/19(水) 17:09:16 ID:???
>>550
基本的にはシングル、用途によってダブル
552nobodyさん:2007/09/19(水) 17:09:46 ID:???
つうかさ、グローバル変数の使い方なんてバッドノウハウもいいとこ
553nobodyさん:2007/09/19(水) 17:10:41 ID:???
>>550
基本的にシングル。ダブルは滅多に使わない。
554nobodyさん:2007/09/19(水) 17:14:28 ID:???
$foo[bar]は古いスクリプトに残してるだけで使うなボケって、
PHPマニュアルさんがファビョってたから

$foo['bar']つかう。
555nobodyさん:2007/09/19(水) 17:15:16 ID:???
>>552
グローバル変数使う奴なんて馬にけられて死ねばいい
だけど、自作フレームワークにsmarty組み込む時に、
一々assignするのがめんどうでGLOBALSの中身全部assignしてしまった俺も死ね
556nobodyさん:2007/09/19(水) 17:16:14 ID:???
クオーテーション付けないと定数として解釈されるんじゃないのか?
557nobodyさん:2007/09/19(水) 17:17:37 ID:???
$foo = array('bar'=>1, 'boo'=>2);
echo $foo[bar];
define('bar', "boo");
echo $foo[bar];
558nobodyさん:2007/09/19(水) 17:19:53 ID:???
>>556
>下位互換性の維持のため、未定義の定数は同じ名前の文字列に自動的に変換されます。
PHPは地獄だぜヒャッホー
559nobodyさん:2007/09/19(水) 17:20:06 ID:???
グローバル変数が何でそんなに嫌われているのか
PHP初心者のおれにもわかるように説明して下さい
エロイ人
560nobodyさん:2007/09/19(水) 17:22:27 ID:???
>>558
今色々試してみたけど、何この糞仕様。
PHPなんてなくなったほうがいいんじゃない・・
561nobodyさん:2007/09/19(水) 17:23:55 ID:???
>>559
グローバル変数は、ご存知のとおり適用範囲が必要以上に大きくなってしまう。
例えば、レンタルサーバーの場合、一人の住民がグローバル変数の値を変えると、
その変数を使っているレンタルサーバー内の住民の変数が全て変わってしまう。
そういう事情があって、使わない方がいいというより使ってはいけない。
562nobodyさん:2007/09/19(水) 17:25:12 ID:???
>>561
ウソ教えんなwww
563nobodyさん:2007/09/19(水) 17:26:12 ID:???
>>561
むちゃくちゃ言ってるな、そんな環境があったら怖いわ!。
564nobodyさん:2007/09/19(水) 17:26:55 ID:???
>>561
ひろすぎwww
565nobodyさん:2007/09/19(水) 17:27:14 ID:???
>>561
それなんて環境変数wwwwww
566nobodyさん:2007/09/19(水) 17:30:04 ID:???
>>562-565
集団釣りワロスwwwwwwwwwwwwwww
567nobodyさん:2007/09/19(水) 17:32:03 ID:???
久しぶりにスレが熱い気がス
568nobodyさん:2007/09/19(水) 17:32:51 ID:DH/EOPt7
>>559
10ファイルくらいのスクリプトをグローバル変数だけで書いてみな。
意味がわかるだろ
569nobodyさん:2007/09/19(水) 17:37:23 ID:???
>>559
僕が、globalを嫌ってる理由はね。

理由1 ソースを追っかけにくい
  どこで変数の値が変わるか分からないので、
  いちいち全体を追っかけないといけない。
  モジュールが増えれば増えるほど困難になる。

理由2 多人数での開発が難しい
  適用範囲が広いってことは、変数名がぶつかったり
  途中で違うものになったりして結合時などに大変なことになる。

理由3 昔の自分が書いたソースは意味不明w
  理由1とほぼ同じ。
570nobodyさん:2007/09/19(水) 17:41:42 ID:???
'' についてmicrotimeで各5回づつ検証してみたぞ

$hogehoge['1'] = "ほげほげほげお";
for($i=0;$i<300000;$i++){
print $hogehoge['1'];
}

$hogehoge["1"] = 1.14〜1.22秒
$hogehoge['1'] = 1.22〜1.33秒
$hogehoge[1] = 1.11〜1.2秒

結論
30万回ループで差がない=変わらない。
571nobodyさん:2007/09/19(水) 17:42:15 ID:???
文字列定数でやってみておくれ
572nobodyさん:2007/09/19(水) 17:50:51 ID:???
$hogehoge[ほげほげほげお] = "ほげほげほげお";
for($i=0;$i<300000;$i++){
print $hogehoge[ほげほげほげお];
}

$hogehoge["ほげほげほげお"] = 1.2秒
$hogehoge['ほげほげほげお'] = 1.2秒
$hogehoge[ほげほげほげお] = 1.6〜1.7秒

差はでたが微妙すぎる
573nobodyさん:2007/09/19(水) 17:52:22 ID:???
PHPでUnicodeの正規化する方法ない?
NFCとかNFDとか
574nobodyさん:2007/09/19(水) 17:52:22 ID:???
ここでPHP今日の一句。
 「Noticeを、許したタイポで、地獄見る」

define('type', false);
if(typo){
echo "PHP「罠にかかったな小僧!」\n";
};
575nobodyさん:2007/09/19(水) 17:52:35 ID:???
>>570
>>572
おつ
勉強になった。
576nobodyさん:2007/09/19(水) 17:56:04 ID:???
POSTで送信したら''がクオートするけどさ
皆は自動でクオートするように設定してる?

自動にすると、なんかこの機能っていろんな意味で不便じゃね?
577nobodyさん:2007/09/19(水) 17:58:30 ID:???
>>576

自動ONでやってる。
"の送信が\"になるのは
$_POST[a] = eregi_replace("[\]", "", $_POST[a]);
で回避してる。
578nobodyさん:2007/09/19(水) 18:02:00 ID:???
>>577
何でstripcslashes使わないの?
579nobodyさん:2007/09/19(水) 18:02:08 ID:???
>>577
それだと\が消える
580nobodyさん:2007/09/19(水) 18:02:09 ID:???
>>576
マジッククォートに左右されないように書いてる。
基本はOFF。
581nobodyさん:2007/09/19(水) 18:05:26 ID:???
>>576
magic_quotesはoffだな
582577:2007/09/19(水) 18:17:29 ID:???
stripcslashesってn・・・

あーーー!!!!
583nobodyさん:2007/09/19(水) 18:24:13 ID:???
\n(改行)が連続 + $(末尾)

の正規表現はどう書くか教えて下さい。

----------
...
...
文章この行まで(以下空白部分を削除したい)



-----------
584583:2007/09/19(水) 18:27:08 ID:???
ID出していないので自己解決しました
585nobodyさん:2007/09/19(水) 18:32:14 ID:???
ID以前にPHP関係ねぇ
586nobodyさん:2007/09/19(水) 18:59:30 ID:???
$test['abc'] = 'def';
$begin = microtime(true);
for($i=0; $i<=300000; $i++){ if($test['abc'] == 'ghi'); }
echo microtime(true) - $begin . "\n";
$begin = microtime(true);
for($i=0; $i<=300000; $i++){ if($test["abc"] == 'ghi'); }
echo microtime(true) - $begin . "\n";
$aaa = microtime(true);
for($i=0; $i<=300000; $i++){ if($test[abc] == 'ghi'); }
echo microtime(true) - $begin . "\n";

結果
0.054291009903
0.0549669265747
0.413056850433

相当遅い。
587nobodyさん:2007/09/19(水) 19:04:33 ID:???
↑間違えた$aaaは$beginね

あとこういうのやってみた。

$test['abc'] = 'def';
$key = 'abc';
$y = 'y';
for($i=0; $i<=300000; $i++){ if($test[$key] == 'ghi'); }
for($i=0; $i<=300000; $i++){ if($test["$key"] == 'ghi'); }
for($i=0; $i<=300000; $i++){ if($test["ke$y"] == 'ghi'); }
for($i=0; $i<=300000; $i++){ if($test['ke'.$y] == 'ghi'); }

0.0560829639435
0.0782399177551
0.2595911026
0.241644859314

やはり差が出る。
588nobodyさん:2007/09/19(水) 19:11:28 ID:???
微妙すぎるよねぇ
589nobodyさん:2007/09/19(水) 19:37:54 ID:???
30万箇所書いたとしても0.2秒という人間の感覚ではわかるようなわからないような差か
590nobodyさん:2007/09/19(水) 19:56:01 ID:???
動作環境書かなきゃ意味梨
591nobodyさん:2007/09/19(水) 20:15:44 ID:???
>>589
相当な差だろ
人間の感覚で云々言ってるうちは気にせずプログラムしてて良いと思うが
592nobodyさん:2007/09/19(水) 20:27:02 ID:???
ループ中で使った場合なんかに簡単に0.05〜0.1秒程度の
レスポンス差を生んでしまうならそれはかなり大きな問題だと思うがな。
体感で分からんとか言ってるやつは、その0.1秒の差が
サーバーが対応可能な秒間アクセス数を確実に決定付けるという
高負荷サーバーのチューニングとかやったことないレベルの人だろう。

>>586
1番遅い結果が出た $test[abc] はPHPの処理でかなり遅い
シンボルの検索をやるのが致命傷なんだろう。
リファレンス使った参照渡しとかもこれが原因で処理遅いんだよな。
593nobodyさん:2007/09/19(水) 20:28:43 ID:???
>>587
> for($i=0; $i<=300000; $i++){ if($test["ke$y"] == 'ghi'); }
> for($i=0; $i<=300000; $i++){ if($test['ke'.$y] == 'ghi'); }

この辺が遅いのは内部的にメモリのリアロケーションが発生するせいかね。
594nobodyさん:2007/09/19(水) 20:31:34 ID:???
>>592
チューニングとはボトルネックになっているとわかってから
効果がある場所にかぎってやるもの。
すべての箇所でやるもんじゃない。
595nobodyさん:2007/09/19(水) 20:44:49 ID:???
>高負荷サーバーのチューニングとかやったことないレベルの人だろう。

こういうこと言う奴はどうしようもないよな
その程度の負荷をチューニングするくらいならもっと元気のいいCPUにかえたほうがスマートなやり方
次にアルゴリズムとかデータ構造見直すとかした後の話だろ、カーネル再構築とか微妙なチューニング云々は
596nobodyさん:2007/09/19(水) 20:47:09 ID:???
ワロス
597nobodyさん:2007/09/19(水) 20:47:18 ID:6jpSclPO
ini_set("magic_quotes_gpc", 0);
で、magic_quote_gpcがオフにならないのですが、何が原因なのでしょうか・・・。
598597:2007/09/19(水) 20:53:07 ID:6jpSclPO
関係ないですが、

文字コードを変換した場合にも勝手にクオート入るんですね・・・。
厄介ですorz
599nobodyさん:2007/09/19(水) 20:55:20 ID:???
imagegif($image,"test.gif")とやってもファイルに保存されずにブラウザに出力されるんだけど
なんでや
600nobodyさん:2007/09/19(水) 20:59:02 ID:???
>>599
boolで返ってくるからリソースを別の所で吐いてるんでしょ
601nobodyさん:2007/09/19(水) 21:06:54 ID:???
>>594
ボトルネックを最優先で改善するのは当然の話だが
全てのコードが満遍なく遅いってのはそれ以前の糞プログラム。
チューニングの余地すらない。全部書き直せ。
602nobodyさん:2007/09/19(水) 21:16:53 ID:???
>>600
ゴメン単にパーミッション設定してないだけだった
603nobodyさん:2007/09/19(水) 21:32:47 ID:+/kMM8g5
質問です。
OSはRedHat、verは4.4.6です(lolipopのレンサバです)

<?php
if($_POST['mail'] == 1 && strlen($_POST['message']) != mb_strlen($_POST['message'])){
mb_language("Ja");
mb_internal_encoding("SJIS");
$mailto = "自分のアドレス";
$subject = "件名";
$message = $_POST['message'];

$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if(!$host){
$host = gethostbyaddr($addr);
}
$ua = getenv("HTTP_USER_AGENT");
$message = $message . "\n\n--------------------------------------------------\n" . $host . "\n" . $ua;

mb_send_mail($mailto, $subject, $message);
}
?>

続きます。
604603:2007/09/19(水) 21:33:38 ID:+/kMM8g5
html側は
<form action="スクリプトのパス" method="POST">
<input type="text" name="message"> <input type="submit" name="submit" value="送信する">
<input type="hidden" name="mail" value="1">
</form>

1行目は文字数とバイト数が一緒なら半角のみと判断して送信しないようにしています。
このようなスクリプトを作成し、フォームからメールを送信しました。
すると、「ああ」とか「あああ」で送信できないのに「いい」とか「あいあ」だと送信できます。

これはどういう現象なのでしょうか?
605nobodyさん:2007/09/19(水) 21:34:44 ID:???
答えられていない質問がスルーされるのはここの決まりですか?
606nobodyさん:2007/09/19(水) 21:45:59 ID:???
どの質問を書き込んだのかおじさんに言ってみ
607nobodyさん:2007/09/19(水) 21:49:07 ID:???
誰の義務になるの?
質問も自由。(マルチとスレ違いはだめだが)
答えるのも自由。

じゃないのか?
608nobodyさん:2007/09/19(水) 21:53:40 ID:???
>>605 おめ童貞だろ
609nobodyさん:2007/09/19(水) 22:01:36 ID:???
>>604
なんか2行目でmb_languageを今更jaに指定してるけど、
1行目の段階ではこれはどういう設定になってるの?
文字コードが変な解釈されてる気がするけど。
610nobodyさん:2007/09/19(水) 22:02:12 ID:???
答えられない人は黙っててください
611nobodyさん:2007/09/19(水) 22:06:09 ID:???
>>603
PHPは、送られてきた文字列のエンコードを知らないわけだから、
それなのにmb_strlenしてもデフォの内部エンコードが使われて、正しくないエンコードで計算されて期待した値にならない
612603:2007/09/19(水) 23:17:34 ID:+/kMM8g5
文字コードがおかしいということで
mb_language("Ja");
mb_internal_encoding("SJIS");
の位置を先頭にしたら動きました。ありがとうございました。
613nobodyさん:2007/09/20(木) 00:10:59 ID:???
>>612
その2行を先頭に持ってきたくらいじゃ根本的な問題解決にならんよ
期待している"SJIS"以外が送られてきたら不具合出るんじゃね?
614nobodyさん:2007/09/20(木) 00:25:09 ID:TpeEYAA9
>>484
亀レスすいません。
あの後試してみた所、ほとんどソースをまっさらにすると、すべてtrueとなりました。
どうも自分が改造する前のオリジナルのソースでセッションが貼られてるようです(←これが本当かどうかも怪しいですが)。
それに対し、自分も別にセッションを貼ったため問題が出たのかもと思いました。
そう思ったのは>>474で書いた print_r($_SESSION); の結果が、
↓のように、一度の print_r($_SESSION); 内で timing1 や timing2 が2回実行されていたからです
(今手元に正確な情報がないのでこんな感じだったということで)。

Array ( (略)=> Array ( [action] => process [timing1] => あ [timing2] => い (略) => Array ( [timing1] => ) [timing2] => い (略) => )

そして、timing1 が一度「あ」が入力された後、空文字?で上書きされてしまっていた為、問題がおきていたのかもと思いました。

もっとも、まっさらにしたソースでは使い物にならないので、既存のソースを解析する問題は残ったままとなりますが・・・。
ともあれアドバイスいただいた皆さん、どうもありがとうございます。
615nobodyさん:2007/09/20(木) 00:26:35 ID:???
$_POST[a] = eregi_replace("/(\n)+$/", "", $_POST[a]);

動かないんですが・・・
616603:2007/09/20(木) 01:01:49 ID:ROB03O5/
>>613
フォームのあるhtmlはShift-JISで宣言してあるのですがそれでもダメでしょうか?
617nobodyさん:2007/09/20(木) 01:04:29 ID:???
>>615
正規表現を ./ で括るのはpreg系だけだよ
618nobodyさん:2007/09/20(木) 01:08:45 ID:???
>>617
ご指摘ありがとうございます
でもeregi_replace("(\n)+$"も動きません
619nobodyさん:2007/09/20(木) 01:17:43 ID:???
とりあえずID出そうな。
620山田真一:2007/09/20(木) 10:38:42 ID:RRR2JFqm
最近WEBの仕事を始めた者ですが自社のHPのPHPのページが

Warning: main(db/.php): failed to open stream: No such file or directory in /home/webmaster/public_html/link/yomi.php on line 21

Fatal error: main(): Failed opening required 'db/.php' (include_path='.:') in /home/webmaster/public_html/link/yomi.php on line 21


となって表示されません。
一応21行目を確認したら

require("db/$cfg[db_sql].php");

となっていました。
誰かわかる方教えてもらえませんか?
621nobodyさん:2007/09/20(木) 10:41:11 ID:???
$cfg[db_sql]が設定されていない
622nobodyさん:2007/09/20(木) 10:42:41 ID:???
自社のプログラムのトラブルをここで聞くか…
623nobodyさん:2007/09/20(木) 10:44:27 ID:???
>>621
エスパーキターーーーーーーーーーー
624nobodyさん:2007/09/20(木) 10:51:06 ID:RRR2JFqm
>621

具体的にはどうすればいいんですか?


>622

新人だけど一人でやってます・・・
625nobodyさん:2007/09/20(木) 10:52:08 ID:???
会社でyomi-searchを使ってるのはなぜ?
626nobodyさん:2007/09/20(木) 11:40:37 ID:???
>>623
require("db/$cfg[db_sql].php");
となってて
エラー内容が
Failed opening required 'db/.php'
となってりゃエスパーじゃなくてもすぐ分かるだろ。

>>624
$cfg["db_sql"] に適切なDB名を設定する。

これが>>625の言う通りyomi-searchのPHP版なら以下参照
ttp://sql.s28.xrea.com/src/
627nobodyさん:2007/09/20(木) 11:55:42 ID:IWhkcLGD
>>620
そんな会社普通はすぐやめる。
webの会社でhpが表示されないとかありえない。
車売ってるくせにエンジン直せないのと同じこと。
628nobodyさん:2007/09/20(木) 12:14:13 ID:???
いや、Webの会社とは一言も言ってないけどな。
新人1人しかいない時点でそりゃWebの会社じゃないだろ。
629nobodyさん:2007/09/20(木) 12:40:38 ID:IWhkcLGD
最近WEBの仕事を始めた者が働いてる会社が八百屋なわけがない。
630nobodyさん:2007/09/20(木) 12:44:16 ID:???
節操の無い奴を相手にしちゃ駄目

くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/833
631620:2007/09/20(木) 12:59:19 ID:RRR2JFqm
>626
ありがとうございます^^早速見てみますね

>627
会社はWeb系ではないです^^;
632nobodyさん:2007/09/20(木) 12:59:24 ID:???
>>628が何気に良い所を突いた件
633nobodyさん:2007/09/20(木) 13:59:56 ID:KlmMrt1+
マジッククオートを自動で付加しているのですが、
POSTで取得したときに「ソ」や「表」に「\」が入りますよね。
これはどの時点での文字化けを防いでいるのでしょうか?
POSTで取得したデータを全てクオート解除しても大丈夫なのでしょうか?
634nobodyさん:2007/09/20(木) 17:01:09 ID:KlmMrt1+
誰もいなすwww

preg_replace_callbackってPHP5.0.4と5.1.1で動き違うんだけど
5.1.1でバグ発生してるとかないよな?
635nobodyさん:2007/09/20(木) 17:05:29 ID:???
>>633
ホントだ
なんでこんな余計なのが付加してるの?
636635:2007/09/20(木) 17:24:46 ID:???
よかった解決した
php.iniっての作ってmagic_quotes_gpc = Off
で再起動だね、、憶えておくよ
637nobodyさん:2007/09/20(木) 17:36:57 ID:???
こらこらSJISの仕様で問題あるからそうなってんだよ
638nobodyさん:2007/09/20(木) 17:45:37 ID:QNx3pq8z
>>636
勝手に解決するな
ini_setで解決しないんだよ
639nobodyさん:2007/09/20(木) 17:48:27 ID:???
>>634
なんでそんな古いバージョンのを使うの?
640nobodyさん:2007/09/20(木) 18:44:06 ID:???
>>639
レンタルサーバーに入っているからだろ?
641nobodyさん:2007/09/20(木) 18:55:42 ID:???
>>638
目に余るレスを見かけたので続きのほうは以下のスレへ訪問よろ

くだらない質問でもど偉そうに聞いていいスレ
642nobodyさん:2007/09/20(木) 19:09:31 ID:???
>>637
SJISの仕様でどんな問題があるの?
643nobodyさん:2007/09/20(木) 19:18:15 ID:???
ヤフーでググれカス
644nobodyさん:2007/09/20(木) 19:25:21 ID:???
答えられないやつはだまっとれ
645nobodyさん:2007/09/20(木) 20:57:35 ID:bTS/b7yb
PHPとMySQLを使ってツリー構造をHTMLで表示させたいんですけど
一応、DBにカテゴリ名、ID、親IDとして保存させてるんですけど
表示させるときにどのようにしたらいいのかわからないのですが
どのようにしたらできますか?
646nobodyさん:2007/09/20(木) 21:00:30 ID:???
一応じゃないスキーマを考える
647645:2007/09/20(木) 21:05:10 ID:bTS/b7yb
一応、親ノード取得してその親にポインタしてる子ノードを
探して・・ってやってるんですがすべてのノード表示させるようにできないんです
いくらノードを追加してもすべてのノードを表示させる方法ってないですか?
648nobodyさん:2007/09/20(木) 21:05:56 ID:???
一応じゃないアルゴリズムを設計する
649645:2007/09/20(木) 21:08:07 ID:bTS/b7yb
どのようにして設計したらいいのですか?
一応、5日ぐらい考えたのですが僕の脳みそじゃ解決しません
650nobodyさん:2007/09/20(木) 21:11:12 ID:???
わかんねーやつはレスすんな
651nobodyさん:2007/09/20(木) 21:13:45 ID:???
どんだけ〜
652nobodyさん:2007/09/20(木) 21:32:07 ID:???
全部じゃなきゃどこまで表示出来てんだよ
原因の切り分けをする努力を放棄してたら先に進むわけなし
653nobodyさん:2007/09/20(木) 21:38:09 ID:???
どんだけ〜
654645:2007/09/20(木) 21:47:26 ID:bTS/b7yb
$sql = "SELECT * FROM `CATEGORIES` WHERE `親ノード番号` = {$親ノード番号} ";
$parent_nodes_result = mysql_query($sql);
while ($row = mysql_fetch_array($parent_nodes_result, MYSQL_ASSOC)) {
echo "<li>{$row['ノード名']}\n<ul>\n";
$sql = "SELECT * FROM `CATEGORIES` WHERE `親ノード番号` = {$row['番号']} ";
$child_nodes_result = mysql_query($sql);
while ($row = mysql_fetch_array($child_nodes_result, MYSQL_ASSOC)) {
echo "<li>{$row['ノード名']}</li>\n";
}
echo "</ul>\n</li>\n";
}

こんな感じなんですけど
これだと2階層までしか取得できないんです
655nobodyさん:2007/09/20(木) 21:48:57 ID:???
もう一個付け加えれば3階層までできるじゃん!
656645:2007/09/20(木) 21:53:25 ID:bTS/b7yb
>>655
それがもっと多い階段まであった場合に、すごいソースになってしまうので
なんかwhileを使って出来ないかと思って考えてるんですがわからなくて
657nobodyさん:2007/09/20(木) 21:57:08 ID:???
>>645
あなたみたいな人はフレームワークを使えばいい
思い通りの動作をやってくれるでしょう
658nobodyさん:2007/09/20(木) 21:57:52 ID:???
線形で増えていくだけだから大した問題ではないよ。
すごいソースで何が悪い。見た目なんか気にするな。
659nobodyさん:2007/09/20(木) 21:58:29 ID:???
660645:2007/09/20(木) 22:02:48 ID:bTS/b7yb
みなさん返信ありがとうございます
>>654
読んでみます
661645:2007/09/20(木) 22:03:42 ID:bTS/b7yb
間違えました
>>660>>659へのレスです
662nobodyさん:2007/09/20(木) 22:04:29 ID:???
木構造といったら、まず再帰を考えないか普通
663nobodyさん:2007/09/20(木) 23:27:38 ID:???
どんだけ〜
664nobodyさん:2007/09/20(木) 23:42:57 ID:mjQwk2aW
プログラムで実行される関数がどのファイルで定義されているかを効率的に
探す方法を教えてください。少し規模の大きなプログラムだと見つけるのに
時間がかかってしまします。
エディタの機能になるのでしょうか。もしそうであればそのエディタを
教えてください。
665nobodyさん:2007/09/20(木) 23:44:38 ID:???
どんだけ〜
666nobodyさん:2007/09/20(木) 23:47:55 ID:???
functionで検索〜
667nobodyさん:2007/09/21(金) 03:19:02 ID:???
どんだけ〜
668nobodyさん:2007/09/21(金) 06:54:05 ID:/lN3SBgs
$data = array("$data","$data2","$data3");
fputs($fp, implode("", $data));

$data = $data.$data2.$data3;
fputs($fp, $data);

どちらが負荷が低くなりますか?
669nobodyさん:2007/09/21(金) 07:29:03 ID:???
>>668
上は関数呼び出しが2回多いから下のほうがいい気がする
670nobodyさん:2007/09/21(金) 07:35:53 ID:???
>>669
どうもー。
下でいきます。
671nobodyさん:2007/09/21(金) 09:28:38 ID:???
>>664
exuberant ctags
672nobodyさん:2007/09/21(金) 13:04:43 ID:???
phpの標準関数を自分の作った関数で置き換えって出来ないですよね?
673nobodyさん:2007/09/21(金) 13:20:47 ID:???
できる
674nobodyさん:2007/09/21(金) 13:46:29 ID:???
ありがとう。自分で置き換えてみます
675nobodyさん:2007/09/21(金) 14:25:51 ID:5JzPFtpG
phpでxml文書のノード名と属性の値を指定して部分的にデータを取得するには
どうすればよいですか?
676nobodyさん:2007/09/21(金) 14:37:00 ID:???
>>675
SimpleXMLとかpearのXML_Unserializerとかを使えば良いんじゃ
677nobodyさん:2007/09/21(金) 14:41:31 ID:QV6ADNlt
PEARのMDB2に乗り換えようとしているんですが、
require_onceしただけでStrict Standardsエラーがたくさん出るのは何故?
エラーレベルを高くしてるから?
どなたかよろしくお願いします。
678nobodyさん:2007/09/21(金) 14:49:28 ID:fJKnQpQm
php5でpear使うと吐きまくるよ。
だから俺はpear使わない。
error_repoting E_STRICT とかでぐぐればエラー出さない方法はわかるとおもうけど。
厳密にはエラーっていうかワーニングか、動くしな
ちなみにオブジェクトをリファレンス渡ししたり、クラスのオーバーロードすると出る
679nobodyさん:2007/09/21(金) 14:50:42 ID:???
>>677
そう

実際使うときはwarningあたりかE_ALLでログに全部書き出しだろうから
気にする必要ない
680nobodyさん:2007/09/21(金) 14:56:05 ID:QV6ADNlt
>>678-679
ありがとうございます。
開発レベルではStrictで行いたいのですが、MDB2だけのエラーを非表示にできないんですか?
あるいはリファレンス渡ししない方法などはないのでしょうか。
681nobodyさん:2007/09/21(金) 14:59:59 ID:5JzPFtpG
>>676
SimpleXMLの場合での取得方法がわからないんです。
<tag1 id="1" >
<tag2 >a</tag2>
<tag2 >b</tag2>
<tag2 >c</tag2>
<tag1 id="2" >
<tag2 >d</tag2>
<tag2 >e</tag2>
<tag2 >f</tag2>

の場合に<tag1 id="1" >のデータ(a,b,c)を取り出したいんですが
この場合SimpleXMLでだとどうすればよいのですか?
682nobodyさん:2007/09/21(金) 15:00:59 ID:???
>>681
オブジェクトとして返されるから
それを取得するような感じでいいんじゃね?
683nobodyさん:2007/09/21(金) 15:12:23 ID:5JzPFtpG
>>682
すんません、初心者でXMLのデータ処理をするのが初めてなので
取得方法自体がわからないんです。
どう書けばよいの?
684nobodyさん:2007/09/21(金) 15:12:57 ID:fJKnQpQm
>>680
pearの
$a =& new ex();
って書き方の「=&」ここの部分を全部「=」に直せば問題は解決さ、どれくらいあるかわからないけどw

もしくはpearモジュル使う部分のファイルにだけerror_reporting(E_ALL);とか書いておけばいいんじゃねーの?
685nobodyさん:2007/09/21(金) 15:19:00 ID:QV6ADNlt
>>684
後者の方法で頑張ります^^;
ありがとうございます。
686nobodyさん:2007/09/21(金) 15:45:01 ID:???
>>683
うん、>>1は読んだ?
687nobodyさん:2007/09/21(金) 15:45:32 ID:???
>>685
ファイルから置換すりゃーいいのに
688nobodyさん:2007/09/21(金) 15:52:51 ID:???
>>687
単純に =& が問題なわけじゃないから全部置換するのはどうかと思うだよね〜
オブジェクトのリファレンス参照時のみ限定だから、それ以外は置換しないほうがいいし
じゃあ、 =& new のとこ置換すればすむのかな・・・
689nobodyさん:2007/09/21(金) 15:52:52 ID:oG3isgYA
$fp = fopen($path, 'r+');
でファイルを読み込み・上書き(更新・一行削除)をしているのですが
上書き前のデータより小さいデータを保存する際最終部にごみがつき
困っています
保存直前にtrimしたりもしましたがだめでした。
このごみを何とかする方法を教えてもらえませんか?
690nobodyさん:2007/09/21(金) 15:55:45 ID:???
>>689
エアーダスターとかお勧め
691nobodyさん:2007/09/21(金) 16:03:10 ID:???
>>689
ごみって何だよ、具体的に書け。そんなんでわかったらエスパーだっつーの
あと、環境と文字コードも書け
あとfputs使ってるんだと思うがそこのコードと書き込む内容生成してるとこも書け。
692689:2007/09/21(金) 16:04:48 ID:oG3isgYA
自己解決
693nobodyさん:2007/09/21(金) 16:13:44 ID:???
どのようにだよ。まじ最悪な質問者だな
694nobodyさん:2007/09/21(金) 16:36:47 ID:OocRHBzD
phpBB2の質問はここでいいですか?専用スレが過疎ってるようで反応がありません。
695nobodyさん:2007/09/21(金) 16:44:30 ID:???
>>689みたいなのになったことあるな
1:aaaa
2:bbbbb
3:ccccc
みたいな3行のテキストファイルを加工しようと全部読み込んで、
1・3行目だけを書き出したら実際のファイルが
1:aaaa
3:ccccc
3:ccccc
みたいになるってことだろ?(3行目の3:cccccがごみ)
696nobodyさん:2007/09/21(金) 16:48:07 ID:???
>>694
ここ数日中に色々なところで
phpBBでrss配信したいんだゴルァ
ってのがマルチされてるけど、それじゃないなら答えない事もない
697nobodyさん:2007/09/21(金) 16:54:42 ID:OocRHBzD
>>696
マルチなんですけどよかったら教えてください。どこいっても反応がないんですよね。
698nobodyさん:2007/09/21(金) 17:08:35 ID:???
>>697
rss生成するスクリプト作るなりして
phpbbで投稿あった時に走らせるようにしたらいいやん
699nobodyさん:2007/09/21(金) 17:10:36 ID:OocRHBzD
>>698
どうもありがとうございます。
そういうスクリプトをつくれないので、出来合いでなにか
そういうものがないかなと探しているのですが、どうもしっくりくるものが
ありません。どこかそういうスクリプトを公開してるサイトなどないもので
しょうか?
700nobodyさん:2007/09/21(金) 17:20:10 ID:???
>>699
自分で作れカス
701nobodyさん:2007/09/21(金) 17:21:40 ID:OocRHBzD
>>700
カスなのでつくれません。すいません。
702nobodyさん:2007/09/21(金) 18:11:52 ID:???
>>693
解決法はftruncate( )しかないだろう
703nobodyさん:2007/09/21(金) 19:53:49 ID:???
>>701
少しずつ段階的に解決してけばいい。
それすら怠る怠け者なら自力で探してくるしかない。
704nobodyさん:2007/09/21(金) 20:47:15 ID:???
>>701
これ、お前の母親だろ

近所の住民を「殺すぞ」などと脅したとして、大阪府警吹田署は20日までに、
暴力行為等処罰法違反の疑いで、吹田市片山町、主婦井手真知子容疑者(49)を逮捕した。

嫌がらせは15年ほど前から続き、引っ越した住民もいたという。
井手容疑者は「わたしが被害者だ」と容疑を否認している。
 調べでは、井手容疑者は8月25日から9月2日にかけ、近所の男女3人に対し、家の壁をたたいたり、「なめとんのか。殺すぞ」などと脅したりした疑い。
705nobodyさん:2007/09/21(金) 20:48:03 ID:???
706nobodyさん:2007/09/21(金) 22:14:49 ID:QV6ADNlt
MDB2のプリペアドステートメントした後に、executeすると、
Call to undefined function: MDB2_Driver_mysql::execute()
となります。MDB2のmysqlドライバはインストール済みです。
ソースは以下です。


require_once 'MDB2.php';


$dsn = array(dsnの指定); // 省略
$mdb2 =& MDB2::connect($dsn);


$sth = $mdb2->prepare("INSERT INTO board VALUES (?, ?, ?, ?, ?)");

$data = array(データ * 5); // 省略
$mdb2->execute($sth, $data);
$mdb2->disconnect();

ちゃんとprepare関数は実行されてるみたいなんです。
どなたかよろしくお願いします。
707nobodyさん:2007/09/21(金) 22:16:34 ID:???
>>706
そのコードは何を参考にして書いたの?
708706:2007/09/21(金) 22:20:19 ID:QV6ADNlt
>>707
PEARのマニュアルを主に参考にしましたが、理解不足のようです。
709nobodyさん:2007/09/21(金) 22:31:22 ID:???
>>708
どのページ?
710706:2007/09/21(金) 22:34:10 ID:QV6ADNlt
>>709
Googleにおいて"php mdb2"で検索した結果の上10サイトほどです。

http://www.phpied.com/db-2-mdb2/
このサイトを参考にし、>>706のソースを
$mdb2->execute($sth, $data); → $sth->execute($data);
としたらできました。
私の勘違いだったようです・・・
711nobodyさん:2007/09/21(金) 22:56:05 ID:n9Z4wW7K
PHP 5.2.4 (cli) @ winXPでshell_execを用い外部コマンドラインアプリを起動したいのですが、うまくいきません。
例えば7zでファイルを解凍するとき、

 shell_exec('"c:\program files\7-zip\7z.exe"');

は起動しusage他を返してくれるのですが、

 shell_exec('"c:\program files\7-zip\7z.exe" x "c:\program files\7-zip\archive.zip"');

などにすると起動せずPHPのエラーも発生しません。 (プロンプトに直打ちで起動するのは確認してます)
どうやら引数に”が入るとダメみたいですが解決法はありますか?
712nobodyさん:2007/09/21(金) 23:20:17 ID:???
ありまsn
713nobodyさん:2007/09/21(金) 23:22:41 ID:QV6ADNlt
たびたびすみません・・・

PHPからのデータをデータベースに格納するとき、文字化けしてしまいます。
php.iniのenternal_encodingはutf-8、mysqlのdefault-charsetはutf8、データベースの照合順序はutf8_general_ciとなっています。

この解決方法として、データベースに格納するときに、
SET NAMES utf-8;
というクエリを発行すると良いということが分かったのですが、そのほかに方法はありますか?
よろしくお願いします。
714nobodyさん:2007/09/21(金) 23:25:36 ID:???
>>713
FWなんかだと回避方法が色々あるかもしれんが
べた書きでSQLのバージョンがいくつか忘れたがある以上のバージョンだとそれしかない。
715nobodyさん:2007/09/21(金) 23:39:38 ID:???
716nobodyさん:2007/09/21(金) 23:47:48 ID:QV6ADNlt
>>714-715
ありがとうございます。
文字コード問題、難しいですね。
とりあえず今は開発段階なので、自分のサーバのMySQLの[mysqld]のところに、
skip-character-set-client-handshake
を記述して一時退避と思います。
717nobodyさん:2007/09/22(土) 06:08:18 ID:+WbXSWsd
xreaで
http://example.com/ほげほげ/でアクセスした場合、mod_rewriteで?wd=ほげほげにして渡したいのですがこれをすると500エラーになります。
文字コードの影響かと思いmb_convertしてみましたが変わりありません。
どんな方法がありますでしょうか?
718nobodyさん:2007/09/22(土) 06:46:17 ID:???
URLに日本語をそのまま流すとな?
719nobodyさん:2007/09/22(土) 07:12:11 ID:???
mb_convert_encodingを使うと何故か変なところに変な文字が挿入されることがあります。
EUC-JPをUTF-8に変換すると、
「プロバイダー」が「プロ ff8 バイダー」になったり、ならなかったり、
「退会」が「退 198 会」や「退 ffa 会」になったり、ならなかったり…

これは既知のバグなのでしょうか?何か設定がおかしいのでしょうか?
環境はPHP4.4.7cliで、
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
mb_substitute_character(63);
を指定しています。スクリプトの文字コードはUTF-8です。
720nobodyさん:2007/09/22(土) 07:13:25 ID:v/rJVSv7
age忘れました。
721nobodyさん:2007/09/22(土) 07:21:03 ID:???
既知のバグです
722nobodyさん:2007/09/22(土) 07:24:14 ID:v/rJVSv7
そうですか…
回避方法とかは無いのでしょうか?
723nobodyさん:2007/09/22(土) 07:27:30 ID:???
ありません
724nobodyさん:2007/09/22(土) 07:30:04 ID:v/rJVSv7
そうですか。
ちょっと投げやりすぎる回答が気になるので、ソースをお願いします。
725nobodyさん:2007/09/22(土) 07:35:48 ID:???
○ソース一覧
http://www.bulldog.co.jp/ ブルドックソース株式会社 東京都
http://www.kagome.co.jp/ カゴメ株式会社 愛知県
http://www.otafuku.co.jp/ オタフクソース株式会社 広島県
http://www.ikari-s.co.jp/ イカリソース株式会社 大阪府
http://www.kikkoman.co.jp/ キッコーマン株式会社 千葉県
http://www.oliversauce.com/オリバーソース株式会社 兵庫県
http://www.sky-net.or.jp/toshi/ カープソース 広島県
http://www.maruki-su.com/ 株式会社 川上酢店 愛知県
http://www.kozima.co.jp/ 小島食品製造株式会社 愛知県
http://www.komi.co.jp/ コーミ株式会社 愛知県
http://www.sankyohikari.co.jp/ サンキョーヒカリ 愛知県
http://www.junmaru.co.jp/ 株式会社 純正食品マルシマ 広島県
http://www.papaya-sauce.co.jp/ パパヤソース本舗 大洋産業株式会社 京都府
http://www.takahashisauce.com/ 高橋ソース株式会社 埼玉県
726nobodyさん:2007/09/22(土) 07:38:06 ID:v/rJVSv7
大丈夫ですか?
727nobodyさん:2007/09/22(土) 09:16:45 ID:???
ググレカス
728nobodyさん:2007/09/22(土) 09:19:09 ID:???
解らないなら答えなけらばいいのにとんだカスだな
729nobodyさん:2007/09/22(土) 09:26:47 ID:???
>>719
fputs で HTTP/1.1 使ってるのが原因でした。
HTTP/1.0 にして解決しました。ありがとうございました。
730nobodyさん:2007/09/22(土) 09:27:09 ID:???
>>719 もとがえうcとわかっているならえうcからうtf−8としていすればよい、
731nobodyさん:2007/09/22(土) 12:54:23 ID:???
>>724
投げやりすぎる質問するならそんくらい自分で探せ
732nobodyさん:2007/09/22(土) 14:32:49 ID:RkVrJ9bm
自分の運営しているサイト(PHPとmysqlでつくったもの)を何気なく検索したら、
私のサイトのすぐ下に、私のサイトを全部ひらがなに変換しただけの他人のサイトがヒットしました

私は広告が嫌いなので、
広告掲載依頼が来ても全部断るようにしてきました
しかし、私のサイトをひらがなに変換しただけのサイトはgoogleアドをベタ張りしています

このサイトは私のサイトの真下にきているので、
この広告ベタベタサイトが私の運営しているものだと勘違いされるのも嫌ですし、
私のサイトのソースを無断でコピーされているのも嫌です

このサイトに私のサイトの翻訳をさせない方法はないでしょうか?

ちなみにその翻訳を行っているサイトはこれです
http://www20.learnjapan.org/

例)
きれいな字を書こう! 小学生の漢字!! (誰かのオリジナルサイト)
http://www.geocities.jp/ki07ji/index.html
きれいな字を書こう! 小学生の漢字!! (上のサイトを全部ひらがなに翻訳)
http://www.learnjapan.org/km/aHR0cDovL3d3dy5nZW9jaXRpZXMuanAva2kwN2ppL2luZGV4Lmh0bWw=.html
733nobodyさん:2007/09/22(土) 14:33:58 ID:???
phpで繋がっているMySQLのテーブル情報を見やすく出力するいい方法教えてください
734733:2007/09/22(土) 14:36:28 ID:???
自己解決しました
735nobodyさん:2007/09/22(土) 15:03:48 ID:???
>>732
そのサイトの管理者に言う
736nobodyさん:2007/09/22(土) 15:16:13 ID:???
>>734
よかったね、オメデトウ
737nobodyさん:2007/09/22(土) 16:34:13 ID:xEVbhTq3
>>732
こういうのって法的にはどうなんだろうね。
当事者じゃないからどうでもいいけど気にはなる。
とりあえず、
ttp://www.houterasu.or.jp/
無料で相談できるから、やってみれば?
738nobodyさん:2007/09/22(土) 16:39:01 ID:???
>>732
これが違法ならGoogleとかのキャッシュや
WEB翻訳サービスも違法になるんじゃないか?

当事者同士で話し合うしか無いと思う。

そのサイトからのアクセスをはじけばいいだけのような気も
739nobodyさん:2007/09/22(土) 16:44:36 ID:6iih+fTY
PHPでXHTMLを記述しても、ブラウザにうまく出力されないんですが
どうすればうまく出力されますか?
<?php
$str=<<<XHTML
//XHTMLの記述
XHTML;
echo $str;
?>
ではだめで、単にファイル名を.xmlとして記述すると
今度はPHPが読み込まれません。
サーバーのMIMEタイプとかの問題なんでしょうか?
740nobodyさん:2007/09/22(土) 17:08:00 ID:???
>>739
>サーバーのMIMEタイプとかの問題なんでしょうか?
どちらかというと、雅子が男子を産もうとしない方の問題。
741nobodyさん:2007/09/22(土) 18:04:34 ID:???
phpの質問なんだけど 検索してもよくわからなかったので誰か教えてくれ。
任意の文字列を2分割にsplitして出来た2つの文字列を それぞれ連想配列のキーと値に入れたいんだけどどうやるの?
下みたいにやると普通の配列(要素数2)で保存されてしまうのです

$foo = split('/', $hoge, 2);
742nobodyさん:2007/09/22(土) 18:14:49 ID:6iih+fTY
配列を別に用意するしかない気がするんですが。
$arr[$foo[0]]=$foo[1];
743nobodyさん:2007/09/22(土) 18:19:40 ID:Jfl+L6xk
>>742
そうですか('A`)ありがとうございます
ではsplitした要素の片方だけを 変数に格納せず そのまま取り出すことは可能でしょうか

perlだと

split('/', hoge, 2)[1]

みたいなことが出来たんですが phpはできないみたいで・・
744nobodyさん:2007/09/22(土) 20:23:24 ID:???
関数作れよ
745717:2007/09/22(土) 20:49:14 ID:+WbXSWsd
度々すみません。
wikipediaではURLに日本語が入っているのですがこんなことをxreaでできますでしょうか?

http://example.com/ほげほげ
これを内部的にswitchで読み込むHTMLを変換して表示させたいのです。

mod_rewriteで/以下を?id=に
switch($_GET['id']) {
 case 'ほげほげ':
  readfile(hogehoge.html);
  break;
・・・・
}
746nobodyさん:2007/09/22(土) 21:10:29 ID:???
>>745
君は文字コードとURLエンコードについてちゃんと理解すべき。
>>741
listとか
747nobodyさん:2007/09/22(土) 21:22:10 ID:???
>>746 お前俺が何も知らないからって威張り腐っていんじぇねーぞ!!!!!!!
748nobodyさん:2007/09/22(土) 21:57:12 ID:???
>>747 きもいしうざい
749nobodyさん:2007/09/22(土) 22:13:23 ID:???
>>743
phpは配列にしたら一度変数に格納しないとエラーになるですよ
だから他の言語みたくsplit(....)[0]と一回で出来ないのが難点
750nobodyさん:2007/09/22(土) 22:20:44 ID:???
>>748 お前がキモいしウザいんだよ!!!市ね!!!!!!!!
751nobodyさん:2007/09/22(土) 22:24:12 ID:???
>>749
他の言語っつーか、そんなことできるPerlの方が言語としては気持ち悪いんだけどな。
PHPの仕様はごくごく普通ですよ。
752nobodyさん:2007/09/22(土) 22:31:38 ID:???
>>751
>PHPの仕様はごくごく普通
えー・・・
Java使いからしたらPHPはかなり気持ち悪いよ
753nobodyさん:2007/09/22(土) 23:00:01 ID:???
Cでもできるのに…
754nobodyさん:2007/09/22(土) 23:04:16 ID:???
とあるPHPスクリプトのソース見たら出てきたんですが、

safenameっていう関数か変数か知らないですけど、ありますか?

あ あ あ

だと

あ_あ_あ

になるみたいなんですが
他のスクリプトでも使ってみようと思い試したら
Fatal errorが出ました><

ごきようじゅ下さい お願いします><
755nobodyさん:2007/09/22(土) 23:13:15 ID:???
あるかないかくらいマニュアル読めばわかるだろ
756nobodyさん:2007/09/22(土) 23:13:31 ID:???
757nobodyさん:2007/09/22(土) 23:14:36 ID:???
758754:2007/09/22(土) 23:17:50 ID:JPmP1x2o
いち行で言うと、半角スペースを _ に変換したいです>< お願いします
                    ↑
                 読み方しりません><
759nobodyさん:2007/09/22(土) 23:22:18 ID:???
str_replace
760nobodyさん:2007/09/22(土) 23:43:27 ID:???
strtr
761754:2007/09/22(土) 23:43:47 ID:???
>>759
出来ました>< ありがとうございます
762nobodyさん:2007/09/23(日) 10:48:42 ID:8QFSYDAR
外部からクラス内に定義した変数に、インスタンス化せず静的にアクセスする方法はありますか?

class A
{
    public $a = 'hoge';
}

$b = ○○○; // Aの$aを取得したい
763nobodyさん:2007/09/23(日) 12:09:09 ID:???
A::$aでアクセスできたようなできなかったような
publicって書いてるって事はphp5として考えるけど
5ならconstにするかメソッド作ってカプセル化すればいいのに
764762:2007/09/23(日) 12:13:07 ID:8QFSYDAR
>>763
ご回答ありがとうございます。
Aが変数(AだったりBだったり)なので、class_get_varsした後に取り出しました。
765nobodyさん:2007/09/23(日) 12:14:54 ID:???
class A { public static $a = 'hoge'; }
echo A::$a;    ~~~~~
766nobodyさん:2007/09/23(日) 12:17:54 ID:???
767nobodyさん:2007/09/23(日) 13:22:33 ID:ByDzcAVc
if ($a === true) {
echo "正解";
}


これ書き方あってますよね?
===を使う場合、trueを"で囲むと文字列になるから
囲まないで書くべきですよね?
768nobodyさん:2007/09/23(日) 13:30:20 ID:???
>>767
== は、値(暗黙の変換含む)の一致で true になる
=== は、値と型両方が一致した場合のみ true になる

$a = 1;
if ($a == true) // 暗黙の変換により true になる
if ($a === true) // intとboolで型が違う為 false になる
769nobodyさん:2007/09/23(日) 13:38:01 ID:x8KAGuvr
.=って何?=と違うの?
770nobodyさん:2007/09/23(日) 13:46:26 ID:???
>>769
それすら自分で調べようとしなかったらもはや末期だな
771nobodyさん:2007/09/23(日) 13:47:13 ID:???
くだらねえ質問なんだからいいだろ
772743:2007/09/23(日) 14:26:13 ID:???
>>752
言えてる
javaとperlがメインだったけど perlは相当気持ち悪い でも適当でもOKだから仕事以外で便利
phpも相当気持ち悪いが どうせ気持ち悪いならperl並に徹底してくれないと困る
773nobodyさん:2007/09/23(日) 14:28:30 ID:???
>>771
内容と態度の下らなさは違う
774nobodyさん:2007/09/23(日) 15:25:01 ID:???
文字列の連結に.を使うでしょ?
だから.=は+=とおんなじ意味
$str = "hoge";
$str .= "huga";

echo $str;

hogehuga
775nobodyさん:2007/09/23(日) 16:23:22 ID:giEVgmm5
phpinfo()の項目にあるVirtual Directory Supportって何?
どうやったらenableになるのかわからなくて気持ち悪い・・・
776nobodyさん:2007/09/23(日) 16:36:28 ID:???
pearのmdb2を使って勉強してるんだけど、pearのマニュアルや他のサイト見てると
queryAll等の結果セットをfree()で解放してあげましょうとなっています。

queryAllをした直後に結果セットの内容を使うのであれば、すぐにfree()してしまえば
良いと思うんだけど、その結果セットをその後の処理でも使いまわす場合は、どうするのが
一番良いのでしょうか?

今考えてるのは、結果セットを新しく作った配列にコピー後に、結果セットはfree()してしまおうかと
思っているのですが、何となく無駄な事をやってる気がして・・・。


777nobodyさん:2007/09/23(日) 16:41:00 ID:???
>>775
ググれ
778nobodyさん:2007/09/23(日) 17:20:54 ID:???
779775:2007/09/23(日) 17:42:36 ID:giEVgmm5
>>777
スマン、書き込む前に必死にググッたりマニュアル読んでみたり
関連リンク回ったりしてみたんだが見つからなかったんだ。

もう少し調べてみるわ。ありがとう。
780nobodyさん:2007/09/23(日) 18:04:44 ID:20rGQLTi
文字列操作で四苦八苦しています。
複数の文字列の共通項を取り出す処理をしたいのですが、
そのような便利な関数がありますでしょうか?


$a = "テレビを昨日見た。";
$b = "昨日テレビを見た。";
$c = "テレビを明日見る。";
$result = function_X($a, $b, $c);
echo $result;

$resultが$a、$b、$cの共通項の「テレビを」が出力されると、
いいのですが、substrとかで一文字ずつの総当りの組み合わせで共通項の検査すると、
ものすごい計算量になるので、何とかもっと簡単な方法はないかと悩んでいます。

宜しくお願いします。
781nobodyさん:2007/09/23(日) 18:05:38 ID:???
つ形態素解析
782nobodyさん:2007/09/23(日) 18:09:03 ID:20rGQLTi
>>781
レスありがとうございます。
形態素解析も考えたのですが、今回は文法レベルで単語分けをする必要がなく、
又英語などや記号も混じってしまうので、機械的に複数変数の共通部分の文字列のみを
取得したいと思っています。

言葉足らずですみません。引き続きよろしくお願いします。
783nobodyさん:2007/09/23(日) 18:11:05 ID:???
そのような関数はない。文字列関数らへん見て自作すれ。
784nobodyさん:2007/09/23(日) 18:13:29 ID:CMYUgsUj
>>782はどこかへ誘導しようとしているとみた
785nobodyさん:2007/09/23(日) 20:24:31 ID:???
正規表現で、各文字列について走査すればよい
786nobodyさん:2007/09/23(日) 22:59:17 ID:d1xYr/lj
またわからない 
perlのtruncateに該当するphpの関数ってありますか?
787nobodyさん:2007/09/23(日) 23:04:55 ID:???
ググれ
788nobodyさん:2007/09/23(日) 23:09:14 ID:???
くだ質でググれって言っちゃう奴は、何考えてるんだろうね。
答える気が無いなら、書き込まなきゃいいのに。
789nobodyさん:2007/09/23(日) 23:13:48 ID:???
>>786
ftruncate
790nobodyさん:2007/09/23(日) 23:17:07 ID:???
>>788
なんでくだ質スレでググれと言っちゃいけないのか詳しく
791nobodyさん:2007/09/23(日) 23:34:35 ID:???
>>789
さんくすこ

>>790
>なんでくだ質スレでググれと言っちゃいけないのか詳しく
ググれ
792nobodyさん:2007/09/23(日) 23:49:44 ID:mTLKY/f7
foreachで↓みたいなテーブルを作成したいのですがうまくいきません。
初歩的な質問で申し訳ないのですが、どなたかご教示願えませんか?
よろくしお願いします。
______________________
| 一段目 | td一 | td二 | td三 | td四 | td五 |
| 二段目 | td六 | td七 | td八 | td九 | td十 |
| 三段目 | td一 | td二 | td三 | td四 | td五 |
| 四段目 | td六 | td七 | td八 | td九 | td十 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
793nobodyさん:2007/09/23(日) 23:58:20 ID:???
>>791
それに関して検索してどういうサイトを見つけろと?
それが示せないようならまともな回答になってない
794nobodyさん:2007/09/23(日) 23:58:52 ID:???
>>792
書いたコードをUP
795nobodyさん:2007/09/23(日) 23:59:57 ID:???
なにこの流れ? 786=788=791か?

くだ質だからなんでも質問すりゃいいって、どんだけユトリなのよ
796nobodyさん:2007/09/24(月) 00:24:55 ID:JxEty0kG
>>794
編集してて遅くなりました。ごめんなさい
こう書いたんですがこれじゃ駄目ですよね…
>>792みたいな横に長いテーブルを出したいのですが(;´Д`)

echo "<table>";

$table = array (
"一段目" => "td一", "td二", "td三", "td四", "td五",
"二段目" => "td六", "td七", "td八", "td九", "td十",
"三段目" => "td一", "td二", "td三", "td四", "td五",
"四段目" => "td六", "td七", "td八", "td九", "td十"
);
foreach ($table as $key => $value) {
echo "<tr>";
echo "<td>$key</td>";
echo "<td>$value</td>";
echo "</tr>";
}
echo "</table>";
797nobodyさん:2007/09/24(月) 00:47:10 ID:???
>>796
なんじゃそりゃ。
コード書く前に落ち着いて頭の中で整理してアルゴリズム考えてみ。
798nobodyさん:2007/09/24(月) 00:56:56 ID:Wq/5iUlO
>>796

foreach ($table as $key => $value) {
if(!is_numeric($key)){
echo $tr."<tr>";
echo "<td>$key</td>";
   $tr = "</tr>";
}
echo "<td>$value</td>";
}
echo "</tr>";
echo "</table>";
799nobodyさん:2007/09/24(月) 00:57:42 ID:???
>>797
アルゴリズム?
アルゴニズムだろ??
800nobodyさん:2007/09/24(月) 01:13:42 ID:???
801nobodyさん:2007/09/24(月) 01:30:21 ID:???
>>796
これって
$table[一段目], $table[0], …$table[二段目], $table[4], …
こういう配列になるわけだろ?何が嬉しいのかわかんない
802796:2007/09/24(月) 01:55:21 ID:JxEty0kG
>>798
できました!
何が嬉しいのかと言われたら確かにその通りですが(;´Д`)
ありがとうございました。
803798:2007/09/24(月) 02:10:26 ID:Wq/5iUlO
>>802
上の方で言われてるようにその配列は使い勝手が悪いです。
柔軟性に欠けますから工夫が必要です。
頑張ってください。
804nobodyさん:2007/09/24(月) 03:46:09 ID:???
>>796
> $table = array (
> "一段目" => "td一", "td二", "td三", "td四", "td五",
> "二段目" => "td六", "td七", "td八", "td九", "td十",
> "三段目" => "td一", "td二", "td三", "td四", "td五",
> "四段目" => "td六", "td七", "td八", "td九", "td十"
> );
これって本当は
$table = array (
"一段目" => array("td一", "td二", "td三", "td四", "td五"),
"二段目" => array("td六", "td七", "td八", "td九", "td十"),
"三段目" => array("td一", "td二", "td三", "td四", "td五"),
"四段目" => array("td六", "td七", "td八", "td九", "td十"),
);
ってしたかったわけじゃないのか?
見た目と構造が全然かみ合ってないそ。
805nobodyさん:2007/09/24(月) 06:52:38 ID:???
>>804
その構造なら条件分岐がいらないね

printf("<table>\n");
foreach($table as $key => $list){
  printf("<tr><td>%s</td>", $key);
  foreach($list as $value){
    printf("<td>%s</td>", $value);
  }
  printf("</tr>\n");
}
printf("</table>\n");
806nobodyさん:2007/09/24(月) 08:43:14 ID:???
>>805
でもそれじゃぁ全部の段が同じ数じゃないと
HTML的に変になるという

まぁそこまで考えんでもいいか・・・
807nobodyさん:2007/09/24(月) 10:01:06 ID:???
>>806
変にループ条件いじるくらいなら
先に変数側を正規化した方が楽だけどね。
808nobodyさん:2007/09/24(月) 12:43:32 ID:aGF/5enb
$table_names = array (
"0" => "一段目",
"1" => "二段目",
"2" => "三段目",
"3" => "四段目",
);

$table_values = array (
"0" => array("td一", "td二", "td三", "td四", "td五"),
"1" => array("td六", "td七", "td八", "td九", "td十"),
"2" => array("td一", "td二", "td三", "td四", "td五"),
"3" => array("td六", "td七", "td八", "td九", "td十"),
);

$table_count = count($table_names);

こうしないでいいの?
俺てっきりマルチバイトダメだと思ってたよ
809nobodyさん:2007/09/24(月) 13:15:20 ID:???
欧米か!
810nobodyさん:2007/09/24(月) 13:24:01 ID:???
>>806
そもそも配列の要素数が行毎に異なるなんてのは考えたくないけど。
つじつま合わせの補完計画。

$maxcount = 0;
foreach($table as $list){
  if($maxcount < count($list))
    $maxcount = count($list);
}
printf("<table>\n");
foreach($table as $key => $list){
  $list = array_pad($list, $maxcount, "-");
  printf("<tr><td>%s</td>", $key);
  foreach($list as $value){
    printf("<td>%s</td>", $value);
  }
  printf("</tr>\n");
}
printf("</table>\n");
811nobodyさん:2007/09/24(月) 13:37:12 ID:BGlF/jIi
登録→確認→完了 というフォームがあるとします。
登録フォームで間違えた時は、そのページの上部にエラーメッセージが出る
と言った処理方法だとします。

エラーがある場合、セレクトメニューに入力した値が消えてしまうのですが、
以下のような方法以外に、出来るだけ簡単に対処出来ないでしょうか?

function selectForm($form_name,$val){
$names = array("あああ","いいい","ううう");

echo "<select name=\"$form_name\">";
for($i=0;$i=count($names);$i++){
if($names)[$i]=="$val"){
$selected='selected="selected"';
}else
$selected="";
}
echo "<option value=\"$val\" $selected>$val</option>\";
}
echo "</select>";
}

selectForm("test",$_POST["test"]);
812nobodyさん:2007/09/24(月) 14:05:59 ID:3GSML6xR
function valsclear($vals){
if (is_array($vals)){
array_map(array($this,'valsclear'),&$vals);
}else{
$vals = '';
}

値だけを消去したいのですが、どうしたら良いでしょうか?
813nobodyさん:2007/09/24(月) 14:45:48 ID:HSprOhmP
txtファイルをUPして、その内容を表示したいのですが、文字化けしてしまいます。
PHPの記述・HTMLの表示はEUC-JPで、txtファイルはShift-JISです。

$data = file_get_contents("test.txt");
$data = mb_convert_encoding($data,"EUC-JP","auto");
echo $data;

としてみたのですが、
p"・・・・畿4ウチu"�ょ"・・A介潤・逐・縲・・楳氈E・・
とこんな感じになってしまいます。
test.txtをEUC-JPで作ると問題なく表示されます。
どうすれば解決できるでしょうか。よろしくお願いします
814nobodyさん:2007/09/24(月) 15:15:31 ID:???
auto→SJIS
815nobodyさん:2007/09/24(月) 15:38:02 ID:???
確かに、 auto だとちゃんとconvertできてないことあるよね。
なんでだろ。
PHPのソース見れば分かるんだろうけど。
816813:2007/09/24(月) 15:47:27 ID:/07n7WU2
>>814
ありがとうございます、ちゃんと表示されました。
autoは万能じゃないて事ですかね。
817nobodyさん:2007/09/24(月) 16:06:22 ID:???
>>808
マルチバイトどころかコントロールコード入れるのだってアリだよ
818nobodyさん:2007/09/24(月) 16:30:12 ID:???
>>811
これ、本当に動いてますか? 怖くて手を着けたくないっす。

>>812

function valsclear($vals){
 if(is_array($vals)){
  foreach(array_keys($vals) as $atom){
   if(is_array($vals[$atom])){
    valsclear(&$vals[$atom]);
   } else {
    $vals[$atom] = '';
   }
  }
 } else {
  $vals = '';
 }
}

とりあえず 2×2×5 の多次元配列までやってみたけど、どうだろうか
819nobodyさん:2007/09/24(月) 16:41:55 ID:9opMSOGn
php4.xにてクラス内のメソッドから継承関係に無い別のインスタンス内の
プロパティにアクセスするにはどうすればよいでしょうか?
820nobodyさん:2007/09/24(月) 16:51:18 ID:???
>>819
メソッドへの引数でインスタンスを渡してやれば?
821nobodyさん:2007/09/24(月) 17:09:15 ID:9opMSOGn
>>820 アクセスできました、ありがとう!
822nobodyさん:2007/09/24(月) 19:36:00 ID:???
>>811
どうしたってセレクトのアイテム数分ループさせて比較しなきゃいけないんだから、それ以上工数は減らせないでしょう。
ただ見た目的にシンプルかつ柔軟な関数にするだけでいいならこんなんでいかかでしょうか?

function selectForm($select_name, $option_values, $selected_id='')
{
$strbuf = "<select id=\"{$select_name}\" name=\"{$select_name}\">";
foreach ($option_values as $id => $val) {
$selected = ($id==$selected_id) ? ' selected="selected"' : '';
$strbuf.= "<option value=\"{$id}\"{$selected}>{$val}</option>\";
}
return $strbuf;
}

$arrbuf = array(0=>"あああ", 1=>"いいい", 2=>"ううう");
echo selectForm('test', $arrbuf, $_POST['test']);
($_POST['test']の中身が値ではなくそれに対応するidが入っているという前提になってます)
823811:2007/09/24(月) 19:42:41 ID:???
>>822
ソースありがとうございます。参考にさせていただきます。
ただ、やはり一般的には811の方法しかないですよね。。
824nobodyさん:2007/09/24(月) 19:50:39 ID:???
>>823
Javascript前提なら、PHPでは比較しないでループで書き出すのみにして
onloadでJavascriptに比較させてもいいんだけどね。
普通はやらんねw
825nobodyさん:2007/09/24(月) 19:54:06 ID:???
>>823
基本的には811のやり方で、後は些細な書き方の差になると思うけど、
例えばif文を使わない版。ただし、valueの種類に "" を含むと誤動作する。
$name = "test";
$values = array(0=>"あああ", 1=>"いいい", 2=>"ううう");

$select = array($_POST[$name] => ' selected="selected"');
$html = "<select name=\"$name\">\n";
foreach($values as $id => $val) {
 $html .= "<option value=\"$id\"{$select[$id]}>$val</option>\n";
}
$html .= "</select>\n";

echo $html;
826nobodyさん:2007/09/24(月) 20:17:55 ID:???
>>825
空文字valueがある場合でも
$select = array($_POST[$name] => ' selected="selected"');

$select = (isset($_POST[$name]))? array($_POST[$name] => ' selected="selected"'): array();
にするだけかと。
827nobodyさん:2007/09/24(月) 22:06:16 ID:???
なんか更に難しく(ややこしく)なっている気が…
828nobodyさん:2007/09/24(月) 22:43:12 ID:JlRJpJ4M
あるクラスの__destructメソッド内でMySQLの接続を切るmy_closeメソッドを記述してます。
ほかのクラスで上記クラスをインスタンス化して保持します。
このインスタンス変数をinstanceとした場合、DBの接続を切るには、
instance -> __destruct() と記述すればいいのでしょうか?
829nobodyさん:2007/09/24(月) 23:11:07 ID:???
>>828
デストラクタはインスタンスが破棄される時に自動実行される。
$instance->__destruct()とした場合、デストラクタは実行されるが、インスタンスは破棄されておらず、
インスタンスが破棄される時(関数を抜ける時や実行終了時)にもデストラクタが二重実行されてしまう。
明示的に変数を破棄する場合はunset($instance)を使う。
但し、unset($this)といった様にインスタンスが自身を破棄することは出来ないので注意されたし。
830nobodyさん:2007/09/24(月) 23:57:32 ID:JlRJpJ4M
>>829
どうもありがとうございました。
Smartyを使ってMVCに基づいたプログラミングをしてます。
Controlはポストデータ受け、Modelのインスタンス生成、戻り値(ResultSet)のsmarty->assignセット、Viewであるテンプレートコール。
ModelはSQLの実行など。
Smartyクラスを継承したサブクラスを作り、そのconstructでMySQLやDBへの接続をしてます。
DBの切断をどこでやるか迷っていたのです。
いろいろあると思いますがなかなか設計が・・・
831nobodyさん:2007/09/25(火) 00:00:45 ID:8D5Ec5Bn
切断処理は必要?
832nobodyさん:2007/09/25(火) 00:10:05 ID:ibGZ3o0m
なんか明示的にあった方がいいかなと・・・
833nobodyさん:2007/09/25(火) 00:21:07 ID:???
>Smartyクラスを継承したサブクラスを作り、そのconstructでMySQLやDBへの接続をしてます。
Smartyの派生クラスでDB接続って、MVCがごっちゃになりそうなもんだが。
834nobodyさん:2007/09/25(火) 00:45:59 ID:ibGZ3o0m
>>833
そうですね。
DB接続用のクラスを作ってSmartyクラスの派生とは分離させてみます。
ありがとうございました。
835nobodyさん:2007/09/25(火) 14:56:33 ID:RlJd1MSD
$hoge = include("hoge/hoge.php");



こういうことやりたいのですが
これだと$hoge関係なしにそのままインクルードされてしまいます
実現方法を教えてください
836nobodyさん:2007/09/25(火) 15:00:09 ID:???
>>835
もともとそういう使い方をするものではない
getして放り込んで実行しろ
837nobodyさん:2007/09/25(火) 15:07:19 ID:RlJd1MSD
>>736
ありがとうございます。わかりました
GETのやりかたをGOOGLEで検索してみます
838nobodyさん:2007/09/25(火) 15:12:10 ID:???
>>835
多分でしかないけど

ob_start();
include("hoge/hoge.php");
$obj = ob_get_clean();
839nobodyさん:2007/09/25(火) 15:20:55 ID:???
--- hoge.php ---
return <<<EOF
なんたらかんたら
EOF;

--- 読み元.php ---
if ($contents = @include('hoge.php')) {
  echo $contents;
} else {
  echo 'hoge.phpがねーぞ';
}
840nobodyさん:2007/09/25(火) 15:33:42 ID:RlJd1MSD
>>838
ありがとうございます できました
>>839
ありがとうございます コードを保存しました こんどやってみますね
841nobodyさん:2007/09/25(火) 16:25:55 ID:QDhH7pTb
いまA鯖からB鯖にFTPでファイルをアップロードするphpプログラム作ってるんですが
ログインしてカレント移動までは正常にいくのですいが、ファイルのアップロードがうまくいきません。
まったくうまくいかないのかというとそうではなくて、B鯖に’HOGE.txt’までは作られるんですが、
’hoge.txt’の内容はまったくなく、真っ白の状態です。
プログラムを実行すると、かなり時間がかかったあと、ファイルのアップロードに失敗したといわれます。
-------------------------------------------------------------------------------------
<?php
$ftp_server = "www.example.jp";
$ftp_user = "hoge";
$ftp_pass = "passwd";
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
echo "Connected as $ftp_user@$ftp_server\n";
} else {
echo "Couldn't connect as $ftp_user\n";
}
ftp_chdir($conn_id, "public_html");
$file = 'hoge.txt';
$remote_file = 'HOGE.txt';
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}
ftp_close($conn_id);
?>
-------------------------------------------------------------------------------------
どこがいけないのでしょうか?
842nobodyさん:2007/09/25(火) 16:25:59 ID:???
文字列の中で開始文字列と終了文字列の間に挟まれている部分だけ取り出したい。
開始文字列と終了文字列は別、取り出したいものは一ヶ所という前提です。

$src = "ここはいらないstartここがいるendここもいらない";
$s = "start";$e = "end";
$ary = explode($s, $src);
$tmp = $ary[1];
$ary = explode($e, $tmp);
$tmp = $ary[0];
echo $tmp;

なんかもっと効率のいい書き方はないでしょうか?
843nobodyさん:2007/09/25(火) 16:33:00 ID:???
echo preg_replace('start(.*)end', '\1', $src);
844nobodyさん:2007/09/25(火) 18:07:39 ID:Bc2ZA9JH
filter関数便利じゃねって調べてたんだけど、
これさ元からあるフィルタ以外に拡張したい場合、
FILTER_CALLBACKしか無い感じですか?

新しいフィルタ定義して呼び出すとか無理っぽい?

それでもfilter_listやfilter_idが存在するのは
ソースコード書き換えてPHPからコンパイルし直せつうこと?
845nobodyさん:2007/09/25(火) 18:14:45 ID:9q66wLmd
自分で掲示板を作ると愛着がわくのでだれかcgiで掲示板を作成する
サイトを教えてください。
846nobodyさん:2007/09/25(火) 18:26:04 ID:???
>>844
filter_id は ext/filter/filter_private.h にあるC的にスタティックなID番号を示すぽいので、
スクリプト実行時に動的に増やすのはcallback以外ムリじゃないかな。
847nobodyさん:2007/09/25(火) 19:09:20 ID:???
「100」とか「50」という文字列を「100.00」「50.00」というように表示したいのですが
number_format($str,2)だと「100」「50」となってしまいます。
何か方法無い物でしょうか?

出力はSmartyを通してます
848nobodyさん:2007/09/25(火) 19:18:29 ID:???
>>847
sprintf
849nobodyさん:2007/09/25(火) 19:34:59 ID:???
>>846
どうもです。やっぱりそんな感じなんですね。
うーん使い勝手がいきなり微妙に・・・
850nobodyさん:2007/09/25(火) 19:48:25 ID:???
>>848
うほ!ありがとうございます!
printfでやって駄目で、sprintfで試してなかったです
851841:2007/09/25(火) 20:34:09 ID:xfKDGXzl
>>841です
追加情報
A鯖からftpコマンドでは正常にやり取りできます。

会社のTurboLinux10サーバーからA鯖である自宅のCentOS5へ向けて
さっきのスクリプトを走らせると正常に処理が完了します。

A鯖から外部へ向けて走らせるとまったくだめです。
会社のTL10S、ローカルWindowsのFTP鯖、ジオシティーズすべてだめでした。
シェルからFTPコマンドではすべて正常に処理できました。

phpinfoで再度確認してみましたが ftp enable となっており使える設定のはずですが。。。
Apache2.x自体 yum にてインストールしました。
スクリプトではなくA鯖に問題があるのでしょうか?
852841:2007/09/25(火) 20:41:52 ID:xfKDGXzl
>>851
失礼しました、自己解決しました。
A鯖のiptablesの設定ミスをしていました。
ありがとうございました。
853nobodyさん:2007/09/25(火) 20:52:40 ID:???
質問です。phpでsendmailのパスを設定する方法が分からず困ってます。
CGIのように設定する必要はないのでしょうか。
854853:2007/09/25(火) 21:00:48 ID:???
すみません、自己解決しました
855nobodyさん:2007/09/25(火) 21:04:32 ID:???
>>854
言ってくれてありがとう 自己解決です
856nobodyさん:2007/09/25(火) 21:38:42 ID:Wp8RlZHh
PHPでアセンブリ言語って使うことできますか?
ある一定の作業だけアセンブリで書きたいのですが。
857nobodyさん:2007/09/25(火) 21:40:17 ID:???
どんな作業よ
858nobodyさん:2007/09/25(火) 21:46:19 ID:???
ある問題に一元的な答えを追及し自己解決したというのは、
オレから言わせれば、欺瞞でありアイデンティティーの欠如に他ならない。
859nobodyさん:2007/09/25(火) 21:57:23 ID:???
>>856
linuxならバッククォートで囲む。
windowsはやったことないからしらん。
インラインで書きたいってのならミリ
860nobodyさん:2007/09/25(火) 22:07:27 ID:259tGTbD
すみませんが、どなたかわかる方レスお願いいたします。
環境:WindowsXP SP2+Apache2+PHP5+MySQL5
PHPからmysql_query("SELECT HogeHoge From Table WHERE ・・・");を
実行して結果をテキストファイルに書き込む処理をしています。
ブラウザでPHPファイルを読み込んだ一発目は成功するのですが、二度目
(つまり、F5によるリフレッシュ、自身へのリンクをクリックして再読み込みした場合など)では
ファイルに何も出力されておらず途方にくれています。
MySQLの方でもエラーログに何にも記載なし、Apacheのほうもエラーなし。
アクセスログにも怪しげなものなし。
そもそも、なんで同じコードなのに1回目は成功して二回目は失敗するの?
(推測したこと)
・1回目の処理でファイルが排他モードになってて2度目のときにロックがかかってて処理ができない。
  →レコード以外にもfputs($Fhandle,"書き込めるよ");などとやったら「書き込めるよ」はちゃんと出力される。
   ってかそもそも、ちゃんとfclose実行してるし。。。
・よくわからんけどMySQLが同一ユーザーからの処理を受け付けないようになってる?
 同じID,Passwordで検証しているからこれが有力と思いきや
  →ID,Passを1度目と2度目で分けても結果は変わらず。
・もしかして発行するSQLCommandを間違ってるとかいうDQNなオチ?
  →QueryBrowserで確認するがちゃんと表示される。

さぁ本当にお手上げだ。
誰か心優しい方、ヒントだけでもぜんぜんOKなんで俺を助けてくれ。
861nobodyさん:2007/09/25(火) 22:10:13 ID:???
まずどこで失敗してるのか切り分けてから出直して来い
862860:2007/09/25(火) 22:14:56 ID:259tGTbD
860っす。
説明下手くそですんません。
失敗しているのはおそらくここっす。

$rs=Func_Query("SELECT A,B FROM HOGE_MASTER WHERE A='" . $_GET['key'] . "';");
while($row = mysql_fetch_array($rs)) {
fputs($fhandle,$row[0] . "," . $row[1] . "\n");
}
863nobodyさん:2007/09/25(火) 22:16:21 ID:???
うん、そこがどうなるわけ?
864860:2007/09/25(火) 22:19:26 ID:259tGTbD
1度目はOpenしたファイルに書き込めるのですが、2度目は真っ白けっけのファイルができて
何にも書かれていないのです(涙)
ちなみにファイルはw+でオープンしています。
(つまりファイルオープンはエラーじゃないと頭悪いなりに考えをめぐらせて見ました)
ということは$rsに何にも入っていないか、fputsが失敗しているかのどっちかかなと。
865nobodyさん:2007/09/25(火) 22:21:14 ID:???
内容確認せずGETをクエリにってちょ、ま、おま!
866860:2007/09/25(火) 22:25:38 ID:259tGTbD
え?まずいっすか(笑)
一応ここには決まったStringしかプログラムが返さないようになっているので平気かと。
しかも、1回目はうまくいくんですよ〜。
ヒントだけでもいいんでお願いします〜〜。
867nobodyさん:2007/09/25(火) 22:29:41 ID:???
外から来る変数は全て汚染されてる前提でチェックするのが吉。
868nobodyさん:2007/09/25(火) 22:29:51 ID:???
860ワロス
869860:2007/09/25(火) 22:31:47 ID:259tGTbD
了解っす♪
今はLocalでテストなんで平気ですけど、最終的にはかならず切り分けしてチェックを通ったものだけを
実行するようにいたします。
870nobodyさん:2007/09/25(火) 22:39:05 ID:???
まず$_GET['key'] の内容をそのファイルに書き込んでみたら?
リロった時に入ってないとかってオチかもしれんよ
871860:2007/09/25(火) 22:48:49 ID:259tGTbD
ほんまじゃあああ。めっさ興奮。
直で値、書き込んだらなぜか動作しないっす。
ただし、同じものをコピペしてQueryBrowserで実行するとなぜかきっちり実行される。
これってどういうことなんですかね。
本当にアホな質問なんでしょうがよろしくお願いします。。。
872nobodyさん:2007/09/25(火) 23:00:04 ID:???
>>871
そのFunc_queryってのがへんなんじゃない?
普通にmysql_queryで書いたらどうだね
873860:2007/09/25(火) 23:05:27 ID:259tGTbD
なんか引き継ぐ前のおっさんが「ややこしい処理を全部外部ファイルにまとめといたよ♪」とのこと。
俺もFunc_Queryってなんだろうって思って確認したら
function Func_Query($strSQL){
$rs=mysql_query($strSQL);
return $rs;
}
って書いてありますたorz
ちなみに今回はmysql_queryでやってもまったく同じ結果ですね。
もしかして日本語を代入してるのがまずいんでしょうかね?
874nobodyさん:2007/09/25(火) 23:08:11 ID:???
>>873
文字コードだと思う
875856:2007/09/25(火) 23:12:14 ID:Wp8RlZHh
>>859
レスありがとうございます。
仰るとおりCの様にインラインで書きたかったのですが無理なのですね。
参考になりました。どうもありがとうございます。
876860:2007/09/25(火) 23:20:06 ID:259tGTbD
たしかにその線ぽいです。
先ほどの$_GET['key']の中をsampleみたいに半角英数字のみで構成させると動作する場合が多いです。
(それでもリロードしたあとに動作しないことが多々あり原因は不明)
現在SJISで書かれたウェブの中にあるSelectOptionsの中身に
AjaxでPHP(EUC)がUTF8で書き込んだファイルの内容を一行ずつ表示させて、それをクリックしたら
またその内容をPHPで受け取ってさらにファイルを生成するというむちゃくちゃな仕様に
なっています。
引き継いだときにはこんな状態だし、私は完全に畑違いなのに毎日画面とにらめっこで
泣きそうです。
とりあえず、糸口だけでもつかめて本当に参考になりました。
お答えいただいた方は1人?2人??よくわかりませんが、本当にありがとうございます。
いったんここで質問をCloseさせていただきます。
877nobodyさん:2007/09/25(火) 23:25:24 ID:???
大量の計算処理をしている場合に、熱暴走することがあるのですが、
例えば、蛍光灯と裸電球と比べると、蛍光灯は同じ電力量で明るいと思います。

これは、蛍光灯が熱エネルギーも全て光エネルギーに変換しているためですが、
どうしてCPUも熱エネルギーを計算処理にリソースを割かないのでしょうか?
CPUから熱エネルギーを生成している意義がよくわからないです。
878nobodyさん:2007/09/25(火) 23:29:48 ID:???
SJISだけはマジで鬼門だからそれだけでも今のうちになんとかする事をオヌヌメする
879nobodyさん:2007/09/25(火) 23:30:53 ID:???
>>877
冬の暖房になってるじゃまいか
880nobodyさん:2007/09/25(火) 23:43:10 ID:???
>>877
スレ違いすぎる
881nobodyさん:2007/09/26(水) 01:08:06 ID:???
>>878
携帯サイトなのでSJIS使ってるけどマジ鬼畜
でもそんなの関係ねぇ!
882nobodyさん:2007/09/26(水) 01:31:47 ID:???
>>877
小型化のため。
883nobodyさん:2007/09/26(水) 01:54:30 ID:???
>>877
熱力学第二法則でググれば幸せになれる
884nobodyさん:2007/09/26(水) 06:06:53 ID:VlwtrPtd
>>859に興味があるのですがどのように記述するんですか?
PHPで他の言語が使える?ってこと?
初心者丸出しですみませんorz
885nobodyさん:2007/09/26(水) 09:23:15 ID:???
>>884
バッククォートで囲む=外部コマンドとして実行する。
その場でアセンブルして実行ファイルを生成して、即実行しちゃえ、ってことでしょ。
他の言語が使えることは使えるけど、むっちゃ遅いのであんまり使い道は無い。
すでに開発済みのPerlスクリプトに一部処理を任せる、みたいな目的なら可。
886nobodyさん:2007/09/26(水) 09:43:39 ID:???
virtualって便利だな
887nobodyさん:2007/09/26(水) 10:46:54 ID:QWy2Zkw0
ブログやニュースサイトの本文のみを表示するにはどう書けばいいでしょうか?
888nobodyさん:2007/09/26(水) 10:50:37 ID:???
>>885
それphpでアセンブリ言語使っているって言わないw
889nobodyさん:2007/09/26(水) 11:13:20 ID:???
>>887
丸投げするなら金払え
890nobodyさん:2007/09/26(水) 13:16:02 ID:???
アセンブリ言語を使うなら、普通はDLLにする罠
891nobodyさん:2007/09/26(水) 16:38:40 ID:4b9p4uCs
PHPで携帯サイト作ろうと思って

<?php
echo "a";
?>

というhoge.phpをau携帯(W31SA)から見たら

「リクエストされたページは表示できません。」

と返されたのだが、何が問題でしょう??
892nobodyさん:2007/09/26(水) 16:48:20 ID:???
リクエストされたページは表示できません。でググれ
893nobodyさん:2007/09/26(水) 16:49:29 ID:???
>>891
HTMLの基礎の基礎の基礎からやり直せ
894nobodyさん:2007/09/26(水) 17:24:39 ID:???
>>891
携帯端末はPCと違ってちゃんと<html>とかから始めないと表示できない。
895nobodyさん:2007/09/26(水) 17:33:42 ID:Mqjw2ZGS
>>893
基礎の基礎の基礎だと、テキストに「a」とだけ書けば表示されるんだけど?
htmlになってしかも携帯だから表示しないだけで。
896nobodyさん:2007/09/26(水) 17:36:44 ID:???
>>895
htmlの書き方を勉強しなおせ、とりあえず動けば良いってお前は中国人かw
897nobodyさん:2007/09/26(水) 17:37:54 ID:Mqjw2ZGS
>>896
おれにいわれても・・・・・
困ってる>>891に言ってあげれば?
898nobodyさん:2007/09/26(水) 17:40:52 ID:???
>>895
どこのhtmlの基礎の基礎の基礎の勉強で
htmlを使わないでウェブページを作れと教えてあるんだボケナス
899nobodyさん:2007/09/26(水) 17:43:56 ID:???
別にWebページはHTMLでしか作れないわけじゃないんだけど…
特にauはHTML以外でもページ構成できるわけで。
900nobodyさん:2007/09/26(水) 17:46:51 ID:???
>>894
携帯ブラウザってプレインテキストは表示できないのか
初めて知ったわ
901nobodyさん:2007/09/26(水) 17:47:57 ID:???
>>900
キャリアによる。
auはダメだけどDocomoは問題ないんじゃなかったかな。
902nobodyさん:2007/09/26(水) 17:48:35 ID:???
>>899
というかauでHTMLはむしろ邪道。
903nobodyさん:2007/09/26(水) 17:54:55 ID:???
>>890
PHPじゃDLLはつかえんだろ?
904nobodyさん:2007/09/26(水) 17:55:30 ID:???
>>901
>>891をつくってやってみたらドコモは表示できたw

こういうのって質問する前に自分で試したほうが早いと思うんだけどねー

>>902
あうはWML(笑)だよなー
905nobodyさん:2007/09/26(水) 18:03:11 ID:???
>>903 使える
方法1: PHP拡張モジュールを作る http://www.php.net/manual/ja/function.dl.php
方法2: Windows環境のPHP5でCOMを利用する http://www.php.net/manual/ja/ref.com.php
906nobodyさん:2007/09/26(水) 18:17:00 ID:bO9sGA13
PHPのデータベースを操作するライブラリってなにが有名?
MDB2さわってみたけど、資料やエラー報告が少なくて見送ろうと思うんだけど・・・
907nobodyさん:2007/09/26(水) 18:23:28 ID:???
絶対パスから相対パスに変換する関数ってあります?
なかったらコードが乗ってるサイトしりませんか?
自分でちょっとがんばってみたんですが・・・
バカなんで・・・無理でした・・
908nobodyさん:2007/09/26(水) 18:27:02 ID:???
909nobodyさん:2007/09/26(水) 18:28:01 ID:???
>>906
PDOがいいよ
910nobodyさん:2007/09/26(水) 18:36:57 ID:???
>>907
>>1
それと質問がエスパーすぎ
相対パスにする必要ないし、何を相対パスにしたいのかがわからない。
911906:2007/09/26(水) 18:44:11 ID:bO9sGA13
>>908-909
ありがとうございます。
PDOとPEAR::DBの違いはなんですか?
912nobodyさん:2007/09/26(水) 18:48:36 ID:???
ラッパークラスかどうか
913nobodyさん:2007/09/26(水) 18:50:59 ID:nbOl+lTy
空メール送信に対して自動的に返信するのを作ろうと思うのですが、
メールをトリガーにして実行するスクリプトか、
クローンで数秒ごとに動くスクリプトにしようか迷ってます。

メールをトリガーにする場合は、あくまでトリガーになるだけで
スクリプトに直接メールの内容は行かないんですよね?

何か助言などがあると嬉しいです。
914nobodyさん:2007/09/26(水) 18:54:21 ID:F6zSEDUt
>>913
php://stdin 
915891:2007/09/26(水) 19:33:54 ID:4b9p4uCs
>>894
なるへそ、そういうことか。さんくす。

でもおかしくね?誰だよこんな仕様にしたのww
916nobodyさん:2007/09/26(水) 19:56:45 ID:???
PHPでSELECTBOXなどで文字に数字を割り当てる場合にはSQLでENUMに設定しています?
それともSQLは数字だけでPHP側で処理してます?
917nobodyさん:2007/09/26(水) 20:02:22 ID:???
日本語でおk
918916:2007/09/26(水) 20:02:46 ID:???
あああ、DB板とまちがえた
LANケーブルぬいて回線きって首つtt(ry
919nobodyさん:2007/09/26(水) 20:18:27 ID:???
>>915
auは複数のフォーマットをゲートウェイで変換表示するから
フォーマットを特定できない形式は扱えないんだよ。
920nobodyさん:2007/09/26(水) 20:22:20 ID:???
吊った写真あっぷキボン
921nobodyさん:2007/09/26(水) 21:08:55 ID:???
吊った本人がうpしてたらそれ心霊げn(ry
922nobodyさん:2007/09/26(水) 22:24:39 ID:???
>>918
死ねw
923nobodyさん:2007/09/26(水) 23:48:30 ID:???
>>910
あるファイルやディレクトリのロケーションのパスが
絶対パスで送られてきたものをpwd(現在のディレクトリ)に対しての相対パスに変換するようなものなんですけど
なにかありませんか?
先述がわかりづらくてすみません
924nobodyさん:2007/09/27(木) 00:07:42 ID:IFCMbMTa
>>923
ドメインをとっちゃえば相対パス完成じゃね
925nobodyさん:2007/09/27(木) 00:13:57 ID:???
>>923
>>1って言われてるんだから>>1見ろよ
それと丸投げしないで自分でちょっと頑張ったとこまでソース乗せてみなよ
926nobodyさん:2007/09/27(木) 00:31:11 ID:???
>>925
やさしいなお前
927nobodyさん:2007/09/27(木) 00:57:37 ID:???
>>923
ちょっと考えればそこまで複雑じゃないアルゴリズムだとおもうが?
てかPHPでやらない方が簡単な領域な気がする。
928nobodyさん:2007/09/27(木) 01:00:18 ID:???
だから、アルゴリズムじゃなくて、アルゴニズムだろ。
929nobodyさん:2007/09/27(木) 01:01:14 ID:???
930nobodyさん:2007/09/27(木) 01:03:15 ID:???
algorithmをカタカナにしたら、アルゴリズムの方が近くないか?
逸れた話はどうでもいいが。
931nobodyさん:2007/09/27(木) 01:13:16 ID:???
>>930
近いとか近くないとか以前にアルゴニズムなんて言葉はねーよ。
なんだそれ、アルゴン(不働)理想主義者か?ニートになれと言ってるのか?
932nobodyさん:2007/09/27(木) 01:14:51 ID:???
>>923
それ、何のために必要なの?
用途が分かれば最善策が何か出せるかもしれないが。
でもその前に>>1をちゃんと読んで自分の間違いを正そうな。
933nobodyさん:2007/09/27(木) 01:15:47 ID:???
辞書引いて発音記号見ればニズムなんて発音はありえんね
アルゴニズムでググるとけっこう間違えてるやつ居るみたいだから釣りじゃなくてマジなんだろうけど
googleもヤフーもアルゴリズムじゃありませんか?って訊いてくるな
934nobodyさん:2007/09/27(木) 01:18:40 ID:???
英語の発音の問題だから、日本語としてその人にそう聞こえるならそう綴ればいい。
他者と意思の疎通が出来るかは別だが。
正しい綴りと発音は、algorithmのみ。
935nobodyさん:2007/09/27(木) 01:28:22 ID:???
>>927
相対から絶対にするよりは簡単だと思うけど、PHP以外ってシェルコマンド?
それよりはPHPの文字列置換使った方がまだ早そうだけど。
ルートから一致するとこまでを削除して、残った階層の分だけ「../」を付加すりゃいいんだろ?
936nobodyさん:2007/09/27(木) 01:35:30 ID:???
ていうか使用用途がものすごく謎だよなぁ
Webアプリを作るにはまず必要ない作業だと思うが・・・
なんかローカルでファイル操作でもするんかね
937nobodyさん:2007/09/27(木) 01:43:55 ID:???
>>936
それにしたって絶対パスのままでいいと思うがね。
用途があるとしたらDOCUMENT_ROOTからの相対パスに変換したい場合かな。

だけどうpろだにしたってそもそも保存ディレクトリのルートを相対パスで持っとけば
後はそれにサブディレクトリを足すだけだから、わざわざ絶対パスから
変換するこたないんだよな。
938nobodyさん:2007/09/27(木) 02:18:17 ID:???
翔泳社 情報処理教科書 アルゴニズム問題の解き方
http://www.yodobashi.com/enjoy/more/i/cat_36230034_36292594_36292693/9816863.html

淀橋亀羅馬鹿っす
939nobodyさん:2007/09/27(木) 02:30:16 ID:???
カフィをコーヒー、
ビアをビール、
カービュレイタをキャブレタ、
キリがないw
940nobodyさん:2007/09/27(木) 03:34:08 ID:???
>>939
ヨドバシカメラの中の人言い訳乙です。
941nobodyさん:2007/09/27(木) 06:19:23 ID:???
>>935
相対から絶対パスにはrealpath()で楽勝。

942nobodyさん:2007/09/27(木) 08:18:08 ID:???
>>939
リとニは完全に音が違うぞwww
言い訳になってねぇwwww
943887:2007/09/27(木) 08:51:49 ID:2ULegsZC
>>889
すみませんでした。
どのような判定基準でコーディングすればいいかということです。
HTMLタグで文を分割し、その中の句読点が多い文を本文として抽出しようとしてますが、
広告が多いサイトや個人ブログだと、本文以外の部分が抜き出されます。
他にどのような方法がありますか?
944nobodyさん:2007/09/27(木) 09:00:33 ID:???
>>943
ブログだったらわざわざHTMLタグ解析しないでRSS,Atom使ったほうがいいっしょ。
ニュースサイトなら著作権違反だから辞めたほうがいいっしょ。
945nobodyさん:2007/09/27(木) 09:17:46 ID:???
preg_matchかpreg_replace使ったらいんじゃない?
自分でテストしてみたソースのっける方が早いと思うよ
丸投げなら金払って作ってもらうかできなきゃやめたほうがいい
946nobodyさん:2007/09/27(木) 09:45:58 ID:???
>>945
論点ずれてるな。
各HTMLタグに囲まれた文章の「どれが本文か」を判定するロジックを
考案しれ、と言ってるんだよ>>887は。

つか、ちょっと前にも同じような質問をしてたやつがいたが、基本的に
それは商品なら実用新案とか取れるだろう画期的アイデアの類なので
そもそも他人に聞くのがおかしいんだよ。
947nobodyさん:2007/09/27(木) 10:17:50 ID:???
>>946
ちょwwww
<html>の中の<body>と</body>に囲まれいるところを正規表現で取れば終わりだろww

そんなもんが画期的アイデアって、どんだけお前の脳みそは空疎なんだよ。
ホント何も詰まってないじゃないの、脳みそ???
948nobodyさん:2007/09/27(木) 10:29:42 ID:???
>>947
>>947
>>947

まずHTMLから勉強しような
949nobodyさん:2007/09/27(木) 10:43:59 ID:???
>>943
>>944の言うとおりBlogやニュースサイトは配信用に通常RSS等が用意されてるので、
SimpleXML等の関数を使って本文の部分だけ抜き出して表示すればいい。
最新の数件しかおそらく取得できないが。
RSSの中には本文を途中できっててパーマリンクを貼ってるだけのものもあるので、
そういうのにはこの方法は向いていないけど。
(続きを読むでhtmlにリンクされてるものもあるがそれは仕方がないとして)

なんにせよ求めてるものには完璧な方法はないよ。
広告がいやなんでしょ?
ページごとにhtmlを読み込んで、広告のhtml部分を置き換える方法もあるけど、
やるにしても、全てのページが同じ構成でない限り全て対応するなんて不可能だし。
広告がGoogle AdsenseならJavaScriptをきったブラウザで見ればいいんじゃない?

ニュースサイトの著作権については簡易RSSリーダーとして個人利用なら問題ないと思う。
一般公開する時も、広告のはってあるサイトはまずいけど管理人に金銭が絡まないサイトなら平気なんじゃないかな?
普通は見出しだけ貼り付けて、2.3行引用して続きを読むでリンクするのが一般的だと思う。
ニュースサイトなんかで提携先の新聞社とかにリンクするときはその形だよね。
950nobodyさん:2007/09/27(木) 11:43:29 ID:???
>>947
お前、blogとかニュースサイトとか見たことないのか。
951nobodyさん:2007/09/27(木) 11:52:41 ID:aINn7Cdu
>>948
この場合、まず勉強しないといけないのは日本語だと思う
952nobodyさん:2007/09/27(木) 12:29:26 ID:???
つーか、ニュースサイトや個人の記事をいっしょくたに考えてるほうがおかしくね?
ニュースサイトだとある程度構成がきまってるからわりと可能性あるけど
個人ブログのどこにニュースがあるかなんて書き手次第なんだから
そんなの人間か人工頭脳でない限りプログラムでは判断できんでしょ。

ニュースサイトや個人ブログのURLもなければなんの情報もない状態
のもんだから<body>〜</body>をpreg_***で取得、というぐらいしかないんじゃないか?

HTML勉強とか日本語勉強とか見当はずれも(ry
953nobodyさん:2007/09/27(木) 12:55:21 ID:???
俺は887みたいなタイプの奴が一番嫌いだ
肝心要の情報と雑音を選り分ける手法が決まってないのに
コーディングはどうのと聞いてるんだぜ?
こういう輩が出来ることといったら、せいぜい他人のコードを
丸写しして「できました!」とか、さも自分が頑張って実現した
かのように振舞うことくらい(おまえは何もしてないだろうて)
あー、なんか先が見えてきちゃうよ
954nobodyさん:2007/09/27(木) 13:00:36 ID:???
スレタイ嫁
955nobodyさん:2007/09/27(木) 15:09:01 ID:???
>>952-953
だから>>877の質問は「万能な本文抽出のアルゴリズム教えれ」って質問なんだっつの。
ド素人でそれがどれほど難しい技術なのかも理解してないだけだろ。
それに対しての回答は一言「無理」で終わりでいいじゃん。
「BODYの中身全部表示しろ」とか手法を聞いてるやつに「手法も決まってないのに」とかアホかと。

ところで確か、ちょっと前に質問してきたやつも「句読点をカウント」とか書いてたけど同一人物かね?
956955:2007/09/27(木) 15:09:43 ID:???
ごめん。877じゃなく>>887な。
957nobodyさん:2007/09/27(木) 15:18:25 ID:???
>>953
禿同。

>>887>>889に注意されてから
改めてした質問が>>943だもんな・・・
せめてブログだったら、どこのブログの
htmlソース内のこのタグの部分が欲しいとか
そのためのphpのソースをここまで書いたとか言えよ。
そうすれば、ここにいる皆も具体的にアドバイス
できるのに、>>943みたいなアホな質問のせいで
実用新案とか人工知能とかすっとんきょうな
言葉が出てくる。

質問もろくにできないコミュニケーション能力のない
馬鹿は何をやっても無駄無駄。
もう、こんな香具師はスルーでいいよ
958nobodyさん:2007/09/27(木) 19:12:03 ID:???
PEAR:Authの質問なんですが、
「未認証状態で、認証が必要なディレクトリ内のA.htmlにアクセスした場合、一旦ログインページにリダイレクトし、認証完了後に再度目的のページA.htmlにリダイレクトさせたい。」

要するに、ログイン前にアクセスしたページに戻したい、ということなんですが、
「A.html」という情報をどういう風に持ち回すのが常套手段でしょうか?単純にクッキーなんかでやるんでしょうか。

そもそも、認証が必要なページそれぞれの頭で、new Auth()してgetAuth()で認証済みか確認する、という認識で正しいでしょうか?
959nobodyさん:2007/09/27(木) 23:15:40 ID:dB1cM3ii
全部が半角文字なのか調べる方法ってmb_strlenとstrlenで比較するだけで完璧なんでしょうか?
960nobodyさん:2007/09/27(木) 23:24:30 ID:???
この世に完璧な事なんて無いさ
961nobodyさん:2007/09/28(金) 00:44:19 ID:???
>>959
mb使ったときに文字コードの判定にミスったらアウトだよ
962nobodyさん:2007/09/28(金) 00:44:23 ID:???
array_rand で1000ぐらいの配列をランダムに取り出そうと思うのですが
これだと負荷は高いでしょうか?
1000ぐらいなら大したことはないかな?
963nobodyさん:2007/09/28(金) 00:47:34 ID:???
大したことないんじゃない?
964nobodyさん:2007/09/28(金) 01:26:39 ID:Ju5H8hfj
//php
$test = 1300 % 152.5;
結果 84
//JavaScript
test = 1300 % 152.5;
結果 80
この違いってどうにかなんないのでしょうか
965nobodyさん:2007/09/28(金) 01:35:51 ID:???
>>958
俺だったら面倒くさいからログインページにLocationするときにGETでページ名を渡しちゃうかなぁ…
あえて隠さなきゃいけないような情報でもない気がするし。

各ページでの認証確認はどこまでPHP::Authの機能を利用したいのか…
有効期限判定とかを利用したいなら各ページgetAuth()で判定すべきだと思うけど、
特に条件とか無いんならセッションにログイン中とか格納してそれ判定するのもアリかと。
966nobodyさん:2007/09/28(金) 01:55:40 ID:???
>>964
echo fmod(1300, 152.5);
結果 80
967nobodyさん:2007/09/28(金) 02:02:34 ID:???
>>966
うお!!!ありがとうございます!
これだと小数点以下の時もきちんと計算してくれる(ぐぐってみました)ようですね!
大変助かりました!
968nobodyさん:2007/09/28(金) 08:59:19 ID:C1fO/C39
mysql_query('INSERT〜')の返値は成否に関わらずnullなのでしょうか?
969nobodyさん:2007/09/28(金) 09:22:00 ID:???
>>968
mysql_queryのまぬある見てみ
はっきり詳しく書いてあったぞ

追記すると、MySQL関係のエラーが出てもPHPでは吐き出してくれないので
mysql_error()を使うことをおぬぬめする
970958:2007/09/28(金) 09:48:55 ID:???
>>965
ありがとうございます!
モヤモヤが晴れました!
971nobodyさん:2007/09/28(金) 11:13:39 ID:mmYDhnMN
POSTとGETを1スクリプトに混同させているのですが、
どちらのメソッドでリクエストがきたかを調べる方法ありませんか?
ただたんにif ($_POST)とやってみたのですがどうもそれだとできないようで。
アップローダみたいのを作っていて、POSTでアップロードしてGETで削除するんですけど、
POSTしたときに値のチェックやらをしているので、
GETで削除するときにPOSTで行う値のチェックがはいってしまって、
余計なエラーが出てしまうという現象に・・・
自分のロジックが悪いのはわかっているのですが自分の力じゃまだうまく作ることができないので、
とりあえずごまかしでPOSTかGETで受け取ったかのチェックを入れたいと思ってます。
972nobodyさん:2007/09/28(金) 11:23:25 ID:???
request method
973971:2007/09/28(金) 11:31:37 ID:???
>>972
どうもありがとうございます。
$_SERVERにあるのを見落としてました。
助かりました。
974ニュー速+より:2007/09/28(金) 17:21:01 ID:C4xfMcX2
今の自分達に出来る事
日本全国各地、色んな掲示板で《加害者達の悪事を晒し、協力要請しよう!》
被害者の無念を晴らせ!【神戸滝川高校3年いじめ自殺のまとめサイト】http://rere.client.jp/
975nobodyさん:2007/09/28(金) 22:52:42 ID:+eamzCjp
質問が2つあります。
1. jsonが標準で組み込まれるようになったとのことですが、json.phpはどこにinstallされてるのでしょうか?
(MacOSXの場合)
2. 最近アップデートをさぼってたら、素直にinstallできなくなりました。
(MacOSX10.4+php5.2.1が現在の環境)
どうやらGDあたりでインストールが止まる様子。
どなたか解決方法ご存知でしたらお願いいたします。
976nobodyさん:2007/09/29(土) 06:11:14 ID:???
>>975
1) > PHP 5.2.0 以降、JSON 拡張モジュールはデフォルトで PHP に組み込まれます。
というわけでデフォでは入っていない。

2) 5.2.1だったかな。MacOS Xではパッチを当てないとインストール出来ない時があった。
5.2.4は特に何もせずmake出来たし、使えているよ。
977nobodyさん:2007/09/29(土) 09:46:56 ID:???
du コマンドみたいに指定したディレクトリの容量を調べる関数ってありますか?
978nobodyさん:2007/09/29(土) 09:55:22 ID:???
>>977
disk_total_space()
979nobodyさん:2007/09/29(土) 09:57:50 ID:???
下らねぇ
980977:2007/09/29(土) 10:14:10 ID:???
>>978
ありがとうございました^^

>>979
ちょwスレタイどおりだからw
981nobodyさん:2007/09/29(土) 11:25:44 ID:???
>>977-980
自演乙であります!
982nobodyさん:2007/09/29(土) 11:59:26 ID:???
携帯用のHPを作って携帯から編集できるようにするには
どういうスクリプトが必要ですかね?

TOPページとかだけでもいいんですが
983nobodyさん:2007/09/29(土) 12:11:04 ID:???
ずっと疑問に思っていたんだがPHPの登録フォームから登録したらすぐに使える連鯖とかってあるじゃないですか?
あれってsystem()関数使ってコマンド送ってユーザの登録とかしているんですかね?
でもそしたらWebサーバはLinux系だとrootユーザで動かさなきゃいけないし、system()関数をONにしているっていうだけでセキュリティ的に不安な部分があるんですが・・・・。

エロい人、どうやってるか教えてくだしあ
984nobodyさん:2007/09/29(土) 12:24:00 ID:???
あ〜分かるけどエロくないや〜残念
985nobodyさん:2007/09/29(土) 12:29:59 ID:EESSDSHo
>>984
そんなこと言わずに教えてくだしあ偉い人
986nobodyさん:2007/09/29(土) 12:39:43 ID:???
>>983
やり方は千差万別
そういう方法も当然1つとしてあるだろう
自分がやるとしたらDBにいれるまでの作業しかPHPでは行わないが

>system()関数をONにしているっていうだけでセキュリティ的に不安な部分があるんですが・・・・。
これはちょっと誤解
987nobodyさん:2007/09/29(土) 13:42:33 ID:EESSDSHo
>>986
んー、色々あるんですか。

>自分がやるとしたらDBにいれるまでの作業しかPHPでは行わないが
これちょっと気になるので調べてみまつ

>>system()関数をONにしているっていうだけでセキュリティ的に不安な部分があるんですが・・・・。
>これはちょっと誤解
例えばアップロードしたPHPファイルが
<?php
system('cat /etc/passwd');
?>
とかだったらpasswdファイル内のユーザと暗号化されたパスワードが表示されちゃいますよね。
そしたら・・・・・(ガクブル

とりあえず色々な方法を探してみます。
ありがとうございました
988nobodyさん:2007/09/29(土) 15:09:47 ID:???
>>987
いやだから誤解。
必ずしもsystem()を許可しなくても同様のことは実現できるし、
登録システムでsystem()を使用してるからといって
ユーザも許可されてるとは限らない。
その辺はやりようはいくつもある。

もちろん、全然ダメなとこもあると思う。
試しに登録して自分で内情を確認してみれば?
989nobodyさん:2007/09/29(土) 15:14:34 ID:???
単純な方法としては、PHPではDBへの登録だけやって、
あとはcronで実行されるroot権限のバッチスクリプトに
ユーザ環境の作成処理をやらせる手があるね。
cronでの監視を1分おきとかにしとけばほぼ即時で処理できる。

リアルタイムにこだわるなら受付プログラムを常駐させておく手もある。
990nobodyさん:2007/09/29(土) 15:16:49 ID:???
perl -MCPAN -e shell
install File::Remove
とやると、

There's a new CPAN.pm version (v1.92) available!
[Current version is v1.59_54]
You might want to try
install Bundle::CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...

って出たまま止まってます(><)
どうすればいいですか?
991nobodyさん:2007/09/29(土) 15:17:50 ID:???
>>990
PerlはPHPじゃない
992nobodyさん:2007/09/29(土) 15:25:53 ID:???
>>983
レン鯖に限らずとも、blogサイトなどで登録するとサブドメでアカウントもらえるような処理にしたって
裏でDNSの更新やらcronでの処理やらで色々rootで動かすね
rootで動かすスクリプトとかsystem関数使ったりすると、Webプログラムの域を超えてるというか
なんかちょっと不安な気持ちになる時期が俺もありましたw
993990:2007/09/29(土) 15:28:58 ID:???
>>991
すみません誤爆しました(><)
994nobodyさん:2007/09/29(土) 16:48:35 ID:???
おらの場合登録受付はPHP、その後の処理をC#でやってるだよ。
995nobodyさん:2007/09/29(土) 17:08:06 ID:???
ログを読み込んでHTMLを再構成させるブログのようなもの作ってるんですが、
インターフェース部分のphpは100行程度、そこからglobで得た情報を元に
1500行ほどのphpにincludeして実行させていました。
最近までうごいてたのですが、実処理プログラムのコードが1500行を超えた
せいか、最後まで処理せず2回目の処理ですぐにとまってしまいます。
きちんと動いていたときは50回ぐらいの処理をこなしていました。
実処理phpは1回のみの処理でまわすときちんと動いてくれます。
なぜこんなことがあるのでしょうか?
996nobodyさん:2007/09/29(土) 17:23:00 ID:???
仕様が悪すぎる
設計やり直し
997nobodyさん:2007/09/29(土) 17:54:17 ID:???
995の頭の仕様もやりなおした方が良いと思われ
998nobodyさん:2007/09/29(土) 18:24:56 ID:At7oASnV
999次スレおながい
999nobodyさん:2007/09/29(土) 18:44:22 ID:???
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/

新スレ建てました。 それはどうぞ
1000nobodyさん:2007/09/29(土) 18:50:35 ID:???

    /     _ノ        _ノ \
  /     /iニ)ヽ     /rj:ヽ  ヽ
  |    〈 !:::::c!     {.::;、! 〉   | おつかれちゃん
  |    ''`''"ヽ___/ 'ー''    |
  ヽ ////   ヽ  /   /// /  /⌒l
   \       ヽ_/      ノ  ノ  ノ

10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。