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

【PHP】質問スレッドpart24【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/11/01 04:09:15ID:???
・PHP全般の質問スレです。 
・新規質問の方は上げてください。age進行でお願いします。 
・質問する際には環境も明記。 
・正しい日本語で分かりやすく。 
・レスがつかないからって逆切れする厨お断り。 
・解決しなくてもこたえてもらったら礼を。 


■本家 
 http://www.php.net/ ;

■日本 PHP ユーザ会 
 http://www.php.gr.jp/ ;

■PHP マニュアル 
 http://www.php.net/manual/ja/ ;

■PEAR マニュアル 
 http://pear.php.net/manual/ja/ ;

過去スレ, 関連スレ等>>2-4 
0002nobodyさん04/11/01 04:10:09ID:???
前スレ 
【PHP】質問スレッドpart22【php】 
http://pc5.2ch.net/test/read.cgi/php/1095326257/ ;


関連スレ 
Pear 
http://pc5.2ch.net/test/read.cgi/php/985665522/ ;
【PHP】Smarty【Template】 
http://pc5.2ch.net/test/read.cgi/php/1047225437/ ;
0003nobodyさん04/11/01 04:11:02ID:???
前スレ訂正
【PHP】質問スレッドpart23【php】
http://pc5.2ch.net/test/read.cgi/php/1096965398/l50
0004nobodyさん04/11/01 04:15:49ID:???
PHP系blogツール part2
http://pc5.2ch.net/test/read.cgi/php/1094725439/l50
PukiWikiスレ Part1
http://pc5.2ch.net/test/read.cgi/php/1084907353/l50
[PHP-users MLヲチ6] 教えていただけませんか?
http://pc5.2ch.net/test/read.cgi/php/1096871691/l50
★負荷軽減対策委員会(Perl、PHP)★
http://pc5.2ch.net/test/read.cgi/php/1034645635/l50
PHPBB
http://pc5.2ch.net/test/read.cgi/php/1065334037/l50
PHPでPDF
http://pc5.2ch.net/test/read.cgi/php/983858078/l50
【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/l50
【PHP】セッションについて語ろう!【PHP】
http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
PHPエディタって、どうよ?
http://pc5.2ch.net/test/read.cgi/php/1079460638/l50
【PHP】自作スクリプト発表会
http://pc5.2ch.net/test/read.cgi/php/1017456911/l50
PHPで2chを真似てこんなモン作ってみますた。
http://pc5.2ch.net/test/read.cgi/php/1019451204/l50
PHP + PostgreSQL
http://pc5.2ch.net/test/read.cgi/php/983128806/l50
PHPで構築されたサイト
http://pc5.2ch.net/test/read.cgi/php/1085302527/l50
親切な人が初心者にPHPの関数を使い方を教える
http://pc5.2ch.net/test/read.cgi/php/1068190843/l50
0005nobodyさん04/11/01 04:33:27ID:???
前スレ最後に質問したものです。
キチンと入ってました・・・すみません
0006nobodyさん04/11/01 11:33:35ID:ddZqjuW7
Gifファイルが動画Gifであるか確認する方法はないでしょうか?
PHP Version 4.3.9です
関係ないかもしれませんが、画像処理の GD Version 2.0 or higher
っていうのも入っています
よろしくお願いいたします
0007nobodyさん04/11/01 11:33:43ID:???
すみません、一点質問があります。

PHPプログラムから、
header( 'http://host/hoge.html' );
exit;
としてhoge.htmlへリダイレクトさせているのですが、
リダイレクト後、真っ白の画面が表示されてしまいます。

hoge.htmlはEUCコードで書かれていて、
<META>タグでもEUCコードの指定をしてます。
hoge.html 単体で開いたり、
白い画面からリロードすると正常に表示されました。
また、白い画面では、エンコードがShift_JISになっています。

PHPプログラムはEUCで書かれており、
これも問題ありませんでした。

となると、Location によるリダイレクトで、
Webサーバがデフォルト文字コードを
返しているような気がするのですが、
何かこの辺の症状でご存知の方いらっしゃいますでしょうか?

OS: Linux
WWW: Apache1.3.31
PHP: php4.3.8

よろしくお願いします。
0008nobodyさん04/11/01 11:36:08ID:???
header("Location: http:/foo.bar/hoge.html");
0009nobodyさん04/11/01 11:36:54ID:???
× header("http://host/hoge.html");
○ header("Location: http://host/hoge.html");
0010nobodyさん04/11/01 11:37:42ID:???
>>7
気がするなら見てみればいいのに
0011nobodyさん04/11/01 11:43:08ID:???
>>7
その<META>タグさらしてみ。
0012704/11/01 11:53:25ID:???
>>8,9

すいません、ここに書き込むときの記述ミスでした。
実際は、
header( "Location: http://host/hoge.html" );
とかかれていますので問題ありません。

