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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2007/09/09(日) 12:42:57ID:64tYOx8R
まず読め→【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カテゴリ)の各スレで
0002nobodyさん2007/09/09(日) 12:43:46ID: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/
0003nobodyさん2007/09/09(日) 12:44:18ID: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/
0004nobodyさん2007/09/09(日) 12:45:05ID: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プログラムとして実行された結果になる。
0005nobodyさん2007/09/09(日) 12:45:41ID: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に保存?
 → 好きにしてください

0006nobodyさん2007/09/09(日) 13:04:30ID:???
 /:/:.:.:.:.:.:.:/:.:.:.:.:./:.:.:.:.:.:.:.:.:.:.:.:./:.: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    〉: : : :
0007nobodyさん2007/09/09(日) 13:06:17ID:???
23.PHPでデ(ry
 → CakePHPを使ってください。
0008nobodyさん2007/09/09(日) 15:10:52ID: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〜
というエラーが出たのですがこの場合何が原因なのでしょうか
0009nobodyさん2007/09/09(日) 15:12:52ID:???
>>7
デって何?デバッグ?
>>8
セーフモード制限
0010nobodyさん2007/09/09(日) 15:26:10ID:64tYOx8R
>>9
手動で作るしかないんですねorz
0011nobodyさん2007/09/09(日) 16:07:50ID:sHQ1gr/N
これからPHPのDLをWinXPでしたいのですが、
ttp://www.apache.jp/
ttp://www.php.net/

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

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

mb_internal_encoding ("EUC-JP");
$to = "xxxx@xxxx.com";
$subject = "認証メール";
$body = "本人認証ですhttp//";
$from = "From: test<from@test.com> \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です
0016nobodyさん2007/09/09(日) 17:25:38ID:???
$body = '本人認証ですhttp//';
0017nobodyさん2007/09/09(日) 17:39:56ID:???
>>16
レス有難う御座います
$body = '本人認証ですhttp//'; はいけるのですが、
$body = '本人認証ですhttp://';のように[:] コロンを入れると送信する事が出来ません
[""]でも['']でも同じ結果の様です
0018nobodyさん2007/09/09(日) 18:00:28ID: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のファイル内容にて変更してみました。何が足りない部分があるのでしょうか?
0019nobodyさん2007/09/09(日) 18:09:08ID:jOYDLkNB
質問です。
1時間毎に1度ある数字に+1して通し番号を発行したいのですが
何を参考にすればいいでしょうか?
0020nobodyさん2007/09/09(日) 18:17:46ID:???
>>19
サーバーのcronで+1するPHPを動作させる
0021nobodyさん2007/09/09(日) 18:23:45ID:???
今の日時を時間に直して一時間未満を切り捨てれば良い
0022nobodyさん2007/09/09(日) 18:24:59ID:jOYDLkNB
cron使わないといけないようなので面倒だし諦めます。
ありがとうございました。
0023nobodyさん2007/09/09(日) 18:27:19ID:???
>>18
phpinf();?
0024nobodyさん2007/09/09(日) 18:36:45ID:???
>>23
記述ミス申し訳ありませんでした。設定を一通り終えて、動作確認で
<?
phpinfo();
?>
というファイルをindex.phpとして作りhtdocsフォルダに置きlocalhostにアクセスしてみました。
しかしPHPに関するページの表示はされず、
<?
phpinfo();
?>
というファイル内容がそのまま表示されてしまいますが、色々と試しています・・・
0025nobodyさん2007/09/09(日) 18:40:18ID:???
アパチェ
0026nobodyさん2007/09/09(日) 18:48:09ID:???
>>24
アパチェのコンフィグでアドタイプしてサイキドウすればよろし
0027nobodyさん2007/09/09(日) 18:50:58ID:???
>>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" って書いてやればいいよ
0028nobodyさん2007/09/09(日) 19:28:15ID:???
>>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できるようになりました!
設定ミス、長文大変見ずらかったと思いますが付き合って頂いて大変助かりました
皆さん親切に何度も有難うございました!
0029nobodyさん2007/09/09(日) 20:19:51ID:???
よかったのうよかったのう
0030nobodyさん2007/09/09(日) 20:53:02ID:+iLUvfjN
ヒアドキュメントから定数を参照する方法ってある?

define("MAN", 'CO');

print <<<TEXT
{MAN}
TEXT;

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

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

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

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

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

$res .= $val

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

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


フィードは、はてなRSSの人気のフィード全てを使っています。
0038nobodyさん2007/09/10(月) 00:48:11ID:???
無駄に改行しないことから
0039nobodyさん2007/09/10(月) 00:57:22ID:???
sage
0040nobodyさん2007/09/10(月) 04:56:57ID: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の部分はなかった。
だめなのかな?
追加できないの?

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

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

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

echo $_SERVER['REMOTE_ADDR'] . "<br>\n" . gethostbyaddr($_SERVER['REMOTE_ADDR'];
0055nobodyさん2007/09/10(月) 17:26:27ID:???
>>44
あなた誰ですか?
解決してません
引き続き回答をお待ちしております
0056nobodyさん2007/09/10(月) 18:17:34ID:???
Apache関連は自鯖板とかで聞いて来い
IDも出さない馬鹿には誰もまともに答えないよ
0057nobodyさん2007/09/10(月) 18:49:12ID:???
>>55
ID出さないとすぐ騙りが出て自己解決するのがこのスレ
0058nobodyさん2007/09/10(月) 21:10:18ID:nbKfi6vV
皆さんご回答ありがとうございます。
>>53さんの方法でもPHPの変数が渡せるんですね。文字列としてやった事はあるんですけどね。
拡張子をphpにして、param と embedを修正したら表示できました。同じようにURLを入れて見たら文字列としてURLが表示しました。
他の方法も是非ご教授お願いしたいです。
>>54さん勉強不足ですみません。何故だか何度やっても表示しないんですよねー。
0059nobodyさん2007/09/11(火) 01:40:40ID: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でも同じような書き方を可能にする方法ありますか?
./や../などを使いたくないのです
0060nobodyさん2007/09/11(火) 01:59:53ID:???
相対パスが嫌なら絶対パスでも使えば?
0061nobodyさん2007/09/11(火) 02:02:18ID:j/8aPw/k
それはそうなんですけどそのhttp://www.example.com/部分を毎回手打ちで書くのが面倒くさいので
何かいい方法があればと思って聞いてみたんですが
0062422007/09/11(火) 03:04:39ID:zytLbqiK
ぐたぐたうるさいバカはほっといて・・・

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

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

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

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

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

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

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

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

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

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

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

どうもお付き合いいただきありがとうございました。
0119nobodyさん2007/09/11(火) 21:18:19ID:???
>>作りながらDBの勉強
志望フラグ乙
0120nobodyさん2007/09/11(火) 21:19:41ID:???
PHPはPHPで
DBはDBで
各ある程度理解したらPHP+DBがいいかも
0121372007/09/11(火) 21:29:32ID: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
このページです。

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

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

ということです。

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

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

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

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

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

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

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

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

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

俺もこれで良いと思ったんだが、何気に出来ないんだな。
0170nobodyさん2007/09/12(水) 20:07:55ID:hkjgamim
>>161で 「クラス定義の中でfunc.phpを読み込めばいいと思います。」 と申したあとに、
そんなことはできないかもしれないと思って試したら、 案の定できませんでした。
おそらくクラス定義の中ではメンバ宣言とメソッド宣言以外は不正なのでありましょう。
大変失礼しました。
0171nobodyさん2007/09/12(水) 21:20:44ID:???
じゃコンストラクタ使えばいいじゃん
0172nobodyさん2007/09/12(水) 22:01:50ID:???
クラスの使い方がおかしいだろ・・・
0173nobodyさん2007/09/12(水) 22:16:11ID:5Xj/wG4U
PHPを実行した後構文等が間違っていたら何行目が間違ってますみたいな表示を
させる事は出来るのでしょうか?
インターネットオプションの詳細設定からスクリプトエラーごとに通知にチェックを
入れたのですが何をしてもページが表示できません。で止まってしまうのですが
0174nobodyさん2007/09/12(水) 22:23:22ID:???
トン吉チン平カン太!
0175nobodyさん2007/09/12(水) 22:24:57ID:???
>>164
$bool ? false : true;
があるじゃーのん?
0176nobodyさん2007/09/12(水) 23:14:21ID:TcT1t6MR
PHP4で使えるORMなあれってどれがいいの?
ActiveRecord?とか言うヤツ?
PHP5への移行を視野に含めた上でお勧め教えてけろ
0177nobodyさん2007/09/12(水) 23:37:46ID:???
<?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>

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

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

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

どなたか教えてください。お願いいたします。
0194nobodyさん2007/09/13(木) 12:02:28ID:???
>>192
だすわすれたらだせばいい
0195nobodyさん2007/09/13(木) 12:27:52ID:???
>>191
if (($a * $b * $c * $d * $e * $f) / 6 == $a)
0196nobodyさん2007/09/13(木) 12:29:21ID:???
なんで整数って決まってんだよw
0197nobodyさん2007/09/13(木) 12:40:27ID:???
>>191
ageってww
そこまでしてID出したくないのかww
0198nobodyさん2007/09/13(木) 12:53:59ID:???
>>191
効率ってコードサイズ?実行速度?
0199nobodyさん2007/09/13(木) 13:06:58ID:???
>>195
平均出すなら * じゃなくて + だろ
平均出してもしょうがないけど
0200nobodyさん2007/09/13(木) 13:15:30ID:???
>>199
相乗平均も知らない低脳ハッケーン
0201nobodyさん2007/09/13(木) 13:28:50ID:???
>>201
相乗平均知らない低脳ハッケーン
0202nobodyさん2007/09/13(木) 13:29:29ID:???
6で割ってるのが見えないの?
0203nobodyさん2007/09/13(木) 13:31:02ID:???
>>200
6が見えてない馬鹿ハッケーン
0204nobodyさん2007/09/13(木) 13:33:55ID:???
+して/って1の方が早くない?
0205nobodyさん2007/09/13(木) 13:34:49ID:???
>>191
if ($a == $b && $a == $c && $a == $d && $a == $e && $a == $f) {
echo "同じ";
}
0206nobodyさん2007/09/13(木) 13:45:16ID:???
201 :nobodyさん:2007/09/13(木) 13:28:50 ID:???
>>201
相乗平均知らない低脳ハッケーン
0207nobodyさん2007/09/13(木) 13:50:32ID:???
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
0208nobodyさん2007/09/13(木) 13:53:09ID:???
×と+の間違いだとしても、

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

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

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

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

当然レートは高いのです。
年収1000万なんて軽いですよ。
0211nobodyさん2007/09/13(木) 15:51:15ID:???
うん。技術力とは関係ないけどね。
0212nobodyさん2007/09/13(木) 16:42:03ID:e5IQPewW
PHP5のPDOで、HTTP_Session的に、
sessionをデータベースに格納してくれるライブラリってありませんか?
0213nobodyさん2007/09/13(木) 16:44:06ID:???
>>212
いまいち意味がわからないけどシリアライズでもしたら?
0214nobodyさん2007/09/13(木) 18:38:27ID:???
>>209
マニュアル
0215nobodyさん2007/09/13(木) 19:14:09ID:p1bkeaSR
携帯用掲示板を作っているのですが、
セッションを使わずに
入力→確認→投稿
のようなものを作りたいのですが
何か良い方法はないでしょうか?
hiddenも考えたのですが、ページの容量(入力したテキスト)が2倍になってしまいます。
0216nobodyさん2007/09/13(木) 19:34:09ID:???
3画面構成のファイルを作りたいのですが、1ファイルのみで3画面を構成する事は出来ますか?
習った事を考えると3ファイル作らないと行けないのですが、出来ますか?
0217nobodyさん2007/09/13(木) 19:37:40ID:???
>>215
自分でトークン発行すれば〜
>>216
出来るよ
02182162007/09/13(木) 19:38:43ID:???
>>217
有難うございました。
0219nobodyさん2007/09/13(木) 19:45:40ID:p1bkeaSR
>>217
トークンとは何でしょうか?
02202162007/09/13(木) 19:47:53ID:HG9TD0jf
>>217
どのようにしたらいいでしょうか?POSTで別ファイルにデータを送り取得する方法以外で
ヒントでも教えて頂けると嬉しいのですが。
02212162007/09/13(木) 20:09:07ID:HG9TD0jf
PHP内で条件分岐をさせれば良かったのですね。すいませんでした
0222nobodyさん2007/09/13(木) 20:38:16ID:???
>>219
徹君の愛称
0223nobodyさん2007/09/13(木) 20:57:25ID:???
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で脱出するという書き方は邪道でしょうか?
0224nobodyさん2007/09/13(木) 20:59:11ID:???
ネストしない書き方にしろよ
0225nobodyさん2007/09/13(木) 21:24:00ID:???
>>223
それ以前の書き方に問題がある気がしてならない
0226nobodyさん2007/09/13(木) 21:33:08ID:???
正統も邪道もあるかい。自分がいいならそれでいい
0227nobodyさん2007/09/13(木) 21:41:18ID:???
基本的には好きなように書けばいいが、物には限度ってものがある
02282232007/09/13(木) 21:43:20ID:???
$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
  }
 }
}
こんなケースはどうでしょう?
どうやってネストを回避しますか?
0229nobodyさん2007/09/13(木) 21:55:01ID:???
あくまで一例としてエラー情報を持たせてエラー画面に飛ぶ
即座に中断
ぐらいは誰でも瞬時に思いつく
0230nobodyさん2007/09/13(木) 21:58:54ID:???
>>223
俺はこうする
if (・・・) {
 $error+=1;
} elseif (・・・) {
 $error+=2;
} elseif (・・・) {
 $error+=4;
} else {
 //エラーが無いなら処理
}
0231nobodyさん2007/09/13(木) 22:08:30ID:???
(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()関数で分割する考え方になりますが…
0232nobodyさん2007/09/13(木) 22:15:31ID:???
switch case
02332312007/09/13(木) 22:17:17ID:???
>>232
それで解決しました
ありがとうございます
0234nobodyさん2007/09/13(木) 22:33:59ID:???
>>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;
}

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

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

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

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


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

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

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

