トップページ⇒php
986コメント299KB

【PHP】初心者コーナー 

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。02/01/21 03:21ID:???
長島も阪神のコーチになった。
仕方ない、人気のないPHPを応援してやる。 

データベース禁止 MySQL PostgreSQL はどっかいけ。
純粋にPHPプログラミングだけ。
初歩的な事ならWebProg板の誰かが素早く教える。
もちろんPerlプログラマーも手伝ってくれ。
ほんじゃ質問してみ。

 >>2-9 誰か情報かいてくれ。
0367nobodyさん03/01/15 08:42ID:4Y/f41Yb
使いたいスクリプトがperl+SSIしかないんです。PHPの知識無いので…すいません
0368nobodyさん03/01/15 08:44ID:???
ちょっとまて...perlかYO!!
0369nobodyさん03/01/15 08:51ID:???
>>367
一応言っとくけどここは作る人の板。
0370ほげ03/01/15 11:57ID:UyCbGV3A
>>362
いみわからんが。とりあえず、PHPで書いたページにPerlのアクセスログをのせたいと
いう過程でよいか?
0371nobodyさん03/01/15 12:34ID:lod7zukU
文字コードについて教えて下さい。

通常、UNIX系OS+Apache+PHPモジュール+MySQLという環境での2バイト文字は、
EUC-JPで記述して、表示もEUC-JPですよね?

携帯でも見られるページがつくりたいので、表示はSJISにしたいのですが、
そのときは、どうするのが最良なのでしょうか?
PHPの記述も、MySQLに格納する文字データも全てEUC-JPに統一して、
表示の際に、表示するページをバッファしてSJISに変換するのでしょうか?
それとも、プログラム内も表示も全てSJISに統一する方法があるのでしょうか?

安価な共有レンタルサーバで運用することを前提に考えていて、
PHPのバージョンは国際化対応(4.0.4以上でしたっけ??)を前提に考えています。
よろしくご教授ねがいますm(..)mペコ
0372nobodyさん03/01/15 13:29ID:???
>>371
mb_string
0373山崎渉03/01/15 13:30ID:???
(^^)
0374nobodyさん03/01/15 16:22ID:H6Vl99xR
>>370
そうです
何か方法はありますか?スレ違いだったらすみません
0375nobodyさん03/01/15 16:41ID:???
>>374
PHPからPerlのプログラムを実行すれば良いだけでは?
0376nobodyさん03/01/15 16:49ID:???
>>375
system禁止されてたら悲惨だな。
0377nobodyさん03/01/15 17:26ID:RBRicbNg
>>375
どうやってやるんですか?
includeってやってもスクリプトそのものが出てしまうので