>>10

httpd.conf を見てみましたが、
文字コードの設定部分が見当たりませんでした。。

>>11

METAは
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
です。
HTML自体もEUCコードで書かれています。
0013nobodyさん04/11/01 12:16:18ID:???
x-men
0014nobodyさん04/11/01 12:18:43ID:???
>>12
一応、php.iniのmbstringの項もチェックしてみ。
phpinfo()で設定内容が表示されるし。
00151004/11/01 12:20:48ID:???
何でhttpd.confなんか見てんだ?
鯖のレスポンス拾えばはっきりする話だよ
0016nobodyさん04/11/01 12:22:44ID:???
最初に出てきた"/"の前とそれ以降を分離したくて
以下のように書きました。
ereg("^([^/]*)/?(.*)$",$i,$regs)
これがfalseになる事ってあります?
また、もっとスマートな書き方ってありますか?
0017nobodyさん04/11/01 12:50:40ID:dvWt0D+J
保存先をCSV形式のファイルからデータベース(MySQL)に変更すにはどうすればいいのでしょうか?どなたか、おしえてくださいm(_ _)m
<?php
//error_reporting(E_USER_WARNING); // Warrningを出力しない

//----------------------------------------------------
// 定数の宣言
//----------------------------------------------------
define("BBS_DATA", "./bbs.csv");
define("BBS_COL_DATE", 0);
define("BBS_COL_NAME", 1);
define("BBS_COL_BODY", 2);

//----------------------------------------------------
// 関数の定義
//----------------------------------------------------
// AppendCsvFile関数
// 機 能  CSV形式のデータをファイルの末尾に追加する
// 引 数  $FilePath : 書込むファイルへのパス
//   $CsvData : 書込みデータ
function AppendCsvToFile($FilePath, $CsvData) {
if ($FilePath == "") {
return false;
}
$fp = fopen($FilePath, "a");
if ($fp == 0) {
return false;
}
//作成日、名前、発言内容を「,」で連結し、レコードを作成する。
//また、レコード中の改行文字を取り除き行末に改行文字を付加する。
$temp = ereg_replace("[\r\n]", "", join(",", $CsvData)) . "\n";
fputs($fp, $temp);
}
0018nobodyさん04/11/01 12:51:17ID:???
>>17の続き
// LoadCsvFile関数
// 機 能 CSV形式のファイルを2次元配列に読込む
// 引 数 $FilePath : 読込むファイルへのパス
// 戻り値 $CsvData : 読込んだテキストの2次元配列
function LoadCsvFile($FilePath) {
if (file_exists($FilePath) == false) { // ファイルの存在を確認する
return false;
}
$CsvData = array(); // 配列を作る
$TextData = file($FilePath); // ファイルのデータを読み込む

for ($i = 0; $i < sizeof($TextData); $i++) { // レコードが10件あれば10回
$TextData[$i] = ereg_replace("\n$", "", $TextData[$i]); // 行末の\nを取り除く
$TextData[$i] = ereg_replace("\r$", "", $TextData[$i]); // 行末の\rを取り除く
$CsvData[$i] = split("," , $TextData[$i]); // 「,」を区切りとしてフィールドの値を取り出す
}

return $CsvData; // $CsvDataは二次元配列
}
//------------------------------------------------------------
// ここからが主処理
//------------------------------------------------------------
if (isset($_POST["SUBMIT"])) { //このページが初めてアクセスされたか?
if ($_POST["BODY"] != "") { //発言内容はあるか?
$body = str_replace("\n", "<br>", $_POST["BODY"]); // \n\r(改行文字)をタグ<br>に変換する
$body = str_replace("\r", "", $body);
$name = $_POST["NAME"];
$BBSRecord = array(date("Y/m/d H:i:s"), $name, $body);
AppendCsvToFile(BBS_DATA, $BBSRecord); //「内容」の書込み
}
}
0019nobodyさん04/11/01 12:51:49ID:???
>>18の続き
$BBSData = LoadCsvFile(BBS_DATA); //「内容」の読込み
?>
<html>
<head>
<title>掲示板</title>
</head>
<body><h1 align="center">掲示板</h1>
<a href="bbs.php">最新</a>
<form action="bbs.php" method="POST">
<table border="1" align="center" cellspacing="0">
<tr><td bgcolor="#cccccc" align="center">名 前</td><td><input type="text" name="NAME"></td></tr>
<tr><td bgcolor="#cccccc">発言内容</td><td><textarea name="BODY" cols="40" rows="8"></textarea></td>
<tr><td colspan="2" align="center">
<input type="submit" name="SUBMIT" value=" 投 稿 ">
<input type="reset" value=" ク リ ア "></td>
</tr>
</table>
</form>
0020nobodyさん04/11/01 12:52:22ID:???
>>19の続き
<?php
if ($BBSData == false) { // 発言内容がなければ$BBSDataは空っぽ
print "発言はありません。<br>";
} else {
for ($i = sizeof($BBSData) - 1; $i >= 0; $i--) {
print "<hr><font size='3' color='#0000ff'><b>";
print $BBSData[$i][BBS_COL_NAME] . "</b></fomt>";
print "<font size='2' color='#666666'>";
print " [" . $BBSData[$i][BBS_COL_DATE] . "]" . "</font><br><br>";
print "<font size='3' color='#333333'>";
print $BBSData[$i][BBS_COL_BODY] . "</font><br><br>";
}
}
?>
</body>
</html>
0021nobodyさん04/11/01 12:54:15ID:???
長すぎて読む気がしねえ
0022nobodyさん04/11/01 12:54:46ID:???
丸投げすんじゃねーよぼけが!!!誰も答えなくていいんで宜しく^^
0023nobodyさん04/11/01 13:01:28ID:???
>7
headerで文字コード指定すれ。
0024nobodyさん04/11/01 13:05:34ID:???
>>16
ぱっと見falseになりそうなパターンが浮かばないですね
空でもtrueだし