まずボトルネックになってるのはどこかちゃんと分析してやりなよ。
少ない資源でチューンしようって言うならそんな漠然とした話じゃ無理。
0260nobodyさん2007/09/14(金) 09:27:38ID:???
test
0261nobodyさん2007/09/14(金) 09:31:26ID:???
>>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
きくなに
き"
0262nobodyさん2007/09/14(金) 09:32:18ID:ri4+Axdv
mb_strlenって文字の長さを取得する関数ですよね?
<?

$text = "あいうえお";

echo mb_strlen($text);

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

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

こういう事では?
0279nobodyさん2007/09/14(金) 18:29:39ID:???
>>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行目に戻る
0280nobodyさん2007/09/14(金) 18:46:54ID:sODpU595
まず mb_convert_encoding($str, "utf-8"); のように、
utf-8やsjis-winに変換すると '?' になります。

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

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

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

$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] => ほげほげ
)
となってしまいました。
どなたか、全て返す方法をご存知ではないでしょうか?
0307nobodyさん2007/09/15(土) 17:16:34ID:???
>>306
$test = GetwordIntag("<title>ほげほげ</title><b>あああ</b><title>いいい</title>");

$test = Hoge("<title>ほげほげ</title><b>あああ</b><title>いいい</title>");
です。すみません。
0308nobodyさん2007/09/15(土) 17:23:16ID:???
>>306
ループさせてください
0309nobodyさん2007/09/15(土) 17:27:58ID:???
>>306
preg_match_all はどうですか?
http://jp2.php.net/manual/ja/function.preg-match-all.php
0310nobodyさん2007/09/15(土) 17:29:10ID:???
>>308
>>309
ありがとうございます。
preg_match_allにすることで解決しました。
0311nobodyさん2007/09/15(土) 19:14:03ID:???
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する感じになり複雑です。

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

