【PHP】下らねぇ質問はここに書き込みやがれ Part19
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/04/09(日) 01:31:18ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
過去スレは>>2-3あたり
0655644
2006/04/20(木) 23:26:51ID:ryIl/Q77詳しい説明でたすかります。
自分のコードは簡単にいうとこうやって書いてます。
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-jp">
<head>
<html>
<?php
$hoge = aaa;
?>
<p><?= $hoge ?></p>
</html>
もしくは表示したいhtml全体を$bodyとかに .= で詰め込んでって
最後にprint $bodyとかです。
これを書くときにエディタで設定(?)をeucにしてます。
0656nobodyさん
2006/04/20(木) 23:31:18ID:???> <p><?= mb_convert_encoding($hoge, "EUC-JP", "UTF-8") ?></p>
とかやれば直らないか?
0657nobodyさん
2006/04/20(木) 23:32:13ID:???> スクリプトのコードというのはエディタで指定するもので、
それはその通り。
> 出力というのはcharset=utfとかそういうのですよね?
違う。
0658nobodyさん
2006/04/20(木) 23:59:41ID:???内部コードeucでやるやつは時代遅れの要らない子
0659654
2006/04/21(金) 00:09:26ID:2Wlm0Z2o0660nobodyさん
2006/04/21(金) 00:10:04ID:xjsHzaEwこのエラーって、どういう意味?
0661名無し募集中。。。
2006/04/21(金) 00:16:31ID:IwWXiYO9@が入ってるあたりの記述が間違ってる
0662nobodyさん
2006/04/21(金) 00:19:16ID:xjsHzaEw@は、どこにもいれてないんだけど…
0663nobodyさん
2006/04/21(金) 00:20:19ID:???おいらは普段は全角空白なんて使わないから出した事がないけど。
0667654
2006/04/21(金) 00:28:40ID:2Wlm0Z2orawurlencode ("あいうえお")
でもこれってURLをエンコードする関数ですよね?
0668nobodyさん
2006/04/21(金) 00:31:00ID:???そもそもURL以外をURIエンコードしたいと思った理由はなに?その理由によるのでは。
目的が分からんのにダメとか言えんよ。
0669nobodyさん
2006/04/21(金) 00:33:03ID:???3→3
2→2
こんな感じの処理です。
0671654
2006/04/21(金) 00:38:17ID:2Wlm0Z2oフォームに入力された文字をPHPで簡単にエンコードしたいのです。
今までは専用のソフトウェアをインストールして行っていたのですが…
0673nobodyさん
2006/04/21(金) 01:10:44ID:???全部のページでsession_start();してるんですけど、
サーバの負荷たかいですか?
0675nobodyさん
2006/04/21(金) 01:51:43ID:MBv/PjUMスクリプトの書き方を教えて下さい。
0676644
2006/04/21(金) 02:41:38ID:j0KwlCv2>649
すごいです。set names ujisをdbから読んでくるページに書いたら
とりあえず全部ちゃんと表示されました。
>657
「出力」がやっぱりいまいちわかりません。
php.iniで設定するやつですか?
>658
色々調べたのですが、utf-8はもう実質標準ぽいですね。
ところで気になっていたのですが、
内部コードというのはどこで指定するのですか?
外部はcharset=Shift-jisとかいうやつですか?
0679nobodyさん
2006/04/21(金) 03:13:55ID:???http://***.com/hoge1/test.gif
http://***.com/hoge2/test.gif
別ディレクトリにある”test.gif”を、PHPのフォームからアップロードして一括更するような。
実験用にローカルで複数ディレクトリを作成しているのですが、1つを更新すると残りは
古いままのファイルが残り、常に最新状態に出来ないので、不便に感じています。
参考文献やサイトがあったら教えて下さい。(ググり方がわかりませんでした…
0680675
2006/04/21(金) 03:18:35ID:MBv/PjUMプログラムの流れでもいいのでよろしくお願いします。
0682nobodyさん
2006/04/21(金) 03:20:57ID:???その複数のtest.gifってのは全部同じ内容?
だったらPHPプログラムでいちいち何とかするより、
サーバー側で全部シンボリックリンクしてやるのが早い
0683679
2006/04/21(金) 03:28:34ID:???そうです。全く同じファイルです。ただ、内容が変わっていると言うだけで。
(タイトル画像を変更とか)
ジンボリックリンクですね。調べてみます。ありがとうございました。
0684nobodyさん
2006/04/21(金) 03:29:10ID:???POP3サーバーに接続
USER、PASSを順に送信
LISTを送信して一覧取得
受信メールがあればRETRを送信して読み込み
QUITを送信して接続終了
0685nobodyさん
2006/04/21(金) 03:41:54ID:???ttp://pear.php.net/manual/ja/package.networking.net-pop3.php
0686nobodyさん
2006/04/21(金) 04:24:33ID:???>>644はエンコードについては思いっきり浅い知識しかないみたいだ。
っていうか、まず「バイナリとは何か・テキストとは何か」って辺りから
説明しないと根本的に理解してくれないんじゃない?
0687644
2006/04/21(金) 11:31:57ID:5+Hakngk博識すぎて情けないです。
特に「出力は作るもの」という概念は目から鱗です。調べてみます。
いままでhtmlだけで何かを表示させていたときは、
とりあえず、meta content charset=を指定すれば文字化けしませんでした。
これを記述しなくても、IEなんかはかってにsjisにしていたようですし、
他のブラウザも文字判別(自動)みたいな設定があって、
特に意識する必要がなかったと思います。
phpを書くようになってから、ファイル自体にエディタで文字コードを
指定することがあると知って、何の為にやるのか??だったのですが
meta content charset=で指定したものと同じにしていました。
エディタによっては、これをバラバラにするとアラートが出ました。
問題はmysqlを絡めてからで、my.cnfやphp.ini、それから
phpmyadminなど、至るところに文字コードを指定してくれと言われて
正直目的が分からず閉口しています。
いろんなページをぐぐったのですが、
よく言及されているのはやはり「内部コード」「出力」です。
なにか体系的にまとめられているページなど
参考になりそうなものがあったら教えて頂きたいです。
まずはセオリー的に簡単に言っちゃえばここはこうするのがベターみたいな
ものがあるらな、併せて教えて頂けると助かります。
よろしくお願いします。
0688nobodyさん
2006/04/21(金) 11:32:38ID:5+Hakngk○薄識
すいません
0689nobodyさん
2006/04/21(金) 11:47:17ID:???頑張れば伸びるよ。少し体系的に学ぶといいよ。
0691nobodyさん
2006/04/21(金) 12:09:11ID:???あのさ、キミ深く勘違いしてるから念のため繰り返し言うけどさ、
このエンコードの件は、別にPHPとかMySQLとか関係ないからね。
HTMLだけだってソースのエンコードと出力指定(charset)は合わせなきゃいけないし。
キミはメールソフトはアウトルック・エクスプレスか?
だったら、受信したメールを「表示」→「エンコード」で手動で別のエンコードにしてみてごらんよ。
あるいは、Yahooのページのソース(EUCで書かれてる)をWin付属のメモ帳(SJIS専用)で開いてごらんよ。
そしたらうっすら何か分かってくるだろう。
簡単な「まとめページ」みたいなので一発で楽して覚えようとしないで、コツコツ勉強したまえ。
0692691
2006/04/21(金) 12:11:43ID:???>別にPHPとかMySQLとか関係ない
「関係ない」って書くとまた別の誤解をしそうなので、
「PHPとかMySQLとかのせいじゃない」に変更しようかな。
0693nobodyさん
2006/04/21(金) 12:27:22ID:???ここの人ならわかると思うのでちょっと付き合ってください。
BlogとかでRSSがついてるのありますよね?
あれってBlogの記事ををRSSに格納して、RSSからBlogの文章を出力しているのですか?
それともBlogの記事をhtml(php,cgi etc)とRSSに同時に出力しているのでしょうか?
RSS(Atom)系のスレあったら教えてください。
0694693
2006/04/21(金) 12:31:12ID:???簡潔に言うと、RSSはリーダーでも読めるようにオマケでついているのか、
システム全体に影響与えるような重役を担っているのかのどちらだろう?
ということです。
0695644
2006/04/21(金) 12:41:13ID:5+Hakngk恐縮です。がんばります。
>691
具体的な指示、参考になります。ありがとうございます。
ダウンロードしたヤフーのソースファイルをいじってみたのですが、
確かにエディタの機能として指定できる文字コードとhead部分に書く
charsetをバラバラにすると化けます。
コードを記述したときの指定と、表示するときの指定(headのcharset)は
合わせないとまずいという事ですね。
この感じでいくと、dbに登録される(された)ときの文字コード(mysqlの中の文字コード?)と僕が書いた、dbの内容を引っ張ってきて表示したい
ページのcharsetが違う事がいけない気がしますが
この考え方はあっていますでしょうか?
あと、687さんは出力指定(charset)とかかれていますが、
657の人は出力はcharsetではないと書いていて、謎です。
0696nobodyさん
2006/04/21(金) 12:41:28ID:???まずRSSが果たす役割を勉強した方がいいよ。
で、なぜブログにRSSが付いているのかを考える。
そこまでは完全にスレ違いなので、それ以降に考えが及んだときにまたお越し下さい。
0697644
2006/04/21(金) 13:51:20ID:5+Hakngkレンタルサーバのmysql(sjisで入ってる)をエクスポート
したのを自分のローカル環境(utf)にインポートする作業をやったんですけど、
どこをどうするとどうなるみたいのが見えてきました。
エクスポートでダウンロードしたファイルをエディタで開いたら
当然のようにsjisだったのでutfにして保存し直して
mysqlにutfでインポートしました。phpmyadminの表示も正常。
それを文字セットutfでcharsetもutfの状態で表示させました。
このままでは化けるんですが、これは環境依存ぽいのです。
最後はやはりset names utf8のクエリを打ちました。
どうもこのset namesは最強っぽい気がします。
取り急ぎ報告します。いままでアドバイス下さったかた、
最後までつきあって下さった691さん、ほんとうにありがとう。
0699nobodyさん
2006/04/21(金) 14:01:13ID:???設定できる・しなきゃならないのは、
・Mysql上で設定する、格納データの文字コード。
・PHPスクリプトを編集するエディター上で設定する、PHPスクリプトの文字コード
・PHPエンジンに教えてあげる、スクリプト本体の文字コード(PHP.iniでもスクリプト内でも指定可)
・PHPスクリプト内で指定する、Mysqlにアクセスする際の文字コード
・PHPスクリプト内で指定する、HTTP出力の際の文字コード
・ブラウザー・Webサーバーに教えてあげる、HTTPヘッダーで指定するHTMLの文字コード
・ブラウザーに教えるために出力するHTML内で指定する、HTMLの文字コード
少なくともこれらの区別・統一をきちんと図ってそれぞれ指定しなきゃダメだよ。
わかんなきゃ全部UTF-8に統一しとけ。
0700644
2006/04/21(金) 14:28:23ID:5+Hakngk素晴らしいです。感謝します。
・Mysql上で設定する、格納データの文字コード。
これはmy.iniで設定するものでしょうか?
[mysqld] default_character_set=utf8 とか。
これに従ってmysqlに登録されたデータの文字コードが決まるんですよね?
・PHPスクリプトを編集するエディター上で設定する、PHPスクリプトの文字コード
これは分かります。スクリプト自体の文字コードですね。
・PHPエンジンに教えてあげる、スクリプト本体の文字コード(PHP.iniでもスクリプト内でも指定可)
これは、,mb_convert_stringsの類ですかね。php.iniにもmb_string系の指定が結構ありますよね。
・PHPスクリプト内で指定する、Mysqlにアクセスする際の文字コード
これは、select文を打つときというか、コネクトするときに指定?
・PHPスクリプト内で指定する、HTTP出力の際の文字コード
これはechoとかするときにphpエンジンが何の文字コードを吐くかってことかな?
このへんはかなり分からないです。
・ブラウザー・Webサーバーに教えてあげる、HTTPヘッダーで指定するHTMLの文字コード
・ブラウザーに教えるために出力するHTML内で指定する、HTMLの文字コード
これは別物なんですか?特に後者はhtml文を書いているだけでも関係してきそうですが、意識したことがありません。
自分の理解はまだまだこの程度です。情けないです。
推測の範囲で申し訳ないのですが、結構省略しちゃうことがあると
思うんですけど、特別に指定しなかった場合は最終的にどこに依存するの
でしょうか?
0701nobodyさん
2006/04/21(金) 14:35:41ID:???0702nobodyさん
2006/04/21(金) 14:37:49ID:???0703644
2006/04/21(金) 14:52:20ID:5+Hakngkすいません。自分ばっかりかいて申し訳ないっす。
なんか極論的にはset names = utf8があればOKだしなければだめ的な
雰囲気になってきました。
MAMPだからかな。
0704639
2006/04/21(金) 16:02:39ID:???ををを・・・単純だけどこれで切り分け出来ますね、まったく思いつきませんでした(泣
これで逃げたいと思いますありがとうございました
ajaxも考えたんですが、この箇所だけにxml吐き出してブラウザ毎に接続アレコレしてっとなると・・・
ちょっと微妙な感じだったのでウダウダしてました。
いやその前に使ったことすら無いのですが
0707675
2006/04/21(金) 16:54:47ID:MBv/PjUM今少しずつ作っているのですが
POP3サーバに接続して、特定のメールアカウントの分だけ取得したい場合は
LISTにアカウントを書いておけば良いでしょうか?
0708nobodyさん
2006/04/21(金) 17:07:05ID:???0709675
2006/04/21(金) 17:27:25ID:MBv/PjUMあ・・・
0710nobodyさん
2006/04/21(金) 17:43:51ID:???とりあえずこの辺でも読むとか。
http://www.atmarkit.co.jp/fnetwork/rensai/netpro07/netpro01.html
0711nobodyさん
2006/04/21(金) 17:57:10ID:KwFOTHkhあ=> E3041
という結果が欲しいのですが
0712nobodyさん
2006/04/21(金) 19:10:47ID:???文字列を取得したいのか数値を取得したいのか知らないけど、bin2hex、ord、sprintfから好きなのえらんで。
0713nobodyさん
2006/04/21(金) 21:15:25ID:???aoki,32
takahashi,6013
…というような形式のファイルdata.txtがあり、
それをそれぞれの数値の部分でソートしたいのですが、どのような方法がありますでしょうか?
$lines = file('data.txt');
と配列にしましたが、その先が分かりません。
よろしくお願いします。
0714nobodyさん
2006/04/21(金) 21:20:33ID:q11WDkz80717nobodyさん
2006/04/21(金) 21:30:20ID:???カレーを作りたいんです。
お鍋に水を入れましたが、その先が判りません。
と言っている様な物だ。
もう少し自分で頑張れ。
ヒント:つ「配列廻してさらに配列生成」
0719nobodyさん
2006/04/21(金) 21:46:46ID:???array_multisortは配列の1次元目でしか(配列の関係を崩さず)ソートできない。
この場合には、usort関数を使う必要があるだろう。
0721nobodyさん
2006/04/21(金) 21:58:05ID:???…なんか釣られてる気がしないでもないが
foreach($lines as $line) {
list(, $key[]) = explode(",", $line);
}
array_multisort($key, $lines);
print_r($lines);
結果
Array
(
[0] => aoki,32
[1] => yamada,521
[2] => takahashi,6013
)
これでいいんだろ?あほですか?
0722nobodyさん
2006/04/21(金) 22:05:06ID:???>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0723nobodyさん
2006/04/21(金) 22:16:31ID:???720 名前:nobodyさん[sage] 投稿日:2006/04/21(金) 21:57:38 ID:???
>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0724nobodyさん
2006/04/21(金) 22:18:05ID:???722:nobodyさん :2006/04/21(金) 22:05:06 ID:??? [sage]
720 名前:nobodyさん[sage] 投稿日:2006/04/21(金) 21:57:38 ID:???
>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0726nobodyさん
2006/04/21(金) 22:57:53ID:q11WDkz8あの・・・ありますけど・・・
0727nobodyさん
2006/04/21(金) 23:03:54ID:???試験的にセキュリティ無視でfwrite()とフォームを使ってスクリプトを書いたら***.phpで保存するといったプログラムを組んだのですが、
Warning: Unknown(): SAFE MODE Restriction in effect. The script whose gid is 1000 is not allowed to access
というエラーを吐いてくるのですが
どう対処したらよいでしょうか
0729727
2006/04/21(金) 23:07:44ID:???対処は無理なのか・・・・
0730nobodyさん
2006/04/21(金) 23:07:45ID:xjsHzaEwこれって、どういうエラー?
ちなみに221行目は、$tag .= "<form action=\"$_SERVER['PHP_SELF']\" method=\"post\">";
なんだけど・・・
0731nobodyさん
2006/04/21(金) 23:08:36ID:???どっちにしろ無駄だけど
0733nobodyさん
2006/04/22(土) 00:31:56ID:???具体的にはユーザー情報を格納したcookiesを発行なんかしちゃうと
ほかのサイトでも読み出しできてしまう
ということなんでしょうか?
でもそしたらどうやってログインして、複数のページを渡り歩けるようにすればいいんでしょうか・・・・
0734nobodyさん
2006/04/22(土) 00:49:23ID:???まず、最近話題のCSSXSSとCSSは全くの別物なので勘違いしないように。
XSSはphpでの出力時に、危険性のある全ての変数(ユーザ入力の値など)を全てhtmlspecialcharsでエスケープすれば防げる。
以上。
0735733
2006/04/22(土) 00:57:45ID:???ありがとうございます
クロスサイトスクリプティングに関しての質問でした
CSSとかくと混同するのでXSSと書くとか書かないとかまでググって来ました
タグを入れられるようにして拡張性をと考えていましたが、
便利の裏には様々な問題があるんですね・・・
0736nobodyさん
2006/04/22(土) 01:36:52ID:???0738nobodyさん
2006/04/22(土) 16:13:48ID:8MNYgK3yがあったとして、答えの二文字目までを表示させる事は可能でしょうか?
その場合どうすればよろしいでしょうか?
5/3の答えは1.666666・・・と続いていくので
2文字目、つまり 1.6まで表示させたいのです。
0741nobodyさん
2006/04/22(土) 17:19:10ID:he2KK3wFtest.phpにPOSTでデータを渡せますか?
(すれ違いでしたらすみません。。)
0742nobodyさん
2006/04/22(土) 17:20:36ID:kQFmUDLJ$birth=2006年4月22日
というデータが入っているとします。これを
$birth1=2006
$birth2=4
$birth3=22
という風に分解して各変数に入れるにはどうしたらいいのでしょうか?
0743nobodyさん
2006/04/22(土) 17:26:19ID:3kTedSI2これでエンコードしてみるものの、「"」「'」「\」といった記号をエンコードすると
それぞれ「%5c%22」(\")「%5c%27」(\')「%5c%5C」(\\)となってしまいます。
つまりエスケープされている訳ですが、こういった記号をエスケープさせないように
するにはどうしたら良いでしょうか?バックスラッシュ(\)までエンコードされて困っております。
宜しくお願いします。
0744nobodyさん
2006/04/22(土) 18:07:05ID:???$birth = "2006年4月22日";
$birth1 = mb_substr( $birth, 0, 4 );
$birth2 = mb_substr( $birth, 6, 1 );
$birth3 = mb_substr( $birth, 8, 2 );
// これで目的は達成できるが、月が2桁だったりするとだめぽ
$birth = "2006年4月22日";
list( $birth1, $birth2 ) = explode( '年', $birth );
list( $birth2, $birth3 ) = explode( '月', $birth2 );
list( $birth3, $birth4 ) = explode( '日', $birth3 );
// これだ!
0745742
2006/04/22(土) 18:24:54ID:???出来ました!こういう使い方があるんですね・・。
よくわかっていないので、関数を調べながら理解出来るようにします。
ありがとうございました。
0746743
2006/04/22(土) 18:27:38ID:3kTedSI2>>741
POSTデータを渡そうと思えば出来るけど面倒だと思われ。
クエリでいいじゃん。。
0747nobodyさん
2006/04/22(土) 18:32:48ID:???この画像って勝手に使っていいの?
0748nobodyさん
2006/04/22(土) 18:35:16ID:???今更だけど
$birth = '2006年4月22日';
preg_match('/^(\d+)年(\d+)月(\d+)日$/',$birth,$matches);
list($birth1,$birth2,$birth3) = array($matches[1],$matches[2],$matches[3]);
ってのもあり
0750741
2006/04/22(土) 19:05:13ID:he2KK3wF> POSTデータを渡そうと思えば出来るけど面倒だと思われ。
POSTで渡す方法を教えていただけないでしょうか?
#GETも考えたのですが、渡すデータが大きく無理でした。。
> クエリでいいじゃん。。
すみません、この場合のクエリがわかりません。。。
(データベースのクエリ?じゃないですよね。。)
0751nobodyさん
2006/04/22(土) 19:13:13ID:UThkpkc+0752nobodyさん
2006/04/22(土) 19:40:49ID:1mp5s2wDShift_JIS → %82%a0%82%a2%82%a4%82%a6%82%a8
EUC-JP → %a4%a2%a4%a4%a4%a6%a4%a8%a4%aa
UTF-8 → %e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
これらのように、文字コードによって違いますよね?
この文字コードを指定してエンコーディングする方法は無いでしょうか?
0753nobodyさん
2006/04/22(土) 19:45:40ID:???送信者のメールアドレスは$fromの中に格納されます。
$write = false;で書き込みが中断されます。
//このアカウントからのみ受信
$carrier = array('docomo.ne.jp','ezweb.ne.jp','pdx.ne.jp');
//キャリア限定処理 追記部分
if(!in_array('$from',$carrier){
$write = false;
}
これだと駄目ぽみたいです。ご意見ください。
0754nobodyさん
2006/04/22(土) 20:05:35ID:???■ このスレッドは過去ログ倉庫に格納されています