【PHP】下らねぇ質問はここに書き込みやがれ 54
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2007/09/09(日) 12:42:57ID:64tYOx8RPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、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:64tYOx8R1.文字コードは何を使えばいいの?
→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→ 確認すべきは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:./:.:.:.:.://:.:.:.:
:.:.:',:',:.:.:.:.ヽ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:???→ CakePHPを使ってください。
0008nobodyさん
2007/09/09(日) 15:10:52ID:64tYOx8Rdir1 パーミッション777
/testdir/dir1/test.php
に、mkdirでパーミッション777でdir2というフォルダを作るように
mkdir("../dir2",0777);
とし、ローカル環境でうまくいったのでレンタルサーバーに上げたらうまくいかない・・・
このときのエラーは
SAFE MODE Restriction in effect. The script whose uid is〜
というエラーが出たのですがこの場合何が原因なのでしょうか
0010nobodyさん
2007/09/09(日) 15:26:10ID:64tYOx8R手動で作るしかないんですねorz
0011nobodyさん
2007/09/09(日) 16:07:50ID:sHQ1gr/Nttp://www.apache.jp/
ttp://www.php.net/
このURLのPHPとApacheはどの組み合わせでDLした方が宜しいでしょうか?
0012nobodyさん
2007/09/09(日) 16:11:22ID:???0013nobodyさん
2007/09/09(日) 16:14:01ID:???>デ
CakePHPってところからしてデザインとロジックの分離ってところだろうか...
いずれにせよそんな短い(ryじゃテンプレに入れられないな。
0014nobodyさん
2007/09/09(日) 16:16:20ID:sHQ1gr/N有難うございます、インストールしてみます。
0015nobodyさん
2007/09/09(日) 17:17:49ID:???当時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:???0017nobodyさん
2007/09/09(日) 17:39:56ID:???レス有難う御座います
$body = '本人認証ですhttp//'; はいけるのですが、
$body = '本人認証ですhttp://';のように[:] コロンを入れると送信する事が出来ません
[""]でも['']でも同じ結果の様です
0018nobodyさん
2007/09/09(日) 18:00:28ID:sHQ1gr/Nphpinf();のファイルを作り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:jOYDLkNB1時間毎に1度ある数字に+1して通し番号を発行したいのですが
何を参考にすればいいでしょうか?
0021nobodyさん
2007/09/09(日) 18:23:45ID:???0022nobodyさん
2007/09/09(日) 18:24:59ID:jOYDLkNBありがとうございました。
0024nobodyさん
2007/09/09(日) 18:36:45ID:???記述ミス申し訳ありませんでした。設定を一通り終えて、動作確認で
<?
phpinfo();
?>
というファイルをindex.phpとして作りhtdocsフォルダに置きlocalhostにアクセスしてみました。
しかしPHPに関するページの表示はされず、
<?
phpinfo();
?>
というファイル内容がそのまま表示されてしまいますが、色々と試しています・・・
0025nobodyさん
2007/09/09(日) 18:40:18ID:???0027nobodyさん
2007/09/09(日) 18:50:58ID:???・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:???<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:+iLUvfjNdefine("MAN", 'CO');
print <<<TEXT
{MAN}
TEXT;
みたいな感じで参照できねっすか?
0032nobodyさん
2007/09/09(日) 21:50:17ID:+iLUvfjNアリ
0034nobodyさん
2007/09/09(日) 23:45:11ID:???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:???preg_matchの修飾子に s を指定するべし
preg_matchではなく、preg_match_allを使うべし
[a-z0-9\/\-_\.]の中の / - . はエスケープする必要なし
- は最後に書くべし
0037nobodyさん
2007/09/10(月) 00:42:18ID:v8+qYSiw下の、
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:???0040nobodyさん
2007/09/10(月) 04:56:57ID:iLiEDXXmっすればいいの?
自分は
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:???くだらない質問でもど偉そうに聞いていいスレ
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と43
2007/09/10(月) 09:10:54ID:???0045nobodyさん
2007/09/10(月) 11:03:54ID:???ttp://pc11.2ch.net/test/read.cgi/php/983128806/752
>>44
解決したんだったら解決策を書いてくれると助かる。
004737
2007/09/10(月) 11:30:10ID:v8+qYSiwなるべく見やすくしたつもりですが・・・
004937
2007/09/10(月) 12:52:22ID:v8+qYSiwすみません。
これでも詰めたのですが、甘かったのですね。
0050nobodyさん
2007/09/10(月) 13:41:02ID:nbKfi6vVボタンを押すとダイナミックテキストの変数ipに表示させたいんですけど、
これでいいんでしょうか?
<?php
gethostbyaddr(getenv("REMOTE_ADDR".$_POST["ip"]));
?>
0051nobodyさん
2007/09/10(月) 13:49:09ID:???0052nobodyさん
2007/09/10(月) 14:25:24ID:nbKfi6vV変数は[ ]の中にいれるんでしょうか?
<?php
echo $_SERVER["REMOTE_ADDR".$_POST["ip"]] ;
?>
0053nobodyさん
2007/09/10(月) 15:04:53ID:???src="フラッシュファイル名?ip=<?php echo urlencode(gethostbyaddr($_SERVER["REMOTE_ADDR"])); ?>"
じゃないのかな。
他にも値の渡し方はいくつかあるけど。
0054nobodyさん
2007/09/10(月) 15:18:59ID:???$_SERVER["REMOTE_ADDR"]がIP調べるの定義済み変数だろ
そんくらい調べろ
echo $_SERVER['REMOTE_ADDR'] . "<br>\n" . gethostbyaddr($_SERVER['REMOTE_ADDR'];
0056nobodyさん
2007/09/10(月) 18:17:34ID:???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/kimgタグのの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何かいい方法があればと思って聞いてみたんですが
006242
2007/09/11(火) 03:04:39ID:zytLbqiKだれかよろしくおねがいします
0063nobodyさん
2007/09/11(火) 05:54:29ID:???>>60
っていうかimages/a.gifも相対パスな罠。
普通にinclude("aaa.php");とか書けばいいじゃん。
相対パスだからって「./」は必須じゃない。
実行ディレクトリが違うという話なら最初に
chdir("基準ディレクトリ");すればいい。
006559
2007/09/11(火) 10:40:52ID:???相対パスが嫌な訳ではなく、../../など、階層をページによって書き直すのが嫌なのです
深い階層にいくと、./なのか../なのか、../がいくつ必要なのかよくわからなくなるので
ありがとうございます、調べてみます
0066nobodyさん
2007/09/11(火) 10:53:33ID:TKViiXpyswitch文で1つのswitchが60個x12って1ファイルだと多すぎでしょうか?
キチンと動いてるのですが、たまに12箇所で同じ部分が表示されない時はあるのです。
0068nobodyさん
2007/09/11(火) 10:56:22ID:???htmlの下質だな、スレ違いに気づけ。
0069nobodyさん
2007/09/11(火) 11:02:47ID:???0070nobodyさん
2007/09/11(火) 11:31:38ID:???switchが12個でそれぞれにcaseが60個という意味か
そんなに書いたことないなー
状況がわからないけど自分ならもっとスマートに書けそうな気はする
0073nobodyさん
2007/09/11(火) 11:48:32ID:???0074nobodyさん
2007/09/11(火) 12:20:06ID:???普通に動きそうな気はするが、ものすごく読みにくくて
バグがあっても気付きにくい構造になっちゃってる気はする。
0075nobodyさん
2007/09/11(火) 12:28:30ID:???case 1: echo "1";break;
case 2: echo "2";break;
.
.
とかすごく無駄なことをしてそう
0076nobodyさん
2007/09/11(火) 13:13:35ID:???> 12箇所で同じ部分が表示されない
これが少し気になるんだが、そのx12のswitchって
ひょっとして同じ条件を12回も再評価してるのか?
配列変数を使うとか、もう少し何とかならんのかそれ?
0077nobodyさん
2007/09/11(火) 13:25:17ID:???720行ものcase文を書き上げた根性だけは立派だよ。
スキルを身につければきっと伸びる。
0078nobodyさん
2007/09/11(火) 14:13:16ID:???> 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でやる方がシンプルだと思うのですが、どうしてかうまくいきませんでした。
0081nobodyさん
2007/09/11(火) 15:30:20ID:TKViiXpyいえいえ省略したcaseの部分はbreak; してませんよ。
他にcssや他のテキストも入れていますので実際は省略する部分も少ないですが。
0082nobodyさん
2007/09/11(火) 15:32:16ID:dkCdLSVp0084nobodyさん
2007/09/11(火) 15:41:10ID:???現在の時刻で分の部分が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:TKViiXpyttp://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何故一気に1時間飛ばすのかな
0088nobodyさん
2007/09/11(火) 15:49:40ID:TKViiXpyサイトを見てもらえばわかるのですが、
4コースのレースがあってそれぞれ1時間で1回のレースを行ってます。
なので、1レースが終わると次回は1時間後なのです。
0089nobodyさん
2007/09/11(火) 15:49:41ID:???if($min >='00'&&$min <='15'){
$txta=現在時間00分;
$txtb=現在時間15分;
}else{
$txta=1時間+現在時間00分;
$txtb=1時間+現在時間15分;
}
0090nobodyさん
2007/09/11(火) 15:53:03ID:???0091nobodyさん
2007/09/11(火) 15:58:25ID:TKViiXpyどうもです。
以前までそのやりかたで書いてたのですが、
レース時間が、00:45〜01:15など時間をまたいだレースなどで
うまく取得できない場合がありました。おそらく条件式をうまく使えてないのが原因だと思うのですが。
if($min >='45'&&$min <='59'&&$min >='00'&&$min<='15'){
のような感じで書いてました。
0092nobodyさん
2007/09/11(火) 16:01:21ID:Al3TIDzdDBの設計を学びたいたいです。
とりあえず練習としてMySQL+PHPで掲示板を作りたいのですが、
どういうカラムが必要なのかとかがわかりません。
MySQLスレで過去に聞いてみたのですが返答もらえませんでした。
強引にPHPと結び付けてるようで申し訳ないですが、
MySQL+PHPでDB設計を学べるようなサイトがあったら教えていただけませんか?
また、DBを使った掲示板を作る場合、
自分ならどういったカラムを作るかなど、助言いただけたらよろしくお願いします。
0094nobodyさん
2007/09/11(火) 16:10:03ID:???forで時間分だけ回して、インクリメントで分を足して行って、
該当分にだけ処理させるように記述すれば良いんじゃないかな?
0096nobodyさん
2007/09/11(火) 16:50:09ID:???0097nobodyさん
2007/09/11(火) 16:57:38ID:???0098nobodyさん
2007/09/11(火) 17:00:59ID:???× 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:???0101nobodyさん
2007/09/11(火) 17:18:09ID:???必要なカラムは表示させたい内容や処理させたい機能によるので
「掲示板だからこのカラム」なんてパターンは無い。
まず掲示板ってどういう仕組みで成り立ってるのかから勉強してこよう。
必要な機能とデータを列挙する段階はPHPやDB以前の問題だ。
その上で、列挙された機能とデータから仕組みを設計するのがPHP(というかWebアプリ)の勉強。
それができた上で、さらにそのデータを効率化・最適化するのがDBの勉強。
010237
2007/09/11(火) 18:22:10ID:dkCdLSVp0104nobodyさん
2007/09/11(火) 18:39:49ID:???初めはきちんとDBの勉強したほうがいいと思うよ。
アルゴリズムとデータ構造や、リレーショナルデータベースの科目取るとか、教科書読むとか
0106nobodyさん
2007/09/11(火) 18:54:52ID:???こんな漠然とした内容で「精度を上げたい」と言われても
どういう場合に本文が抽出できないのかさっぱり分からんよ。
010792
2007/09/11(火) 19:12:38ID:Al3TIDzd他人のソースは正直何がなんだかわからなくて敬遠しがちです。
理解できるかは不明ですが、適当なものを探してみたいと思います。
>>101
どうもご丁寧にありがとうございます。
アドバイス通り掲示板にとって必要な機能とデータがどういうものなのか、
考えてみたいと思います。
考えてみたデータを生かしきれるかはわかりませんが、
不要なデータがあっても、とりあえず動けばいいみたいなスタンスで頑張ってみます。
>>104
そうですね。いくつか初歩的な構文は理解してるのみで、
詳細な部分は全く知らないので、いろいろ勉強してみたいと思います。
とりあえず学生ではないので授業は受けれませんw
文系だったのでそういった類の教科書も持っていないので、サイト巡回や本で勉強したいと思います。
0109nobodyさん
2007/09/11(火) 19:59:16ID:???掲示板なんてWebプログラムの初歩じゃないか。
0110nobodyさん
2007/09/11(火) 20:02:39ID:???011192
2007/09/11(火) 20:16:24ID:Al3TIDzdよろしければどの辺を見てそう感じたか教えてください。
今後の質問の仕方の参考にしますので。
DBに関しては初歩レベルでさっぱりですが、
一応プログラムの初歩的なことに関しては理解してるつもりです。
0113nobodyさん
2007/09/11(火) 20:31:17ID:WeIbshbrJISで送信すると、ヤフーメールで見たら文字化けしています。
「$BHdO*1c1i=P$N$4A*6J$*Hh$lMM$G$7$?!#(B」のようになっているのでJISになっています。
おそらくYahoo側でEUC-JPで表示していると思うのですが、
メールを送信するときにどの文字コードで表示するか設定できるのでしょうか?
それとも、メールが届いた側で判別されるのでしょうか?
0114軟式PHP
2007/09/11(火) 20:37:11ID:???喧嘩はイクないよ^^
掲示板は勉強になるから最初に作るにはいいと思う。
特にDB絡めるのなら、いい勉強になるよ。
とりあえず以下のように機能を列挙したらどうかな。
そして、機能を実装するのに必要なテーブル設計を考えてみる。
簡単なやつだったら1つのテーブルだけで作れるから。
●付ける機能
・記事を書き込む
・記事を読み込んで一覧にする
●拡張するなら…
・記事にレスをつけれる。
などなど
0115nobodyさん
2007/09/11(火) 20:40:26ID:???とりあえず悩む前に作るのが一番いいよ
PK、名前、内容のフィールドを作って2〜3個のテストデータでもいれておいて
ちょっとつくってみて足りないものがあればどんどん付け足していくのでもいいから
とにかく思いついたものから作っていけばDBを使ったWEBアプリとは
大体どんなものか把握できるんじゃないか?
0117nobodyさん
2007/09/11(火) 20:58:11ID:WeIbshbrありがとうございます
Content-Typ: text/text; charset=JIS
で解決しました。
011892
2007/09/11(火) 21:00:47ID:Al3TIDzdどうもアドバイスありがとうございます。
簡単な設計まで考えていただきありがとうございます。
作りながらDBの勉強をしたいと思います。
環境の再構築(DBインストールと設定)が今終わったので、
早速思いついたものからデータを入れて、取り出すテストからしてみたいと思います。
どうもお付き合いいただきありがとうございました。
0119nobodyさん
2007/09/11(火) 21:18:19ID:???志望フラグ乙
0120nobodyさん
2007/09/11(火) 21:19:41ID:???DBはDBで
各ある程度理解したらPHP+DBがいいかも
012137
2007/09/11(火) 21:29:32ID:Ftl8Pgh5ttp://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:???そんな切り離してやるもん?
PHP+DBっていう1つの分野って考えてもいいんじゃない?
HTMLとCSSの関係みたいなもんだと思うんだけど
0125nobodyさん
2007/09/11(火) 21:38:57ID:???012637
2007/09/11(火) 21:43:03ID:dkCdLSVpウイルススキャンした後UPしてます
書き忘れましたが、パスはphpです。
012866
2007/09/11(火) 21:54:26ID:TKViiXpyifでキチンとした時間などが出なかった理由は分の値の勘違いでした(;´д⊂)
caseに比べると半分ほどのファイルサイズになりましたw
みなさんアドバイスありがとうございました!
0130nobodyさん
2007/09/11(火) 22:29:57ID:???それは型から入って体現できる礼儀作法を学ぶには有効なんだ
しかし、プログラミングは頭使って考えなくちゃならん
初学者の陥る罠はなんでも他人に聞いて一時的に理解した
つもりになって、本当のところは何も理解していないんだ
それがとても悲しくなるときがある
0131nobodyさん
2007/09/11(火) 23:36:08ID:???0132nobodyさん
2007/09/12(水) 07:31:05ID:???0133nobodyさん
2007/09/12(水) 09:44:36ID:xkG1TV3g0134nobodyさん
2007/09/12(水) 10:24:27ID:???0137nobodyさん
2007/09/12(水) 12:19:53ID:???0138nobodyさん
2007/09/12(水) 12:33:59ID:???逆の場合も時々あります。
0139nobodyさん
2007/09/12(水) 12:39:23ID:???「上手く動かない」の状況が分からんよ。
その2つは全然意味が違うし。何をやろうとしたんだ。
単純にそれぞれで判定できないものを無理に判定しようとしただけで
ようするにマニュアルよく読みやがれこのカス野郎って話じゃないの?
0140nobodyさん
2007/09/12(水) 12:45:54ID:rYUimiSOご教示いただけますと幸いです。
0144nobodyさん
2007/09/12(水) 14:13:55ID:???0146nobodyさん
2007/09/12(水) 14:58:02ID:???読んだらこんな質問は出ないはず
http://jp.php.net/ja/empty
の例に書いてあるし
0148nobodyさん
2007/09/12(水) 15:20:46ID:???君は読解力がついてないみたいでかわいそうだね。
>PHPマニュアルを読むクセをつけます。
というのはちゃんと読むことを指してると思うんだが
0149nobodyさん
2007/09/12(水) 15:33:58ID:???常識的に考えて「マニュアルを読む癖をつけます」っていう言葉からは
今までマニュアルを読んでいないとは断定できないが
今まで読んでいたとも断定できない
つまりどっちともとれる表現であるというのが結論
つまり>>145の言ってることも正しいし>>147の言ってることも正しい
0150nobodyさん
2007/09/12(水) 15:40:01ID:???0151nobodyさん
2007/09/12(水) 16:33:10ID:???0152nobodyさん
2007/09/12(水) 17:04:11ID:xkG1TV3gif ($_SERVER['REQUEST_METHOD'] === POST) {
}
if ($_SERVER['REQUEST_METHOD'] === "POST") {
}
POSTが送信されたか判断するとき、↑のどちらで書けばいいのでしょうか?
どちらの文も同じ動作でしたが文法的にどちらが推奨でしょうか。
0153nobodyさん
2007/09/12(水) 17:07:03ID:???0154nobodyさん
2007/09/12(水) 17:13:28ID:bal64F9r0155nobodyさん
2007/09/12(水) 17:14:36ID:???文字列をクォートしないのは論外。
送信されるパラメータで
if(isset($_POST['hoge']))
とするのもあり。
0156nobodyさん
2007/09/12(水) 17:22:06ID:???上のはこっそりとNotice errorが出ている
どうして上のをNoticeにしたのかわからないな
fatal エラーでいいじゃん
0157nobodyさん
2007/09/12(水) 17:32:25ID:???0159nobodyさん
2007/09/12(水) 18:28:10ID:???func.phpというのをよんだとき、Perlのように頭に
package f; 書けば呼び出し元ソース内で f::kansuu();
といったように使えるようにしたいのです。
恐れ入りますがご教示いただけますと幸いです。
0160nobodyさん
2007/09/12(水) 18:35:02ID:???0161nobodyさん
2007/09/12(水) 19:09:30ID:hkjgamimクラス定義の中でfunc.phpを読み込めばいいと思います。
0162nobodyさん
2007/09/12(水) 19:12:46ID:5Xj/wG4U変数に何もセットされていない場合には「false」を値が空だった場合には「true」を返します。
との事ですが(empty($_POST["test"])とした時、受け取った値が"123"ならば123ですよね
falseとtureの場合の違いが分からないのですが、どのような場合なのでしょうか?
0163nobodyさん
2007/09/12(水) 19:19:49ID:???http://jp.php.net/empty
0164nobodyさん
2007/09/12(水) 19:19:55ID:i+nu8B4+$bool = falseだったら$bool = tureに
一行でする方法ありますでしょうか?
0165nobodyさん
2007/09/12(水) 19:29:37ID:???0167nobodyさん
2007/09/12(水) 19:31:29ID:5Xj/wG4U何となく理解する事が出来ました。サイトまで教えて頂き有難うございます。
0169nobodyさん
2007/09/12(水) 19:51:55ID:???class hoge {
include("func.php");
}
俺もこれで良いと思ったんだが、何気に出来ないんだな。
0170nobodyさん
2007/09/12(水) 20:07:55ID:hkjgamimそんなことはできないかもしれないと思って試したら、 案の定できませんでした。
おそらくクラス定義の中ではメンバ宣言とメソッド宣言以外は不正なのでありましょう。
大変失礼しました。
0171nobodyさん
2007/09/12(水) 21:20:44ID:???0172nobodyさん
2007/09/12(水) 22:01:50ID:???0173nobodyさん
2007/09/12(水) 22:16:11ID:5Xj/wG4Uさせる事は出来るのでしょうか?
インターネットオプションの詳細設定からスクリプトエラーごとに通知にチェックを
入れたのですが何をしてもページが表示できません。で止まってしまうのですが
0174nobodyさん
2007/09/12(水) 22:23:22ID:???0176nobodyさん
2007/09/12(水) 23:14:21ID:TcT1t6MRActiveRecord?とか言うヤツ?
PHP5への移行を視野に含めた上でお勧め教えてけろ
0177nobodyさん
2007/09/12(水) 23:37:46ID:???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:???0180nobodyさん
2007/09/13(木) 01:41:33ID:jFkqotf1それぞれのページへsession_start();は書かないといけないのでしようか?
read.php を読み込んでそこへ各ページ用ファイルを読み込んでるページなんですが。
ページを移動すると、セッションが切れてしまいます。
0181nobodyさん
2007/09/13(木) 02:06:32ID:???自己レス
list($GET_PAGE3,$_SESSION['navi_on'])=explode("-",$GET_PAGE03);
としていたので$_SESSION['navi_on']に何も入るはずがないページに行くと
セッションが空になっていたようです。
失礼しました
0182nobodyさん
2007/09/13(木) 08:28:27ID:???{
my $tmp = $foo;
}
ってブロック内で処理してたんですけど、
PHPではこういうときはどうやるんですか?
0184182
2007/09/13(木) 09:25:06ID:???0185182
2007/09/13(木) 10:16:24ID:NzuBOnrd消えてくれませんか?
ここはレベルがほんとひくいですね。げんなりしました。
0186182
2007/09/13(木) 10:24:30ID:n543y+IO185は私ではありません。
わざと人のことを騙って楽しむなんて気持ち悪い人たちですね。
信じられません。
もう質問はいいです。
0187182
2007/09/13(木) 10:25:54ID:NzuBOnrdもう騙りはいいんで
0188182
2007/09/13(木) 10:29:18ID:GzCzMpSl0191626
2007/09/13(木) 11:41:49ID:???教えてくださいえらい人
0192nobodyさん
2007/09/13(木) 11:46:05ID:???単純にID出し忘れるやつもいるんだから、
ID出してまで本人ぶるのはやめようぜ。
本当に>>185 or >>186が本人だったらただの痛い人だが。
0193nobodyさん
2007/09/13(木) 11:47:57ID:TsTr8KNxTOSHIBAのCX925LL(ウィンドウズXP搭載)に市販のウィルス対策ソフトのウィルスキラーゼロ(E-フロンティア社)をインス
トール後、アップロードしようとしているのですが、相性が悪いらしくアップロードできません。
付属されていない市販のセキュリティーソフトをインストール、アップロードするために、元々インストールしてあったソフトウェア
「ファイナルストッパー」、「マカフィー・パーソナルファイアウォールプラス」をアンインストールした後、市販のセキュリティー
ソフトが相性が悪かった為か、うまくインストールアップロードできなかった場合、再度「ファイナルストッパー」「マカフィーパー
ソナルファイアウォールプラス」をインストールすることはできますか?
また、どうすればできますか?
どなたか教えてください。お願いいたします。
0196nobodyさん
2007/09/13(木) 12:29:21ID:???0202nobodyさん
2007/09/13(木) 13:29:29ID:???0204nobodyさん
2007/09/13(木) 13:33:55ID:???0205nobodyさん
2007/09/13(木) 13:34:49ID:???if ($a == $b && $a == $c && $a == $d && $a == $e && $a == $f) {
echo "同じ";
}
0206nobodyさん
2007/09/13(木) 13:45:16ID:???>>201
相乗平均知らない低脳ハッケーン
0207nobodyさん
2007/09/13(木) 13:50:32ID:???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:???$obj->msg(<<EOT);
ここにメッセージ
EOT
なんですが、phpで書いてもうまくいきません。
$obj->msg(<<< EOT)
ここにメッセージ
EOT;
正しい書き方教えてください。
0210nobodyさん
2007/09/13(木) 14:51:35ID:???それだけで、いいweb制作者ということです。(低レートに甘んじてりゃ
それなりに仕事くると思っている人がいますが、現実はそうじゃない)
当然レートは高いのです。
年収1000万なんて軽いですよ。
0211nobodyさん
2007/09/13(木) 15:51:15ID:???0212nobodyさん
2007/09/13(木) 16:42:03ID:e5IQPewWsessionをデータベースに格納してくれるライブラリってありませんか?
0215nobodyさん
2007/09/13(木) 19:14:09ID:p1bkeaSRセッションを使わずに
入力→確認→投稿
のようなものを作りたいのですが
何か良い方法はないでしょうか?
hiddenも考えたのですが、ページの容量(入力したテキスト)が2倍になってしまいます。
0216nobodyさん
2007/09/13(木) 19:34:09ID:???習った事を考えると3ファイル作らないと行けないのですが、出来ますか?
0219nobodyさん
2007/09/13(木) 19:45:40ID:p1bkeaSRトークンとは何でしょうか?
0220216
2007/09/13(木) 19:47:53ID:HG9TD0jfどのようにしたらいいでしょうか?POSTで別ファイルにデータを送り取得する方法以外で
ヒントでも教えて頂けると嬉しいのですが。
0221216
2007/09/13(木) 20:09:07ID:HG9TD0jf0223nobodyさん
2007/09/13(木) 20:57:25ID:???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:???0226nobodyさん
2007/09/13(木) 21:33:08ID:???0227nobodyさん
2007/09/13(木) 21:41:18ID:???0228223
2007/09/13(木) 21:43:20ID:???$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:???俺はこうする
if (・・・) {
$error+=1;
} elseif (・・・) {
$error+=2;
} elseif (・・・) {
$error+=4;
} else {
//エラーが無いなら処理
}
0231nobodyさん
2007/09/13(木) 22:08:30ID:???(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:???0234nobodyさん
2007/09/13(木) 22:33:59ID:???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:???でいいじゃんw
0236nobodyさん
2007/09/13(木) 23:06:47ID:???0237nobodyさん
2007/09/13(木) 23:07:57ID:KIVNzqAT皆さんは自力でエスケープしてます?
0238nobodyさん
2007/09/13(木) 23:09:13ID:???本家ダウンロードページでは最新バージョンへのリンクしか見つかりませんでした。
どこかでダウンロードできないでしょうか。
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ありがとうございます。そしてさすがPHP。
かゆい所に手が届きすぎです。
0243nobodyさん
2007/09/13(木) 23:24:04ID:???すげー、逆に使ってみたい。
0244nobodyさん
2007/09/13(木) 23:26:29ID:???見つかりました。ありがとうございます
なんでこのバージョンかというとクライアントの指定してきた
ミドルウェア(これもまた相当古いバージョンですが)が4.4系に対応していない為なのです。
最新版でもいけんだろ、と高をくくっていたら本当に4.4.7では動かなかったもので…
ともあれこれで作業できます。助かりました
0245nobodyさん
2007/09/13(木) 23:29:52ID:???0246nobodyさん
2007/09/13(木) 23:30:06ID:???まーそんなときもあるよな。
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:???0251nobodyさん
2007/09/14(金) 02:36:09ID:07nleTLs&&をつかうと"Parse error: syntax error, unexpected T_STRING "
がでてしまいます。
if(($a) == "XX" && ($c) == "XX"){
でなにかおかしいところってありますか?
0254nobodyさん
2007/09/14(金) 03:26:09ID:n3vYsmYwDB: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:???Cで専用のApacheモジュールを作るのが1番早いけど
ボトルネックはファイルのアップダウンでプログラムの処理する部分はたいしたことないから全然変わらないと思う
0257nobodyさん
2007/09/14(金) 08:36:46ID:???Javaで作ったほうがいいと思うが・・・
0258nobodyさん
2007/09/14(金) 09:02:48ID:rtA26Ijr20万アクセスに耐えるプログラムは組めたとしても
サーバー構成が1台でWEB+DBの設計だと持たないと思われるので
むりじゃね?
0259nobodyさん
2007/09/14(金) 09:05:19ID:???処理内容を見る限りプログラム側の処理なんて微々たるもので
ほとんどはWebサーバーのパワーと帯域次第って感じに見えるから
PHPでもmod_perlでもJavaでもそんな変わんないんじゃないかな。
(CGIだとCで作ったって何で作ったって確実に今より遅くなると思う。
あとApacheモジュールって…PHPは最初からApacheモジュールなんだが)
ちなみにこれ、
1.Whereに付加する条件って何項目くらいあるの?十分に最適化されてるの?
2.ダウンロード・アップロードするファイルの平均サイズは?
3.ダウンロード・アップロードのリクエスト頻度は?
が気になるけど、処理速度を改善するとしたらダウンロード用か
アップロード用にWebサーバーと回線を分離してやるのがまず第一だと思うけどね。
聞いてる限りじゃボトルネックになりそうなのはここしか見当たらないから
それ以外に改善の余地なんてほとんどない気がする。
まずボトルネックになってるのはどこかちゃんと分析してやりなよ。
少ない資源でチューンしようって言うならそんな漠然とした話じゃ無理。
0260nobodyさん
2007/09/14(金) 09:27:38ID:???0261nobodyさん
2007/09/14(金) 09:31:26ID:???こんなんでどうだろ。
$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<?
$text = "あいうえお";
echo mb_strlen($text);
?>
での出力が「8」になるのですがなぜでしょう?
ちなみに、文字コードはUTF-8です。
Shift_JISに直すと「5」と、正常に表示されます。
0264nobodyさん
2007/09/14(金) 10:01:15ID:ri4+Axdv有難うございます
文字コードを指定して使えるんですね。
完全に見逃していました。
0266nobodyさん
2007/09/14(金) 10:12:11ID:ri4+Axdv0267nobodyさん
2007/09/14(金) 13:16:52ID:ri4+Axdvパーミッション何にするのがいいのでしょうか?
0700?
0269nobodyさん
2007/09/14(金) 13:23:29ID:ri4+Axdvサンクス
その方法頂きます
0270nobodyさん
2007/09/14(金) 13:30:44ID:ri4+Axdv0271nobodyさん
2007/09/14(金) 13:34:58ID:???0272nobodyさん
2007/09/14(金) 13:38:12ID:ri4+Axdv0273nobodyさん
2007/09/14(金) 14:19:16ID:???600か606にするしかないんじゃないかな。
600にしようと思ったらApacheの実行ユーザで
アップロードしないといかんと思うけど。
0274nobodyさん
2007/09/14(金) 14:21:28ID:ri4+Axdvそかー
どもです。
0275nobodyさん
2007/09/14(金) 14:22:42ID:???0276nobodyさん
2007/09/14(金) 14:47:02ID:???してるよ。
0277nobodyさん
2007/09/14(金) 16:45:35ID:sODpU595EUC-JPなPHPで処理をしているのですが、IE7やFirefoxなどでは化けてしまいます。
JIS-X0213(でしたっけ?)のローマ数字なのだと思うのですが、
正しく扱えない文字なのでしょうか?それともPHPが何か変な変換でも
かましていたりするのでしょうか?
UTF-8を使うのが正解なのかな。
0278nobodyさん
2007/09/14(金) 16:50:55ID:???こういう事では?
0279nobodyさん
2007/09/14(金) 18:29:39ID:???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:sODpU595utf-8やsjis-winに変換すると '?' になります。
>>279 さんのを試してみると見事に変換に成功しました。
("utf8", "eucjp-win"); とか("sjis-win", "eucjp-win");
でもうまくいけるようです。
EUCからEUCへ変換するのは確かに間抜けですけど、
まぁ仕方ないのかもしれません。
これがバッドノウハウって奴でしょうか。
0281nobodyさん
2007/09/14(金) 18:50:25ID:???htaccessが置けるなら、includeされるファイルを置くディレクトリを用意して、直アクセスは弾けば良い
0282nobodyさん
2007/09/14(金) 19:23:17ID:sODpU595Javaで書かれたコードでは正しく処理されていたので、
Javaはeucjp-winと同じ方法でutf-8と変換していたという事でしょうか。
0283nobodyさん
2007/09/14(金) 21:37:58ID:PTuC71hk0284nobodyさん
2007/09/14(金) 21:41:13ID:???2.次に訪れたら保存した日時を取り出す+記録する
3.表示する
0286nobodyさん
2007/09/14(金) 21:46:58ID:???0288nobodyさん
2007/09/14(金) 22:09:16ID:PTuC71hk挑戦してきます。レス有難うございました。
0290nobodyさん
2007/09/14(金) 23:11:59ID:???ログイン認証するようなサイトならともかく、
一般的な個人サイトならやめときな。
仕組み知らない訪問者は不気味がってアクセス数減るよ。
0291nobodyさん
2007/09/15(土) 02:17:30ID:???0292nobodyさん
2007/09/15(土) 04:39:32ID:V+kYhkB110〜60の時はそのままで、0〜9の時は先頭に0をつけてて00や05にするには
何かいい方法ないでしょうか?
今は、if($a<10){ などとしてるのですが。
0293nobodyさん
2007/09/15(土) 04:43:39ID:???0295nobodyさん
2007/09/15(土) 05:59:12ID:???0296nobodyさん
2007/09/15(土) 07:51:26ID:rDYCANkK0297nobodyさん
2007/09/15(土) 10:58:43ID:???0298nobodyさん
2007/09/15(土) 11:01:39ID:???0299nobodyさん
2007/09/15(土) 11:52:54ID:FRg1UB2Sマルチバイト関数
0300nobodyさん
2007/09/15(土) 12:26:59ID:V+kYhkB10301nobodyさん
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$func = new Hoge();
$func('gorua');
こんなふうにやりたいのよ。
0304nobodyさん
2007/09/15(土) 16:56:17ID:???0305303
2007/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:???$test = GetwordIntag("<title>ほげほげ</title><b>あああ</b><title>いいい</title>");
↓
$test = Hoge("<title>ほげほげ</title><b>あああ</b><title>いいい</title>");
です。すみません。
0309nobodyさん
2007/09/15(土) 17:27:58ID:???preg_match_all はどうですか?
http://jp2.php.net/manual/ja/function.preg-match-all.php
0311nobodyさん
2007/09/15(土) 19:14:03ID:???縦に名前、横に日付、で○×という感じの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:???日ごとに○と×なら整数型のビットフィールドにするとか。
1回のクエリーで1月分をまとめて取れるYo。
DBのテーブル設計を見直した方がよくないかい。
0313nobodyさん
2007/09/15(土) 19:41:30ID:???ああああああ
いいいいいい
というのを、phpで
<p>ああああああ</p>
<p>いいいいいい</p>
と<p>タグで囲って出力したいのですが、方法が見つかりません
どのようにすれば良いのでしょうか?お願いします
0314nobodyさん
2007/09/15(土) 19:50:25ID:???foreach (file('text.txt') as $line) { echo "<p>{$line}</p>\n"; }
こうか?
0315311
2007/09/15(土) 19:53:28ID:ITnns1Uw1回!? マジですか
DBの設計まで行くと板違いになるので、情報小出しのようになってしまいましたが、
月の表示は>>311で、各○の部分はリンクで、押すと該当日のスケジュール(グラフ表示など)
という風にする予定です。 それでDBは日が中心のテーブルになってました。
(id, date, user_no, start_time, end_time, note こんな感じ)
DBのほうで月の表示用テーブルを増やし、各利用者が日のスケジュール登録時に
そっちのテーブルにも記録するような設計にする というのがイイのですかね?
いつもDB設計は変えず、表示のPHP側で色々複雑にしてた場合が多いので参考になります。
ただ、1回のクエリーでまとめて取る方法が分からないです。
もし宜しければ、簡単な表の例でいいのでSQLや処理を御教示お願い致します。
0316312
2007/09/15(土) 20:12:00ID:???スケジュール表が、日ごとの有無と見えたので、
それなら1回のクエリで十分に見えました。
32ビットの整数なら1月分まとめて取り出せるなーと。
あと、1回のクエリで済ますなら配列を使う必要がありますね。
SQLは昔に少しかじった程度なのですぐに例をあげるのは無理です。
なんか偉そうなこといってスマンかった。orz
0318nobodyさん
2007/09/15(土) 20:25:18ID:???0319317
2007/09/15(土) 20:26:26ID:rDYCANkK>>314で正解だ。
0320nobodyさん
2007/09/15(土) 20:51:54ID:???ありがとうございます。ちょっと頭が固かったみたいです…
何度も質問すみません
今、Wikiもどきを作成しているのですが、
[http://nantoka.com:title=なんとか]
を
<a href="http://nantoka.com">なんとか</a>
のように出力することは可能でしょうか?
また、その方法があればご教授ください。。。
0322nobodyさん
2007/09/15(土) 21:06:45ID:jy5G5jnHそれがずっと普通だと思っていて、金曜日の会社の設計会議で焼き菓子と何回か
発言したら、参加していた人から総スカンを食らった上に、
先輩に呼び出して、大目玉を食らいました。
ここの人は、cookieのことを焼き菓子って言ったりしますか?
0323nobodyさん
2007/09/15(土) 21:15:44ID:???ひさしぶりに吹いた
0324nobodyさん
2007/09/15(土) 21:17:09ID:???$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:???0327nobodyさん
2007/09/15(土) 21:24:08ID:???0328nobodyさん
2007/09/15(土) 22:17:50ID:???0329nobodyさん
2007/09/15(土) 22:50:03ID:???ビジネスの場で「ら」抜き表現は馬鹿っぽいからやめたほうが良いよ。
食べられませんって言ったほうがいい。
細かいけど。
0330nobodyさん
2007/09/15(土) 22:52:32ID:???0331nobodyさん
2007/09/15(土) 23:12:15ID:???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「ttp://pc11.2ch.net/test/read.cgi/php/1189309377/」
のように拡張子を消してもPHPを実行させたいのですが、仕組みが分からず困っています・・・
ヒントだけでも構わないのでお願いします。
0334nobodyさん
2007/09/15(土) 23:18:41ID:Xmsi68ZJconfirm.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>
0336nobodyさん
2007/09/15(土) 23:38:19ID:Xmsi68ZJレスどうもです。
Sessionを使う事も試してみたのですが、プルダウンメニューの場合どう記述すればよいか分かりませんでした。
例えばtextareaだと
<textarea>ここに表示したい内容を書いておく</textarea>
でページ移動しても記述内容を保存できるのは確認できたのですが。
0338nobodyさん
2007/09/15(土) 23:54:07ID:Xmsi68ZJselected属性も試したのですが、常にselectedを指定したものが表示されてしまうようになりました
(例:「あ」にselectedをつけた所、「う」を選択して送信ボタンを押し、戻るリンクで前画面に戻っても
毎回selectedが効いてしまっているようで、「あ」が選択された状態になってしまいました)。
0339nobodyさん
2007/09/15(土) 23:58:12ID:???「う」を選択したという情報は$_SESSIONに保存してあるんだよね?
$_SESSIONの情報を元にselected属性を付けないとあかんですよ。
0340nobodyさん
2007/09/15(土) 23:59:43ID:???・selectedを付けると選択される
・ある要素を選択させたい
⇒
・ある要素のところにselectedを付ければいい
0341nobodyさん
2007/09/16(日) 00:01:28ID:???ハイパーリンクにしたいのかな?
その場合は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「ttp://pc11.2ch.net/test/read.cgi/php/1189309377/」 は拡張子が消えていませんよ。
「.cgi」 という拡張子が現れています。
0344nobodyさん
2007/09/16(日) 00:16:53ID:ZprS1LjJご指摘ありがとうございます。
>>332のソースでは省いてますが、一応$_SESSIONに保存しているつもりです。
ただ、>>339>>340でご指摘されているとおり、$_SESSIONの情報を元にselectedをつけないといけないだろうなと言うのは想像が付くのですが、
記述の仕方が分かりませんでした。
>>341
ご指摘ありがとうございます。
submitボタンでは無くハイパーリンクにしたいです。
理由ですが、>>332は簡略化したものですが、実際には既存のソースを改造しています。
そしてご指摘の部分を触る権限があるか微妙なので。
どうしても無理ならsubmitボタンにする事も検討する必要があるとは思いますが。
後、ご指摘のとおりformでの値の受け渡しとか良く分かってません。
どうしても触る必要があり触っているのですが、まずはテンプレートエンジン無しで出来るようにしてみたいと思います。
0345nobodyさん
2007/09/16(日) 00:55:38ID:???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:???退職者が管理してた社内システムの改修でもやることになったのかね。
PHPを勉強しつつ、ちょこちょこと機能追加や修正とか。
セッションにmail.phpでの入力値を全部格納してるなら、mail.htmlで
その値を取り出して動的に表示する仕組みを追加すればいいだけ。
confirm.phpの適当なところに
<?PHP print_r($_SESSION) ?>
って書けばセッションにちゃんと入ってるかどうかは分かるから確認。
Smartyはテンプレート(ここではmail.html)からセッションの値を
{$smarty.session.test}なんて記述で取得できる。
なんでさっきかいた{html_options}とか利用しつつ動的表示を行います。
でもま、他言語でのWebアプリ作成経験もない状態でアレモコレモは
却って習得に時間がかかると思う。
急がば回れで初心者向けPHPの本片手に基本からやった方がいいと思うよ。
フォームを利用したサンプルなんかは必ず載ってるし。
0348age
2007/09/16(日) 02:27:57ID:Ws+84egLどれをどう使えばいいかよく分からないんで
Do You PHP はてな - いつの間にかExceptionの種類が増えてた
ttp://d.hatena.ne.jp/shimooka/20070820/1187594874
0349nobodyさん
2007/09/16(日) 02:31:59ID:???あるじゃん
0351nobodyさん
2007/09/16(日) 17:57:23ID:???-html
あああああ
-html_end
の「-html」から「-html_end」を抜き出そうと思ったのですが、
preg_match('/-html\n(.+?)-html_end/', $str, $result);
としてもうまくいきません。どうすればよいのでしょうか?
0352nobodyさん
2007/09/16(日) 19:09:38ID:???0353nobodyさん
2007/09/16(日) 19:21:56ID:???それで試してみたところ、「-html」から「-html_end」が一行の場合は正常に出力したのですが、
-html
ああああああ
aaaaaa
-html_end
と、複数行になると、空のまま出力されてしまいます・・・
0354352
2007/09/16(日) 19:31:09ID:???pregはPerl互換らしいけどおれ先週末からPHPはじめたからどうだかわからん
/-html(.+?)-html_end/s
0356355
2007/09/16(日) 19:45:40ID:???何度もすみません・・・
まったく私には理解不能な挙動をしているので、お手上げですorz
$str = file_get_contents("test.txt");
preg_match('/-html\n(.+?)\n-html_end/s', $str, $result);
と、テキストをファイルから読み込むと(内容は先ほどと同じです)、何も出力されない状態となってしまいました。
どうかお助けください
0357352
2007/09/16(日) 20:41:28ID:???前者でダメならテキストファイルの改行コードが実行環境の改行コードと違うのかな?
もしsオプションが不安定なら
/-html([.\x0a\x0d]+?)-html_end/ とかでどう?
0359nobodyさん
2007/09/16(日) 21:20:08ID:???ありがとうございます。
$str = file_get_contents("test.txt");
preg_match('/-html(.+?)-html_end/s', $str, $result);
これで解決しました。
0360nobodyさん
2007/09/16(日) 22:51:54ID:4TCTiZPm具体的におしえてください
0362nobodyさん
2007/09/16(日) 23:44:45ID:oQRqCBGuUTF-8からJISにエンコードすると、一部文字化けしてしまいます。
エスケープしてからエンコードしてエスケープを解除していても同じでした。
なので、件名をJIS、本文をUTF-8、ヘッダーのcharsetをUTF-8にしているのですが、
何か問題はありまs・・・・ありますよねorz
0363nobodyさん
2007/09/16(日) 23:52:42ID:???UTF-8からJISに変換したものをテキストファイルに書き出したり
HTML上に表示させたりしても、その内容は化けてるの?
変換で化けるのかメール送信で化けるのかは切り分けた方がいいと思うけど。
0364352
2007/09/17(月) 00:18:42ID:???メールのヘッダ(件名や送信元)に漢字コードが含まれてる場合は普通はJISコードを
BASE64エンコードをして7ビット(アスキー)表現するのが普通
0365nobodyさん
2007/09/17(月) 01:12:12ID:???PHPが動作したときにある画像(例えばグーグルのロゴ画像など)
を自分のサーバに保存するようにしたいのですが、
どうしたらよいのでしょうか。
0366365
2007/09/17(月) 01:22:27ID:???0367nobodyさん
2007/09/17(月) 01:28:09ID:???まだ解決していないのに勘弁してください…
ダウンロードダイアログを開かずに自動でサーバに保存したいのです。
どなたかよろしくお願いします。
0368nobodyさん
2007/09/17(月) 01:34:39ID:AzPlrYBe> ◆質問する時の注意
> ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
0369365
2007/09/17(月) 01:53:43ID:H7YfkkRcID表示させることを忘れていました。
0370nobodyさん
2007/09/17(月) 01:59:17ID:???php.iniでallow_url_fopenがONに設定されていることが前提だけど、
file_get_contents()で該当URLの出力を読み込んでファイルに保存すればいい。
0371365
2007/09/17(月) 02:00:06ID:e+n8gM7j0373nobodyさん
2007/09/17(月) 02:14:08ID:???cURLによる方法
http://curl.mirrors.cyberservers.net/libcurl/php/examples/resizejpg.html
0374nobodyさん
2007/09/17(月) 03:10:54ID:nPCszMjgほぼないですよね?
0377nobodyさん
2007/09/17(月) 03:40:18ID:H7YfkkRcありがとうございます。
おかげで出力できました。
0378nobodyさん
2007/09/17(月) 03:41:44ID:???0379nobodyさん
2007/09/17(月) 04:32:37ID:???0380nobodyさん
2007/09/17(月) 06:33:42ID:JQdZ1nWf>>300を教えて欲しいのですが。
0382nobodyさん
2007/09/17(月) 07:16:14ID:ySslSBrA何言っちゃているの?お前?
オブジェクトのコピーが伴う値渡しが常に遅いに決まってるだろ。
0383nobodyさん
2007/09/17(月) 11:06:30ID:???Cのような単純なポインタとは別もんだからな
0384nobodyさん
2007/09/17(月) 11:10:11ID:???データがコピーされないしな。
0386nobodyさん
2007/09/17(月) 11:39:26ID:???どちら側もベンチマークすら出してないでどっちの負けとか言う馬鹿がいるんだな
0387nobodyさん
2007/09/17(月) 12:32:21ID:???0388nobodyさん
2007/09/17(月) 12:47:59ID:iCPVuNeRipはクライアント側で自由に文字列を書き換えられませんよね。
0389nobodyさん
2007/09/17(月) 12:49:29ID:???0390nobodyさん
2007/09/17(月) 12:53:10ID:iCPVuNeR0391nobodyさん
2007/09/17(月) 12:59:10ID:???0392nobodyさん
2007/09/17(月) 13:06:11ID:???0393nobodyさん
2007/09/17(月) 13:23:40ID:W3Fsfqr5http://takagi-hiromitsu.jp/diary/20051227.html#p02
0394nobodyさん
2007/09/17(月) 13:27:31ID:???ttp://blog.libssh2.org/index.php?/archives/51-Youre-being-lied-to..html
0395nobodyさん
2007/09/17(月) 13:41:38ID:RU4hBw1O0396nobodyさん
2007/09/17(月) 13:44:23ID:???0397nobodyさん
2007/09/17(月) 14:02:04ID:???1.文法や書式が違う。でも基本がC言語からの発展なので似てるとこは多い。
2.PHPはサーバー側で動作する。JavaScriptはブラウザ側で動作する。
0399nobodyさん
2007/09/17(月) 14:10:20ID:???PHP技術者の平均時給 2,700円(PG)
JavaScript技術者の平均時給 1,100円(PG/DN)
0400nobodyさん
2007/09/17(月) 14:19:56ID:???0401nobodyさん
2007/09/17(月) 14:56:44ID:ySslSBrAいるだろ普通に、っていうか、それは思っていても言ってはいけないことだろ。
天皇陛下は贅沢三昧の税金どろぼう、とか
長嶋はもう廃人で外にでしゃばって出てくるな、とか
拉致なんかの小さいことにこだわるよりも国益を優先されろ、とか
思っていても言ってはいけないことがある事くらい察しろ。
0402nobodyさん
2007/09/17(月) 15:10:50ID:???0403nobodyさん
2007/09/17(月) 15:12:38ID:RU4hBw1OPHPだとクライアント側はいっさいさわれないってこと?
0404nobodyさん
2007/09/17(月) 15:14:59ID:???0405nobodyさん
2007/09/17(月) 15:24:49ID:kIYZsn2K返信遅くなり申し訳ありません。
作業内容としてはそんな所です。
もっともPHPを勉強してという所はすっ飛ばして、いきなり本番といった所ですが。
あの後、いろいろ調べたのですが、>>332よりはマシになったのですが、
まだ解決していません。
それと、教えていただいたセッションに入っているか確認する方法で、
問題なさそうな事を確認しました。
後は、>>341のアドバイスに従い、テンプレート無しで試してみました。
また>>339>>340のアドバイスを元に、$_SESSIONの情報を元にselected属性を付けてみたつもりです。
上記の状態で、Javascriptで戻った場合は大丈夫なのですが、普通にハイパーリンクで戻ると
設定項目は保持してません。
下記にソースを添付しますので、普通にハイパーリンクでも設定項目が保持できる方法をアドバイスいただけると助かります。
0406nobodyさん
2007/09/17(月) 15:25:22ID:kIYZsn2K<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:???0408nobodyさん
2007/09/17(月) 15:59:15ID:kIYZsn2Kアドバイスどうもありがとうございます。
最初は使用していたのですが、途中から下記のwarningが出てしまったので取り外しました。
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by
上記ソース内でセッションを切ってないのが原因かとも思いましたが、
切るタイミングがなさそうだったのでそのままにしてました。
なのでsession_start();を入れても設定項目を保持できない事にはかわりなかったりします。
0410nobodyさん
2007/09/17(月) 16:10:32ID:kIYZsn2Kすいません、日本語すら怪しかったりします・・・
今試したら、Warningが出なくなっていました。
そして選択項目も保持していました。
アドバイスを頂いた皆様どうもありがとうございました。
また何かありましたらよろしくお願いします。
0411nobodyさん
2007/09/17(月) 17:57:19ID:???0412nobodyさん
2007/09/17(月) 18:46:11ID:iCPVuNeRたかぎさんのおっしゃることはわかるのですが・・・う〜ん
0413nobodyさん
2007/09/17(月) 19:31:07ID:???0414nobodyさん
2007/09/17(月) 20:01:55ID:???doxygenあたりでできないかなと思ってやってみたがincludeのグラフは無かった。
クラスのグラフは生成してくれた。
graphvizとPerl等のスクリプトで生成するのはどうよ?
0415nobodyさん
2007/09/17(月) 20:10:35ID:YADbl6mNたかぎさんはWEBプログラマではないと診た
0418nobodyさん
2007/09/17(月) 21:08:35ID:kIYZsn2Kそのとおりです。
最初はbodyの下に入れてて、warningは出なかったのですが(ただし選択項目は不保持)、
何が原因かは分からないのですが、途中からwarningが出た為一度取り外しました。
その後>>409のアドバイスを元に、一番上に挿入した所、warinigがでなくなり選択項目も保持するようになりました。
後は本番に移植して動けば良いのですが、本番はソースが複雑だったので怪しい所ではありますが。
0419nobodyさん
2007/09/17(月) 21:46:41ID:Pxt8ssvbもう比較レベルにならないぐらい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:???SQLなんてものはどうしても必要なとき以外書かないので
どうでもいい。
0421nobodyさん
2007/09/17(月) 22:47:06ID:???0422nobodyさん
2007/09/17(月) 23:09:07ID:???なんでフレームワーク、拡張ライブラリともに利用する気になれない
#私見ですよ、私見。 悪意はありませんです、ハイ。
0423nobodyさん
2007/09/18(火) 03:10:57ID:???とにかく速度重視ならSQL関数べた書き
特に案件さえ通ればおkならPDOやFWのO/Rマッパーで楽をする
洋梨は好かん
0424nobodyさん
2007/09/18(火) 03:21:07ID:???自分のサーバでどちらのモードが有効なのか判断する方法はありますでしょうか?
また、意識的にどちらで動くか設定する方法があれば教えてください。
0425nobodyさん
2007/09/18(火) 05:07:56ID:???つphp_sapi_name()
ttp://www.php.net/manual/ja/function.php-sapi-name.php
0429nobodyさん
2007/09/18(火) 14:04:24ID:FMVGiEK2膨大な量のCSVデータをMySQLに全て格納したいんですが、
何か手っ取り早い方法はないでしょうか。
phpMyAdminのインポートでは、ファイルサイズがオーバーしているらしくて読み込めません。
ちなみに、100MBくらいあります。
0430nobodyさん
2007/09/18(火) 14:09:01ID:???手っ取り早いのはmyimportユーティリティ
>phpMyAdminのインポートでは、ファイルサイズがオーバーしているらしくて
単なるスクリプトの実行タイムアウトでは?
0431nobodyさん
2007/09/18(火) 14:11:24ID:FMVGiEK2phpMyAdminでインポートさせようとすると
「エラー
アップロードしようとしたファイルが大きすぎるようです。対策については ドキュメント をご覧ください」
との表示が出ます。
(ドキュメントが英語でわからないですorz)
0432nobodyさん
2007/09/18(火) 14:15:19ID:FMVGiEK2ttp://www.eshima.info/archives/2006/11/xamppphpmyadmin.php
ちとこの方法でやってみます。有難うございました。
0433nobodyさん
2007/09/18(火) 14:30:50ID:LV1060jKテキストファイルに何か一文字でも入力して保存しておくとOKと表示されました。
このテキストファイルには掲示板のログとして、csv形式で保存するのに利用したいのですが、
空でも読み込んでOKと出すにはどうしたらよろしいでしょうか?
$textfile = "test.txt";
if ($file = file($textfile)){
echo "OK";
} else {
echo "NG";
}
0434nobodyさん
2007/09/18(火) 14:32:44ID:???返り血が読み込めたかどうかではなく、
読み込んだ結果何が入っていたかになる。
つまり、ファイルを開いたが何も入ってないと必然的にFALSE血が返る
0435nobodyさん
2007/09/18(火) 14:43:42ID:LV1060jKファイルが存在してて、ファイルを開けるかどうかって判断だけがしたいのですが、
file関数ではだめでしたね;;
0437nobodyさん
2007/09/18(火) 15:02:03ID:LV1060jK勉強になりました。ありがとうございます。
0438nobodyさん
2007/09/18(火) 15:17:27ID:YODMOTH4理解できないと言うよりそもそも理解の意味も分かってない。
0439nobodyさん
2007/09/18(火) 15:37:22ID:???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]になってしまう
0444443
2007/09/18(火) 16:22:28ID:???0445nobodyさん
2007/09/18(火) 16:31:11ID:FMVGiEK2ループで回してmb_convert_encodingしたほうがいいのかな?
なんとなく気になった・・・
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:???遅れるのは仕方が無いとして、遅れる連絡を早くしろといつも言っているじゃないか!
こっちのスケジュールが空いてしまうんだよ、賠償もんだそ。
0453nobodyさん
2007/09/18(火) 18:13:44ID:???0454nobodyさん
2007/09/18(火) 18:35:05ID:???まぁそうなんだけど・・
Perlで書いてたモジュールをPHPで書いてるんだけどはじめてのPHPはむずいね
やっと変数展開の詳しいサイト見つかったからそこをヒントに解決したよ
みんなありがとよ おっぱいの画像は持ってないから勘弁を
0455nobodyさん
2007/09/18(火) 18:41:17ID:dkyCnIzv今、おみくじ・フォームから入力したものをそのまま出力・なんのエラー処理もしてない一行掲示板
WEBを取り込んで軽く処理をさせて表示する物を作ったんだけど
次何作ればいいかな、MYSQL使った掲示板作ろうかと思ってるんだけどなんか違うんだよね
レベルが一気に上がりすぎてるのが原因か、いいサンプルが無いのか、今更掲示板作っても楽しくないのか
原因かわからないんだけど、どうも、やる気が出ない。
0456nobodyさん
2007/09/18(火) 18:51:02ID:???0457nobodyさん
2007/09/18(火) 18:55:55ID:???0458nobodyさん
2007/09/18(火) 19:10:03ID:???相対パスで記述した場合は読み込めます。
この辺の設定はどこに関係しているのでしょうか?
ドキュメントルートに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
--
何卒よろしくお願い致します。
0460nobodyさん
2007/09/18(火) 19:16:08ID:???または
include_once './test.html';
つかそれ絶対パスじゃないと思うが絶対パスにしたいなら
include_once 'e:/www/html/test.html';
0461nobodyさん
2007/09/18(火) 19:17:17ID:???ほんとにお前優しいから困る
0462nobodyさん
2007/09/18(火) 21:28:19ID:WeDTSAXgdate("Y-m-d",strtotime("-6 month"));
では駄目でした。
0465nobodyさん
2007/09/18(火) 22:31:54ID:YODMOTH4javaスクリプトがオンとオフで違うページ(内容)を表示したいのですがうまくいきません。
read.phpであくまでもイメージですが、
<noscript>
<?
$script="no";
?>
</noscript>
<?
if($script=="no"){
echo $mainpage_no;
}else{
echo $mainpage;
}
?>
こんな感じでスイッチのようなものが欲しいのですが何か方法ないでしょうか
0466nobodyさん
2007/09/18(火) 22:53:06ID:???<!--
JavaScriptコード
//-->
</script>
<?php
PHPでOnの時のHTMLをうんたらかんたら
?>
<noscript>
<?php
PHPでOffの時のHTMLをうんたらかんたら
?>
</noscript>
0468nobodyさん
2007/09/18(火) 23:00:42ID:WeDTSAXgすみません、できました・・。
別の質問ですが、
$month="06"だった場合、表示する時に"6"としたいのですが、
どうすればよいのでしょうか?
date("n",strtotime($month))としても駄目でした
0469nobodyさん
2007/09/18(火) 23:09:46ID:???echo sprintf('%d', $month);
echo substr($month, 1, 2);
echo (int)$month;
お好きなものを
0470nobodyさん
2007/09/18(火) 23:14:31ID:YODMOTH4どもです。
それもやってみたのですが、ソースを見ると同じ内容が2回も書かれてるのをみて唖然として
それで今スイッチを探してるのです。
ネットで探してもそれらしき情報ないようでPHPの使う人はJAVAスクリプトは使わないんですかね。
0471nobodyさん
2007/09/18(火) 23:15:17ID:???<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:???0473nobodyさん
2007/09/18(火) 23:23:41ID:???JSが有効か無効かはサーバからは判断できないから
探してもそれらしき情報なんて出る訳が無い。
ソースまで気にするのならどっかにリダイレクトさせるなりするしかないんじゃね?
JSONつかってやるってのもあるだろうけど既存の動的なサイトがあるんなら
それを対応させるのは相当面倒になると思うよ
0474nobodyさん
2007/09/18(火) 23:28:11ID:ZcU0BWXGprint_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ありがとうございます。
やってみたところ希望してた動作をしてくれています。
感謝感謝です!
0476nobodyさん
2007/09/18(火) 23:57:05ID:dkyCnIzv知らない言葉が沢山ですが
とりあえず、ググって見ようと思いますありがとう!
0477nobodyさん
2007/09/18(火) 23:57:32ID:YODMOTH4>>471をみてオンの人の所で読みに行くphpでオン用オフ用で分けて変数が空なら
オフの内容を、変数に例えば$java="on";と入ってればオン用内容を出すようにしてみました。
かなりいいとこまで出来てきました。
0478nobodyさん
2007/09/19(水) 00:01:08ID:???0479nobodyさん
2007/09/19(水) 00:06:14ID:???アップロードさせた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:???timeing1が何らかの理由でセットされてない或いはタイポしてるとしか
>>477
クライアントサイドからサーバサイドの変数を操作して引き継げてんの?
本当にいいとこまでできたんなら凄いからぜひコード見せて。振り分け関係の部分だけでいいから。
>>479
http://pear.php.net/package/File_PDF
とかCOMとか。
0481nobodyさん
2007/09/19(水) 00:19:16ID:???ありがとうございます
でもdocumentationらしくものがなく・・・お手上げです
せっかく教えていただいたのにすみませんが私ではムリそうです
0482nobodyさん
2007/09/19(水) 00:24:35ID:???つかどの質問なのか分かんないけど
0483nobodyさん
2007/09/19(水) 00:44:57ID:FnoZX1AEレスありがとうございます。
print_r($_SESSION);で表示されてもセットされないって事があるんですか?
タイプミスは一応気にしてみてみたつもりですが、再度チェックしてみます。
0485nobodyさん
2007/09/19(水) 01:32:59ID:FnoZX1AE申し訳ない。
コードは今手元にないんだ。
明日と言うか今日再チャレンジしてみて、どうしても駄目だったら、
現象が再現する最低限のソースを出せるように準備したいと思います。
0486nobodyさん
2007/09/19(水) 01:35:44ID:???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:gkslbv3Aisset() が関数ではなくステートメント(スペシャルフォーム?) なのは分かった。
0490nobodyさん
2007/09/19(水) 02:01:10ID:gkslbv3A(PHP 4, PHP 5)
isset ― 変数がセットされているかどうかを検査する
$a=array();
isset($a['b']]);
でエラーは出ないので$a['b']は「変数」ということでしょう。驚くべきことに。
んでは、「変数」って$aや$a[index] の他に何があるの?
もうPHPのソース読むしか無い?マニュアルすらアテにならんのだが。
0491nobodyさん
2007/09/19(水) 02:02:35ID:???0492458
2007/09/19(水) 02:02:47ID:RXNedNOk>461
ID表示させず申し訳なかったです。
>459 >460
レスありがとうございます。
勉強不足で申し訳ないですが、
ドキュメントルートを起点にしたインクルードってできないのでしょうか?
0494nobodyさん
2007/09/19(水) 02:10:45ID:???0495nobodyさん
2007/09/19(水) 02:21:09ID:???これ、PHPのプログラムとして誤りではないんですか?
0497458
2007/09/19(水) 03:32:07ID:RXNedNOkもう少しヒントを頂けると嬉しいです、、。
include_pathに設定なんかを行う感じでしょうか?
特別なことをせずにインクルードできるなら是非教えて頂きたいです。
よろしくお願いします!
0498nobodyさん
2007/09/19(水) 04:58:30ID:???エラーが出るのがおかしいと感じてるのか、出ない下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/2cENkk0500nobodyさん
2007/09/19(水) 08:15:46ID:???>>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:???まだよくわかんないですが。。
どちらがオカシイというか、
・一貫性がないなぁ
・他のプログラミング言語ではみられないし、直観的でない動作だなぁ
という風に思ってました。
頭がおかしいとか言っちゃってる人?がいますが、この程度のこともハッキリできないって正直怖くね?
と思ってたのでちゃんと分かって有り難かったです。
でも例えば、
$a =& $hogehoge['b'];
return $a['c'];
これはE_NOTICEが出ないのに、
>>486のf($a)でエラーがでるのはなんでだろう。
こんなん、エラーが発生した位置から実際のバグが特定しにくいと思うんだけど…
とにかくPHPの参照と配列が組み合わさると地雷、という風に理解すればいいかねぇ。
0502nobodyさん
2007/09/19(水) 09:18:42ID:gkslbv3A厳密に参照引数と参照変数が同じというわけではなさそう。
<?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ごめん。
八つ当たりをしてしまった。
気にしないで下さい。
0505nobodyさん
2007/09/19(水) 12:42:37ID:???0506nobodyさん
2007/09/19(水) 12:45:03ID:Ur82wVvy言葉使いに迷っております。
ある機能があるんだけど、
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 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:???一般ユーザって社内?コンシューマ?
社内ならシステムでいいんじゃね。
てか、その辺はお客さんと折衝してるときの
ニュアンスで決めちゃうからなー。
よくわからんわ。
>>507
>>1 IDを表示させてね。
>Cannot sendsession cookie - headers already sent
既にヘッダー文字列が送られている為にセッションを開始することが出来ません。
よくあるのは、空白とかが<?php ?>の前にある時ですかね。
0510nobodyさん
2007/09/19(水) 13:02:09ID:Ur82wVvyレスありがとうございます。紛らわしくてすみません。
一般ユーザーというのは、一般消費者向けです。
マニュアルといっても、電子マニュアルでして、
サイトに載せる予定です。hogehoge機能のhogehogeの部分が横文字なので、
機能じゃなくて別の言葉はないか、とクライアントに言われて困っています。
0511507
2007/09/19(水) 13:07:07ID:qdL49ylmありがとうございます。
確かに先に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:???丸投げするなよ
綺麗なソースかどうかなんて見てみないとわかるわけないだろ
ていうかファイル分けないとか謎制限いらんだろ
フレームワークでも使って作れ
0514nobodyさん
2007/09/19(水) 14:40:04ID:???掲示板最初から作るんだったら、どこかのサイトの掲示板を使った方が
いいんじゃない、その方が安全で手間がかからないし。
たとえば、
http://www.bigcosmic.com/
とか
0516nobodyさん
2007/09/19(水) 14:42:13ID:ywTkCFkiん〜、何ていうんだろ
いろんなとこでこの作業を行いたいからファイル分けると増えすぎてゴチャゴチャする
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:???うわぁ、すごい安い!!!
それに、すごいかわいい。こんなに初めてかも。
おれ、ここの掲示板使ってみる。いい情報ありがとぉーーー
0519nobodyさん
2007/09/19(水) 14:44:36ID:???0520nobodyさん
2007/09/19(水) 14:44:42ID:???早速おれも見てみた。
すごいね。これ。
しかも、すごい運用実績があるし、信頼できそうだね。
今使っている掲示板ダメダメなので、早速これ使ってみるよ。
0521nobodyさん
2007/09/19(水) 14:46:55ID:???MVCをしたいってこと?
なんかフレームワーク使ってる?
それとも、デザイン込みで1ファイルにしたいの?
質問ばかりでごめんね。
やりたいことがはっきり見えなくて。
0522nobodyさん
2007/09/19(水) 14:50:09ID:ywTkCFkiこっちこそ詳しくかかずにすみません
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:VHjt1ihLrequire_once("hoge{$resgit}.php");
かな
0524nobodyさん
2007/09/19(水) 14:53:58ID:ywTkCFkiどもです。
ですが、require_onceを使うためには実行するPHPを別ファイルで保存しなくてはいけないので、
それをしないで、実行する文を変数か何かに格納して条件別にそれを実行したいのです。
ヒアドキュメントで
$text = <<<_HTML_
<html>
<body>
<? echo "テスト" ?>
</body>
</html>
_HTML_;
eval($text);
としてみたのですが、evalはPHP文のみみたいですね・・・。
0525nobodyさん
2007/09/19(水) 14:56:09ID:DH/EOPt7やろうとしている事がアホすぎるってのは理解して、尚それをやろうとしてるの?
それとも、やろうとしてることがアホだって理解してないの?
0527nobodyさん
2007/09/19(水) 14:58:33ID:VHjt1ihLはぁはぁ、つまりユーザーアップロードのテンプレートを使わせたいわけだろ。
アップロード時に検査して問題がなければPHPとして置き換えたらいいでしょ。
それが嫌なら毎回置き換えろ。
0528nobodyさん
2007/09/19(水) 14:59:54ID:ywTkCFkiよく考えたらそれでよかったです・・・
有難うございましたorz
0529nobodyさん
2007/09/19(水) 15:08:48ID:???0530nobodyさん
2007/09/19(水) 15:09:10ID:???0532nobodyさん
2007/09/19(水) 15:14:01ID:???0533nobodyさん
2007/09/19(水) 15:44:14ID:ywTkCFki$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:VHjt1ihL0535nobodyさん
2007/09/19(水) 15:52:00ID:DH/EOPt7何がしたいのかよくわからないが、引数で配列にでもして渡せば?
0536nobodyさん
2007/09/19(水) 16:05:39ID:???0537nobodyさん
2007/09/19(水) 16:08:09ID:???0538nobodyさん
2007/09/19(水) 16:08:48ID:???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:???( д) ゚ ゚
0542nobodyさん
2007/09/19(水) 16:53:50ID:???なんだそりゃ・・・
$hogehoge = "あああ";
$test = "example.com";
$2ch = "まろゆき";
function Test()
{
echo $GLOBALS['hogehoge'];
echo $GLOBALS['test'];
echo $GLOBALS['2ch'];
}
0544nobodyさん
2007/09/19(水) 16:57:52ID:???ネタだよな?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]
''って使ってる派? 使わない派?
どっちが多いのかな
0548nobodyさん
2007/09/19(水) 17:05:37ID:???0550nobodyさん
2007/09/19(水) 17:06:45ID:???明示的を重視して使ってる。(noticeもエラー扱いだし)
うちは’(シングルクォート)だけど、
’(シングルクォート)と”(ダブルクォート)だとどっち使ってる人が多いのかな?
0552nobodyさん
2007/09/19(水) 17:09:46ID:???0554nobodyさん
2007/09/19(水) 17:14:28ID:???PHPマニュアルさんがファビョってたから
$foo['bar']つかう。
0555nobodyさん
2007/09/19(水) 17:15:16ID:???グローバル変数使う奴なんて馬にけられて死ねばいい
だけど、自作フレームワークにsmarty組み込む時に、
一々assignするのがめんどうでGLOBALSの中身全部assignしてしまった俺も死ね
0556nobodyさん
2007/09/19(水) 17:16:14ID:???0557nobodyさん
2007/09/19(水) 17:17:37ID:???echo $foo[bar];
define('bar', "boo");
echo $foo[bar];
0558nobodyさん
2007/09/19(水) 17:19:53ID:???>下位互換性の維持のため、未定義の定数は同じ名前の文字列に自動的に変換されます。
PHPは地獄だぜヒャッホー
0559nobodyさん
2007/09/19(水) 17:20:06ID:???PHP初心者のおれにもわかるように説明して下さい
エロイ人
0561nobodyさん
2007/09/19(水) 17:23:55ID:???グローバル変数は、ご存知のとおり適用範囲が必要以上に大きくなってしまう。
例えば、レンタルサーバーの場合、一人の住民がグローバル変数の値を変えると、
その変数を使っているレンタルサーバー内の住民の変数が全て変わってしまう。
そういう事情があって、使わない方がいいというより使ってはいけない。
0567nobodyさん
2007/09/19(水) 17:32:03ID:???0568nobodyさん
2007/09/19(水) 17:32:51ID:DH/EOPt710ファイルくらいのスクリプトをグローバル変数だけで書いてみな。
意味がわかるだろ
0569nobodyさん
2007/09/19(水) 17:37:23ID:???僕が、globalを嫌ってる理由はね。
理由1 ソースを追っかけにくい
どこで変数の値が変わるか分からないので、
いちいち全体を追っかけないといけない。
モジュールが増えれば増えるほど困難になる。
理由2 多人数での開発が難しい
適用範囲が広いってことは、変数名がぶつかったり
途中で違うものになったりして結合時などに大変なことになる。
理由3 昔の自分が書いたソースは意味不明w
理由1とほぼ同じ。
0570nobodyさん
2007/09/19(水) 17:41:42ID:???$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:???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:???NFCとかNFDとか
0574nobodyさん
2007/09/19(水) 17:52:22ID:???「Noticeを、許したタイポで、地獄見る」
define('type', false);
if(typo){
echo "PHP「罠にかかったな小僧!」\n";
};
0576nobodyさん
2007/09/19(水) 17:56:04ID:???皆は自動でクオートするように設定してる?
自動にすると、なんかこの機能っていろんな意味で不便じゃね?
0577nobodyさん
2007/09/19(水) 17:58:30ID:???自動ONでやってる。
"の送信が\"になるのは
$_POST[a] = eregi_replace("[\]", "", $_POST[a]);
で回避してる。
0582577
2007/09/19(水) 18:17:29ID:???あーーー!!!!
0583nobodyさん
2007/09/19(水) 18:24:13ID:???の正規表現はどう書くか教えて下さい。
----------
...
...
文章この行まで(以下空白部分を削除したい)
-----------
0584583
2007/09/19(水) 18:27:08ID:???0585nobodyさん
2007/09/19(水) 18:32:14ID:???0586nobodyさん
2007/09/19(水) 18:59:30ID:???$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:???あとこういうのやってみた。
$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:???0590nobodyさん
2007/09/19(水) 19:56:01ID:???0592nobodyさん
2007/09/19(水) 20:27:02ID:???レスポンス差を生んでしまうならそれはかなり大きな問題だと思うがな。
体感で分からんとか言ってるやつは、その0.1秒の差が
サーバーが対応可能な秒間アクセス数を確実に決定付けるという
高負荷サーバーのチューニングとかやったことないレベルの人だろう。
>>586
1番遅い結果が出た $test[abc] はPHPの処理でかなり遅い
シンボルの検索をやるのが致命傷なんだろう。
リファレンス使った参照渡しとかもこれが原因で処理遅いんだよな。
0593nobodyさん
2007/09/19(水) 20:28:43ID:???> 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:???チューニングとはボトルネックになっているとわかってから
効果がある場所にかぎってやるもの。
すべての箇所でやるもんじゃない。
0595nobodyさん
2007/09/19(水) 20:44:49ID:???こういうこと言う奴はどうしようもないよな
その程度の負荷をチューニングするくらいならもっと元気のいいCPUにかえたほうがスマートなやり方
次にアルゴリズムとかデータ構造見直すとかした後の話だろ、カーネル再構築とか微妙なチューニング云々は
0596nobodyさん
2007/09/19(水) 20:47:09ID:???0597nobodyさん
2007/09/19(水) 20:47:18ID:6jpSclPOで、magic_quote_gpcがオフにならないのですが、何が原因なのでしょうか・・・。
0598597
2007/09/19(水) 20:53:07ID:6jpSclPO文字コードを変換した場合にも勝手にクオート入るんですね・・・。
厄介ですorz
0599nobodyさん
2007/09/19(水) 20:55:20ID:???なんでや
0601nobodyさん
2007/09/19(水) 21:06:54ID:???ボトルネックを最優先で改善するのは当然の話だが
全てのコードが満遍なく遅いってのはそれ以前の糞プログラム。
チューニングの余地すらない。全部書き直せ。
0603nobodyさん
2007/09/19(水) 21:32:47ID:+/kMM8g5OSは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);
}
?>
続きます。
0604603
2007/09/19(水) 21:33:38ID:+/kMM8g5<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:???質問も自由。(マルチとスレ違いはだめだが)
答えるのも自由。
じゃないのか?
0609nobodyさん
2007/09/19(水) 22:01:36ID:???なんか2行目でmb_languageを今更jaに指定してるけど、
1行目の段階ではこれはどういう設定になってるの?
文字コードが変な解釈されてる気がするけど。
0610nobodyさん
2007/09/19(水) 22:02:12ID:???0611nobodyさん
2007/09/19(水) 22:06:09ID:???PHPは、送られてきた文字列のエンコードを知らないわけだから、
それなのにmb_strlenしてもデフォの内部エンコードが使われて、正しくないエンコードで計算されて期待した値にならない
0612603
2007/09/19(水) 23:17:34ID:+/kMM8g5mb_language("Ja");
mb_internal_encoding("SJIS");
の位置を先頭にしたら動きました。ありがとうございました。
0613nobodyさん
2007/09/20(木) 00:10:59ID:???その2行を先頭に持ってきたくらいじゃ根本的な問題解決にならんよ
期待している"SJIS"以外が送られてきたら不具合出るんじゃね?
0614nobodyさん
2007/09/20(木) 00:25:09ID:TpeEYAA9亀レスすいません。
あの後試してみた所、ほとんどソースをまっさらにすると、すべて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:???動かないんですが・・・
0616603
2007/09/20(木) 01:01:49ID:ROB03O5/フォームのあるhtmlはShift-JISで宣言してあるのですがそれでもダメでしょうか?
0619nobodyさん
2007/09/20(木) 01:17:43ID:???0620山田真一
2007/09/20(木) 10:38:42ID:RRR2JFqmWarning: 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:???0622nobodyさん
2007/09/20(木) 10:42:41ID:???0624nobodyさん
2007/09/20(木) 10:51:06ID:RRR2JFqm具体的にはどうすればいいんですか?
>622
新人だけど一人でやってます・・・
0625nobodyさん
2007/09/20(木) 10:52:08ID:???0626nobodyさん
2007/09/20(木) 11:40:37ID:???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そんな会社普通はすぐやめる。
webの会社でhpが表示されないとかありえない。
車売ってるくせにエンジン直せないのと同じこと。
0628nobodyさん
2007/09/20(木) 12:14:13ID:???新人1人しかいない時点でそりゃWebの会社じゃないだろ。
0629nobodyさん
2007/09/20(木) 12:40:38ID:IWhkcLGD0630nobodyさん
2007/09/20(木) 12:44:16ID:???くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/833
0631620
2007/09/20(木) 12:59:19ID:RRR2JFqmありがとうございます^^早速見てみますね
>627
会社はWeb系ではないです^^;
0633nobodyさん
2007/09/20(木) 13:59:56ID:KlmMrt1+POSTで取得したときに「ソ」や「表」に「\」が入りますよね。
これはどの時点での文字化けを防いでいるのでしょうか?
POSTで取得したデータを全てクオート解除しても大丈夫なのでしょうか?
0634nobodyさん
2007/09/20(木) 17:01:09ID:KlmMrt1+preg_replace_callbackってPHP5.0.4と5.1.1で動き違うんだけど
5.1.1でバグ発生してるとかないよな?
0636635
2007/09/20(木) 17:24:46ID:???php.iniっての作ってmagic_quotes_gpc = Off
で再起動だね、、憶えておくよ
0637nobodyさん
2007/09/20(木) 17:36:57ID:???0638nobodyさん
2007/09/20(木) 17:45:37ID:QNx3pq8z勝手に解決するな
ini_setで解決しないんだよ
0643nobodyさん
2007/09/20(木) 19:18:15ID:???0644nobodyさん
2007/09/20(木) 19:25:21ID:???0645nobodyさん
2007/09/20(木) 20:57:35ID:bTS/b7yb一応、DBにカテゴリ名、ID、親IDとして保存させてるんですけど
表示させるときにどのようにしたらいいのかわからないのですが
どのようにしたらできますか?
0646nobodyさん
2007/09/20(木) 21:00:30ID:???0647645
2007/09/20(木) 21:05:10ID:bTS/b7yb探して・・ってやってるんですがすべてのノード表示させるようにできないんです
いくらノードを追加してもすべてのノードを表示させる方法ってないですか?
0648nobodyさん
2007/09/20(木) 21:05:56ID:???0649645
2007/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:???0654645
2007/09/20(木) 21:47:26ID:bTS/b7yb$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:???0656645
2007/09/20(木) 21:53:25ID:bTS/b7ybそれがもっと多い階段まであった場合に、すごいソースになってしまうので
なんかwhileを使って出来ないかと思って考えてるんですがわからなくて
0658nobodyさん
2007/09/20(木) 21:57:52ID:???すごいソースで何が悪い。見た目なんか気にするな。
0659nobodyさん
2007/09/20(木) 21:58:29ID:???ttp://itpro.nikkeibp.co.jp/article/COLUMN/20070827/280408/?ST=oss
この辺読んで再チャレンジ
0660645
2007/09/20(木) 22:02:48ID:bTS/b7yb>>654
読んでみます
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:???0667nobodyさん
2007/09/21(金) 03:19:02ID:???0668nobodyさん
2007/09/21(金) 06:54:05ID:/lN3SBgsfputs($fp, implode("", $data));
$data = $data.$data2.$data3;
fputs($fp, $data);
どちらが負荷が低くなりますか?
0672nobodyさん
2007/09/21(金) 13:04:43ID:???0673nobodyさん
2007/09/21(金) 13:20:47ID:???0674nobodyさん
2007/09/21(金) 13:46:29ID:???0675nobodyさん
2007/09/21(金) 14:25:51ID:5JzPFtpGどうすればよいですか?
0677nobodyさん
2007/09/21(金) 14:41:31ID:QV6ADNltrequire_onceしただけでStrict Standardsエラーがたくさん出るのは何故?
エラーレベルを高くしてるから?
どなたかよろしくお願いします。
0678nobodyさん
2007/09/21(金) 14:49:28ID:fJKnQpQmだから俺はpear使わない。
error_repoting E_STRICT とかでぐぐればエラー出さない方法はわかるとおもうけど。
厳密にはエラーっていうかワーニングか、動くしな
ちなみにオブジェクトをリファレンス渡ししたり、クラスのオーバーロードすると出る
0680nobodyさん
2007/09/21(金) 14:56:05ID:QV6ADNltありがとうございます。
開発レベルではStrictで行いたいのですが、MDB2だけのエラーを非表示にできないんですか?
あるいはリファレンス渡ししない方法などはないのでしょうか。
0681nobodyさん
2007/09/21(金) 14:59:59ID:5JzPFtpGSimpleXMLの場合での取得方法がわからないんです。
<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でだとどうすればよいのですか?
0683nobodyさん
2007/09/21(金) 15:12:23ID:5JzPFtpGすんません、初心者でXMLのデータ処理をするのが初めてなので
取得方法自体がわからないんです。
どう書けばよいの?
0684nobodyさん
2007/09/21(金) 15:12:57ID:fJKnQpQmpearの
$a =& new ex();
って書き方の「=&」ここの部分を全部「=」に直せば問題は解決さ、どれくらいあるかわからないけどw
もしくはpearモジュル使う部分のファイルにだけerror_reporting(E_ALL);とか書いておけばいいんじゃねーの?
0685nobodyさん
2007/09/21(金) 15:19:00ID:QV6ADNlt後者の方法で頑張ります^^;
ありがとうございます。
0688nobodyさん
2007/09/21(金) 15:52:51ID:???単純に =& が問題なわけじゃないから全部置換するのはどうかと思うだよね〜
オブジェクトのリファレンス参照時のみ限定だから、それ以外は置換しないほうがいいし
じゃあ、 =& new のとこ置換すればすむのかな・・・
0689nobodyさん
2007/09/21(金) 15:52:52ID:oG3isgYAでファイルを読み込み・上書き(更新・一行削除)をしているのですが
上書き前のデータより小さいデータを保存する際最終部にごみがつき
困っています
保存直前にtrimしたりもしましたがだめでした。
このごみを何とかする方法を教えてもらえませんか?
0691nobodyさん
2007/09/21(金) 16:03:10ID:???ごみって何だよ、具体的に書け。そんなんでわかったらエスパーだっつーの
あと、環境と文字コードも書け
あとfputs使ってるんだと思うがそこのコードと書き込む内容生成してるとこも書け。
0692689
2007/09/21(金) 16:04:48ID:oG3isgYA0693nobodyさん
2007/09/21(金) 16:13:44ID:???0694nobodyさん
2007/09/21(金) 16:36:47ID:OocRHBzD0695nobodyさん
2007/09/21(金) 16:44:30ID:???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:???ここ数日中に色々なところで
phpBBでrss配信したいんだゴルァ
ってのがマルチされてるけど、それじゃないなら答えない事もない
0697nobodyさん
2007/09/21(金) 16:54:42ID:OocRHBzDマルチなんですけどよかったら教えてください。どこいっても反応がないんですよね。
0699nobodyさん
2007/09/21(金) 17:10:36ID:OocRHBzDどうもありがとうございます。
そういうスクリプトをつくれないので、出来合いでなにか
そういうものがないかなと探しているのですが、どうもしっくりくるものが
ありません。どこかそういうスクリプトを公開してるサイトなどないもので
しょうか?
0701nobodyさん
2007/09/21(金) 17:21:40ID:OocRHBzDカスなのでつくれません。すいません。
0704nobodyさん
2007/09/21(金) 20:47:15ID:???これ、お前の母親だろ
近所の住民を「殺すぞ」などと脅したとして、大阪府警吹田署は20日までに、
暴力行為等処罰法違反の疑いで、吹田市片山町、主婦井手真知子容疑者(49)を逮捕した。
嫌がらせは15年ほど前から続き、引っ越した住民もいたという。
井手容疑者は「わたしが被害者だ」と容疑を否認している。
調べでは、井手容疑者は8月25日から9月2日にかけ、近所の男女3人に対し、家の壁をたたいたり、「なめとんのか。殺すぞ」などと脅したりした疑い。
0705nobodyさん
2007/09/21(金) 20:48:03ID:???0706nobodyさん
2007/09/21(金) 22:14:49ID:QV6ADNltCall 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関数は実行されてるみたいなんです。
どなたかよろしくお願いします。
0708706
2007/09/21(金) 22:20:19ID:QV6ADNltPEARのマニュアルを主に参考にしましたが、理解不足のようです。
0710706
2007/09/21(金) 22:34:10ID:QV6ADNltGoogleにおいて"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例えば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:???0713nobodyさん
2007/09/21(金) 23:22:41ID:QV6ADNltPHPからのデータをデータベースに格納するとき、文字化けしてしまいます。
php.iniのenternal_encodingはutf-8、mysqlのdefault-charsetはutf8、データベースの照合順序はutf8_general_ciとなっています。
この解決方法として、データベースに格納するときに、
SET NAMES utf-8;
というクエリを発行すると良いということが分かったのですが、そのほかに方法はありますか?
よろしくお願いします。
0714nobodyさん
2007/09/21(金) 23:25:36ID:???FWなんかだと回避方法が色々あるかもしれんが
べた書きでSQLのバージョンがいくつか忘れたがある以上のバージョンだとそれしかない。
0715nobodyさん
2007/09/21(金) 23:39:38ID:???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ありがとうございます。
文字コード問題、難しいですね。
とりあえず今は開発段階なので、自分のサーバのMySQLの[mysqld]のところに、
skip-character-set-client-handshake
を記述して一時退避と思います。
0717nobodyさん
2007/09/22(土) 06:08:18ID:+WbXSWsdhttp://example.com/ほげほげ/でアクセスした場合、mod_rewriteで?wd=ほげほげにして渡したいのですがこれをすると500エラーになります。
文字コードの影響かと思いmb_convertしてみましたが変わりありません。
どんな方法がありますでしょうか?
0718nobodyさん
2007/09/22(土) 06:46:17ID:???0719nobodyさん
2007/09/22(土) 07:12:11ID:???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/rJVSv70721nobodyさん
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/rJVSv70727nobodyさん
2007/09/22(土) 09:16:45ID:???0728nobodyさん
2007/09/22(土) 09:19:09ID:???0729nobodyさん
2007/09/22(土) 09:26:47ID:???fputs で HTTP/1.1 使ってるのが原因でした。
HTTP/1.0 にして解決しました。ありがとうございました。
0732nobodyさん
2007/09/22(土) 14:32:49ID:RkVrJ9bm私のサイトのすぐ下に、私のサイトを全部ひらがなに変換しただけの他人のサイトがヒットしました
私は広告が嫌いなので、
広告掲載依頼が来ても全部断るようにしてきました
しかし、私のサイトをひらがなに変換しただけのサイトは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:???0734733
2007/09/22(土) 14:36:28ID:???0737nobodyさん
2007/09/22(土) 16:34:13ID:xEVbhTq3こういうのって法的にはどうなんだろうね。
当事者じゃないからどうでもいいけど気にはなる。
とりあえず、
っttp://www.houterasu.or.jp/
無料で相談できるから、やってみれば?
0738nobodyさん
2007/09/22(土) 16:39:01ID:???これが違法ならGoogleとかのキャッシュや
WEB翻訳サービスも違法になるんじゃないか?
当事者同士で話し合うしか無いと思う。
そのサイトからのアクセスをはじけばいいだけのような気も
0739nobodyさん
2007/09/22(土) 16:44:36ID:6iih+fTYどうすればうまく出力されますか?
<?php
$str=<<<XHTML
//XHTMLの記述
XHTML;
echo $str;
?>
ではだめで、単にファイル名を.xmlとして記述すると
今度はPHPが読み込まれません。
サーバーのMIMEタイプとかの問題なんでしょうか?
0740nobodyさん
2007/09/22(土) 17:08:00ID:???>サーバーのMIMEタイプとかの問題なんでしょうか?
どちらかというと、雅子が男子を産もうとしない方の問題。
0741nobodyさん
2007/09/22(土) 18:04:34ID:???任意の文字列を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そうですか('A`)ありがとうございます
ではsplitした要素の片方だけを 変数に格納せず そのまま取り出すことは可能でしょうか
perlだと
split('/', hoge, 2)[1]
みたいなことが出来たんですが phpはできないみたいで・・
0744nobodyさん
2007/09/22(土) 20:23:24ID:???0745717
2007/09/22(土) 20:49:14ID:+WbXSWsdwikipediaではURLに日本語が入っているのですがこんなことをxreaでできますでしょうか?
http://example.com/ほげほげ
これを内部的にswitchで読み込むHTMLを変換して表示させたいのです。
mod_rewriteで/以下を?id=に
switch($_GET['id']) {
case 'ほげほげ':
readfile(hogehoge.html);
break;
・・・・
}
0749nobodyさん
2007/09/22(土) 22:13:23ID:???phpは配列にしたら一度変数に格納しないとエラーになるですよ
だから他の言語みたくsplit(....)[0]と一回で出来ないのが難点
0751nobodyさん
2007/09/22(土) 22:24:12ID:???他の言語っつーか、そんなことできるPerlの方が言語としては気持ち悪いんだけどな。
PHPの仕様はごくごく普通ですよ。
0753nobodyさん
2007/09/22(土) 23:00:01ID:???0754nobodyさん
2007/09/22(土) 23:04:16ID:???safenameっていう関数か変数か知らないですけど、ありますか?
あ あ あ
だと
あ_あ_あ
になるみたいなんですが
他のスクリプトでも使ってみようと思い試したら
Fatal errorが出ました><
ごきようじゅ下さい お願いします><
0755nobodyさん
2007/09/22(土) 23:13:15ID:???0756nobodyさん
2007/09/22(土) 23:13:31ID:???0758754
2007/09/22(土) 23:17:50ID:JPmP1x2o↑
読み方しりません><
0759nobodyさん
2007/09/22(土) 23:22:18ID:???0760nobodyさん
2007/09/22(土) 23:43:27ID:???0762nobodyさん
2007/09/23(日) 10:48:42ID:8QFSYDARclass A
{
public $a = 'hoge';
}
$b = ○○○; // Aの$aを取得したい
0763nobodyさん
2007/09/23(日) 12:09:09ID:???publicって書いてるって事はphp5として考えるけど
5ならconstにするかメソッド作ってカプセル化すればいいのに
0764762
2007/09/23(日) 12:13:07ID:8QFSYDARご回答ありがとうございます。
Aが変数(AだったりBだったり)なので、class_get_varsした後に取り出しました。
0765nobodyさん
2007/09/23(日) 12:14:54ID:???echo A::$a; ~~~~~
0766nobodyさん
2007/09/23(日) 12:17:54ID:???http://php.benscom.com/manual/ja/language.oop5.static.php
0767nobodyさん
2007/09/23(日) 13:22:33ID:ByDzcAVcecho "正解";
}
これ書き方あってますよね?
===を使う場合、trueを"で囲むと文字列になるから
囲まないで書くべきですよね?
0768nobodyさん
2007/09/23(日) 13:30:20ID:???== は、値(暗黙の変換含む)の一致で true になる
=== は、値と型両方が一致した場合のみ true になる
$a = 1;
if ($a == true) // 暗黙の変換により true になる
if ($a === true) // intとboolで型が違う為 false になる
0769nobodyさん
2007/09/23(日) 13:38:01ID:x8KAGuvr0771nobodyさん
2007/09/23(日) 13:47:13ID:???0772743
2007/09/23(日) 14:26:13ID:???言えてる
javaとperlがメインだったけど perlは相当気持ち悪い でも適当でもOKだから仕事以外で便利
phpも相当気持ち悪いが どうせ気持ち悪いならperl並に徹底してくれないと困る
0774nobodyさん
2007/09/23(日) 15:25:01ID:???だから.=は+=とおんなじ意味
$str = "hoge";
$str .= "huga";
echo $str;
hogehuga
0775nobodyさん
2007/09/23(日) 16:23:22ID:giEVgmm5どうやったらenableになるのかわからなくて気持ち悪い・・・
0776nobodyさん
2007/09/23(日) 16:36:28ID:???queryAll等の結果セットをfree()で解放してあげましょうとなっています。
queryAllをした直後に結果セットの内容を使うのであれば、すぐにfree()してしまえば
良いと思うんだけど、その結果セットをその後の処理でも使いまわす場合は、どうするのが
一番良いのでしょうか?
今考えてるのは、結果セットを新しく作った配列にコピー後に、結果セットはfree()してしまおうかと
思っているのですが、何となく無駄な事をやってる気がして・・・。
0779775
2007/09/23(日) 17:42:36ID:giEVgmm5スマン、書き込む前に必死にググッたりマニュアル読んでみたり
関連リンク回ったりしてみたんだが見つからなかったんだ。
もう少し調べてみるわ。ありがとう。
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レスありがとうございます。
形態素解析も考えたのですが、今回は文法レベルで単語分けをする必要がなく、
又英語などや記号も混じってしまうので、機械的に複数変数の共通部分の文字列のみを
取得したいと思っています。
言葉足らずですみません。引き続きよろしくお願いします。
0783nobodyさん
2007/09/23(日) 18:11:05ID:???0784nobodyさん
2007/09/23(日) 18:13:29ID:CMYUgsUj0785nobodyさん
2007/09/23(日) 20:24:31ID:???0786nobodyさん
2007/09/23(日) 22:59:17ID:d1xYr/ljperlのtruncateに該当するphpの関数ってありますか?
0787nobodyさん
2007/09/23(日) 23:04:55ID:???0788nobodyさん
2007/09/23(日) 23:09:14ID:???答える気が無いなら、書き込まなきゃいいのに。
0792nobodyさん
2007/09/23(日) 23:49:44ID:mTLKY/f7初歩的な質問で申し訳ないのですが、どなたかご教示願えませんか?
よろくしお願いします。
______________________
| 一段目 | td一 | td二 | td三 | td四 | td五 |
| 二段目 | td六 | td七 | td八 | td九 | td十 |
| 三段目 | td一 | td二 | td三 | td四 | td五 |
| 四段目 | td六 | td七 | td八 | td九 | td十 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0795nobodyさん
2007/09/23(日) 23:59:57ID:???くだ質だからなんでも質問すりゃいいって、どんだけユトリなのよ
0796nobodyさん
2007/09/24(月) 00:24:55ID:JxEty0kG編集してて遅くなりました。ごめんなさい
こう書いたんですがこれじゃ駄目ですよね…
>>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>";
0798nobodyさん
2007/09/24(月) 00:56:56ID:Wq/5iUlOforeach ($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>";
0801nobodyさん
2007/09/24(月) 01:30:21ID:???これって
$table[一段目], $table[0], …$table[二段目], $table[4], …
こういう配列になるわけだろ?何が嬉しいのかわかんない
0802796
2007/09/24(月) 01:55:21ID:JxEty0kGできました!
何が嬉しいのかと言われたら確かにその通りですが(;´Д`)
ありがとうございました。
0803798
2007/09/24(月) 02:10:26ID:Wq/5iUlO上の方で言われてるようにその配列は使い勝手が悪いです。
柔軟性に欠けますから工夫が必要です。
頑張ってください。
0804nobodyさん
2007/09/24(月) 03:46:09ID:???> $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:???その構造なら条件分岐がいらないね
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");
0808nobodyさん
2007/09/24(月) 12:43:32ID:aGF/5enb"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:???そもそも配列の要素数が行毎に異なるなんてのは考えたくないけど。
つじつま合わせの補完計画。
$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:3GSML6xRif (is_array($vals)){
array_map(array($this,'valsclear'),&$vals);
}else{
$vals = '';
}
値だけを消去したいのですが、どうしたら良いでしょうか?
0813nobodyさん
2007/09/24(月) 14:45:48ID:HSprOhmPPHPの記述・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:???0815nobodyさん
2007/09/24(月) 15:38:02ID:???なんでだろ。
PHPのソース見れば分かるんだろうけど。
0816813
2007/09/24(月) 15:47:27ID:/07n7WU2ありがとうございます、ちゃんと表示されました。
autoは万能じゃないて事ですかね。
0818nobodyさん
2007/09/24(月) 16:30:12ID:???これ、本当に動いてますか? 怖くて手を着けたくないっす。
>>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プロパティにアクセスするにはどうすればよいでしょうか?
0821nobodyさん
2007/09/24(月) 17:09:15ID:9opMSOGn0822nobodyさん
2007/09/24(月) 19:36:00ID:???どうしたってセレクトのアイテム数分ループさせて比較しなきゃいけないんだから、それ以上工数は減らせないでしょう。
ただ見た目的にシンプルかつ柔軟な関数にするだけでいいならこんなんでいかかでしょうか?
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が入っているという前提になってます)
0824nobodyさん
2007/09/24(月) 19:50:39ID:???Javascript前提なら、PHPでは比較しないでループで書き出すのみにして
onloadでJavascriptに比較させてもいいんだけどね。
普通はやらんねw
0825nobodyさん
2007/09/24(月) 19:54:06ID:???基本的には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:???空文字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ほかのクラスで上記クラスをインスタンス化して保持します。
このインスタンス変数をinstanceとした場合、DBの接続を切るには、
instance -> __destruct() と記述すればいいのでしょうか?
0829nobodyさん
2007/09/24(月) 23:11:07ID:???デストラクタはインスタンスが破棄される時に自動実行される。
$instance->__destruct()とした場合、デストラクタは実行されるが、インスタンスは破棄されておらず、
インスタンスが破棄される時(関数を抜ける時や実行終了時)にもデストラクタが二重実行されてしまう。
明示的に変数を破棄する場合はunset($instance)を使う。
但し、unset($this)といった様にインスタンスが自身を破棄することは出来ないので注意されたし。
0830nobodyさん
2007/09/24(月) 23:57:32ID:JlRJpJ4Mどうもありがとうございました。
Smartyを使ってMVCに基づいたプログラミングをしてます。
Controlはポストデータ受け、Modelのインスタンス生成、戻り値(ResultSet)のsmarty->assignセット、Viewであるテンプレートコール。
ModelはSQLの実行など。
Smartyクラスを継承したサブクラスを作り、そのconstructでMySQLやDBへの接続をしてます。
DBの切断をどこでやるか迷っていたのです。
いろいろあると思いますがなかなか設計が・・・
0831nobodyさん
2007/09/25(火) 00:00:45ID:8D5Ec5Bn0832nobodyさん
2007/09/25(火) 00:10:05ID:ibGZ3o0m0833nobodyさん
2007/09/25(火) 00:21:07ID:???Smartyの派生クラスでDB接続って、MVCがごっちゃになりそうなもんだが。
0834nobodyさん
2007/09/25(火) 00:45:59ID:ibGZ3o0mそうですね。
DB接続用のクラスを作ってSmartyクラスの派生とは分離させてみます。
ありがとうございました。
0835nobodyさん
2007/09/25(火) 14:56:33ID:RlJd1MSD↑
こういうことやりたいのですが
これだと$hoge関係なしにそのままインクルードされてしまいます
実現方法を教えてください
0837nobodyさん
2007/09/25(火) 15:07:19ID:RlJd1MSDありがとうございます。わかりました
GETのやりかたをGOOGLEで検索してみます
0838nobodyさん
2007/09/25(火) 15:12:10ID:???多分でしかないけど
ob_start();
include("hoge/hoge.php");
$obj = ob_get_clean();
0839nobodyさん
2007/09/25(火) 15:20:55ID:???return <<<EOF
なんたらかんたら
EOF;
--- 読み元.php ---
if ($contents = @include('hoge.php')) {
echo $contents;
} else {
echo 'hoge.phpがねーぞ';
}
0840nobodyさん
2007/09/25(火) 15:33:42ID:RlJd1MSDありがとうございます できました
>>839
ありがとうございます コードを保存しました こんどやってみますね
0841nobodyさん
2007/09/25(火) 16:25:55ID:QDhH7pTbログインしてカレント移動までは正常にいくのですいが、ファイルのアップロードがうまくいきません。
まったくうまくいかないのかというとそうではなくて、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:???0844nobodyさん
2007/09/25(火) 18:07:39ID:Bc2ZA9JHこれさ元からあるフィルタ以外に拡張したい場合、
FILTER_CALLBACKしか無い感じですか?
新しいフィルタ定義して呼び出すとか無理っぽい?
それでもfilter_listやfilter_idが存在するのは
ソースコード書き換えてPHPからコンパイルし直せつうこと?
0845nobodyさん
2007/09/25(火) 18:14:45ID:9q66wLmdサイトを教えてください。
0846nobodyさん
2007/09/25(火) 18:26:04ID:???filter_id は ext/filter/filter_private.h にあるC的にスタティックなID番号を示すぽいので、
スクリプト実行時に動的に増やすのはcallback以外ムリじゃないかな。
0847nobodyさん
2007/09/25(火) 19:09:20ID:???number_format($str,2)だと「100」「50」となってしまいます。
何か方法無い物でしょうか?
出力はSmartyを通してます
0851841
2007/09/25(火) 20:34:09ID:xfKDGXzl追加情報
A鯖からftpコマンドでは正常にやり取りできます。
会社のTurboLinux10サーバーからA鯖である自宅のCentOS5へ向けて
さっきのスクリプトを走らせると正常に処理が完了します。
A鯖から外部へ向けて走らせるとまったくだめです。
会社のTL10S、ローカルWindowsのFTP鯖、ジオシティーズすべてだめでした。
シェルからFTPコマンドではすべて正常に処理できました。
phpinfoで再度確認してみましたが ftp enable となっており使える設定のはずですが。。。
Apache2.x自体 yum にてインストールしました。
スクリプトではなくA鯖に問題があるのでしょうか?
0852841
2007/09/25(火) 20:41:52ID:xfKDGXzl失礼しました、自己解決しました。
A鯖のiptablesの設定ミスをしていました。
ありがとうございました。
0853nobodyさん
2007/09/25(火) 20:52:40ID:???CGIのように設定する必要はないのでしょうか。
0854853
2007/09/25(火) 21:00:48ID:???0856nobodyさん
2007/09/25(火) 21:38:42ID:Wp8RlZHhある一定の作業だけアセンブリで書きたいのですが。
0857nobodyさん
2007/09/25(火) 21:40:17ID:???0858nobodyさん
2007/09/25(火) 21:46:19ID:???オレから言わせれば、欺瞞でありアイデンティティーの欠如に他ならない。
0859nobodyさん
2007/09/25(火) 21:57:23ID:???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:???0862860
2007/09/25(火) 22:14:56ID:259tGTbD説明下手くそですんません。
失敗しているのはおそらくここっす。
$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:???0864860
2007/09/25(火) 22:19:26ID:259tGTbD何にも書かれていないのです(涙)
ちなみにファイルはw+でオープンしています。
(つまりファイルオープンはエラーじゃないと頭悪いなりに考えをめぐらせて見ました)
ということは$rsに何にも入っていないか、fputsが失敗しているかのどっちかかなと。
0865nobodyさん
2007/09/25(火) 22:21:14ID:???0866860
2007/09/25(火) 22:25:38ID:259tGTbD一応ここには決まったStringしかプログラムが返さないようになっているので平気かと。
しかも、1回目はうまくいくんですよ〜。
ヒントだけでもいいんでお願いします〜〜。
0867nobodyさん
2007/09/25(火) 22:29:41ID:???0868nobodyさん
2007/09/25(火) 22:29:51ID:???0869860
2007/09/25(火) 22:31:47ID:259tGTbD今はLocalでテストなんで平気ですけど、最終的にはかならず切り分けしてチェックを通ったものだけを
実行するようにいたします。
0870nobodyさん
2007/09/25(火) 22:39:05ID:???リロった時に入ってないとかってオチかもしれんよ
0871860
2007/09/25(火) 22:48:49ID:259tGTbD直で値、書き込んだらなぜか動作しないっす。
ただし、同じものをコピペしてQueryBrowserで実行するとなぜかきっちり実行される。
これってどういうことなんですかね。
本当にアホな質問なんでしょうがよろしくお願いします。。。
0873860
2007/09/25(火) 23:05:27ID:259tGTbD俺もFunc_Queryってなんだろうって思って確認したら
function Func_Query($strSQL){
$rs=mysql_query($strSQL);
return $rs;
}
って書いてありますたorz
ちなみに今回はmysql_queryでやってもまったく同じ結果ですね。
もしかして日本語を代入してるのがまずいんでしょうかね?
0875856
2007/09/25(火) 23:12:14ID:Wp8RlZHhレスありがとうございます。
仰るとおりCの様にインラインで書きたかったのですが無理なのですね。
参考になりました。どうもありがとうございます。
0876860
2007/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:???0884nobodyさん
2007/09/26(水) 06:06:53ID:VlwtrPtdPHPで他の言語が使える?ってこと?
初心者丸出しですみませんorz
0885nobodyさん
2007/09/26(水) 09:23:15ID:???バッククォートで囲む=外部コマンドとして実行する。
その場でアセンブルして実行ファイルを生成して、即実行しちゃえ、ってことでしょ。
他の言語が使えることは使えるけど、むっちゃ遅いのであんまり使い道は無い。
すでに開発済みのPerlスクリプトに一部処理を任せる、みたいな目的なら可。
0886nobodyさん
2007/09/26(水) 09:43:39ID:???0887nobodyさん
2007/09/26(水) 10:46:54ID:QWy2Zkw00890nobodyさん
2007/09/26(水) 13:16:02ID:???0891nobodyさん
2007/09/26(水) 16:38:40ID:4b9p4uCs<?php
echo "a";
?>
というhoge.phpをau携帯(W31SA)から見たら
「リクエストされたページは表示できません。」
と返されたのだが、何が問題でしょう??
0892nobodyさん
2007/09/26(水) 16:48:20ID:???0895nobodyさん
2007/09/26(水) 17:33:42ID:Mqjw2ZGS基礎の基礎の基礎だと、テキストに「a」とだけ書けば表示されるんだけど?
htmlになってしかも携帯だから表示しないだけで。
0899nobodyさん
2007/09/26(水) 17:43:56ID:???特にauはHTML以外でもページ構成できるわけで。
0904nobodyさん
2007/09/26(水) 17:55:30ID:???>>891をつくってやってみたらドコモは表示できたw
こういうのって質問する前に自分で試したほうが早いと思うんだけどねー
>>902
あうはWML(笑)だよなー
0905nobodyさん
2007/09/26(水) 18:03:11ID:???方法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:bO9sGA13MDB2さわってみたけど、資料やエラー報告が少なくて見送ろうと思うんだけど・・・
0907nobodyさん
2007/09/26(水) 18:23:28ID:???なかったらコードが乗ってるサイトしりませんか?
自分でちょっとがんばってみたんですが・・・
バカなんで・・・無理でした・・
0908nobodyさん
2007/09/26(水) 18:27:02ID:???>>906
Pear
PDO
0911906
2007/09/26(水) 18:44:11ID:bO9sGA13ありがとうございます。
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:F6zSEDUtphp://stdin
0915891
2007/09/26(水) 19:33:54ID:4b9p4uCsなるへそ、そういうことか。さんくす。
でもおかしくね?誰だよこんな仕様にしたのww
0916nobodyさん
2007/09/26(水) 19:56:45ID:???それともSQLは数字だけでPHP側で処理してます?
0917nobodyさん
2007/09/26(水) 20:02:22ID:???0918916
2007/09/26(水) 20:02:46ID:???LANケーブルぬいて回線きって首つtt(ry
0919nobodyさん
2007/09/26(水) 20:18:27ID:???auは複数のフォーマットをゲートウェイで変換表示するから
フォーマットを特定できない形式は扱えないんだよ。
0920nobodyさん
2007/09/26(水) 20:22:20ID:???0921nobodyさん
2007/09/26(水) 21:08:55ID:???0923nobodyさん
2007/09/26(水) 23:48:30ID:???あるファイルやディレクトリのロケーションのパスが
絶対パスで送られてきたものをpwd(現在のディレクトリ)に対しての相対パスに変換するようなものなんですけど
なにかありませんか?
先述がわかりづらくてすみません
0924nobodyさん
2007/09/27(木) 00:07:42ID:IFCMbMTaドメインをとっちゃえば相対パス完成じゃね
0925nobodyさん
2007/09/27(木) 00:13:57ID:???>>1って言われてるんだから>>1見ろよ
それと丸投げしないで自分でちょっと頑張ったとこまでソース乗せてみなよ
0927nobodyさん
2007/09/27(木) 00:57:37ID:???ちょっと考えればそこまで複雑じゃないアルゴリズムだとおもうが?
てかPHPでやらない方が簡単な領域な気がする。
0928nobodyさん
2007/09/27(木) 01:00:18ID:???0929nobodyさん
2007/09/27(木) 01:01:14ID:???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:???逸れた話はどうでもいいが。
0931nobodyさん
2007/09/27(木) 01:13:16ID:???近いとか近くないとか以前にアルゴニズムなんて言葉はねーよ。
なんだそれ、アルゴン(不働)理想主義者か?ニートになれと言ってるのか?
0932nobodyさん
2007/09/27(木) 01:14:51ID:???それ、何のために必要なの?
用途が分かれば最善策が何か出せるかもしれないが。
でもその前に>>1をちゃんと読んで自分の間違いを正そうな。
0933nobodyさん
2007/09/27(木) 01:15:47ID:???アルゴニズムでググるとけっこう間違えてるやつ居るみたいだから釣りじゃなくてマジなんだろうけど
googleもヤフーもアルゴリズムじゃありませんか?って訊いてくるな
0934nobodyさん
2007/09/27(木) 01:18:40ID:???他者と意思の疎通が出来るかは別だが。
正しい綴りと発音は、algorithmのみ。
0935nobodyさん
2007/09/27(木) 01:28:22ID:???相対から絶対にするよりは簡単だと思うけど、PHP以外ってシェルコマンド?
それよりはPHPの文字列置換使った方がまだ早そうだけど。
ルートから一致するとこまでを削除して、残った階層の分だけ「../」を付加すりゃいいんだろ?
0936nobodyさん
2007/09/27(木) 01:35:30ID:???Webアプリを作るにはまず必要ない作業だと思うが・・・
なんかローカルでファイル操作でもするんかね
0937nobodyさん
2007/09/27(木) 01:43:55ID:???それにしたって絶対パスのままでいいと思うがね。
用途があるとしたら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
0943887
2007/09/27(木) 08:51:49ID:2ULegsZCすみませんでした。
どのような判定基準でコーディングすればいいかということです。
HTMLタグで文を分割し、その中の句読点が多い文を本文として抽出しようとしてますが、
広告が多いサイトや個人ブログだと、本文以外の部分が抜き出されます。
他にどのような方法がありますか?
0944nobodyさん
2007/09/27(木) 09:00:33ID:???ブログだったらわざわざHTMLタグ解析しないでRSS,Atom使ったほうがいいっしょ。
ニュースサイトなら著作権違反だから辞めたほうがいいっしょ。
0945nobodyさん
2007/09/27(木) 09:17:46ID:???自分でテストしてみたソースのっける方が早いと思うよ
丸投げなら金払って作ってもらうかできなきゃやめたほうがいい
0946nobodyさん
2007/09/27(木) 09:45:58ID:???論点ずれてるな。
各HTMLタグに囲まれた文章の「どれが本文か」を判定するロジックを
考案しれ、と言ってるんだよ>>887は。
つか、ちょっと前にも同じような質問をしてたやつがいたが、基本的に
それは商品なら実用新案とか取れるだろう画期的アイデアの類なので
そもそも他人に聞くのがおかしいんだよ。
0947nobodyさん
2007/09/27(木) 10:17:50ID:???ちょwwww
<html>の中の<body>と</body>に囲まれいるところを正規表現で取れば終わりだろww
そんなもんが画期的アイデアって、どんだけお前の脳みそは空疎なんだよ。
ホント何も詰まってないじゃないの、脳みそ???
0949nobodyさん
2007/09/27(木) 10:43:59ID:???>>944の言うとおりBlogやニュースサイトは配信用に通常RSS等が用意されてるので、
SimpleXML等の関数を使って本文の部分だけ抜き出して表示すればいい。
最新の数件しかおそらく取得できないが。
RSSの中には本文を途中できっててパーマリンクを貼ってるだけのものもあるので、
そういうのにはこの方法は向いていないけど。
(続きを読むでhtmlにリンクされてるものもあるがそれは仕方がないとして)
なんにせよ求めてるものには完璧な方法はないよ。
広告がいやなんでしょ?
ページごとにhtmlを読み込んで、広告のhtml部分を置き換える方法もあるけど、
やるにしても、全てのページが同じ構成でない限り全て対応するなんて不可能だし。
広告がGoogle AdsenseならJavaScriptをきったブラウザで見ればいいんじゃない?
ニュースサイトの著作権については簡易RSSリーダーとして個人利用なら問題ないと思う。
一般公開する時も、広告のはってあるサイトはまずいけど管理人に金銭が絡まないサイトなら平気なんじゃないかな?
普通は見出しだけ貼り付けて、2.3行引用して続きを読むでリンクするのが一般的だと思う。
ニュースサイトなんかで提携先の新聞社とかにリンクするときはその形だよね。
0951nobodyさん
2007/09/27(木) 11:52:41ID:aINn7Cduこの場合、まず勉強しないといけないのは日本語だと思う
0952nobodyさん
2007/09/27(木) 12:29:26ID:???ニュースサイトだとある程度構成がきまってるからわりと可能性あるけど
個人ブログのどこにニュースがあるかなんて書き手次第なんだから
そんなの人間か人工頭脳でない限りプログラムでは判断できんでしょ。
ニュースサイトや個人ブログのURLもなければなんの情報もない状態
のもんだから<body>〜</body>をpreg_***で取得、というぐらいしかないんじゃないか?
HTML勉強とか日本語勉強とか見当はずれも(ry
0953nobodyさん
2007/09/27(木) 12:55:21ID:???肝心要の情報と雑音を選り分ける手法が決まってないのに
コーディングはどうのと聞いてるんだぜ?
こういう輩が出来ることといったら、せいぜい他人のコードを
丸写しして「できました!」とか、さも自分が頑張って実現した
かのように振舞うことくらい(おまえは何もしてないだろうて)
あー、なんか先が見えてきちゃうよ
0954nobodyさん
2007/09/27(木) 13:00:36ID:???0955nobodyさん
2007/09/27(木) 15:09:01ID:???だから>>877の質問は「万能な本文抽出のアルゴリズム教えれ」って質問なんだっつの。
ド素人でそれがどれほど難しい技術なのかも理解してないだけだろ。
それに対しての回答は一言「無理」で終わりでいいじゃん。
「BODYの中身全部表示しろ」とか手法を聞いてるやつに「手法も決まってないのに」とかアホかと。
ところで確か、ちょっと前に質問してきたやつも「句読点をカウント」とか書いてたけど同一人物かね?
0957nobodyさん
2007/09/27(木) 15:18:25ID:???禿同。
>>887は>>889に注意されてから
改めてした質問が>>943だもんな・・・
せめてブログだったら、どこのブログの
htmlソース内のこのタグの部分が欲しいとか
そのためのphpのソースをここまで書いたとか言えよ。
そうすれば、ここにいる皆も具体的にアドバイス
できるのに、>>943みたいなアホな質問のせいで
実用新案とか人工知能とかすっとんきょうな
言葉が出てくる。
質問もろくにできないコミュニケーション能力のない
馬鹿は何をやっても無駄無駄。
もう、こんな香具師はスルーでいいよ
0958nobodyさん
2007/09/27(木) 19:12:03ID:???「未認証状態で、認証が必要なディレクトリ内のA.htmlにアクセスした場合、一旦ログインページにリダイレクトし、認証完了後に再度目的のページA.htmlにリダイレクトさせたい。」
要するに、ログイン前にアクセスしたページに戻したい、ということなんですが、
「A.html」という情報をどういう風に持ち回すのが常套手段でしょうか?単純にクッキーなんかでやるんでしょうか。
そもそも、認証が必要なページそれぞれの頭で、new Auth()してgetAuth()で認証済みか確認する、という認識で正しいでしょうか?
0959nobodyさん
2007/09/27(木) 23:15:40ID:dB1cM3ii0960nobodyさん
2007/09/27(木) 23:24:30ID:???0962nobodyさん
2007/09/28(金) 00:44:23ID:???これだと負荷は高いでしょうか?
1000ぐらいなら大したことはないかな?
0963nobodyさん
2007/09/28(金) 00:47:34ID:???0964nobodyさん
2007/09/28(金) 01:26:39ID:Ju5H8hfj$test = 1300 % 152.5;
結果 84
//JavaScript
test = 1300 % 152.5;
結果 80
この違いってどうにかなんないのでしょうか
0965nobodyさん
2007/09/28(金) 01:35:51ID:???俺だったら面倒くさいからログインページにLocationするときにGETでページ名を渡しちゃうかなぁ…
あえて隠さなきゃいけないような情報でもない気がするし。
各ページでの認証確認はどこまでPHP::Authの機能を利用したいのか…
有効期限判定とかを利用したいなら各ページgetAuth()で判定すべきだと思うけど、
特に条件とか無いんならセッションにログイン中とか格納してそれ判定するのもアリかと。
0967nobodyさん
2007/09/28(金) 02:02:34ID:???うお!!!ありがとうございます!
これだと小数点以下の時もきちんと計算してくれる(ぐぐってみました)ようですね!
大変助かりました!
0968nobodyさん
2007/09/28(金) 08:59:19ID:C1fO/C390969nobodyさん
2007/09/28(金) 09:22:00ID:???mysql_queryのまぬある見てみ
はっきり詳しく書いてあったぞ
追記すると、MySQL関係のエラーが出てもPHPでは吐き出してくれないので
mysql_error()を使うことをおぬぬめする
0971nobodyさん
2007/09/28(金) 11:13:39ID:mmYDhnMNどちらのメソッドでリクエストがきたかを調べる方法ありませんか?
ただたんにif ($_POST)とやってみたのですがどうもそれだとできないようで。
アップローダみたいのを作っていて、POSTでアップロードしてGETで削除するんですけど、
POSTしたときに値のチェックやらをしているので、
GETで削除するときにPOSTで行う値のチェックがはいってしまって、
余計なエラーが出てしまうという現象に・・・
自分のロジックが悪いのはわかっているのですが自分の力じゃまだうまく作ることができないので、
とりあえずごまかしでPOSTかGETで受け取ったかのチェックを入れたいと思ってます。
0972nobodyさん
2007/09/28(金) 11:23:25ID:???0974ニュー速+より
2007/09/28(金) 17:21:01ID:C4xfMcX2日本全国各地、色んな掲示板で《加害者達の悪事を晒し、協力要請しよう!》
被害者の無念を晴らせ!【神戸滝川高校3年いじめ自殺のまとめサイト】http://rere.client.jp/
0975nobodyさん
2007/09/28(金) 22:52:42ID:+eamzCjp1. jsonが標準で組み込まれるようになったとのことですが、json.phpはどこにinstallされてるのでしょうか?
(MacOSXの場合)
2. 最近アップデートをさぼってたら、素直にinstallできなくなりました。
(MacOSX10.4+php5.2.1が現在の環境)
どうやらGDあたりでインストールが止まる様子。
どなたか解決方法ご存知でしたらお願いいたします。
0976nobodyさん
2007/09/29(土) 06:11:14ID:???1) > PHP 5.2.0 以降、JSON 拡張モジュールはデフォルトで PHP に組み込まれます。
というわけでデフォでは入っていない。
2) 5.2.1だったかな。MacOS Xではパッチを当てないとインストール出来ない時があった。
5.2.4は特に何もせずmake出来たし、使えているよ。
0977nobodyさん
2007/09/29(土) 09:46:56ID:???0979nobodyさん
2007/09/29(土) 09:57:50ID:???0982nobodyさん
2007/09/29(土) 11:59:26ID:???どういうスクリプトが必要ですかね?
TOPページとかだけでもいいんですが
0983nobodyさん
2007/09/29(土) 12:11:04ID:???あれってsystem()関数使ってコマンド送ってユーザの登録とかしているんですかね?
でもそしたらWebサーバはLinux系だとrootユーザで動かさなきゃいけないし、system()関数をONにしているっていうだけでセキュリティ的に不安な部分があるんですが・・・・。
エロい人、どうやってるか教えてくだしあ
0984nobodyさん
2007/09/29(土) 12:24:00ID:???0985nobodyさん
2007/09/29(土) 12:29:59ID:EESSDSHoそんなこと言わずに教えてくだしあ偉い人
0986nobodyさん
2007/09/29(土) 12:39:43ID:???やり方は千差万別
そういう方法も当然1つとしてあるだろう
自分がやるとしたらDBにいれるまでの作業しかPHPでは行わないが
>system()関数をONにしているっていうだけでセキュリティ的に不安な部分があるんですが・・・・。
これはちょっと誤解
0987nobodyさん
2007/09/29(土) 13:42:33ID:EESSDSHoんー、色々あるんですか。
>自分がやるとしたらDBにいれるまでの作業しかPHPでは行わないが
これちょっと気になるので調べてみまつ
>>system()関数をONにしているっていうだけでセキュリティ的に不安な部分があるんですが・・・・。
>これはちょっと誤解
例えばアップロードしたPHPファイルが
<?php
system('cat /etc/passwd');
?>
とかだったらpasswdファイル内のユーザと暗号化されたパスワードが表示されちゃいますよね。
そしたら・・・・・(ガクブル
とりあえず色々な方法を探してみます。
ありがとうございました
0988nobodyさん
2007/09/29(土) 15:09:47ID:???いやだから誤解。
必ずしもsystem()を許可しなくても同様のことは実現できるし、
登録システムでsystem()を使用してるからといって
ユーザも許可されてるとは限らない。
その辺はやりようはいくつもある。
もちろん、全然ダメなとこもあると思う。
試しに登録して自分で内情を確認してみれば?
0989nobodyさん
2007/09/29(土) 15:14:34ID:???あとはcronで実行されるroot権限のバッチスクリプトに
ユーザ環境の作成処理をやらせる手があるね。
cronでの監視を1分おきとかにしとけばほぼ即時で処理できる。
リアルタイムにこだわるなら受付プログラムを常駐させておく手もある。
0990nobodyさん
2007/09/29(土) 15:16:49ID:???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...
って出たまま止まってます(><)
どうすればいいですか?
0992nobodyさん
2007/09/29(土) 15:25:53ID:???レン鯖に限らずとも、blogサイトなどで登録するとサブドメでアカウントもらえるような処理にしたって
裏でDNSの更新やらcronでの処理やらで色々rootで動かすね
rootで動かすスクリプトとかsystem関数使ったりすると、Webプログラムの域を超えてるというか
なんかちょっと不安な気持ちになる時期が俺もありましたw
0994nobodyさん
2007/09/29(土) 16:48:35ID:???0995nobodyさん
2007/09/29(土) 17:08:06ID:???インターフェース部分の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:???0998nobodyさん
2007/09/29(土) 18:24:56ID:At7oASnV0999nobodyさん
2007/09/29(土) 18:44:22ID:???http://pc11.2ch.net/test/read.cgi/php/1191058556/
新スレ建てました。 それはどうぞ
1000nobodyさん
2007/09/29(土) 18:50:35ID:???/ _ノ _ノ \
/ /iニ)ヽ /rj:ヽ ヽ
| 〈 !:::::c! {.::;、! 〉 | おつかれちゃん
| ''`''"ヽ___/ 'ー'' |
ヽ //// ヽ / /// / /⌒l
\ ヽ_/ ノ ノ ノ
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。