というのを、phpで

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

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

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

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

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

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

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

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

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

<a href="http://nantoka.com";>なんとか</a>
のように出力することは可能でしょうか?
また、その方法があればご教授ください。。。
0321nobodyさん2007/09/15(土) 21:00:43ID:???
>>320
preg_replace
0322nobodyさん2007/09/15(土) 21:06:45ID:jy5G5jnH
phpの某コミュニティーでcookieのことを焼き菓子と読んでいたので、
それがずっと普通だと思っていて、金曜日の会社の設計会議で焼き菓子と何回か
発言したら、参加していた人から総スカンを食らった上に、
先輩に呼び出して、大目玉を食らいました。
ここの人は、cookieのことを焼き菓子って言ったりしますか?
0323nobodyさん2007/09/15(土) 21:15:44ID:???
いわねえよwwwwww
ひさしぶりに吹いた
0324nobodyさん2007/09/15(土) 21:17:09ID:???
>>321
$pattern = '/\[(.*):title=(.*)\]/';
$replace = '<a href="\1">\2</a>';
$str = '[http://hogehoge.com:title=ほげほげ]';
print preg_replace($pattern, $replace, $str);
でできました!
ありがとうございます!
0325nobodyさん2007/09/15(土) 21:18:23ID:???
2ちゃん語をリアルで使うアフォと同じ。
0326nobodyさん2007/09/15(土) 21:21:10ID:???
>>322
初耳だな
クッキーといっても食べれませんよ
程度なら耳にするが。そんな変なコミュあるのか?
0327nobodyさん2007/09/15(土) 21:24:08ID:???
食べ残しに注意
0328nobodyさん2007/09/15(土) 22:17:50ID:???
むぉたぶぇらるぇないよぉ・・もぐもぐ
0329nobodyさん2007/09/15(土) 22:50:03ID:???
>>326
ビジネスの場で「ら」抜き表現は馬鹿っぽいからやめたほうが良いよ。
食べられませんって言ったほうがいい。
細かいけど。
0330nobodyさん2007/09/15(土) 22:52:32ID:???
オマエはATOKか
0331nobodyさん2007/09/15(土) 23:12:15ID:???
どっちかというと、Cookie発行をクッキーを焼く、取得を食べると表現するのを見かける。
0332nobodyさん2007/09/15(土) 23:17:20ID: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");
?>
0333nobodyさん2007/09/15(土) 23:18:18ID:NcWcmSvF
2ch型掲示板をPHPで作っているのですが
「ttp://pc11.2ch.net/test/read.cgi/php/1189309377/」
のように拡張子を消してもPHPを実行させたいのですが、仕組みが分からず困っています・・・
ヒントだけでも構わないのでお願いします。
0334nobodyさん2007/09/15(土) 23:18:41ID: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>
0335nobodyさん2007/09/15(土) 23:24:53ID:???
>>333
$_SERVER
>>334
Session
0336nobodyさん2007/09/15(土) 23:38:19ID:Xmsi68ZJ
>>335
レスどうもです。
Sessionを使う事も試してみたのですが、プルダウンメニューの場合どう記述すればよいか分かりませんでした。

例えばtextareaだと

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

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

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

・ある要素のところにselectedを付ければいい
0341nobodyさん2007/09/16(日) 00:01:28ID:???
「戻る」で入力項目を保持したい場合、通常は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とか使わずにやってみた方がいいとおもう。
フレームワークやテンプレートエンジンは作業の効率化のためのものなので、
基本がなっていないと混乱すると思う。
0342nobodyさん2007/09/16(日) 00:06:42ID:84mMghay
>>333
「ttp://pc11.2ch.net/test/read.cgi/php/1189309377/」 は拡張子が消えていませんよ。
「.cgi」 という拡張子が現れています。
0343nobodyさん2007/09/16(日) 00:07:13ID:???
>>341
>セッションは複数ブラウザ立ち上げたりするとアレなんで、フォームの
すいません、アレってどういうこと?
0344nobodyさん2007/09/16(日) 00:16:53ID:ZprS1LjJ
>>339>>340
ご指摘ありがとうございます。
>>332のソースでは省いてますが、一応$_SESSIONに保存しているつもりです。
ただ、>>339>>340でご指摘されているとおり、$_SESSIONの情報を元にselectedをつけないといけないだろうなと言うのは想像が付くのですが、
記述の仕方が分かりませんでした。

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

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

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

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

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

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

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

Do You PHP はてな - いつの間にかExceptionの種類が増えてた
ttp://d.hatena.ne.jp/shimooka/20070820/1187594874
0349nobodyさん2007/09/16(日) 02:31:59ID:???
http://www.php.net/~helly/php/ext/spl/classException.html
あるじゃん
0350nobodyさん2007/09/16(日) 02:44:55ID:???
>>349
さんくす

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

-html
あああああ
-html_end

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

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

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

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

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

サーバに送信

