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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2006/02/05(日) 22:35:34ID:sf8bx52D
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

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

本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/

過去スレは>>2
0002nobodyさん2006/02/05(日) 22:37:11ID:sf8bx52D
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
0003nobodyさん2006/02/05(日) 22:45:45ID:???
やった!初めて1000とった!!!!!
0004前スレ9932006/02/05(日) 22:48:34ID:???
>>995
申し訳ない。
OSはXPです。
設定ですが・・・
拡張子は「.php」で実行プログラムは「c:\php\php-cgi.exe」です。
他にこれといって設定をいじっているわけではないのです。
ためしにAN HTTPDの設定を「c:\php\php.exe」で<?php phpinfo(); ?>を実行してみたら、
テキストを返してきました。こちらを実行する分には問題ないみたいです。
あと、04WebServerで「php-cgi %FilePath% %Query%」でやってみましたが、
同じように実行できませんでした。
php.iniあたりがかかわってくるのでしょうか。
コマンドラインで実行できるだけあって不思議で仕方ありません。
0005nobodyさん2006/02/05(日) 22:53:39ID:???
>>3
俺の1000をとりやがって!
お詫びにおっぱいうp汁
0006nobodyさん2006/02/05(日) 22:54:19ID:???
>>4
AN-HTTPDやPHPのバージョンとか、その辺。
0007前スレ9932006/02/05(日) 22:57:14ID:???
>>6
PHP:5.1.2
AN-HTTPD:1.42n
です。

気になったんでもう一度php.ini覗いてみます。
0008nobodyさん2006/02/05(日) 23:11:19ID:???
>>7
php.iniを覗くよりももう一度入れなおした方が楽じゃないかな。
AN HTTPDはPHPの実験に入れたの?
それとも前々からAN HTTPDは使っててPHP入れたらできなかったって事?

暇があればApacheで試してみてみ。
今の段階だとPHPの設定かAN HTTPDの設定か分からんけどApacheでも試せばより厳密に特定できる。
0009nobodyさん2006/02/05(日) 23:23:41ID:???
何かググって見たりマニュアル見たりしたけどいまいちピンと来ないんですけど、
PHPだけの問題じゃないんだけどサーバ間通信って一体何なのでしょうか?
FORMとは違うものなのでしょうか?
0010前スレ9932006/02/05(日) 23:27:46ID:???
php.ini覗いてみたら、「doc_root」がそのまま(Apacheのドキュメントルート)になってました。
AN HTTPDのドキュメントルートにしたら正常に動作しました。
たかが「doc_root」の設定でも、重要なんだな。
いい勉強になりました。
つまらない質問に答えてくれてdクス >>995 >>6 >>8
0011シャットダウン2世@初心者2006/02/06(月) 00:04:49ID:XTfmVf59
ALL ABOUTというサイトのデータベースのページ ttp://allabout.co.jp/career/database/
を見ながらwin2000+apache2.0.55+PHP5.1.1+Mysql5.0.18で 接続テストしてるんですが、「test」というデータベースに接続しようとすると、
Warning: mysql_connect() [function.mysql-connect]:
Can't connect to MySQL server on 'localhost' (10061)
in C:\Program Files\Apache Group\Apache2\htdocs\mytest1.php on line 4
can not connect db
という文が出て接続できません。
ソースはホームページそのままコピペで
<?
//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--root
$dbHandle = mysql_connect("localhost","root","a");
//DBの接続に失敗した場合はエラー表示をおこない処理中断
if ($dbHandle == False) { print ("can not connect db\n"); exit; }
//db名 test
$db = "test";
  (中略 HTML文を出力する文句が書いてあります)
//結果レコードをメモリから開放
mysql_free_result($rs);
//DBへの接続を切断
mysql_close($dbHandle); ?>
ですが、パスは「a」にしてたのでこれに変えてみたけどダメです。
何がおかしいのでしょうか。 ちなみに、apacheの
「あなたもくろみ通りに余裕でこのページが見えているでしょうか?」
は出てます。phpinfo()も見ることが出来ます。
mysqlでデータベース「test」も作ってあります。
0012nobodyさん2006/02/06(月) 00:09:59ID:???
>>11
本当にlocalhostで良いのか?
0013nobodyさん2006/02/06(月) 00:16:39ID:???
問答無用で403へ飛ばしたいんです。

header("HTTP/1.1 403 Forbidden")

とやったところ、確かに403とヘッダーに出力されたのですが、
鯖が規定する403へ飛んでくれません。
どうすれば規定の403ページへ飛んでくれますか?
0014nobodyさん2006/02/06(月) 00:19:55ID:???
>>11
MySQLのユーザ名とパスワードの組み合わせが間違ってるとしか思えないが…
0015nobodyさん2006/02/06(月) 00:26:04ID:???
phpでCのようなマクロをさせたいのですが、どのようにしたらよいでしょうか?
Cでのソースは
#define foge(a) (((a)) ? (TRUE) : (FALSE))
int k = foge (-1);
という感じです。
 (((a)) ? (TRUE) : (FALSE))
