【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あたり
0583nobodyさん
2006/04/19(水) 20:15:11ID:???サーバの文字コードとDBの文字コードとスクリプト内部処理の文字コードと
HTML出力の文字コードの全てを「UTF-8」にすれば完璧です。
それ以外の心配はいりません。
0584nobodyさん
2006/04/19(水) 20:27:20ID:lD0hd5jB$myArray_sum = array_sum($myArray)
これでは値が0になってしまいorz
配列自体に数値が入っているのは確認しました。
配列の配列 array_sum/二次元配列 array_sum/等
でググったんですけど分かりませんでした。ど
うやったらいいでしょうか?
よろしくおながいします。
PHP Version 4.3.9
0585nobodyさん
2006/04/19(水) 20:28:17ID:yEjSiGYTレンタルサーバでも変更できますか?
0586nobodyさん
2006/04/19(水) 20:40:02ID:???$myArray_sum = 0;
foreach($myArray as $a) $myArray_sum += array_sum($a);
かなぁ
もっと簡単な方法ってあるのかな。
0587nobodyさん
2006/04/19(水) 20:45:19ID:???掲示板のようなもので、データを書き込んだら
なぜか「ソ」のあとに\が付くんですが、なぜでしょう。
カタカナを確かめるとソ以外の後ろには付きません。
htmlspecialcharsと、str_replaceで、改行、キャリッジリターンを<br>で変換する処理をしたあと、
ログに書き込んでいます。ログに書き込まれた時点で\が付いてるので表示の問題ではないようです。
お願いします。
0589587
2006/04/19(水) 20:51:57ID:???0590nobodyさん
2006/04/19(水) 20:55:12ID:???OS自体の文字コード。
WindowsはShift_JISで変更不可。
Fedora Core (Linux) なら UTF-8 が標準。(設定で変更可)
かんたんに言えばこんなかんじだ。
0592nobodyさん
2006/04/19(水) 20:57:39ID:???ん、ケータイ用サイトの文字コードもUTF-8にしているよ。
auとtu-ka、WILLCOMは全機種UTF-8対応でしょ。
(ゲートウェイで変換されるから旧機種でも問題無い)
たしかDoCoMoもよっぽど古い機種じゃなけりゃ問題ないとおもう。
たぶんアクセス解析すりゃ98%以上がUTF-8対応じゃないの?
0593nobodyさん
2006/04/19(水) 20:58:05ID:???> EUC-JPに比べてUTF-8を使うメリット
> ・最近のUnix/Linux系OSではUTF-8が標準であることが多い
「多い」ってことは全部じゃない?
> ・Windows/Macでも内部コードとして使われてきている
「きている」ってことはやっぱ全部じゃない?
0594584
2006/04/19(水) 20:59:35ID:lD0hd5jBありがとうございました。
数もそう多くないんで処理できれば問題なかったんで。
加算代入の存在忘れてました。
0595nobodyさん
2006/04/19(水) 20:59:47ID:???全部では無い。
ただ、EUC-JPよりは利用率が圧倒的に高い。
> 「きている」ってことはやっぱ全部じゃない?
全部では無い。
WinはShift_JISの箇所が一番おおいしな。
EUCはUnix用のコードだからWinの内部コードではないっしょ。
0596nobodyさん
2006/04/19(水) 21:01:08ID:???容量制限の問題はたしかにあるな。
> Winのメモ帳などでいじるとBOMがついて誤作動する
そもそも、EUCだとWinのメモ帳じゃ弄れないよね。
0598580
2006/04/19(水) 21:19:24ID:???0600nobodyさん
2006/04/19(水) 22:23:19ID:???XHTMLと文字コードは関係無いわけだが。
あとMOVAでWeb巡回する人なんてそんないないだろ。
2円/1パケット=128バイト もぼったくられるでしょ。
1MBで2048円にもなる。
0601nobodyさん
2006/04/19(水) 22:24:17ID:???0602nobodyさん
2006/04/19(水) 23:38:56ID:???公式嫁。
HTMLはSJIS、XHTMLはSJISかUTF8と書いてある。
つーか、わざわざイリーガルなことをせず素直に一般的な方法を選べよ。余計な事をして後悔したくなければな。
0603nobodyさん
2006/04/20(木) 00:22:29ID:???公式の情報が正しいとは限らないわけだが。
特にDoCoMoの情報はいい加減。
[email protected] というメールアドレスが
RFC準拠だとも書いてあるぞw
0605nobodyさん
2006/04/20(木) 01:00:15ID:???いくら大丈夫だからって気持悪い。
0606nobodyさん
2006/04/20(木) 03:59:38ID:???Warning: Invalid argument supplied for foreach() と怒られます。
--------------------------------------------------
<?php
include('mainmenu.inc');
$page = new mainmenu(HOME);
$array = array('HOME' => 'home.php','SERVICES' => 'service.php','PORTFOLIO' => 'portfolio.php','CONTACT' => 'contact.php');
$page->ex = $array;
$output = $page->mainmenu('HOME');
print $output;
?>
--------------------------------------------------
0607606
2006/04/20(木) 04:01:33ID:Rr5Gf5oo--------------------------------------------------
<?php
class mainmenu
{
function mainmenu($atpage)
{
$print .= '<table align="center" width="360" cellpadding="0" cellspacing="5">';
foreach($this->ex as $key => $val)
{
$print .= ahref("$val","$key","$atpage");
}
return $print;
}
}
function ahref($link,$name,$atpage)
{
if($name != $atpage)
{
return "<td><h2><center><a href=$link>$name</a></h2></td>";
}
else
{
return "<td><h2><center>$name</h2></td>";
}
}
?>
--------------------------------------------------
正直試行錯誤しながら適当に書いたのですが、エラーの理由が分かりません。
表示をちゃんと出来ているのでエラーを黙らせるだけでもいいのですが・・。
0609606
2006/04/20(木) 04:09:36ID:Rr5Gf5ooclass mainmenu
{
var $ex;
function mainmenu($atpage)
{
といった感じで、他の変数も宣言してみましたが変わりませんでした・・。
0610nobodyさん
2006/04/20(木) 04:40:15ID:???あーわかった。
new した時点でコンストラクタが実行されるのに、その時点ではまだ ex に値が入ってないからだね。
0611nobodyさん
2006/04/20(木) 05:48:34ID:5qR+ryMI$html = implode('', file('http://hoge.com/'));
print $html;
?>
これを、ローカルで実行すると「問題が発生したため、Apache HTTP Server
を終了します。 」とでるが、XREAにアップして実行するとエラーになりません。
ローカルでエラーにならない方法知ってる方、いらっしゃいますか?
0612nobodyさん
2006/04/20(木) 05:56:37ID:A22L6gzyどのように書けばいいのでしょうか。
誰か教えてくれませんか。
0613nobodyさん
2006/04/20(木) 06:18:02ID:???リモートファイルが使えるようになってる?phpinfo()で確認
http://jp.php.net/manual/ja/features.remote-files.php
>>612
「一定時間ごとに起動」はcronやat、タスクスケジューラなど
スクリプト起動しっぱなしなら永久ループでsleepとか
0614nobodyさん
2006/04/20(木) 06:19:32ID:???意図がよくわからない。応答返さずに定期的にアクティブになるならsleepだけど、意味ないわな。
一定時間ごとに応答が欲しいなら、ブラウザにRefresh指定しなさいな。
0615nobodyさん
2006/04/20(木) 06:42:41ID:5qR+ryMIphp.ini の設定は次のようになっています。
; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On
ちなみにOSはWindowsXPです。
0616nobodyさん
2006/04/20(木) 07:15:59ID:A22L6gzycronとは初めて聞いたのですが、どのようなものなのですか。
書き方を知ろうと思いググってみたのですが、
どう書いたらよいのか分からなくて。
良かったら、教えていただけませんか。
0617nobodyさん
2006/04/20(木) 07:37:21ID:A22L6gzyphpinfo();で確認ってことじゃないの?
0618nobodyさん
2006/04/20(木) 08:01:58ID:???ちなみにマニュアルは読んだ?
>>注意: PHP 4.3未満のWindows版PHPは次の関数については リモートファイルアクセスをサポートしてません: include(), include_once(), require(), require_once(),
>> そして参照LVIII, イメージ関数(image)拡張によるimagecreatefromXXX関数。
はどう?
確認するのはphpinfo()で表示されるRegistered PHP Streamsにhttpがあるかどうか。
#関係ないけど最初の implode('',file('...'))はfile_get_contentsのほうがいいかなっと
>>616
OS書いてないからわかんないけど、cronは定期的に自動実行するUNIX系のツール
phpのスクリプトを設定した時間がきたら動かすってことだな。
ぐぐればわんさか出てくる。WinならVectorでもいけばそういうツールあると思うけど。
0619613
2006/04/20(木) 08:05:34ID:???べくたーにこんなんあったけど
http://www.vector.co.jp/soft/winnt/util/se232096.html
UNIXのcronみたいなの
0620nobodyさん
2006/04/20(木) 09:58:55ID:???お前、>>536で提示されてるリンク先をよく読んだか??
読んでもまだ意味がよく分からないようなら相当ヤバイので、
エンコード云々に限らず、Webプログラム開発自体を止めたほうがいいよ。
0621nobodyさん
2006/04/20(木) 10:40:57ID:???Apacheは
./configure --prefix=/usr/local/apache --enable-module=so
PHPは
./configure --without-mysql --enable-mbstring --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/php4
でインストールしました。
Apacheを起動し、<?php phpinfo(); ?>を書いたファイルにアクセスしたところ、php.iniのパスは/usr/local/php4/libでした。
ところが、/usr/local/php4/lib/にphp.ini-recommended⇒php.iniとして配置し、Apacheを再起動しても設定が反映されません。
何か作業に見落としがあるのでしょうか?
0622nobodyさん
2006/04/20(木) 10:55:22ID:???マニュアルは読みました。
PHP Version は 4.4.2 です。
Registered PHP Streams はphp, http, ftp, compress.zlib で
httpはあります。
0626nobodyさん
2006/04/20(木) 13:30:31ID:X9ueaSfEサーバーA には $_POST["id"]でidを受信
サーバーB には file_get_contetnsプログラムをおきます。
以下、全てサーバーBにプログラムをおきまして、サーバーAに対し
file_get_contents("http://www.hoge.com?id=3");
をする事により、引数の id 3 をデータベースに登録したいのです。
しかし、サーバーBのレンタルサーバーによっては
file_get_contents("http://www.hoge.com?id=3");
をしても id 3 がデータベースに登録されない場合があります。
どうすればどのサーバーBでも
file_get_contents("http://www.hoge.com?id=3");
をすれば登録することができるでしょうか。
ご存知の方いらっしゃいましたら、ご教授下さい。宜しくお願いします。
0627606
2006/04/20(木) 13:33:55ID:???出来ました、ありがとうございます!
クラス名とコンストラクタ名を同じにしていたのが混乱の原因だったようです。
ちなみに「クラス名と」と書こうとすると、「クラスメイト」と変換されるのもオブジェクト指向だからこそだなと思いました。
0629nobodyさん
2006/04/20(木) 13:41:16ID:X9ueaSfEレスありがとうございます。
ページ自体は表示されるのですが、
?id=3 の ?以降の文字列が全く無視されてしまいます。
引数を送りたいだけなので require や include で試しても
うまく取得してくれませんでした。
0630621
2006/04/20(木) 13:45:26ID:???たまたま手元に3があったのと、問題発生時の情報が新しいOSに比べて多く見つかること。あとは3がさほど昔のOSだとは思っていないことですね。
0631nobodyさん
2006/04/20(木) 14:03:11ID:???ちゃんとファイル名まで書け
file_get_contents("http://www.example.com/index.php?id=3");
0634nobodyさん
2006/04/20(木) 14:36:17ID:???ファイル名まで書かないとダメだったんだろうか
0635nobodyさん
2006/04/20(木) 15:55:39ID:???たまに次のようなエラーがでます。
Check the manual that corresponds to your MySQL server version for the right syntax to use near 'hogehoge hoge' <[email protected]>', 'RE: hogehoge
<>か'あたりをエスケープしなきゃいけない感じでしょうか?
ただ、できれば<>をそのままデータベースに入れたいなと思ってます。
0636nobodyさん
2006/04/20(木) 15:59:35ID:???通せばいいって話じゃなくて?
0637nobodyさん
2006/04/20(木) 16:07:10ID:???名称・アドレス併記の際のクォートが引っかかってるんだろ。
0639nobodyさん
2006/04/20(木) 18:39:16ID:???フォーム自体は、あるボタンが押された時にjavascript(つまりはDHTML?)で表示させています
このjavascriptを外部の***.jsとした場合、HEAD部で***.jsのかわりに***.phpとする感じで
フォームの要素を動的にしたいんですが上手くいきません
行数が少なければhtml内部に書いて事なきを得るんですが・・・
どなたかヒントだけでいいのでお願いします(TT
0640nobodyさん
2006/04/20(木) 18:42:31ID:???それがAjax
0643nobodyさん
2006/04/20(木) 21:47:18ID:???<script src="PHPファイル"></script>
じゃなく
<?php require_once("PHPファイル"); ?>
にして、
外部PHPファイルで
<script>
JavaScriptコード
</script>
という内容にするのはダメ?
0644nobodyさん
2006/04/20(木) 22:16:17ID:ryIl/Q77MAMPというソフトを使ってローカル開発環境をつくりました。
MAMP付属のphpmyadminでdbを覗くと、
ちゃんと日本語表示できているんですが、
自前のスクリプトで呼び出すと文字化けします。
MAMPはutf8がいいみたいなんですけど、
自分のコードはeucです。
でもphpmyadminできちんと表示できたということは、
設定次第では自分のスクリプトでもちゃんと表示できるんでしょうか?
phpmyadminはlangageがutfで接続照会順序はujisでテーブルを作りました。
0647644
2006/04/20(木) 22:34:03ID:ryIl/Q77レスありがとうございます。
なんかだめっぽいです。
現状でもphpmyadminは文字化けしないので、
そういう設定ファイルの類ではないもので解決しそうなのですが
わからないです。
どうして同じブラウザから同じデータベースを読み込んで
片方は文字化けするんですかね?
phpmyadminのソースをみたらcharsetがutf8だったので
phpのスクリプトが書いてあるファイルのcharsetを
同じくutfにしたけどだめでした。
0648nobodyさん
2006/04/20(木) 22:42:01ID:???ひょっとしてデータベースのデータ以外にも何か日本語を表示させているのか?
それがソース上でEUCで書かれているならUTF-8にコード変換して出力させないとダメだ。
phpmyadminは出力内容を全部UTF-8にしてるから文字化けしない。
お前のは恐らくHTMLの中にUTF-8とEUCが混在してるんだろう。
ちなみに
> phpのスクリプトが書いてあるファイルのcharsetを
> 同じくutfにしたけどだめでした。
これは具体的にどうやったのかを説明しろ。ちゃんとheader()を使ったのか?
> そういう設定ファイルの類ではないもので解決しそうなのですが
設定ファイルで解決した方が簡単だろうと思ってそっちを提示しただけ。
header()で解決するならそれでもいいよ。
0650644
2006/04/20(木) 23:02:21ID:ryIl/Q77親切な回答ありがとうございます。
データベースのデータ以外にもphpのスクリプトと一緒にかかれた
html文と日本語を表示しています。
そのphpファイルはエディタでeucのファイルにして、
meta contentのcharsetもeucにしました。
phpmyadminの正しく日本語表示されてるページは
ブラウザのソースを見るってやったらmetaのcontentのcharsetがutfだったので、
自分のスクリプトもdbを読み込んでくるページで同じようにutf-8と書いたのですが
これは全然変換とかしてないんですよね?
その他文字コードを指定しなきゃいけないようなところは
みんなeucにしています。
自分のスクリプトは簡単な登録フォームみたいのですが、
最後にinsert intoというクエリを発行するところで
mysql_query($sql = set names ujis);
とやると、phpmyadminで見たときに文字化けしないで登録されます。
ぎゃくにこれをutf-8とかにすると、phpmyadmindでも文字化けします。
0651nobodyさん
2006/04/20(木) 23:12:09ID:???スクリプトのコードは別にEUCでも構わないが、
出力はせめて統一しろよ…
ややこしいというならスクリプトも全部UTF-8にしる!
0652nobodyさん
2006/04/20(木) 23:17:51ID:???> 自分のスクリプトもdbを読み込んでくるページで同じようにutf-8と書いたのですが
> これは全然変換とかしてないんですよね?
charsetの指定は「このページの文字コードはこれ」とブラウザに教えるものであって変換ではない。
HTMLの中身がEUCなのにUTF-8とか嘘ついたら化けるの当たり前だろう。
どうしてもソースをEUCにした上でソース中にHTMLも一緒に書きたいというなら
selectして取得してきたデータをmb_convert_encoding()でEUCに変換して出せ。
逆にソースコード中のHTML表示を1度変数に格納しといてUTF-8に変換する手もあるが面倒。
でも1番簡単な方法は、ソース中に直にHTMLを書くのをやめて、
UTF-8で書いたHTMLをrequireで読み込んで出力する方法だと思う。
0653644
2006/04/20(木) 23:19:54ID:ryIl/Q77どうもです。いま試してみます。
>651
わかってなくてスミマセン。
スクリプトのコードというのはエディタで指定するもので、
出力というのはcharset=utfとかそういうのですよね?
0654nobodyさん
2006/04/20(木) 23:25:46ID:6nVXOU85rawurlencode()は使わないほうが良いのでしょうか?
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プログラムでいちいち何とかするより、
サーバー側で全部シンボリックリンクしてやるのが早い
■ このスレッドは過去ログ倉庫に格納されています