成功したらおk、失敗したら×
0382nobodyさん2007/09/17(月) 07:16:14ID:ySslSBrA
>>376
何言っちゃているの?お前?
オブジェクトのコピーが伴う値渡しが常に遅いに決まってるだろ。
0383nobodyさん2007/09/17(月) 11:06:30ID:???
PHPの場合、単純にそうとも言い切れない
Cのような単純なポインタとは別もんだからな
0384nobodyさん2007/09/17(月) 11:10:11ID:???
PHPは実際に値が変更されるまでは
データがコピーされないしな。
0385nobodyさん2007/09/17(月) 11:32:11ID:???
>>382
もうすこし具体的に説明しないとあなたの負けです
0386nobodyさん2007/09/17(月) 11:39:26ID:???
実際にベンチマーク出せばわかることだろ
どちら側もベンチマークすら出してないでどっちの負けとか言う馬鹿がいるんだな
0387nobodyさん2007/09/17(月) 12:32:21ID:???
ばーかばーか
0388nobodyさん2007/09/17(月) 12:47:59ID:iCPVuNeR
$_SERVER['REMOTE_ADDR']はhtmlspecialcharsをしておくべきでしょうか?
ipはクライアント側で自由に文字列を書き換えられませんよね。
0389nobodyさん2007/09/17(月) 12:49:29ID:???
しておくべき
0390nobodyさん2007/09/17(月) 12:53:10ID:iCPVuNeR
わかりました。date()もやったほうがいいんでしょうか?
0391nobodyさん2007/09/17(月) 12:59:10ID:???
はぁぁぁぁぁぁぁぁぁぁぁぁ?????
0392nobodyさん2007/09/17(月) 13:06:11ID:???
もう全部やっとけよw
0393nobodyさん2007/09/17(月) 13:23:40ID:W3Fsfqr5
>>388
http://takagi-hiromitsu.jp/diary/20051227.html#p02
0394nobodyさん2007/09/17(月) 13:27:31ID:???
>>374
ttp://blog.libssh2.org/index.php?/archives/51-Youre-being-lied-to..html
0395nobodyさん2007/09/17(月) 13:41:38ID:RU4hBw1O
PHP とJavaScriptのちがいはなに?
0396nobodyさん2007/09/17(月) 13:44:23ID:???
(・(ェ)・)
0397nobodyさん2007/09/17(月) 14:02:04ID:???
>>395
1.文法や書式が違う。でも基本がC言語からの発展なので似てるとこは多い。
2.PHPはサーバー側で動作する。JavaScriptはブラウザ側で動作する。
0398nobodyさん2007/09/17(月) 14:06:17ID:???
>>395
PHP 3文字
JavaScript 10文字
0399nobodyさん2007/09/17(月) 14:10:20ID:???
>>395
PHP技術者の平均時給 2,700円(PG)
JavaScript技術者の平均時給 1,100円(PG/DN)
0400nobodyさん2007/09/17(月) 14:19:56ID:???
javascript技術者なんているのか・・・
0401nobodyさん2007/09/17(月) 14:56:44ID:ySslSBrA
>>400
いるだろ普通に、っていうか、それは思っていても言ってはいけないことだろ。

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

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

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

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

後は、>>341のアドバイスに従い、テンプレート無しで試してみました。
また>>339>>340のアドバイスを元に、$_SESSIONの情報を元にselected属性を付けてみたつもりです。
上記の状態で、Javascriptで戻った場合は大丈夫なのですが、普通にハイパーリンクで戻ると
設定項目は保持してません。
下記にソースを添付しますので、普通にハイパーリンクでも設定項目が保持できる方法をアドバイスいただけると助かります。
0406nobodyさん2007/09/17(月) 15:25:22ID: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>
0407nobodyさん2007/09/17(月) 15:46:12ID:???
<?php session_start(); ?>
0408nobodyさん2007/09/17(月) 15:59:15ID:kIYZsn2K
>>407
アドバイスどうもありがとうございます。
最初は使用していたのですが、途中から下記のwarningが出てしまったので取り外しました。

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

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

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

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

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

後は本番に移植して動けば良いのですが、本番はソースが複雑だったので怪しい所ではありますが。
0419nobodyさん2007/09/17(月) 21:46:41ID: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関数使ってるからどうでもいい
0420nobodyさん2007/09/17(月) 22:01:51ID:???
CakePHPのO/Rマッパーでオブジェクトとして扱って
SQLなんてものはどうしても必要なとき以外書かないので
どうでもいい。
0421nobodyさん2007/09/17(月) 22:47:06ID:???
Zend Framework使ってる人っていないのかね?
0422nobodyさん2007/09/17(月) 23:09:07ID:???
たびたび仕様変更→bugが紛れ込む→年月経てるわりに枯れてない感じ
なんでフレームワーク、拡張ライブラリともに利用する気になれない

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

また、意識的にどちらで動くか設定する方法があれば教えてください。
0425nobodyさん2007/09/18(火) 05:07:56ID:???
>>424
つphp_sapi_name()
ttp://www.php.net/manual/ja/function.php-sapi-name.php
0426nobodyさん2007/09/18(火) 07:49:43ID:???
>>424
phpinfo
0427nobodyさん2007/09/18(火) 09:41:18ID:???
>>403
さわれるよ
0428nobodyさん2007/09/18(火) 12:52:45ID:???
>>419
PDO知らないのでPEAR使いまくり
0429nobodyさん2007/09/18(火) 14:04:24ID:FMVGiEK2
DB関係の話大丈夫かな・・・?

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

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

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

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

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

$textfile = "test.txt";

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

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

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

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

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

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

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

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

お好きなものを
0470nobodyさん2007/09/18(火) 23:14:31ID:YODMOTH4
>>466
どもです。
それもやってみたのですが、ソースを見ると同じ内容が2回も書かれてるのをみて唖然として
それで今スイッチを探してるのです。
ネットで探してもそれらしき情報ないようでPHPの使う人はJAVAスクリプトは使わないんですかね。
0471nobodyさん2007/09/18(火) 23:15:17ID:???
<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使えばよろし。
0472nobodyさん2007/09/18(火) 23:19:59ID:???
ああよく考えたら466はなってなかったな。すまん。
0473nobodyさん2007/09/18(火) 23:23:41ID:???
>>470
JSが有効か無効かはサーバからは判断できないから
探してもそれらしき情報なんて出る訳が無い。

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

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

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

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

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

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

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

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

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

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

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

include_pathに設定なんかを行う感じでしょうか?
特別なことをせずにインクルードできるなら是非教えて頂きたいです。
よろしくお願いします!
0498nobodyさん2007/09/19(水) 04:58:30ID:???
>>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;
}
とするけどね。
0499nobodyさん2007/09/19(水) 05:20:58ID:Y/2cENkk
>>486の頭がおかしいと思う
0500nobodyさん2007/09/19(水) 08:15:46ID:???
>>486
>>498 のように参照元が未定義でも黙って勝手に定義しちゃうな。
仕様と言われたらしょうがないが、嬉しくない動作だ。

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

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

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


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


でも例えば、

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

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

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

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

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

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

ある機能があるんだけど、
hogehoge機能という言葉を使う代わりに、
hogehogeエンジン、hogehogeシステム、hogehogeプログラム、hogehogeロジック
って書こうと思いますが、どれが一般人に分かりやすいですか?
0507nobodyさん2007/09/19(水) 12:49:10ID:???
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()のところでこんなエラーが出てスクリプトが止まってしまいます。
なにが原因でしょうか?
0508nobodyさん2007/09/19(水) 12:54:48ID:???
次どうぞー
0509nobodyさん2007/09/19(水) 12:54:48ID:???
>>506
一般ユーザって社内?コンシューマ?
社内ならシステムでいいんじゃね。

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

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

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

