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

このエントリーをはてなブックマークに追加
597nobodyさん
何度も同じ質問してもログが無駄だからそろそろwiki作んない?
598nobodyさん:2007/03/12(月) 15:15:24 ID:???
言いだしっぺの法則よろ
599nobodyさん:2007/03/12(月) 15:20:49 ID:???
>>597
よし!任せた!
600597:2007/03/12(月) 15:30:12 ID:???
つ、つくってみました!
http://www29.atwiki.jp/basic_php
601nobodyさん:2007/03/12(月) 15:30:51 ID:???
Wikiってはやりなの?
どうせ誰も参加せずに自然消滅するのがオチ……。
602597:2007/03/12(月) 15:43:23 ID:???
おれができるのはここまでだ。
あとは勝手に更新するなりしてくれ。
603nobodyさん:2007/03/12(月) 16:51:57 ID:???
>>600
広告多くて醜い却下
604nobodyさん:2007/03/12(月) 16:52:45 ID:???
検索で引っかかったときにうざいからとっとと削除しろ
605nobodyさん:2007/03/12(月) 16:56:47 ID:???
広告ウゼエエエエエ!
die die die exit!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>>600 FATAL ERROR !!!!!!
606nobodyさん:2007/03/12(月) 17:00:53 ID:???
-おれができるのはここまでだ。
-あとは勝手に更新するなりしてくれ。

(本音)
wiki置いてあげたんだから、とっととおまえら更新しろボケナス!!
そしてコンテンツは俺のものになるのだ。管理人は俺様だ!
あ? 何かもんくあるっていうのか?
607nobodyさん:2007/03/12(月) 17:02:31 ID:???
>>600の人気に嫉妬
608nobodyさん:2007/03/12(月) 17:03:17 ID:???
nliteのとき597みたいなのが居ました
609597:2007/03/12(月) 17:04:05 ID:???
うるせぇうるせぇ!
こっちは広告で飯食ってんだYo!もんくあるなら金払えってんだこんにゃろー
610597:2007/03/12(月) 17:08:06 ID:???
ごめんね。

ぼく、外に出ても嫌われ者で、昔から人の役に立たない人間だったから……。
2ちゃんねるなら、少しでもみんなの役にたてるかと思って。。

実は、PHPの知識は皆無なんだ。
でも、Wikiを管理することぐらいはできるんだ!
荒しさんを弾くことぐらいは朝飯前だぜw

頼むからみんな使ってくれよWiki・・・
611nobodyさん:2007/03/12(月) 17:09:17 ID:???
凄い流れだなw
612597:2007/03/12(月) 17:11:58 ID:???
まてw偽者どもw
広告は自動挿入されてるからおれはいれてないぞww
広告なしがあるならおしえてくれよw
613nobodyさん:2007/03/12(月) 17:17:28 ID:???
自分でサーバ借りてインストールすればいいじゃん。
614597:2007/03/12(月) 17:24:49 ID:???
指図すんな。
615nobodyさん:2007/03/12(月) 17:26:13 ID:???
それすらもできない厨房はウィキなんて
運営するべきじゃないなw
616nobodyさん:2007/03/12(月) 17:32:39 ID:???
鯖持ってるがなんだかんだ文句言いそうなんで、提供誰もしなさそう
617nobodyさん:2007/03/12(月) 17:37:06 ID:???
おまえら文句だけは優等生だなww
618nobodyさん:2007/03/12(月) 17:50:16 ID:???
>>597
マジレスすると、お前の悪いところは

・IDを出していない
・言い出しっぺの割に設定してない
・人任せ

これが問題だと思うよ。
619597:2007/03/12(月) 17:55:42 ID:???
ぐだぐだうるせーくずども
620nobodyさん:2007/03/12(月) 17:57:52 ID:???
更新されてるじゃん。誰だかわからんがGJ!!
621597:2007/03/12(月) 18:34:21 ID:???
じゃあ俺も
622nobodyさん:2007/03/12(月) 19:22:44 ID:???
流れを無視してすみません。
phpでiCalendar形式のファイルを書き出すクラスみたいなのは
どこかで配布されてませんでしょうか?
623nobodyさん:2007/03/12(月) 19:40:34 ID:???
624623:2007/03/12(月) 19:42:09 ID:???
>>622
こんなのもあった。
http://www.macupdate.com/info.php/id/9224
625nobodyさん:2007/03/12(月) 19:47:07 ID:???
度々すまん。説明をよく読んでみたら>>624は目的に合わないかも。
626nobodyさん:2007/03/12(月) 19:47:22 ID:???
保守で見つけたおもろいもの。

(index.php)---
$TABLE = "";
$TABLE .= "<table border=1 cellspacing=3>";
・・・・(<TR>とかいっぱいのコード)
$TABLE .= "</table>";
include("template/index.tpl");