http://www.azworks.org/~az/
ここのunico diary systemとunico includerを使って
PHPページで表示させたいのです
無理でつか・・・?おねがいします
0378nobodyさん03/01/15 17:58ID:???
>>371
国際化版なら
ttp://nxweb.dyndns.org:8080/php-i18n-using.html
のサイトを参考にするといいかも
0379nobodyさん03/01/16 00:40ID:???
>>373
unico includerのPHP版を使おう。
0380nobodyさん03/01/16 00:57ID:???
for($i=1;$i<=3;$i++){
これで1〜3件の記事を表示させることはできたのですが
4〜10件の記事を表示させることが出来ません。

for($i=4;$i<=10;$i++){
だと1〜10件表示されてしまいます。
どうすればいいんでしょうか?
また 10〜4と逆に表示させるにはどうすればよいでしょうか?
038138003/01/16 00:58ID:OzytJsyY
あげ忘れました… お願いします。
038238003/01/16 01:17ID:OzytJsyY
すいません。

for($i=4;$i<=10;$i++){
だと4〜10件表示されてしまいます。

の間違いでした。
0383nobodyさん03/01/16 01:18ID:???
>>380
>for($i=4;$i<=10;$i++){だと1〜10件表示されてしまいます。

forブロックの中身をまともに書いているならあり得ません。
晒すべし。

後、for($i = 9;$i > 4;$i--)。
038438003/01/16 01:18ID:???
たびたびすいません…

for($i=4;$i<=10;$i++){
だと1〜7件表示されてしまいます。

の間違いでした。
0385nobodyさん03/01/16 01:19ID:???
for($i=1;$i<=3;$i++){
これで1〜3件の記事を表示させることはできたのですが
4〜10件の記事を表示させることが出来ません。

for($i=4;$i<=10;$i++){
だと4〜10件表示されてしまいます。

でいいのか?
答えはお前何言ってんの?だけど。
038638003/01/16 01:22ID:???
>>383

間抜けなことをしてる間にお返事ありがとうございます。
forブロックの中身…というのも実はよくわからないのですが
ここまででいいのかな…?

for($i=1;$i<=10;$++){
$line = fgets($fp, 8192);
if (feof($fp)){break;}
$tmpline = explode('<>',$line);
unset($log,$data);
while($key = array_shift($tmpline)){
$log[$key] = array_shift($tmpline);
}
0387nobodyさん03/01/16 01:23ID:???
何度訂正が入るか気になってF5してるのはオレだけじゃないはずだ
038838003/01/16 01:24ID:???
>>385
書き間違えてる!とてんぱって さらにわけわかんないこと書きました。
ほんとすいません。
1〜7が表示されてしまうの間違いです。
038938003/01/16 01:25ID:???
>>387
わたしは書くたびに突っ込みが入っててむちゃむちゃ動悸が早くなりました。
0390nobodyさん03/01/16 01:25ID:???
>>386
どこにも$iが使われてないんだけれど。
もう一度フローチャートなり何なりを書いて頭の整理をすることを激しくお勧めするけど。

俺は寝る。
039138003/01/16 01:32ID:???
>>390
うーん全部書くとこんな感じなんですけど
これ自体がおかしいってことですかね…

<?
$logfile = 'xxx.dat';
$fp = fopen ($logfile, "r");
for($i=1;$i<=3;$i++){
$line = fgets($fp, 8192);
if (feof($fp)){break;}
$tmpline = explode('<>',$line);
unset($log,$data);
while($key = array_shift($tmpline)){
$log[$key] = array_shift($tmpline);
}
if($log[date]){
list($date[tm_mon], $date[tm_mday], $date[tm_hour], $date[tm_min]) = explode(',',$log[date]);
}else{
$date = localtime($log[Write_Time],1);
}
$log[date] = sprintf("%02d/%02d %02d:%02d", $date[tm_mon] +1, $date[tm_mday], $date[tm_hour], $date[tm_min]);

echo "$log[date]<br>\n";
echo "$log[note]<hr>\n";
}
fclose ($fp);
?>

おやすみなさい。
0392nobodyさん03/01/16 01:34ID:???
世に出てるfor文をいろいろまねしてみたほうがいい。
答えはこの板の住人ほぼ全員が答えられるだろうけど
それではきみはまたすぐにつまづくことになる。
マニュアル読め!ってのはややオニなので
入門書を買うことをすすめます。
3000円より無駄にハマっている時間のほうがもったいないです。
039338003/01/16 01:51ID:???
>>392
やさしいお返事ありがとうございます。
ぶっちゃけ ttp://www.php.net/manual/ja/ こことか見ても書いてある意味がわからないです。

PHPに触れるまで他のプログラムも触ったことがなかったし(HTMLオンリーで)
PHPは自分で全部書けるようになろうとは思ってないんです…。
自分でもわかるようになればいいなとは思うんですけど
勉強しないとできないならば1件から10件の表示でいいや…と思うようなへたれです。
ごめんなさい。
つきあってくれてどうもでした。
0394ほげ03/01/16 09:42ID:EjAVyOLA
>>362
おそくなってすまんですたぃ。
えっと。実行させるだけなら簡単
passthru ("./hoge/hoge.pl" );
でできるとおもうけど。
環境変数は渡らない。
だーかーらららん
Remote_AddrとHTTP_USER_AGENTをつけたいのであれば
putenv("REMOTE_ADDR=" . getenv("REMOTE_ADDR"));
putenv("HTTP_USER_AGENT=".getenv("HTTP_USER_AGENT"));
をつけると良いヨイ
結果。
putenv("REMOTE_ADDR=" . getenv("REMOTE_ADDR"));
putenv("HTTP_USER_AGENT=".getenv("HTTP_USER_AGENT"));
passthru ("./hoge/hoge.pl" );//相対パスで。
でいけると思う。まちがってたら。ゴメシ

0395nobodyさん03/01/16 16:43ID:???
>>380
for($1=4;$1<=10;$1++){echo("こんばんわ");}
for($1=1;$1<=7;$1++){echo("こんばんわ");}
は同じ動きをします
ともに7回「こんばんわ」と表示します
「始まりの値」をいくつに設定しようと「終わりの値」との差分の回数だけ繰り返し処理をします
0396nobodyさん03/01/16 16:57ID:???
>>395
$1て・・・。
0397nobodyさん03/01/16 17:15ID:???
forループの変数に"i","j"を使うのはなぜだろう。
0398nobodyさん03/01/16 17:27ID:???
後付けの理由かも知れないが、integerやindexの意味があるらしいよ。
個人的には、i,j,k.. や l,m,n、x,y,zも良く使うなぁ。
0399nobodyさん03/01/16 22:09ID:???
>>397
Fortranがi以降のアルファベットで始まる変数を整数と認識するからです。
#あれ?一文字の場合だっけ?
0400nobodyさん03/01/18 00:17ID:???
iがint(整数型)の宣言しなくても 整数型で初期化されてたって故事でしょ?

微妙に年末どこかのスレで話題になっていた記憶が……

0401nobodyさん03/01/21 12:11ID:4zwnocSK
すいません、初歩的な質問かと思いますがお助け下さい。
環境は RedHat7.3+Apache1.3.27+PHP4.3.0 なんですが
PHP4.2.3等で動いていたソースが警告を受けるようになってしまいました。
ソース先頭で
$name_ = $_REQUEST['name'];
として、グローバル変数をローカル変数に取得して、操作しているのですが
Notice: Undefined indexのエラーが出力されるようになってしまいました。
4.2.3で動作していたソースを4.3.0にそのまま持ってきただけなのですが・・・。

どこか設定をいじらなければいけないのでしょうか?すいませんが、よろしくお願いします。
0402nobodyさん03/01/21 12:33ID:???
>>401
Noticeを表示しないように設定すればいい。
0403nobodyさん03/01/21 12:58ID:???
>>402
あ、それで良かったんですね・・・。ありがとうございました。
0404nobodyさん03/01/21 12:59ID:PC/WMbRD
php 4.0.6 Win2000 です。

入力した text の値(value)を POST送信しないで取得する方法をご教示ください。
0405nobodyさん03/01/21 13:29ID:???
>>404 Not Found
getは?
0406nobodyさん03/01/21 14:22ID:xJNj/yik
xmlの使い方がいまいちわかりません。
シーラカンス本見てもいまいち・・・
どうやってデータ取り出すんでしょう?
本の通りにやると多次元配列に入ってしまうのですが
私の頭では二次元くらいまでしかわかりません
おたすけ
0407nobodyさん03/01/21 15:08ID:Y93UfzJD
php 4.2.3 windows98seです。

フォームからPOST送信したデータを$_POST["name属性"]で参照できる
と書いてありましたが、どうしてもうまく参照することができないみたいです。
よければアドバイスお願いします。
0408nobodyさん03/01/21 16:32ID:???
>>405
マルチに回答するときは質問しても無駄。
ずばり答えを書かないと無視されるよ(藁
040940803/01/21 16:34ID:???
×マルチに回答するときは質問しても無駄。
○マルチに回答するときは質問形で書いても無駄。
 「GETを使ってください」とか書かないと。
0410hmk03/01/23 00:27ID:1086D/Be
>>407
そんな質問のしかたじゃ誰も答えられません。状況がみえてきません。
ソースなりエラーメッセージなりを晒せ。
------
[PR] w-inds慶太の○○飲みたいプログラマ hmk をよろしく
0411ほげ03/01/23 10:34ID:Vttepi7g
>407
.htaccessが使えるなら、
ほにゃららっと呪文を書いておけば、前バージョンと同じ方法で
ゲトでけるよ。
同じ方法とは・・・(略)
0412nobodyさん03/01/23 15:33ID:???
$value = $_POST["hoge"];
if ($value > 600){
なんちゃらかんちゃら;
}

ユーザーから入力された文字列をチェックして、
指定したサイズを越えるようなら末尾をカット
したいんですが、そういう関数を見付けられま
せんでした。どうしたら実現できますか?
0413nobodyさん03/01/23 15:52ID:???
>>412
http://php3.info/manual/ja/print/function.substr.php
0414nobodyさん03/01/23 19:33ID:???
>>412
600って文字列の長さ?
http://php3.info/manual/ja/print/function.strlen.php
0415nobodyさん03/01/23 20:13ID:bN+QNHMW
>>413>>414
そういうことがしたかったんです。
解決しました。ありがとう
0416nobodyさん03/01/25 19:54ID:8WYgoXD5
Perlからphpに乗り換えようと思っているのですけど、
phpで圧縮通信はどのように行ってるのでしょうか?
0417nobodyさん03/01/25 20:35ID:???
圧縮通信?
0418nobodyさん03/01/25 20:41ID:???
gzip圧縮してブラウザに転送するやつのことなら、あるよ。
マニュアルでいうと「出力制御関数」のあたり。
041941703/01/25 20:44ID:???
>>418
それのことか。
C同様、popenだね。閉じるときはpclose。
042041603/01/25 21:03ID:???
>>418
string ob_gzhandler ( string buffer [, int mode])
でいいのでしょうか?
0421nobodyさん03/01/25 21:20ID:???
質問させてください。

PHPに触れてみようと思い、レッツPHP! のぁぷろだをローカルPCに設置してみました。
ソースは一切修正せずに使ってみたところ、以下の問題が起こりました。
1. サイズが表示されない。そもそもログにサイズが書き込まれていない。
2. ファイルの削除ができない。ただしログから該当行は削除される。

ソースを修正していない以上、環境の問題だと思うのですが、
まず何から当たってみるべきでしょうか?

ローカルの環境は、FreeBSD 4-stable + Apache 2.0.44 + PHP 4.2.3 です。
0422nobodyさん03/01/25 21:27ID:???
>>421
PHPの文法から学べ。

アップローダなんぞ10年早い。
0423nobodyさん03/01/25 22:28ID:???
>>422
あれまごめんなさい。

とりあえず、サイズが書き込まれないのは、該当する $upfile_size という変数に
値を入力する処理が抜けているためであるようです、多分。
# $upfile_size という変数自体、検索しても1箇所(=ログの先頭行を作るところ)にしか現れないし

削除されないのは、その前の if(file_exists(... の条件で既に引っかかっていて、
unlink のところまで処理が来ていないためのようです、多分。

ということでそもそも環境が正しいのかどうかは判らずじまいですが、
忠告通り文法学んでから自作することにします。お邪魔しました。
0424nobodyさん03/01/25 22:28ID:???
>>423
がんばれよ。
0425nobodyさん03/01/26 00:50ID:???
>>424
ありがとございます。

間違ったこと書いてしまっていたのが解ったので今のうちに修正。
> $upfile_size という変数
ソースの方で、<input type="file" name="upfile" ...
となっているので、$upfile_size でいーんですね。
で、私の環境は 4.2.3 (>4.2.0)なのでそのままではこれが使えず、
その代わりに $_FILES['upfile']['size'] を使えと。

ふーん、PHP おもろいっスね。
0426nobodyさん03/01/28 21:07ID:???
あげとく
0427nobodyさん03/01/29 15:42ID:M6udjUCY
すいません、質問させてください。

PHPを使ってリダイレクト処理を行うにはどのようにすれば良いのでしょうか?

JAVAでのresponse.sendRedirectのようなものがあればと思うのですが
ご存知の方、おられまいたら、なにとぞご教授下さい。
0428nobodyさん03/01/29 15:59ID:SzV4e5aw
>>427
header("Location: http://www.php.net/"); /* ブラウザをPHP Web サイトにリダイレクトする */
exit; /* リダイレクトを行う際に以下のコードが実行されないようにする */
0429nobodyさん03/01/29 16:14ID:???
>>428
2行目のコメントに意義あり。
0430nobodyさん03/01/29 17:34ID:???
>>429
異議じゃねーのか。
0431nobodyさん03/01/29 17:48ID:???
最近PHP始めたのですが、私の回りではみんなemacsとか秀丸エディタとかで開発してるんですけど
VBみたいなツールはないんですか?ずっとVBだったのでなんか過去に戻ったような気分なんです。
それともエディタで開発してるのはうちの会社だけですか?
0432nobodyさん03/01/29 19:17ID:???
>>431
エディタのカラーリング機能を使え。
あるいは eclipse か zend。
eclipse はまだ仕事にはきついぞ。
0433nobodyさん03/01/30 02:00ID:???
>>432
zendはわかるけどeclipsってJAVAじゃないの?
0434nobodyさん03/01/30 08:01ID:???
>>433
ちゃんと情報読みな。プラグインでどんな言語でも使える。
0435nobodyさん03/01/30 21:35ID:???
そういや昔そんな名前のミッドシップカーがあったよね。
今も手に入るのかな?
0436nobodyさん03/01/30 21:56ID:???
>>435
ジャントジョウホーオミナー

みたいな?
0437nobodyさん03/01/31 11:03ID:???
デトマソパンティラっちゅー外車のこつかい?
0438 03/02/01 13:02ID:???
すいません。
初心者なので教えて下さい。
マニュアルやリファレンス関係を探したのですが、見つけられなかったのです。
SQL実行失敗で:Column count doesn't match value count at row 11と出たんですが
これって11個カラムが多すぎるという事で良いんですよね? 辞書引いて多分そうだと思ったのですが…
ちなみに言うとprimary key でtext に設定して、合計で33個あるんですが、やっぱ多すぎですか?
0439nobodyさん03/02/01 13:24ID:???
MySQLのエラーみたいだね。
insert into テーブル名 ( 項目名リスト ) values ( 値リスト ) としたとき、
項目名リストの数と 値リストの数が一致してないんじゃないかな。

MySQLは使ったことないんで間違ってたらスマソ
0440nobodyさん03/02/01 13:34ID:???
>>438
11行目(row)において、カラムの数と値の数が一致していません。
0441 03/02/01 14:51ID:???
どうもご親切にありがとうございました。そういう事でしたか。
英和辞典が古いせいもあるし、知識がないので全然見当違いの事を言ってました。
0442nobodyさん03/02/01 15:24ID:h8yp1rmm
表示しているURLを取得して、
このURLは「aaaaaaaaaaa」とHTML出力、
それ以外のURLは「bbbbbbbbbbb」と出力したい。

どうすんの?
0443nobodyさん03/02/01 15:27ID:???
>>442
>表示しているURLを取得して、

詳しく解説。
0444nobodyさん03/02/01 15:33ID:???
>このURLは「aaaaaaaaaaa」とHTML出力、
>それ以外のURLは「bbbbbbbbbbb」と出力したい。

解説いらないのか・・・
0445nobodyさん03/02/01 15:34ID:???
>>444
めんどいからな。

if(konoURL == aruURL)
print("aaaaaaaaaaa");
else
print("bbbbbbbbbbbbb");

と好意的に解釈した。
0446nobodyさん03/02/01 15:35ID:???
 
0447nobodyさん03/02/01 15:43ID:???
ブラウザのアドレス欄にあるURLの取得。
例えば、URLに「hogehoge」と含まれていたら、
HTMLで「HogeHoge Homepage」とか出力したいのですよ。
含まれていなかったら「No HogeHoge Homepage」とかな。
0448nobodyさん03/02/01 15:52ID:???
>>447
でも、PHPが呼び出されるときのURLは間違いなく〜.phpだ。
0449nobodyさん03/02/01 15:54ID:LEn5b6Sa
(。・_・。)ノhttp://homepage3.nifty.com/digikei/ten.html
0450の03/02/01 18:37ID:/eR4kJXs
>>447
ほれ
$url = $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
echo (preg_match("/hogehoge/", $url)?"":"No ")."HogeHoge Homepage";
--
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
0451nobodyさん03/02/02 04:48ID:???
http://timidmacer.s5.xrea.com/error_img/
http://timidmacer.s5.xrea.com/error_img/daghuiahiuga.swf
↑見たいに「制限してるファイル」や「ないファイル」
を参照したらエラーが出るようにできないでしょうか?
多分すれ違いだと思うのですが、わかる人がいたらぜひ教えてください
0452nobodyさん03/02/02 05:04ID:???
Webサーバの機能。
ErrorDocumentで検索すれば設定の仕方は分かるよ。
2chでもおもしろいエラー画面を紹介しあってるスレがあったと思ったんだが、
ぱっと見たところ無くなったみたいだなぁ。
てか確実にスレ違いって分かるだろ(w くだ質で聞こうと思わなかったのか?
0453nobodyさん03/02/02 05:06ID:???
>エラーが出るようにできないでしょうか

出るようになってるっしょ、普通。
リンクを押したらイベント発生で、URLをスクリプトに渡して
URL先のファイルを読んでヘッダみて404なり403なりを
判断するとかそういうことっスか?
0454nobodyさん03/02/02 06:06ID:nv4brzgK
http://jsweb.muvc.net/index.html
★☆★幸福になりたーい!!★☆★
045544703/02/02 10:26ID:???
>>450
あなた神!神ついでに、
「hoge」というURLが含まれていたら「aaaaaaaa」と、
「unko」と含まれていたら「bbbbbbb」と、
何も含まれていなかったら「ccccccc」と出力する場合を教えてください。
0456nobodyさん03/02/02 10:27ID:???
>>455

>>445




             お 前 は ア ホ か ?
0457nobodyさん03/02/07 12:25ID:wF6GSoid
index.phpにnews.logをincludeさせて表示させています。
WWWCなど特定の条件で見ている人にはに更新日付のみ表示させたいのですがうまくいきません。

<?
if(ereg("WWWC", $HTTP_USER_AGENT )){
$lastmod = filemtime(__FILE__);
echo "最終更新日 " . gmdate("Y/m/d H:i:s (D)", $lastmod + 9*3600) . "";
exit;
}
?>
<html>〜

<?
$logfile = 'news.log';
〜
>
〜<html>

index.phpが更新されると更新日付も新しくなるのですが
news.logが更新されても更新日付は変わりません。
http://www.php.net/manual/ja/function.clearstatcache.php
このキャッシュのせいなのかそれともincludeする分は反映されないのでしょうか。
0458nobodyさん03/02/07 12:47ID:???
>>457
なぜincludeするファイルの更新時間を取得しないの。
0459nobodyさん03/02/07 12:58ID:???
>>458
そうするとindex.phpだけ更新した時の更新時刻が取得できないと思うんですが…
どちらか新しい方を選ぶとかしたらいいということでしょうか。
0460nobodyさん03/02/07 21:10ID:SVsAOO1i
例えば登録型リンク集みたいなやつでいいんですが、同じ処理をする場合、
次のどれが一番サーバに負担少ないでしょうか?
1. perl単独
2. perl + データベース(MySQL)
3. PHP
4. PHP + データベース(MySQL)
0461nobodyさん03/02/07 21:22ID:???
>>460
正直、どれでもいい。
0462nobodyさん03/02/07 22:13ID:???
>>459
単純に大小を比較すればいい。
0463nobodyさん03/02/07 22:39ID:???
>>462
お返事ありがとうございます。
ということは結局index.phpとnew.logの両方の更新日付をとるしか方法がないということでしょうか。
キャッシュは関係なくてincludeする分は反映されないということなのかなあ…
0464の03/02/08 02:21ID:cJt+BkwC
> キャッシュは関係なくてincludeする分は反映されないということなのかなあ…
ファイルになったキャッシュなんてスクリプトからは見えないよ(そんな
の無いし)。両方の参照しないとダメ。
それと時間情報だけ返したいなら、$HTTP_USER_AGENT なんて参照せずに
$_SERVER["REQUEST_METHOD"]=="HEAD" で判定する方がプロトコルに沿っ
ていて吉。
--
http://mysite.ddo.jp/
0465nobodyさん03/02/08 08:53ID:???
PHPを始めたいと思っているのですが、ネット上の解説を見ると皆ApacheかIISをインストールして
モジュールを設定して・・・という様な少々大げさなセッティング方法しかみつかりません。

テキストを吐き出す程度の機能でよいのですが、なにかいい方法ないですか?
0466nobodyさん03/02/08 10:56ID:???
>>465
Anhttpd + php.exe
■ このスレッドは過去ログ倉庫に格納されています