については三項演算子がPHPでも扱えるので実装できるのですが、
foge(a)の部分が使えると助かります。
0016nobodyさん2006/02/06(月) 00:37:14ID:???
>>15
素直に関数にしちゃえばいいかと。
Cと違ってdefineにプリプロセッサによる効率改善の効果があるわけでもなし。
0017nobodyさん2006/02/06(月) 00:43:10ID:???
>>16
やっぱりそうですよね。
スーパーグローバル変数の変数があればそれを返し、
何も無ければ""と空を返すというのを作りたかったのですが、関数にしました。
function ischeck ($a){return ((isset($_REQUEST[$a]))?$_REQUEST[$a]:"");
$test = ischeck ('test');
0018nobodyさん2006/02/06(月) 00:58:15ID:???
function ischeck ($a)
{global $$a;((isset($_REQUEST[$a]))?$$a=$_REQUEST[$a]:"");}
$test = ischeck ('test');

随分と行儀の悪いコーディングをしてしまった…
0019nobodyさん2006/02/06(月) 00:59:41ID:???
まるでbrainf*ckだな、碇よ
002092006/02/06(月) 01:22:28ID:???
すいません。お願いします('A`)
サーバ間通信をするには何か特別な関数とか必要なのですか?
イメージはなんとなく掴めて来たのですが実装方法がなんとも・・・
0021nobodyさん2006/02/06(月) 01:35:53ID:???
>>13
>鯖が規定する403へ飛んでくれません。
4xxで飛ぶ?headerでHTTPのレスポンスを出しているのなら
エラーのコンテンツを提供するのは、そのスクリプト自身ではないのか。

Apacheが出してる403のコンテンツと同じものを出したいのなら
ApacheのErrorDocumentとPHPスクリプトのエラー出力内容を同じにする。
0022nobodyさん2006/02/06(月) 01:40:43ID:???
>>20
その「サーバ間通信」とやらにTCP/IPを使うのならば
基本的にはsocket関数を使う。
0023nobodyさん2006/02/06(月) 01:52:33ID:???
>>20
PHP書籍スレに来た人?
0024202006/02/06(月) 01:54:47ID:???
>>22
はい、HTTPでの通信を、って感じです。
SOCKETって確かLinux上のPHPとかならコンパイルのときにコンフィギュアで指定しないと
使えないんですよね?

>>23
いや、行ったことないです。
0025nobodyさん2006/02/06(月) 02:05:02ID:???
--enable-socketsだね。

PHP書籍スレでよく似た流れを見たから同じ人なのかな?と思ってね。
>ソケット関数を使ったツールを作りたいんだけど、いまいち使い方がわからん
>参考になる本とかある?青マンモスに詳しく載ってる?
って質問に、「RFC読むかC/C++のソケットプログラミング本を読むのがいいよ」みたいな回答を
0026202006/02/06(月) 02:08:56ID:???
>>25
そうでしたか。
すんません、俺まだまだそんなレベルじゃないっす('A`)
AサーバからBサーバに何かパラメータを渡したい時はやっぱりフォームとは違う
処理とか関数が必要なんですよね?それこそSOCKETとか。
俺も明日本探しに行ってきます。
0027nobodyさん2006/02/06(月) 02:14:28ID:???
>>24
--enable-socketsの指定は必要だね。
多くの環境で有効にされてるような気はするけど。
0028nobodyさん2006/02/06(月) 02:15:43ID:???
>>26
そのくらいの用途ならわざわざソケット関数使わなくてもいいよ。
(fsockopen使ったりもするけど)

PEAR::HTTP_Clientとか使ってはどうかな?
0029242006/02/06(月) 02:18:19ID:???
リロード…orz
Bサーバーに値を渡すだけなら単にBサーバーに用意したPHPのページを
GETで呼び出すだけでもいいんじゃないの?
どんなデータをどんなタイミングで渡そうとしてるか知らないけど。
allow_url_fopenを有効にしてfile("http://Bサーバー/受信ページ?データ");でよさげ。
0030202006/02/06(月) 02:31:36ID:???
>>24 >>25 >>26
ありがとうございます!!
何を渡して何を貰うのか等は理解しているのですが、
今一「どうやってデータを渡せば良いのか」が解って
いませんでした。
何か実装方法はいろいろありそうですね・・・
皆さんの意見を参考にしていろいろいじって見ます!
0031202006/02/06(月) 02:32:23ID:???
ああああああああああああ
ごめんなさい、アンカーミスです。
>>27 >>28 >>29 です!
003227=292006/02/06(月) 02:34:10ID:???
ごめんよ。俺が慌てて名前間違ったな
0033nobodyさん2006/02/06(月) 03:05:46ID:???
>>1
忘れるなよ
http://wiki.2chx.net/php/
0034nobodyさん2006/02/06(月) 03:57:38ID:???
そこ使えないからもうリンク張らなくていいよ
0035nobodyさん2006/02/06(月) 06:41:38ID:???
エクスプローラからドラッグアンドドロップでファイルをアップロードできるようにしたいのですが、 
ActiveXを組み合わせる以外に方法はありませんか? 
0036nobodyさん2006/02/06(月) 09:14:56ID:???
>>35
ドラッグ&ドロップを認識できるのってActiveX以外にあるの?
0037nobodyさん2006/02/06(月) 10:57:08ID:???
テキストファイルの最後の行だけ必要で、
それを読み込む効率的な方法はどうでしょうか。
0038nobodyさん2006/02/06(月) 11:14:02ID:???
PHPでフォームを飛ばしたときisset($_POST['hoge']){}
って感じで処理を区別してるのですが
エンターキーを無効して上のように処理する方法はないでしょうか?
JSの方になるのでしょうか?スレ違いならすいません。
0039nobodyさん2006/02/06(月) 11:19:41ID:???
テキストファイルの分量にもよるけど、バカみたいに巨大なログファイルが相手だと
結局 $line = `tail -1 $filename`; が1番速くて省メモリだった。という経験はある。
0040nobodyさん2006/02/06(月) 11:24:46ID:???
>>38
「無効して」の意味がわかりません
0041nobodyさん2006/02/06(月) 11:29:09ID:???
>>38
うん。htmlの書き方と簡単なJavascripで補完する形になるよ。
0042nobodyさん2006/02/06(月) 11:37:33ID:???
>>39
なるほど…
普通に上から読んでいくか、そういう方法かということなんでしょうかね。
0043前スレ9312006/02/06(月) 11:39:05ID:???
ども、前スレ931でアイコンアップしたもんです。
あくまでも拾い物なんで、テキトーに使ってやってください。

ついでに、それが含まれたweb iconセットをうpってきました。
これだけでほとんどいけてます、ウチだと。
ttp://up.spawn.jp/file/up11206.zip
0044432006/02/06(月) 11:39:53ID:???
あ、直リン禁止(403)ですね。。。
ttp://up.spawn.jp/index.html
ここのup11206ですー。
0045nobodyさん2006/02/06(月) 13:31:31ID:???
下らない質問で悪いんだけど、
そのアイコンってどう使うの?
何処に設定するの?
教えてちょ。
0046nobodyさん2006/02/06(月) 13:46:42ID:???
エクスプローラのフォルダオプション - ファイルタイプの設定でアイコン変更するのだろう。
0047nobodyさん2006/02/06(月) 15:59:11ID:???
すみません、もしかしたら板違いですらあるかもしれないですが。。
フリーメールってありますよね、@melu.jpとかの。
ああいうフリーメール発行サイトの運営をしようと思ったらどういう
知識が必要ですか?
かなり恥ずかしい質問ですが。。
レンタルサーバ(さくら)とかでも出来るものでしょうか?
0048nobodyさん2006/02/06(月) 16:18:54ID:???
無料なら問題なさそう。
さくらサーバーでメルアドを作るの?それは無理じゃないかなぁ。
自宅鯖でやるならまだしも。

というか、板違い。
何処の板が適正か俺には判断できないが。
0049nobodyさん2006/02/06(月) 16:26:20ID:???
>>47
自宅鯖とかの話じゃないかな、それは。
0050nobodyさん2006/02/06(月) 16:27:36ID:???
>>47
サーバを管理できるだけの技術と権限が必要。
共有サーバでは権限が制限されるので、ほぼ無理。
メアドを無限に発行してくれるサービスであればできなくもないけど、
不特定多数による利用は規約で認められていないと思う。
専用サーバを借りるか、自鯖を建てるのが妥当かと。

詳しくはサーバ板で訊いた方がいいと思われ。
0051nobodyさん2006/02/06(月) 16:55:23ID:???
>>47
Postfixで検索してみれ
0052nobodyさん2006/02/06(月) 17:01:36ID:???
>>47
PHPで出来たWebメール機能も持ったフリーメール管理ツールがあるので
PHPの話に持っていけなくもないが、基本的にはスレ違い・板違い。
収容したドメインに対してメールアカウント追加のI/Fを
提供してるところも少ない(でも少ないけどあるよ)ので、
結局はサーバの管理権限を確保することが必要。
0053472006/02/06(月) 17:31:22ID:???
皆さんありがとうございました
そうですかー、自宅サーバがあったほうがいいんですね…
プログラムの練習のためにも必要だろうし
でも今使ってるパソより練習サーバ用に買うマシンの方が
性能よくなりそうなんですよね、今使ってるの古いからw
なんか、いい方法探してみます

ありがとうございました!
0054nobodyさん2006/02/06(月) 17:32:56ID:???
>>42
むかーし、某所でCで最高速のtailコマンドを実装するコンテストみたいのがあったけど、
fseekで後ろから1024バイト単位など適当なサイズで読み込みかけてって、
中身に改行コードが見つかればそこから末尾の行を抽出する、みたいな手法があったよ。

まともなtailコマンドだと1行の長さも抽出する行数も不定なんでチューニングに
かなり神経使うロジックを組んでたけど、大体似たような長さの行ばかりで
しかも抽出対象が1行だけなら簡単なロジックで高速に抜き出せると思う。
0055nobodyさん2006/02/06(月) 17:39:47ID:???
メールだけのホスティングサーバとかって結構安くあるんじゃない?
自分で鯖を一から実装したいってのなら別だけど。
0056nobodyさん2006/02/06(月) 17:44:20ID:/04IpGBt
ファイルを検索するfindfirstみたいな関数ありますか?
0057nobodyさん2006/02/06(月) 17:54:20ID:???
>>55
契約者が用意されたコンパネなどを使って手動でアカウントを
管理するのはあるけど、巷のフリーメールのように第三者が
勝手に追加削除できるようなものは極少ない。
フリーメールにありがちなSPAMの温床になるから。

契約者が用意されたコンパネを叩く中間的なスクリプトを
書いて第三者に提供すればいいのだけどね。
0058nobodyさん2006/02/06(月) 18:16:36ID:???
別のphpファイルの中の関数を呼ぶ方法を教えてください
0059nobodyさん2006/02/06(月) 18:19:54ID:nFVQbOKx
include
0060nobodyさん2006/02/06(月) 18:20:17ID:???
>>58
その別ファイルとやらを require_once すれば準備は出来てる。
これでワカランならマニュアル見ろ。全然マニュアル見ないで質問してるだろオマエ。
0061nobodyさん2006/02/06(月) 18:25:33ID:???
>>58
include
include_once
require
require_once

違いはマニュアル嫁
0062nobodyさん2006/02/06(月) 18:33:18ID:???
include("aaa.php");
とすると、エラーつうかわー人具がでるんですよね
0063nobodyさん2006/02/06(月) 18:41:18ID:???
ふ〜ん
0064nobodyさん2006/02/06(月) 18:58:20ID:???
>>62
どうせ、そのaaa.phpが間違ってんだろ。

エスパー光臨キボンって言いたいのか?
0065nobodyさん2006/02/06(月) 19:14:16ID:???
いや合ってるわ。
つか、include("aaa.php");は徹ようになったんですが
include("aaa.php?mode=aa");とかするとまた同じエラーがでるんですよねこれ
なんか、そのファイルが無いいたいなエラーなんですけどね
0066nobodyさん2006/02/06(月) 19:17:06ID:yVSQC/2I
<?php
header("Content-Type: text/html; charset=utf-8");
header("Content-Style-Type: text/css; charset=utf-8");
header("Content-Script-Type: text/javascript; charset=utf-8");
?>

[06-Feb-2006 19:07:14] PHP Warning:  Cannot modify header information - headers already sent
            by (output started at /home/user/www/index.php:1) in /home/user/www/http-header.inc on line 4

このようなエラーが出てしまいます。
どうすれば良いでしょうか?
0067nobodyさん2006/02/06(月) 19:24:26ID:BYKAG910
>>>65
例えばccc.phpでaaa.phpを読み込んでるなら、aaa.phpへの引数を
aaa.php?mode=aaとするのではなく、ccc.php?mode=aaとするのはどうだろうか?
0068nobodyさん2006/02/06(月) 19:25:24ID:???
>>66
ソースの<? ?>の外に、無駄にスペースとか改行とか入ってない?
0069nobodyさん2006/02/06(月) 19:27:00ID:???
>>65
includeとかではファイルをそのまま読み込むだけで実行はしないので、?〜のパラメータは無意味な上に
それくっついたファイル名として扱われるので、当然そんなファイルは存在しないことになる。
0070nobodyさん2006/02/06(月) 19:28:44ID:???
だからマニュアル読めって。
全然マニュアル見ないで質問してるだろオマエ
0071nobodyさん2006/02/06(月) 19:32:35ID:???
>>65
おいおい、そんな事やったらエラー出て当たり前だろうが。マニュアル嫁よ('A`)
0072nobodyさん2006/02/06(月) 19:36:36ID:???
>>56
glob("*")
0073nobodyさん2006/02/06(月) 19:40:53ID:???
>>72
何その顔。ふざけてるの?
0074nobodyさん2006/02/06(月) 19:42:51ID:yVSQC/2I
>>68
すみません、間違えました。

<?php
if (isset($_SERVER["HTTP_ACCEPT"])) {
$HA = explode(",", $_SERVER["HTTP_ACCEPT"]);
if (in_array("application/xhtml+xml", $HA)) {
header("Content-Type: application/xhtml+xml; charset=utf-8");
} else {
header("Content-Type: text/html; charset=utf-8");
}
} else {
header("Content-Type: text/html; charset=utf-8");
}
header("Content-Style-Type: text/css; charset=utf-8");
header("Content-Script-Type: text/javascript; charset=utf-8");
?>

これで、5・12・13行で>>66のようなエラーが出ます。
しかも text/htmlが送られてくるし…
0075nobodyさん2006/02/06(月) 19:52:25ID:???
BOMって知ってる?
0076nobodyさん2006/02/06(月) 19:54:47ID:???
>>74
2行目よりさらに前で自動的にtext/htmlが送られてしまってるんだろ
0077nobodyさん2006/02/06(月) 20:04:53ID:???
>>67
プ
0078nobodyさん2006/02/06(月) 20:09:42ID:???
>>75
うちの近くにあるCDとかゲームとか色々売ってるトコロか。
0079nobodyさん2006/02/06(月) 20:41:13ID:???
一回質問したら名前欄に数字入れてくれなきゃ
どれが質問者か分からない俺逆エスパー
0080nobodyさん2006/02/06(月) 21:15:30ID:???
つかエラー(じゃなくてワーニング)が出た要因は
>headers already sent
であると指摘しているのだが
0081nobodyさん2006/02/06(月) 22:27:14ID:???
前すれ>>997

返事遅れてすまないが、アイコンサンクス。
公式デザインよりぜんぜんいいな。早速変えました
0082nobodyさん2006/02/06(月) 23:28:55ID:???
マニュアル嫁しかいわないやつは本スレに引きこもってればいいと思う。
マニュアルもロクに読めないやつらが質問するのがくだ質だろ。
0083nobodyさん2006/02/06(月) 23:50:09ID:???
まぁ、殆どの質問は「マニュアル嫁」で解決するからねぇ。
0084nobodyさん2006/02/07(火) 00:03:59ID:???
>>82
マニュアル嫁って言ってるのを横目に、フォロー入れてやればいいんじゃね?
0085682006/02/07(火) 00:10:07ID:???
>>74
コードが変わってもアドバイスは同じ。
いきなりそのファイルにアクセスして
そのエラー表示なら
余計な空白、改行などが入っているのだろうと思われる。
0086nobodyさん2006/02/07(火) 01:11:11ID:???
関西弁変換プログラムをつくろうと摸索中です。
<?
function kansai($text){
$text=str_replace("ありがとうございました","おおきに",$text);
}
?>

上記の内容のosaka.incというファイルを作成し
外部ファイルからosaka.incをrequire_once print(kansai($text)) とやると 中に入っていたはずの文字列が全て消えてしまいます。
どこがおかしいのでしょうか?使う関数が間違っているのでしょうか?
0087nobodyさん2006/02/07(火) 01:17:12ID:vK7c16Ac
 
0088A子2006/02/07(火) 02:06:08ID:Ru+YG/77
タイトルに甘えて下らない質問させて頂きます。
xamppを導入したら、今まで動いていたソースが動かなくなりました。
具体的な不具合は、掲示板の投稿ボタンを押しても登録されませんし、
表示の更新も行われません。
おそらくクライアントよりサーバーへデータが送信されていないと思われます。

原因と推測される設定ファイルなどをお教えして頂ければ嬉しく思います。

質問に不備がありましたら再度投稿させて頂きます。
よろしくお願いします。
0089A子2006/02/07(火) 02:09:29ID:Ru+YG/77
追記:
データベースへの接続は成功しています。
コンソールよりテーブルに対してはデータを追加できます。
0090nobodyさん2006/02/07(火) 02:18:04ID:???
正常に動作した前の環境と、XAMPPで設定ファイルを見比べろ。
前の環境とやらがレン鯖とかで設定ファイルが見れないなら、phpinfoでも可。

この先はエスパーに任せた
0091超高速エスパー2006/02/07(火) 02:37:52ID:???
>>88
register_globals = On
0092A子2006/02/07(火) 02:40:27ID:Ru+YG/77
>91さん
Onと設定されています。
0093nobodyさん2006/02/07(火) 02:43:27ID:???
>>86
function kansai(&$text)か、return $textじゃないの?
0094nobodyさん2006/02/07(火) 07:49:47ID:???
>>74
エディタの設定を変えろ
0095nobodyさん2006/02/07(火) 13:57:44ID:???
文字列の中に指定文字がいくつあるかを返す関数を教えてください
0096nobodyさん2006/02/07(火) 14:16:54ID:???
substr_count
0097nobodyさん2006/02/07(火) 14:21:44ID:???
>>96
激しく有難う御座います。
まさしくそれを求めていました。
0098nobodyさん2006/02/07(火) 16:22:32ID:???
フォームで入力したデータを配列の代わりにしたいと思っています。

趣味[ ](変数はhobby)というテキストボックスに[野球,漫画,旅行]と入れたとします。
結果表示のプログラムで

$kekka=array($hobby);
print"$kekka[0]";

と記載したら、「野球」が出ると思ったのですが、そのまま「野球,漫画,旅行」とでます。
どうすれば配列として$hobbyのデータを扱う事が出来るのでしょうか?
0099nobodyさん2006/02/07(火) 16:31:59ID:W5Ufji/6
FreeBSD5.3,Apache1.3なのですが、
あるサブドメイン配下の「*.php」はPHP4とみなし、
あるサブドメイン配下の「*.php」はPHP5とみなすようにって、
できますか?

できるとしたら、どうすればよいのでしょうか?
よろしくお願いいたします
0100nobodyさん2006/02/07(火) 16:42:29ID:???
>>99
それぞれのドメインを別のサーバーに割り振るようにDNSを設定しちゃって、
別々のマシンで動かしちゃうとかはダメ?
0101nobodyさん2006/02/07(火) 16:44:04ID:???
>>98
explodeで分解
0102nobodyさん2006/02/07(火) 16:44:29ID:???
>>99
VirtualHostディレクティブ
0103992006/02/07(火) 17:06:24ID:???
>>102
・・・・・・・あ・・・そうか・・・ありがとうございます
0104992006/02/07(火) 17:14:43ID:???
ふときづいたのですが、
php4とphp5がみにいくphp.iniを別個に用意することはできないでしょうか?
0105nobodyさん2006/02/07(火) 17:32:16ID:???
>>104
PHP5ならhttpd.confにPHPIniDirで指定できる。
0106nobodyさん2006/02/07(火) 17:54:04ID:???
>>104
PHPのコンパイル時にかっちり指定してもいいし、
CGI版なら普通な設定ならば、違うものを読みにいくでしょ?
0107nobodyさん2006/02/07(火) 18:34:21ID:???
SQLiteで聞けと言われました
ここでいいのか判らないけど、質問します

現在ロリポップでmovable type(SQLite)を運営していますが
さくらのプレミアムプランへの移行を考えています

この場合、例えば設定を書き換えた上で
ダウンロードしたファイルをそのまま丸ごとアップして
パーミッションさえ設定すればデータは復旧できるのでしょうか?
それとも、インストールから一通りの手順を踏む必要があるのでしょうか
0108nobodyさん2006/02/07(火) 18:44:11ID:z2Ed5501
PHPでPDFを出力したいと思い、
ttp://www.php.net/manual/ja/ref.fdf.php
を読み、Adobeのサイトで FDF Toolkit というのを
ダウンロードしようとしましたが、住所氏名電話番号使用目的など
たくさん書いて、Adobeの人に承認されないとダウンロードできません。
ttp://partners.adobe.com/public/developer/acrobat/fdf/topic.html

なので誰かください。
# FDF Toolkit for Windows (ZIP: 2.2MB) [FDF Toolkit access approval required]

FPDFはあまりに煩雑すぎてイヤです。
0109nobodyさん2006/02/07(火) 18:51:04ID:???
>>107 >>108
PHP 関係無い。>>107 は DB 板へ >>108 は ダウソ板へ
0110nobodyさん2006/02/07(火) 18:52:34ID:???
ぐぐっても出てこないのですが、mail関数で送信する
簡単なメール送信フォームを作成したのですが、メール送信後に

511 Headers specify no receipients.
というエラーメッセージが出ます。

mb_language("ja");
mb_internal_encoding("sjis");
も指定してます。どうしたら出ないように出来るのでしょうか?
0111nobodyさん2006/02/07(火) 19:11:13ID:???
>>109
108がダウソ板ってのはちょっと違う希ガス
0112nobodyさん2006/02/07(火) 19:15:33ID:???
>>107
DB板つうよりも、ブログ板のMTスレだな。
0113nobodyさん2006/02/07(火) 20:49:13ID:???
>>110
そのメール内容は送信相手にちゃんと届いてますか?
そのエラー訳したら

「ヘッダーは受取人を全く指定しません」

ってなったけど。あとreceipientsではなくrecipientsだと思う
0114nobodyさん2006/02/07(火) 21:25:39ID:QxUNaPeI
preg_replaceで
test/&test2/&test3/&
という文字列から&の直前のスラッシュのみをすべて取り除きたいのですが
正規表現に詳しい方がいたらやり方を教えてください。
0115nobodyさん2006/02/07(火) 21:25:43ID:xKyeolaW
既出かもしれませんが、お分かりの方がいたら教えて下さい。

methodがPOSTになっているフォームの内容をPHPで送信したいんですが、どうやれば良いんでしょうか?
例えば、ユーザIDとパスワードを求めて来るページに、PHPで自動的にログインしたいんです。
そのあと、戻って来たページ(html)を読み込みたいんです。

fopen()でURLを指定する事も出来ませんよね。

よろしくお願いします。
0116nobodyさん2006/02/07(火) 21:34:21ID:???
>>114
&の直前のスラッシュって条件なら、
正規表現使わなくても

$text = test/&test2/&test3/&;
$text = str_replace("/&", "/", $text);

でできないかな。
的外れならスマン
0117nobodyさん2006/02/07(火) 21:34:54ID:???
$text = "test/&test2/&test3/&";
だった
0118nobodyさん2006/02/07(火) 21:35:11ID:???
>>114
preg_replace('/\/\&/', '&', "test/&test2/&test3/&");
01191182006/02/07(火) 21:35:58ID:???
>>116
ああ、その方が適切。
0120nobodyさん2006/02/07(火) 21:41:49ID:???
Array
(
[0] => あああ
[1] => いいい
[2] =>
[3] => ううう
[4] => えええ
)
から、空の要素を削除して
Array
(
[0] => あああ
[1] => いいい
[2] => ううう
[3] => えええ
)
にするにはどうすればよいのでしょうか。
0121nobodyさん2006/02/07(火) 21:44:53ID:???
array_map
0122nobodyさん2006/02/07(火) 21:50:12ID:QxUNaPeI
>>116
おお!!ビンゴです!!
わたしが難しく考えすぎていたみたいです。
どうもありがとうございました。本当に助かりました。
0123nobodyさん2006/02/07(火) 21:50:54ID:???
>>120
$new = preg_grep("/./", $old);
01241202006/02/07(火) 22:08:36ID:???
>>123
できました。ありがとうございます。
正規表現で.(全ての文字)にマッチするのだけを返すんですね。メモメモ。
0125nobodyさん2006/02/07(火) 22:08:52ID:???
>>115
エヌパーキボンス(´_ゝ`)
0126nobodyさん2006/02/07(火) 22:26:44ID:???
>>115
PEARのHTTP_Requestが楽。
またはsocket通信。
0127nobodyさん2006/02/07(火) 23:29:30ID:xKyeolaW
>>126
なるほど、参考になりました。
どうもありがとうございました。
0128nobodyさん2006/02/08(水) 01:14:09ID:???
よくパスワードの関係で、表示された画像に写る文字列を入力すると言うのがありますが、
あれってGDでも出来るんですか?
普通の文字ならまだしも、無駄にふにゃふにゃしてますよね。
何かフォントでもあるんでしょうか。
0129nobodyさん2006/02/08(水) 01:27:12ID:???
ふにゃふにゃってかわいいなお前(*´Д`)
0130nobodyさん2006/02/08(水) 02:03:14ID:???
>>128
GDでできなくはないけど結構面倒くさいと思う。
元のフォント自体があんな風になってるわけじゃなく、フォントから生成した画像に対して
ピクセル単位にデータの位置をずらしていく、いわゆる画像フィルタ処理のライブラリを
用意しておいて、それを通して加工した画像を表示させてる感じ。
PHP+GDでもピクセル単位での読み出しと出力はできるので頑張れば同じような
画像加工も可能だとは思うけど、一発でそういう変換ができるわけじゃない。
自分で頑張って座標変換の計算をするような演算式を書く必要あり。
ま、画像の加工と言っても基本的には座標位置の変換だけなので、
画像変換処理の中では比較的楽な部類ではあると思うけどね。
(左右ずらしだけじゃなく回転や歪みが入ってくると計算が面倒になってくるけど)
0131nobodyさん2006/02/08(水) 02:13:16ID:???
そんな面倒な事せずにImageMagic使ったら?
0132nobodyさん2006/02/08(水) 02:18:08ID:xBsMO0LF
>>128
そういうのを作ってくれるCGIがあったはずなので
それ探して使えば?
0133nobodyさん2006/02/08(水) 02:30:02ID:xmigkNJp
http://www.ihot.jp/?heichan
0134nobodyさん2006/02/08(水) 02:40:34ID:T0ghpS/6
ヤホートピックスの仕様が変わったらしく、エラーになったので直しているのだけれど、以下だと文字化けしてしまう所が出ます。
どうしたらいいのかなぁ。

<?php
include("jcode-LE.php");
if ($fp = @fopen("http://www.yahoo.co.jp", "r")) {
while (!feof($fp)) $data .= mb_convert_encoding(fgets($fp, 1024), "SJIS", "EUC-JP");
fclose($fp);
}
$match_all = preg_match_all("%<a href=\"http://rd.yahoo.co.jp/toppage/topics/(.+?)\">(.+?)</a>%is", $data, $item);
echo "Yahoo!ニュース <a href=\"http://www.yahoo.co.jp/r/fc1\" target=\"_blank\">トピックス</a>\n";
echo "<ul>\n";
for ($i=0; $i< $match_all; $i++) {
$url = "http://dailynews.yahoo.co.jp/fc/". $item[1][$i];
$title = $item[2][$i];
$title = strip_tags($title);
echo "<li><a href=\"". htmlspecialchars($url) ."\" target=\"_blank\">". htmlspecialchars($title) ."</a></li>\n";
}
echo "</ul>\n";
echo "Yahoo!ニュース <a href=\"http://www.yahoo.co.jp/r/fc2\" target=\"_blank\">一覧</a>\n";
?>
0135nobodyさん2006/02/08(水) 02:49:53ID:???
テキトーにテメーで考えろよ。
0136nobodyさん2006/02/08(水) 03:01:28ID:???
>>134
それを解決したら、いくらくれるんだ。
0137nobodyさん2006/02/08(水) 05:28:53ID:???
>>128
php|architectまたはPHPプログラマーズマガジンの2003年2月号で
「Building a Turing Test with PHP and the GD Library
(PHPとGDライブラリでチューリングテストを試みる)」
http://www.asial.co.jp/magazine/backnumber/200302/
という記事がある。自分で作るなら参考にすると良い。
やってるのは描画位置ずらしと違う色の線を重ねるパターンだけだけど。

他に回転や複数フォントの組み合わせもやると、更に高度になるけど
スクリプトローダー相手にはそこまでしなくても、まあ大丈夫。
あと探せばライブラリは何個かあるよ。
0138nobodyさん2006/02/08(水) 05:33:22ID:???
>>128

http://www.linkclub.or.jp/~ma3ki/webutil/jpgraph/howtomake-jpgraph.html#antispam
0139nobodyさん2006/02/08(水) 08:40:33ID:???
jcode使ってる奴っているんだ。。
0140nobodyさん2006/02/08(水) 09:44:40ID:???
>>115
>ユーザIDとパスワードを求めて来るページに、PHPで自動的にログインしたいんです。
sessionとかcookieとか使ってみたらどうよ。
0141シャットダウン2世@初心者2006/02/08(水) 09:50:48ID:HTXUrlQx
>>12->>14
レスサンクスです。SQL5を再インストールしたら(汗)
PHPで書いた文でWebページにテーブルが表示されるようになりました。
いろんなバージョンをいじくってたら、ポートが3307になってたり
したけど、今はSQL5ひとつだけのポートは3306になっている模様。
3つほどさらに質問があるんですが、

1、PHPの設定はSJISにしてるんですが、とってきたレコードが文字化けします。
2、PHPのプログラムで接続、クローズしてもW2kのサービスで反映されてません。
ブラウザでは「connect DB」とか「close DB」とか
ちゃんと表示されているのに。
3、「insert into …」で新しい行を書き込んだら、
ブラウザでは「書き込みました」と出るのに、Mysqlで見てみるとレコードが
入ってません。
オレのPCには魔物が天狗がひそんでいるんでしょうか。
0142nobodyさん2006/02/08(水) 10:02:29ID:???
>>140

そこでsessionやcookieきたのにワラタwwwwww

>>126 がいってる通りPEARのHTTP_Requestを使うのが一番楽い。

コードで記述すると以下みたいな感じになる。

$req = new HTTP_Request("URI");
//POSTを定義
$req->setMethod(HTTP_REQUEST_METHOD_POST);
//実際に渡すPOSTデータをセット
$req->addPostData("foo", "var");
//リクエスト
$req->sendRequest();
//ヘッダー取得
$header = $req->getResponseHeader();
//レスポンスコード取得
$code = $req->getResponseCode();
//リクエスト後のHTMLを取得
$body = $req->getResponseBody();

詳しくは以下参照
ttp://pear.php.net/manual/ja/package.http.http-request.php


そういやHTTP_RequestのsetProxyメソッドを使用した際に
timeout処理の部分にバグがあったから手直しした事があるな。
0143nobodyさん2006/02/08(水) 10:13:59ID:???
>>141

まず1に関して
何をSJISにしてるんだ?
内部コード?出力コード?
まぁどっちにしろ、MySQL側の文字コードとPHP側の文字コードがあっていないからそういう事態が発生する。

2に間して
MySQLの終了が出来ないと言ってるのか?

もしそうならば勘違いしている。
PHP側がMySQLを起動終了させるわけではなく、アクセスのオープン、クローズをしているわけだ。

3に関してはコードを見ないとなんとも言えないな。
0144nobodyさん2006/02/08(水) 10:18:18ID:???
>>142
俺の足りない脳を笑って楽しいか?
0145nobodyさん2006/02/08(水) 10:49:21ID:???
>>144
イキロ
0146nobodyさん2006/02/08(水) 11:58:52ID:???
php4で動いていたスクリプトを5の環境でも使用する場合、
特に変更する必要がある点などあるのでしょうか?
4で動いていれば基本的に5でも問題なく動作するのでしょうか?
0147nobodyさん2006/02/08(水) 12:09:46ID:???
>>146
>>1
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
0148nobodyさん2006/02/08(水) 12:41:15ID:???
>>146
多くの場合はそのまま動くけど一部仕様変更あり
0149nobodyさん2006/02/08(水) 15:55:23ID:zajb1emB
PEAR 自身のアップグレードをしたくて
pear upgrade pear
したら、
requires package 'PEAR' >= 1.3.3
とメッセージが出てアップグレードできません。
確かにインストールされてる PEARは1.3.1 です。

アーカイブをダウンロードしてきて、
手動で pear/PEAR ディレクトリを書き換えてしまっていいのでしょうか?
0150nobodyさんNGNG
php.iniではなくphpスクリプトの方で
ポストされるファイルのサイズを制限したいんですが
どうしたらいいですか?
0151nobodyさん2006/02/08(水) 18:16:28ID:???
>>150
upload_max_filesizeは.htaccessでも設定できるよ
0152nobodyさん2006/02/08(水) 18:21:31ID:???
>>150

<?
$max_size = 1024 * 100;
$kb = $max_size / 1024;
if($_FILES["hoge"]["size"] > $max_size){
exit("アップロードされたファイルは最大ファイルサイズ(".$kb."KB)を超えています。");
}
?>
0153nobodyさん2006/02/08(水) 18:23:28ID:0zkvAuO5
くだらなくてすみません。
phpのコードに出てくる「 => 」の意味は何ですか?
貰ってきたコードに出てきました。
数字=>"ファイル名"みたいになってます。
0154nobodyさん2006/02/08(水) 18:32:38ID:???
>>153

つ ttp://jp.php.net/manual/ja/function.array.php
0155nobodyさん2006/02/08(水) 18:34:06ID:???
>>153
配列の時に使う。
key => value
キーと値という意味。
0156nobodyさん2006/02/08(水) 18:35:32ID:???
>>150-151
ini_set関数でも設定は変えられるわな。
場合によっては、upload_max_filesizeだけでなく、post_max_sizeも変える必要もあるかと。

>>152
これって、実際にPOSTされた後でしか実行できないよね?
01571492006/02/08(水) 18:36:25ID:zajb1emB
だれかおしえて
0158nobodyさん2006/02/08(水) 18:37:04ID:0zkvAuO5
>154,155
うひょー。どうもです。
=>を使えば、順番にかかわらず配列の中身をコントロールできますね。
すげー。わかりやすいし。
ありがとうございました。
0159nobodyさんNGNG
>>151-152>>156
どうもありがとうございます。

>>151
あ、.htaccessでもできるんですか。
それは知りませんでした。
てっきりphp.iniでしかできないのかと思ってました。

>>152
その方法でやってみたんですが、
>>156のとおり
アップロードされた後にチェックする感じになってしまいましたorz

>>156
phpスクリプトの中からも変えられるんですね。
できるだけphpスクリプトの中だけやりたいので
それで行こうと思います。
0160nobodyさん2006/02/08(水) 18:43:25ID:o/oLkGrK
CGI/perlで質問ですが
$cnt1〜$cnt100まで、今のところ100個の変数にそれぞれ数値が格納されています。
コレを「一番大きいもの」を見つけるにはどうやったらいいのでしょうか?
正規表現でこういうのとかあるんですか?
それとも比較して1つ1つ気の遠くなるような作業をするんですか。。。orz

どうやればいいのか分からないので、アドバイス下さい。
0161nobodyさん2006/02/08(水) 19:02:41ID:???
>>160
ここは PHP の質問スレだ。帰れ。
0162nobodyさん2006/02/08(水) 19:19:51ID:???
>>160
PHPだったら、整形してmax()で一発なのに
残念だったねぇ(w
0163150NGNG
すみません。>>156の方法でやってみたんですが
なんかうまくいきませんでした。
で、なんでだろうとググったりしてみたら
>>156の方法が有効なのはPHP 4.2.3 までらしいです。
それ以降のバージョンでは
upload_max_filesizeとpost_max_sizeが
PHP_INI_PERDIRという分類になってて
.htaccessとかphp.iniからしか変更できないっぽいです。
なのでphpスクリプトから制限するのは諦めて
.htaccesで制限する方向でやってみようと思います。
0164nobodyさん2006/02/08(水) 19:27:48ID:???
>>156
あれ?upload_max_filesizeってPHP_INI_SYSTEM|PHP_INI_PERDIRじゃなかったっけ?
0165nobodyさん2006/02/08(水) 19:28:50ID:???
ああ。4.2.3まではPHP_INI_ALLだったのか
0166nobodyさん2006/02/08(水) 19:38:24ID:???
>>162
push(@cnt, ${"cnt$_"}) foreach(1..100);
$max = (sort(@cnt))[-1];
だからPerlでもあんまりかわらんと思う
0167nobodyさん2006/02/08(水) 19:46:15ID:???
激分かりにくいけどな
01681562006/02/08(水) 20:00:58ID:???
>>163
うぉ、すまんかった。
パラメータによって有効無効があるのは知っていたけど、いちいち確認してなかった…

htaccessからでも、<FilesMatch>ディレクティブか<FilesMatch>ディレクティブを使えば、
ファイルごとに設定を変更できるよ。
0169nobodyさん2006/02/08(水) 20:05:19ID:???
$max = (sort(map{${"cnt$_"}}(1..100)))[-1];
ここまでやんなきゃ大したことないって。ふつーふつー
0170150NGNG
>>168
ありがとうございます。
一応うまくいきました。

でもちょっと気になることがあるんですが、
upload_max_filesize を10Kにして、さらに
<input type="hidden" name="MAX_FILE_SIZE" value=100000000000>
というタグを入れてブラウザに知らせるマックスファイルサイズを大きくした上で
100Mbyteのファイルをアップロードしようとすると、
upload_max_filesize が10Kなのにもかかわらず
ブラウザはずいぶんと長い時間送信し続けるようになります。
そして最終的にアップロード失敗や成功の画面ではなく
投稿フォームの初期の画面に戻ります。
スクリプトは実行されていないみたいで
テンポラリファイルのサイズを調べることができません。

これってブラウザが勝手に送りつけてるだけで
サーバー側は upload_max_filesize 以上受け取っていないと考えて良いんでしょうか?

読みにくい文章ですみません(・・;
0171nobodyさん2006/02/08(水) 22:07:23ID:???
>>170
Apache自体は全部受信してて、それをPHPコアがフォーム分解してテンポラリを作る際に、
サイズが大きすぎたら処理を中断してエラーフラグを設定して、スクリプトの実行を開始、
って感じだと思う。
サーバー負荷を下げるのが目的ならname="MAX_FILE_SIZE"で指定してやんないといけないし、
それを無視するブラウザを弾きたいということであればApache側でPOSTの制限をするなどの
設定をしてやる必要があると思う。
01721562006/02/08(水) 22:08:28ID:???
>>170
んー、PHPマニュアルには、
『MAX_FILE_SIZEはブラウザへの勧告に過ぎません。この最大値を 出し抜くのは簡単なことなので信頼してはいけません。
しかし、 PHP側の最大サイズの設定を欺くことはできません。 しかしそれでもMAX_FILE_SIZEを指定すべきです。
なぜなら、 巨大なファイルを転送しようとして、
実はそれが大きすぎて転送できないということを長時間待ったあとで知らされるのを防げるからです。 』

とあるので、

MAX_FILE_SIZE(HTML) < POSTしようとするファイルサイズ < upload_max_filesize(PHP) の場合は、
(MAX_FILE_SIZEを欺くことは簡単にせよ)ブラウザ側で警告が出る。

upload_max_filesize(PHP) < POSTしようとするファイルサイズ < MAX_FILE_SIZE(HTML) の場合は、
ブラウザ側で警告は出ずに、サーバ側から"大きすぎて転送できないということを長時間待ったあとで知らされる"。

ということだろうから、その挙動は合っていると思う。
エラーコード、$_FILES['userfile']['error'] をechoしてみれば分かるんじゃ?
0173nobodyさん2006/02/08(水) 22:32:04ID:???
SJISとereg系って文字化け起きやすいように思うのですが、そうなのでしょうか?
ini_setで関係のありそうな場所を設定してるのですが、気を付けた方がいい所はありますか?
漠然とした内容ですいませんが、第一引数に「ー」や「]」などを入れると文字化けして、ini_setや他の関係ありそうな関数を使っても必ずどっちかが文字化けしたりで途方に暮れてます…
0174nobodyさん2006/02/08(水) 23:36:23ID:???
>>173
SJISを、どうしても使いたければ最終的な出力だけにしとけぇ
0175nobodyさん2006/02/08(水) 23:41:03ID:???
はじめまして。お世話になります。
現在ある掲示板を、携帯絵文字対応にしようと思っております。

既存の掲示板では携帯から絵文字を投稿すると
<img src="img/i/F8C7.gif" width="12" height="12" border="0">

と変換されているのですが、これを携帯から見た時に


と変換したいのです。
このような変換を行う場合はどのようにしたらよろしいでしょうか?
よろしくお願いいたします。
01761752006/02/08(水) 23:41:43ID:???
?=&#63687;
です。文字化けしてしまいました・・。
0177nobodyさん2006/02/08(水) 23:46:27ID:???
>>173
SJISで正規表現をまともに動かすのはかなり難しいよ。
0178nobodyさん2006/02/09(木) 00:06:23ID:MhSFpTrN
携帯から使いやすいように2chの窓口を作りたい、といっても何すれば良いかよくわかんないので とりあえず書き込み画面作ろうと思うんですが
http://c-others.2ch.net/test/-/php/1139146534/w ←こんな感じで書き込めるようにするにはどうしたらよいでしょうか
hiddenの値とかは何とかなると思いますが、ソケットプログラミングが全くわかんないので、できたら実際に書き込みできるスクリプトを見せていただきたいのですが・・・
よろしくお願いします。
0179nobodyさん2006/02/09(木) 00:12:01ID:???
>>178
すでに「p2」というPHP製の非常に優れたGATEWAYプログラムが存在してますので、
まずはそちらの中身を解析してみて、それ以上のものを作って公開してくださいね。
0180nobodyさん2006/02/09(木) 00:15:47ID:???
>>179
死ねカス
01811792006/02/09(木) 00:21:24ID:???
>>180の罵倒の意味が判らない
>>178で参考になるスクリプトが見たいといってるから、
存在するオープンソースで一番目的に近いものを紹介して
なんで、「死ね」とか言われなきゃならんのだ・・・凹むぞ
0182nobodyさん2006/02/09(木) 00:37:21ID:???
解らんのなら相当お前性格悪いな
0183nobodyさん2006/02/09(木) 01:00:28ID:???
ここって上級者向けスレッド?
0184nobodyさん2006/02/09(木) 01:21:00ID:???
わかんないんだから性格じゃなくて頭が悪いんだろ わかっててやってるなら性格悪いけど
0185150NGNG
>>171-172
ありがとうございます。
そして遅レスですみません。

>>171
Apache側の設定のこと完全に忘れてましたw
それでApache方面でググった今の自分にぴったりな(?)文章を見つけました。
http://multix.jp/html/memo/030521.html#00010201
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LimitRequestBody
クライアントから送信されてくる POSTや PUTデータを受け入れる
最大値を指定します。初期値は 0(無制限)で、バイト単位で
2147483647(2GB)までを指定できます。これを使えば CGIで
ファイルアップローダを運用するような場合、CGIプロセスが
起動する前に巨大すぎるデータの受け入れを容易く拒否することができます
(CGIプロセスに渡ってからではほとんどの場合、手遅れ)。
それ以外でもバッファオーバーフローやサーバクラッシュ目的での
DoS攻撃を回避するのに有効ですから、サーバ管理者は必ず再設定しておくべきです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

>>172
upload_max_filesize以上post_max_size未満のサイズなら
$_FILES['userfile']['error']でちゃんとエラーを拾えるんですが
post_max_sizeを超えてしまうと拾えなくなってしまいます。
というか何もPOSTされなかったかのような反応になります。
しかも送信してる間にハードディスクがガリガリいってるぽいので
どうも>>171のとおりPOSTされたデータをApache側で
全部受け取ってるのかもしれません。

うーんでもApache側で一旦受け取るんだったら
upload_max_filesizeとupload_max_filesizeの意味無いような気がするし。。。
もうわけわかめ。
0186nobodyさんNGNG
あ、ハードディスクガリガリは勘違いだったかもしれません。
それにphpのテンポラリディレクトリは
ウェブディレクトリの外側なので
LimitRequestBodyで設定できませんでした。
0187nobodyさん2006/02/09(木) 02:07:21ID:???
>>178
鯖のリソース余ってるやつちょっと来い@自宅サーバ
http://pc8.2ch.net/test/read.cgi/mysv/1137564375/l50
0188150NGNG
>post_max_sizeを超えてしまうと拾えなくなってしまいます。
>というか何もPOSTされなかったかのような反応になります。
良く調べたらこれはMAX_FILE_SIZEに引っかかっただけでしたorz
MAX_FILE_SIZEを100000000000000000000にして
やってみたらエラーを拾えるようになりました。

いろいろやってみた結果、
結局サーバー側は upload_max_filesize 以上受け取っていない
ということかもしれません。

ご迷惑をおかけてすみませんでした。
0189nobodyさんNGNG
phpでperlでいうuse strict;みたいなことは出来るんでしょうか?
0190nobodyさん2006/02/09(木) 03:40:24ID:???
ログをE_ALLで取るとか?
0191nobodyさん2006/02/09(木) 03:43:14ID:???
>>189
error_reportingの設定でE_NOTICEを入れてやれば似たようなもんなんじゃないの?
0192nobodyさんNGNG
ラジャーです。
01931732006/02/09(木) 06:57:36ID:???
>>174>>177
そうなんですか。諦めて出力だけ変換します。ありがとうございました。
0194nobodyさん2006/02/09(木) 07:55:13ID:???
use strictが効いてE_NOTICEが効かない例

(my) $hoge = 1;
(my) $hige = 2;
// hogeにhigeを加える
$hage = $hoge + $hige; //hogeをhageに間違える
print $hoge;
0195nobodyさん2006/02/09(木) 08:07:16ID:???
>>181
イキロ
0196nobodyさん2006/02/09(木) 09:01:55ID:???
テキストエリアに改行を入れた場合、<br>が入るように
str_replace("\n", "<br>", stripslashes($textarea))
としているのですが、テキストエリアにタグを入れた場合、改行が入っていると
<br>が入ってしまいます(当然ですが)

例)
<table>
<tr>
<td>テキスト </td>
</tr>
</table>

これを改行無しに記述すれば問題はないのですが、ホームページ作成ソフトなどから
直接タグをコピペする時もあります。
どうすれば整形済みのタグを入れても<br>だらけにならないように出来るのでしょうか?
説明が下手ですが、何かアドバイスをいただければと思います。
0197nobodyさん2006/02/09(木) 09:24:25ID:???
>>196
<br>に変換しなければいいんじゃないの
01981962006/02/09(木) 09:29:55ID:???
>>197
それが、普通のテキスト文字の場合は改行した時、<br>に変換が必要なんです。
ブログの記事書き込み部分のようなイメージです。

ブログ(MTなど)でも記事フォームにタグを入れている場合は、改行せずに
入れているような気がしないでもないですが、もし何か良い方法があれば、ご教授願います。
0199nobodyさん2006/02/09(木) 09:49:35ID:???
>>198
HTMLでの記事書き込みとテキストでの記事書き込みとをモード切替してるとこはある。


同一のものとして扱うのであれば、タグの開始と終了<hoge></hoge>を判別して、
その間だけ<br>変換やめるとか。
同じ名前のタグをネストされた時の対処が必要だしちょっと面倒かもしれんが…
XMLパーサとか使ってみるのもテではないでしょうか?
0200nobodyさん2006/02/09(木) 09:51:04ID:???
該当箇所にhtmlspecialchars通すってのはだめか?
02011962006/02/09(木) 10:12:05ID:???
>>199-200
なるほど。やっぱり、入力フォームを分けるという対処しかありませんよね。。
1つのテキストエリア上で出来たら、便利だと思っていたのですが、
入力する側が手間になるといけませんので、断念します。
アドバイスありがとうございました。
02021492006/02/09(木) 10:17:13ID:g3a/RWdO
ネタでも何でもなくマジなんだけど、誰か教えてもらえませんか?
0203nobodyさん2006/02/09(木) 10:24:38ID:???
a.phpの中でb.phpの自作関数を何も定義せずに普通に呼べるんですが
これってなにか問題ありますか?
0204nobodyさん2006/02/09(木) 10:25:48ID:???
>>149

ttp://hrgs.itbdns.com/diary/item/24

ていうか少しは自分で調べる事を知れ。

ttp://www.google.co.jp/search?hl=ja&q=PEAR+%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89&lr=

思いっきり一番上に出てきたぞwww
0205nobodyさん2006/02/09(木) 10:27:19ID:???
>>203

何も定義ってincludeもしてないって事か?
0206nobodyさん2006/02/09(木) 10:48:04ID:???
>>205
includeもしてないです。
a.phpにb.phpで作ってる関数と同じ名前の関数を作ったらエラーになったので
試しにa.phpの関数を消して呼び出しだけを行ったら普通にb.phpの関数が呼ばれてたので
0207nobodyさん2006/02/09(木) 10:52:33ID:???
あ、すんません・・・
include山ほどしとりますた・・
a.php内で
<?php〜?>外に
<!--〜-->ってコメントにしてたんですが、これって
<?php〜?>外なのに生きてるんですね
0208nobodyさん2006/02/09(木) 10:55:31ID:???
あれ?
でも
やっぱコメント扱いっぽいけど、インクルードはされてるみたいだなあ
<!--<?php include("b.php"); ?>-->
これって、b.phpは実際には呼ばないけど内部関数の定義はされるんですか?
0209nobodyさん2006/02/09(木) 10:59:21ID:???
>>208
http://www.php.net/manual/ja/language.basic-syntax.comments.php
0210nobodyさん2006/02/09(木) 11:05:06ID:???
>>209
え?あれ?
いや、コメントになってるっぽくて確かにb.phpは呼ばれてはいないのに
b.phpの関数が呼べるのが疑問なんですよ、俺変なこと言ってます?
0211nobodyさん2006/02/09(木) 11:08:43ID:???
>>196
こういうのはロジック以前にルール作りをどうするかだと思うんだけど、
例えば「各行の末尾が">"で終わっていなければテキストの改行とみなして<br>を入れる」とかじゃダメ?
$test = <<<TEXT
<table>
<tr>
<td>テキスト </td>
<td>テキ
スト </td>
</tr>
</table>
TEXT;
foreach(explode("\n", $text) as $line) {
$newtext .= $line . ((substr($line, -1) != '>')? '<br>': '') . "\n";
}

結果
<table>
<tr>
<td>テキスト </td>
<td>テキ<br>
スト </td>
</tr>
</table>
02121492006/02/09(木) 11:08:45ID:g3a/RWdO
>>204
ありがとう!
家に来て俺の妹とファックしていいよ。
0213nobodyさん2006/02/09(木) 11:10:10ID:???
>>210
<!-- -->はHTMLのコメントであってPHPのコメントじゃない。関係なくPHPは実行される。
0214nobodyさん2006/02/09(木) 11:11:35ID:???
別ページに飛ばしたくて今header(location:〜)でやろうと思ったのですが
フレームを解除させて飛ばす場合はどのようにすればいいのでしょうか?
0215nobodyさん2006/02/09(木) 11:12:36ID:???
>>210
>208の書き方では、HTMLではコメントとされても、PHPとしては実行される。
ただ、b.php内でechoしてると、<!-- hogehoge -->となるので、ブラウザ上では表示されない。
HTMLソース見れば、b.phpが読み込まれた上に実行されていると思うが。
0216nobodyさん2006/02/09(木) 11:13:31ID:???
>>213
いやそれはわかってるんですが、実行されてる様子がないんですよ。
b.phpで適当な文字をechoしてるのですが、
<!-- -->でくくってると、文字が出なくて<!-- -->を取ると文字が出ます。
ひょっとすると俺の根本から間違ってますか?
0217nobodyさん2006/02/09(木) 11:15:16ID:???
>>216
出力されたHTMLソース見れ。
<!-- 適当な文字 --> って出力されてて、PHPは実行されてるがブラウザから見れなくなってるから。
0218nobodyさん2006/02/09(木) 11:15:26ID:???
>>215
嗚呼、わかりますた。
どうやら俺の根本が間違ってました。
確かにソースをみると、実行されてますねこれ・・
コメントになってるんでブラウザには表示されてないだけか・・・
0219nobodyさん2006/02/09(木) 11:15:58ID:???
>>217
すんません・・
おっしゃるとおりです。
0220nobodyさん2006/02/09(木) 11:16:56ID:???
>>214
PHPの呼び出し元HTMLでtargetを指定してやるか、Locationで飛ばした先のHTMLを
target解除してさらに別ページに飛ばすJavaScriptのページにして連続遷移。
0221nobodyさん2006/02/09(木) 11:16:57ID:???
>>214
ちょっと前にも同じ質問があったぞ…
フレームはHTMLの仕様であり、PHPから直接いじることは無理。
どうしてもやりたければ、PHPのheaderで飛ばすのではなく、
PHPでJavaScriptを生成してwindowオブジェクトを操作すべし。
0222nobodyさん2006/02/09(木) 11:20:30ID:???
>>219

サーバー側の処理を考えればそんな所にはいきつかん。

<!-- ここに書かれた文字列 -->を表示しないと言うのはブラウザ側の機能。

サーバー側はあくまで取得してきたファイルを処理し、整形されたHTMLをクライアントへ投げるだけだ。
0223nobodyさん2006/02/09(木) 11:22:06ID:???
えtっと、すみません、最後に・・
例えば、a.phpからb.phpの自作関数を呼ぶ場合って
b.phpでは関数のみを作成し本体には何も書かないのがいいんですか?
0224nobodyさん2006/02/09(木) 11:24:27ID:???
>>223
本体って何を指してんだよw
ていうか、関数郡、実際稼動ファイルと分けておいた方が後で自分でも見やすいだろ?

お前次第だよそれはw
0225nobodyさん2006/02/09(木) 11:26:50ID:???
>>223
どっちでもいいよ。好きにしれ
0226nobodyさん2006/02/09(木) 11:32:10ID:???
>>223
言ってる意味が分からんがな。
本体=a.php 、 関数のみ=b.php という意味なら、
>>224が言うように見やすくなり管理し易くなる。
その関数を他のファイルで使いたい場合も、b.phpをincludeするだけでよくなる。
0227nobodyさん2006/02/09(木) 11:37:17ID:???
>>224
そそ、それそれ、ってやっぱ自分次第なんですよね。
>>226
ですね、<?phpでかこめば関数を作らなくても記述できる点がCとは異なるので
ちょっとアレだったんですよ
02282142006/02/09(木) 11:46:33ID:???
>>220-221
ありがとうございました。
0229nobodyさん2006/02/09(木) 11:55:47ID:???
>>227
Cと異なるってのはどういうこと?
メイン関数を作らなくてもいいってこと?

関数呼び出しに関してはいたってCと同じ構造だと思うぞ。

0230nobodyさん2006/02/09(木) 11:56:23ID:???
よく掲示板などの入力があるようなスクリプトを見ると、
extract($_GET);
extract($_POST);
extract($_COOKIE);
extract($_SERVER);
っていうのがあるんですが、これはどういう意味があるんですか?
0231nobodyさん2006/02/09(木) 11:58:19ID:???
>>230
ttp://php.s3.to/man/function.extract.html
ttp://php.s3.to/man/language.variables.predefined.html
0232nobodyさん2006/02/09(木) 11:59:04ID:???
>>230

ttp://php.net/extract

これを見て分からないなら諦めろ
0233nobodyさん2006/02/09(木) 11:59:35ID:???
>>231とかぶったww
0234nobodyさん2006/02/09(木) 12:10:28ID:???
>>230
脆弱性を作ってる
0235nobodyさん2006/02/09(木) 12:11:02ID:???
extract 超便利で大好きです。
ちゃんとサニタイズしてね。
0236nobodyさん2006/02/09(木) 12:25:04ID:???
>>234
確かにww
0237nobodyさん2006/02/09(木) 14:01:39ID:???
サニタイズ言うなキャンペーン
0238nobodyさん2006/02/09(木) 14:54:57ID:???
>>229
いやCは必ず関数が存在するけどphpて関数いらんっしょ
例えば、
<?php
なんか
この部分とか

function aa( )
{
}
?>
0239nobodyさん2006/02/09(木) 15:00:22ID:???
>>229がなにをいいたいのかさっぱり分からない
0240nobodyさん2006/02/09(木) 15:09:41ID:???
----a.php----
<?php
include ("b.php");
func();
?>
----b.php----
<?php
echo "test message";
function func() { echo "hello world.\n"; }
?>
----終了----
Cなら echo "test message";はエラー返される、とか
言い方が分からないけど、グローバルな部分で関数を呼び出したりifやwhileが使えないって事かな。
0241nobodyさん2006/02/09(木) 15:10:16ID:???
ちなみに>>240である俺は>>229では無いのであしからず。
02422292006/02/09(木) 15:25:09ID:???
223で聞いてる、関数分けをして呼ぶのに必要なのは、関数群を記述したファイルを
インクルードするだけって点ではCと同じじゃないかと書いたのですが、
どうやら私の方が227の文面を読み違えていたようでしつれしました。
0243nobodyさん2006/02/09(木) 15:25:14ID:???
>>235
この場合は変数の初期化を適切に行えばいい話しだ。
なんでもかんでもサニタイズ言うのは病気。
0244nobodyさん2006/02/09(木) 15:56:49ID:eu00qYyi
質問させて下さい。

ttp://www.xxxx.com/zzz/hello.php
のアドレスに
ttp://www.xxxx.com/zzz/hello
だけで行くのは出来ますか?

お願いします。

0245nobodyさん2006/02/09(木) 16:00:41ID:???
>>244
出来ます
0246nobodyさん2006/02/09(木) 16:05:12ID:???
<a href= 'http://www.yahoo.co.jp/'>;Yahoo!</a>
↑の文を

<form action="aaa.php" method="post">
<input type="hidden" name="name" value="write">
<textarea name="text" cols="20" rows="5" wrap="soft"></textarea>
<input type="sub" value="送信">
</form>
↑で送信して

if ($_POST['name']=='write'){
print $_POST['text'];
}
↑みたいな感じでで受け取ると、

<a href= \'http://www.yahoo.co.jp/\'>Yahoo!</a>
↑みたいに変化してしまいます。回避策あったら教えてください。
0247nobodyさん2006/02/09(木) 16:14:13ID:???
>>240
単にPHPの場合は各ファイルにmain()関数を置けるってだけだな。
Cとの最大の違いは「main()関数の中身を複数ファイルにバラバラに配置できる」ってとこか。
0248nobodyさん2006/02/09(木) 16:17:16ID:???
>>246
マジッククオート機能がONになってる可能性が高いからOFFにしれ
0249nobodyさん2006/02/09(木) 16:43:16ID:???
>>244
前スレの後半あたりで、その話題あった気がする。
0250nobodyさん2006/02/09(木) 16:58:06ID:???
>>244
Apacheのコンテントネゴシエーションが有効ならそのまま拡張子無しでアクセスできるかも
あとはmod_rewriteを使う
どっちにしてもPHP関係ねー
0251nobodyさん2006/02/09(木) 16:58:23ID:???
>>248
解決できました!!ありがとうございました!!
0252nobodyさん2006/02/09(木) 16:59:16ID:???
>>244
PHPの範疇ではない。.htaccessを使う。

Options +MultiViews
0253nobodyさん2006/02/09(木) 18:12:07ID:???
決まった時間に記事を投稿するというPHPで書かれたブログがあるんですが、
cronも使わないで決まった時間に…なんて出来るのですか?
0254nobodyさん2006/02/09(木) 18:22:31ID:???
自分のブログに投稿するんだったら、日時の操作は自由でしょ?
表示する時に指定の時間を過ぎてたら、指定時間に投稿したような記事を書き込めばいいんじゃないかな?
0255nobodyさん2006/02/09(木) 18:52:25ID:???
$sort_key = フィールド名;
$sort_dir = ソート方向
$sort_type = 比較方法
$list = 処理対象フールド

こんな風な変数を作っておいてから
array_multisort($sort_key, $sort_dir, $sort_type, $list);
って具合に引数に変数で渡すと、

Warning: array_multisort(): Argument #2 is expected to be an array or a sort flag in〜
または Argument #3〜ってエラーになります。

$sort_dirのとこは
SORT_ASC(昇順にソート)
SORT_DESC(降順にソート)

$sort_typeのとこは
SORT_REGULAR(普通に比較)
SORT_NUMERIC(数値的に比較)
SORT_STRING(文字列として比較)

などのフラグの文字列そのものを直接、引数のとこに書き込まないとダメなんでしょうか?
フラグの文字列(SORT_DESCとかSORT_NUMERIC)を直接入れるとうまくいきます。
なにかウマい方法がありましたら教えてください。
0256nobodyさん2006/02/09(木) 18:55:51ID:???
変数をダンプしてみることをお勧めします
0257nobodyさん2006/02/09(木) 19:02:45ID:9NTQCcyh
>>196
>>200を参考にして
nl2br(htmlspecialchars($_POST['textarea']))
0258682006/02/09(木) 19:04:50ID:???
>>255
変数毎に
switch〜case
でわけるか
if
でわければ良いだけでは?
0259nobodyさん2006/02/09(木) 19:26:56ID:???
>>256
dump?ちょっと調べてみます
>>258
もちろん、それでもよい訳ですが、関数に与える引数に変数が使えなかったというのが初めての経験なので、とりあえず、なんとかしちゃう方法というのも後学の為に知っておきたいと思った次第です。
0260nobodyさん2006/02/09(木) 20:31:57ID:???
>>255
$sort_dir = SORT_ASC;
$sort_type = SORT_REGULAR;

と、書けばいいのではないでしょうか?
直接引数のとこに書く必要はないでしょう。

# 意味取り違えてたらスマン
0261nobodyさん2006/02/09(木) 21:18:52ID:???
>>255
きっと>>260が言うように

$sort_dir = 'SORT_ASC';
$sort_type = 'SORT_REGULAR';

って ' や " でくくってないか?
0262nobodyさん2006/02/09(木) 21:31:40ID:???
>>259
問題なく変数経由でパラメータは渡せる。
$sort_dirに格納してるフラグdefineの綴りでも間違ってるんじゃない?
存在しないdefineを渡すとPHPはそのまんまその文字列を格納して、提示されたエラーメッセージが出る。
02631782006/02/09(木) 21:51:59ID:???
178ですが誰もわかんないみたいですね^^;
初心者しかいないようなら去りますw
0264nobodyさん2006/02/09(木) 21:53:25ID:???
さようなら^^;
0265nobodyさん2006/02/09(木) 21:54:24ID:MhSFpTrN
うむ^^;
02662442006/02/09(木) 23:31:56ID:???
>>245
>>252
ありがとうございます。
試してみます。
02672592006/02/09(木) 23:33:17ID:???
>>260-261
引用符でくくってますた・・・まさか引用符とは。
いやー、勉強になりますた。ありがとうございました。
02682592006/02/09(木) 23:36:21ID:???
>>262
これは定数なんではないかとはうすうす考え始めていたんですが。
なるほど。確かに文字列じゃなくて、これは定数を変数に入れて、引数として渡すってことだったんですね。
0269nobodyさん2006/02/10(金) 00:22:11ID:???
>>267
なんで変数を経由するときと直接指定するときとで書き方変えてんのさ。
02702592006/02/10(金) 01:22:52ID:???
>>269
いや、最初は定数なんて考えもおよばず、とにかく、文字は引用符でくくるとかたくなに信じる初心者なのです。
0271nobodyさん2006/02/10(金) 01:52:50ID:???
php4.2.3をマニュアルどおりにmakeして、make installしたのですが、
/etc/apache2/modules/にlibphp4.soが見つかりません。

コンパイルの仕方がおかしいのでしょうか?オプションもマニュアル
どおりに指定したのですが・・・

超初心者の質問ですみません。
0272nobodyさん2006/02/10(金) 02:16:21ID:???
>>271
ん〜、configureはちゃんと間違いなく指定した?
0273nobodyさん2006/02/10(金) 03:05:49ID:???
locateなりfindなりで、buildしたものの中辺り探せばあるんじゃないかな。
それを指定する場所に置くなり、シンボリックリンク貼ってあげれば。
02742712006/02/10(金) 07:18:50ID:???
>272

  http://nx.eth.jp/hiki.cgi?PHP-i18n-Compile

に書いてあることにしたがって、
--enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans
を指定しました。

>273
仕事に出かけますので、帰宅したら探してみます。
0275nobodyさん2006/02/10(金) 08:10:19ID:???
>>274

--with-apxs
0276nobodyさん2006/02/10(金) 09:00:53ID:???
>>275
|/etc/apache2/modules/にlibphp4.soが見つかりません。
らしいので「--with-apxs2」とまで導いてやった方が良いかと。
# でもmakeのエラーで生成してないだけの予感。
0277nobodyさん2006/02/10(金) 16:00:51ID:???
x
0278nobodyさん2006/02/10(金) 16:21:56ID:???
ここは初心者しかいませんよ
0279nobodyさん2006/02/10(金) 16:32:15ID:???
>>278
同意。

3日前から覗き始めたが
質問の内容が調べれば速攻出てくるようなものばかりでつまらんな。

ここで質問する奴は検索エンジンって物を知らないんだろうか^^;
0280nobodyさん2006/02/10(金) 16:43:56ID:???
ここが検索エンジンなんだろう
0281nobodyさん2006/02/10(金) 16:51:30ID:???
通りがかりでちょっとさかのぼってみたけど、
>>278 == >>178 なのか?
答えもらって捨て台詞はいて、また戻ってきたのか
0282nobodyさん2006/02/10(金) 17:07:22ID:???
最先端の人工知能を搭載した検索エンジン“にちゃんねる”
0283nobodyさん2006/02/10(金) 17:24:23ID:???
最先端の人工無能
0284nobodyさん2006/02/10(金) 17:39:24ID:???
満足な回答が返ってくるのが当たり前だと思っている小学生が多いですね(苦笑)
0285nobodyさん2006/02/10(金) 18:12:09ID:???
>>281
荒れるのでいちいち蒸し返さなくていいって
所詮ここはくだ質なんだし
02862712006/02/10(金) 18:25:49ID:???
有難うございます。解決しました。
--with-apxs2を使って、configureすると、libphp4.soが出来上がりました。


最初、--with-apxs2=/use/local/apache2/bin/apxs2として、configureすると、
エラーが出たので、--with-apxs2を使わずにconfigureしたのが間違いでした。

ちなみに、私の環境(Vine 3.1 + apache2 : apache2はapt-get installしたもの)
では、apxsが/usr/binにあったので、ここにたどり着くまでに、ちょっと苦労しました。

初心者の質問で、済みませんでした。
0287nobodyさん2006/02/10(金) 19:11:32ID:???
>>279
ここはくだ質なんだからむしろそういう即効で分かるような質問をしないとw
0288nobodyさん2006/02/10(金) 20:39:32ID:???
phpっでファイルにアクセスする場合
文字列でしか読み込み書き込みできないんですか?

C言語で言う

fread( &hoge, sizeof( hoge ), 1, fp);

見たいなのがやりたいんですが
0289nobodyさん2006/02/10(金) 20:49:07ID:???
>>288
$hoge = fread($fp, 100); とかでいいじゃん。どっから文字列でしかダメなんて聞いてきたのよ。
0290nobodyさん2006/02/10(金) 20:57:41ID:???
質問の仕方がアレだな。
PHPにうらみでも持ってるのかと思った。

できないんですか?
なんなんですかあんた。
みたいなね。
ニュー速+に入り浸りすぎだな。
0291nobodyさん2006/02/10(金) 21:47:30ID:???
>>C言語で言う
0292nobodyさん2006/02/11(土) 14:26:21ID:???
なぁ、apxsってさ、ググっても今一これだ!っていうの見つかりにくくないか?
俺もPHPのconfigure指定するときマジで悩んだ('A`)
0293nobodyさん2006/02/11(土) 14:30:05ID:???
apxs - APache eXtenSion tool
ttp://httpd.apache.org/docs/2.0/ja/programs/apxs.html
0294nobodyさん2006/02/11(土) 16:42:47ID:???
この間あがってたPHPのアイコンを会社のパソコンで試してみたんだけど
良いね!
今ちょっとしたアイコンブームが起こってるw
0295nobodyさん2006/02/11(土) 21:02:38ID:???
GeoShellで使えるアイコン作ってくれると嬉しいな。
0296nobodyさん2006/02/11(土) 23:01:44ID:???
アイコンの再うpお願いできますか〜
0297nobodyさん2006/02/11(土) 23:57:56ID:???
ttp://www.uploda.org/uporg310382.zip.html

今回はオマケ付だぜ
0298nobodyさん2006/02/12(日) 00:12:14ID:???
>>297
ダウンロードパスを教えてくれ。
0299nobodyさん2006/02/12(日) 00:44:28ID:???
あ、ごめん
0300nobodyさん2006/02/12(日) 15:43:56ID:???
PHPをある程度習得しているのですが、SQLの知識がありません。
LAMP/LAPPで掲示板等を作成するにあたり、
SQL、およびSQLとPHPの連携について学べるサイトなどはないでしょうか。

あまりPHPと関係のない質問で、すみません。
0301nobodyさん2006/02/12(日) 16:20:49ID:???
>>300
つ【google】
0302nobodyさん2006/02/12(日) 17:42:22ID:???
>>300
DB系のスレで聞きなよ
0303nobodyさん2006/02/12(日) 17:43:22ID:???
>>300
ちなみにPHPだからSQLの知識は固有の部分だけでいいってことは全然ないそ
ちゃんと頭から一通りやるべし
0304nobodyさん2006/02/12(日) 18:53:47ID:???
>>300
DBのこと何も知らないのに、
いきなりPHPで組もうとか無理がありすぎ。
03053002006/02/12(日) 21:22:03ID:???
わ、わかった。(´・ω・`)
0306nobodyさん2006/02/12(日) 21:58:54ID:???
入力された文字列が16進数であるかを確かめるスクリプトを組みたいのですが、
文字列の中にひらがな、カタカナなどの16進数で使われる文字以外の文字が含まれているか、
或いは16進数のフォーマット(0-9とA-Fのみ)になっているかどうかを調べることはできますか?
説明が分かり難ければその旨を仰って下さい。
0307nobodyさん2006/02/12(日) 22:04:32ID:???
>>306
正規表現
0308nobodyさん2006/02/12(日) 22:05:03ID:???
>>306
preg_match('/^[0-9a-f]$/i', $str)
03093062006/02/12(日) 22:21:50ID:???
早々のご返答どうもありがとうございます。
ものすごく下らないことでしたね・・・
わざわざコーディングまでしていただいてすみません。
0310nobodyさん2006/02/13(月) 00:37:45ID:???
10秒でかいた一行のコードでそこまでいわれるとは。
0311nobodyさん2006/02/13(月) 08:55:26ID:???
なら俺は>308をオカヅに10秒で掻く
0312nobodyさん2006/02/13(月) 09:56:37ID:???
正規表現は書いて書いて書き倒すと、あとで役に立つ
0313nobodyさん2006/02/13(月) 09:59:46ID:???
自分で書かないと覚えられないよね。
0314nobodyさん2006/02/13(月) 10:29:56ID:???
連想配列をソートしたいのですが
ソートする項目がキーではなくて2つ目の項目とかの場合どうすればよいのでしょうか?
↓でいうbの項目でソート
array([1]=>array([a]=>hoge,[b]=>test),[2]=>array([a]=>hoge2,[b]=>test2))
0315nobodyさん2006/02/13(月) 10:35:01ID:???
つusort()
03163142006/02/13(月) 11:48:29ID:???
>>315
ありがとうございました。
0317nobodyさん2006/02/13(月) 13:20:11ID:???
文字列の左右に.がある場合は.を削除、
ということをしたいのですが、適した関数はないでしょうか?

思いついたのが手間がかかる方法で・・・
1.1文字目を調べて.なら削除
2.文字列反転させて1文字目を調べて.なら削除
3.もう一回文字列を反転
0318nobodyさん2006/02/13(月) 13:25:50ID:???
imapの新着フラグ(recent)をもう一回立てたくて、下記のように書いたのですがflagが立ってくれないとです・・
boolean 1 とも返ってきているのでflag立てには成功しているって事ですよね?
指定したメールをまた新着状態に出来れば何でもいいのですが・・
--------------------------------------------------
$mbox = imap_open("{example.jp/imap}INBOX", "mail@example.jp", "user");

$fclear = imap_search($mbox,'SUBJECT "hogehoge"', SE_UID);

foreach($fclear as $num)
{
$status = imap_setflag_full($mbox, $num, "\\Recent", ST_UID);
print gettype($status)."\n";
print $status."\n";
}
--------------------------------------------------
どなたかよろしくお願い致します。
0319nobodyさん2006/02/13(月) 13:35:59ID:???
>>317
$rest = substr("abcdef", -1); // "f" を返します
ってのはどうだろう

あとはマニュアルなりを見て
http://php.s3.to/man/function.substr.html

っていうか出来てるんならその処理でもいいんじゃないかとは思う
0320nobodyさん2006/02/13(月) 13:54:59ID:???
>>317
正規表現
0321nobodyさん2006/02/13(月) 14:19:56ID:???
>>317
trim($str,".");
0322nobodyさん2006/02/13(月) 14:21:49ID:???
だんだん答えが出てくるのでスレを見てるだけで勉強になる
0323nobodyさん2006/02/13(月) 14:22:23ID:???
>>321
横槍だけど途中に . がある場合は駄目だよね
0324nobodyさん2006/02/13(月) 14:25:53ID:???
>>323

trim -- 文字列の先頭および末尾にある〜

http://php.s3.to/man/function.trim.html
0325nobodyさん2006/02/13(月) 14:33:04ID:???
>>324
あっ、ほんとだ
ゴメソ

便利だな、毎回置換か正規表現使ってたかも・・
0326nobodyさん2006/02/13(月) 15:16:17ID:???
phpとoracleで、
long型のカラムに対して64Kバイト以上の文字列を
バインドしてinsertすると
 ORA-01480: STRバインド値に終了のNULLがありません
とでてしまいます。
php側では普通の変数を使用してstrlenで文字数を取得しても
正しく文字数は取得できています。
これはoracleとphp、どちらが悪いのでしょうか?
また、何が原因なのでしょうか。
ちなみに
 oracle関数【推奨されません】
の関数を使用しています。
0327nobodyさん2006/02/13(月) 15:22:16ID:???
>>318
recentが新着ということで他のimap関数にも敏感に反応してしまうのが原因だったみたいです
seenフラグで管理するようにしたら問題なく動作しました
0328nobodyさん2006/02/13(月) 15:31:00ID:???
test.php?%5B%5B
とすると、一つ目が%5Fになってしまうのですがこれはバグでしょうか?
OSはWinXP ProSP1、鯖はAnHTTPD、PHP5を使ってます。

こちらのサイトではきちんと認識しているようです。
ttp://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D
0329nobodyさん2006/02/13(月) 15:55:18ID:???
>>328
test.php?%5B%5B
ってのを
test.php?ほげほげ
ってすればいいだけじゃなくて?
0330nobodyさん2006/02/13(月) 16:39:06ID:???
>>328
それ、本スレでも見た気がする。
http://pc8.2ch.net/test/read.cgi/php/1136276300/761-764
なんだろこれ。バグ?
0331nobodyさん2006/02/13(月) 16:42:29ID:???
環境変数一通り出してみて
0332nobodyさん2006/02/13(月) 18:17:35ID:???
どなたかPHP5.1.2でpdo_mysqlが使っておられる方ご教授下さい。
MySQLのバージョンは、4.1.16と5.0.16で試しました(PHPの再インストール)。

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
  $db = new PDO($dsn, $user, $password);
  $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  var_dump($db->query('SELECT * FROM testtable'));
} catch (PDOException $e) {
  print $e->getMessage();
}

とした時、Connectではエラーが出ていないのに、queryの結果は
falseが返ってきます。どのような正しいSQLでも必ずfalseです。
Connectのエラーを拾えてないのかな?と思い、わざと間違った
hostにすると、エラーは正常にprintされました。
試しに、mysqli関数でConnectし、同様のSQL文を発行すると
期待値が返ってきます。
エラーが出ないのでどうして良いかわかりません・・・。
postgresの方は今の所問題ないのに・・・。
0333nobodyさん2006/02/13(月) 19:00:58ID:???
>>328-330
前スレによると仕様だそうです。
俺はバグだと思うけどな。

971 名前: nobodyさん 2006/02/05(日) 17:52:09 ID:???
既出か分からないけど、
トップーページと入力すると
本来ならば%83g%83b%83v%83y%81[%83WのはずなのにPHPは%83g%83b%83v%83y%81_%83Wと受け取ってしまう。

[となるべく部分が_になってしまう。
[[[とすると_[[と受け取るので最初の[のみ誤認してしまうようです。

これの対処はどのようにすればいいでしょうか?

973 名前: nobodyさん 2006/02/05(日) 18:03:33 ID:???
>>971ですが状況が分かりづらくてすみません
>トップーページと入力すると
というのはURLに入力という意味で
http://.../index.php?トップページ』
としたときです。
このように入力した後 echo key ($GET); とするとトップペ\ジとなります。

それと、環境はPHP5を使用しています。
OSはWindowsXP SP1でAN HTTPDとApacheの両方で同様の誤動作を確認しています。

情報足らずで失礼しました、
引き続き対処の程を教えていただけるようお願いします。

975 名前: nobodyさん 2006/02/05(日) 18:25:21 ID:???
>>973
それで理由が分かったよ。
それ、PHPの仕様。マニュアル嫁。
0334nobodyさん2006/02/13(月) 19:07:47ID:???
改行コードってどうやって使い分ければいいの?
unixで使うスクリプトを作ってるんだけどこの場合はLFにすべき?
0335nobodyさん2006/02/13(月) 19:12:28ID:???
>>326
エラー文どおりNULL文字が最後に入ってないんじゃない?
LONG型のカルマについては無知でスマンけど、
対象の文字を "1234567890\0" のように\0(NUL/NULL文字)で締めてみて。
0336nobodyさん2006/02/13(月) 19:14:03ID:???
>>332
パーミッションなんて事は無いよね?
0337nobodyさん2006/02/13(月) 19:17:43ID:???
>>334
LFでもCR+LFでも大丈夫じゃないかな。
大抵の"\n"は\n|\r|\r\nを自動で読んでくれるはずだろうから、unixで\r\nやっても平気じゃないかな。
PC-UNIXじゃなくてマジもんのunixならLFのがいいだろうけど。
0338nobodyさん2006/02/13(月) 19:30:15ID:???
>>334
CLIスクリプトならLFにすべき。
Webで呼び出すならほとんどの場合はどっちでもいい。
ただし
$string = "aaaa
bbbbb";
とか
$string = <<<TXT
aaaaa
bbbbbb
TXT;
みたいにソースの改行=データの改行みたいな真似してるなら
データの要求に準じるべき。
03393322006/02/13(月) 19:30:53ID:???
>>336
MySQLのユーザのパーミッションということでしょうか?
それなら、mysql関数、mysqli関数で試して期待値が返ってきた
ので問題無いと思っています。
phpinfo()の結果を見ても、POD_MYSQLの項目がきちんと出てきてはいるのですけど・・・。
現状仕方ないのでMDB2を使おうと思ってます。
が、今度はドキュメントがあまり見つからない&英語がわからないので、
浅い使い方しかわからず困ってしまいました(苦笑
0340nobodyさん2006/02/13(月) 19:50:29ID:5OEO9gPe
文字列の先頭から指定文字数だけ取り出す場合、どのようにすればいいでしょ?
やっぱり正規表現でpreg_splitでしょうか?
ばかなので正規表現書けませんでした。
レンサバがphp4なので、str_splitは無しの方向でお願いします。
0341nobodyさん2006/02/13(月) 19:54:34ID:???
substr
0342nobodyさん2006/02/13(月) 20:03:13ID:???
>>340
文字ってことはマルチバイトの考慮もいるの?
0343nobodyさん2006/02/13(月) 20:48:20ID:???
>>340
マルチバイト文字列関数
http://www.php.net/manual/ja/ref.mbstring.php
文字列関数
http://jp.php.net/manual/ja/ref.strings.php

マニュアルくらい見る癖をつけると、
後々役に立ちますよ
0344nobodyさん2006/02/13(月) 21:05:56ID:???
>>341-343
嗚呼、有難うございます。
0345nobodyさん2006/02/13(月) 21:43:36ID:???
>>339
期待値が返って来たって事は少なくともreadは許可になってるんだろうけどwriteは許可されてるのかな。
他のサーバーでは失敗(というかあんにょい感じ)するか試して見た?

ためしにDebianか、HDDに入れるの面倒ならKNOPPIX(CD-Linux)で自鯖立てて試して見るといいかも。
これらはapt-getで簡単にmysqlなどなど入れられるので便利。

調べてみたら、初めからMySQL/PHPが使えるように設定してあるKNOPPIXもあるようです。
http://pcweb.mycom.co.jp/column/yetanother/010/
0346nobodyさん2006/02/13(月) 21:46:03ID:???
>>340
正規表現なら"/.{10}/"だな、試してないけど。
0347nobodyさん2006/02/13(月) 21:49:37ID:???
>>346
"/^(.{10})/"かな。別に"/^(..........)/"でも構わんと思うけどね。
0348nobodyさん2006/02/13(月) 22:03:01ID:???
..........とかワラタw
10個から20個にする時とか画面を眺めながら.を打ち続ける様を想像して更にワラタ
0349nobodyさん2006/02/13(月) 22:17:53ID:???
0を0.00のように小数点第二位まで表示させたい場合は
どうすればいいでしょうか?
0350nobodyさん2006/02/13(月) 22:24:49ID:???
>>349
printf("%.2f", 0);
0351nobodyさん2006/02/13(月) 22:57:25ID:1JhTlLn3
勉強がてら、PHP4+MySQLでちょっとしたサイトを制作してみて、
データの書込み、表示などの一通りの動きは出来るようになりました。

次に、環境設定(1ページに何件表示等)もweb上で出来るようにと考えているのですが、
現段階ではPHPファイルに
 $bbs_Cnt = 10; //bbs1ページには10件表示
のように書いていて、
fopenなどでPHPファイル自体を読み込み上書きなどをしようと思ってますが、
通常はどんな風にするものなのでしょうか?
このような値もDBに格納するべきなのでしょうか?
0352nobodyさん2006/02/13(月) 23:14:44ID:???
>>351
DBに格納でもいいでしょうし、
iniファイルを使ってもいいでしょう。

個人的にすきなのはiniファイルですね。
PHPにはparse_ini_file関数が用意されてますし。

あくまで個人的な意見ですけど。
PHPファイル自体を直接読み書きよりは
融通が利くかと思います。
0353nobodyさん2006/02/13(月) 23:18:08ID:???
iniがお勧めだね。
DBもいいね。
PHPを書くのは少々面倒だね。
03543512006/02/13(月) 23:25:07ID:1JhTlLn3
>>352
実は、PHPファイルではなくてiniファイルなのでした|x・`)チラッ
と言っても、中身は<?php......?>て書いてあるので、
PHPファイルなのですが…。

parse_ini_file関数から、iniファイルの扱いについても
ちょっと調べてみまーす。
ありがとうございましたm(__)m
0355nobodyさん2006/02/13(月) 23:28:41ID:???
>>354
標準と全然違うファイル形式の拡張子をつけるのはどうかと…
PHPソース形式にするならせめて.inc辺りにしとけ
0356nobodyさん2006/02/13(月) 23:36:28ID:???
>>355
前々から気になってたんだけど、そのincってどういう意味?
includedってこと?
03573512006/02/13(月) 23:39:28ID:1JhTlLn3
>>355
そっか。
設定ファイルが.iniって言う知識しかなかったもんで(^-^;

そこら辺、初心者にもわかり易く書いてあるサイトとかって
何かありますかい??
0358nobodyさん2006/02/13(月) 23:47:22ID:???
>>357
iniはinitやinitializeの略。
windowsプログラミングしてみるといいかも。
0359nobodyさん2006/02/14(火) 00:41:28ID:???
解説書とかだとよくincにした例が多いけど、
あれはブラウザから中身が見えちゃうから、
見られたくないような場合phpにしたほうがいいよ。
パーミッションいじってもいいけどね。
まぁセキュリティ対策にはならないからどうでもいいっちゃいいんだけど。
0360nobodyさん2006/02/14(火) 00:54:50ID:???
>>356
だな。アセンブラ時代からの由緒正しき拡張子かw
>>359
iniファイルにしろincファイルにしろ設定ファイルをドキュメントルート以下に置く方が悪い。
0361nobodyさん2006/02/14(火) 01:23:29ID:???
.cf(または.cnf)派は、少数派ですか...
0362nobodyさん2006/02/14(火) 01:26:09ID:???
.cfg派も共闘を
0363nobodyさん2006/02/14(火) 01:48:24ID:???
というか、.inc.php使うだろ。
0364nobodyさん2006/02/14(火) 01:51:54ID:???
配列を指定の値で検索して、見つかったらそのキーを削除
って、array_searchしてunsetしかないの?
03653512006/02/14(火) 02:01:36ID:zk1lvDPH
一応、.inc.ini等は、.htaccessで見れないように制限してるけど、
無敵ではない?
0366nobodyさん2006/02/14(火) 02:09:05ID:???
ほんの些細なミスをしちゃうだけで巨大なセキュリティホールを作るような
トラップを自ら掘りまくるような行為は感心しないな。
0367nobodyさん2006/02/14(火) 02:12:11ID:???
>>366
どゆこと?
0368nobodyさん2006/02/14(火) 02:21:11ID:???
>>364
俺はarray_splice()使ってる
0369nobodyさん2006/02/14(火) 02:35:42ID:???
>>367
.htaccessやhttpd.confが間違って上書き、削除されてしまったり、
何ヶ月も経って元々の意図を忘れて別の目的のために設定を変えてしまったり、
Apacheのアップデート時に設定が効かなくなってしまってたりなど、
その程度の隠蔽設定がうっかり消失されてしまうようなケースは多々あり、
またそういうミスをしてる連中が世間にはごまんといるってことだ。
「自分はそんなアホなミスしないから」と思ってるならセキュリティとかは口に出さない方がいいぞ。
0370nobodyさん2006/02/14(火) 07:56:53ID:???
とはいえ実際そんな面倒臭いことをする人間ばかりではない。
以前Livedoorの.incが漏れたときもルートより上ではなかった。
なんというか、仕事を完璧にめざす者と、仕事を徹底的にさぼる者に別れている気がする。

そしてJavaサーブレットを使えばこの問題が簡単に解ける悲しさ。
0371nobodyさん2006/02/14(火) 09:20:26ID:???
完璧めざすっつーか、バグなんかもそうだけど
「ミスしやすいもの」と「しにくいもの」
「やってしまったときに気付きやすいもの」と「しにくいもの」
は確かにあって、その分別は必要だと思うのよね。
0372nobodyさん2006/02/14(火) 10:47:05ID:???
外部のライブラリーなんかを使わずに複数のPDFファイルを1つに結合する方法はないでしょうか?
0373nobodyさん2006/02/14(火) 10:55:43ID:???
>>372
自分でライブラリと同じようなスクリプトを書く
0374nobodyさん2006/02/14(火) 13:28:11ID:???
取得したIPアドレスの、例えば
212.112.227.217

212.112.227.xxx
みたいにするにはどうすればいいでしょうか?
0375nobodyさん2006/02/14(火) 13:39:01ID:???
>>374
正規表現で抽出置換
最後の.より後ろを削除し、xxxを追加
0376nobodyさん2006/02/14(火) 15:18:00ID:???
すんませんスレ違いを承知でちょっと教えてください
Mozilla/5.0 (Windows; U; Win 9x 4.90; ja-JP; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
これってOSなんですか?
0377nobodyさん2006/02/14(火) 15:26:30ID:???
ブラウザだろ
0378nobodyさん2006/02/14(火) 15:36:44ID:???
いあいあ「 (Windows; U; Win 9x 4.90; ja-JP; rv:1.7.10) 」この辺りでOS識別できませんか?
0379nobodyさん2006/02/14(火) 15:37:43ID:???
どうみたってWindows9xです。本当にありがとうございました。
0380nobodyさん2006/02/14(火) 15:38:32ID:???
おまえの質問の日本語が悪い。
「このUAから識別出来るOSって何ですか?」って感じで聞かないと。
「UAも知らないのかプギャー」な馬鹿に見えるぞ。


で、それぐぐれば答えはすぐ出るな。
0381nobodyさん2006/02/14(火) 15:39:20ID:???
本当にエスパーな質問多すぎだな。
Mozillaと先頭に出ててOSですか?
なんてきかれたら、誰でもブラウザと答える罠。
質問するならもっとわかりやすい質問しろ。
0382nobodyさん2006/02/14(火) 15:42:21ID:???
これってOSなにですか?
これってOSなのですか?
0383nobodyさん2006/02/14(火) 16:09:46ID:???
セッションってサーバーに保存するクッキーのような物と思っておけばいいんでしょうか?
0384nobodyさん2006/02/14(火) 16:23:57ID:???
わからないからって煽るのはよせよだからおまいら馬鹿にされるんだよ
0385nobodyさん2006/02/14(火) 16:27:59ID:???
クッキーは期限指定できるけどセッションは1回通信終えたらなくなるよ。
0386nobodyさん2006/02/14(火) 16:32:04ID:???
1回通信終えたら、っていう表現は微妙
0387nobodyさん2006/02/14(火) 16:34:37ID:???
微妙だな
0388nobodyさん2006/02/14(火) 16:58:21ID:???
>>385-387
大体の感じはつかめました
ありがとうございます
0389nobodyさん2006/02/14(火) 18:04:38ID:???
美乳だな
0390nobodyさん2006/02/14(火) 18:11:26ID:???
微乳だな
0391nobodyさん2006/02/14(火) 18:36:47ID:???
賓乳だな
0392nobodyさん2006/02/14(火) 18:44:56ID:???
牛乳だな
0393nobodyさん2006/02/14(火) 18:58:55ID:???
乳牛だな
0394nobodyさんNGNG
マニュアルに
マルチバイト文字列を扱うときは
mbstringモジュールをインストールしないとやばい
みたいなことが書いてあったんですが
いまいちなにがやばいのかわかりません。

具体的にどういうコードを入れると
問題が発生するのですか?
0395nobodyさん2006/02/14(火) 19:50:05ID:???
>>394
マルチバイト文字の入力を受け付けるプログラム
マルチバイト文字で検索を行うプログラム
マルチバイト文字の編集を行うプログラム
のいずれかで文字化けを起こす可能性が高いです。
0396nobodyさんNGNG
>>395
ありがとうございます。
split()とか試してみても問題なく処理されるから
なんでだろーなーと思って質問したんですが、

問題が起きなかった理由は、
どうも文字コードがISO-8859-*, EUC-JP, Shift_JIS
ならmbstringなしでも正常に動作するらしく、
私が試したのはEUC-JP, Shift_JISだけだったからっぽいです。
ということでISO-2022で試してみたら普通にエラーが出ました。
どうもすみませんでした。

EUC-JPで問題が起きないということは、
例えば掲示板などをを作るときに
内部コードとhttpヘッダとフォームタグの文字セットを
全部EUC-JPにすればmbstring無しでも
いけますかね?
0397nobodyさん2006/02/14(火) 21:27:40ID:???
>>396
Shift_JISだって問題になることは多い。
それはsplitで使った分割文字がたまたまShift_JISで問題の出ない文字だっただけだ。
0398nobodyさん2006/02/14(火) 21:28:43ID:???
EUCはその中では比較的問題の出にくいコードではある。
が、全く問題が出ないわけじゃない。
0399nobodyさんNGNG
あ、そうなんですか。
じゃあやっぱりmbstring入れなきゃやばいんですね。
どうもありがとうございました。
0400nobodyさん2006/02/14(火) 21:58:12ID:???
jcode.phpというのもある。
関係ないけど
0401nobodyさん2006/02/14(火) 22:08:05ID:???
自分で意識してマルチバイト対応の正規表現とか書いていけばmbstring無くても対応できるな。
関係ないけど
0402nobodyさん2006/02/14(火) 22:43:05ID:???
そういや%5Bの問題はどうなったんだ?
0403nobodyさん2006/02/14(火) 22:50:35ID:???
>>401
mbstring無しでマルチバイト対応の正規表現ってできるん?
0404nobodyさん2006/02/14(火) 22:59:12ID:???
>>403
使用する文字コードを特定すればできるよ。
mbstringみたいに設定でどれでも自動切換えみたいのはさすがにしんどい。
0405nobodyさん2006/02/14(火) 23:04:33ID:???
あー、もしかして地道に日本語文字をひたすら入力するの?
%x8Cとか
0406nobodyさん2006/02/14(火) 23:18:59ID:???
何をマッチングさせようとしてるんだ?そりゃ
0407nobodyさん2006/02/14(火) 23:20:50ID:???
例えば
/hoge/fuga/hunnu/2test
のような文章から
/hoge/fuga/hunnu(最後の/〜を抜いたもの)
hunnu(最後の/〜の直前の文字列)
2test(最後の/以降の文字列)
を一度に正規表現で抜き出したいのですが、どのようなコーディングをすればいいでしょうか?
"^(/?([a-zA-Z%])*)*([a-zA-Z%]*)"
として挫折しました。
直前に書いた"/^((\/[a-zA-Z]*))*$/"のが抽出率はいいようですが。
よろしくお願いします。
0408nobodyさん2006/02/14(火) 23:26:27ID:???
>>407
basename
dirname
pathinfo
関数じゃだめなの?
0409nobodyさん2006/02/14(火) 23:27:00ID:???
/hoge/fuga/hunnu/2testという文字列があるとして
・/2testを抜いたもの
・/2testの直前にある文字列
・2testのみ
を抽出したいという事です。

とても分かりづらく書いてすみません。
0410nobodyさん2006/02/14(火) 23:37:42ID:???
>>407
$str = "/hoge/fuga/hunnu/2test";
preg_match('<.*/([^/]+)/([^/]+)$>', $str, $match);
$str1 = $match[2];
$str2 = $match[1];
04114102006/02/14(火) 23:40:32ID:???
1つ目の抜き出しを忘れた
preg_match('<^(.*/([^/]+))/([^/]+)$>', $str, $match);
$str1 = $match[1];
$str2 = $match[2];
$str3 = $match[3];
0412nobodyさん2006/02/14(火) 23:49:28ID:???
>>408
ありがとうございます。
dirnameだとファイル名を含まないパスを返してくるので意図した内容にはならず、
ただこちらの存在を忘れていました。

>>411
神を見た。
いや、何度読んでも仕組みが分からない。
でも期待したものが返って来ます。
凄いです。なぞです。
いわゆるゴッドです。
0413nobodyさん2006/02/14(火) 23:55:57ID:???
書いてなかった私の責任ですが
/2testのみだと返って来ないみたいです。
0414nobodyさん2006/02/15(水) 00:01:49ID:???
preg_match('<^(.*/([^/]+))*/([^/]+)$>', $str, $match);
で/2testのようなものも回収できるようになりました。
<や>が全然分かりませんが、動くので>4100氏に感動してしまいます。
0415nobodyさん2006/02/15(水) 00:17:35ID:???
もういい加減ウザいかも知れませんが、改良できたので一応書いておきます。
/hoge/fuga/hunnu/
だと取得できなかったのですが、
'<^(.*/?([^/]+))*/([^/]+)?$>'
とする事で取得する事ができました。

>410氏ありがとうございました。
0416nobodyさん2006/02/15(水) 01:16:25ID:???
>>414
あー。<や>には大して意味ないよ。
普通、pregの正規表現は /〜/ って書くものだけど、
|〜| とか [〜] とかでも書けるってだけの話。
パス分解の正規表現を書くときは中身に / を多用するから
エスケープ面倒くさいんで別の記号で代用してるだけ。
0417nobodyさん2006/02/15(水) 02:51:07ID:NFe11LPg
PHP4で吐き出したデータをpdf化するにはどんな方法がありますか?
0418nobodyさん2006/02/15(水) 08:35:38ID:???
>>417
Excelで読み込んでAcrobat
0419nobodyさん2006/02/15(水) 08:37:21ID:???
>>417
wordに貼り付けてPDFメーカー
0420nobodyさん2006/02/15(水) 08:41:46ID:???
>>417
ブラウザからPDFプリント
0421nobodyさん2006/02/15(水) 09:04:35ID:???
>>417
PDFLIBだっけかなんか無料のやつ使ったことあるな。
0422nobodyさん2006/02/15(水) 09:11:12ID:???
>>421
吐き出したデータをまたPHPで読むの?
0423nobodyさん2006/02/15(水) 09:37:50ID:???
空気嫁
0424nobodyさん2006/02/15(水) 09:56:08ID:???
正規表現で括弧を入れ子にできるんだ.知らんかった.
その場合matchesに入るテキストはどういう順番になるの?
0425nobodyさん2006/02/15(水) 10:01:21ID:???
(1(2))(3)の順番だよ
0426nobodyさん2006/02/15(水) 10:24:46ID:???
括弧の最初の登場順と覚えればヨロシ。
0427nobodyさん2006/02/15(水) 11:04:03ID:???
>>421
PDFファイルとして吐き出す
0428nobodyさん2006/02/15(水) 11:13:07ID:???
>>374
"."でsplitするとかってダサい方法もあるけどね
0429nobodyさん2006/02/15(水) 12:06:02ID:???
メールのヘッダで
Date:
Two, 14 Feb 2006 8:38:50 -0480
という素晴らしいヘッダを送ってくるスパムがあるんですが、postgresにdateとして登録すると日付ではないと怒られます。

phpでも同じような正しい日付ではないと判断する関数は無いでしょうか?
0430nobodyさん2006/02/15(水) 12:37:40ID:???
>>429
strtotime():
0431nobodyさん2006/02/15(水) 13:06:54ID:???
ファイルをブラウザでアップロードするプログラムを書いているのですが、
ファイルの更新日時を取得するにはどうしたらよいのでしょうか
0432nobodyさん2006/02/15(水) 13:09:36ID:???
>>430
ありがとうございます、出来ました
下記のようにおかしな日付表現だと"-1"が帰ってきました。
----------------------------------------
$time = 'Two, 14 Feb 2006 8:38:50 -0480';
//$time = 'Wed, 15 Feb 2006 11:49:43 +0900';
$stime = strtotime($time);
print $stime . "<br>";
print date("(Y-m-d h:i:s)",$stime);
----------------------------------------

関数名が分かってマニュアル見てみるとそのまんまエラーの処理があって便利
http://php.s3.to/man/function.strtotime.html
0433nobodyさん2006/02/15(水) 13:20:22ID:???
>>431
stat
filemtime

別に宣伝じゃないけど
PHP5逆引き大全 500の極意
とかの逆引き出来る本買うと相当便利よ

phpのマニュアルは日本語検索する方法が分からないのよね・・
0434nobodyさん2006/02/15(水) 14:04:41ID:p2BDIAFN
niftyってphp設置できますよね?
0435nobodyさん2006/02/15(水) 14:05:12ID:???
>>433
日本語がダメなら英語で検索すればいいんじゃね?
0436nobodyさん2006/02/15(水) 14:43:57ID:???
>>435
まずは日本語のphpマニュアルが検索したいナリ
英語のマニュアル読むのは時間がかかるナリ
0437nobodyさん2006/02/15(水) 14:47:56ID:???
マリーアントワネットキター
0438nobodyさん2006/02/15(水) 14:48:31ID:???
>>432
PHP5.1.0からは-1じゃなくてfalseを返すようになってるので注意
04394312006/02/15(水) 15:08:53ID:???
>>433
やってみたのですが、どうもうまくいきません。アップロードした時刻が表示されてしまいます。
ポイントだけでもかまわないので、何かサンプルを示していただけないでしょうか?
0440nobodyさん2006/02/15(水) 15:31:24ID:???
>>439
元のローカルにあるファイルの情報を取得しようってか?
そりゃ、PHPだけじゃ無理だ
0441nobodyさん2006/02/15(水) 15:35:03ID:???
あの質問じゃあ、送信元の時刻のことだったなんてわからないよなw
0442nobodyさん2006/02/15(水) 15:35:27ID:???
>>439
clearstatcache
してないって落ちじゃなくて?
0443nobodyさん2006/02/15(水) 15:41:12ID:???
>>438
ありがとうございます、気をつけます
現在はphp4なので、またphp5に移ってDB登録の際にエラーが出たら考えます。

>>431
アップロードしてからの更新時刻についてだったら

clearstatcache();
print_r(stat('./dummy.txt'));

で出来てるようだけど
0444nobodyさん2006/02/15(水) 18:08:58ID:???
>>436
俺は日本語HTML版のマニュアルをダウンロードして、
なまずに食わせてるよ。
スゲー便利。
0445nobodyさん2006/02/15(水) 18:22:47ID:NFe11LPg
>>427
そうです。そのPDFとして吐き出すという処理を自動でさせたいのです。
ID・PASSなどでログインした会員ページで、例えば自分の登録状況をPDFとして出すとか。
0446nobodyさん2006/02/15(水) 18:32:04ID:???
>>445
PDFLIBはしらべたのかい?
0447nobodyさん2006/02/15(水) 20:43:29ID:???
php pdf ライブラリ でググればいろいろ引っ掛かるんじゃないかな。
上に出てきてないやつだと fpdfとかもあるな。
0448nobodyさん2006/02/15(水) 21:12:05ID:HBKFx6cq
php5.xの最新版をzipをダウンロードしてきたんですが、
sqliteは入っているのでしょうか?どこにもないんです。
phpinfoもみましたがそれらしき文字も見当たりません。
なにかインストールする作業が必要なんでしょうか?
どなたかご教授おねがいします。
0449nobodyさん2006/02/15(水) 21:36:07ID:???
いりません。
sqlite_open()すればインストールされているかどうか分かる
0450nobodyさん2006/02/15(水) 22:19:37ID:???
>>448
Win版しか知らないが、最新版なら作業が必要。
5.1から標準ではなくなった。ライブラリ化されたっぽい。
php.iniの適切な位置に
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
の3行を順番に記述するがよろし。
Linux版とかでも何らかの作業が必要と思われ。
0451nobodyさん2006/02/15(水) 23:48:30ID:yhYCj6u7
そうだっけ?
04524502006/02/16(木) 00:08:24ID:???
んー、Linux版とか扱わないので確証はないけど、
Win版で非標準(デフォで組み込まれていない)になって、Linux版で標準のままだったら不公平かとw
Win版に関しては間違いなく5.1.0ではデフォでは組み込まれなくなった。
5.0.4→5.1.0Ver.UP時にphp.iniを流用してたらSQLite動かず、原因究明にえらい苦労した。
0453nobodyさんNGNG
ファイルのロック解除とか
クローズに失敗した場合
どう対処したらいいですか?
というかどういう状況になると
失敗するんですか?
0454nobodyさん2006/02/16(木) 01:07:23ID:???
多分OSが勝手にクローズしてくれると思うよ。
0455nobodyさん2006/02/16(木) 01:10:32ID:???
ロック解除の方は分からないけど
0456nobodyさん2006/02/16(木) 01:21:31ID:???
>>455
ロックも
0457nobodyさん2006/02/16(木) 01:21:37ID:???
>>455
そんなことじゃ、立派な泥棒さんにはなれないZO!
0458nobodyさんNGNG
へーそうなんですか。
じゃあスクリプトからしかアクセスしないような
ログファイルとかだったら
失敗してもそのまま終了してしまって問題ないですよね。
0459nobodyさん2006/02/16(木) 01:53:31ID:???
何だその揚げ足取るような口調は。
質問じゃないのか。
0460nobodyさん2006/02/16(木) 01:57:27ID:???
>>458
いいんじゃない?
貧弱なOSじゃなかったらスクリプト(PHPプログラム)が終了すると同時にファイルもクローズしてくれるだろうし。
0461nobodyさん2006/02/16(木) 02:06:41ID:???
くそぉ・・・またPerlの開発だよ・・・
もうPerl忘れちゃったよ('A`)
いや、そんなにPHPとは変わんないけどさ、気分の問題だよ
0462nobodyさん2006/02/16(木) 02:26:03ID:U/SzwaHV
>>450さんありがとうございます。あした会社でSQLiteを導入してみます。
データベースがはじめてなのに土曜日までに会員登録をつくらなあかんのです。
助かりました。ありがとうございます。
04634582006/02/16(木) 02:28:49ID:???
>>459
いやそんなつもりじゃなかったんです。
変な書き方してすみませんでした^^;

皆さんどうもありがとうございました。
0464nobodyさん2006/02/16(木) 02:53:13ID:???
>>461
Perl→PHPってあんまり難しくないけど
PHP→Perlって記号とか色々忘れてて結構きついよな
0465nobodyさん2006/02/16(木) 04:19:25ID:???
ちょっと疑問に思ったので・・・

xreaを使ってるんですが、
拡張子をphpにしてるにも関わらずhtmlとして扱われてしまいます。
もともとはMovable Typeのtmplという拡張子のファイルを、
PHPでカスタマイズしたものなのですが、
Movable Type側で、このファイルをhtmlとして扱うような
処理がしてあると考えるのが妥当でしょうか?
Perlはわからないのでサッパリです・・・

当然、ファイルは拡張子をかえたので、
そのファイルを使っているものに関しては、
拡張子の関連付けを変えました。
0466nobodyさん2006/02/16(木) 04:46:54ID:???
>>465
日本語でおk
0467nobodyさん2006/02/16(木) 05:10:39ID:???
function next(& $time)

↑の「&」ってどういう意味をなすんでしょうか?
くだらないかもですが、宜しくお願いします。
0468nobodyさん2006/02/16(木) 05:56:15ID:???
>>467
& $variable;みたいに&と$の間にスペース入れられるのかな。

ちなみにそれは参照渡しと呼んぶ。
$src = 100;
echo "$src\n";
hoge ($src);
echo "$src\n";
function hoge (&$src){$src=0}
----出力----
100
0
----終了----
となる。
詳しくは関数の引数を読んでくれ
ttp://www.php.net/manual/ja/functions.arguments.php
0469nobodyさん2006/02/16(木) 07:50:00ID:???
phpMyAdminでzip圧縮してエクスポートという機能がありますが、
PHPでzip圧縮なんて出来るんですか?
0470nobodyさん2006/02/16(木) 08:18:10ID:???
>>469
zlibを組み込んであれば、zipとgzipが扱える。
0471nobodyさん2006/02/16(木) 08:22:36ID:???
>>469
PHP自体はZIP読み込みしかできないが
PHPからUNIXのZIPコマンドを走らせれば一応できると思う
0472nobodyさん2006/02/16(木) 09:52:32ID:???
>>468
遅くなりましたがありがとうございました。
04734702006/02/16(木) 09:53:03ID:???
471さんの書き込みを見て説明不足かなと思ったので追記しときます。
PHP自体ではZIP読み込み関数しか用意されてないが、
phpMyAdminの話でいうとPHPからzlibを利用できる環境で
zipとgzipの出力ができる。詳しくはzip.lib.php参照
(PEARのArchive_Zipクラスみたいなもん)
0474nobodyさん2006/02/16(木) 13:18:39ID:???
if(isset($r)){echo"$r";}
$rにNULLを入れると、NULLと表示されてしまいます。
これって正しいですか?
0475nobodyさん2006/02/16(木) 14:18:09ID:???
>>474

"NULL"だったらぶっ殺す
04764742006/02/16(木) 15:05:23ID:???
>>475
formタグのvalue='NULL'で渡しているんですが、もしかしてこれって文字列になるんですか?
''としてもifの中を通ってしまいます。
ちなみに明らかに使っていないグローバル変数でif(isset())をしたら中を通ってしまったので、
ためしにNULLを渡してみたらやっぱりifの中を通ってしまいます。
さらにちなみにif(isset())は多用していて、機能する所と機能しない所があります。
なにが違うのかさっぱり分かりません。
どうかご教授下さい。
0477nobodyさん2006/02/16(木) 15:12:53ID:???
APACHEど素人、PHP駆け出しです。
APACHEを勉強しようと思い、マイPC(windows)にAPACHEをインストールし、
PHPを動作させました。
ところが、日本語の$_GET値が、勝手にURLデコードされてしまいます。

例えば、次のようなPHPファイルがあり、
test.php
<?php
print $_GET[key];
?>

以下のようにアクセスすると、
test.php?key=%A4%A2%A4%A2%A4%A2

実行結果
-----------------
あああ
-----------------
と表示されます。

正しくは、
-----------------
%A4%A2%A4%A2%A4%A2
-----------------

かと思うのですが、何が原因でしょうか。
お時間がある方教えていただけると助かりますm(__)m



0478nobodyさん2006/02/16(木) 15:13:32ID:???
こういう人にはC言語をやらせたいと思う俺C厨?
0479nobodyさん2006/02/16(木) 15:19:16ID:???
>>478の対象は>>476な、>>477もCやらせたいけどまた別。

>>476
$a = "NULL";
$b = "NULL";
$C = NULL;
echo "a = $a, b = $b, c = $c";
を実行してみて感想が欲しい。
ちなみにマニュアルでは、
引用符、二重引用符
ttp://www.php.net/manual/ja/language.types.string.php
NULL
ttp://www.php.net/manual/ja/language.types.null.php
に書いてあるから。
それでも分からなかったらまた質問しれい。
0480nobodyさん2006/02/16(木) 15:22:43ID:???
>>477
http://www.studyinghttp.net/uri
ここのパーセントエンコーディングを読んでみて
0481nobodyさん2006/02/16(木) 15:25:17ID:???
>>476
つかhtmlのformで渡せるのは"文字列"だけだよ。
文字列を受け取って、それをどう解釈するかは受信側に任されてるが。
04824742006/02/16(木) 16:01:57ID:???
a = NULL, b = NULL, c =
実行結果です。
引用符、二重引用符については一様分かっているつもりなのですが、
postで渡したNULLがどうしてもif(isset())を通ってしまいます。
value=NULL
value="NULL"
value='NULL'
$_POST[r]
$_POST['r']
$_POST["r"]
いずれもif(isset())を通ってしまいました。
仕方ないのでNULLの代わりに0を渡して、
if($_POST[r] != 0)としました。
if(isset())は他でも使っているので気持ちが悪いッス。
0483nobodyさん2006/02/16(木) 16:05:07ID:???
>>482
>>481
0484nobodyさん2006/02/16(木) 16:08:11ID:???
>>476
フォームでNULLを渡してissetで判定、ってのは基本的には無理。
やるなら
if($r == 'NULL') unset($r);
とかやって変数を消すしかない。

> 明らかに使っていないグローバル変数
これでisset()を通るのは意味不明。どっかで $r = ''; とかしてるんじゃないの?
isset()で偽になるのは unset($r); で変数自体を消す場合と $r = NULL; とプログラム中で書いたとき。
0485nobodyさん2006/02/16(木) 16:09:23ID:???
>>482
POSTで渡したデータ = "NULL"または’NULL'と同義でNULLとは別。
0486nobodyさん2006/02/16(木) 16:11:33ID:???
>>482
通常、フォームに対するissetは「そのフォーム自体が存在しない場合」をチェックするのに使う。
なので、<input type="hidden" name="a" value="">とやった時点でもうissetは必ず真。

普通は<input type="submit" name="a" value="aを押したときの処理">みたいにsubmitで使って
どのボタンが押されたかの判別に使う程度。値の内容判別にissetを使うのは間違い。
04874742006/02/16(木) 16:14:33ID:???
>>481
ぬあ、そうなんですか、ってそうなんですね。
ありがとうございます。

ところで、formタグに囲まれている input type='file' は、
参照されなくても$_FILESに値が入ってしまうんでしょうか?
参照されていないのにif(isset($_FILES))でifの中を通ってしまいます。
0488nobodyさん2006/02/16(木) 16:18:28ID:???
482を読む限り、文字列とbooleanとNULL型とかの
基本的な「型」の区別すら付けられていない気が・・・・
(481を読む前に482を投稿したとしても)
0489nobodyさん2006/02/16(木) 16:24:27ID:???
>>487
print_r($_FILES)してみれ
出てきた変数は総てissetで真となる
04904742006/02/16(木) 16:34:56ID:???
みなさん、ありがとうございます。
昨日は動いてた気がしたんですよ、夢でも見てたんですね。
勉強し直して来ます。
0491nobodyさん2006/02/16(木) 16:36:06ID:???
オマイラさん
ttp://www.gac.jp/article/index.php?stats=question&category=&id=17033&command=msg&page=all
こっちでも優しくしてやってくれよ…マイッタ
0492nobodyさん2006/02/16(木) 16:46:47ID:???
ちょとPHPからずれるかもしれませんが
例えばある表のパラメータとかを入れるレコードを作るとして
2回目から入れる場合
主キー=aとか調べてあればupdateなければinsertっていうのより
一旦レコード全部削除してinsertばっかってやってるのですが
何かまずいことありますか?
調べる処理分時間も短縮されるのでと思っているのですが・・・
0493nobodyさん2006/02/16(木) 16:51:48ID:???
>>491
PHP関係ない
0494nobodyさん2006/02/16(木) 16:51:55ID:???
PHPじゃないじゃんデータベースじゃん
全然ちょっとじゃないよっヽ(`Д´)ノ
0495nobodyさん2006/02/16(木) 16:53:32ID:???
>>492
すごい遅い
0496nobodyさん2006/02/16(木) 16:55:47ID:???
>>492
DBにもよるが、基本的に遅くなる。
詳しく知りたいならDB板行ってくれ
0497nobodyさん2006/02/16(木) 17:01:14ID:???
PHPとは関係ないかも知れませんが、
基本的にどの言語にもある変数や配列といった概念は昔からあるのですか?
0498nobodyさん2006/02/16(木) 17:09:10ID:???
コペルニクスの時代から
04994772006/02/16(木) 17:10:43ID:???
>>480
ありがとうございました。

PHPって勝手にデコードされるのが仕様だったんでしたね。
perlと行ったり来たりの開発でテンパッてました。
0500nobodyさん2006/02/16(木) 17:14:16ID:???
>>495-496
遅くなるのですか・・。
以外ですね。ありがとうございました。
0501nobodyさん2006/02/16(木) 17:37:27ID:???
>>500
消す範囲によるんじゃね?
インデックスの状態に寄るだろうし、
トランザクションではさめばいい場合もあるし
0502nobodyさん2006/02/16(木) 17:54:23ID:???
>>499
PHPじゃなくてApacheとかがデコードすんじゃないのかな。
何でもPHPのせいにするのやめい。
0503nobodyさん2006/02/16(木) 17:58:33ID:???
>>478は言えてたな。
Cでもやってりゃこんなアホな質問繰り返さない。
0504nobodyさん2006/02/16(木) 18:52:42ID:???
>>502
いやPHPだろ
0505nobodyさん2006/02/16(木) 19:19:04ID:???
>>504
今AN HTTPDのログ見たら、ログにはデコードされてなかった。
申し訳ない。
0506nobodyさん2006/02/16(木) 20:50:20ID:ZZ/v8PR0
http://www.geocities.jp/unamuhi/session.gif
↑これはレンタルサーバのphp.iniのセッション管理部分を抜き出した画像です。
このレンタルサーバでセッション管理は使えるでしょうか。
使える場合、なにか制限はあるでしょうか。

よろしくおねがいします。


0507nobodyさん2006/02/16(木) 21:18:47ID:???
>>506
削除されてる
05085062006/02/16(木) 21:30:26ID:???
>>507
ありがとうございました。
0509nobodyさん2006/02/16(木) 21:43:15ID:???
終わりかよ。
0510nobodyさん2006/02/16(木) 21:44:07ID:???
>>491
すげー。こんな奴見たことない。マイ人生のキチガイベスト1にランクインしますた。
0511nobodyさん2006/02/16(木) 22:17:03ID:???
>>506
使える
0512nobodyさん2006/02/16(木) 22:17:23ID:???
>>510
この人、同じ所の別スレで無謀な転職相談して、
コテンパンにされてる…
ってか40歳かよ…ヾ( ´ー`)
05135062006/02/16(木) 22:20:40ID:ZZ/v8PR0
>>507
>>509
あ、申し訳ない。
「削除されてる」というのは設定が削除されていて
セッション管理ができないことだと思ってました。
画像が削除されてましたね。

もう一度よろしくお願いします。
http://www.geocities.jp/unamuhi/sessioon.html
05145062006/02/16(木) 22:26:18ID:???
>>511
ありがとうございました。

なんかバタバタして申し訳ないっす。
0515nobodyさん2006/02/16(木) 22:47:18ID:???
>>512
ワロスwリストラでもされたのかね。人に聞かないと行動できないオジサン。
0516nobodyさん2006/02/17(金) 06:45:05ID:???
     ,へ^;,ヘへ、
     ´`^^i1^v~ヽ
        !|i
        ||゚
      ___」L__&/ヽ、
.:.:./ ̄        ̄\;:...;:.:.:.:.:.:.....:.:.:.........:.:.:.
.:...^.^:ー.:.:.:.:...::.:.:.:..:.:.:^^~.:.:.:.:.::::.:.::^::::... :. :.:.. .:.:
:::::::::::::::::::::::::::::,::::::::::::、::::::::::,::::::::::::....:.:.:......:.:.:....:.:
0517nobodyさん2006/02/17(金) 07:23:56ID:???
オッサンも必死なんだ。
今の日本が悪いんだ!だからオッサンを責めないでやってくれ!
0518nobodyさん2006/02/17(金) 08:44:49ID:???
オッサン、オッサン言うな!
by オッサン
0519nobodyさん2006/02/17(金) 11:30:00ID:???
歳をとると、若いヤツが気に入らなくなるのが人間というものだ。

0520nobodyさん2006/02/17(金) 11:45:07ID:???
ゆとり教育の弊害に違いあるまい
0521nobodyさん2006/02/17(金) 12:34:55ID:???
某サイトのサンプルスクリプトで
class指定の際に変数の型宣言をきっちりしている人がいるのですが、
自動判別にゆだねずあえて宣言するメリットは何なんでしょうか?
0522nobodyさん2006/02/17(金) 12:43:33ID:???
自動判別する処理が削減できる
0523nobodyさん2006/02/17(金) 12:54:47ID:???
>>522
速度に影響します?
0524nobodyさん2006/02/17(金) 12:55:47ID:???
結論から言うと、Cとかから流れて、PHPやってるやつ多いから、
自動判別は気持ち悪くて仕方が無いんだよ。
現場でも「気持ち悪い、気持ち悪い」とか言いながら「便利だよな」で。
0525nobodyさん2006/02/17(金) 12:56:31ID:U6ySh0xX
半角カナから全角カナへの変換スクリプト
ttp://pamo.dip.jp/blog/archives/000119.html

windowsで、c:\piyo\foo以下のディレクトリにある
ファイルに含まれる半角かなを全角カナに変換しようと
思ってぐぐったら、上野サイトがみつかりました。

そこで、上記のサイトの通り、以下のディレクトリを作成し、
beforeの方に、変換したいファイルをごっさり入れました。

c:\piyo\foo\before
c:\piyo\foo\after

そして、上野スクリプトをこう書き換えました。

$r_dir='.;c:\foo\before';
$w_dir='.;c:\foo\after';

ですが、うまく動きません。

何か他に設定すべき所はありますか?
どなたかご教示願います。
0526nobodyさん2006/02/17(金) 13:10:01ID:U6ySh0xX
525です。
質問がわかりにくくすみません。
自己解決しました。
0527nobodyさん2006/02/17(金) 13:48:34ID:???
教えてもらったんじゃに、という意味で自己解決と書くんだろうけど
こんな短時間で自分でミスを発見する程度のものを質問する時点で・・・

結局、 \\ なのか?
0528nobodyさん2006/02/17(金) 13:51:05ID:U6ySh0xX
>>527
はい、そうでしたorz
0529nobodyさん2006/02/17(金) 15:33:48ID:tkJ6TdC2
phpmyadminを安全のためpublic_htmlの外におきたいのですが、
そうするとhttpでアクセスできなくなりますよね。
自分はアクセスできるようにしたいのですが、
なにか良い案などありましたらご教授願えませんか?
よろしくお願いいたします。
0530nobodyさん2006/02/17(金) 15:40:33ID:???
安全の為って、普通に.htaccessでいいじゃん。
0531nobodyさん2006/02/17(金) 16:33:07ID:Jyi+qfsM
質問します。WindNT+Apache+PHP4.4.1です。
PHPでアニメーションGIFを自動生成しようと思い
GDでは出来ないということだったので、
ImageMagick(Windows版)というものを探してインストールしてみたのですが、
使い方がさっぱりわからなくて困っています。
どなたか、ご教示をお願いします。
05325292006/02/17(金) 16:46:16ID:tkJ6TdC2
>>530さん
.htaccessは信頼してもよろしいのでしょうか?
セキュリティーは慎重にいきたいと思ってます。
0533nobodyさん2006/02/17(金) 16:50:29ID:???
>>532
質問の意図が良く分からない・・・;
そんな事言ってたらキリが無いと思ったのは自分だけ?

そこまで気になるなら、httpd.confと.htaccessに書いてIPSTABLEにも書き加えれば流石に大丈夫かと
0534nobodyさん2006/02/17(金) 16:51:30ID:???
>>529
バーチャルドメインは?
0535nobodyさん2006/02/17(金) 16:55:44ID:???
連想配列に入ってるものを伸張したいんだけど
$hoge['A']='aaa';
$hoge['B']='ccc';
$hoge['C']='ggg';

これを "A=aaa&B=ccc&C=ggg" みたいな文字列にしたい

泥臭くループ回せばとりあえずできる・できたんだけど、
格好良く惚れ惚れするコードは書くことが出来るだろうか
0536nobodyさん2006/02/17(金) 16:59:51ID:???
>>535
join() でどうか
0537nobodyさん2006/02/17(金) 17:03:25ID:???
>>536
$s[]="A=aaa";
$s[]="B=ccc";
$s[]="C=ggg";
を作らなきゃやっぱだめ?
0538nobodyさん2006/02/17(金) 17:04:01ID:???
$hoge['A']='aaa';
$hoge['B']='ccc';
$hoge['C']='ggg';
$result = "";

foreach ($hoge as $key => $val) {
$result .= $key . "=" . $val . "&";
}
0539nobodyさん2006/02/17(金) 17:05:00ID:???
>>535
array_walkでどうにかする
0540nobodyさん2006/02/17(金) 17:06:27ID:???
>>538
最後の & がアウアウアー
0541nobodyさん2006/02/17(金) 17:09:40ID:???
$s = array();
foreach( $hoge as $k=>$v ) $s[]="$k=$v";
$str = implode("&", $s);

どうしてもかっこよく出来ない。 $sが必要なのがダサすぎ。
0542nobodyさん2006/02/17(金) 17:27:24ID:???
ereg_replace ("&$", "", $result);
0543nobodyさん2006/02/17(金) 17:28:09ID:???
>>535
http_build_query($hoge);//PHP5 only
0544nobodyさん2006/02/17(金) 17:35:46ID:???
>>543
カッコイイ
05455432006/02/17(金) 17:37:57ID:???
俺も今回初めてこの関数の存在を知った
PHPならひょっとしてと思ってマニュアル見たらやっぱりあったって感じかな
0546nobodyさん2006/02/17(金) 17:53:57ID:???
>>543
すげぇ、ホントにこんな関数あるんだw
でもマニュアルは何故かこの関数だけ英語だな;

それにしてもphpの関数て日々増えてるけど全部把握してる人とかいるのかな・・・
俺は作成するとき関数名調べるのに時々ごっごる先生にお世話になってるけど他の人って大概頭に入ってる?
0547nobodyさん2006/02/17(金) 17:58:47ID:???
<?php
print_r(get_defined_functions());
?>
で、出てきた関数を片っ端から調べてる。
0548nobodyさん2006/02/17(金) 18:00:14ID:???
>>546
日本語だよ
0549nobodyさん2006/02/17(金) 18:13:46ID:???
なんかマニュアルでhttp_build_queryを検索してもエラーが出るんだけどなんでだ・・・?
他の関数だと普通に検索できるんからちょっと気になった。

ぐぐって調べたが便利な関数だな。早速書き換えてやるぜ
05505352006/02/17(金) 18:30:09ID:???
惚れた
すごいなPHP
0551nobodyさん2006/02/17(金) 18:33:25ID:???
>>546
5で新規に追加された関数とか結構英語マニュアルしかないのいっぱいあるよ。
日本語化の中の人も追いつきません。

$hoge['A']='aaa';
$hoge['B']='ccc';
$hoge['C']='ggg';
print $query = join('&', array_map(create_function('$k', 'return urlencode($k)."=".urlencode($GLOBALS["hoge"][$k]);'), array_keys($hoge)));
せいぜいこんなもんだなぁ
0552nobodyさん2006/02/17(金) 18:34:34ID:???
>>546
オンラインリファレンスのカテゴリ一覧か関数一覧のどっちかで大抵見つかってる。
05535512006/02/17(金) 18:45:44ID:???
互換関数を自作するなら多分こんな感じ
function http_build_query($a) {
return join('&', array_map(create_function('$k, $v', 'return urlencode($k)."=".urlencode($v);'), array_keys($a), array_values($a)));
}
print http_build_query($hoge);
0554nobodyさん2006/02/17(金) 18:50:27ID:???
ぐぐっても参考サイトが見つけられなかったので、お願いします。

よく、会員登録フォームなどで「半角英数字4文字以上を入力して下さい」
っと但し書きがありますが、PHPで指定のフォームの文字数が一定値入っていないと
エラーを返すような仕様にしたいと思っています。

登録内容確認ファイルに、正規表現とその個数を書いて、IFで判別するようにしたら
上記の事が可能だとは思うのですが、いまいちどのように記述すればよいかわかりません。

お手数ですが、教えていただければと思います。
0555nobodyさん2006/02/17(金) 18:57:09ID:???
>>554
if(strlen($_POST['input']) < 4 || ! ctype_alnum($_POST['input'])) {
 エラー
}
0556nobodyさん2006/02/17(金) 18:58:22ID:???
strlen($str)<4 ?
0557nobodyさん2006/02/17(金) 19:03:31ID:???
質問の内容がイマイチつかめないが・・・
>登録内容確認ファイルに、正規表現とその個数を書いて
ってどういう意味だ?
正規表現で「半角英数字4文字以上か判別する」なら
if (!preg_match('/^[\da-z]{4,}$/i', $foo)) die;
か?
555の方がいいかも。
にしても、検索しても見つけられないってのは
絶対検索の仕方が悪いだけだと思う・・・・
(もしくは検索結果の内容が理解できていないか)
0558nobodyさん2006/02/17(金) 19:08:27ID:qTAsxSAo
確かに、この内容がgoogleで探せないとしたら
よっぽど検索が下手なんだろうな、って思うよな。
0559nobodyさん2006/02/17(金) 19:15:39ID:X1bnCm1p
>>555
ありがとうございます。この方法で問題なく出来ました。

>>557-558
「PHP 入力チェック」「PHP 文字数チェック」などで探しても駄目でした。
検索下手ですみません。
0560nobodyさん2006/02/17(金) 19:18:09ID:???
PHP 文字数
PHP バイト数
0561nobodyさん2006/02/17(金) 19:34:46ID:???
収まりきらなかったのでこちらに移しています。
http://www.uploda.org/uporg315320.txt

RSSリーダーなんですがindex.phpで設置したのですが動作しません。
何故でしょうか?
鯖はphp対応です。
配布先が分からないのでお聞きしました。
0562nobodyさん2006/02/17(金) 19:57:09ID:???
>>561
まずエラーを晒せよ・・
0563nobodyさん2006/02/17(金) 20:15:24ID:OSq2eJeb
'usernamecol'=>"username",
'passwordcol'=>"password",

外部ファイルのFORMからPOSTで取得したものを代入するには,
usernameとpasswordのところをどう書き換えればよろしいのでしょうか?
ご教授の程、よろしくお願いいたします。
0564nobodyさん2006/02/17(金) 20:17:32ID:???
どこに代入??
0565nobodyさん2006/02/17(金) 20:25:26ID:???
しかし相変わらず「ご教授」が多いな
0566nobodyさん2006/02/17(金) 20:26:03ID:???
>>561

ソース見てコーラ吹いた
それ俺が書いたソースなんだがw

多分1年半前に書いた奴だ
PHP初めて2,3ヶ月程度だったらかなり力技で作ってる奴だから
恥ずかしいんですけどwwww

知り合いに頼まれて作ったものだったんだがそいつが最近自サイトでソース公開してるのを知ってはいたが。。

ttp://sussex.ddo.jp/contents/rss-reader.txt
ttp://sussex.ddo.jp/
0567nobodyさん2006/02/17(金) 20:32:08ID:OSq2eJeb
>>564さんありがとうございます。
左辺にPOSTで受け取ったものを代入したいのです。
0568nobodyさん2006/02/17(金) 20:45:41ID:???
>>562
エラーも何も何も表示されません・・・。

>>566
そうだったんですか。
0569nobodyさん2006/02/17(金) 20:55:24ID:???
>>563
ひとまず
print_r($_POST);
でどうだ

$_POSTでググルって選択肢もある
0570nobodyさん2006/02/17(金) 20:56:33ID:???
>>568
もちろんphpが動作している鯖なんだよね?
05715662006/02/17(金) 20:56:38ID:???
>>568

一番上の<? 〜 ?>を

<?
//$rss_arrayはRSSをするサイトを入れてください、"",で読み込むRDFファイルなどを追加できます。
$rss_array=array(
"http://rss.akiyan.com/rss/googlenews.rss?category=public&link=related"
);

//表示件数を設定並びは上とあわせて。上記のRDFを追加した場合も、数字コンマで追加してください。
$num_array = array(
5
);
?>

これにしてみて動くか?
0572nobodyさん2006/02/17(金) 21:10:26ID:???
>>570
動作している鯖です。
phpのカウンタはしっかりと動作してます。

>>571
やはり無理です・・・。


パーミッションは何も変更しなくていいんですよね。
0573nobodyさん2006/02/17(金) 21:15:27ID:???
<?
↑を禁止してるとか?
<?php にしてみたらどうでしょう。
0574nobodyさん2006/02/17(金) 21:21:12ID:???
>>573
ん〜ダメでした・・・。
0575nobodyさん2006/02/17(金) 21:27:41ID:???
>>563
なんだか意味がよく分からんが
$hoge = array(
'usernamecol'=>$_POST["username"],
'passwordcol'=>$_POST["password"],
);
ってことが言いたいのか?
フォームの内容はどうなってて何て変数に代入させたいんだかさっぱり日本語が分からん。
0576nobodyさん2006/02/17(金) 21:34:54ID:???
>>572
1.
foreach($rss_array as $key => $files){
echo "";
のとこを
foreach($rss_array as $key => $files){
echo "<hr>$files<hr>";
にして何か表示される?
PHPが動作してて組み込みミスしてなきゃURLが表示されるはず。
2.
1でURLが出てくるようなら
$file = file($files);
の次の行に
echo "<pre>".join("",$file)."</pre>";
というのを追加してみてHTMLソースが表示されるかどうか。
これが出てこないならfile()での外部サイトアクセスを禁止してるサーバなので、
そのプログラムでのRSS表示は難しいかもしれない。
0577nobodyさん2006/02/17(金) 21:50:33ID:???
>>576
1と2どちらも成功。
ですが文字化けしてた・・・。
0578nobodyさん2006/02/17(金) 21:56:03ID:???
JpGraphもここで聞いていいか?
05795632006/02/17(金) 21:56:31ID:???
>>575さんありがとうございます。コードはこちらです。
<?php

require_once("Auth/Auth.php");

// Authオプション
$params = array(
'dsn'=>"mysql://username:password@localhost/database",
'table'=>"usermng", // テーブル名
'usernamecol'=>"username", // ユーザ名の列名
'passwordcol'=>"password", // パスワードの列名
'cryptType'=>"md5", // パスワードの暗号化形式
'db_Fields'=>"*", // 他の項目の取得を可能にする
);

$objAuth = new Auth("DB", $params);

// 認証プロセスの開始
$objAuth->start();

if($objAuth->getAuth()) {
echo "ようこそ!" . $objAuth->username . "さん<br>";
// メールアドレスを取得。
echo $objAuth->getAuthData('email');
};

?>

引用(http://www.bnote.net/php/pear/25_auth_db.html)
0580nobodyさん2006/02/17(金) 22:00:24ID:???
>>578
礼節を弁えるのなら許可する
0581nobodyさん2006/02/17(金) 22:19:47ID:???
>>580
('A`)ぅ ラジャ

JpGraphで、Y軸を児童にしてるとき、Yの取り得る範囲が
0〜5とか小さい範囲だと、小数点つきで目盛り振られたり
0.0 0.5 1.0 1.5 みたいになるんだけど、これを整数のみに
したいです。
$graph->yaxis->SetFormat("%d"); みたいにあてずっぽ
でやってみてもダメでした。
なんのプロパティのなにをどうしたらいいかヒントください。
0582nobodyさん2006/02/17(金) 22:48:00ID:???
>>577
まぁ、生ソース表示させたんで中身UTF-8のままだからな。
$file = file($files);
echo "<pre>".join("",$file)."</pre>";
mb_convert_variables("SJIS","UTF-8",$file);

$file = file($files);
mb_convert_variables("SJIS","UTF-8",$file);
echo "<pre>".join("",$file)."</pre>";
にすれば中身見えるんじゃないかな。

しかしそこまで動いてて表示が出ないのか…。
なんだか真面目にロジックの中身をデバッグしなきゃいけない悪寒。
作った本人いるんだからそいつにデータとコード確認させてぇ。
0583nobodyさん2006/02/17(金) 22:52:17ID:???
>>582
変えても

1.
foreach($rss_array as $key => $files){
echo "";
のとこを
foreach($rss_array as $key => $files){
echo "<hr>$files<hr>";
にして何か表示される?
PHPが動作してて組み込みミスしてなきゃURLが表示されるはず。

これしか表示されない・・・。
コードがいけないんすかね?
0584nobodyさん2006/02/17(金) 23:00:40ID:???
textintか。解決しました。
0585作った本人2006/02/17(金) 23:04:04ID:???
ふう
糞ったソースを動かしてみた。

>>561のソースコピペで

$rss_array = array(
"http://rss.akiyan.com/rss/googlenews.rss?category=public&link=related"
);

↑のRSSでは正常動作確認が出来るな。

>>577

適当なファイル名のphpファイル作って
以下のコード動かしてみて

<?php
echo ini_get('display_errors')."<br>";
echo ini_get('error_reporting');
?>

結果を貼り付けれ
0586nobodyさん2006/02/17(金) 23:05:52ID:???

2047

と出た。
0587nobodyさん2006/02/17(金) 23:11:24ID:???
つーかPEARのRSSでも使えばいんじゃね?
0588作った本人2006/02/17(金) 23:15:36ID:???
>>586

最高レベルか。
んじゃーRSSリーダープログラムの一番上の行に以下を挿入して。

<?php
error_reporting(E_ALL ^ E_NOTICE);
?>

ってか>>583の発言で

これしか表示されない・・・。
コードがいけないんすかね?

これってどれ?
0589作った本人2006/02/17(金) 23:16:42ID:???
>>587

我ながら同意
0590nobodyさん2006/02/17(金) 23:23:01ID:???
>>583
>>582の変更をしたら、それまで出てたRSSのソースXMLが全く出てこなくなった、でおけ?
ちゅーことは
mb_convert_variables("SJIS","UTF-8",$file);
ここでUTF-8からSJISへ文字コード変換するのに失敗して全部データが消えてる模様。
mbstringが使えないかもしくは設定を間違ってると思われる。
0591nobodyさん2006/02/18(土) 01:02:47ID:???
ひとまず
phpinfo();
ですか
0592nobodyさん2006/02/18(土) 01:27:54ID:???
JpGraphで、ラインプロットで 折れ線グラフ描いている時
データに空白を入れることなくグラフを途中で切るには
どうしたらいいでしょうか
0593nobodyさん2006/02/18(土) 03:36:10ID:???
>>592
これまたアプリ固有の話題だな。

""で飛ばすのが仕様だから、方法はないよ。
空白""がいやなら、あとは"x"とか入れるか。
0594nobodyさん2006/02/18(土) 05:28:46ID:???
XML宣言で<?xml〜が、phpのスタートとして扱われてしまいエラーが出ます。
サーバはXREAです。
これの対処法が持っている本に書いてあった気がするんですが、
どうしても見つからなくて困っています。
<?xmlがphpの始まりと認識されなくする方法がわかる方教えていただけませんか?
0595nobodyさん2006/02/18(土) 05:58:59ID:???
htmlspecialchars() で変換した変数を
元に戻す関数ってあるでしょうか?
ブラウザで表示するときは、変換して、
処理するときは戻したいのです。
0596nobodyさん2006/02/18(土) 06:04:49ID:???
>>594
http://www.php.net/manual/ja/ini.core.php#ini.short-open-tag
ただしPHP4かからPHP_INI_PERDIRなのでhttpd.conf php.ini .htaccess で設定できないなら
echo '<?xml〜';
ってやるしかない。
0597nobodyさん2006/02/18(土) 06:08:21ID:???
>>595
http://jp.php.net/manual/ja/function.html-entity-decode.php
処理するときに戻すとか考えるなら、出力を2系統に分けることも考えてみては?
0598nobodyさん2006/02/18(土) 06:15:02ID:???
>>595
ない。

そういう処理の場合(htmlに限らない)加工前のデータを
保持しておいて、出力に合わせて加工するのが普通。
あと、htmlspecialchars()のUser Contributed Notesを
見ると良い事があるかも。ただ厳密な可逆処理となると面倒。
05995982006/02/18(土) 06:17:00ID:???
PHP5なら、htmlspecialchars_decode()があるか。
http://jp.php.net/manual/ja/function.htmlspecialchars-decode.php
0600nobodyさん2006/02/18(土) 06:46:49ID:???
>>595
print htmlspecialchars($hoge);
って表示する時だけ処理すればいいって話じゃない?
0601nobodyさん2006/02/18(土) 07:45:01ID:???
フォームに前ページのデータをPOSTで受け取っておいて、
初期値として表示させておくことは
<INPUT type="text" name="hoge" value="<?=$_POST["hoge"];?>">
で問題ないのですが、
これがSELECTタグのような場合、簡単に
OPTIONタグにselecedを付加する
(valueに一致するoptionにselectedを付加する)方法ありますか?

あるにはあるんですが、自分の考えた方法だと
ループさせて一致させてselectedを付加するという
非常に回りくどいやり方です、これしか思いつきませんでした。

下のようなOPTIONに動的にselectedを付加することが
できるようにしたいのです、例えば変数1がPOSTされたら1、
変数2がPOSTされたら2、という感じです。
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
0602nobodyさん2006/02/18(土) 07:54:04ID:???
くだらないかもですが、今までflockでロック用ファイルをロックして使ってたスクリプトがあり、正常だったのですが昨日から鯖エラーが出て原因不明でした。
今朝見てロック用ファイルがロックされっぱなしなのかと思い、それを削除してアップし直したら正常に動きました。
ロック用ファイルがロックされっぱなしになることってあるんですか?また、あるなら回避する方法も知りたいです。
0603nobodyさん2006/02/18(土) 08:23:07ID:???
php.iniとかでWARNINGが出た場合は
特定のメールアドレスへエラー内容を送信、
みたいなことってできる?
プログラム側でやろうとしたらかなり面倒になりそうなんで。
0604nobodyさん2006/02/18(土) 08:54:15ID:???
例えばAとBという値がありAの処理は必ず、Bの方は値があれば共に30回とか同じ処理行いたい場合
for(30まで){
 Aの処理
}
if(B!=""){
 for(30まで){
  Bの処理
 }
}
とforを2回、値チェックは1回回して値ごとに処理する方ががいいのか
for(30まで){
 Aの処理
 if(B!=""){
  Bの処理
 }
}
とforが1回、値チェックを30回するほうがいいのかどちらがよいと思いますか?
0605nobodyさん2006/02/18(土) 08:58:03ID:???
>>588
音沙汰なしです・・・。

>>589
perlだとサイトに表示出来ないってかSSIが使えないので・・・。
0606nobodyさん2006/02/18(土) 08:58:30ID:???
>>601

一個目。

$OptValue = $_POST["hoge"];
$selected1 = "";
$selected2 = "";
$selected3 = "";

switch($OptValue){
case 1: $selected1 = " selected"; break;
case 2: $selected2 = " selected"; break;
case 3: $selected3 = " selected"; break;
}

<OPTION value="1"<?php echo $selected1 ?>>1</OPTION>
<OPTION value="2"<?php echo $selected2 ?>>2</OPTION>
<OPTION value="3"<?php echo $selected3 ?>>3</OPTION>
----------------------------------------------------
二個目。

$OptValue = $_POST["hoge"];

<OPTION value="1"<?php echo( ($OptValue == 1?" selected":"") ) ?>>一</OPTION>
<OPTION value="2"<?php echo( ($OptValue == 2?" selected":"") ) ?>>ニ</OPTION>
<OPTION value="3"<?php echo( ($OptValue == 3?" selected":"") ) ?>>三</OPTION>

ですが、SELECTタグは何度も使うもののような気もしますので
SELECTタグを自動生成する関数などを用意したほうが効率が良いと思われます。
0607nobodyさん2006/02/18(土) 11:48:31ID:???
<?php
$OptValue = $_REQUEST["hoge"];

echo "<form>"
."<select>";
$num = 20;
for ($n = 1; $n < $num; $n++)
echo "<OPTION value=\"$n\"" . (($OptValue==$n)?(" selected"):("")) . ">$n</OPTION>";
echo "</select></form>";
?>
0608nobodyさん2006/02/18(土) 11:48:44ID:XJx/AN5S
example1.phpから、example2.php内のアンカーポイント(top)に飛ぶのに
リンクはhtmlみたいに、./example2.php#topってやってもエエのん?
(´・ω・`)そんなやり方ダセー!とか言われない?
0609nobodyさん2006/02/18(土) 11:53:09ID:???
驚かないで聞いてくれ!
#以降の文字は サーバに送信すらされないんだっ!
0610nobodyさん2006/02/18(土) 12:02:59ID:XJx/AN5S
>>609
えええええ?
じゃあ、どうすればエエのん?(´・ω・`)
0611nobodyさん2006/02/18(土) 12:08:09ID:???
>>608
エエよ
0612nobodyさん2006/02/18(土) 12:12:11ID:???
>>608
こういうことかい
http://nike.s151.xrea.com/info.php#module_gd
06136082006/02/18(土) 12:14:45ID:???
>>612
そうそう!それです!
よかった、もっとPHPらしいやり方とか
あるのかと思いました…。

>>611,612
お二方レスさんくすです!ヽ( ^∀^)ノ
0614nobodyさん2006/02/18(土) 12:39:46ID:???
>>605
>>587をもっかい良く嫁
0615nobodyさん2006/02/18(土) 12:57:40ID:???
>>612
全然関係ないけどログ検索機能イイ!!
0616nobodyさん2006/02/18(土) 13:49:44ID:???
>>601
>>606さんが行ってたユーザ関数を使う俺の場合
もっとこうしたらってのがあったらよろ
下ではvalueとselectしか出力して無いけど、optionタグ丸ごと出したほうがいいかもって気がしてきた

------------------------------
selected(5);

function selected($value)
{
print 'value=' . $value;
if($_GET["hoge"] == $value)
{
print " selected";
}
}
------------------------------
0617nobodyさん2006/02/18(土) 15:23:05ID:???
メールの件名のやつ?ISO-みたいな感じの奴にエンコードするには
どうすればよかとでしょうか?
mb_send_mail以外で使うためです。
0618nobodyさん2006/02/18(土) 15:41:40ID:???
>>603
php.iniに起因する起動時のWARNINGをキャッチするのは無理でしょ。
Apacheとかのログに一応でるけど。
php.iniをそんなに頻繁に書き換えることないと思うけど?

という上記の意味合いにも取れる質問なんだけど、
本当は下みたいな情報が欲しいの?
http://www.php.net/manual/ja/ref.errorfunc.php
http://www.php.net/manual/ja/function.set-error-handler.php

0619nobodyさん2006/02/18(土) 15:41:40ID:???
>>617
mb_encode_mimeheader
0620nobodyさん2006/02/18(土) 15:44:04ID:???
>>602
鯖エラーの内容をカモン
0621nobodyさん2006/02/18(土) 15:45:55ID:???
>>601
<OPTION value="1"<?php echp ($value==1)? " selected": ''?>>1</OPTION>
<OPTION value="2"<?php echp ($value==2)? " selected": ''?>>2</OPTION>
<OPTION value="3"<?php echp ($value==3)? " selected": ''?>>3</OPTION>
くらいしか…
0622nobodyさん2006/02/18(土) 15:47:30ID:???
>>604
「30回ループ」という仕様が変更頻度の高そうなものなら後者。
パフォーマンス的には前者。
0623nobodyさん2006/02/18(土) 15:49:18ID:???
>>616
optionタグに追加の属性とか入れたくなったときに困るから
俺ならselectedしか出さないようにする。
0624nobodyさん2006/02/18(土) 15:50:50ID:???
>>622
あ、しまった。パフォーマンスについてはforのループ条件次第かも。
06256042006/02/18(土) 16:02:18ID:???
>>624 
ありがとうございました。
変更はないですし前者でやってみます。
0626nobodyさん2006/02/18(土) 16:05:33ID:rgTa0qqQ
フォームから投稿された値がSJISで有るかどうかを判別するにはどうすればよいのでしょうか?
内部文字コードはSJISで、PHP4.4.1を使用しています。
0627nobodyさん2006/02/18(土) 17:14:38ID:???
>>626
単純にその値だけ見て厳密な判定は不可能。
(特定の文字が入力されると判定を失敗する場合がある)
よくある手法としては、hiddenで絶対に誤判定しない文字列を常時入れといて
そいつがSJISになってるかどうかで判定するという手法。
0628nobodyさん2006/02/18(土) 17:25:07ID:???
mb_detect_encodingはどう?
0629nobodyさん2006/02/18(土) 17:41:24ID:rgTa0qqQ
echo mb_detect_encoding($_POST[a], 'auto');
で$_POST[a]にいろいろしていましたが、SJISをうまく判別してくれません。。
hiddenでいれてもだめでした。

半角英数字だとASCII、ひらがなをいれると何も表示されず、iモードの絵文字を入れるとUTF-8になり、
何も入力しないとASCIIです。。
0630nobodyさん2006/02/18(土) 18:09:28ID:???
文字コード判定はあてにするな。
0631nobodyさん2006/02/18(土) 18:16:37ID:???
ていうか、半角英数字のみのSJISとASCIIを区別できると期待するのはおかしいぞ。
hexdumpしてみ。

それにiモードの絵文字ってそもそもSJISの範囲じゃないのでは?
調べたこと無いので違うかもしれないけど。
0632nobodyさん2006/02/18(土) 18:42:42ID:???
誘導されてきました。

Autorank PHPについてご存じの方いますか?
ttp://www.jmbsoft.com/software/arphp/

日本語での検索機能が動かないんです

"サイト"で検索すると

http;//〜Keyword=%A5%B5%A5%A4%A5%C8

というような感じでエンコードされて、画面にも サイト と表示されるのですが、
検索がうまくいっていきません。
文字コードはHTML、DB(MySQL)ともにEUC-JPで運用してます

よろしくお願いします >_<
0633nobodyさん2006/02/18(土) 18:43:52ID:hW4iLyW6
>検索がうまくいっていきません。

検索がうまくいきません でした
他のサイトでEUC-JPで運用しているサイトがあり、
うまくいってるようなのですが原因がわかりません >_<
0634nobodyさん2006/02/18(土) 18:55:35ID:???
>>629
それは多分、php.iniのautoの設定にSJISを入れてないせい。
0635nobodyさん2006/02/18(土) 19:30:25ID:???
>>629
autoじゃなく"SJIS,EUC-JP,JIS,UTF-8"にするとどーなる?
0636nobodyさん2006/02/18(土) 20:09:32ID:rgTa0qqQ
できました!ありがとうございます。

2chはどうやってSJISを見分けているのでしょう?
0637nobodyさん2006/02/18(土) 22:07:41ID:???
>>632ですが、MySQLは全文検索に対応してないんですね Orz

LIKE を使ってスクリプトのクエリ部分をいじってみます

他になにかいい方法ないのかな・・・
0638nobodyさん2006/02/18(土) 22:19:31ID:???
mb_convert_encoding("aiueo","SJIS","auto");
ってさ、mb_convert_encoding()にauto使うと時々失敗しちゃうよな?
0639nobodyさん2006/02/18(土) 22:21:56ID:???
文字コード問題はほんとにやっかい・・・

↑のはMySQLの問題だったとは orz
LIKEで代用 orz
0640nobodyさん2006/02/18(土) 22:25:10ID:???
そらぁまぁしょうがない。
ある集合がどの集合に属するか判定するって言う問題は奥が深ぇと
カンチョールもゆっとる。
0641nobodyさん2006/02/18(土) 22:27:35ID:???
マニュアルのmb_detect_order()のところに、
> auto" は、 "ASCII, JIS, UTF-8, EUC-JP, SJIS"に展開されます
とある。
なので、>>629のような現象が起こるのは至極当然のことかと。
0642nobodyさん2006/02/18(土) 22:47:53ID:???
>>641
>>いや、それだと>>629の状態にはならない。(ひらがなでSJISになるはず)
これって、最近のPHPの仕様が変わったのかWin32版の問題なのかは知らんけど、
"auto"は"ASCII,UTF-8"に展開されるみたいよ。SJISやEUC-JPは判定しない。
試しに
mb_detect_order("auto");
var_dump(mb_detect_order());
ってのを実行すると、結果は
array(2) {
[0]=>
string(5) "ASCII"
[1]=>
string(5) "UTF-8"
}
となるのよ。(PHP 4.3.10 Win32版の場合)
06436422006/02/18(土) 22:48:36ID:???
なんか変なとこに>>入っちゃった
0644nobodyさん2006/02/18(土) 23:35:34ID:VuSKJfnu
$str = '私は$fooです。';
$foo = "田中";

という状況で

$strのなかの$fooの値を反映したい
(つまり、$strの中身を「私は田中です。」にしたい)
のですが、何か良い方法があれば教えて下さい。
0645nobodyさん2006/02/18(土) 23:40:06ID:???
>>620
遅レスすいません。ロック中で処理できず502エラーでタイムアウトしてた感じです。ちなみに一年くらいそのスクリプトを使っていて、このようになったのは初めてです。現在普通に稼働してます。
0646nobodyさん2006/02/18(土) 23:52:04ID:???
>>644
いろんな方法があるけど、どれが良い?
0647nobodyさん2006/02/18(土) 23:52:33ID:???
>>644
○変数は使う前に宣言・初期化
○シングルクォートの中の変数はパースされないので、ダブルクォートを使う
0648nobodyさん2006/02/19(日) 00:02:36ID:???
>>644
evalかereg_replace辺りで
0649nobodyさん2006/02/19(日) 00:03:47ID:???
>>642

array(5) {
[0]=>
string(5) "ASCII"
[1]=>
string(3) "JIS"
[2]=>
string(5) "UTF-8"
[3]=>
string(6) "EUC-JP"
[4]=>
string(4) "SJIS"
}
-------------------------
WinXP
PHP Version 5.1.1
0650nobodyさん2006/02/19(日) 00:05:46ID:???
>>644
少なくとももう少し自分で実行してから質問するべき
0651nobodyさん2006/02/19(日) 00:08:40ID:???
おまいら普段文字列とか使うときシングルクォートとダブルクォートどっち使ってる?
0652nobodyさん2006/02/19(日) 00:12:12ID:???
case by case
0653nobodyさん2006/02/19(日) 00:14:46ID:???
>>645
自分でそんなの再現させたことないから分からんけど、PHPを実行中のApacheスレッドが
途中で異常終了しちゃったりなんかするとflockを解除できずに終わるかも。
flockって通常はプロセス単位で処理してるんでプログラムが異常終了=flockも解除だけど、
CGIと違ってSAPIなPHPみたいに「1個のPHPが異常終了してもApache自体は終了しない」場合では
OSはその終了を検知できないと思うんだよね。
となると、fclose時またはexit時、die時、エラー終了時などにPHPのコアが自動でflockを解除してるはずで、
それが実行できなかった場合にflockがいつまでもかかったままになるのかもしれない。

で、回避方法…定期的にApacheを再起動でもして、不正なflockを掃除するくらいしかないんじゃない?
どう考えてもApacheかPHPが正常動作しなくなった場合くらいしかそんな状態にはならんと思うから
その状態で対策しようったって無理がある気がする。

推測が外れてたらすまそ
0654nobodyさん2006/02/19(日) 00:16:11ID:???
>>649
PHPのバージョンによって挙動が違うのか??
0655nobodyさん2006/02/19(日) 00:23:07ID:???
>>654
PHPはバージョンが違うと恐ろしく変わってくるぜ!
0656nobodyさん2006/02/19(日) 00:34:54ID:???
>>649
試しに最新の4.4.2にしてもやっぱASCII,UTF-8になった…
v4系の問題??
0657nobodyさん2006/02/19(日) 00:38:25ID:???
>>656
mbstring.language = Japanese
を設定してないだけだ。
デフォルトのphp.iniではコメントアウトされてるぞ。
06586572006/02/19(日) 00:39:22ID:???
同じ話が http://ns1.php.gr.jp/pipermail/php-users/2004-June/022899.html にも出てるので参照しれ
0659nobodyさん2006/02/19(日) 00:58:56ID:???
お前らって結構優しいのな
0660nobodyさん2006/02/19(日) 01:14:45ID:???
このスレの半分は優しさで出来ています
0661nobodyさん2006/02/19(日) 01:16:48ID:8QITr0F/
訳あってHTMLに記事を書き込むPHPを書いてweblogのようなものを書いているのですが、
コメントやトラックバックの機能を実装したいと考えています。

管理者が(kakikomi.html)から記事を投稿した際に、(blog.php)でトップページに記事を書き足し、
その日付のHTMLをコメント用HTML(060218.html)として出力します。
コメントはcomment.phpがその日の日付を判別し、コメント用php(060218.html)に書き込まれます。

コメントを付けられたのが記事を投稿したその日ならいいのですが、
comment.phpは日付でコメント用HTMLを探しにいってしまうので、
日付が変わってからコメントをつけると次の日の日記を書いたときにコメントを書いたことになってしまいます。

長文で申し訳ありませんが、何かいい解決方法ありましたらよろしくお願いします。

フリーサーバーを使っていて、広告が入ると著しくデザインが崩れるので、
トップページをphpで構成したいところなんですが、なんとかHTMLで出力したいと考えています。
0662nobodyさん2006/02/19(日) 01:21:29ID:???
状況がよく分からないけどhiddenで記事の日付を渡すとかじゃ駄目なの?
0663nobodyさん2006/02/19(日) 01:22:05ID:???
正規化しろ
06646612006/02/19(日) 01:24:57ID:8QITr0F/
中身はこんな感じになってます
ttp://muroran-it.s60.xrea.com/up/data/207.zip
0665nobodyさん2006/02/19(日) 01:31:24ID:???
>>661
>comment.phpは日付でコメント用HTMLを探しにいってしまうので、
>日付が変わってからコメントをつけると次の日の日記を書いたときにコメントを書いたことになってしまいます。
この部分の仕様にかなり問題があるような気がするけど・・
あるブログの投稿に紐付けされたコメントなら、その関連を情報として残せばいいだけなのでは・・。
設計を考え直すべきなんじゃない?
0666nobodyさん2006/02/19(日) 02:24:57ID:???
結局、>>663の一言に尽きる感じではあるな
0667nobodyさん2006/02/19(日) 02:50:31ID:???
>>661
comment.php?date=060218 みたいに対象日付を付加してリンク張れや
0668nobodyさん2006/02/19(日) 08:26:45ID:???
>>653
そうですね。すごく稀なことだと思いますが、定期的なチェックが大事ですね。
どうもありがとうございました。
0669nobodyさん2006/02/19(日) 11:42:42ID:???
俺さ、最初配列って訳が分からなかったんだよ。
全部変数に入れればいいじゃんってな。
だから$int1 $int2 みたいに書いてたんだよ。
あ、もちろん最初の頃だけだぜ?
でな、とある関数に出会ったんだ。stat()ってヤツだ。
マニュアル見てみたらファイル情報を配列で返すって書いてあるんだよ。
そんなもん使ったことねーし興味ないけど、その時は気分が良かったんだな。
使ってみようと思ったんだよ。
で、いざ使ってみたらこの素晴らしい利便性!
世界が変わったよコードが半分に減ったよミスも減ったよ。

いや、それだけ素晴らしいってことを言いたかっただけだ。
じゃあな、また来るぜ。
0670nobodyさん2006/02/19(日) 11:56:21ID:iKD+hWT/
Hotwired JAPANの記事を読んでたら、変数名を短くするとほんの少し実行速度が
向上するらしいという表記を見つけたのですが、誰か試した人います?
http://hotwired.goo.ne.jp/webmonkey/2004/05/index1a_page2.html
0671nobodyさん2006/02/19(日) 12:06:10ID:???
>>670
結果は見えてる。
インデントや改行まで取り去らないと気がすまなくなる。
0672nobodyさん2006/02/19(日) 12:25:58ID:???
PHPで配列と呼ばれているものは厳密には配列ではない
0673nobodyさん2006/02/19(日) 12:29:59ID:iKD+hWT/
>>671
確かにそうですね。体感速度に影響ないくらいの向上なら、可読性優先の
ほうがいいかも。
0674nobodyさん2006/02/19(日) 12:41:24ID:???
・変数は全て1文字
・コメントなんて邪道なものはすべて取っ払う
・空白文字なんて以ての外、改行も入れずにスクリプトは1行で構成
・実行制御に余分な時間を取られるのでループは全て展開
0675nobodyさん2006/02/19(日) 12:42:27ID:???
一度つまったらデバッグがえらい大変そうだな
0676nobodyさん2006/02/19(日) 12:50:26ID:???
そして変数のissetとか周りで腐るとw
改行だけは省略できね。
0677nobodyさん2006/02/19(日) 13:33:06ID:???
>>674
昔BASICでゲームプログラミングする時はそんな風に仕上げてたな。
普通に記述してから変換ツール通したり。
0678nobodyさん2006/02/19(日) 13:55:11ID:iKD+hWT/
改行くらい入れないとテキストエディタの横スクロールが激しすぎて、生産性
大幅ダウンしそう...
0679nobodyさん2006/02/19(日) 14:12:11ID:???
まあ、大抵の人間はエディタは自動で折り返すようにしてるわけだが。
0680nobodyさん2006/02/19(日) 14:13:00ID:j5wr3rm8
datとかのログファイルを直接見れないようにするにはどうしたらいいんですか?
属性を606から変えたら、プログラムから読み書きできないし・・・
0681nobodyさん2006/02/19(日) 14:13:43ID:???
まあ、普通に作った後に改行を削除すりゃいいと思うんだが。
0682nobodyさん2006/02/19(日) 14:14:47ID:???
>>680
> 属性を606から変えたら、プログラムから読み書きできない
?(´△`) デキルダロ

拡張子をcgiとかにしれ
0683nobodyさん2006/02/19(日) 14:55:13ID:???
確認君や診断くんのようなproxy判定スクリプトを作りたいのですが、参考になるスクリプトはありませんか?
0684nobodyさん2006/02/19(日) 15:02:27ID:???
phpinfo
0685nobodyさん2006/02/19(日) 15:00:20ID:???
>>683
いや、作る段階でそんなこと言ってるようでは
役に立つ判定プログラムは作れないと思うよ?

というか、診断くんそのものをダウンロードすれば
参考どころの騒ぎじゃないだろ?
0686nobodyさん2006/02/19(日) 15:09:48ID:???
JpGraphで、GroupBarPlot内のバーに
隙間を開けたいんだけど、どうしたらいいかな?
BarPlotでSetWidth設定してもダメだった。
0687nobodyさん2006/02/19(日) 16:14:59ID:???
>>680
直接見られたくないファイルは、ドキュメントルートの下に置かない。
0688nobodyさん2006/02/19(日) 16:38:45ID:8orHyj9/
requireで読み込むファイルがSJISの場合、
自動的にEUC-JPに変換して読み込みたいのですが、
どうすればよいでしょうか?
0689nobodyさん2006/02/19(日) 17:11:43ID:iKD+hWT/
requireではないけど、
$line = file_get_contents('file');
$line = mb_convert_encoding($line, 'EUC-JP', 'SJIS');
でいかがでしょう?
0690nobodyさん2006/02/19(日) 17:51:33ID:???
require で読むのが PHP スクリプトが書かれているファイルではないってのは
非常識なコーディングだろ。
普通のファイルは >>689 のように読んでくれよ頼むから。
0691nobodyさん2006/02/19(日) 18:42:18ID:???
>>688
それ、他人が作ったライブラリとかの類?
0692sage2006/02/19(日) 19:06:37ID:iKD+hWT/
1行目
20行目
3行目
っていう内容のtest.txtというファイルの内容を、
1行目
2行目
3行目
というように一行だけ書き換えたいんですが、どうやればできますか。
file_get_contents->preg_replace->file_put_contentsという方法も
考えたのですが、これだとメモリを浪費しそうなので、一行ずつ操作
する方法を教えていただけるとありがたいです。
0693nobodyさん2006/02/19(日) 19:10:05ID:???
>>692
fopen "r"→fopen "w"→whileでfgetsしながらfputs
06946922006/02/19(日) 19:17:53ID:???
早速の回答ありがとうございます。
fopenを違う引数で2回呼び出すわけですね。使ったことがない関数がでて
きたので、これから早速試してみます。
0695nobodyさん2006/02/19(日) 22:49:33ID:QKFjYBJ6
ttp://www.seoup.com/linkact/act4/index.html

拡張子が
index.htmlのファイルでもphp利用可能なの?
htaccessで何かやってるのかな。。
0696nobodyさん2006/02/19(日) 23:02:40ID:???
>>695
何もやってないよ ^ ^
0697nobodyさん2006/02/19(日) 23:16:29ID:???
do{
$i++;
}while($i == 5);←ここで真ならば、特定の動作を行ってからdoに戻る
というようなことは可能でしょうか。
また、代替案もあればぜひご教授お願いいたします。
06986612006/02/19(日) 23:26:20ID:8QITr0F/
皆さんありがとうございます

>>667のようにするのって何て言うんでしょうか?
調べようにもよくわからないのですが・・・・
0699nobodyさん2006/02/19(日) 23:40:10ID:cMtmYVLo
>>698
単なるリンク
0700nobodyさん2006/02/19(日) 23:42:06ID:???
>>697
今いちやりたいことがよくわかりませんが、
無限ループさせたいのでしょうか?

while (1) {
$i++;
if ($i == 5) {
// 処理を記述
}
}

ではだめでしょうか?
07016612006/02/19(日) 23:59:21ID:8QITr0F/
>>699
phpにリンクでURLを渡す(?)
見たいなことなんでしょうか>?
0702nobodyさん2006/02/20(月) 00:08:50ID:???
<a href="./comment.php?date=060218">foo</a>
こういうことじゃないの?
07036972006/02/20(月) 00:16:12ID:???
>>700
ご返答ありがとうございます。
説明が分かり難く申し訳ありません。
無限ループではなく、$i==5が偽になった時点でループを抜けたいのです。
1)doの内容を実行
2a)whileが真ならば"特定の処理"を実行した後doを実行
2b)whileが偽ならば"特定の処理"を行わずにループ終了

御指南いただいたコードですと、ifのところが偽ならばwhileループを抜ける、ということです。
付け加えさせていただきますと、ちょうど下記の動作です。
$hoge = 1;
while ($hoge) {
$i++;
if ($i == 5) {
// 処理を記述
}else{
$hoge = 0; // breakで二重ループを抜けられると良いのですが・・・
}
}
この動作をdo...whileでできないものかと試行錯誤していたのですが、
ふと気づけば希望の動作が完成してしまいましたね・・・
ただ、もう少し綺麗な書き方はないでしょうか。
頼んでばかりで大変申し訳ないのですが、私の力量ですと案が浮かびません。
今一度、よろしくお願いいたします。
07046612006/02/20(月) 00:49:07ID:wo/bPpPB
comment.php?date=060218
        ~~~~~~~~~~~~~~
この部分はcomment.php側にはどのように送られて、
どう処理して受け取ればいいのでしょうか?

0705nobodyさん2006/02/20(月) 00:53:25ID:???
「クエリ」「GET」とかでぐぐれ
0706nobodyさん2006/02/20(月) 01:30:38ID:???
echo $_GET['date'];
0707nobodyさん2006/02/20(月) 01:30:55ID:???
あれPHPってwhile continueないの?やっぱPerlだなw
0708nobodyさん2006/02/20(月) 01:41:27ID:???
>>704
$_GET
0709nobodyさん2006/02/20(月) 02:10:26ID:???
>>695
.htaccessかhttp.confで.html拡張子もPHPであると指定する
0710nobodyさん2006/02/20(月) 02:12:52ID:???
>>698
お前はWebプログラムの基礎の基礎の基礎から1度やり直せ。
つーか、そんなのも知らずにプログラムしようとするな!!
まず1冊でいいからWebプログラム入門の本の頭から読んでみろよ。
そんなんでコメントはともかくトラックバックなんて仕込まれた日には社会の迷惑。
07116972006/02/20(月) 07:20:41ID:???
>>707
示唆していただきありがとうございます。
こうすればいいのですね。これならば最後のループだけ違う動作も行えますね。

do{
$i++;
if($i<=5){
//特定の動作
continue;
}
//最後のループのみで実行される動作
}while($i <= 5);

>>697,>>703の$i==5はすべて$i<=5の間違いでした。
度々申し訳ありません。
0712nobodyさん2006/02/20(月) 08:17:51ID:???
よくわからんが
for($i=1;$i<=5;$i++){
 if($i<=5){
  //特定の動作
  continue; //←なしでもいい
 }else{
  break;
 }
}
じゃだめなの?
07137122006/02/20(月) 08:23:25ID:???
なんか変に書いてしまた・・
for($i=1;$i<=5;$i++){
 //特定の動作
 if($i==5){ //最後の処理 }
}
0714nobodyさん2006/02/20(月) 10:06:25ID:???
同じ条件式を複数書いてると仕様変更時にバグ出しそうだけどな
0715nobodyさん2006/02/20(月) 10:40:46ID:???
$i=0;
while (TRUE) {
 if (++$i<=5)
  echo '途中';
 else {
  echo '最後';
  break;
 }
}
で良さそうな
0716nobodyさん2006/02/20(月) 10:47:48ID:???
わざわざwhileでなくdo〜while使ってるってことは$iはいくつからスタートするか不定なんだと思うが。
0717nobodyさん2006/02/20(月) 12:03:55ID:???
do-whileを使ってるという事は必ず一回はやりたいって事だな?
0718nobodyさん2006/02/20(月) 12:12:10ID:???
そこまで溜まってません
0719nobodyさん2006/02/20(月) 13:45:09ID:???
俺はやりたい
0720nobodyさん2006/02/20(月) 13:52:42ID:???
素敵な会話中にすみません。
ちょと教えてほしいのですがinputのテキストフィールドなどの値を表示させるとき
<input value='<?=$hoge?>'> だと$hogeに'が入っているとおかしくなるし
<input value="<?=$hoge?>"> だと$hogeに"が入っているとおかしくなるし
<input value=<?=$hoge?> style=〜> だと$hogeが空白だとvalue後のタグが値と認識されて
おかしくなってしまうのですがどうしたらよいのでしょうか?
0721nobodyさん2006/02/20(月) 13:59:22ID:???
変数のスペルミスを防ぎたいのですが。。。

変数の宣言を強制する方法はありますか?
0722nobodyさん2006/02/20(月) 14:06:59ID:???
>>720
URLエンコードしなさい。漢字もね
0723nobodyさん2006/02/20(月) 14:08:52ID:???
>>721
----test.php----
変数aに10を入力し、それを変数bに移し変数bを出力する
====source====
error_reporting(E_ALL);
$a = 10;
$b = $c; // 未宣言としてここは防げる。
$c = 10; // ここは防げない。

echo $d; // 未宣言としてここは防げる
----<test.php>----
0724nobodyさん2006/02/20(月) 14:14:30ID:???
>>722 ありがとう
0725nobodyさん2006/02/20(月) 15:02:51ID:???
>>722
URLエンコード??htmlspecialcharsじゃないのか?
0726nobodyさん2006/02/20(月) 15:27:30ID:???
720の始めの一行につぼったw
07276972006/02/20(月) 15:30:36ID:???
なんだか色々とありがとうございます。

>>713
「特定の動作」は、ループの最後の"$i<=5"が真ならば実行し、偽ならば実行せずにループ終了
というようにさせたいのです。
それですと必ず最初に「特定の動作」を行ってしまうので、申し訳ありませんが趣旨とは少し異なります。
>>715
ちょうどその動作です。
綺麗なコードをどうもありがとうございます。
>>716
$i=0と考えていただいて結構です。申し訳ありませんでした。
>>717
最初にdo...whileを使おうと方針を立てただけで、同じ動作が行われるならば特に問題はないです。

do{
//ループ
}while(条件式) ここに条件が真の場合に行われる動作 ;
このような仕様になれば楽なのですけどね。
0728nobodyさん2006/02/20(月) 15:44:16ID:???
>>727
$i=0から開始なら
for($i = 0; $i <= 5; $i ++, 特定の動作) {
}
でいいじゃん
0729nobodyさん2006/02/20(月) 16:05:20ID:???
キーをID、値をPASSになるように連想配列を作りたいのですがうまくいきません。。
ちょこっとヒント頂けませんかoz

$conn=ocilogon("xxx","yyy","zzz");
$sql = "select id,pass from users";

$stmt = OCIParse($conn, $sql);
OCIDefineByName($stmt, "ID", &$dbid);
OCIDefineByName($stmt, "PASS", &$dbpass);
OCIExecute($stmt);

while(OCIFetch($stmt)){
$idpw[$dbid] = $dbpass;
}

OCIFreeStatement($stmt);
OCILogoff($conn);

0730nobodyさん2006/02/20(月) 16:19:35ID:???
環境書き忘れてました apache2.2 oracle9rs2 php5.1.2
簡単なsql文でデータは持って来れてるのは確認したので
配列に格納するところがおかしいとは思うんですが・・・
0731nobodyさん2006/02/20(月) 16:21:01ID:???
>>729
問題なく動きそうな気が駿河…
結果として$idpwの中身ってどういう状態になるんだ?
07327292006/02/20(月) 16:44:05ID:???
ありゃ・・今確認してみたら格納できてました。てことは他のとこか

聞く前にまだ自分にできることあったのに気づかなかったのがセンスなさ過ぎますね(TT
ありがとうございました またしばらく悩んでみます
07336972006/02/20(月) 17:27:15ID:???
>>728
・・・。
自分が情けなさすぎます・・・。
ありがとうございました。
0734nobodyさん2006/02/20(月) 18:07:32ID:???
>>733
Cやれば?
おまいなら3ヶ月ぐらいで初級並みの実力なら超えられそうだが。
0735nobodyさん2006/02/20(月) 18:19:28ID:???
訳わからん。このままPHPでいいじゃんw
0736nobodyさん2006/02/20(月) 18:41:07ID:???
PHPプログラマーになりたいのか、プログラマーになりたいのかで違うな
0737nobodyさん2006/02/20(月) 18:54:32ID:E2kZov7h
PHPでContent-type: text/plain;なページを出すにはどうしたらいいですか?
PHPの最初で header('Content-type: text/plain;'); としてもうまくいきません。
0738nobodyさん2006/02/20(月) 18:56:12ID:???
headerの前で何か出力をすると意味ないよ。
header前でechoとかprintとか使ってない?
0739nobodyさん2006/02/20(月) 18:56:36ID:???
preg_match_allで、n回マッチしたら処理を終了させるよう
なことはできますか?
例)
preg_match_all('([0-9]+?)', '1,2,3,4,5,6,7,8,9', $matches);
この例では5までマッチしたら正規表現による検索を中止したい。
07407372006/02/20(月) 19:02:18ID:???
>>738
> headerの前で何か出力をすると意味ないよ。
> header前でechoとかprintとか使ってない?

使ってないです。
ちなみにheader()の前でheaders_sent()してみるとFalseでした。
php.iniの設定の問題ですかね…
0741nobodyさん2006/02/20(月) 19:04:14ID:???
>>740
改行や空白など一切のデータがheaderの前で出力されていない必要が
あります。
0742nobodyさんNGNG
>>738に補足
<?php の前に(たとえ空行でも)何かあってはならない
0743nobodyさん2006/02/20(月) 19:06:55ID:???
くだらない質問です。

カンマ刻みの「要素,キー」が複数行あるデータをtxtファイルから読み込みasortしたいのですが。
読み込んだファイルから一気に連想配列を作成のしかたを教えてください。

自分では、
$lines = file("test.txt");
で読み込んだあとに、
$i = 0;
foreach ($lines as $value) {
list($a => $b) = explode(",",$lines[$i]);
echo "$a => $b";
$i++;
}
でできるかな…とかおもったんですが無理でした。
勉強中なんですさまじく頭悪い質問だとおもいますがよろしくお願いします。
0744nobodyさん2006/02/20(月) 19:58:21ID:???
>>739
allでは無理。つーかallって言わないだろそれ。
preg_matchはそれを実現するために4.3.3以降でoffset指定ができるようになってるから
ループで回せ。
0745nobodyさん2006/02/20(月) 20:00:30ID:???
>>739
条件にあるループにして途中で
break
die
return
continue
あたりで出来るんじゃね
preg_match_all使ったこと無いけどさ
07467392006/02/20(月) 20:04:30ID:???
回答ありがとうございます。
>allでは無理。つーかallって言わないだろそれ。
うーm、確かに

それでは、ループで回してみます。
0747nobodyさん2006/02/20(月) 20:04:35ID:???
>>745
preg_match_allは一発で全検索結果を返すための関数だよ
0748nobodyさん2006/02/20(月) 20:58:35ID:???
>>743
> list($a => $b) = explode(",",$lines[$i]);
ここで無理せずに
list($a, $b) = explode(〜);
$array[$a] = $b;
にしときなよ。
0749nobodyさん2006/02/20(月) 21:08:16ID:???
>>748
レスありがとうございます。

やっぱ、それしかないんですかねぇ。
問題ないしやっぱりそれでいこうかとおもいます。
回答ありがとうございました。
0750nobodyさん2006/02/20(月) 22:01:47ID:???
利用可能なPEARパッケージを全てインストールしたいんですが、
一発でインストールできるコマンドは無いんですか?
落としたパッケージを一つ一つ入れる方法しか見つかりません。
Fedora core4です。
0751nobodyさん2006/02/20(月) 22:04:06ID:???
綺麗なコードなんて書かなくていい。
見やすいコードを書くんだ。
0752nobodyさん2006/02/20(月) 22:08:30ID:???
綺麗なコードって見やすいコードじゃないの?
それを言うなら「かっこいいコードなんて書かなくていい。分かりやすいコードを書くんだ」だと思う。
バグを生まない鉄則だよね。
07536972006/02/20(月) 22:34:44ID:???
>>734
実はCからPHPに移ったクチでして・・・
今度はVS2005が手に入ったのでC++に挑戦するつもりです。
0754nobodyさん2006/02/20(月) 22:58:13ID:???
タブ区切りのデータファイルの任意の行の任意の列にある文字列を参照して表示するにはどう記述すればいいんでしょうか?

hoge.csv の2行目,6列目の文字列を表示
<?echo
0755nobodyさん2006/02/20(月) 22:59:20ID:???
      ______       ______
     r' ,v^v^v^v^v^il    /          ヽ
     l / jニニコ iニニ!.   /  ジ  き  ぼ   l
    i~^'  fエ:エi  fエエ)Fi  !   ャ  れ  く    l
    ヽr      >   V  !   イ  い  は   l
     l   !ー―‐r  l <.   ア  な       l
 __,.r-‐人   `ー―'  ノ_ ヽ  ン         /
ノ   ! !  ゙ー‐-- ̄--‐'"ハ ~^i \_       _ノ
 ヽ ! ヽ、_     _.ノ  i  \    ̄ ̄ ̄ ̄
ヾV /              ! /.入
0756nobodyさん2006/02/20(月) 23:00:39ID:???
>>750
それってソフトやOSの設定でしょ?
Linux板行けば?
0757nobodyさん2006/02/20(月) 23:05:58ID:???
>>754
$fl = file ("hoge.csv");
$sp = split ("\t", $fl[1]);
$target = $sp[6];
かな。
0758nobodyさん2006/02/21(火) 00:09:51ID:???
>>757
なんで split を使わせるんだ? 正規表現じゃないなら explode で充分
0759nobodyさん2006/02/21(火) 00:26:57ID:???
perl上がりと見た
0760nobodyさん2006/02/21(火) 00:28:32ID:???
>>758
なるほど。
そうだよな。
スマン。
0761nobodyさん2006/02/21(火) 01:46:35ID:???
つfgetcsv
0762nobodyさん2006/02/21(火) 01:54:56ID:???
>>757>>758
ありがおう
>>761
> fgetcsv
csvファイルはタブ区切りでも使えますかね?
0763nobodyさん2006/02/21(火) 01:55:32ID:???
だあああああああめだあああああああああああああ
fgetcsvなんて運頼みの関数使っちゃああああああああ
0764nobodyさん2006/02/21(火) 01:56:44ID:???
マジでfgetcsvは危ないぞ

これ試してみ

"ソ","あああ"
0765nobodyさん2006/02/21(火) 02:49:36ID:???
fgetcsvは、確かにカンマとダブルクォートのデフォルトだと危ないけど、
タブ区切りだけのものとかにこう使うと問題無く使えて便利だよ。
$line = fgetcsv($fp, 1024, "\t", '');
0766nobodyさん2006/02/21(火) 05:12:01ID:???
PHPからZIP圧縮、またはJAR圧縮して標準出力に出力する場合にはどの関数を使えばよいですか?
ZIP解凍関数ならあるのですが…
0767nobodyさん2006/02/21(火) 06:25:49ID:???
>>766
関数はないのではないかな。
execかsystemを使って外で圧縮すればよいかと。
0768nobodyさん2006/02/21(火) 07:13:05ID:???
>>737
どううまくいかないのかわからないが
IEはContent-type無視するから意味ないよ
0769nobodyさん2006/02/21(火) 08:41:11ID:???
>>766
>>469-473
>>767のやり方も、方法のひとつ。
0770nobodyさん2006/02/21(火) 10:26:49ID:9X8UKVFd
SESSIONについて質問します。

ショッピングカートの原型を作っているのですが、
$nameにtestが入っていて送信すると、$_SESSION['test']=$testになるようにし、
header('Location')で次のページで表示します。

再び前のページに戻って今度は$nameにtest2が入っているデータを選択して
送信します。しかし、次のページではtestしか表示されません。

次のページではforを使って、$_SESSION['test']に入っているデータをすべて
出すようにしたのですが、1つしか入らないみたいです。


説明が下手で済みませんが、セッション変数に次々とデータを入れて
すべて表示させるような事はできるのでしょうか?
0771nobodyさん2006/02/21(火) 10:27:36ID:???
間違えました・・・

$nameにtestが入っていて送信すると、$_SESSION['test']=$testになるようにし、

$nameにtestが入っていて送信すると、$_SESSION['name']=$nameになるようにし、
0772nobodyさん2006/02/21(火) 10:34:45ID:???
>>770
>$nameにtestが入っていて送信すると、$_SESSION['test']=$testになるようにし、
>header('Location')で次のページで表示します。
現在の$_SESSION['test']=="test1";

>再び前のページに戻って今度は$nameにtest2が入っているデータを選択して
>送信します。しかし、次のページではtestしか表示されません。
現在の$_SESSION['test']=="test2";

$_SESSION['item'] .= "test1,";
$_SESSION['item'] .= "test2,";
のように買い物籠のリストを作成してみては?
そんで$_SESSION['test1']が買い物かごの内容にすればいいんじゃないかな。
0773nobodyさん2006/02/21(火) 12:25:16ID:???
call_user_func()とcall_user_func_array()について質問なんですが
両者の違いは引数を羅列して渡すか、配列にして渡すかだけですか?
例えば、
function test($var1, $var2, $var3) {
 return $var1 + $var2 + $var3;
}
関数testを呼び出して引数を渡したい場合、
$result = call_user_func('test', $a, $b, $c);
と、
$result = call_user_func_array('test', array($a, $b, $c));
は等しいという認識であってますか?
0774nobodyさん2006/02/21(火) 12:27:14ID:nnE5DkIV
ある文字列が投稿されたら、MySQLで曖昧検索を行って検索結果を出すスクリプトを書いています。
その時に文字列のみをハイライトしようと思い、曖昧検索のため大文字,小文字は両方ハイライトしてもらいたいため

mb_eregi_replace

でやろうとしましたが、特定の文字列では正規表現されないのでエラーになります。(当たり前ですけど)

どうすれば英数小文字,大文字でも正確にハイライトできるでしょうか??

PHP4.4.2を使用しています。
0775nobodyさん2006/02/21(火) 12:49:03ID:???
>>773
call_user_func_arrayの方は引数は必ず二つでなくてはならない。
'function name'と'parameter(mixed)'
call_user_func はいくつでも引数を指定できる。

例えば
function hoge($a, $b)と
function hogehoge($a)
を使い分けたい場合は
call_user_funcでは引数の数が合わなくなってしまいますが、
call_user_func_arrayを使えば
call_user_func_array ('hoge', array('a_var', 'b_var'));
call_user_func_array ('hogehoge, array('a_var'));
とできるので、call_user_func_arrayの方が柔軟性があると言えるでしょう。
0776nobodyさん2006/02/21(火) 12:53:23ID:???
>>774
preg_match_all使ってみては?
例文としては。
<?php
$a = "abcdefg/hijklmn/opqrstu/vwxyz";

preg_match_all ("<[^/]*>i", $a, $b);
print_r ($b);
?>
07777732006/02/21(火) 13:09:52ID:???
>>775
丁寧にありがd
call_user_func_array()の方が見栄えが良くていいな。書き換えるか。
レスサンクス。
07787742006/02/21(火) 13:24:41ID:???
レスありがとうございます。

preg_match_allは始めてみましたがいまいち使い方がよくわかりませんでした。


とりあえずquotemeta()で一時的に対処しました。
0779nobodyさん2006/02/21(火) 13:35:07ID:???
>>778
一時的っつーかそれが正解だと思う。
0780nobodyさん2006/02/21(火) 15:18:51ID:???
$hoge が配列かどうかってどうやって調べるんだっけ?
0781nobodyさん2006/02/21(火) 15:26:29ID:???
is_array
0782nobodyさん2006/02/21(火) 15:32:01ID:???
>>781
アリガトウデース
07837742006/02/21(火) 17:39:23ID:nnE5DkIV
やはり実稼働してみてもだめでした。。
エラーログには
PHP Warning: mb_eregi_replace(): mbregex compile err: premature end of regular expression in...
という記録が残されているのですが、どのような文字列が投稿されてるのかも解らず困ってます。。
0784nobodyさん2006/02/21(火) 17:47:54ID:???
>>783
エスパー呼んでこようか?
とりあえずどういう風に使ってるのかを書いてくれ。
0785nobodyさん2006/02/21(火) 17:48:24ID:???
一時的なものと割り切って、入力内容もログ吐いちゃえば?
入力された時刻を合わせて記録しとけばエラーログと突合せもできるだろ。
0786nobodyさん2006/02/21(火) 17:55:50ID:???
php.iniのmbstringの設定がおかしいだけなんでねーの
07877742006/02/21(火) 18:01:28ID:nnE5DkIV
$out=mb_eregi_replace(quotemeta($str),"<Font Color=\"#FF0000\">\\0</Font>",$out);

で使用しています。php.iniは

mbstring
Multibyte Support enabled
Japanese support enabled
Simplified chinese support enabled
Traditional chinese support enabled
Korean support enabled
Russian support enabled
Multibyte (japanese) regex support enabled

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding SJIS SJIS
mbstring.language neutral neutral
mbstring.substitute_character no value no value
となっていて、imodeでも使えるようにしているのでSJISコードです。

とりあえずログ吐かせてみます。
07887742006/02/21(火) 18:14:39ID:nnE5DkIV
原因の文字列が解りました。

"ー"

でした。
0789nobodyさん2006/02/21(火) 18:21:15ID:???
SJISだと、「ー」の2バイト目が [ と重なるんでそのままだとまずいんだがどうか
「ゼ」とかどうよ
07907742006/02/21(火) 18:24:02ID:nnE5DkIV
だめでした。。
おっしゃるとおりです。
0791nobodyさん2006/02/21(火) 18:31:24ID:???
mb_stringがあやしいってことか。
07927742006/02/21(火) 18:42:15ID:???
初めはstr_replaceで対応していたのですが、英大小文字に対応できなかったのでmbを使うようになりました。

ただこうなるとは思わず、ちょっとやっかいです・・
0793nobodyさん2006/02/21(火) 18:43:04ID:???
>>787
> mbstring.language neutral neutral
これJapaneseに設定してみて
0794nobodyさん2006/02/21(火) 18:49:01ID:???
mbstring.language Japanese Japanese
となりましたが、やはりエラーです。。

んー困った。。。
0795nobodyさん2006/02/21(火) 19:02:01ID:???
>>783
$result = mb_ereg_replace ($replace_str, "<Font Color=\"#FF0000\">\\0</Font>", $input, "ip");
と後ろに"p"をつけてみて。
mb_ereg_replace(x,y,z,"i");と
mb_eregi_replace(x,y,z);は同じ動作するから。
0796nobodyさん2006/02/21(火) 19:05:29ID:???
追記.
ここの情報がもしかしたら有用かもしれない。
ttp://ns1.php.gr.jp/pipermail/php-users/2002-November/011727.html
ttp://fjsk.s39.xrea.com/item_340.html

正規表現が停止する文字が入ってるからかもね。
[などは\でエスケープしてあげるといいかも。
07977742006/02/21(火) 19:10:25ID:???
>>795
かわんないです。。
>>796
読んでみました。pもつけてるのにな。

あと、mbでやると"ゾ"を代入しても変換されないことに気づきました。


str_replaceで英大小文字も変換できるだけでいいのに・・・
0798nobodyさん2006/02/21(火) 19:11:23ID:???
こんばんは、よろしくお願いします。
このサイトのソースを見ながら、フォームからアクションで動作するプログラムを作っていたのですが
ttp://www.komonet.ne.jp/~php/program/bbs/chap1.htm

Array
(
[action] => regist
)
$_POSTではこのように返ってきているのですが、if文の後の処理がされません。
実際は、掲示板を作りたいわけでなくラジオボタンが全て選択されているときにだけ、次のページor次の処理へというようにしたいのですが。
よろしくお願いします。

ファイル名test.php


<FORM ACTION="test.php" method="POST">
 ・
 ・
 ・
<INPUT TYPE="SUBMIT" VALUE="書き込み/更新">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="regist">
 ・
 ・
if($action == "regist"){
  〜
}
0799nobodyさん2006/02/21(火) 19:15:14ID:???
>>798
スーパーグローバル変数を調べてごらん。
$action = $_POST['action'];
で$action埋めてなくちゃif文は実行できないよ。
0800nobodyさん2006/02/21(火) 19:17:43ID:???
>>795-796
おまえ途中の話を全然読んでないだろ…
>>794
mbstringの問題じゃなく、quotemetaがマルチバイトに非対応なせい。
mb_ereg_replace使ってマルチバイト対応のquote処理を自前でやるか
SJISやめてEUCに変換してから検索するとかしないとダメかもな。
0801nobodyさん2006/02/21(火) 19:24:36ID:???
>>798
そこのサイトのプログラムは古くて、ほとんどの場合、そのままでは動作しない。
というか$_POSTの存在まで気付いときながら何故そんな旧時代のサイトを参考にしてるんだ。
0802nobodyさん2006/02/21(火) 19:55:48ID:???
>>801
返信ありがとうございます。

そうなのですか。

アクションリスナーでnullが返ってきたらページを移動させない。
みたいなニュアンスで作れるのかなと前途記述したサイトをみてやってみたのですが。
$_POSTはすでに使用していて、別ページにとんだときにラジオボタンの状態に応じた処理をつくりました。
その前のページでのラジオボタンのチェックミスがあったときの処理についてアドバイスをください。
0803nobodyさん2006/02/21(火) 19:57:54ID:???
>>802
ごめん。意味不明。
0804nobodyさん2006/02/21(火) 20:09:17ID:???
>>802
ヒント:Javascript
0805nobodyさん2006/02/21(火) 20:13:21ID:???
>>803
すいません。

ラジオボタンによる選択肢を2つ用意したとして、1つに記入ミスがあったとする。
実行ボタンを押しても次のページに飛ばず再入力を求めるようなものを作りたい。

if(入力ミスがあったら?){

}
をどのように記述すればいいかがわかりませんでした。

javaの場合だと
アクションリスナーでアクションをキャッチできるのですが。
phpの場合だとformの実行ボタンを押した、という状態をどのように感知するのかがわかりません。

調べてたら、
if(count($_POST) > 0){
でできるかもっぽいことがわかったのでためしてみます。

>>804
なるほど…
でも、勉強を含めて覚えてる最中なのでできれば妥協はしたくなかったんです。

見苦しい質問ですいません。
0806nobodyさん2006/02/21(火) 20:24:28ID:???
>>805
勉強も十分必要だが、適材適所を見極める目も養ったほうがいいよ。
コードを組めるようになったのに、汚いコーディングしかできなくなると自分で大変だから。
0807nobodyさん2006/02/21(火) 20:27:15ID:???
>>806
そうですね、ありがとうございます。
0808nobodyさん2006/02/21(火) 20:38:14ID:???
>>805
PHPがどこで実行されるのかつーと、鯖で動くんだなこれが。
鯖側で動くJavaのJSPやServletなんかも鯖で動くんだな。
一方、JavaScriptやAppletなんかは、ブラウザ側で動くことになる。

普通はこんな感じになるんじゃないかな。
1. JavaScriptで入力チェック、okであれば 2.へ。(JSが嫌いな人は 1.は無し。ブラウザ側)
2. PHPで入力チェック後、エラーメッセージなり既入力値なり何なりを付け足したHTMLを出力。(鯖側)

ちょいと変わり物だと、Ajaxを使うのもありかな。
0809nobodyさん2006/02/21(火) 21:10:40ID:???
>>794
mbを使わない
preg_quote
など。ただしこれを使ってもまた別な問題が発生する。
特に理由がなければEUCで書いて出力だけSJISにする方が早い。
0810nobodyさん2006/02/21(火) 21:36:24ID:???
>>809
など、というかその組み合わせだな。

>>797
1.mb_eregを使うならエスケープは自力でやる
2.quotemetaやpreg_quoteを使うならeregかpregを使ってmb_eregは使わない

mb_eregじゃなければquotemetaやpreg_quoteでSJISが相手でも正しくクオートできるが、
その代わり1文字のSJISコードなどを正常にマッチできる保障はなくなる。
ま、元々がstr_replaceを使ってたって言うんならeregi_replaceでいいんじゃないの?
0811nobodyさん2006/02/21(火) 21:38:41ID:???
>>805
> phpの場合だとformの実行ボタンを押した、という状態をどのように感知するのかがわかりません。
type=hiddenで特定のデータを埋め込んでおいてそのデータが送信されたかどうかをチェックするか、
type=submitにnameをつけてそいつの送信の有無を確認する。
08127982006/02/21(火) 22:02:00ID:???
>>811
なるほど、ということは。

ファイル名test.php

<FORM ACTION="test.php" method="POST">
 ・
 ・
 ・
<INPUT TYPE="SUBMIT" VALUE="実行">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="regist">
 ・
 ・
if($action == "regist"){
  〜
}

というプログラムで$_POSTが

Array
(
[action] => regist
)

と返ってきていてif文内の処理がされないのは、別の部分の記述ミスということなのかな。
あと、>>805さんの2個目のやり方だと。
<INPUT TYPE="SUBMIT" VALUE="実行" NAME="id">

if($id == "実行"){〜}
という感じですかね?もう少し勉強してから出直してきます。
0813nobodyさん2006/02/21(火) 22:05:32ID:???
if($_POST['action'] == "regist"){
  〜
}
0814nobodyさん2006/02/21(火) 22:06:17ID:???
>>812
ここはお前のメモ帳じゃないんだ。
ちゃんとAN HTTPDやApacheとPHPを入れて自分で実践してくれ。
0815nobodyさん2006/02/21(火) 22:06:37ID:???
>>812
そんなに $_POST['action'] や $_POST['id'] を嫌ってあげなくてもいいと思うのよ
0816nobodyさん2006/02/21(火) 22:07:53ID:y3MPaFDb
なぜ堀江もんが送ったとされるメールの、ヘッダを調べないでうだうだやってるんですか?
0817nobodyさん2006/02/21(火) 22:07:59ID:???
extract($_REQUEST)最強伝説
0818nobodyさん2006/02/21(火) 22:14:50ID:???
>>814
ごめん
何度か自鯖でためしてたんですが、参考にしてたサイトのやりかたが古かったようで。
いまいち使い方がわかってなかったようです。

>>813
thx
0819nobodyさん2006/02/21(火) 22:37:20ID:???
サンプルスクリプト眺めてるとPOSTやGETを展開してるのが多いけど、そのまま使っても問題ないですよね?
0820nobodyさん2006/02/21(火) 22:44:30ID:???
展開ってのはextractって事?
0821nobodyさん2006/02/21(火) 23:28:23ID:???
extractしてるのは脆弱性だいすきっ子だから。
0822nobodyさん2006/02/21(火) 23:29:02ID:???
>>820
それもありますけど

$user_id = $_POST['id']

みたいなかんじで別の変数に入れてたり。
0823nobodyさん2006/02/21(火) 23:30:08ID:???
例えばどういった問題が発生すると思うの?
0824nobodyさん2006/02/21(火) 23:38:46ID:???
>>823
特にそういうのは無いんですが何となく気になったので。
0825nobodyさん2006/02/21(火) 23:41:49ID:???
>>818
参考にするサイトは公式マニュアルが一番。
0826nobodyさん2006/02/21(火) 23:59:45ID:???
extractは極力使わないほうがいいと思います。
例えば、

hoge.php?_SESSION[user_pw]=hogehoge

って形で送られてきたとします。これを

extract($_GET)

しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。

もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。

それを避けるために

extract($_GET, EXTR_SKIP)

ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。

extract($_GET, EXTR_PREFIX_ALL, "get")

と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0827nobodyさん2006/02/22(水) 00:42:12ID:???
>>826
それコピペ?
0828nobodyさん2006/02/22(水) 00:58:05ID:???
>>826
次スレのテンプレに採用
0829nobodyさん2006/02/22(水) 03:10:45ID:???
よーは、XSSとか、SQLインジェクションとかを気にしてるんだろ。
みんな分かってるくせに。

どんな時でも値チェックは基本。
時には正規表現も使う。これでいいか?
0830nobodyさん2006/02/22(水) 06:28:29ID:???
値チェックの例あげてもらっていいですか?
htmlspecialcharsに通すだけにしてるんですけど、
それだけじゃ足りないでしょうか?
0831nobodyさん2006/02/22(水) 07:41:49ID:???
>>830
足りるケースもあるが、そのデータの入力の自由度が高い場合は足りない。
0832nobodyさん2006/02/22(水) 08:42:33ID:???
>>830
値チェックにもいろいろあると思うが・・。
数字チェックや全角チェック、SQLに入れる場合のチェック等
0833nobodyさん2006/02/22(水) 09:13:49ID:???
特にWEBプログラム,PHPに特化した話じゃないと思うんだよな、値の妥当性チェックって。
やってて当たり前っつーか。
0834nobodyさん2006/02/22(水) 09:40:06ID:???
値の妥当性チェックはだいたいわかるけど、
どういうことを入力されたらXSSやSQLインジェクションに繋がるかがわからない・・・
赤マンモス本しか読んでないから、セキュリティ関係の本も読んだほうがいいのかな。
0835nobodyさん2006/02/22(水) 10:39:33ID:???
>>834
ttp://64.233.179.104/search?q=cache:LgahQDd3smIJ:www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.html+sql+%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&hl=ja&gl=jp&ct=clnk&cd=1
ググればいくらでもあるだろ
0836nobodyさん2006/02/22(水) 10:40:13ID:OxTvy2cr
PHPでepsファイルを生成するのは可能ですか?
0837nobodyさん2006/02/22(水) 10:49:53ID:/RILhY7o
はじめまして。
個人的に携帯専用の求人情報サイトを作りたいと
思っていますが、
PHPの知識は皆無ですので、
システムが構築できません。
システムの参考HPはhttp://www.jwpc.jp/
です。
どなたか、安く作成してくれる方、
または安く作成してもらえるところはないでしょうか?

メールを記載しますので
onm_2006@mail.goo.ne.jp
お返事ください。
システムの機能に関しては詳しくお返事しますので
どうかよろしくお願いします。
0838nobodyさん2006/02/22(水) 10:55:15ID:???
>>837
個人的に、話の最初から「安く」と言ってくる仕事で
クライアントが期待する金額が妥当な価格であった試しがない。
話の中で優先度の高い条件のひとつに、
予算(安く)が出てくる事は当たり前だが。
0839nobodyさん2006/02/22(水) 11:02:10ID:???
>>837
SOHO系のスレッドにでもいって、
そこで頼んでみたほうがいいと思うよ。
仕事がない暇だーって言ってる人もいたし。
あとそういった用途にはちょっとPHPは不向きかもね。
0840nobodyさん2006/02/22(水) 11:07:33ID:???
>>837
システム参考とのサイトがなぁ…ネタッぽ杉
「求人情報サイト」とかいって作ったら、
いつの間にかカスタマイズされて
出会い系サイトに流用されそうなオカン

>>839
「そういった用途」って何?
0841nobodyさん2006/02/22(水) 11:26:07ID:???
>>840
PHPは処理速度が遅いから、
たくさんのリクエストを同時に抱えると極端に遅くなる可能性がある。
っていうこと。
0842nobodyさん2006/02/22(水) 11:27:20ID:???
>>840
たくさんてどれくらい?
だいたいの目安とか。
0843nobodyさん2006/02/22(水) 11:31:04ID:???
phpの知識ないのになぜここにきたのか理由がわからん
0844nobodyさん2006/02/22(水) 11:31:17ID:???
PHPって処理速度遅いんだ。何と比べてるんだろ。
0845nobodyさん2006/02/22(水) 11:34:15ID:???
>>841
では、どんな言語を使ったら良いのでしょう?
0846nobodyさん2006/02/22(水) 11:41:56ID:???
Java最強
処理速度にこだわるだけならCとかもいいんでね?
インタプリタだからPHPの処理が遅いのは仕方がない。
ってここなんのスレだっけ?
0847nobodyさん2006/02/22(水) 11:42:28ID:???
>>836
epsってただのテキストファイルじゃなかったっけ?
epsを出力するエンジンがあるのか?って質問かもしれんが…
0848nobodyさん2006/02/22(水) 11:44:19ID:???
>>846
> インタプリタだからPHPの処理が遅いのは仕方がない。

2回目以降は遅くないって聞いたことある。
0849nobodyさん2006/02/22(水) 11:44:35ID:???
>>843
おまいのメール欄も理由がわからん
0850nobodyさん2006/02/22(水) 11:49:46ID:???
例えば以下の場合
<?for(〜){?>
 <tr>
  <td>〜</td>
 <?for(〜){
  処理a?>
  <td></td>
 <?}?>
 </tr>
<?}?>
とか書いているのですがもっと綺麗に書く方法はありますか?
で、こういう場合上みたいにtdの頭をそろえた方がいいのか?
<td>と<?の頭をそろえた方がどちらが良いのでしょうか?
0851nobodyさん2006/02/22(水) 11:51:11ID:???
>>850
printとかは使わないポリシー?
0852nobodyさん2006/02/22(水) 11:55:37ID:???
Smarty を使うとか
08538502006/02/22(水) 12:01:03ID:???
>>851
前echo使いまくってたらデザイナーの方に
見にくいって怒られたwので
使い分けしています。
0854nobodyさん2006/02/22(水) 12:02:42ID:???
>>850
<table>
<?php
for (;;) {
 echo "<tr><td>" . 〜 . "</td>";
 for (;;) {
  処理a
  echo "<td></td>";
 }
 echo "</tr>";
}
?>
</table>

そもそもそこまで入れ子にしない方がいい。
だけど気になるので分かる人俺にもついでにおせーて。
0855nobodyさん2006/02/22(水) 12:03:53ID:???
>>848
中間コードコンパイル後の実行処理もJavaやPerlに比べて結構遅いよ。
1回目がめちゃ遅いんであって、2回目以降でも決して速くはない。
0856nobodyさん2006/02/22(水) 12:09:48ID:???
>>853
デザイナーと分業してるんなら、>>852 じゃ無いが、テンプレートエンジン使えば?
Flexy とかもあるぞ。
0857nobodyさん2006/02/22(水) 12:20:58ID:???
>>853
これが俺のデザインなんです。
って言ってみようぜ。
俺はお前のデザイン分からんように、お前も俺の知的フィールドは理解できんだろ。って

クビは覚悟だな。
0858nobodyさん2006/02/22(水) 12:27:45ID:???
>>853
ってか、それ以前にメ欄なんとかしろ
08598502006/02/22(水) 12:53:19ID:???
>>854 ありがと。
>>856 テンプレートエンジンか・・使ったことないんでちょっと調べてみます。
>>857 それじゃ進歩しないじゃんw
0860nobodyさん2006/02/22(水) 13:10:35ID:???
>>829
extractを使うと初期化しないで使っている変数がある場合や、
extract以前に処理した変数の値が任意に設定できるため、
XSSやSQLインジェクションなどわかりやすい物だけではなく、
もっとわかりにくい論理的破綻すら招く。
デバッグはしにくいし、どこでどう転んで脆弱性を生み出すか検討するのも大変になる。
ならば、extractを乱用するのは避けるべきであるってことだ。
見通しの悪いコードは書かないのは基本。
0861nobodyさん2006/02/22(水) 13:25:58ID:???
>>859
こっちが進歩するだけが世界じゃない、
向こうが進歩する事もまた世界の一つだ。

>>860
昔から気になってたんだけど、Let's PHP
あれはどうなん?
extract使ってるけど。
0862nobodyさん2006/02/22(水) 13:31:17ID:???
>>861
register globals問題にとりあえず対応するためにやってそのまんまだな <LetsPHP
0863nobodyさん2006/02/22(水) 13:32:54ID:???
>>861
諸悪の根元
0864nobodyさん2006/02/22(水) 13:55:20ID:???
>>863
> >>861
> 諸悪の根元

(・ω・;)ω・;)・;) )...マヂ??
レッツPHP!を参考に、つい先日から勉強を始めたばかりなのですが・・・。

ええextractも「これが基本かっ!」てな感じで使ってました・・・。
0865nobodyさん2006/02/22(水) 14:05:25ID:YzTdS2nd
スレ違いだったらごめんなさい。

windows server 2003でIIS6.0を使用してます。
PHP4.4.2をインストールし、nucleusでblogを作成したところ、
「エラー発生アプリケーション w3wp.exe、バージョン 6.0.3790.1830、エラー発生モジュール php4isapi.dll、バージョン 0.0.0.0、エラー発生アドレス 0x00002443」
とアプリケーションログに記録され、表示できなくなりました。
どうやら、PHP4.4.2のバクのようで、STABLE版の使用で解決するらしいのですが、STABLE版はIISで使用できるのでしょうか?
また、設定方法等、解説しているサイトをご存知でしたら、ご教授願えませんでしょうか?

よろしくお願いします。
0866nobodyさん2006/02/22(水) 14:07:18ID:???
各種処理の結果を表示するhtmlのテンプレートを_template.htmlとして用意し、
それを利用してブラウザに情報を挿入したhtmlを表示させるにはどうすればよいのでしょうか?
今までは表示用のhtmlを、あとから情報を挿入したい部分毎に細切れにしたものを変数に入れておき、
情報を挟みつつ順番につなげてからechoで出力していたのですが、
デザイン面の変更にかなり手間がかかっていました。

そこで次に試してみたのは、
_template.htmlの情報を挿入したい部分に{$hoge}と入れておき、
$hoge = "output test";
$output = file_get_content("_template.html");
echo $output;
としてみたのですが、ブラウザにも「{$hoge}」とそのまま表示され、$hogeに格納した文字列は表示されませんでした。
たとえば$output = "テスト{$hoge}";とやると$hogeの内容が表示されます。
どうすれば_template.html中の{$hoge}のような部分に変数の内容を表示させることが出来るのでしょうか?
よろしくお願いします。
0867nobodyさん2006/02/22(水) 14:09:36ID:???
>>865
スレ違い。こっちで
http://pc8.2ch.net/test/read.cgi/php/1140027592/145
0868nobodyさん2006/02/22(水) 14:13:45ID:???
>>864
あそこは凄いね。ある意味勉強になるよ。
SQLインジェクションとかがやり放題なスクリプトとか放置されてるし
(確かここで指摘されて知ったんだが)
0869nobodyさん2006/02/22(水) 14:16:36ID:???
>>866
スレ違い。こっちで
http://pc8.2ch.net/test/read.cgi/php/1118799352/
0870nobodyさん2006/02/22(水) 16:51:33ID:25ErppZd
print関数内の変数を全て htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?

print関数内の変数名の全てを htmlspecialchars($hoge) のように変更すれば良いのですが、
それだとコードが汚くなってしまうので・・・。

よろしくお願いします。
0871nobodyさん2006/02/22(水) 16:54:39ID:???
apacheの最新版と PHP 5.1.2 の最新版をソースをDLしてコンパイルしてインストールしました。(OSはLinuxです)

それで正常に動作しているのですが、make uninstall には対応していないようですので、
例えば新たに PHP 5.1.3 が公開された場合には、どうやってアップグレードするのがよいのでしょうか?

1. Apacheの設定ファイル httpd.conf から 「LoadModule php5_module modules/libphp5.so」 を削除
2. Apacheの再起動
3. make install 時に作成されたファイルを全部手動で削除(rm, rmdirコマンド)
4. 新しいバージョンを落としてきてコンパイル、make install
5. Apacheの再起動

といった手順で問題ないでしょうか。
0872nobodyさん2006/02/22(水) 16:58:14ID:???
>>870
ソース内の「print」を一括置換で、
「$tempdata .=」に変えておいて、
処理の最後で
print htmlspecialchars($tempdata);
0873nobodyさん2006/02/22(水) 17:02:31ID:???
>>870
ob_start()で出力内容を全部バッファに格納しちゃって
プログラムの最後でprint htmlspecialchars(ob_get_contents())ってのはどう?
0874nobodyさん2006/02/22(水) 17:03:03ID:???
function hoge($str){
print htmlspecialchars($str);
}
とか作って
hoge($str)で読み込ますのは駄目?
0875nobodyさん2006/02/22(水) 17:10:54ID:???
>>868
高木さんも、あのサイト批判したらいいのに。
個人サイトだけど、公開してGoogleランクが非常に高いのは責任あるだろって。
(責任云々は無茶だけど。効果の問題として)
0876nobodyさん2006/02/22(水) 17:14:56ID:???
>>872
print $a,$b,$c; とか,でパラメータが渡されてるパターンの話だから、
それだと無理。,→.を追加ってのもスマートじゃないので、無しにしようよ
0877nobodyさん2006/02/22(水) 17:17:52ID:???
>>876
お前は、>>870か?それともエスパーか?

>>870のどこに
>print $a,$b,$c; とか,でパラメータが渡されてるパターンの話
なんて記述があるんだ?
0878nobodyさん2006/02/22(水) 17:20:59ID:???
>>871
make cleanしてから新しくinstallする
08798702006/02/22(水) 17:22:39ID:???
皆様ご回答ありがとうございます。

>>876は私ではありません。

条件が不足していて申し訳ありませんでした。
「print関数内の変数を全て htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?」ではなく、
「print関数内の変数全てのみを htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?」です。

つまり、
print "<strong>貴方のIPアドレスは" . $hoge . "です。</strong>"; となっている場合に
変数以外の部分の <strong> はエスケープせずに、変数である $hoge をエスケープしたいと考えています。
0880nobodyさん2006/02/22(水) 17:29:38ID:???
>>879
ま、普通は出力用変数$hogeに値を代入する時点でやっちゃうね

0881nobodyさん2006/02/22(水) 17:31:04ID:???
>>878
make clean は
make時に作成された一時ファイルの削除でしょ、全然違うと思うけど。

# make deinstall
# make uninstall
などが提供されている場合もあるけど、phpだとそれがない。

従って手動でファイル消すしかないっしょ
0882nobodyさん2006/02/22(水) 17:57:21ID:???
>>875
知らないだけかもしれんし、突っ込みどころ大杉で
やらないだけかもね。

>SQLインジェクションとかがやり放題なスクリプト

なんて、たいていの入門書がそうなってるし。
0883nobodyさん2006/02/22(水) 18:20:14ID:???
PerlのKENT WEB
PHPのレッツPHP
0884nobodyさん2006/02/22(水) 18:21:19ID:???
$c = array_map( null, $a, $b ) の逆関数ってそれぞれarray_filterするのがベストでしょうか?
0885nobodyさん2006/02/22(水) 18:21:30ID:???
いちいち消さなくていいじゃん
0886nobodyさん2006/02/22(水) 18:25:01ID:???
レッツPHPは、PHP初期の普及には役立ったが、
今となってはかなり古くて、汚いコードに見えるね・・・。
0887nobodyさん2006/02/22(水) 18:25:14ID:???
>>871
checkinstallでパッケージ作ってアンインストール
0888nobodyさん2006/02/22(水) 18:29:24ID:???
>>886
よくあるように、
「既にその役目を終えたと判断し、閉鎖させていただきます」
みたいな潔い幕引き出来んもんかね・・・
08898712006/02/22(水) 18:30:04ID:???
>>887
なるほど。
それは便利ですね。
ありがとうございます。
08909002006/02/22(水) 18:49:20ID:???
XML-RPC API を使い、Movabletype への エントリークライアントを作っています。
metaWeblog.newMediaObject でフォームから画像をアップロードしたいのですが、
アップロードされたファイルのサイズが1.5倍程に膨らんでしまいます。
以下、ソースになります。よろしくお願いします。PHP 4.3.11

<?php
require_once("XML/RPC.php");
$GLOBALS['XML_RPC_defencoding'] = "UTF-8";
$mt_host = "host名";
$mt_xmlrpc_path = "Movabletypeの mt-xmlrpc.cgi へのパス";
$mt_user = 'user';
$password = 'pass';
$c = new XML_RPC_client($mt_xmlrpc_path, $mt_host, 80);
$appkey = new XML_RPC_Value('', "string");
$username = new XML_RPC_Value($mt_user, "string");
$password = new XML_RPC_Value($password, "string");
$blogid = new XML_RPC_Value("1", "string");
08919002006/02/22(水) 18:50:02ID:???
if($Myfile){
$UPLOAD = fopen($Myfile, "r");
$image = fread($UPLOAD, $Myfile_size);
fclose($UPLOAD);
$image64 = new XML_RPC_Value(chunk_split(base64_encode($image)),'base64');
$imageName = new XML_RPC_Value($Myfile_name, "string");
$Params = new XML_RPC_Value(array('bits' => $image64, 'name' => $imageName), 'struct');
$message = new XML_RPC_Message('metaWeblog.newMediaObject', array($blogid, $username, $password, $Params));
$result = $c->send($message);
$filepath = XML_RPC_decode($result->value());
echo $filepath{'url'};
exit();
}
?>
<html><body>
<form method="post" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data">
<input type="file" name="Myfile">
<input type="submit" value="SEND">
</form>
</body></html>
08928902006/02/22(水) 18:51:03ID:???
すみません、900ではなく890でした。
0893nobodyさん2006/02/22(水) 19:32:14ID:???
PHP勉強始めて2週間の駆け出しです。
みなさんにお聞きしたいのですが、どうやってプログラム勉強されたのですか?
PHPが初のプログラム言語(って言っていいのかな?)なんで戸惑ってます。
ひたすらサンプルとか拾ってきて勉強したりするんでしょうか?

○日で覚える系の参考書を一通り手打ちして、連想配列ってのがあるんだぁ
など知ったレベルです。
デザイナーなので、職業プログラマになるつもりは無いのですが
最近PHPに触れる機会があり、興味を持ったので勉強しています。

助言を頂けたらうれしいです。
よろしくお願いします。
0894nobodyさん2006/02/22(水) 19:48:54ID:???
>>893
ローカルに環境を作り、自分で書いてみるのが一番です。

サンプルを真似して書いてみるのもいい勉強になると思います。
(簡単なチャットや、レス無掲示板などいい勉強になると思います)
慣れてきたら、ただ書き写すだけではなく、
値を変えてみるとか、自分なりに色々いじってみるといいでしょう。

サンプルでわからない単語・関数が出てきたら、
公式のマニュアルを参照するのが良いでしょう。
それを読んでわからなければここで質問すればいいだけです。

サンプルに慣れてきたならば、
今度は一から自分で作ってみたいと思うようになります(多分)
簡単なプログラム(チャットとかでなくてもいいと思います)を
作れるようになる頃には、
自分なりの勉強方法が確立できていると思いますよ。

環境だけはローカルに作りましょう。
(Googleで検索するとインストールの方法がいろいろ出てきます)
レンタルサーバーなどで実験するのはただの迷惑なので。

以上、個人的な見解でした。
(個人差はあると思います)
0895nobodyさん2006/02/22(水) 19:58:03ID:???
>>894
ありがとうございます。
一応ローカルにapache入れて環境は作ってあります。
いろんな所からサンプル拾って真似てみます。
とりあえずチャットに決めました。

また書込み機会があればよろしくお願いします。
それでは失礼します。
0896nobodyさん2006/02/22(水) 20:04:00ID:???
KENT WEBのYYBBSだっけ?あれのソース酷かったよなぁ。
今のはどうか知らんけど。
0897nobodyさん2006/02/22(水) 20:05:37ID:???
>>893
書き込もうとしたら、同じようなことを>>894に先に言われたw
08988902006/02/22(水) 20:35:09ID:???
解決しました。
ファイルサイズが増えた時点で気付くべきでしたが、
バイナリエディタで覗いてみたところデコードされていませんでした。
MT に Base64.pm が無かったので、extlib/MIME に
Base64.pm(MIME-Base64-2.23)を追加し、以下にソースを修正。

$image64 = new XML_RPC_Value(chunk_split(base64_encode($image)),'base64');


$image64 = new XML_RPC_Value($image,'base64');


MIME-Base64
http://www.perl.com/CPAN/modules/by-authors/id/GAAS/

どうみてもPHPと関係ないスレ汚しです。
本当にありがとうございました。
0899nobodyさん2006/02/22(水) 20:37:12ID:???
スレ違いだが、報告乙
0900nobodyさん2006/02/22(水) 21:26:13ID:???
Webアプリのボタンにショートカットキーを割り当てたいのですが、
AccessKeyってファンクションキー(F1とか)は設定できないのでしょうか。
別にAccessKeyでなくてもよいのですが、他に方法を思いつかないので・・。
0901nobodyさん2006/02/22(水) 21:42:08ID:???
>>900
このスレなんだか知ってる?
09029002006/02/22(水) 21:44:40ID:???
今知りましたw
サヨウナラ・・
0903nobodyさん2006/02/22(水) 22:00:00ID:???
function HOGE($str) {
print htmlspecialchars($str);
}

HOGE("htmlspecialchars+printしたい文字");
0904nobodyさん2006/02/22(水) 23:15:23ID:???
>>903
それだと
HOGE('<strong>ここは<強調>したいんです</strong>');
はダメだからわけるしか無い
0905nobodyさん2006/02/23(木) 01:36:14ID:???
レッツPHPは日本での普及のきっかけにもなったんだから、
そこらへんは評価してあげないと。
今となっては穴だらけのスクリプトでも、
当時は感動したもんだ。
0906nobodyさん2006/02/23(木) 02:01:43ID:???
phpで作成したhoge.dataファイルに再度書き込みをしたい時にパーミッションの関係で書き込みできません。
chmodコマンドは、借りている鯖側の処理で禁止されているのかな?
ファイル生成段階で属性って決めて保存ってできるか教えてください。
0907nobodyさん2006/02/23(木) 03:07:02ID:???
>>906
普通、PHPで出力したものは自分自身がそのオーナーなんだから
特にパーミッションなんて変更しなくても再読み書きできるもんだが、
そこのサーバーで何かおかしな真似されてるんじゃないか?

で、chmod以外でパーミッション設定は無理かと。
0908nobodyさん2006/02/23(木) 10:25:22ID:???
定数を""で囲った中で出力する場合どうしたらいいのでしょうか?
マニュアル見ても
define ("CONSTANT", "Hello");
echo CONSTANT; // "Hello"を出力します。
としか書いてないんですけど、
echo CONSTANT World!!;
といれたらエラーが出ますし、
echo "CONSTANT World!!";としたらそのままの文字列が出力されてしまいます。
変数の場合は、
echo $a;でもecho "$a";でもecho "{$a}";とかでも出力されますよね?
定数もecho "{CONSTANT}"みたいに何かで囲むことで、
出力されるようになるということはないですか?
それともこういう使い方の場合は変数を使えということでしょうか?
0909nobodyさん2006/02/23(木) 10:44:59ID:???
>>908
定数を "" で括って使う事自体定数の使い方がおかしい。
定数はその内容を意識しないで使うモンだ。

fopen( "example.dat", LOCK_EX ); の LOCK_EX みたいに普通は引数に使うだけ。
ライブラリや組み込み関数で使う定数の内容なんか意識しないで使うだろ?

そういう使い方をするものは変数が適している。
09109092006/02/23(木) 10:48:11ID:???
ちょっと例に出した fopen 関数の引数が激しく間違っているが
flock( $resource, LOCK_EX ) と思ってくれ
0911nobodyさん2006/02/23(木) 10:52:40ID:???
echo CONSTANT."World!!";
0912nobodyさん2006/02/23(木) 11:01:07ID:HLa5KG/+
mb_ereg_replaceで
{ ? ? ? ( ) などを置換したくて[{???()]と書いてもパースエラー
[\{???\(\)]と書いても同様にパースエラーがでます。
Parse error: parse error, unexpected '[', expecting ')'

たぶん ) がエスケープできていないと思うのですがどうすれば ) を
エスケープできるのでしょうか。
0913nobodyさん2006/02/23(木) 11:02:30ID:HLa5KG/+
うあ、特殊な文字が?に化けてる。
そこは気にしないでください。
0914nobodyさん2006/02/23(木) 11:33:12ID:???
>>911が正しいが
ふつうは>>909-910だな。

いい所を横取りな俺。
0915nobodyさん2006/02/23(木) 11:38:47ID:???
>>907
ううむ。
とりあえず返信thx
0916nobodyさん2006/02/23(木) 12:30:30ID:???
>>912
\(じゃダメ?
0917nobodyさん2006/02/23(木) 13:22:18ID:???
次スレのテンプレなんか追加するものある?
phpの他のスレを関連として書いとくとかFAQとか
0918nobodyさん2006/02/23(木) 13:35:18ID:???
>>826とかどうよ?
0919nobodyさん2006/02/23(木) 14:11:48ID:HLa5KG/+
>>916
だめみたいです。
勘違いしているだけかもしれませんが、

$text = '(abc)'
$text = mb_ereg_replace("[\(\)]*","",$text));

というふうに原因追及のため簡単に書き直して試してみましたが
やっぱりパースエラーが出ちゃいます。
parse error, unexpected ')'

var_dump($text)でabcと出したいのですが、
どこを間違えているのでしょうか。

PHP Version 4.4.1です。
0920nobodyさん2006/02/23(木) 14:24:04ID:???
>>919
) が多いんじゃねーの
0921nobodyさん2006/02/23(木) 14:32:02ID:???
>>920
なー
mb_ereg_replace の括弧な。
開きは1コなのに閉じが2コ。

問題は正規表現じゃねー。
0922nobodyさん2006/02/23(木) 14:36:59ID:???
>>920-921
助かりました、マジでありがとうございます。

こんなことに何時間も悩んで、
なんかすごくバカらしくて涙が出てきました。
0923nobodyさん2006/02/23(木) 15:30:20ID:???
正規表現のエラーなら
mb_ereg_replace errorとか関数名がきちんと出てくるしな。

>>922
そうやって成長してくもんさ。
オメデトウ。
0924nobodyさん2006/02/23(木) 15:32:42ID:???
>>922
PHPの文法チェック機能がついてるエディタとか開発環境使うと涙の数は減るよ
0925nobodyさん2006/02/23(木) 15:51:26ID:???
>>924
何使ってる?
俺はOEdit使ってる。
残念ながらPHPは未対応だけど。
0926nobodyさん2006/02/23(木) 16:08:03ID:???
コマンドライン起動のスクリプトの中で
自ホストを取得するには
どうしたらよいでしょうか?
0927nobodyさん2006/02/23(木) 16:13:05ID:???
>>925
PHPeclipse
CVSとエディタしか使ってないから使いこなせてるとは言い難いんだけどね('A`)
ロースペックマシンだと動作の重さで涙が増えるかも。
統合開発環境スレだともっといろいろ教えてくれるんでないでしょか。
0928nobodyさん2006/02/23(木) 16:49:23ID:???
正直、(〜)と{〜}の対応チェック&ジャンプ機能がついてるエディタがあれば十分だと思う。
個人的にあるとうれしいのはHTMLのタグ間ジャンプ。
閉じタグを確認するというより編集範囲を探し出すのに重宝するって感じだけどね。
0929nobodyさん2006/02/23(木) 17:00:38ID:???
タグを 田 って感じでごっそり閉じれるエディタは便利だよな
0930nobodyさん2006/02/23(木) 17:09:57ID:???
>>926
IPでなくホスト名?それってその気になれば複数設定できないか?
0931nobodyさん2006/02/23(木) 17:12:12ID:???
全角カナを半角カナに置き換えるコードってないでしょうか?

<form action="index.php">
<input type="text" name="moji" size="40" value="<?echo "<a href="database.cgi?keys2=" . $moji . "">" . $moji . "</a>" ?>">
<input type=submit value=sub>
</form>

こんな感じでフォームに文字を入れてsubmitすると
$moji の部分が置き換わるようにしてるんですが、
これを

<input type="text" name="moji" size="40" value="<?echo "<a href="database.cgi?keys2=" . $moji . "">" . $moji2 . "</a>" ?>">
として、
「$moji」は入力した通りの文字, 「$moji2」は全角カナがある場合は半角カナに置き換えて表示するようにしたいのですが。
0932nobodyさん2006/02/23(木) 17:17:40ID:???
失礼
<?echo "&lt;A href=&quot;database.cgi?keys2=" . $moji . "&quot;&gt;" . $moji . "&lt;/A&gt;" ?>">

<?echo "&lt;A href=&quot;database.cgi?keys2=" . $moji . "&quot;&gt;" . $moji2 . "&lt;/A&gt;" ?>">
0933nobodyさん2006/02/23(木) 17:22:24ID:???
日本語正規表現で出来ないかな。
まぁカタカナなんて50種類ぐらいしかないんだから、
悩むより全通りやったほうがはやいとおもう^^;
0934nobodyさん2006/02/23(木) 17:22:32ID:???
とりあえず俺が思いついたのは
preg_replaceで地道に
$zenkaku = array ("ア", "イ", "ウ"...);
$hankaku = array ("ア", "イ", "ウ"...);
とやる。
0935nobodyさん2006/02/23(木) 17:25:27ID:???
>>931
mb_convert_kana($str, "k");
0936nobodyさん2006/02/23(木) 17:56:09ID:???
>>935
が一番スマートな方法だね。
ただ、コンパイル時にマルチバイト関数を有効にしていないと使えないけど。
0937nobodyさん2006/02/23(木) 18:00:27ID:???
パッケージ管理システムとかで入れてれば、マルチバイト関係のパッケージ入れるだけだけどね
0938nobodyさん2006/02/23(木) 20:00:51ID:???
>>930
ホスト名です。
しかもバーチャルホストなんですけど
0939nobodyさん2006/02/23(木) 20:11:35ID:???
>>938
CLIからWebとかftpのバーチャルホストかどうかなんて判んないから取得できないよ。
CGIのI/Fのように環境情報が渡されてないから。
0940nobodyさん2006/02/23(木) 20:11:47ID:???
>>938
マンコドラインからphpinfo()実行してみ
0941nobodyさん2006/02/23(木) 20:16:24ID:???
マンコラインとは縦筋の事か?
0942nobodyさん2006/02/23(木) 20:30:32ID:???
>>938
で、そのCLIってのはどうやって起動されるんだ?
Web上のPHPやCGIからsystemで呼び出し?
それとも手動またはcronで実行?
前者なら子プロセスに環境変数が継承されるかもしれないが、
後者なら「ホスト名というもの自体が存在しない」よ。
無い物は取得不可能。
0943nobodyさん2006/02/23(木) 20:52:38ID:aYPvtFuR
鯖の生存を確認するのに
$fp = @fsockopen('www.example.xxx', 80, $errno, $errstr, $timeout);

ってやっています。
できるだけ素早く判別してもらいたいんですが$timeoutの値の目安ってありますか?
0944nobodyさん2006/02/23(木) 20:55:27ID:???
10秒ぐらいでいいじゃん
0945nobodyさん2006/02/23(木) 21:23:39ID:???
5秒で十分
それ以上は死んでいるも同然
0946nobodyさんNGNG
>>945
たまに重い鯖もあるけどねm9( ゚д゚)
まあどれぐらい重ければdownと見なすかで決めれば良いじゃない
0947nobodyさん2006/02/23(木) 21:34:56ID:???
>>942
>>926で「ドマンコライン」って言ってる罠
09489432006/02/23(木) 21:41:59ID:???
>>944-946
3秒で遅いと感じていたんですが現状維持で行こうと思います
ありがとうございましたm(_ _)m
0949nobodyさん2006/02/23(木) 23:04:53ID:???
ソケットよりもpingがオススメ
0950nobodyさん2006/02/23(木) 23:29:27ID:???
PHPで最大同時接続数を制限することはできますか?
0951nobodyさん2006/02/23(木) 23:53:06ID:???
できる
0952nobodyさん2006/02/24(金) 00:42:35ID:???
.htaccessの仕事っぽい
0953nobodyさん2006/02/24(金) 02:01:19ID:???
extractの話題が良く出てますけど、
$hoge = $_POST['hoge'];
をextractを使って表現するとどのように書けばいいのでしょうか?
特に何もしないとXSSの原因になるそうなので、
わからないうちは使うつもりはありませんが、気になるので・・・
0954nobodyさん2006/02/24(金) 02:13:43ID:???
>>953
extract ($_POST);
$hoge == $hoge;
0955nobodyさん2006/02/24(金) 02:30:53ID:???
>>953
extract($_POST, EXTR_SKIP);

extract($_POST, EXTR_PREFIX_ALL, "post");
のどっちかかな。
$hoge = $_POST['hoge'];相当なのは前者。
後者は$post_hoge = $_POST['hoge'];相当。
0956nobodyさん2006/02/24(金) 02:36:19ID:???
>>954
どうもありがとうございます。
早速実行してみたところ、
ちゃんと$hoge = $_POST['hoge'];と同じになりますね。
便利ですねえ。
どういう危険性があるか理解できるまで使わないことにします。
ひとつ謎が解けました。ありがとうございました。
0957nobodyさん2006/02/24(金) 02:38:49ID:???
>>955
レスしてる間にレスがorz
詳しくありがとうございます。
値もいろいろと指定できるんですねー
早速値に関してどういったものか調べてまいります。
0958nobodyさん2006/02/24(金) 03:44:05ID:???
>>956
extractで展開していると
予期しない変数を書き換えられる危険がある。
例えばパスワードを$passに設定している場合に
hogehoge.com?pass=〜
でアクセスされ、これをextractで展開すると…。
↑はgetの場合だけれど
ローカルでフォームを書けばpostだって送りつけられるし。
0959nobodyさん2006/02/24(金) 03:59:26ID:???
>>956
>>826
0960nobodyさん2006/02/24(金) 04:00:42ID:???
>>958
見たいに
example.com?pass=5
しか想定しないでextractすると、下のURLみたいなアクセスをされた場合に大量に変な変数作られるのが危険て事?
example.com?pass=5&user=hoge&db=example.com

予期しない変数を大量に作られるのは気持ち悪いね
でも、プログラムの一番最初にextractすれば変数の内容は上書きされないような気もするけど・・
0961nobodyさん2006/02/24(金) 04:24:48ID:???
じゃあパスワードは定数にすればいいってことか!
0962nobodyさん2006/02/24(金) 06:38:31ID:???
引用
http://jp2.php.net/manual/ja/function.extract.php

警告
extract() をユーザー入力 ($_GET, ...) のような信頼できないデータについて使用しないでください。
もし行う場合、例えば register_globals を信頼しているような古いコードを一時的に実行したい場合、
EXTR_SKIP のような extract_type の値が上書きされていないことを確認してください。そして php.ini の
variables_order で定義されたものと同じ順で展開すべきであることに留意してください。

ま、他人のサーバがどうなろうが知ったこっちゃ無いが
0963nobodyさん2006/02/24(金) 07:41:52ID:???
>>960
>>826
0964nobodyさん2006/02/24(金) 08:35:07ID:???
掲示板のように入力させるようなデータはおとなしく、
$data=$_POST['data'];にしとけばいいってこと?
他人のスクリプト見ると、
extractを使うのが一般的だとか思っちゃうけど…
0965nobodyさん2006/02/24(金) 09:41:42ID:???
>>964
それだけ我々にとって「チャンス」があるということです。
フフフ・・・
0966nobodyさん2006/02/24(金) 10:14:36ID:???
>>964
>他人のスクリプト = Le●sPHP = 過去の遺物 = 諸悪の根源
0967nobodyさん2006/02/24(金) 10:24:28ID:???
extractをpostやgetに使わなければ全然問題ないじゃん
0968nobodyさん2006/02/24(金) 12:03:24ID:???
>>964
それは過去の遺物。
大昔(と言ってしまおう)のPHPがデフォルトでextractと同等のことを自動的にする仕様だったんで、
その頃からPHPで物作ってる人は互換性のためにextract使っちゃうのよ。
で、そういうプログラムって過去の実績は多数あるんで、さらに巷で大量に流布しちゃって
それを真似する素人プログラマがまた問題があるままパクって傷を広げてしまうんだな。
0969nobodyさん2006/02/24(金) 12:05:01ID:???
>>967
別にextract関数自体が問題あるって話ではないわな。
でもクエリーの展開以外にextractを使う人ってほとんどいないけどなw
0970nobodyさん2006/02/24(金) 12:09:34ID:???
>>964
具体的に誰のスクリプトだか名を上げて欲しい。
0971nobodyさん2006/02/24(金) 12:34:57ID:???
>>970
>>966
0972nobodyさん2006/02/24(金) 12:39:54ID:???
>>969
DBの出力に使ったりするとわりと便利だよ
0973nobodyさん2006/02/24(金) 12:52:58ID:VruGZZOM
PHPで作られてるサイト(SNSなど)のソースを落として
解析って出来ないのでしょうか?
0974nobodyさん2006/02/24(金) 12:59:26ID:???
>>971≠>964でしょ?
とりあえず本人がどこのサイトのソースを見て思ったのか、
それが知りたい。
0975nobodyさん2006/02/24(金) 13:07:03ID:???
>>973
ソース公開していれば可能
0976nobodyさん2006/02/24(金) 14:56:56ID:j/2+6+fN
PHP5で、<input type="image" src="">のフォームボタンでPOSTの値が
取得できなくて困っています。GETは取得できます。
<input type="submit">だと、POST/GET両方普通に取得できます。
09779732006/02/24(金) 15:05:59ID:???
>>975
どうやるんすか?
0978nobodyさん2006/02/24(金) 15:22:12ID:???
>>977
ソースダウンロードしてマニュアルとにらめっこ
0979nobodyさん2006/02/24(金) 15:29:01ID:???
>>976
nameっていらないんだっけ?
09809732006/02/24(金) 15:32:05ID:???
>>978
おお、なるほど。本当にソースダウンロードしてって感じですね。
大きいサイトでソースを公開しているところって殆どないですよね?
SNSなどでソース公開しているところってご存知?
0981nobodyさん2006/02/24(金) 15:40:10ID:???
systemとかexecでcalc.exeを実行し電卓をだした後画面を消したいのですが
実行処理の後にwindow.closeとか書いても電卓が消されないと下の処理に移動しません。
system("calc.exe > /dev/null &")
とかもやったのですがこっちは電卓が画面に表示されませんでした。
どうすればよいのでしょうか?
0982nobodyさん2006/02/24(金) 15:43:23ID:???
>>981
君には、VBが良いと思ふ
0983nobodyさん2006/02/24(金) 17:15:42ID:aTqN8USg
2時間ググりましたが答えに辿りつきませんでした…

外部のサイトを読み込み、文字コードを変換して出力したいのですが
どうしてもエラーの表示が出てしまいます。
多分、とてつもなく馬鹿な事をしているのだと思いますが…
この場合、どのようにしたら良いのでしょうか?
ヒントだけでも頂けたら幸いです。

下記、エラーが出たもの

<?php
$max =30;//MAX件数

$arr = file("http://pc8.2ch.net/php/subback.html");
$lines = $arr;
$lines = mb_convert_encoding($lines, "UTF-8");

for($i = 0; $i < $max; $i++)
echo $lines[$i];

?>

0984nobodyさん2006/02/24(金) 17:17:39ID:???
>>983
エラーが出てるならどんなエラーが出たかくらい書かないと怒られちゃうよ。
09859832006/02/24(金) 17:20:12ID:???
WebProg板のスレタイ一覧になっていますが、
実際のものは<html><head><meta>系タグを抜いた、
<li><a>テキスト</a></li>\n
といった固定の形式のものが並んでいるのみです。(読み込み先はSJIS)

>>984
すみません。
phpのエラー表示ではなく、
なぜか一言、白い画面に「Array」と出るのみです
0986nobodyさん2006/02/24(金) 17:33:56ID:???
それエラーじゃないじゃん
$lines[$i]が配列なだけ
変数がどういう値もってるのかいろんなとこでvar_dump()してみろよ
0987nobodyさん2006/02/24(金) 17:58:16ID:???
>>983
>$lines = mb_convert_encoding($lines, "UTF-8");
ここがおかしい。 mb_convert_encoding()がパラメータに
どのような型を取りうるのか確認。
0988nobodyさん2006/02/24(金) 18:05:03ID:???
>>983
2時間も何を検索してたん
<?php
$max =30;//MAX件数

$lines = file("http://pc8.2ch.net/php/subback.html");
//$lines = $arr;
//$lines = mb_convert_encoding($lines, "UTF-8");

for($i = 0; $i < $max; $i++)
echo mb_convert_encoding($lines[$i], "UTF-8", "sjis");

?>
0989nobodyさん2006/02/24(金) 18:22:03ID:???
>>987の所でエラーが出ないって事は、表示しない設定になっていそうだ
0990nobodyさん2006/02/24(金) 20:11:38ID:???
>>989
確かにNoticeがでるな
$lines = mb_convert_encoding($lines, "UTF-8");
Notice: Array to string conversion in ****.php on line *
0991nobodyさん2006/02/24(金) 20:13:31ID:???
>>983
1行目に、

error_reporting(E_ALL);

を記述しておきましょう。デバッグに役立ちます。
0992nobodyさん2006/02/24(金) 20:14:43ID:???
>>980
XOOPSなどいかがでしょうか。
SNSとは違いますが。
0993nobodyさん2006/02/24(金) 21:03:11ID:???
Let'sPHPってダメダメなのか〜
他にいい資料置いてるとこない?
0994nobodyさん2006/02/24(金) 21:29:00ID:???
ttp://www.spencernetwork.org/
こことか・・・
0995nobodyさん2006/02/24(金) 21:32:10ID:???
>>993
>>1
0996nobodyさん2006/02/24(金) 21:55:52ID:???
スペンサーって誰だよ
09979832006/02/24(金) 22:04:04ID:???
質問しておきながらレスが遅くなりました

>>986-991
皆さん本当にありがとうございます。
自分はまだforの扱いすらあやふやな所があり論外なレベルなので
皆さんのレス保存して、根っこから勉強しつつやってみます。
ありがとうございました。
09989832006/02/24(金) 22:07:26ID:???
お礼もかねて次スレ立てときました。
どこか間違ってたらごめんなさいね

【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/l50
0999nobodyさん2006/02/24(金) 22:12:15ID:???
>>998
おまえ・・・使える奴だな。
がんばれよ。乙
1000nobodyさん2006/02/24(金) 22:13:27ID:???
どう見てもくだらないです。
本当にありがとうございました。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。