(index.tpl)---
<div align="center">
<?php echo $TABLE?>
</div>
627nobodyさん:2007/03/12(月) 19:51:03 ID:???
>>626
echo "<div>これは冗談だろ...</div>\n";
echo "<div style="font-weight: bold;">頼むから冗談だと言ってくれ!!</div>";
628nobodyさん:2007/03/12(月) 19:52:47 ID:P3Oh6t9M
厨問で恐れ入ります。
\nが改行されずにそのまま\nと表示されるのですが、どうやったら改行されるのでしょうか?
629nobodyさん:2007/03/12(月) 19:54:10 ID:???
>>628
ダブルクォート(")で囲む
630nobodyさん:2007/03/12(月) 19:57:45 ID:P3Oh6t9M
>>629
ありがとうございます。できました。
そう言えばシングルクオートで囲んでました。
シングルではダメなんですか?
631nobodyさん:2007/03/12(月) 20:15:01 ID:???
632nobodyさん:2007/03/12(月) 20:30:23 ID:DaZu2ELx
>>631
どうも。勉強してきます。
633nobodyさん:2007/03/12(月) 20:34:42 ID:???
なにどうもって。まったくかんしゃくおこりますね!!
634nobodyさん:2007/03/12(月) 20:49:25 ID:???
>>632
おい!なんとかいえよ!
635nobodyさん:2007/03/12(月) 21:09:22 ID:???
>>634
うるさい黙れ
636nobodyさん:2007/03/12(月) 21:26:54 ID:???
氏ねよ素人
637nobodyさん:2007/03/12(月) 22:20:51 ID:D65DUhfL
mysqlに入ってる「名前」と「URL」
を使って<リンク>にしてページに入ってる順に出力したいんです。
で、
while ($row = mysql_fetch_assoc($result)) {
print($row['sitename'].'<br>');
print($row['siteurl'].'<br>');
というのを見つけたんで、
この先をいじってやってみようと思ったんですがうまくいきません。
(いじって→なんとなく組み合わせてリンクタグをつくる。)
これってどうやったらうまくいきますか?
根本から違いますか?
638nobodyさん:2007/03/12(月) 22:28:32 ID:???
うまくいかないだけじゃアドバイスのしようが無いんですが・・・
639nobodyさん:2007/03/12(月) 22:39:43 ID:tXEJgcvF
#!/usr/bin/perl

require 'cgi-lib.pl';
&ReadParse;
$upfile = $in{'upfile'};

open(OUT,">test.wav");
binmode(OUT);
print OUT $upfile;
close(OUT);

# レスポンスヘッダの出力
print "Content-type: text/html", "\n\n";

# HTMLの出力
print "<HTML>\n";
print "<BODY>\n";
print "<font size=7>ファイル更新中</font><BR>\n";
print "</BODY>\n";
print "</HTML>\n";

cgi-lib.plのライブラリを使ってみようと思いこのようなサンプルを作ってみましたが
作動しません。
間違いを教えてください。
640nobodyさん:2007/03/12(月) 22:45:08 ID:bMTzsbbi
PHPの環境面での質問です。

MySQLが4.1.x系になってそれまで作っていたプログラムが文字化けするのですが、
ググって調べたところ、MySQLの仕様が変わった事が原因で、my.cnfを編集して
対処するしかない、とかの記載がありました。

そこで質問ですが、PHP側で対処する方法は無いのでしょうか?
文字コードはEUC-JPで作っているのですが、すべての文字コードを
UTF-8に変更しなくてはいけないのでしょうか?
641nobodyさん:2007/03/12(月) 22:47:09 ID:tXEJgcvF
スレを間違いましたごめんなさい
642637:2007/03/12(月) 22:47:54 ID:D65DUhfL
638さん
print('<a href=$row['siteurl']>$row['sitename']</a>');
というのを後ろに付けてみたんですが動かしても白い画面が出るだけなんです。
643nobodyさん:2007/03/12(月) 22:56:23 ID:???
>>642
それだとパースエラー出るような気がするけど。

http://www.php.net/manual/ja/language.types.string.php 
とりあえずあなたはここを読むといいと思う
644637:2007/03/12(月) 23:02:42 ID:D65DUhfL
643さん
お返事ありがとうございます。もうちょっと勉強してからきます。
645nobodyさん:2007/03/12(月) 23:38:29 ID:AUsBueUe
以前ここで挙げられてた
セキュリティに関する本があったのですが、何というタイトルだったのでしょうか?
646nobodyさん:2007/03/12(月) 23:42:25 ID:???
ライブドアブログを書いてるのですが、
投稿しても反映されません。。
何故でしょうか??

時間的な問題で、ほっとけば投稿されるのでしょうか?
647nobodyさん:2007/03/12(月) 23:51:03 ID:???
>>646
テンプレ嫁
あとスレ違い
むしろ板違い
648nobodyさん:2007/03/13(火) 00:02:55 ID:???
何で大阪ではWebやプログラムに関するセミナーがないんだ?
649nobodyさん:2007/03/13(火) 00:23:42 ID:???
大阪にはサーバが無いから
650軟式PHP:2007/03/13(火) 01:00:53 ID:???
>>648
俺のところは大阪より無いぜ。
たまにくるセミナーメールは大抵オラクル or ジオトラストwww
651nobodyさん:2007/03/13(火) 01:24:44 ID:???
つーかSSL証明書の値段って、なんであんなに高いの??
いったいどんなコストがかかってるって言うんだ…。タダみたいなもんだろーが。

しかもほとんどアメリカ企業ばっかりで選択肢少ないし。
あれって独占だか寡占だかで法律違反に問えないのかな?

本当にネット社会のインフラを充実させるには、「SSL業界のユニクロ」が必要だな。
652nobodyさん:2007/03/13(火) 01:35:29 ID:???
レン鯖でSSL込みのサービスとかあるじゃん
中身はcomodoの証明書だったりするけど

ってここPHPのスレやんけ
653nobodyさん:2007/03/13(火) 01:45:19 ID:???
犬阪人はチョソ。
654nobodyさん:2007/03/13(火) 01:45:49 ID:???
PHPに限らずだけど、web開発してると必ずネックになってくる > SSL対応

>>652
レン鯖のサービスはあくまで再販だから、コストを下げるという観点からは無意味。
っていうか鯖屋のピンハネ分が乗るので余計にコスト高。
655nobodyさん:2007/03/13(火) 01:54:20 ID:???
>>654
こういうやつだったら安く済むんじゃないの
ttp://www.asj.ne.jp/techinfo/ssl_asj.html
656nobodyさん:2007/03/13(火) 01:57:45 ID:WB3nwZIO
SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>

SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>

SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>

<cat>
<name>mike</name>
<name>tama</name>
</cat>
に変更するときはどうすればいいのでしょうか?
657nobodyさん:2007/03/13(火) 02:02:05 ID:???
>>656
日本語でおk
658nobodyさん:2007/03/13(火) 02:03:53 ID:???
>>655
それも海外業者の再販でしょ。あと携帯対応がイマイチねぇ・・・。

そもそも一番ユーザの多いドコモに対応するには、
事実上の独占企業VeriSignしか選択肢が無いのが痛い。

社民や共産は下らない言葉狩りとかやってないで、こういう見えにくい部分を追及してほしいぜ。
659656:2007/03/13(火) 02:12:17 ID:WB3nwZIO
すいません。コピペしすぎました。
正しいのはこれです。
SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>

<cat>
<name>mike</name>
<name>tama</name>
</cat>
に変更するときはどうすればいいのでしょうか?
660nobodyさん:2007/03/13(火) 02:37:01 ID:???
ラピッドSSL安くないか?
661弟子 ◆xSK1SiC5MI :2007/03/13(火) 02:58:43 ID:TI4gTUTc
10日で覚えるPHPて本買ったけどPHPが動作する環境すら得られません
XPなんだけどどこから手をつけるべきですか?
662nobodyさん:2007/03/13(火) 03:18:05 ID:???
>>661
そんな調子じゃ10日は無理だなw買う本間違えたんじゃない?
とりあえず、最低限Apache+PHPをインストールしておいで。
個々のインストールがめんどくさかったり
よくわからないならXAMPPを入れたほうがいいかも。
そしたら次はフリーのPHP用IDEを入れる。
EclipseのPHPプラグインあたりがデバッグも容易だしおすすめ。
663弟子 ◆xSK1SiC5MI :2007/03/13(火) 03:19:36 ID:TI4gTUTc
>662ありがとう100日かかっても覚えられる気がしない罠w

664弟子 ◆xSK1SiC5MI :2007/03/13(火) 03:38:56 ID:TI4gTUTc
>662 XAMPPでzipとなんかとexeファイルダウンロードしました

あとはhttp://www.atmarkit.co.jp/fjava/rensai3/eclipsejava01/eclipse01.html#40

をダウンロードでOKですか?
665nobodyさん:2007/03/13(火) 03:53:58 ID:???
>>664
PHPは仕事で使うのか?

もしそうならそんなにあわてなくても良いじゃん。
ゆっくりやればいいよ。

俺はXAMPP+EclipseよりはPHPとApacheだけ
入れたほうが良いと思うんだけどどう?
666nobodyさん:2007/03/13(火) 04:00:27 ID:???
俺ならxamppとphpエディタを勧める。
667nobodyさん:2007/03/13(火) 05:49:39 ID:???
phpエディタの雑多な感じは正直好きではないが、
初心者ならphpエディタのほうがいいかもね。
Eclipseに慣れている人なら当然そっちのほうがいいけど、
元々あれはJava開発者向けだし、最初の設定やらが若干めんどくさいからね。
668nobodyさん:2007/03/13(火) 08:55:58 ID:???
>>664
ローカルに環境作らないで、無料のPHP使えるサーバー借りて勉強すればいいんでない?
ある程度PHPを覚えてくると、今までさっぱりだったapacheやphpの設定も不思議と見えてくる。
669nobodyさん:2007/03/13(火) 09:18:01 ID:???
いきなり共用鯖使わせる気かよ
670nobodyさん:2007/03/13(火) 09:31:45 ID:???
無限ループで鯖ダウン\(^o^)/オワタ
671nobodyさん:2007/03/13(火) 09:33:48 ID:???
回答者もゆとり世代になったか
672nobodyさん:2007/03/13(火) 09:57:54 ID:???
無限ループごときでダウンするレン鯖も今時無いと思うが
673nobodyさん:2007/03/13(火) 10:31:36 ID:8uoeVZuh
ケータイサイトで
<form method="post"action="a.php">..</form>
のようなログインフォームを用意しています。
パスワードを入力してログインすると
ログイン後のページが表示されるようになっているのですが
一部端末でログインできない(ログインボタンを押しても
ログイン画面が再表示されてしまう)
という問題が現象が発生しています。

端末は V302H V603SH A5502K W32S 702NH などです
(端末の設定に依存するのかもしれません
回避策などありましたら教えてください。
674nobodyさん:2007/03/13(火) 10:40:10 ID:???
>>640
MySQLのバージョンによってうまくいかない可能性があるが
set names のクエリを接続したあと1回必ず送るようにすると
うまくいくかも

これでもうまくいかないときは素直にmy.cnfを書き換えたほうがいい
書き換えてもうまくいかないときはalterでデータベースの文字コードを
設定しなおしたらいい
675nobodyさん:2007/03/13(火) 10:57:30 ID:???
>>673
回避策というかバグなんだからデバッグしろよ
とりあえずa.phpでprint_r($_POST);とかして値がわたってるかチェックかな
676nobodyさん:2007/03/13(火) 11:00:42 ID:???
>>672
今時無いと思うが、ローカルでテストするようにしろ

だろ?お前も推奨派かタコが
677nobodyさん:2007/03/13(火) 11:03:20 ID:8uoeVZuh
>>675
返答ありがとうございます
例に出した機種以外では渡っているようでした
678nobodyさん:2007/03/13(火) 11:06:42 ID:???
>>677
昔の携帯はPOST使えないよ
679nobodyさん:2007/03/13(火) 11:08:16 ID:???
>>678
どんだけ昔なのか機種名、またはソース教えてくれよ
680640:2007/03/13(火) 11:09:32 ID:???
>>674
ありがとうございます!無理なのかと思いました・・。

とりあえずレン鯖なんで、my.cnfの書き換えは出来ないのですが、
以下の分を環境設定ファイルに書き足したところ、登録・表示できました。
$set_names = mysql_query("SET NAMES ujis", $conn);

少ししか試していませんが、特に重いと言う事もないので、これで乗り切ろうと思います。
アドバイスありがとうございました。
681nobodyさん:2007/03/13(火) 11:17:31 ID:8uoeVZuh
昔と言ってもログインできないのは
2年ほど前の機種です
682nobodyさん:2007/03/13(火) 11:20:37 ID:???
>>623
どうもありがとうございました
書き出す場合は中身が構造化されたテキストっぽいから自分でやっつけるしかないみたいですね
683nobodyさん:2007/03/13(火) 11:21:17 ID:???
>>673
V302H V603SH A5502K W32S 702NH
で検索したけど1個しかヒットしなかった
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-26,GGGL:ja&q=V302H+V603SH+A5502K+W32S+702NH+
684nobodyさん:2007/03/13(火) 11:25:18 ID:???
formのname指定してみ。
携帯によってはパラメーターちゃんと設定しないと送信されなかったりもする。
685nobodyさん:2007/03/13(火) 11:26:59 ID:???
>>683
ほぼ同じ文章でワロタwww
686nobodyさん:2007/03/13(火) 11:27:34 ID:8uoeVZuh
ありがとうございます!
やってみます!
687nobodyさん:2007/03/13(火) 11:28:47 ID:???
>>659
<?php
$xmlstr = <<<XML
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
XML;

$xmlsrc = new SimpleXMLElement($xmlstr);
$xmldst = new SimpleXMLElement("<cat></cat>");

foreach($xmlsrc->name as $name) {
 $xmldst->addChild("name", $name);
}
?>
688nobodyさん:2007/03/13(火) 11:30:53 ID:???
修正
foreach($xmlsrc->name as $name) {
 if($name != "buchi")
  $xmldst->addChild("name", $name);
}
689虚弱PHP:2007/03/13(火) 11:57:54 ID:???
>>673
そもそもa.phpの内部の処理なんか、誰にも分からないんですけど。
690659:2007/03/13(火) 12:02:43 ID:WB3nwZIO
ありがとうございます。
今PHPが使える環境にないので、後でやってみます。
691nobodyさん:2007/03/13(火) 13:05:05 ID:???
>>673
それらの機種には問題ない。
お前のコーディングに問題がある。

おそらく適切なヘッダーを吐いてないんじゃないか。
692nobodyさん:2007/03/13(火) 14:21:08 ID:Y+fr5f3l
テンプレート的にページ表示する仕組みをクラスを用いて作りました。
テンプレートとなるPHPスクリプトには必ずTemplateクラスを実装するようにし、表示メソッドを持たせました。

例えば、以下のように複数のテンプレートPHPスクリプトを用意しておき、
表示時に、好きなテンプレートを選択できるようにしたわけです。
template1.php,template2.php,template3.php...

しかし問題に気付きました。
一つだけのテンプレートをrequireして何度も表示するだけなら良いのですが、
複数のテンプレートを一つのPHPスクリプトからrequireする場合があったのです。
「Fatal error: Cannot redeclare class ...」 です。
Templateクラスの多重定義エラーになってしまうのです・・!

PHPは定義の解除もオーバーライドもできない。
ああ、納品は今日だというのに、今まで気がつかなかった私が馬鹿であったのですが・・。

どうにかうまくやり抜ける方法はないものでしょうか?
おまえら知恵を貸しやがれです!
693nobodyさん:2007/03/13(火) 14:24:16 ID:???
>>692
結論=無理。氏ぬがいいw

っていうか単なるテンプレート的な使い方のためだけにテンプレートエンジンだの
クラスだのと難しいことをする必要はない。
単に任意の変数を埋め込んだHTMLを拡張子.phpで用意しておき、
それをロジック・スクリプトからrequireして変数部分を展開すればいいだけ。
694nobodyさん:2007/03/13(火) 14:26:27 ID:???
納品って言いたかっただけだろw
695nobodyさん:2007/03/13(火) 14:29:49 ID:???
>>692
どういうファイル構成になってるんだかさっぱりなんだが
クラス定義ファイルの読み込みはrequire_onceでやるか
クラス定義のとこで定義済みかどうかを判別するだけでは。
まさか複数ファイルにクラス定義をそれぞれ書いてるとかいう
ありえない設計をしてるわけもないだろうし。
696nobodyさん:2007/03/13(火) 14:42:22 ID:Y+fr5f3l
簡潔にするとこんな感じです。

print.php
-----------------------
require_once(テンプレートA);
$A = new Template;
//うぁぁTemplateが解除できねぇぇ
require_once(テンプレートB);
$A = new Template;

templateA.php , templateB.php
-----------------------
class Template extends TemplateBase
{
...
}

>>693
現状から少々の追加・修正でなんとかできないでしょうか・・
各テンプレートPHPで宣言しているクラス名を修正しても良いです。

>>695
ありえない設計になっていますでしょうか・・
697nobodyさん:2007/03/13(火) 14:52:53 ID:???
クラス名一緒とかどんな糞設計なんだよ
698nobodyさん:2007/03/13(火) 15:01:48 ID:Y+fr5f3l
この場合は、クラス名を統一しておかなければ
テンプレートオブジェクトの生成コード
new Template が統一して使用出来ないと思ったからなんです。
newには静的にクラス名を与えるしかないですよね・・?
699nobodyさん:2007/03/13(火) 15:08:19 ID:???
質問です
1000 2000 3000 の整数値が入った変数があったとして
これら3つの中から最も低い数値だけ抜き出すアルゴが知りたいです
もちろんif文などでも実現できますが、何かいい関数がないかと思いまして
無知なところすみませんがよろしくお願いします
700nobodyさん:2007/03/13(火) 15:19:02 ID:???
>>698
$obj_tpl = new Templete($str);でコンストラクタでどれ読むか書けばいいような
701軟式PHP:2007/03/13(火) 15:20:46 ID:???
>>699
<?php
$nums = array(2000,1000,3000,5000,100,7000);
sort($nums);
print $nums[0];
?>
702nobodyさん:2007/03/13(火) 15:22:00 ID:???
>>696
バカだバカがいるwwww
お前クラスを何だと思ってるんだ
703虚弱PHP:2007/03/13(火) 15:30:04 ID:???
>>696
ありえない設計だね。

設計変えずに素早くなんとかするとしたら、
可変クラス名でも使ってやるしかないんじゃないかな。
・クラス名はテンプレート毎。
・テンプレートクラスのファイル先頭に$TemplateClassName = <テンプレートクラス名>
$A = new $TemplateClassName();
704nobodyさん:2007/03/13(火) 15:34:44 ID:???
>>696
だからさぁ、テンプレートの仕組みはこんな感じ↓にすれば簡単なのに。
なぜ皆わざわざテンプレートエンジンとか難しいことやろうとするの?

●print.phpの中身
$hoge = "これを表示するべ";
require_once(template.php);
-----------------------
●template.phpの中身
echo <<< EOM
<html><body>
↓ここの表示は自由自在だぜ!<br>
{$hoge}
</body></html>
EOM;
705虚弱PHP:2007/03/13(火) 15:41:13 ID:???
>>704
ループ使ったり、条件分岐つかったり、修整子使ったり、
キャッシュ使ったりしたいからじゃないかな?
706軟式PHP:2007/03/13(火) 15:42:48 ID:???
>>704
いや明らかにテンプレートエンジンのほうが簡単。
というかそれはテンプレートとは言えるレベルじゃないと思うが。
Smartyのforeachelse、cycleなどを使い始めると離れづらいと思うが。

Smartyの例
●print.phpの中身
$tpl = new mySmarty(); //Smartyを継承したクラス
$tpl->assign("hoge","これを表示するべ");
$tpl->display("template.php");

●template.php
<html>
<body>
↓ここの表示は自由自在だぜ!<br>
{$hoge}
</body></html>
707nobodyさん:2007/03/13(火) 15:49:51 ID:???
>>701
ありがとうございます
役にたちました
708nobodyさん:2007/03/13(火) 15:54:58 ID:Y+fr5f3l
>>700
$strは何を指すのですか?
憶測ですが、new TemplateをLoadTemplateのような関数と同じ意味だと思っていませんか?
多分そのやり方ではクラスを使う意味がないです。

>>703
ありがとうございます。
PHPは可変クラスなんてのが使えたんですね。
そういった機構が無いか何度も探してみたのですが、見つけられていませんでした。
まだ試してみてはいませんが、勉強になります。

なお、先の件につきまして、一応自力で解決できました。
>>703の手法に似ていますが、可変〜を使わないものです。
print.phpのテンプレート出力関数内で、空の$template_objを用意し
テンプレートスクリプトにて、global $template_objによりアクセス可能にした
$template_objへnewテンプレートしオブジェクトインスタンスを格納するようにしました。
コンストラクタの引数も同様に受け渡しをしました。
ちょっと再利用性が落ちるやり方でまた怒られそうですね。

とにかく、皆様どうもありがとうございました。
と書いている間にまたレスがついてますね。
>>703以降落ち着いたらじっくり読ませていただきます。
クラスの使い方がなってないと散々怒られてしまいましたので
よろしければ、後学のためどのような設計にすべきだったのかアドバイス頂けると幸いです。
ではでは、また死んできます。
709nobodyさん:2007/03/13(火) 16:31:20 ID:???
>>705
>ループ使ったり、条件分岐つかったり
それはロジック側でやっといて、最終的に出力したい状態に整形してから
テンプレートに変数として渡せば済む話では??

>>706
その手法と>>704の手法と比べた場合、どんなメリットがあるのかサッパリ分からないっす。
っていうか結果的に同じことを単に複雑にしてるだけ、って気が・・・。
710nobodyさん:2007/03/13(火) 16:43:09 ID:???
>>709
項目数の可変なテーブルを出力したいときはどうする。
$table = "<table〜</table>";
とかやってからテンプレに渡すの?
711nobodyさん:2007/03/13(火) 16:52:56 ID:???
数字に3桁毎にコンマつける関数ありませんか?
712nobodyさん:2007/03/13(火) 16:57:13 ID:???
711続き

1000とあったら1,000になるようなやつです
713nobodyさん:2007/03/13(火) 16:58:53 ID:???
711続き

自己解決しました
714軟式PHP:2007/03/13(火) 16:59:36 ID:???
>>709
簡単なやつだからね。修飾子とか使えるし実際見やすいよ。
同じ処理を行った場合の一例
・Smarty
{$hoge | escape | replace:"これ":"それ" }
・ロジック
$hoge = str_replace( "これ", "それ" ,htmlspecialchars( $hoge ) );

>>711
number_format()
715虚弱PHP:2007/03/13(火) 17:03:11 ID:???
>>709
そうすると、色々やってるうちにロジック側にHTMLが入ってくるようになると思うよ。
716nobodyさん:2007/03/13(火) 19:22:17 ID:???
>>708
君はもうだめかもわからん

class Template {
 function __construct($_str) {
   /* 引数の値に応じてテンプレートを読み込む */
 }
}

こう書いてもわからんというのかね
クラスに引数つけた場合はデフォルトコンストラクタではなく定義されたコンストラクタが呼び出される
クラスの概念とか判らないのならC++かJavaからやったほうがいいよ
717nobodyさん:2007/03/13(火) 19:40:10 ID:???
コード変換いついて教えてください
UTF-8の"T"(E78484)を mb_convert_encoding を使って
EUC-JPに変換すると化けてしまいます
これは mb_convert_encoding のバグでしょうか?
また対応策等ありましたらお願いします
718nobodyさん:2007/03/13(火) 19:44:17 ID:???
$str = mb_ereg_replace("\x87\x40", "(1)", $str);

こんな感じで検索文字を文字コード指定で指定して変換するときは、
str_replace でも大丈夫でしょうかね?
str_replace だとパラメータに配列が使えて便利なので
719nobodyさん:2007/03/13(火) 19:46:12 ID:???
PHPのページで他のPHPを呼び出すためのタグを教えてください。
猫手をindex.phpに使用していたのですが、間違えて消してしまい、
どういうタグを描いていたかも忘れてしまい・・・
720nobodyさん:2007/03/13(火) 20:05:58 ID:???
タグ?
<include>another.php</include>
こんな感じか
721nobodyさん:2007/03/13(火) 20:08:01 ID:???
<?php
ぬるぽ(include.php);
?>
722nobodyさん:2007/03/13(火) 20:14:01 ID:???
>>719
include("index.php");
require("index.php");
require_once("index.php");

上にいくほど高速
723nobodyさん:2007/03/13(火) 20:18:16 ID:???
GET受け取った値(内部処理及びHTML出力に直接使う)を最も安全に加工したいと思うのですが
htmlspecialcharsだけでは不十分でしょうか?おすすめの処理あれば教えてください
724nobodyさん:2007/03/13(火) 20:19:17 ID:???
>>719
そしてさらに上までいって>>1を読むと納得
725nobodyさん:2007/03/13(火) 21:23:04 ID:6kJO88Vk
>>723
1. <input type='text' name='hoge' value='<?php print(htmlspecialchars($_GET['hoge'])); ?>'>
2. <script type="text/javascript"><?php print(htmlspecialchars($_GET['foo'])); ?></script>

この二つがなぜ危険になる可能性があるのかを説明できれば大丈夫だと思う。
726nobodyさん:2007/03/13(火) 21:36:05 ID:???
>>722
嘘おしえてんなよ!はげきち
727nobodyさん:2007/03/13(火) 21:48:59 ID:FbvNPOWY
メールマガジンを送信するプログラムを作りたいんですが、cronを使用して
毎日 10 時に メールを 1万通送信するプログラム を作るとサーバーに相当な負荷がかかってしまうと
思います。

この場合どういう風に作ればサーバーに負荷をできるだけかけずにプログラムを作れるでしょうか。
というより、どうすればいいんでしょうか。
一般的なメルマガ発行システムなどはどうやって処理しているのか教えてください。
よろしくお願いします。

728nobodyさん:2007/03/13(火) 21:56:24 ID:???
>一般的なメルマガ発行システムなどはどうやって処理しているのか

メールを送信する処理をPHPでやっているシステムは見たことない。
729nobodyさん:2007/03/13(火) 22:01:49 ID:neUD+ow6
>>727
*/1 * * * * メール送信処理
1分おきにメール送信するとサーバーに負荷かからないよ
730nobodyさん:2007/03/13(火) 22:08:49 ID:???
PHPの配列って実はハッシュなんですか?
731nobodyさん:2007/03/13(火) 22:14:16 ID:???
>>729
1分おきに10000通のメールを送るとすると:
    60(秒) * 10000(通) = 600000(秒)

時間になおすと:
    600000 / (60 * 60) = 166.666666667

すなわち、全てのメールを送信するのに約7日かかることになる。
そんなもの使いものにならんよ。
732nobodyさん:2007/03/13(火) 22:14:59 ID:???
>>730
そうだよ
733nobodyさん:2007/03/13(火) 22:19:48 ID:???
>>731
意味不明
734nobodyさん:2007/03/13(火) 22:30:27 ID:???
1分500通で10000/500=20分
つまり20分で10000通メール送信ってことだよな
735nobodyさん:2007/03/13(火) 22:32:04 ID:???
1分500通でも多すぎだろ。
さらに時間はかかるがw
736734:2007/03/13(火) 22:34:10 ID:???
>>735
以前に出会い系のサクラでメール配信していたが、
500通くらいなら20秒くらいで送信できたと思う
737nobodyさん:2007/03/13(火) 22:36:05 ID:???
またスパまーか
738nobodyさん:2007/03/13(火) 22:38:16 ID:???
>>737
登録者に送ってるだけだからスパムではない
739軟式PHP:2007/03/13(火) 22:49:36 ID:???
俺は適当にSleep入れてログ取りながらバッチで回してるよ。
3万人まで送信したことあるけど、今のところ問題なし。
もし途中で何らかの原因があって止まってもログから再送信させる。
740nobodyさん:2007/03/13(火) 22:50:14 ID:???
>>738
聞き方変えてるだけかと
741nobodyさん:2007/03/13(火) 23:44:54 ID:jbwAF33v
文字コードについて質問です
phpmyadmin内にutf-8で格納してあります。
ブラウザーに表示するときもutf-8統一してあるのですが
文字化けしてしまいます。
<p>php</p>部分 数字は表示されるのですが
漢字 ひらがなの部分が化けしてしまいます
文字化け対策を調べてみたのですが、なかなか直らなくて
PHP 5.2.1
phpMyAdmin 2.9.2
Apache 2.2.4
MySQL 5.0.33
(xampp)以上です よろしくお願い致します 
742nobodyさん:2007/03/13(火) 23:47:33 ID:???
変数を格納する為だけのクラスで、
class Hoge {
function set($key,$value) {
$this->$key = $value;
}
}
$hoge->set('name', 'ほげほげちゃん');

と言う風に、varで定義していない変数を作るのってやめた方が良いですか?
PHP5なら__set、__get使ってひとつの配列に入れておくことも出来るんですが
PHP4なのでどうしようかと思いまして・・・。
むしろ、もうそろそろPHP4の事は考えない方がいいですか?
743nobodyさん:2007/03/13(火) 23:49:28 ID:???
>>741
どんな風に文字化けするのか

>ブラウザーに表示するときもutf-8統一してあるのですが
どこをどういじってutf-8にしたの?
744nobodyさん:2007/03/14(水) 00:15:06 ID:???
>>742
どういう理由でやめたほうが良いと?
745nobodyさん:2007/03/14(水) 00:15:32 ID:lS0gqu9t
743 有難うございます。
<META http-equiv="Cont
ent-Type" content="text/html; charset=utf-8">
と エディエターもutf-8セットしました CSVファイルも
utf-8に変更しました
mysql内はいじっていません
[mysqld]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
等 
746nobodyさん:2007/03/14(水) 00:16:30 ID:???
>>745
php.iniもUTF-8?
ブラウザで見て文字コード変えて試してみた?
747709:2007/03/14(水) 01:45:21 ID:???
>>710 うん、今のところはそのような感じでやってます・・・

>>714 なるほど、慣れるとSmarty記法のほうが可読性が高いんですかね。

>>715 そうなんですよ、実際、ロジックに可変テーブルなどのHTMLが入り込んでて、
   可読性が落ちるからどうやって解決したものかな〜〜と常々思っとりました。
   にも関わらず、Smartyとか導入するのが面倒なのでやってませんorz
748nobodyさん:2007/03/14(水) 02:39:55 ID:???
>>742
function set($k, $v){
$this->storage[$k] = $v;
}
だとどういう不都合があるの?
例外処理の恩恵受けられるならPHP4切る価値はあると思う。
749nobodyさん:2007/03/14(水) 03:41:39 ID:BjDS8gcH
PHP5.2で
//ファイルはSJIS
mb_internal_encoding("SJIS");
mb_http_output("UTF-8");
ob_start("mb_output_handler");
はおkなんだけど、

//ファイルはUTF-8
mb_internal_encoding("UTF-8");
mb_http_output("SJIS");
ob_start("mb_output_handler");
は化けませんか?

(iconv_set_encodingでも同じ)
750nobodyさん:2007/03/14(水) 05:17:14 ID:???
ラピットはボリ杉。オフィスで説明聞きに言ったとき殿様みたいな対応されて腹がたった。
女子社員はかあいかったなww
751nobodyさん:2007/03/14(水) 05:21:06 ID:???
>>661
おれももってるけどあんまりおすすめしない。記述も古いし。
752nobodyさん:2007/03/14(水) 05:28:22 ID:???
だれだかわかりませんがwiki更新おつかれさまです。wktkしてみてます。
753nobodyさん:2007/03/14(水) 07:59:05 ID:ouHfB1AQ
遅くなりました
何故か書き込めなかった
746PHP.iniは変えてません
749やってみます
会社でやってみます
754虚弱PHP:2007/03/14(水) 09:10:08 ID:???
>>752
>>1のFAQを転載してみたよ。
755nobodyさん:2007/03/14(水) 10:23:26 ID:rWwTvtgK
ホントにくだらない質問なんですけど、記録するレコードが膨大になると
予想されるものって、テーブルをユーザー毎に個別を分けたほうがいいんですかね??

分かりやすい例で言えば、たとえばまぐまぐみたいなシステムの場合に、
マガジンごとに配送ログを取るとします。そしたらたとえば読者が10万人いるマガジンの場合、
一回発行するごとに配送ログが10万行増えますよね。そういうマガジンがいくつもあれば、
配送ログを記録するテーブルはあっという間に膨れ上がります。

こんなとき、「配送ログテーブル」としてまとめて一つ用意するよりも、
各マガジンごとにログ用テーブルを個別に用意したほうがいいんでしょうか?

なんか分かりにくい質問だったかもしれませんが、
他にもいろんな場面で似たような悩みがあります。テーブルをどこまで分割するか、で。
756nobodyさん:2007/03/14(水) 10:24:25 ID:???
適切にインデックス張れ
757nobodyさん:2007/03/14(水) 10:32:57 ID:???
インデックスを張ったうえでのテーブルサイズ膨張の問題なんじゃない?
それともインデックスを知らずにSELECTが遅くなることを懸念してるとか?
んなワケないか。
758nobodyさん:2007/03/14(水) 10:51:15 ID:???
一定期間経った古いログデータベースからはずしてどっかに保存しれ
759755:2007/03/14(水) 10:53:51 ID:rWwTvtgK
>>756 インデックスは張っているのですが、管理上、適切なテーブル設計はどうすべきかなと思いまして。

>>757 膨張というか、管理の手間(?)なども考えてのことです。

>>758 単なるログ保存ではなく、ユーザー(>>755の例で言えばマガジン発行者)が
   過去ログを閲覧できるようにしておきたいのです・・・
760nobodyさん:2007/03/14(水) 11:16:31 ID:???
過去ログ閲覧っていっても、10万件のログを発行者がいちいち
1件ずつ見ることはないだろう
必要な情報だけを集計して、集計元のデータは別途保存して
データベースから消せばいいんじゃないのか
761nobodyさん:2007/03/14(水) 13:22:36 ID:KzeU5M0F
Red Hat Enterprise Linux 4 + Apache2 + PHP4.4.6 で開発しています。

16進数から文字列に変換するJavaScriptの関数があるのですが、
それをphpに変換したいのです。

// JavaScript
function hexToString (h) {
var r = "";
for (var i= (h.substr(0, 2)=="0x")?2:0; i<h.length; i+=2) {r += String.fromCharCode (parseInt (h.substr (i, 2), 16));}
return r;
}

頑張って以下のようにしてみたのですが、JavaScriptと返り値が異なってしまいます。
恐らく JavaScript の parseInt に対応しているつもりの sprintf の使い方が誤っているのだと思いますが、
どう直していいのかわかりません。

// PHP
function hexToString ($h) {
$r = "";
for ($i = (substr($h, 0, 2) == "0x")?2:0; $i < strlen($h); $i += 2)
{
$r .= chr(sprintf("%d", substr($h, $i, 2)));
}
return $r;
}

よろしくお願いします。
762nobodyさん:2007/03/14(水) 13:23:42 ID:KzeU5M0F
ちなみに>>761の関数は
// JavaScript
function stringToHex (s) {
var r = "0x";
var hexes = new Array ("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
for (var i=0; i<s.length; i++) {r += hexes [s.charCodeAt(i) >> 4] + hexes [s.charCodeAt(i) & 0xf];}
return r;
}
というJavaScriptの関数よって16進数に変換された文字列を、元の文字列に戻すための関数です。
763nobodyさん:2007/03/14(水) 13:53:00 ID:???
>>761
$r .= chr(sprintf("%d", substr($h, $i, 2)));
じゃなくて
$r .= pack('H2', substr($h, $i, 2));
とか。

もしくは
function hexToString ($h) {
return pack('H*', substr($h, (substr($h, 0, 2) == "0x") ? 2 : 0));
}
とか。
764761:2007/03/14(水) 14:09:21 ID:???
>>763
うおお〜期待通りの動作になりました。ありがとうございます。
しかしpackって奥が深いというか難しいというかクラクラしてきました。
勉強します。
765nobodyさん:2007/03/14(水) 15:58:09 ID:???
>>761
hexdec($h);
でいいんじゃないの
766nobodyさん:2007/03/14(水) 16:38:46 ID:???
>>759
ユーザがいつどのマガジンに入退会したかを記録しておけば、配送ごとにすべてのユーザに配送ログを残す必要なくなると思うが。
配送エラーがあると配送ログがつかない というのであれば逆にエラーが起きたときだけ特別にエラーログとればよいし。
767nobodyさん:2007/03/14(水) 17:28:36 ID:???
>>759
つーか何を聞きたいのかよく分からない。
もう一回まとめてもらえる?
1つのテーブルにレコードが10万件あるデータベースで
ログ閲覧や管理にどういう問題があって、どうしたいと考えているの?
768nobodyさん:2007/03/14(水) 17:38:47 ID:???
くだらない質問です
インデックスってどうやって張るの?
769nobodyさん:2007/03/14(水) 17:41:55 ID:???
ALTER TABLE tablename ADD INDEX columname;
770nobodyさん:2007/03/14(水) 18:50:28 ID:???
データベースについての勉強もせずに要求とな?

続きはmysqlかpgsqlスレへどうぞ
771nobodyさん:2007/03/14(水) 19:26:45 ID:ouHfB1AQ
749さん それはPHP.iniを変えるんですか?
772nobodyさん:2007/03/14(水) 19:30:52 ID:88VqriPk
質問です。
call_user_funcを使って任意のクラスのメソッドを呼ぶ事が出来ますが、
同様に任意のクラスのメンバを取得するにはどうすればいいでしょうか?
773nobodyさん:2007/03/14(水) 19:31:14 ID:???
A09Fみたいな表記をA0と9Fか、0xA0と0x9Fの二つに分ける方法ありますか?
774nobodyさん:2007/03/14(水) 19:38:48 ID:???
>>770
そんなことはわかってる
おまえうぜーな消えろ
775659:2007/03/14(水) 19:51:48 ID:hmkr7h9D
>>687
申しわけありません。したいことと、得られる結果が異なります。

<?php
$xmlstr = <<<XML
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
XML;

$xmlsrc = new SimpleXMLElement($xmlstr);
なんかする(これがわからん)
echo($xmlsrc->asXML());
?>
で、
<cat>
<name>mike</name>
<name>tama</name>
</cat>
って表示されるようにしたいです。
よろしくおねがいします。
776nobodyさん:2007/03/14(水) 20:55:19 ID:???
>>734-736
うちのメール配信システムは1秒150通ですが^^
777nobodyさん:2007/03/14(水) 20:56:52 ID:???
>>775
$xmlsrc … 入力
$xmldst … 出力

なのでecho($xmldst->asXML());すると
<?xml version="1.0"?>
<cat><name>mike</name><name>tama</name></cat>
と出る
778nobodyさん:2007/03/14(水) 21:01:07 ID:???
>>775
unset($xmlsrc->name[2]);
779775:2007/03/14(水) 21:32:40 ID:hmkr7h9D
>>775
説明が下手で申しわけありません。
プログラムは、
データベースからXMLを読み込む。 -> XMLをSimpleXMLオブジェクトにする。
-> 入力値をXMLに入れる。 -> いろいろ処理をする。 -> 結果をXMLに入れ、データベースに書き出す。
という処理を繰り返し行っています。

入力値の要素数が変化するのですが、
要素数が増えるときは問題がないのですが、減ったときに余分な要素が残ってしまいます。
これをオブジェクトの名前の変更なしで消し去りたいんです。
XMLはだいたいこんな感じです。
<pet_shop>
<open_date>
<year></year><month></month><date></date>
</open_date>
<cat>
<name>mike</name><name>tama</name><name>buchi</name>
</cat>
</pet_shop>
780nobodyさん:2007/03/14(水) 23:08:24 ID:???
DOM使ってremoveChild
781nobodyさん:2007/03/14(水) 23:29:59 ID:???
>>773
ビット演算
782nobodyさん:2007/03/14(水) 23:30:30 ID:qM9Gf/TM
質問です。
文字列"FF"から0xFFってしたいんですがどうしたらいいんでしょう?
くだらなくてすいませんがよろしくお願いします。
783nobodyさん:2007/03/14(水) 23:31:44 ID:???
$string = 'FF';
$string = '0x' . $string;
784782:2007/03/14(水) 23:46:09 ID:qM9Gf/TM
>>783
それだと文字列の"0xFF"になりますよね?
16進数としての0xFFにしたいんです。
785nobodyさん:2007/03/14(水) 23:50:38 ID:???
>>784
intにキャストするかintvalかければいいんじゃね
786782:2007/03/15(木) 00:42:36 ID:???
>>785
駄目でした。

でも色々試したら解決しました。
"0xFF" + 0x00
としたらいけました。
もうちょっとスマートなやり方はないのかな。。。

どうもありがとうございました。
787nobodyさん:2007/03/15(木) 00:43:25 ID:???
10進数に直してから16進数に直せばいいんじゃね?
788nobodyさん:2007/03/15(木) 00:50:08 ID:???
>>781
わかんないです(><; )

>>786
>>773のようなときはどうしますか?
789nobodyさん:2007/03/15(木) 00:51:42 ID:???
>>788
substr
790nobodyさん:2007/03/15(木) 00:58:02 ID:???
>>789
同じ関数を2つも並べて書くなんてアホっぽいじゃないですか
一発で配列にして返したりするのが欲しいんです
unpack("C*", $str)みたいな

はいろいろイジって頭おかしくなりかけたのでもう試しません
791nobodyさん:2007/03/15(木) 00:59:20 ID:???
>>776
1秒150通でも十分に速いと思う。。。

ちなみに俺がXREAの有料鯖でPHPで組んだメール配信システムだと、
だいたい1秒で10〜20通くらいしか送れない。(朝の時間帯だから鯖は混んでないのに)

メールの宛先ごとに本文の内容が違うし、名前の差込処理などもやってるので、
単純にメールの送信処理だけじゃないからこんなに遅いのかな?
それとも、それを考慮したとしても遅すぎるだろうか・・・? みんな、どう思います?

ちなみに、メール送信処理部分(mb_send_mail)を除いたコードで処理時間を計測すると、
メール100通分の処理でも0.00…数秒しかかかってない。
すなわち、mb_send_mail()処理で大幅に時間を食ってるようだ。
792nobodyさん:2007/03/15(木) 01:15:24 ID:???
>>791
mb_send_mailで時間がかかってるってのはどこまでの範囲なんだ?
メールを送信する処理自体はSMTP鯖だろうから一概にPHPが駄目と
はいえないと思う。

PHPはSMTP鯖のキューにメールを置くところまでしかやらないはずだから

・SMTP鯖のキューに置くまでの時間=PHPのメール処理
・キューからメールを吐き出す時間=SMTPのメール処理

となると思う。
793nobodyさん:2007/03/15(木) 01:53:18 ID:???
>>790
$s = "A09F";
$a = array($s{0}.$s{1}, $s{2}.$s{3});
var_dump($a);

結果:
array(2) {
[0]=>
string(2) "A0"
[1]=>
string(2) "9F"
}
794nobodyさん:2007/03/15(木) 02:00:47 ID:???
>>790
$s = "A09F";
$b = sscanf($s, "%2s%2s");
var_dump($b);

結果:
array(2) {
[0]=>
string(2) "A0"
[1]=>
string(2) "9F"
}
795nobodyさん:2007/03/15(木) 02:03:26 ID:???
>>786
ちなみに数値で欲しければ
$s = "A09F";
$c = sscanf($s, "%2x%2x");
var_dump($c);

結果:
array(2) {
[0]=>
int(160)
[1]=>
int(159)
}
796nobodyさん:2007/03/15(木) 02:41:46 ID:???
>>792
>・SMTP鯖のキューに置くまでの時間=PHPのメール処理

そうか??
俺の計測した感じだと、mb_send_mailはMTAからの返り値(成功かエラーか)を
受け取って初めて処理が完結してるようだけど?

つまり、
・SMTP鯖のキューに置いて、処理結果を受け取るまでの時間=PHPのメール処理(すなわちMTAの処理時間も包含)
797軟式PHP:2007/03/15(木) 02:43:00 ID:???
>>790
自分で関数作ってしまうという手も。
<?php
$text = "9AD3EBA09F";

print "ORG:".$text."<BR>";
print "C0:".cutbin($text,0)."<BR>";
print "C1:".cutbin($text,1)."<BR>";
print "C2:".cutbin($text,2)."<BR>";
print "C3:".cutbin($text,3)."<BR>";
print "C4:".cutbin($text,4)."<BR>";

function cutbin( $text, $len )
{
$wrk = sscanf($text,join("",array_fill(0,($len+1),"%2x")));
return sprintf("%X",$wrk[$len]);
}

--結果--
ORG:9AD3EBA09F
C0:9A
C1:D3
C2:EB
C3:A0
C4:9F
?>
798nobodyさん:2007/03/15(木) 02:47:28 ID:???
>メールを送信する処理自体はSMTP鯖だろうから一概にPHPが駄目とはいえないと思う。

ちなみに、仮にmb_send_mailの処理がMTAにキューを置くだけで完了するんだとしても、
とにかくmb_send_mail()の有無でスクリプト全体の処理時間が何十倍も違うので、
やはり>>791のような現象は、この関数の処理速度に起因しているのは間違いない。


>mb_send_mailで時間がかかってるってのはどこまでの範囲なんだ?
範囲もクソもないよ。だって、mb_send_mail()の行がある場合と、その行だけコメントアウトした場合とで
処理時間の差を計測したので、ズバリmb_send_mail()自体の処理時間が分かるわけだ。
799792:2007/03/15(木) 03:29:33 ID:mSGG4ywR
>>796
>>798

OH!なるほど。

ちなみにmb_send_mailの処理は内部的にどうなってるんだろうな?
もしSMTP鯖に置く処理がメインならやっぱり処理速度はSMTP鯖
のスペックなり設定でかなり変わってきそうだと思うんだけどどうだろう?
800nobodyさん:2007/03/15(木) 03:32:39 ID:???
> mb_send_mail
PHP側の処理時間なんてほんの一瞬。
99%はsendmailのプロセス終了待ち時間。
PHP側ではどうしようもない。
SMTPのパフォーマンスをチューニング出来ない環境ならあきらめろ。
801nobodyさん:2007/03/15(木) 03:56:59 ID:???
そういう場合、たとえばqmailだったらどこをどうチューニングすればいいんじゃろ??
802nobodyさん:2007/03/15(木) 05:06:10 ID:???
さあ。受け付けたらキューに登録するだけにしてすぐに正常ステータスを返すようにするとか。
大改造だと思うけどどうなんだろうw
803nobodyさん:2007/03/15(木) 05:34:19 ID:0Uy9YRyX
注文内容を自動的にメール送信するスクリプトを作成中です
画像つきで注文内容が一目でわかるようにしたいので 添付ファイルつきか
HTMLメールで送信したいと思っています
添付ファイルのほうがいいかな? と言う気がするのですが 添付ファイル
で送信するとして phpからhtmlデータをファイル化することなくメール送信
することは出来るのでしょうか?
(メール内に個人情報が入るのでファイルとして残したくないのです)

アホな質問ですいませんが ご回答いただけるとうれしいです
804nobodyさん:2007/03/15(木) 05:43:01 ID:???
ifとswitchはどちらが高速ですか?
またforとforeachはどちらが高速ですか?
805nobodyさん:2007/03/15(木) 06:34:06 ID:???
>>804
変わんない
806nobodyさん:2007/03/15(木) 07:43:32 ID:???
>>804
気になるなら自分でテストできるじゃん
807nobodyさん:2007/03/15(木) 07:47:49 ID:???
>>803
できるんじゃない?
808nobodyさん:2007/03/15(木) 08:56:58 ID:???
>>803
お前、何をワケのわからんこと言ってるんだ・・・
メールとして送る時点で既にファイル化されてるわけだが。

保存されては困る個人情報なら、そもそも書くな。
809nobodyさん:2007/03/15(木) 09:31:44 ID:7XZoL+s0
初めまして。
もの凄く初歩的な質問だと思いますが教えて下さい。

変数に代入する値はどんなものであっても、
phpスクリプトの内容に影響を及ぼさないのでしょうか?
出力時、SQL文の実行時とは別で。

例えば、セミコロンを入力されると、内部でステートメントを区切られちゃうとか。
if文とかを書かれるとそれが実行されちゃうとか。
これは流石にないと思いますが…
810nobodyさん:2007/03/15(木) 09:36:48 ID:???
変数にはどんな文字列を入れてもOK☆
811nobodyさん:2007/03/15(木) 09:38:57 ID:???
>>809
アホかお前。
そんな間抜けな言語あるか。

っていうかお前みたいな奴は絶対にeval関数を使っちゃダメだからな。
812808:2007/03/15(木) 10:00:42 ID:???
>>810
ありがとうございます。
安心しました。

>>811
ありがとうございます。
そうですよね、質問しててこんなんだったら成り立たないなとか思いました。
なんかエスケープ処理とかそういうのを検索してたらワケがわからなくなりまして。
絶対にeval関数使わない様にします。
813nobodyさん:2007/03/15(木) 10:18:55 ID:???
>>803は今すぐプログラムやめたほうがいいよw
こんなのが同じPHPやってると思うだけで嫌気がするぜ
814nobodyさん:2007/03/15(木) 10:38:29 ID:???
>>772
get_class_vars
815803:2007/03/15(木) 11:03:47 ID:???
すいません 日本語ができてないなためご迷惑をおかけしました
あとphpマニュアルを読まずに質問したのは浅はかだったと反省しております

>>808
「ファイル化されていないものは添付ファイルとして送信できない」という
ことでしょうか?
今調べると PEARのMail_Mimeで ファイル化されていないものを添付ファイル
として送ることが出来そうだと言うことがわかったのですが これを利用した
場合も 一旦サーバ内のどこかにファイルが作成されると解釈すべきなので
しょうか?

それとも mail関数で送信した内容は プレーンテキストを含め 全て一旦
サーバ内に保存されるという意味でしょうか?

表現力も読解力もなくて本当にすいません…


>>813
不快な思いをさせてしまい 大変失礼いたしました
816nobodyさん:2007/03/15(木) 11:43:23 ID:???
>>815
元々画像ファイルがあればそのままバイナリで
読み込んで添付する事はできるしテキストもどこかに保存されるわけじゃない
メールとして送られるキュー状態を「ファイル化」というならともかく
何を持って「ファイル化」と言っているのか知らないが

問題はそんなことより注文したら画像付きのHTMLメールが
送られてくるなんてありがた迷惑も
甚だしいというところなんじゃないだろうか
商品を見てよし買おうというステップを踏んで買ってるのに
その画像が送られてきてもね
817nobodyさん:2007/03/15(木) 11:56:22 ID:9KVNC1ES
($hoge['hoge'] == 'fuga') ? true : false;

この文って、excelのif関数の
=if(a1="fuga",true,false)

と同じなんですか?

ふと思いまして、突然質問してしまいましたが、よろしくお願いします。
818nobodyさん:2007/03/15(木) 12:06:27 ID:bQrJdpxg
file_get_contentsでxmlファイルが403で開けないのですが回避策など
ありますでしょうか?
819803:2007/03/15(木) 12:10:02 ID:???
>>816
ご丁寧な説明ありがとうございます
そして説明がいまだに不十分であったことをお詫びいたします

添付したいファイルはHTMLです
画像を添付するのではなく HTMLを添付してそこに画像へのリンクを
挿入することで確認してもらう予定です
(当然ながら事前に確認してもらうフォームは設けております)

HTMLのデータを変数に設定してメール送信して その変数の内容がサーバに
保存されることなく HTMLの添付ファイルとして送信することが可能かどう
か知りたかったのです
(添付ファイルよりHTMLメールのほうがいいならそちらを検討しますが)

「買ったあとに画像を見せられても…」についてはおっしゃる通りかもしれ
ません
ただ 当方ではカスタマイズ商品を扱っており オプションが細かいことから
商品を受けたあとに「こんな感じで注文した覚えはない」と言うクレームが
発生しがちなのです
無駄なクレームを減らすために「あなたはこういった注文をしましたよ」と
いう わかりやすい確認メールを画像付きで送りたいと思っています
820nobodyさん:2007/03/15(木) 12:19:56 ID:V8NaW7u1
>>818
xmlファイルの読み取り権限をチェックしろ
821nobodyさん:2007/03/15(木) 12:27:30 ID:???
>>819
可能かどうかなら可能

ということでこの質問は終了とさせていただきます。
822nobodyさん:2007/03/15(木) 12:37:34 ID:bQrJdpxg
>>820
RSSのxmlでブラウザでは開けるんだけどね
PHP側の問題ではないの?
823nobodyさん:2007/03/15(木) 12:50:26 ID:wd/M4m1q
$array = array(
'a' => 'あああ',
'b' => 'いいい',
'c' => 'ううう',
'd' => 'えええ'
);

print $array['a'];
print $array['b'];
print $array['c'];
print $array['d'];

としたときに、$array['a']だけ出力されません。

$array = array(
'b' => 'いいい',
'a' => 'あああ',
'c' => 'ううう',
'd' => 'えええ'
);

としたら、$array['b']だけ出力されません。つまり、$array[0]が出力されないのです。

print_r($array);

とすると、出力されない値もちゃんと存在することが確認できました。この原因はなんなのでしょうか?ご存知の方、良ければご教示ください。
824nobodyさん:2007/03/15(木) 12:54:47 ID:???
>>823
途中でarray_shiftを使っているとかでは?
825nobodyさん:2007/03/15(木) 12:58:11 ID:wd/M4m1q
>>824
いえ、途中経過で$arrayはいじってません。
関数の引数として渡しているだけです。
826nobodyさん:2007/03/15(木) 13:11:17 ID:???
>>823
出力結果の見方を間違ってるとかじゃ?
これってHTMLに出力してブラウザで見てるの?
827nobodyさん:2007/03/15(木) 13:24:21 ID:???
>>819>>803
マジでお前にはプログラミングは向いてないから3秒以内に辞めたほうがいいと思う。
センスも無ければ、知識も無い。
自らメールなどの仕様を調べる努力もしない。
ダメだこりゃ。
828nobodyさん:2007/03/15(木) 13:25:31 ID:???
粘着きもいです
829nobodyさん:2007/03/15(木) 13:59:33 ID:???
情報小出しはご遠慮願います
830虚弱PHP:2007/03/15(木) 15:03:54 ID:???
煽りはスルーでお願いします。

>>823
多分、単なる記述ミス。
記述ミスの可能性がないなら最小再現コードを貼り付けるべし。
>>823そのままでも再現するの?
831nobodyさん:2007/03/15(木) 16:54:10 ID:???
class Cls {
  function ClassMethod() {
    print 'class:' . get_class($this);
  }
}
class Hoge {
  function __constuct() {
    ClsMtd::ClassMethod();
  }
}
$hoge = new Hoge();
の出力が
class: Hoge
となるんだけども、$thisのスコープはどうなってんのる。
832nobodyさん:2007/03/15(木) 16:56:50 ID:zc90m/Wc
>>741です 今だに文字が?になります
UTF-8→EUC-JPに変更しても駄目でした
色々なサイトを参考にphp.iniを変えて
みたのですが文字が?なってしまいます

どなたかご教授を・・・
833nobodyさん:2007/03/15(木) 17:20:26 ID:???
>>831
WinXP php5.2.1では何も表示されないぞ

問題あるなら環境かけよと
834軟式PHP:2007/03/15(木) 17:30:11 ID:???
>>832
「 phpmyadmin skip-character-set-client-handshake 」
をキーワードにぐぐってもだめかい?
自鯖なら俺はnavicatとか使うタイプなのであんま詳しくわからんけど('A')
あと海外レン鯖でphpmyadmin使った時、マルチバイトが全部????になったけど
データベースや各テーブルなどの全ての照会順序をeucjpms_japanese_ciにして
データを入れなおしたら普通に表示されるようになったよ。
835nobodyさん:2007/03/15(木) 17:33:55 ID:+HEWAk65
832です
急用が出来て携帯からです
Win XP 98SE でもダメ
836nobodyさん:2007/03/15(木) 17:34:56 ID:???
>>832
データベースに入っている文字の時点で
化けているのか?
それとも表示だけば化けているのかによって
対応も変わる。

データベースに入れたデータも化けているのなら
phpmyadmin skip-character-set-client-handshake
で解決するはず。
一度データベースをきれいに消して作り直して
試してみれば?
837nobodyさん:2007/03/15(木) 17:35:54 ID:???
>>832
その環境が特殊すぎて、もはやアドバイスすることが
ないぞ
838nobodyさん:2007/03/15(木) 17:41:04 ID:???
>>831
__constuctとかClsMtdとかテキトーな事ばっか書いてんじゃねぇ。
あと本題はマニュアル嫁。
http://jp.php.net/manual/ja/language.oop5.basic.php
839nobodyさん:2007/03/15(木) 17:41:51 ID:+HEWAk65
>>8341有難うございます
euc‐jpm…にはしたのですが…

スイマセン ハンドではググてませんでしたm(__)m
840nobodyさん:2007/03/15(木) 17:42:50 ID:???
>>831
注意: 擬似変数 $this は、メソッドが静的にコールされた場合に
常に定義されるわけではありません。
しかし、はっきりしていることは: もしメソッドが別のオブジェクトから
静的にコールされている場合は $this が定義されるということです。
この場合、$this は呼び出し元のオブジェクトとなります。

841nobodyさん:2007/03/15(木) 17:45:49 ID:+HEWAk65
>>836有難うございます
PHPMYADMIN内では?にはならず通常に表示されます

XP & 98SE
842nobodyさん:2007/03/15(木) 17:50:05 ID:???
>>841
それって、DBにはちゃんと格納されているってことなのか?
なら、表示させようとしているページの方が問題じゃないのか

というか、phpmyadmin 内ではなく、sql を自分で発行して
テキストファイルに出力したりして確認したほうがいいぞ

843nobodyさん:2007/03/15(木) 18:01:34 ID:???
クラスの中でコールバック関数を呼び出すことは無理ですか?

class aaa{
public static function rep($str) {
$s = preg_replace_callback("/([0-9a-z]+)/", self::callback(), $str);
return $s;
}

public static function callback() {
return "####";
}
}

echo aaa::rep("あいうabc123えお");

結果
Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2,
'####', to be a valid callback
844軟式PHP:2007/03/15(木) 18:04:44 ID:???
>>843
おしい。
$s = preg_replace_callback("/([0-9a-z]+)/", array("aaa","callback"), $str);
845843:2007/03/15(木) 18:12:48 ID:???
>>844
おお、できましたありがとう
関数名の指定がおかしいんだとばかり思っていじくりまわしてた
まさか配列で指定する方法があるとは
846虚弱PHP:2007/03/15(木) 18:27:54 ID:???
>>845
callback という擬似的な型がある。
http://www.php.net/manual/ja/language.pseudo-types.php

あ、そうかPHPって基本的に型を意識しない言語だから、
普通の人はマニュアルに書いてある型も無視しちゃうのか。
847nobodyさん:2007/03/15(木) 20:24:22 ID:/iEh48++
すいません質問です
削除機能がついたゲストブックを作っています

投稿する項目は name と comment があり、
$name|$commentとしてlog.txtの同じ行に書き込まれます。
次に投稿された内容は、前のコメント内容の次の行に書き込まれます。

admin.php という管理画面で、
log.txtから投稿された書き込み一覧を取得し、各行をforeachでループ処理させ、
その中から削除したい行を選択しつつ、del.php へ移動し、
選択された行を削除したいのですが、
del.php からの特定の行を削除する方法がわかりません
解決策を教えていただきたいです。
-----------
続きます
848847:2007/03/15(木) 20:24:54 ID:/iEh48++
admin.php

<?php
$filename = 'log.txt';
$line_list = file($filename);

foreach ($line_list as $line_number => $line) {
//各行をそれぞれ | で $name と $comment に分割
list($name, $comment) = explode("|", $line);
echo "名前: ".$name."<br>コメント: ".$comment."<br>";
//「削除する」が選択された行が第何行目なのかを把握し、del.phpに移動
echo "<a href=\"del.php?linenumber=$linenumber&mode=delete\">削除する</a><hr>";
}
?>
---------------------------------------------------
del.php

<?php
$filename = 'log.txt';
$line_list = file($filename);
$line_number = $_GET['line_number'];

//admin.phpで選択された行を削除したいのですが、ここからがわかりません どうかよろしくお願いします。
849847:2007/03/15(木) 20:26:19 ID:/iEh48++
すいません
インデントがありませんでした
見難くなってしまいました
すいません
850虚弱PHP:2007/03/15(木) 20:32:37 ID:???
>>847
全部読み込んで、削除する行を消したら、全部書き込み。

DB使った方が楽だと思うよ。
SQLiteなら設定いらないしファイルベースだから面倒じゃないでしょ。
851847:2007/03/15(木) 20:51:44 ID:/iEh48++
>>850
アドバイスありがとうございます
全部読み込むというのはわかるのですが、
行の削除というやり方がわかりません
すいません
852虚弱PHP:2007/03/15(木) 21:25:20 ID:???
>>851
1.行毎に読み込む
→削除する行は読み飛ばし
2.file()で配列に
→配列の指定行をunset
853nobodyさん:2007/03/15(木) 21:30:05 ID:???
欠番作るなら良いけど、そうでない場合はライン指定だけで削除するのはキモイと思う
854847:2007/03/15(木) 21:34:21 ID:???
>>852
ありがとうございます
なんか光明が見えてきた気がします
精進します

>>853
キモイというのはどういうことですか?
スマートじゃないってことですか?
データの管理の仕方として危ういってことでしょうか?
855虚弱PHP:2007/03/15(木) 21:53:37 ID:???
キモイかどうかはわからんけど、
確かに投稿したけど削除したのと、
投稿していないのは違った方がいい場合が多いよね。

結構定番なのは、「削除済み」フラグだけ立てといて、
実際の削除はいつかやるってのじゃないかな。
856nobodyさん:2007/03/15(木) 23:53:59 ID:???
mixiのニュースってどっからとってるの?
社員が更新してるの?
857nobodyさん:2007/03/16(金) 00:23:25 ID:Isw9h1zM
xss防ぐのにpreg_quoteつかったら駄目でしょうか?
858790:2007/03/16(金) 00:36:59 ID:???
>>793-795
>>797
sscanf()でできた
サンクス!
859nobodyさん:2007/03/16(金) 00:41:05 ID:???
http://example/a/001/というところがあるとします
001ディレクトリにはいろんなファイルが入っているとします。
このディレクトリのファイル一覧を取得したいと思いますがエラーで困ってます。

$dir = "./";
$file = scandir($dir);

↑このように相対パスで指定してやるとうまく動くのですが、

$dir = "http://example/a/001/";
$file = scandir($dir);

↑のように絶対パスで指定してやるとワーニングでエラーが返されます。

scandirは相対パスでしか指定できないのでしょうか?
他にやり方がございましたらご教授お願いいたします。
860859:2007/03/16(金) 00:41:36 ID:h6PC42v/
IDだします。ごめんなさい。
861nobodyさん:2007/03/16(金) 00:43:05 ID:???
>>859
""を''でもむり?
862nobodyさん:2007/03/16(金) 00:45:07 ID:???
マヌアルに書いてある通り、普通だとURLは使えないんじゃないの?
863nobodyさん:2007/03/16(金) 00:56:04 ID:h6PC42v/
レスをヒントにマニュアルをひいてみたらURLはPHP.iniの設定を変更しないと無理みたいですね。
相対パスであきらめます。
相談に乗って頂きましてありがとうございます。
864nobodyさん:2007/03/16(金) 02:42:03 ID:???
>>859
その絶対パスってのは
/var/www/html/とかでは無いの?
865nobodyさん:2007/03/16(金) 03:31:28 ID:/0oeqwmM
Vistaのローカルホストでfile,fike_get_contents系、ソケット系の関数にURLを指定すると、

Warning: file(http://localhost/...) [function.file]: failed to open stream:
接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。
または接続済みのホストが応答しなかったため、確立された接続は失敗しました。

Fatal error: Maximum execution time of 60 seconds exceeded

ってなってしまうんだけど、Vistaじゃ出来ないでしょうかね?
環境は、ホームプレミアムでXAMPP 1.60aを使用(Apache/2.2.4,PHP/5.2.1)
php.iniの設定が変わってるわけでもないし、PukiWikiなんかは動くし、
サーバが原因なのかPHPが原因なのかだけでも分かると良いんですが
866nobodyさん:2007/03/16(金) 03:45:16 ID:???
Vistaじゃ無理。PHPやるならMEが最適。
867nobodyさん:2007/03/16(金) 04:43:02 ID:???
>>865
ファイアウォールとかじゃないの?
868nobodyさん:2007/03/16(金) 07:19:48 ID:???
>>865
localhostを127.0.0.1に書き直してみたらどう?
869nobodyさん:2007/03/16(金) 10:31:20 ID:???
いまVistaで開発やるやつってのは自分で自己解決できるぐらいの中級以上を推奨する。
なんせ情報が出回ってないんだから。
870nobodyさん:2007/03/16(金) 11:16:32 ID:???
こんにちは
マクロメディアのソフトみたいに
入力支援や、カーソルのある関数に
プロパティウインドからパラメータを書き換えられるものってご存知ありませんか?
871nobodyさん:2007/03/16(金) 11:20:32 ID:ZEr5WJOq
XMLを配列に格納してくれるような関数はないのでしょうか?
872871:2007/03/16(金) 11:39:22 ID:ZEr5WJOq
simplexml_load_fileで事故解決しました!
PHPは奥が深いですね


また別の質問になってしまうのですが、
「Fri, 16 Mar 2007 09:49:43 +0900」
このような形式の文字列をtime()で取得した形にどうやって直せば良いのでしょうか?
873871:2007/03/16(金) 11:41:29 ID:ZEr5WJOq
いきなりですが、
$date = "Fri, 16 Mar 2007 10:41:40 +0900";
echo time($date);
で取得することができました^^;
874871:2007/03/16(金) 12:00:16 ID:ZEr5WJOq
よく見ると取得できていませんでした・・・
875nobodyさん:2007/03/16(金) 12:06:34 ID:???
質問です。
phpファイルの一部をcgiで動作をさせるんですが
htaccessで次を記述しますが
<files ○○.php>
AddHandler application/x-httpd-phpcgi .php
</files>

このhtaccessはcgiで動かそうとしてるphpと同じフォルダにいれないと動作しないでしょうか?

例えば
一番上の階層abc(フォルダ)---abcd(フォルダ)2階層目
                     |
                     abc.php
|
abcd.php
このようなファイル構成になってるとしまして
htaccessをabcフォルダ上に置いて下の階層のabc.phpをcgiで動作させるために
<files ./abc.php>
AddHandler application/x-httpd-phpcgi .php
</files>
このようにして動作するのか教えてください。
   
876nobodyさん:2007/03/16(金) 12:24:17 ID:5GbGG00d
simplexml_load_fileってitemの日付は取れないのかな?

>>873
自分で変換しないとだめだったはず〜

>>875
よくわからんが、<files ./abc.php>っておかしくない・・・
877nobodyさん:2007/03/16(金) 13:05:57 ID:???
>>875
どっちかというと、apache の質問だな
878nobodyさん:2007/03/16(金) 13:14:18 ID:???
>>875
ちなみにそれ、同じディレクトリに入れれば動作したの?
879nobodyさん:2007/03/16(金) 13:18:56 ID:???
>>875
<Files ./abc.php>という指定だとカレントディレクトリのabc.phpにしか適用されないと思うんだが。
880nobodyさん:2007/03/16(金) 14:37:01 ID:y0HaZbOz
PHP4.3.11でDOM XMLを使いたいんですが、
phpinfoを見るとconfigureのところは
'--with-dom=shared,/usr' '--with-dom-xslt=/usr' '--with-dom-exslt=/usr'
と書いてあるのに、DOM XMLが有効になっていません。
この場合、何を確認すべきでしょうか?

PHPマニュアルには
「このPECL拡張モジュールはPHPにバンドルされていません。」とあるのに、
PECLの方の説明を見ると(http://pecl.php.net/package/domxml
「NOTE: if you're running PHP 4.x, the domxml is already part of the distribution.」
と書いてあって、元から入ってるのか入ってないのかよくわかりません…。
881865:2007/03/16(金) 15:08:03 ID:IT8kjYuc
>>866-869
返答有り難うです
いま外出先なんで、後で>>867-868辺りを見てみます
無理なら無理で全部動かなければ楽に諦めがつくのに
882nobodyさん:2007/03/16(金) 15:16:14 ID:???
>>880
入ってる(エクステンション自体はついてくる)けど、リンクするようになってない(php.iniで設定されてない)んだよ。
とりあえずphp.iniにextension=〜を書けばいいだけ。
883nobodyさん:2007/03/16(金) 16:23:55 ID:y0HaZbOz
>>882
ヒントありがとございます!

今php.iniに
extension = domxml.so
extension = xslt.so
って書いてapache再起動してみたんですけど、
依然として有効にならない…。
他に確認しておくべき設定とかありますか?
884nobodyさん:2007/03/16(金) 16:52:52 ID:???
>>882
本当に/usrなのか?
885nobodyさん:2007/03/16(金) 16:53:59 ID:???
つられた安価ミス
>>883
886nobodyさん:2007/03/16(金) 17:22:15 ID:/N5iNfEC
MYSQLにて

mysql> GRANT ALL PRIVILEGES ON *.* TO guest@"%" IDENTIFIED BY 'pass';

を実行しguestユーザーを作成

PHPにて
<?mysql_connect('localhost', 'guest', 'pass');?>
接続OK

<?mysql_connect('123.456.789.123, 'guest', 'pass');?>
接続NG
なんだが、
別のサーバーからDBに入っている情報を取り出したいのだがどうしたらいいのですか?
887nobodyさん:2007/03/16(金) 17:24:39 ID:???
>>886
それはmysqlのとこで質問した方がいいと思う。
888nobodyさん:2007/03/16(金) 17:35:25 ID:???
サーバーサイドのMySQLの設定もあるしなぁ
889nobodyさん:2007/03/16(金) 17:38:43 ID:???
これでコマンドラインのmysqlクライアントでは繋がるがPHPではダメ、
という話であればここで回答できるとは思うけど。
890nobodyさん:2007/03/16(金) 17:55:38 ID:???
>>886
grant したあとちゃんと
mysql> flush privileges;
で権限設定の再読み込みしてる?
891nobodyさん:2007/03/16(金) 17:58:45 ID:???
>>886
あと今読み返して不思議だったのが
`guest`にgrantしたあとで`guest`を作成したの?
順番逆じゃね?
892nobodyさん:2007/03/16(金) 18:21:16 ID:???
現在半ニートの求職状態で困ってます
PHPで仕事をしたいと思ったのですが、PHPはまったくの未経験です。
未経験歓迎の会社は
「まったくの素人でも大丈夫!3ヶ月の研修で一人前に!」
なんてところが多くて、ありがたいのですが、そういうところは派遣で飛ばしてるところが多いので信用できません。
やはり最初から技術を身につけて少しでもまともなところに行くべきだと思っています。
そこで、一般的にこのくらいのレベルになれば雇ってもOKみたいな基準はあるのか教えてください。
893nobodyさん:2007/03/16(金) 18:26:02 ID:???
未経験なのに派遣が嫌とかって・・・
894nobodyさん:2007/03/16(金) 18:33:18 ID:???

   ∩___∩     /
   | ノ      ヽ  /
  /  >   < |/ そんな餌パクッ
  | //// ( _●_)/ミ
 彡、     l⌒l  ノ
 / __  \ \ヽ
. (___)   \__)
. O|       /
  |  /\ \
  | /    )  )
  ∪    (  \
        \,,_)
895nobodyさん:2007/03/16(金) 18:34:36 ID:???
いや派遣が嫌なのではないんですよ
訳のわからないところいかされた経験があって
当時は東京すんでたので東京希望したんですけど山梨に通勤させられたりとか
まぁ、それはひと月でやめたんですけど、もうああいうのは嫌だなあと思ったので・・・
896nobodyさん:2007/03/16(金) 18:38:39 ID:???
機械設計でCADの仕事やってたんですけど、いきなりベトナムいけとか言われて
それ断って派遣の登録やめて実家に帰ったんですけど、ろくな仕事ないのでお手上げ状態でして\(^_^)/
PHPなら趣味でカウンタと掲示板を勉強したことがあったのでこれで仕事できないかなと思って書き込みました
897nobodyさん:2007/03/16(金) 18:52:26 ID:???
まぁ、ここでも見て就職活動の勉強しなさい。
ttp://news4vip.livedoor.biz/archives/50936230.html
898nobodyさん:2007/03/16(金) 18:58:18 ID:???
>>897

怖いですね
899nobodyさん:2007/03/16(金) 19:24:22 ID:???
>>892
SNS一式を頑張れば独力で開発できるくらい。
900nobodyさん:2007/03/16(金) 19:46:32 ID:???
経験って業務経験の有無だろ
カウンタと掲示板作れますって面接で言うのか。まぁ判断するのは企業だが。
901nobodyさん:2007/03/16(金) 19:48:53 ID:???
CADやってろw
902nobodyさん:2007/03/16(金) 19:56:30 ID:???
>>899
そんなの誰でも出来て当然だろ。
SNSってのはWebアプリに必須の(わりと枯れた)基本技術の
集合体なんだから。
903nobodyさん:2007/03/16(金) 20:03:08 ID:???
俺は専門学校時代にJAVAならってて、それで就職したんだけど
就活の時提出したのは、ホテルの予約サイトと通信販売のサイトだったよ。

バイトならゆるいと思うからバイトからも潜り込むってのも良いんじゃないかな。
俺が学生の時バイトしてた所は簡単な掲示板で採用された。
904865:2007/03/16(金) 20:06:21 ID:/0oeqwmM
>>868の通りIPアドレス指定にしたら取得出来ましたので、報告しときます
ファイアウォールは切っても関係ありませんでした(localhostでの取得不可
905nobodyさん:2007/03/16(金) 20:24:16 ID:???
>>892
せっかくだから作ってやったよ。
http://jimaku.in/w/TjCXdlPQraI/N_Xj1b_hnVz
906nobodyさん:2007/03/16(金) 20:30:09 ID:???
>>905
>>892が何を言いたいのかワカタ
907nobodyさん:2007/03/16(金) 20:33:01 ID:???
>>905
怪しいURLだからクッキー、JS、Javaきって画像読み込み禁止して、
万全の体勢でみたのに…普通に笑ったわ。
908nobodyさん:2007/03/16(金) 20:42:23 ID:???
>>905
超GJ!
909nobodyさん:2007/03/16(金) 21:22:03 ID:9jNqxHVU
PHP 4.3.9でdomxml使ってます。

<a>
 <b>
  ほげほげ<c>ふー</c>ばー
 </b>
</a>

こんなXML文書があって、bのノードを得てget_content()すると、
"ほげほげふーばー"という文字列が得られるのですが、
ここで"ほげほげ<c>ふー</c>ばー"という文字列を得るにはどうすればいいのでしょうか。
910nobodyさん:2007/03/16(金) 21:26:23 ID:???
それはXML文書ではない
911nobodyさん:2007/03/16(金) 21:46:05 ID:???
>>909
とりあえずwell formedでぐぐれ
912nobodyさん:2007/03/16(金) 22:05:21 ID:CwcSD/6v
post_max_sizeを超えるファイルがPOSTされた時に
エラーを取得する方法を教えていただけないでしょうか?
913nobodyさん:2007/03/16(金) 22:45:17 ID:73y/KabV
こんばんわ
今対戦告知掲示板を作っているのですが
終了時間をtime()の形で記録したいのですが
日付時間⇒time()と同じ書き方
にするような関数はありますでしょうか?
914nobodyさん:2007/03/16(金) 22:47:01 ID:LVHbCv/B
>>842遅くなりました 有難うございます
>それって、DBにはちゃんと格納されているってことなのか?
なら、表示させようとしているページの方が問題じゃないのか
<META http-equiv="Content-Type" content="text/html; charset=euc-jp">
<?php
// MySQL 接続
if (!($cn = mysql_connect("localhost", "root", "pas"))) {
die;
}
// MySQL DB 選択
if (!(mysql_select_db("eee"))) {
die;
}
// MySQL 問い合わせ
$sql = "select * from dddd";
if (!($rs = mysql_query($sql))) {
die;
}
// MySQL レコード参照
while ($item = mysql_fetch_array($rs)) {
print "${item['id']} ";
print "${item['aaa']} ";
print "${item['bbb']} ";
print "${item['ccc']}<BR>";
}
初心者なので、参考サイトから借りてきました

915nobodyさん:2007/03/16(金) 23:27:25 ID:???
>>914
それで文字化けじゃなくて"?"になるのか
そんなことあり得るのか

上の方でも出ていたけど
skip-character-set-client-handshake を my.cnf に
追加するか
EUC-JP なら set names ujis のクエリを
mysql_connect した後に1回発行したら
ちゃんと表示されると思うけどな


916nobodyさん:2007/03/16(金) 23:41:39 ID:LVHbCv/B
>>915有難うございます
もう一度がんばってみます。
917nobodyさん:2007/03/17(土) 00:04:08 ID:???
>>902
うん、だからWeb関連の基本的なアプリなら大体作れます、ってのが第一関門かなと。
それ以下の人なんて取っても仕方ないし。
でもとりあえずそんだけできれば就職はできないこともない。
918nobodyさん:2007/03/17(土) 00:27:18 ID:???
mb_send_mail を使ったメールフォームを作成しているのですが、
件名や本文に外部入力値を入れる場合、
エスケープが必要になりますよね?
何をエスケープすればいいんでしょうか。
, だけでいいんでしょうか?
919nobodyさん:2007/03/17(土) 00:33:37 ID:???
>>918
エスケープはいらないと思うけど
920nobodyさん:2007/03/17(土) 01:01:55 ID:???
どうでもいい下らない質問をさせてくれ!

PHPマニュアルで一番ページビューの多い関数って
なんだろうな?

今日仕事の休憩中にふと考え始めてもう気になって
仕方が無い!

なんか普通の関数(str_replaceとか)は態々PHPマニュアル
のおかしな日本語を読むよりも一般のサイトで調べるほうが
多そうだからやっぱりマイナーなモジュール(Curlとか?)の
方が多いのかな?
921nobodyさん:2007/03/17(土) 01:03:22 ID:???
array関連のどれかと見たが。
922nobodyさん:2007/03/17(土) 01:05:14 ID:???
mysqli関連最近よく見てる
923nobodyさん:2007/03/17(土) 01:08:18 ID:???
>>921
確かに配列系は多いかもわからんね
924nobodyさん:2007/03/17(土) 01:08:57 ID:???
おれは emacs 使っているから、公式を見に行くことが
多いな
それでも、一番調べる回数が多いのは
preg_***系かな
925nobodyさん:2007/03/17(土) 02:03:11 ID:???
>>905
カウンタと掲示板を勉強したことあるPHP未経験者ワロスw
926nobodyさん:2007/03/17(土) 02:32:46 ID:???
>>913
strtotime
927nobodyさん:2007/03/17(土) 02:44:32 ID:???
>>912
ttp://ml.php.gr.jp/pipermail/php-users/2005-February/025182.html
によると「検知できない」らしい。
928nobodyさん:2007/03/17(土) 02:49:48 ID:Yu+qWlMp
PHP5.2.0で

$str="おねがいします!aaaaaa";
$str = mb_ereg_replace("/([a-z]+)/", '<b>\\1</b>', $str);

これ、!と?があると化けませんか?
929nobodyさん:2007/03/17(土) 03:05:53 ID:???
>>928
内部エンコーディングとそのソースのエンコーディングがあっているかどうか確認せよ。
930nobodyさん:2007/03/17(土) 09:59:16 ID:???
>>905
ワロタ
931nobodyさん:2007/03/17(土) 10:01:23 ID:5F59V2eB
正規表現の本探してるんだが
おぬぬめないかな?
PHPとCって正規表現同じだっけ?
932nobodyさん:2007/03/17(土) 10:31:46 ID:???
>>931
オライリーが正規表現っていう本出してるよ
933928:2007/03/17(土) 12:12:51 ID:???
ソースshift_jisで頭に
mb_internal_encoding('SJIS');
mb_regex_encoding('SJIS');
かましてあります

HTMLタグの<前に0x810x40-0x60あたりの2バイト文字があると化けるようです
とりあえず<の前に全角スペースを入れることで一時回避
それでも化けるけど、HTMLタグが機能しないという最悪の状態は免れられるようなので
934nobodyさん:2007/03/17(土) 12:51:29 ID:???
>>905の開発者のインタビュー見たがすごいな。
高卒で21歳最年少ヤフー入社。
23歳でライブドアCTO。
25歳現在無職とか最強すぎる。
935928:2007/03/17(土) 13:13:37 ID:???
すいません
ローカルでは
mb_internal_encoding('SJIS');
mb_regex_encoding('SJIS');
入れてあったのに、リモートでは入れてなかったorz
最悪だ
昨日夜中まで文字コード調べたりなんやかんややってたのにorzorzorz
936909:2007/03/17(土) 14:21:54 ID:3ZIBkJLf
>>910-911
整形式になっていないですか。xmllintにかけても問題なかったんですが。
937nobodyさん:2007/03/17(土) 15:16:56 ID:???
class Human {
function sleep(){}
function work(){}
}
class CEO extends Human {
function work(){}
}
で、継承されたものではなく、CEOクラスそのものにworkやsleepが存在するか調べる方法ってありますか?
関数とクラス・オブジェクトの項目を読んで見たのですが分かりませんでした…。
938nobodyさん:2007/03/17(土) 15:20:34 ID:???
>>936
タグとして認識されてるんじゃない?
939nobodyさん:2007/03/17(土) 15:27:20 ID:???
(゚Д゚)ハァ?
940nobodyさん:2007/03/17(土) 15:31:55 ID:???
>>934
>23歳でライブドアCTO。

どこにそんなこと書いてあるんだ。
お前は早合点のすっとこどっこいだな。
941nobodyさん:2007/03/17(土) 15:35:31 ID:???
ttp://www.mcdonalds.co.jp/sales/new/smileplus/index.php

#NAME?
ってどういうときに出るものですか?
942nobodyさん:2007/03/17(土) 15:44:56 ID:???
みんなはPHPひと筋なひとなんですか?
perlやJAVAもできる人が多いのかな
943nobodyさん:2007/03/17(土) 15:59:24 ID:???
>>942
Perl
Awk
C++
C
86ASM
Fortran
Pascal
COBOL
BASIC
辺りは仕事で使いました。
944nobodyさん:2007/03/17(土) 16:04:04 ID:???
>>937
method_exists('CEO', 'sleep')がfalseになってほしいってこと?
そんなの無理。継承した時点でCEOクラスにもsleepメソッドは存在する。
945nobodyさん:2007/03/17(土) 16:42:33 ID:???
>>943
スゴイですねぇ
僕はPHPしかできないんですよね
いくつかの言語を使い分けることにあこがれます
946nobodyさん:2007/03/17(土) 16:50:47 ID:???
PHPしかできないなんて信じられん

それって本当はPHPも満足に”できてない”んじゃねーの
947nobodyさん:2007/03/17(土) 17:04:00 ID:???
おい、誰か>>946に「キミはいろいろ使えるんだ、すごいね!」って言ってやれ。
948946:2007/03/17(土) 17:14:38 ID:???
>>947
本人か?
ここの住人は普通に多言語いける人ばかーりだと思うが

まあとりあえず憧れてる暇あったら、PHPできてるんなら1週間ほど勉強すれば
他のスクリプト系言語も少しは使えるようになるだろ。
949nobodyさん:2007/03/17(土) 17:58:16 ID:???
Lisp
950nobodyさん:2007/03/17(土) 18:38:22 ID:???
春爺が涌いてるなw
951nobodyさん:2007/03/17(土) 18:48:11 ID:???
軟式さんってHPもってますか?
たまたまグーグルから同名の会社のHPみつけたんですけど。
952軟式PHP:2007/03/17(土) 19:53:53 ID:???
>>951
いくつか持ってるよ。ひとつはフリーウェアのやつで某スレのテンプレに入ってる。
ゲームしない人は全く訪れないであろうマイナースレやけど。

>たまたまグーグルから同名の会社のHPみつけたんですけど。
ちょwwなにそれwww
kwsk。同名の会社って('A';;
953nobodyさん:2007/03/17(土) 20:01:52 ID:???
有限会社軟式
954軟式PHP:2007/03/17(土) 20:29:24 ID:???
>>953
サイト見てワロタ。残念ながら俺とは無関係です('A';)
955nobodyさん:2007/03/17(土) 20:40:33 ID:???
foreach ($A as $B => $C){
echo $C;}
というのがあるとして、
$C一覧をファイルに書き込みたいのですが、どうすればよいのでしょうか?

fopen($filename, "w" );
fwrite ($fp, ???);
956955:2007/03/17(土) 20:50:11 ID:???
あ、できたw
957nobodyさん:2007/03/17(土) 21:01:21 ID:???
>>955
$fp = fopen($filename, "w");
fwrite($fp, implode("\n", array_values($A)));
fclose($fp);
958nobodyさん:2007/03/17(土) 22:59:50 ID:qh3Deiz9
delphiのphp版が出るそうですが
使い心地はどんな感じになりそうですか?
959nobodyさん:2007/03/17(土) 23:11:11 ID:aRpV08Mf
PHP版のデバッガがまともに使えて、
Ajaxまわりのデバッガも統合してくれるのなら
わりとリッチなUIをソフトを作るのには
役に立つかも

あと、複雑なビジネスロジックを
組む必要があるひととか
960nobodyさん:2007/03/17(土) 23:13:28 ID:???
eclipseよりも軽ければ、Windows環境なら
使う人多くなるかもね
961nobodyさん:2007/03/17(土) 23:19:22 ID:???
馴れ合いは特定の板以外禁止だと言っておく。
962nobodyさん:2007/03/17(土) 23:35:30 ID:???
Linuxの自宅環境でmysql_connect()すると

Call to undefined function mysql_connect()
となります。
いろいろ調べてみるとリコンパイルしないとダメみたいなんですが
したのサイトを参考に
ttp://blog.livedoor.jp/gaiantbaba/archives/50127228.html
リコンパイルしようとするとこんなエラーがでます。
「ターゲット `clean' を make するルールがありません」

どうすればMySQLに接続できるでしょうか?
963nobodyさん:2007/03/17(土) 23:43:59 ID:???
>>962
./configureしなきゃMakefileは生成されない。
素直にディストリビューションのバイナリパッケージをインストールしとけ。
964nobodyさん:2007/03/18(日) 00:15:54 ID:???
>>962
Fedora Core のように apt 使って
パッケージをインストールできるのなら
apt-get install mysql-server
apt-get install php-mysql
でPHP + Mysql の環境が手に入るだろう
Centos みたいに yum 使うやつでも
yum install mysql-server
yum install php-mysql
でいける

何がなんでもソースからリビルドしたいっていうのなら
もはや、このスレの範疇から外れる
965nobodyさん:2007/03/18(日) 00:57:06 ID:???
>>964
できスマタ!
セックスベリーマッチョ!
966nobodyさん:2007/03/18(日) 01:16:30 ID:bI1rBwfw
apache2.0+php5.0+mysql5.0の環境ですが、mysqlに接続テストをしようと思い某本を元に413.phpというファイルを作りました。
ところがlocalhostからアクセスしてみると「ファイルを保存しますか?」というダイアログが出てくるだけです。
これはiniの構成の設定がまずいのでしょうか?
967nobodyさん:2007/03/18(日) 01:33:41 ID:F9igaXGh
マルチというかなんというか・・・
968nobodyさん:2007/03/18(日) 01:33:45 ID:???
>>966
いや、Apache側。httpd.conf。
969nobodyさん:2007/03/18(日) 01:48:21 ID:???
>>966
mysqlの前にPHPが動作して無いんじゃねぇか・・
970nobodyさん:2007/03/18(日) 02:00:18 ID:???
phpinfoは動いてるよ
Apacheちょっと調べて見ます。
ありがとう
971nobodyさん:2007/03/18(日) 02:06:19 ID:57Vv1IVv
すいません質問です
ゲストブックで、新規書き込み順に上から表示させたいと思っています。
書き込み内容を記録するtxtをlog.txtとし、書き込む内容を$kakiko とします
書き込み内容を、log.txtの先頭行にかきこませるにはどうしたらいいのでしょうか?

<?php
//$kakiko は投稿されたコメントに"\n"をつけ、ソース上で改行するようにしています。

$filename = "log.txt";
$fp=@fopen("$filename","a");
fputs($fp,"$kakiko");
fclose($fp);
?>

これだと過去の書き込み行の一番したに書き込まれてしまいます。
一番上に書き込みたいです。
972nobodyさん:2007/03/18(日) 02:09:39 ID:???
>>971
普通に一番したに書き込んで、
表示するときにarray_reverseでさかさまにすればいいんじゃね?
973nobodyさん:2007/03/18(日) 02:13:21 ID:57Vv1IVv
>>972
おおお できました
生き神様ありがとうございます

ありがたや ありがたや
974nobodyさん:2007/03/18(日) 02:14:27 ID:???
>>970
じゃあ、変なヘッダを吐き出してるんだと思う。
そんなコード書いたんだ。
975nobodyさん:2007/03/18(日) 03:04:24 ID:???
>>966
逆引きのmysqlのところにヘッダ吐き出すところなんてあったかな・・
976nobodyさん:2007/03/18(日) 06:00:56 ID:???
>>966
そのファイルを保存して中身見た?

>>971
"a"じゃなくて"r+"で開いて、全部読み込んで、ファイル空にして、
最新を1件書きこんで、さっき読み込んだ分を書き出す。
977nobodyさん:2007/03/18(日) 13:07:23 ID:PCUTa4CX
最近perlからPHPへ転向したばかりの物です。
長い文字列を変数に代入したい場合でシングル・ダブルクォーテーション共に
文字列に含まれている場合の囲い記号があればお教えください。
perlで書くところの $hoge=qq(文字列);

978nobodyさん:2007/03/18(日) 13:12:36 ID:???
ないよ。
php6を作ってる人にお願いすれば、できるようになるかもね。
979977:2007/03/18(日) 13:17:27 ID:???
>>978
ありがとうございました
980nobodyさん:2007/03/18(日) 13:38:41 ID:???
>>977
ヒアドキュメントを使えば?
981nobodyさん:2007/03/18(日) 13:39:54 ID:???
>>977
>長い文字列を変数に代入したい場合
こういうケースは、ヒアドキュメント使えばいいんじゃないの?
Perlでもあるでしょ?

$hoge = <<<EOD
this is a 'pen'
that is a "pen"
EOD;
982nobodyさん:2007/03/18(日) 16:23:57 ID:???
こっちのほうが基本っぽい感じはする

$test = "this is a 'pen' \n that is a \"pen\"";
print $test;
983nobodyさん:2007/03/18(日) 17:41:36 ID:zWBD4mpr
半角英数字以外の文字が入力された場合
半角英数字に置き換えるにはどうしたらいいですか?
【例】 あdgsi<>--234aaa
     変更後 ↓
    dgsi234aaa
984nobodyさん:2007/03/18(日) 18:02:37 ID:???
>>893
単純に半角英数字以外弾くということなら、

var_dump(preg_replace('/[^[:alnum:]]/','','あdgsi<>--234aaa'));

実行結果:string(10) "dgsi234aaa"

こんなところだろうか。
985984:2007/03/18(日) 18:03:11 ID:???
ごめん>>983ねorz
986nobodyさん:2007/03/18(日) 18:14:50 ID:zWBD4mpr
>>985
なるほど、ありがとうございます。
987nobodyさん:2007/03/18(日) 19:15:59 ID:p3CjS1/Y
Shift_JISで
<input name="あいうえお" value="かきくけこ">
と、nameにどうしても日本語を使いたいのですが、
nameが「メール」とかの時に
$_POSTの配列が壊れてしまったり、文字化けしたりで困ってしまいました。
Shift_JISに問題があることは承知なのですが、
携帯用サイトなのでUTF-8にするのも気がひけて…。
なにかいい方法はないでしょうか?
988nobodyさん:2007/03/18(日) 19:29:22 ID:???
>>987
nameに日本語使うやつがバカ
「どうしても」の理由を提示してください
989nobodyさん:2007/03/18(日) 19:33:58 ID:???
>>988
urlencode&urldecodeすれば?
%がHTML的にどうなのかは知らない
しかしなんでそんな気持ち悪いことを?
まあ気持ち悪いと思うこと自体、洗脳されてるのかもしれんがw
990nobodyさん:2007/03/18(日) 19:40:38 ID:p3CjS1/Y
>>988-989
レスありがとうございます。
いや、私も今まではこんなこと気持ち悪くてやる気にもならなかったんですが、
XMLのデータを検索するフォームを作ってまして、
そのXMLデータの中の要素名が日本語なんです。
このフォーム自体もXMLからXSLTで生成してる、っていう感じで…。
それでnameでXML要素名を紐付けられたらいいな〜って思いまして。

urlencodeしとくのよさげですね、もうちょっとがんばってみます。
991nobodyさん
いや、半角記号と同じコードを多数含むSJISでそんな真似しようとするのは
気持ち悪いと思って当たり前だと思うし、そうでないなら頭どうかしてる