けど改行入ったり/が連発した場合その動きでいいのかな?

>>18
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc5.2ch.net/test/read.cgi/php/1077525387/
0025nobodyさん04/11/01 13:05:47ID:???
>>16
explode('/',$i,2);
0026nobodyさん04/11/01 13:07:34ID:???
丸投げするなカス、さっさと氏ね
0027nobodyさん04/11/01 13:09:52ID:???
>>16
URLの解析なら
parse_url()
パスの解析なら
basename() dirname()
0028nobodyさん04/11/01 13:12:43ID:???
>>21-22
無能共が!少しは黙れ!
0029nobodyさん04/11/01 13:17:52ID:???
お前まだ張り付いてたのか
0030704/11/01 13:36:25ID:???
>>14

php.ini の mbstring 確認しましたが、
EUC-JPになっていました。

>>10

HTTPのプロキシサーバを立てて、
やりとりしているHTTPの内容を確認したんですが、
リダイレクトの時だけ Charset のヘッダが出ていませんでした。
(かといってShift_JISと書いてあったわけではないです)


結局のところ、リダイレクト先のHTMLを修正しなおしたところ、
なぜか正常にいくようになりました。
おかしい箇所が5文字の全角テキストに断定できたんですが、
そこを見ても特に問題ない普通の文字でした。
(一つ一つコメントアウトとテストを繰り返してたどり着きました)
なぞです。
0031nobodyさん04/11/01 13:40:14ID:???
PHPが甘やかしすぎるからこういう馬鹿が絶えない
0032nobodyさん04/11/01 13:43:14ID:???
>>31
自分の無能さをPHPのせいにするとは良い度胸だな。
取り敢えず、無能はオナってろ。
0033nobodyさん04/11/01 13:47:57ID:???
>>30
charset のヘッダーが出ていないと言うことは、そのおかしいと思われる全角テキストで
文字コードを判別しようとして失敗したんだな。

適当な解決法→htmlの先頭にEUCらしいw文字をコメントで入れておく
ちゃんとした方法→>>23のいうとおりにする
0034nobodyさん04/11/01 13:50:40ID:???
>>33
> charset のヘッダーが出ていないと言うことは、そのおかしいと思われる全角テキストで
> 文字コードを判別しようとして失敗した