マニュアルといっても、電子マニュアルでして、
サイトに載せる予定です。hogehoge機能のhogehogeの部分が横文字なので、
機能じゃなくて別の言葉はないか、とクライアントに言われて困っています。
05115072007/09/19(水) 13:07:07ID: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()はこれより前にやらないといけないということですね。
後で確認してみます。
0512nobodyさん2007/09/19(水) 14:36:21ID:ywTkCFki
掲示板で
入力→確認→書き込み
の流れをファイル分担させずに、綺麗なソースで書きたいんだがお勧め方法ある?
0513nobodyさん2007/09/19(水) 14:39:15ID:???
>>512
丸投げするなよ
綺麗なソースかどうかなんて見てみないとわかるわけないだろ
ていうかファイル分けないとか謎制限いらんだろ
フレームワークでも使って作れ
0514nobodyさん2007/09/19(水) 14:40:04ID:???
>>512
掲示板最初から作るんだったら、どこかのサイトの掲示板を使った方が
いいんじゃない、その方が安全で手間がかからないし。
たとえば、
http://www.bigcosmic.com/
とか
0515nobodyさん2007/09/19(水) 14:41:09ID:???
>>514
すげーーー、ここ月額でたった80円かよ。
しかも、めちゃめちゃ高機能。
おれも、ここに変えようかなぁ。
0516nobodyさん2007/09/19(水) 14:42:13ID: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」を何かの変数に格納して
あとで実行できないかなと・・・
0517nobodyさん2007/09/19(水) 14:42:49ID:???
>>514
うわぁ、すごい安い!!!
それに、すごいかわいい。こんなに初めてかも。
おれ、ここの掲示板使ってみる。いい情報ありがとぉーーー
0518nobodyさん2007/09/19(水) 14:43:41ID:???
>>514-515
何この自演宣伝
もう少し時間空けてから書き込めよ
0519nobodyさん2007/09/19(水) 14:44:36ID:???
2chでの宣伝行為はひろゆきに金とられるぜ?
0520nobodyさん2007/09/19(水) 14:44:42ID:???
>>517
早速おれも見てみた。
すごいね。これ。
しかも、すごい運用実績があるし、信頼できそうだね。
今使っている掲示板ダメダメなので、早速これ使ってみるよ。
0521nobodyさん2007/09/19(水) 14:46:55ID:???
>>516
MVCをしたいってこと?
なんかフレームワーク使ってる?
それとも、デザイン込みで1ファイルにしたいの?

質問ばかりでごめんね。
やりたいことがはっきり見えなくて。
0522nobodyさん2007/09/19(水) 14:50:09ID: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>
0523nobodyさん2007/09/19(水) 14:50:41ID:VHjt1ihL
>>516
require_once("hoge{$resgit}.php");
かな
0524nobodyさん2007/09/19(水) 14:53:58ID:ywTkCFki
>>523
どもです。
ですが、require_onceを使うためには実行するPHPを別ファイルで保存しなくてはいけないので、
それをしないで、実行する文を変数か何かに格納して条件別にそれを実行したいのです。

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

eval($text);

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

>>529
ペクルって呼んでたorz
0532nobodyさん2007/09/19(水) 15:14:01ID:???
俺はレガートにピークルってよんでたぜ
0533nobodyさん2007/09/19(水) 15:44:14ID: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;

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

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

function Test(){
  global $GLOBALS;

というわけだよ

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

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

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

function Test()
{
echo $GLOBALS['hogehoge'];
echo $GLOBALS['test'];
echo $GLOBALS['2ch'];
}
0543nobodyさん2007/09/19(水) 16:56:33ID:???
>>542
オブジェクトもそれで渡せたっけ?
0544nobodyさん2007/09/19(水) 16:57:52ID:???
>>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;
?>
0545nobodyさん2007/09/19(水) 16:58:26ID:???
用途がわからんから何ともいえんがこれでいいだろ・・・

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;
}
}
0546nobodyさん2007/09/19(水) 17:02:10ID:???
仕事中のおまいらに質問

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

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

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

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

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

理由3 昔の自分が書いたソースは意味不明w
  理由1とほぼ同じ。
0570nobodyさん2007/09/19(水) 17:41:42ID:???
'' について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万回ループで差がない=変わらない。
0571nobodyさん2007/09/19(水) 17:42:15ID:???
文字列定数でやってみておくれ
0572nobodyさん2007/09/19(水) 17:50:51ID:???
$hogehoge[ほげほげほげお] = "ほげほげほげお";
for($i=0;$i<300000;$i++){
print $hogehoge[ほげほげほげお];
}

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

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

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

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

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

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

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

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



-----------
05845832007/09/19(水) 18:27:08ID:???
ID出していないので自己解決しました
0585nobodyさん2007/09/19(水) 18:32:14ID:???
ID以前にPHP関係ねぇ
0586nobodyさん2007/09/19(水) 18:59:30ID:???
$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

相当遅い。
0587nobodyさん2007/09/19(水) 19:04:33ID:???
↑間違えた$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

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

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

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

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

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

続きます。
06046032007/09/19(水) 21:33:38ID:+/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行目は文字数とバイト数が一緒なら半角のみと判断して送信しないようにしています。
このようなスクリプトを作成し、フォームからメールを送信しました。
すると、「ああ」とか「あああ」で送信できないのに「いい」とか「あいあ」だと送信できます。

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

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

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

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

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

