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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/06/08(木) 05:09:28ID:5gGJKVO4
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
02022012006/06/12(月) 17:53:54ID:???
>>200
UAが携帯でないとPC用のYahoo!モバイルが表示されるようです。
0203nobodyさん2006/06/12(月) 18:04:01ID:???
>>197
LEFT JOINが多かったりするとそれくらいなる時もあるんじゃね?
0204nobodyさん2006/06/12(月) 18:21:37ID:???
>>198
yahooは確かIPをチェックしてたはず。
別のサイトで試さないとダメかも

そういやLivedoor MAPへ携帯UAでアクセスした時、
返ってこないので変だと思ったら、
UAが携帯なので携帯向けアドレスへリダイレクト→
IPが携帯でないのでPC向けアドレスへリダイレクト→
UAが携帯なので携帯向けアドレスへリダイレクト→
以下略
ずっとリダイレクトを受け付けるIEもナンなんだが・・・
0205nobodyさん2006/06/12(月) 18:29:40ID:???
UAだけの所は>>201でOKですね。
IPが絡んでくるところはどうしようもないぽ
0206nobodyさん2006/06/12(月) 18:47:59ID:???
>>204
>yahooは確かIPをチェックしてたはず。

しているのは深階層の一部。
殆どのページはUA偽装で閲覧可能。
0207nobodyさん2006/06/12(月) 23:59:10ID:???
echo '日本負けもうダメポ';
0208nobodyさん2006/06/13(火) 01:14:38ID:NxGxiCeS
PHP5.1.2+pdo_mysqlで掲示板を作っておりましてUTF-8で表示したいのですが、
EUC-JPになってしまいます。

・MySQLにはUTF-8で保存されている
・mbstringの設定
  mbstring.detect_orderauto
  mbstring.encoding_translationOff
  mbstring.func_overload0
  mbstring.http_inputauto
  mbstring.http_outputpass
  mbstring.internal_encodingUTF-8
  mbstring.languageJapanese
  mbstring.strict_detectionOff
  mbstring.substitute_characterno value
・phpinfo()でEUC-JPの文字列はなし
・スクリプト内部
  mbstringの設定は変更していない
  new PDO → prepare → execute → fetchしているのみ


ご存知の方がいらっしゃいましたら、どうかご指摘お願い致します。
0209nobodyさん2006/06/13(火) 01:48:33ID:???
>>208
PHPファイルの文字コードはUTF-8になっていますか?
出力したHTMLは文字コード指定をUTF-8にしていますか?
mbstring.http_outputをUTF-8に指定するとどうなるでしょうか?

これで的外れな事を言ってたらすんまそん。
0210nobodyさん2006/06/13(火) 01:57:20ID:???
あとはHTMLのヘッダにキャラクタセットが書いてないとか
Apacheの設定が強制EUC-JPになってるとか・・・
0211nobodyさん2006/06/13(火) 02:06:44ID:???
>>209
>mbstring.http_output