あいかわらず無能レスが続くなこのスレ。
0035nobodyさん04/11/01 13:51:28ID:???
>>29
放置を徹底して頂きたく。
0036nobodyさん04/11/01 13:53:29ID:???
>>31,34
このスレじゃ最近PHPの質問少ないw
0037nobodyさん04/11/01 13:57:03ID:???
他のスレが多少救われてるだろ。
0038nobodyさん04/11/01 13:58:48ID:???
>>34
どんなに煽ろうとお前の丸投げ質問には誰も答えないわけで(プゲラ
0039nobodyさん04/11/01 13:58:48ID:???
それくらいの働きはないとな
0040nobodyさん04/11/01 14:01:06ID:???
>>38の読解力が瀕死です。
0041nobodyさん04/11/01 14:01:28ID:???
>>38
そいつは俺じゃねーよ(モゲラ
0042nobodyさん04/11/01 14:02:51ID:???
ワラタ
0043nobodyさん04/11/01 14:03:35ID:???
>>40
某スレと同じように駄目質問と素人回答を観察するスレですが、何か?
0044nobodyさん04/11/01 14:04:19ID:???
もう顔真っ赤で必死です
0045nobodyさん04/11/01 14:05:27ID:???
丸投げっていうとCSVがどうとかってやつか。
0046nobodyさん04/11/01 14:10:09ID:???
>>31
たしかにperlならこの勘違いは起こらなかっただろうが、、。
PHPのせいとか言い出すとタマゴとニワトリじゃないの。
0047nobodyさん04/11/01 14:14:43ID:???
>>25
それだ!!THX!

>>24,27
参考になりました。
「最初の"/"」で区切るのがポイントなんで、
今回は>25が最適みたいです。
0048nobodyさん04/11/01 14:15:26ID:???
なんか温度差の激しいスッドレだな
0049nobodyさん04/11/01 14:24:20ID:???
>>24
改造じゃなくて丸投げスレのほうがよくね?
0050nobodyさん04/11/01 14:35:39ID:???
小泉総理のまねしてもだめだよ。もう時代遅れなんだから。まるなげ
0051nobodyさん04/11/01 14:37:10ID:???
教えてやってもいいけど。教えてもいい?
0052nobodyさん04/11/01 14:38:07ID:???
>>51
もったいぶらずにおながいしますm(_ _)m
0053nobodyさん04/11/01 14:40:58ID:???
ワラタ
0054nobodyさん04/11/01 14:52:29ID:???
>>52
教えてあげるよ。
例えばテーブルを bbs にして id 名前 発言内容 のカラム作って
単にMySQLで接続して記録していけばいいんでないか?そんだけ

丸投げだったら他スレあったよな。いってみ。
0055nobodyさん04/11/01 14:53:18ID:???
>>52
つか、どこがわからんのん?
0056nobodyさん04/11/01 14:54:39ID:???
>>52
まあ、がんがれ
0057nobodyさん04/11/01 15:00:16ID:???
これで終わったか?
0058nobodyさん04/11/01 15:12:19ID:???
PHP固有の質問なんてあるの?
どこかと絶対共有してない?
0059nobodyさん04/11/01 15:14:19ID:???
なら、てきとうに。

//------------------------------------------------------------
// ここからが主処理
//------------------------------------------------------------
if (isset($_POST["SUBMIT"])) { //このページが初めてアクセスされたか?
if ($_POST["BODY"] != "") { //発言内容はあるか?
$body = str_replace("\n", "<br>", $_POST["BODY"]); // \n\r(改行文字)をタグ<br>に変換する
$body = str_replace("\r", "", $body);
$name = $_POST["NAME"];
$BBSRecord = array(date("Y/m/d H:i:s"), $name, $body);
AppendCsvToFile(BBS_DATA, $BBSRecord); //「内容」の書込み

mysql_connect("localhost","root","");
mysql_select_db("bbs");
mysql_query("insert into bbst set name = '$name', message = '$body'");

$result = mysql_query("select * from bbst order by id");
$r = mysql_fetch_array($result);
echo $r[1].":".$r[2];
}
0060nobodyさん04/11/01 15:15:36ID:???
ほれこれも てきとう
CREATE TABLE `bbst` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(20) binary NOT NULL default '',
`message` varchar(60) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
0061nobodyさん04/11/01 15:34:17ID:???
>>58
スレ読んでから発言しろ
0062nobodyさん04/11/01 15:35:50ID:???
ググったら、結構出てきたよ
CSV方式→MySQL
0063http://idol.jirashi.net/bbs/up/img/1088136610/43.jpg04/11/01 15:39:04ID:???
水掛け論が楽しい人もいることに配慮してくれないと。
0064nobodyさん04/11/01 15:52:54ID:???
水掛けようか?
0065nobodyさん04/11/01 15:56:24ID:???
水掛け論を楽しみたいなら、そのようなスレ立てて
そこで1人でやってくれ
0066nobodyさん04/11/01 15:58:07ID:???
>>65がいいこといった
0067カポコン04/11/01 16:04:58ID:???
   ,,,,,,,,,
  (´ω`)cm < ミ タ ナ 〜 ♪
  ノ( )ノ ☆ブリ
  ..ノ__)) /
  ||| £: −☆ブリ
ー ̄ ̄ーーーーーーーーーーーーーーーー
0068nobodyさん04/11/01 16:11:58ID:???
>65
その発現自体も水掛け論なんだが。
0069nobodyさん04/11/01 16:13:00ID:???
水掛けようか?
0070nobodyさん04/11/01 16:30:50ID:3x+bX1j+
file_get_contentsでURLを開く場合、
タイムアウト処理はどのように働きますか?

1. タイムアウトするまでの時間(デフォルト)
2. タイムアウトするまでの時間の設定変更方法

が知りたいです。
0071nobodyさん04/11/01 17:35:58ID:???
>>33
美乳のことか?
0072nobodyさん04/11/01 17:42:56ID:???
あいうえお眉幅というのもあったな
0073nobodyさん04/11/01 18:29:37ID:???
>>58
絶対共有って何?
■ このスレッドは過去ログ倉庫に格納されています