動かないんですが・・・
06166032007/09/20(木) 01:01:49ID:ROB03O5/
>>613
フォームのあるhtmlはShift-JISで宣言してあるのですがそれでもダメでしょうか?
0617nobodyさん2007/09/20(木) 01:04:29ID:???
>>615
正規表現を ./ で括るのはpreg系だけだよ
0618nobodyさん2007/09/20(木) 01:08:45ID:???
>>617
ご指摘ありがとうございます
でもeregi_replace("(\n)+$"も動きません
0619nobodyさん2007/09/20(木) 01:17:43ID:???
とりあえずID出そうな。
0620山田真一2007/09/20(木) 10:38:42ID: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");

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

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


>622

新人だけど一人でやってます・・・
0625nobodyさん2007/09/20(木) 10:52:08ID:???
会社でyomi-searchを使ってるのはなぜ?
0626nobodyさん2007/09/20(木) 11:40:37ID:???
>>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/
0627nobodyさん2007/09/20(木) 11:55:42ID:IWhkcLGD
>>620
そんな会社普通はすぐやめる。
webの会社でhpが表示されないとかありえない。
車売ってるくせにエンジン直せないのと同じこと。
0628nobodyさん2007/09/20(木) 12:14:13ID:???
いや、Webの会社とは一言も言ってないけどな。
新人1人しかいない時点でそりゃWebの会社じゃないだろ。
0629nobodyさん2007/09/20(木) 12:40:38ID:IWhkcLGD
最近WEBの仕事を始めた者が働いてる会社が八百屋なわけがない。
0630nobodyさん2007/09/20(木) 12:44:16ID:???
節操の無い奴を相手にしちゃ駄目

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

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

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

くだらない質問でもど偉そうに聞いていいスレ
0642nobodyさん2007/09/20(木) 19:09:31ID:???
>>637
SJISの仕様でどんな問題があるの?
0643nobodyさん2007/09/20(木) 19:18:15ID:???
ヤフーでググれカス
0644nobodyさん2007/09/20(木) 19:25:21ID:???
答えられないやつはだまっとれ
0645nobodyさん2007/09/20(木) 20:57:35ID:bTS/b7yb
PHPとMySQLを使ってツリー構造をHTMLで表示させたいんですけど
一応、DBにカテゴリ名、ID、親IDとして保存させてるんですけど
表示させるときにどのようにしたらいいのかわからないのですが
どのようにしたらできますか?
0646nobodyさん2007/09/20(木) 21:00:30ID:???
一応じゃないスキーマを考える
06476452007/09/20(木) 21:05:10ID:bTS/b7yb
一応、親ノード取得してその親にポインタしてる子ノードを
探して・・ってやってるんですがすべてのノード表示させるようにできないんです
いくらノードを追加してもすべてのノードを表示させる方法ってないですか?
0648nobodyさん2007/09/20(木) 21:05:56ID:???
一応じゃないアルゴリズムを設計する
06496452007/09/20(木) 21:08:07ID:bTS/b7yb
どのようにして設計したらいいのですか?
一応、5日ぐらい考えたのですが僕の脳みそじゃ解決しません
0650nobodyさん2007/09/20(木) 21:11:12ID:???
わかんねーやつはレスすんな
0651nobodyさん2007/09/20(木) 21:13:45ID:???
どんだけ〜
0652nobodyさん2007/09/20(木) 21:32:07ID:???
全部じゃなきゃどこまで表示出来てんだよ
原因の切り分けをする努力を放棄してたら先に進むわけなし
0653nobodyさん2007/09/20(木) 21:38:09ID:???
どんだけ〜
06546452007/09/20(木) 21:47:26ID: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階層までしか取得できないんです
0655nobodyさん2007/09/20(木) 21:48:57ID:???
もう一個付け加えれば3階層までできるじゃん!
06566452007/09/20(木) 21:53:25ID:bTS/b7yb
>>655
それがもっと多い階段まであった場合に、すごいソースになってしまうので
なんかwhileを使って出来ないかと思って考えてるんですがわからなくて
0657nobodyさん2007/09/20(木) 21:57:08ID:???
>>645
あなたみたいな人はフレームワークを使えばいい
思い通りの動作をやってくれるでしょう
0658nobodyさん2007/09/20(木) 21:57:52ID:???
線形で増えていくだけだから大した問題ではないよ。
すごいソースで何が悪い。見た目なんか気にするな。
0659nobodyさん2007/09/20(木) 21:58:29ID:???
>>654
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20070827/280408/?ST=oss
この辺読んで再チャレンジ
06606452007/09/20(木) 22:02:48ID:bTS/b7yb
みなさん返信ありがとうございます
>>654
読んでみます
06616452007/09/20(木) 22:03:42ID:bTS/b7yb
間違えました
>>660>>659へのレスです
0662nobodyさん2007/09/20(木) 22:04:29ID:???
木構造といったら、まず再帰を考えないか普通
0663nobodyさん2007/09/20(木) 23:27:38ID:???
どんだけ〜
0664nobodyさん2007/09/20(木) 23:42:57ID:mjQwk2aW
プログラムで実行される関数がどのファイルで定義されているかを効率的に
探す方法を教えてください。少し規模の大きなプログラムだと見つけるのに
時間がかかってしまします。
エディタの機能になるのでしょうか。もしそうであればそのエディタを
教えてください。
0665nobodyさん2007/09/20(木) 23:44:38ID:???
どんだけ〜
0666nobodyさん2007/09/20(木) 23:47:55ID:???
functionで検索〜
0667nobodyさん2007/09/21(金) 03:19:02ID:???
どんだけ〜
0668nobodyさん2007/09/21(金) 06:54:05ID:/lN3SBgs
$data = array("$data","$data2","$data3");
fputs($fp, implode("", $data));

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

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

実際使うときはwarningあたりかE_ALLでログに全部書き出しだろうから
気にする必要ない
0680nobodyさん2007/09/21(金) 14:56:05ID:QV6ADNlt
>>678-679
ありがとうございます。
開発レベルではStrictで行いたいのですが、MDB2だけのエラーを非表示にできないんですか?
あるいはリファレンス渡ししない方法などはないのでしょうか。
0681nobodyさん2007/09/21(金) 14:59:59ID: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でだとどうすればよいのですか?
0682nobodyさん2007/09/21(金) 15:00:59ID:???
>>681
オブジェクトとして返されるから
それを取得するような感じでいいんじゃね?
0683nobodyさん2007/09/21(金) 15:12:23ID:5JzPFtpG
>>682
すんません、初心者でXMLのデータ処理をするのが初めてなので
取得方法自体がわからないんです。
どう書けばよいの?
0684nobodyさん2007/09/21(金) 15:12:57ID:fJKnQpQm
>>680
pearの
$a =& new ex();
って書き方の「=&」ここの部分を全部「=」に直せば問題は解決さ、どれくらいあるかわからないけどw

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

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

嫌がらせは15年ほど前から続き、引っ越した住民もいたという。
井手容疑者は「わたしが被害者だ」と容疑を否認している。
 調べでは、井手容疑者は8月25日から9月2日にかけ、近所の男女3人に対し、家の壁をたたいたり、「なめとんのか。殺すぞ」などと脅したりした疑い。
0705nobodyさん2007/09/21(金) 20:48:03ID:???
http://headlines.yahoo.co.jp/hl?a=20070921-00000162-jij-soci
0706nobodyさん2007/09/21(金) 22:14:49ID: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関数は実行されてるみたいなんです。
どなたかよろしくお願いします。
0707nobodyさん2007/09/21(金) 22:16:34ID:???
>>706
そのコードは何を参考にして書いたの?
07087062007/09/21(金) 22:20:19ID:QV6ADNlt
>>707
PEARのマニュアルを主に参考にしましたが、理解不足のようです。
0709nobodyさん2007/09/21(金) 22:31:22ID:???
>>708
どのページ?
07107062007/09/21(金) 22:34:10ID:QV6ADNlt
>>709
Googleにおいて"php mdb2"で検索した結果の上10サイトほどです。

http://www.phpied.com/db-2-mdb2/
このサイトを参考にし、>>706のソースを
$mdb2->execute($sth, $data); → $sth->execute($data);
としたらできました。
私の勘違いだったようです・・・
0711nobodyさん2007/09/21(金) 22:56:05ID: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のエラーも発生しません。 (プロンプトに直打ちで起動するのは確認してます)
どうやら引数に”が入るとダメみたいですが解決法はありますか?
0712nobodyさん2007/09/21(金) 23:20:17ID:???
ありまsn
0713nobodyさん2007/09/21(金) 23:22:41ID:QV6ADNlt
たびたびすみません・・・

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

この解決方法として、データベースに格納するときに、
SET NAMES utf-8;
というクエリを発行すると良いということが分かったのですが、そのほかに方法はありますか?
よろしくお願いします。
0714nobodyさん2007/09/21(金) 23:25:36ID:???
>>713
FWなんかだと回避方法が色々あるかもしれんが
べた書きでSQLのバージョンがいくつか忘れたがある以上のバージョンだとそれしかない。
0715nobodyさん2007/09/21(金) 23:39:38ID:???
SET NAMESは禁止
http://blog.ohgaki.net/index.php/yohgaki/2007/08/22/set_namesa_mcb_asc

SET NAMESは禁止?
http://cakephp.seesaa.net/article/52562968.html
0716nobodyさん2007/09/21(金) 23:47:48ID:QV6ADNlt
>>714-715
ありがとうございます。
文字コード問題、難しいですね。
とりあえず今は開発段階なので、自分のサーバのMySQLの[mysqld]のところに、
skip-character-set-client-handshake
を記述して一時退避と思います。
0717nobodyさん2007/09/22(土) 06:08:18ID:+WbXSWsd
xreaで
http://example.com/ほげほげ/でアクセスした場合、mod_rewriteで?wd=ほげほげにして渡したいのですがこれをすると500エラーになります。
文字コードの影響かと思いmb_convertしてみましたが変わりありません。
どんな方法がありますでしょうか?
0718nobodyさん2007/09/22(土) 06:46:17ID:???
URLに日本語をそのまま流すとな?
0719nobodyさん2007/09/22(土) 07:12:11ID:???
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です。
0720nobodyさん2007/09/22(土) 07:13:25ID:v/rJVSv7
age忘れました。
0721nobodyさん2007/09/22(土) 07:21:03ID:???
既知のバグです
0722nobodyさん2007/09/22(土) 07:24:14ID:v/rJVSv7
そうですか…
回避方法とかは無いのでしょうか?
0723nobodyさん2007/09/22(土) 07:27:30ID:???
ありません
0724nobodyさん2007/09/22(土) 07:30:04ID:v/rJVSv7
そうですか。
ちょっと投げやりすぎる回答が気になるので、ソースをお願いします。
0725nobodyさん2007/09/22(土) 07:35:48ID:???
○ソース一覧
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/ 高橋ソース株式会社 埼玉県
0726nobodyさん2007/09/22(土) 07:38:06ID:v/rJVSv7
大丈夫ですか?
0727nobodyさん2007/09/22(土) 09:16:45ID:???
ググレカス
0728nobodyさん2007/09/22(土) 09:19:09ID:???
解らないなら答えなけらばいいのにとんだカスだな
0729nobodyさん2007/09/22(土) 09:26:47ID:???
>>719
fputs で HTTP/1.1 使ってるのが原因でした。
HTTP/1.0 にして解決しました。ありがとうございました。
0730nobodyさん2007/09/22(土) 09:27:09ID:???
>>719 もとがえうcとわかっているならえうcからうtf−8としていすればよい、
0731nobodyさん2007/09/22(土) 12:54:23ID:???
>>724
投げやりすぎる質問するならそんくらい自分で探せ
0732nobodyさん2007/09/22(土) 14:32:49ID:RkVrJ9bm
自分の運営しているサイト(PHPとmysqlでつくったもの)を何気なく検索したら、
私のサイトのすぐ下に、私のサイトを全部ひらがなに変換しただけの他人のサイトがヒットしました

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

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

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

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

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

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

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

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

perlだと

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

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

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

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

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

あ あ あ

だと

あ_あ_あ

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

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

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

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


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

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

echo $str;

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

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

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


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

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


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

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

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

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

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

くだ質だからなんでも質問すりゃいいって、どんだけユトリなのよ
0796nobodyさん2007/09/24(月) 00:24:55ID: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>";
0797nobodyさん2007/09/24(月) 00:47:10ID:???
>>796
なんじゃそりゃ。
コード書く前に落ち着いて頭の中で整理してアルゴリズム考えてみ。
0798nobodyさん2007/09/24(月) 00:56:56ID: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>";
0799nobodyさん2007/09/24(月) 00:57:42ID:???
>>797
アルゴリズム?
アルゴニズムだろ??
0800nobodyさん2007/09/24(月) 01:13:42ID:???
>>799
>>799
>>799
0801nobodyさん2007/09/24(月) 01:30:21ID:???
>>796
これって
$table[一段目], $table[0], …$table[二段目], $table[4], …
こういう配列になるわけだろ?何が嬉しいのかわかんない
08027962007/09/24(月) 01:55:21ID:JxEty0kG
>>798
できました!
何が嬉しいのかと言われたら確かにその通りですが(;´Д`)
ありがとうございました。
08037982007/09/24(月) 02:10:26ID:Wq/5iUlO
>>802
上の方で言われてるようにその配列は使い勝手が悪いです。
柔軟性に欠けますから工夫が必要です。
頑張ってください。
0804nobodyさん2007/09/24(月) 03:46:09ID:???
>>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十"),
);
ってしたかったわけじゃないのか?
見た目と構造が全然かみ合ってないそ。
0805nobodyさん2007/09/24(月) 06:52:38ID:???
>>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");
0806nobodyさん2007/09/24(月) 08:43:14ID:???
>>805
でもそれじゃぁ全部の段が同じ数じゃないと
HTML的に変になるという

まぁそこまで考えんでもいいか・・・
0807nobodyさん2007/09/24(月) 10:01:06ID:???
>>806
変にループ条件いじるくらいなら
先に変数側を正規化した方が楽だけどね。
0808nobodyさん2007/09/24(月) 12:43:32ID: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);

こうしないでいいの?
俺てっきりマルチバイトダメだと思ってたよ
0809nobodyさん2007/09/24(月) 13:15:20ID:???
欧米か!
0810nobodyさん2007/09/24(月) 13:24:01ID:???
>>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");
0811nobodyさん2007/09/24(月) 13:37:12ID: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"]);
0812nobodyさん2007/09/24(月) 14:05:59ID:3GSML6xR
function valsclear($vals){
if (is_array($vals)){
array_map(array($this,'valsclear'),&$vals);
}else{
$vals = '';
}

値だけを消去したいのですが、どうしたら良いでしょうか?
0813nobodyさん2007/09/24(月) 14:45:48ID: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で作ると問題なく表示されます。
どうすれば解決できるでしょうか。よろしくお願いします
0814nobodyさん2007/09/24(月) 15:15:31ID:???
auto→SJIS
0815nobodyさん2007/09/24(月) 15:38:02ID:???
確かに、 auto だとちゃんとconvertできてないことあるよね。
なんでだろ。
PHPのソース見れば分かるんだろうけど。
08168132007/09/24(月) 15:47:27ID:/07n7WU2
>>814
ありがとうございます、ちゃんと表示されました。
autoは万能じゃないて事ですかね。
0817nobodyさん2007/09/24(月) 16:06:22ID:???
>>808
マルチバイトどころかコントロールコード入れるのだってアリだよ
0818nobodyさん2007/09/24(月) 16:30:12ID:???
>>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 の多次元配列までやってみたけど、どうだろうか
0819nobodyさん2007/09/24(月) 16:41:55ID:9opMSOGn
php4.xにてクラス内のメソッドから継承関係に無い別のインスタンス内の
プロパティにアクセスするにはどうすればよいでしょうか?
0820nobodyさん2007/09/24(月) 16:51:18ID:???
>>819
メソッドへの引数でインスタンスを渡してやれば?
0821nobodyさん2007/09/24(月) 17:09:15ID:9opMSOGn
>>820 アクセスできました、ありがとう!
0822nobodyさん2007/09/24(月) 19:36:00ID:???
>>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が入っているという前提になってます)
08238112007/09/24(月) 19:42:41ID:???
>>822
ソースありがとうございます。参考にさせていただきます。
ただ、やはり一般的には811の方法しかないですよね。。
0824nobodyさん2007/09/24(月) 19:50:39ID:???
>>823
Javascript前提なら、PHPでは比較しないでループで書き出すのみにして
onloadでJavascriptに比較させてもいいんだけどね。
普通はやらんねw
0825nobodyさん2007/09/24(月) 19:54:06ID:???
>>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;
0826nobodyさん2007/09/24(月) 20:17:55ID:???
>>825
空文字valueがある場合でも
$select = array($_POST[$name] => ' selected="selected"');

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



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

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

--- 読み元.php ---
if ($contents = @include('hoge.php')) {
  echo $contents;
} else {
  echo 'hoge.phpがねーぞ';
}
0840nobodyさん2007/09/25(火) 15:33:42ID:RlJd1MSD
>>838
ありがとうございます できました
>>839
ありがとうございます コードを保存しました こんどやってみますね
0841nobodyさん2007/09/25(火) 16:25:55ID: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);
?>
-------------------------------------------------------------------------------------
どこがいけないのでしょうか?
0842nobodyさん2007/09/25(火) 16:25:59ID:???
文字列の中で開始文字列と終了文字列の間に挟まれている部分だけ取り出したい。
開始文字列と終了文字列は別、取り出したいものは一ヶ所という前提です。

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

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

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

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

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

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

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

phpinfoで再度確認してみましたが ftp enable となっており使える設定のはずですが。。。
Apache2.x自体 yum にてインストールしました。
スクリプトではなくA鯖に問題があるのでしょうか?
08528412007/09/25(火) 20:41:52ID:xfKDGXzl
>>851
失礼しました、自己解決しました。
A鯖のiptablesの設定ミスをしていました。
ありがとうございました。
0853nobodyさん2007/09/25(火) 20:52:40ID:???
質問です。phpでsendmailのパスを設定する方法が分からず困ってます。
CGIのように設定する必要はないのでしょうか。
08548532007/09/25(火) 21:00:48ID:???
すみません、自己解決しました
0855nobodyさん2007/09/25(火) 21:04:32ID:???
>>854
言ってくれてありがとう 自己解決です
0856nobodyさん2007/09/25(火) 21:38:42ID:Wp8RlZHh
PHPでアセンブリ言語って使うことできますか?
ある一定の作業だけアセンブリで書きたいのですが。
0857nobodyさん2007/09/25(火) 21:40:17ID:???
どんな作業よ
0858nobodyさん2007/09/25(火) 21:46:19ID:???
ある問題に一元的な答えを追及し自己解決したというのは、
オレから言わせれば、欺瞞でありアイデンティティーの欠如に他ならない。
0859nobodyさん2007/09/25(火) 21:57:23ID:???
>>856
linuxならバッククォートで囲む。
windowsはやったことないからしらん。
インラインで書きたいってのならミリ
0860nobodyさん2007/09/25(火) 22:07:27ID: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なんで俺を助けてくれ。
0861nobodyさん2007/09/25(火) 22:10:13ID:???
まずどこで失敗してるのか切り分けてから出直して来い
08628602007/09/25(火) 22:14:56ID: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");
}
0863nobodyさん2007/09/25(火) 22:16:21ID:???
うん、そこがどうなるわけ?
08648602007/09/25(火) 22:19:26ID:259tGTbD
1度目はOpenしたファイルに書き込めるのですが、2度目は真っ白けっけのファイルができて
何にも書かれていないのです(涙)
ちなみにファイルはw+でオープンしています。
(つまりファイルオープンはエラーじゃないと頭悪いなりに考えをめぐらせて見ました)
ということは$rsに何にも入っていないか、fputsが失敗しているかのどっちかかなと。
0865nobodyさん2007/09/25(火) 22:21:14ID:???
内容確認せずGETをクエリにってちょ、ま、おま!
08668602007/09/25(火) 22:25:38ID:259tGTbD
え?まずいっすか(笑)
一応ここには決まったStringしかプログラムが返さないようになっているので平気かと。
しかも、1回目はうまくいくんですよ〜。
ヒントだけでもいいんでお願いします〜〜。
0867nobodyさん2007/09/25(火) 22:29:41ID:???
外から来る変数は全て汚染されてる前提でチェックするのが吉。
0868nobodyさん2007/09/25(火) 22:29:51ID:???
860ワロス
08698602007/09/25(火) 22:31:47ID:259tGTbD
了解っす♪
今はLocalでテストなんで平気ですけど、最終的にはかならず切り分けしてチェックを通ったものだけを
実行するようにいたします。
0870nobodyさん2007/09/25(火) 22:39:05ID:???
まず$_GET['key'] の内容をそのファイルに書き込んでみたら?
リロった時に入ってないとかってオチかもしれんよ
08718602007/09/25(火) 22:48:49ID:259tGTbD
ほんまじゃあああ。めっさ興奮。
直で値、書き込んだらなぜか動作しないっす。
ただし、同じものをコピペしてQueryBrowserで実行するとなぜかきっちり実行される。
これってどういうことなんですかね。
本当にアホな質問なんでしょうがよろしくお願いします。。。
0872nobodyさん2007/09/25(火) 23:00:04ID:???
>>871
そのFunc_queryってのがへんなんじゃない?
普通にmysql_queryで書いたらどうだね
08738602007/09/25(火) 23:05:27ID:259tGTbD
なんか引き継ぐ前のおっさんが「ややこしい処理を全部外部ファイルにまとめといたよ♪」とのこと。
俺もFunc_Queryってなんだろうって思って確認したら
function Func_Query($strSQL){
$rs=mysql_query($strSQL);
return $rs;
}
って書いてありますたorz
ちなみに今回はmysql_queryでやってもまったく同じ結果ですね。
もしかして日本語を代入してるのがまずいんでしょうかね?
0874nobodyさん2007/09/25(火) 23:08:11ID:???
>>873
文字コードだと思う
08758562007/09/25(火) 23:12:14ID:Wp8RlZHh
>>859
レスありがとうございます。
仰るとおりCの様にインラインで書きたかったのですが無理なのですね。
参考になりました。どうもありがとうございます。
08768602007/09/25(火) 23:20:06ID:259tGTbD
たしかにその線ぽいです。
先ほどの$_GET['key']の中をsampleみたいに半角英数字のみで構成させると動作する場合が多いです。
(それでもリロードしたあとに動作しないことが多々あり原因は不明)
現在SJISで書かれたウェブの中にあるSelectOptionsの中身に
AjaxでPHP(EUC)がUTF8で書き込んだファイルの内容を一行ずつ表示させて、それをクリックしたら
またその内容をPHPで受け取ってさらにファイルを生成するというむちゃくちゃな仕様に
なっています。
引き継いだときにはこんな状態だし、私は完全に畑違いなのに毎日画面とにらめっこで
泣きそうです。
とりあえず、糸口だけでもつかめて本当に参考になりました。
お答えいただいた方は1人?2人??よくわかりませんが、本当にありがとうございます。
いったんここで質問をCloseさせていただきます。
0877nobodyさん2007/09/25(火) 23:25:24ID:???
大量の計算処理をしている場合に、熱暴走することがあるのですが、
例えば、蛍光灯と裸電球と比べると、蛍光灯は同じ電力量で明るいと思います。

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

<?php
echo "a";
?>

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

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

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

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

>>902
あうはWML(笑)だよなー
0905nobodyさん2007/09/26(水) 18:03:11ID:???
>>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
0906nobodyさん2007/09/26(水) 18:17:00ID:bO9sGA13
PHPのデータベースを操作するライブラリってなにが有名?
MDB2さわってみたけど、資料やエラー報告が少なくて見送ろうと思うんだけど・・・
0907nobodyさん2007/09/26(水) 18:23:28ID:???
絶対パスから相対パスに変換する関数ってあります?
なかったらコードが乗ってるサイトしりませんか?
自分でちょっとがんばってみたんですが・・・
バカなんで・・・無理でした・・
0908nobodyさん2007/09/26(水) 18:27:02ID:???
http://codezine.jp/a/article/aid/1720.aspx
>>906
Pear
PDO
0909nobodyさん2007/09/26(水) 18:28:01ID:???
>>906
PDOがいいよ
0910nobodyさん2007/09/26(水) 18:36:57ID:???
>>907
>>1
それと質問がエスパーすぎ
相対パスにする必要ないし、何を相対パスにしたいのかがわからない。
09119062007/09/26(水) 18:44:11ID:bO9sGA13
>>908-909
ありがとうございます。
PDOとPEAR::DBの違いはなんですか?
0912nobodyさん2007/09/26(水) 18:48:36ID:???
ラッパークラスかどうか
0913nobodyさん2007/09/26(水) 18:50:59ID:nbOl+lTy
空メール送信に対して自動的に返信するのを作ろうと思うのですが、
メールをトリガーにして実行するスクリプトか、
クローンで数秒ごとに動くスクリプトにしようか迷ってます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

リアルタイムにこだわるなら受付プログラムを常駐させておく手もある。
0990nobodyさん2007/09/29(土) 15:16:49ID:???
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...

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

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

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

10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。