そんな関数ないよ。
惜しいけど。
02122092006/06/13(火) 02:32:09ID:???
>>211
関数て(;´Д`)

私はphp.iniを直接いじるのか.htaccess使うのかそれともini_set()使うのかは
>>208の自由だと考えてああ書いたのですが、何故これが関数だと思ったのですか?
0213nobodyさん2006/06/13(火) 03:16:25ID:5706m95F
ぼうやだからさ
02141732006/06/13(火) 04:03:00ID:N4y2gPA5
どなたか綺麗な書き方できるかたいらっしゃいませんか?
0215nobodyさん2006/06/13(火) 04:33:54ID:???
改行というのは改行コードのことか、改行タグのことか?
02162152006/06/13(火) 05:25:39ID:???
>>173より改行とは<br />のことを指すと推定して進めるけど、
">>"も含めて<br />の手前まで色を変える場合は

$match = '/(>>.+?)(<br \/>)/';
$change = '<font color="red">$1</font>$2';
$msg = preg_replace($match, $change, $msg);

">>"の色は変えないという場合は

$match = '/>>(.+?)(<br \/>)/';
$change = '>><font color="red">$1</font>$2';
$msg = preg_replace($match, $change, $msg);

こんな感じかね。
もっともこれだと

>>hoge>>hage<br />

とか

>>ho
ge<br />

とか書かれるとちゃんと動かんけど。
0217nobodyさん2006/06/13(火) 05:27:43ID:???
>>214
$match = '/>>(.+)/i';
ってのを
$match = '/>>(.+?)<br/i';
ってすりゃいいんじゃないの?
0218nobodyさん2006/06/13(火) 05:28:53ID:???
あー。<br>も()で括って$2を増やさなきゃダメか
02191732006/06/13(火) 06:08:43ID:???
それだとなんか奇麗じゃないような…

正規表現でもそれが限界なんでしょうか?

$match = '/(>>.+?)<br \/>/';
$change = '<font color="red">$1</font><br />';
$msg = preg_replace($match, $change, $msg);

今のところ、こんな感じで一応動作してますが
0220nobodyさん2006/06/13(火) 06:37:39ID:???
Win XP Pro
Apache 2.0.58
PHP 5.1.4

の環境で Cake PHP を実行しようとすると以下のエラーがでます。

Fatal error: Call to undefined function mysql_connect() in D:\workspace\cake\cake\libs\model\dbo\dbo_mysql.php on line 101

理由はPHPがMySQLのモジュールをうまく読み込んでないようで、
php.ini にて

extension=php_mysql.dll

のコメントをはずすのですが相変わらずうまくいきません。
なにが悪いのでしょうか?

なお、httpd.conf は

# For PHP 5 do something like this:
LoadModule php5_module "c:/php5/php5apache2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "c:/php5"

と設定して、php.ini は c:/php5 においてます。
0221nobodyさん2006/06/13(火) 06:42:50ID:???
>>219
君の言う「奇麗」の基準が分からないよ
0222nobodyさん2006/06/13(火) 07:07:51ID:???
>>220
libmysql.dllが読み込めていないかも
systemのパスにコピーしたかい
0223nobodyさん2006/06/13(火) 08:29:32ID:???
>>219
そんなにこだわるならperlの質問スレ行けば?
02242082006/06/13(火) 10:01:25ID:???
>>209
ご丁寧にありがとうございます。
ご指摘の点を確認してみました。

・PHPファイルはUTF-8
・Content-Typeは"text/html; charset=UTF-8"
・スクリプトの先頭でmb_http_output('UTF-8');してみましたがEUC-JPで表示されました。
 mb_http_outputでTRUEが返っていることを確認しました。
・スクリプトの先頭でecho mb_internal_encoding(); → UTF-8


試しに、fetch後すぐにmb_detect_encodingをしてみましたら、この段階で既にEUC-JPになってしまって
いるようでして、データベースが勝手に変換してくれているような気がしてきました。
少し調べてみたいと思います。
0225nobodyさん2006/06/13(火) 10:28:11ID:3c5IwUSO
phpの設定のupload_max_filesizeを現状のdefault 2Mから
8Mにアップしたいと思うのですが、
サーバーの関係でphp.iniをいじることができません。
.htaccessで変更できるみたいなのですが、
.htaccessの設定方法がわかりません。

php_value upload_max_filesize 8388608
っぽいのでは?試してみたのですが、だめでした、お力御貸しください。
0226nobodyさん2006/06/13(火) 11:12:31ID:???
>>225
post_max_size >= upload_max_filesizeでないとupload_max_filesizeは意味をなしません。

8388608じゃなくて"8M"じゃどうよ?

それとそのサーバでは変更を許可してるのかい?
PHP_INI_PERDIRっぽいけど念のため
02272252006/06/13(火) 11:15:56ID:3c5IwUSO
226>
post_max_size は8Mになっております。
.htaccess では バイト表記でないいけないとどこかの文献でみました。
ただ、 8Mでは失敗したので、"8M"で今から試してみます。

PHP_INI_PERDIRなので、大丈夫とはおもうのですが、、、

02282252006/06/13(火) 11:27:57ID:3c5IwUSO
8M "8M" ともに、だめでした。

管理に言って php.iniの数字を変えてもらったのですが、効き目なし
というわけわからん状態に陥りました。
アパッチは再起動してみたのですが、、

0229軟式PHP2006/06/13(火) 12:17:40ID:???
<input type="hidden" name="MAX_FILE_SIZE" value="ファイルサイズ" />
とか定義してないかね。
0230nobodyさん2006/06/13(火) 12:20:18ID:???
本題の件はともかく、管理のphp.ini変更が適用されないのは、
PHPIniDirが変なとこ指してるんじゃないの。
02312252006/06/13(火) 12:20:34ID:3c5IwUSO
229
再度確認したところやっぱり、だめでした
memorylimitもPOSTMAXも8Mなんですが、、
UPが2Mなんで、、どうにも、、、
はぁ
0232nobodyさん2006/06/13(火) 12:31:59ID:BClcCsNS
phpinfo()で表示される「User/Group」の部分を変更するには
Apacheの設定変更が必要ですが、
それをphp.iniの設定で変更できたらご教授願います。
或いは、プログラムレベル内で変更できますか?
0233nobodyさん2006/06/13(火) 12:49:51ID:???
>>231
モジュール用の設定を変えているがCGIで実行してるとか
02342202006/06/13(火) 13:49:14ID:???
>>222
おお、できますた!
どうもありがとう。
0235nobodyさん2006/06/13(火) 15:17:40ID:???
>>224
っていうか、ソースもデータも何もかもEUCで統一したほうが
問題が少ないと思うんだけど。

HTML出力でUTFにしたいときだけアウトプットを変換すればいいし。
0236nobodyさん2006/06/13(火) 15:52:48ID:UqVx0E5S
すみません。PHPからMySQLの接続が出来ないので、どなたか教えて下さい。
WindowsXPPro+Apache2.0.52+PHP5.0.2+MySQL4.1.7で、
ttp://tsuttayo.sytes.net/mysql/install/mysql/10/20/20/20/install.php
の通りにMySQLを設定しました。それで、MySQLのIDとPWを作って、データベースを
作成することは出来ました。localhostで、確かにコマンドプロンプトからは、My
SQLのIDとPWでMySQLにログインすることは出来ますし、MySQLが起動していること
も確かです。
 ところが、PHPでMySQLと接続する文を書くと、(PHPにはサーバの場所(localhost)
やMySQLのID・PWも正確に書いています)

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]:
Access denied for user 'ODBC'@'localhost' (using password: NO) in
C:\Program Files\Apache Group\Apache2\htdocs\index.php on line 78

という表示が出てしまうのです。この「'ODBC'@'localhost'」とは一体何なのでしょうか?
PHPにはサーバの場所(localhost)やMySQLのID・PWも正確に書いていますのに、何故この
ような表示が出てしまうのでしょうか?
どうしたら、PHPでMySQLと接続する文を書くことが出来るのでしょうか。どなたか教えて
下さい。宜しくお願いします。
0237nobodyさん2006/06/13(火) 16:15:50ID:???
line 78 から調べろウンコ
0238nobodyさん2006/06/13(火) 16:25:02ID:???
>>236
コマンドプロンプトから作ったユーザー?
0239nobodyさん2006/06/13(火) 16:26:17ID:???
>>236
>Access denied for user 'ODBC'@'localhost' (using password: NO)
WindowsでMySQL接続ユーザを指定せずに、MySQLに接続しにいった時に
デフォルトユーザのODBC@localhostが指定されたと解釈されて出てるエラー。
78行に至るまでをチェックしろ、ウンコー
0240nobodyさん2006/06/13(火) 16:26:17ID:???
>>236
mysql_connectも失敗してるんじゃないの
0241nobodyさん2006/06/13(火) 16:42:45ID:UqVx0E5S
皆さん、こんな、うんこの私に回答して下さり、誠にありがとうございます。無視
しないでくれるだけでも、有難いです。

>>238
>コマンドプロンプトから作ったユーザー?
いえ、MySQLのユーザー名はrootであり、デフォルトで作成されるものです。PWは
私がMySQLのGUIの画面で作成しました。

>>239
>>Access denied for user 'ODBC'@'localhost' (using password: NO)
>WindowsでMySQL接続ユーザを指定せずに、MySQLに接続しにいった時に
>デフォルトユーザのODBC@localhostが指定されたと解釈されて出てるエラー。
>78行に至るまでをチェックしろ、ウンコー
ありがとうございます。78行目を見たのですが、DBのエスケープ処理が失敗した
ことしか分からなかったのです。それで、「WindowsでMySQL接続ユーザを指定」
するとは、具体的にどうすれば良いのでしょうか。php.iniでmysql.default_user
を設定しても、うまくいかなかったのですが・・・。

>>240
>mysql_connectも失敗してるんじゃないの
エラー表示は、前述のものだけでしたが、多分mysql_connectも失敗していると
思います。以前、この環境にXOOPSをインストールしようとしたら、「DBに接続
出来ません。」という表示が出てしまったからです。

この後、「WindowsでMySQL接続ユーザを指定」するとは、具体的にどうすれば良
いのでしょうか。php.iniでmysql.default_user = root と設定しても、うまく
いかなかったのですが・・・。
0242nobodyさん2006/06/13(火) 17:08:58ID:???
>>241
>php.iniでmysql.default_user = rootと設定しても、うまくいかなかった
・そのphp.iniが使ってるPHPで有効な設定ファイルではない。
・更に優先度の高い設定ファイル等で別の値が上書きされている。
・mysql_connect()に変数でパラメータが指定されていて、その変数の値が空(NULLではなく空文字)

mysql_connectのパラメータに着目して処理を追え
(@mysql_connectになってる。多分)
02432422006/06/13(火) 17:12:14ID:???
>(@mysql_connectになってる。多分)
と思ったが、だったら78行目でリソース型(mysql接続リソース)
じゃないってエラーになるか。
0244nobodyさん2006/06/13(火) 17:22:07ID:???
safe-modeはOFFになっているのですが、
<?php
$output = shell_exec('ls -lart');
echo "$output";
?>
が表示されません。
なぜでしょうか?
0245nobodyさん2006/06/13(火) 17:49:15ID:???
>>244
答え:Windowsだから
とか言われないように、環境を書きましょうよ。
0246nobodyさん2006/06/13(火) 17:51:04ID:UqVx0E5S
>>244
safe-modeはOFFになっていても、
open_basedir が設定してあるのではないでしょうか?
0247nobodyさん2006/06/13(火) 17:57:02ID:???
>>241
mysql_real_escape_string()は接続してないと使えない関数。
で、接続されていないとデフォルトで接続を試みる。
ということでconnectできていないと考えられる。

まずはconnectができているか簡単なので試してみるといいかも。
(マニュアルより)
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('接続できませんでした: ' . mysql_error());
}
echo '接続に成功しました';
mysql_close($link);
?>
0248nobodyさん2006/06/13(火) 18:13:04ID:UqVx0E5S
>>247
ありがとうございます。test1.phpに、
<?php
$link = mysql_connect('localhost', 'root', '私が設定した英数字のパスワード');
if (!$link) {
die('接続できませんでした: ' . mysql_error());
}
echo '接続に成功しました';
mysql_close($link);
?>
を書いて実行してみたところ、

Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server;
consider upgrading MySQL client in C:\Program Files\Apache Group\Apache2\htdocs\test1.php on line 2
Client does not support authentication protocol requested by server; consider upgrading MySQL client

という表示が出ました。接続出来ていないようですが、何故でしょうか・・・。MySQLでデータベースは作成出来た訳ですし、
MySQLが起動しているのも、「コントロールパネル」−「管理ツール」−「サービス」で確認しています。php.iniにも、
extension=php_msql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
と書いていますし、test1.phpのID・PWも合っています。接続出来ない原因として、考えられるのは何でしょうか?教えて
下さい。お願い致します。
0249nobodyさん2006/06/13(火) 18:15:12ID:???
>>244
WindowsXP Home
HTTPD 1.42n
PHP 5.1.1
です。

>>246
open_basedirはコメントアウトされていました。
一瞬だけコマンドプロンプトは表示されるのですが・・・
0250nobodyさん2006/06/13(火) 18:16:31ID:???
>>248
phpのMySQLモジュールバージョンとMySQLサーバのバージョンの問題かも
パスワードの関係でなんかあったような・・・

一度パスワード無しのユーザを作ってそれで接続してみたらできるかも。
もちろんパスワードは無しで接続ね。
0251nobodyさん2006/06/13(火) 18:34:24ID:???
>>249
Windowsには標準でlsコマンドないでしょ?
Linuxとかはほぼ標準で入ってるはず
02522502006/06/13(火) 18:41:25ID:???
>>248
調べたらphpのmysqlモジュールバージョンが4.0.x以下だとまずいみたい。
phpinfo()でmysqlのバージョン調べてみてね。

4.0.x以下だったら、phpのバージョン上げるか以下のページに回避策(英語)

http://dev.mysql.com/doc/refman/4.1/en/old-client.html
0253nobodyさん2006/06/13(火) 18:51:42ID:???
>>251
まったくその通りでございました。
ごめんなさい(ノω;)
0254nobodyさん2006/06/13(火) 18:55:29ID:???
>>253
貴様っ!!!!

オレと同じミスをするなっ!!!!!!!!!!
0255nobodyさん2006/06/13(火) 19:05:16ID:UqVx0E5S
>>250
>>一度パスワード無しのユーザを作ってそれで接続してみたらできるかも。
>>もちろんパスワードは無しで接続ね。

248です。パスワードは無しのユーザで試したところ、接続できました!!
ありがとうございます!しかし、パスワードありでは接続できないのでし
ょうか・・・・。
環境は、WindowsXPPro+Apache2.0.52+PHP5.0.2+MySQL4.1.7
です。パスワードありでは接続できないというのは、不自然な気がします・・・。
どなたか、解決策をご存知ではないでしょうか?
02562502006/06/13(火) 19:57:52ID:???
>>255
教えた関連サイト読んでもないのか?252で書いた調べもやってなさそうだし。

もし理解したいと思うなら252のURLのenをjaに変えてみて見れ。
0257nobodyさん2006/06/13(火) 20:37:50ID:???
PhpMyAdminからアカウント編集するなら、特権から作らないと使えないよ。
0258nobodyさん2006/06/13(火) 20:39:16ID:???
Userテーブルを直接いじるなって事ね。
0259nobodyさん2006/06/13(火) 21:27:58ID:y/p6TWtm
>>256
>教えた関連サイト読んでもないのか?252で書いた調べもやってなさそうだし。
>もし理解したいと思うなら252のURLのenをjaに変えてみて見れ。

すみません。mysqlのバージョンが 4.1.7だったので、>>252で教えて
頂いたサイトは自分には当てはまらないことだと思っていました。
「mysqlのバージョン」と「mysqlモジュールバージョン」は違うので
すね。>>257様や>>258様の話を聞いて、段々原因が掴めてきました。
今はサーバの近くにいないので、明日、皆様のおっしゃったことを
試してみます。
本日は皆様、本当に細かく教えて下さり、誠にありがとうございまし
た。
0260nobodyさん2006/06/13(火) 22:08:23ID:???
すごく初歩的な質問なんですがすみません。
MySQLでフィールドがid、name、add、koukou、daigakuと5つあります。
その中で検索するということをしたいと思っています。
送られてきた[data1]の単語をkoukou、daigakuのフィールドからor検索したいのですが、

$sql = "SELECT * FROM base WHERE koukou or daigaku like '%".$data1."%' ORDER BY id";

とすると後ろのdaigakuだけ検索してkoukouからは検索してくれません。
多分根本的に文法が違うのかな〜と思っているのですが、どうすれば検索できますか?
0261nobodyさん2006/06/13(火) 22:25:21ID:???
質問なのですが、ご存知の人、お教え下さいませ。
2つの画像を重ねて表示する場合は、imagecopymerge でできますが、
3つ以上の画像を重ねて表示したい場合、imagecopymerge でできるのでしょうか?

試してはみたのですが、どうもうまくいきません。
他にいい方法があるんでしょうか。。。
0262nobodyさん2006/06/13(火) 22:49:17ID:???
>>260
koukou=hogehoge or daigaku=hogehoge

文字列だとかLIKEだとかは自由にどうぞ
0263nobodyさん2006/06/13(火) 22:50:13ID:???
シンプルな掲示板を作っています。
次のページに行くとき、bbs.php?page=2みたいにしたいのですが、
どうやってfor関数に組み込めばいいのかわかりません。
どのように記述すればいいでしょうか?
for関数で記事表示しています。よろしくお願いします。
0264nobodyさん2006/06/13(火) 22:55:12ID:???
>>263
ちと意味がわかんない

$_POST['page']とか$_GET['page']でページ数を取得してるんだよね?
記事の管理方法は?DBは使ってる?

DB使ってるならOFFSETするのが早い
使ってないなら多分ファイルだろうからファイルの管理方法も教えて
1日単位でログにしてるとか、1記事1ファイルにしてるとか
0265nobodyさん2006/06/13(火) 23:17:44ID:???
>>263
ひとつのテキストファイルをログファイルとして1記事1行で保存しており、
新規記事はログファイルの上から追加されると仮定すると、

$page = $_GEt['page']; // ページの指定
$line = 10; // 1ページあたりの記事数
$article = file(ログファイル); // ログの配列(1記事1行で最初の要素が最新の記事)

for ($num = ($page - 1) * $line; $num < $page * $line; $num++) {
print $article[$num];
}

こんな感じ?
0266nobodyさん2006/06/13(火) 23:20:40ID:???
>>262
ありがとうございます。
うまく検索できました。
02672632006/06/13(火) 23:32:12ID:???
1つのログファイルに
投稿日時,投稿者名,投稿内容
で記録しています。上からの追加です。

1ページ10件表示にして、ページ下部にある
次の10件(./bbs.php?page=x)をクリックすると
次の10件が、といった風にしたいんです。。

表現力が…
0268nobodyさん2006/06/13(火) 23:50:23ID:???
上からの追加とは上に追加なのか下に追加なのかどっちだよw
0269nobodyさん2006/06/13(火) 23:53:41ID:???
あー、すまん。ちゃんと読んでなかった。

つまり>>265でどんぴしゃなんじゃねーの?
02702632006/06/14(水) 00:37:42ID:???
風呂上りですが、早速やってみます。
みなさん、ありがとうございます。
0271nobodyさん2006/06/14(水) 00:38:32ID:???
はじめまして。質問です。
ページに400×400の画像を貼り付けて、
その画像上の任意の場所をクリックした時のマウスポインタの座標を取得することは可能でしょうか?
よろしければ、関数名などを教えてください。よろしくお願いします。
0272nobodyさん2006/06/14(水) 00:44:12ID:???
>>271
関数要らない。HTMLのリファレンス読んでこい
0273nobodyさん2006/06/14(水) 00:44:52ID:???
それはJavaScriptの仕事だな…。
0274nobodyさん2006/06/14(水) 00:49:17ID:???
>>273
<input type=image>
0275nobodyさん2006/06/14(水) 00:49:25ID:???
宇和ああああああああああああああああああああああああああ

よし!俺ねる!お前ら明日もがんばれよ!俺もがんばるよ!
0276nobodyさん2006/06/14(水) 00:51:10ID:???
サーバーサイドクリッカブルマップっつーのもあるでよ。
0277nobodyさん2006/06/14(水) 01:03:58ID:???
>>271 274 276
ありがとうございます。
input type に imeage という属性があるのをはじめて知りました。
自分の買ったphp参考書には一行も書いてなかったです。
ちなみにこの参考書、誤字脱字やミスが結構あります・・・。
0278nobodyさん2006/06/14(水) 01:05:24ID:???
いやそれ、PHP以前にHTMLの基礎知識…
HTMLを学ばずしてPHPが分かると思うなよ
02792732006/06/14(水) 01:10:05ID:???
うわ、本当だ。こんなのあったんか。
HTMLは一通り知ってるつもりだったのに…ハズカシ
0280nobodyさん2006/06/14(水) 01:38:17ID:???
>>274
完璧でした。これでゆっくりとフランス戦を見ながら寝れます。
ありがとうございました。
02812632006/06/14(水) 01:50:04ID:???
>>265&みなさん
出来ました。ありがとうございます。
自分でも頑張ってみます。
0282nobodyさん2006/06/14(水) 02:20:38ID:???
よっし俺が質問しようジャマイカ

Windowsで動くIDE以外のお勧めのテキストエディタってある?
もちろんPHPの関数とかが強調表示されたり色変えられたりするやつ。
Linuxならもちろんviだな
0283nobodyさん2006/06/14(水) 02:59:05ID:???
スレ違い
0284nobodyさん2006/06/14(水) 03:10:11ID:???
>>282
では俺が回答してやろうジャマイカ
http://pc8.2ch.net/test/read.cgi/php/1133785416/
0285nobodyさん2006/06/14(水) 12:30:48ID:2q2dqRMt
PHP5.0.2+MySQL4.1.7(WindowsXP)上で、PHPファイルやhtmlファイルは文字化け
しないのですが、MySQLから取ってきた日本語は全て文字化けしてしまいます。
どなたか、解決策をご存知ではないでしょうか?

php.iniは
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = auto;
とし、my.iniは
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
init-connect="SET NAMES utf8"
としています。MySQLのコマンドラインからshow variables like 'char%'; と打つと、
character_set_client latin1
character_set_connection latin1
character_set_database utf8
character_set_results latin1
character_set_server utf8
character_set_system utf8
character_set_dir C:\Program Files\MySQL\MySQL Server4.1\share\charsets/
となります。PHPファイルの先頭に
$con = mysql_connect('localhost', 'ユーザー名', 'パスワード');
mysql_query("SET NAMES utf8", $con); //←強制的にUTF8にしようとする。
mysql_select_db("DB名");
と書いても、MySQLから取ってきた日本語は全て文字化けしてしまいます。
どなたか、解決策をご存知ではないでしょうか?宜しくお願い致します。
0286nobodyさん2006/06/14(水) 13:31:47ID:???
>>285
INSERTの仕方、SELECT,の仕方、表示の仕方を教えれ
0287nobodyさん2006/06/14(水) 14:19:14ID:???
>>285
これで解決するかどうかは分かんないけど、

つ ttp://puchiko.lowtech.ne.jp/index.php?itemid=349
0288nobodyさん2006/06/14(水) 14:31:44ID:2q2dqRMt
>>286
書いたPHP文の全文は、以下の通りです。
<?php
$con = mysql_connect('localhost', 'ユーザー名', 'パスワード');
mysql_query("SET NAMES utf8", $con); //←強制的にUTF8にしようとする。
mysql_select_db("DB名");
$sql="select * from Tuser";
$result=mysql_query($sql);
while($data = mysql_fetch_array($result)) {
print($data["id"]);
print($data["name"]);
print($data["name_kana"]);
print("<br>");
}
mysql_close($con);
?>
ここで、number型の$data["id"]は正しく表示されるのですが、日本語である
$data["name"]と$data["name_kana"]は文字化けしてしまうのです。

>>287
教えて頂いたサイトの「skip-character-set-client-handshake」は、MySQL4.1.15
以降でないと、出来ないのです。やはり、「SET NAMES 文字コードセット」をクエ
リすることだと思うのですが、mysql_query("SET NAMES utf8", $con); と書いて
いるのに文字化けしてしまう原因が分かりません。どなたか解決策をご存知でしょう
か。宜しくお願いします。
0289nobodyさん2006/06/14(水) 14:46:40ID:???
正規表現で
$match = '/>>(.+)/i';
$change = '<font color="red">\0</font>';
$msg = preg_replace($match,$change,$msg);

>>hogeさん

この部分だけ色を変えたいのですが、上のかきかたでは改行以降も色換えしてしまいます。。

くだらない質問ですが、どのようにすれば改行は含まないようにできるのでしょうか?
0290nobodyさん2006/06/14(水) 14:47:28ID:???
selectする前にmysql_query("INSERT INTO Tuser VALUES('ほげ','ふが')");
して、それが正しく出てくるかチェックしたら?
0291nobodyさん2006/06/14(水) 14:48:37ID:???
>>288
INSERTはどうした
0292nobodyさん2006/06/14(水) 14:51:57ID:???
>>289
iってなんだっけ?

$match = '/>>(.+)$/i';

とか?
0293nobodyさん2006/06/14(水) 14:56:12ID:???
>>292
スネーク、まずは>>173-180を見るんだ。
それが終わったら次に>>214-219を見るんだ。
その上で今度は>>221を見るんだ。
そしたら>>223を見るんだ。

最後に、iに関してはこっちを参照するんだ。
http://php.s3.to/man/pcre.pattern.modifiers.html
0294nobodyさん2006/06/14(水) 15:11:54ID:???
>>293
大佐、>>289は理解した
性欲をもてあます
0295nobodyさん2006/06/14(水) 15:16:35ID:???
pregのメタ文字の扱いがわかりません。
preg_replace("/\\\*/","auau", $hoge);
の場合、\*が検索文字列になりますよね?
なぜか、ヒットしない…。
0296nobodyさん2006/06/14(水) 15:23:56ID:2q2dqRMt
>>290 >>291 ありがとうございます。
<?php
$con = mysql_connect('localhost', 'ユーザー名', 'パスワード');
mysql_query("SET NAMES utf8", $con); //←強制的にUTF8にしようとする。
mysql_select_db("DB名");
mysql_query("INSERT INTO Tuser(name,name_kana) VALUES('ほげ','ふが')");
$sql="select * from Tuser";
$result=mysql_query($sql);
while($data = mysql_fetch_array($result)) {
print($data["id"]);
print($data["name"]);
print($data["name_kana"]);
print("<br>");
}
mysql_close($con);
?>

とやったところ、「ほげ」・「ふが」は正しく表示され、既にDBに入っている
レコードは、文字化けのままでした。PHPから、全てのレコードをinsertすれば
文字化けしないで済むということでしょうか?しかし、PHPから全てのレコード
をinsertしていくのは大変ですので(何千件もある)、文字化けを直して表示
する方法はないのでしょうか?
0297nobodyさん2006/06/14(水) 15:28:49ID:???
>>296
そのDBにデータ入れるときにUTF-8以外の文字コードで入れてる
そのまま使うならコンバートして使いたまへ
0298nobodyさん2006/06/14(水) 15:29:58ID:???
<<こちらサンダーヘッド。正規表現は正規表現スレでやるように。>>
0299nobodyさん2006/06/14(水) 15:37:02ID:???
くだらない質問させていただきます。

「ああああああ
ああああ
ああああああ」

と、フォームで打ち送信して、

\n⇒<BR>に直したのですが、

保存すると

「ああああああ<BR>ああああ<BR>ああああああ」

にならずに

「ああああああ<BR>
ああああ<BR>
ああああああ」

となってしまいます。

「ああああああ<BR>ああああ<BR>ああああああ」

にするにはどうしたらよいのでしょうか?
0300nobodyさん2006/06/14(水) 15:44:26ID:???
>>299
\n \r \r\n のいずれかなら <BR> にする
0301nobodyさん2006/06/14(水) 15:54:23ID:2q2dqRMt
>>297
>>そのDBにデータ入れるときにUTF-8以外の文字コードで入れてる
>>そのまま使うならコンバートして使いたまへ

ありがとうございます!!DBにインポートする際、ダンプファイル
の先頭にset names utf8;と書いたら、文字化けが全て直りました!
一生、感謝致します。(涙涙)本当に、ありがとうございました!!
■ このスレッドは過去ログ倉庫に格納されています