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

【PHP】初心者コーナー 

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

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

 >>2-9 誰か情報かいてくれ。
0348nobodyさん03/01/12 23:36ID:???
>>347
fgetcsv使え。
0349nobodyさん03/01/12 23:53ID:???
>>347
今日び珍しいな。
キチンと自分で組んでから質問する奴は。
おじさん嬉しいぞ。
ところでそれ動かした?
まずはそれから。

>>348の言う通りfgetcsvを使うのも手だが勉強の為にfgetsを使うのも手。
035034403/01/13 02:28ID:???
一応上記のソースで動かしてみましたが、一番最初のデータしか
入ってきてないようでした。そんなわけで
  list($bnr,$url,$site) = explode(",", $buffer);
ここの$bnr,$url,$siteを配列にしてみたらうまくできました。

付け加えたソースはこれ。
  srand((double)microtime()*1000000);
  $num = array_rand($bnr);
  echo ("$bnr[$num]\n");

そしてもうひとつ問題があって、data.txtに相互のデータを追加して、
相互だったらバナー表示という風にしたいんです。
listのところでif文を入れたいのですが、具体的にどうしたらいいか
わかりません。ご教授いただけると嬉しいです。
0351nobodyさん03/01/13 03:54ID:???
ぱっと思いつくのは
data.txt
内でケツにフラグをつけるってとこだがどうよ?
バナー, URI, site, flg
ってな感じに。
で、flgがあれば表示にしてなければ表示しないとか。

あー相互ってのは相互Linkの事だよね?
035234403/01/13 10:15ID:NmVahH2Q
>>351
相互リンクのフラグはdata.txt内に入ってます。
常にバナーを表示していたいので、データを取り出すときに
相互リンクだったらデータ格納という感じにしたいのですが。
list〜のあとにバッファを開放してやればいいんでしょうか?
0353nobodyさん03/01/13 20:15ID:???
ifなりなんなりで判別したら?
ていうか何をしたいのかがいまいちわからん。
0354nobodyさん03/01/14 15:59ID:nziy2bwN
かなり初歩的ですいません。
PHP4.3.0をいれて、ApacheをいれてPHPの勉強をはじめました。
で、色々と初歩的なプログラムを作ってみてたんですが
どうしても、POSTができません。
Method Not Allowed となります。
googleで検索して、どこかの設定を変えないとだめだという
のは見つけたんですが、具体的にどこをどうかえていいのやら・・・

0355nobodyさん03/01/14 16:37ID:???
>>354
OS書かないで優雅ですね。
035635403/01/14 16:46ID:nziy2bwN
すいません、window2000 Proです。
0357nobodyさん03/01/14 16:49ID:???
>>356
http://www.google.co.jp/search?sourceid=navclient&hl=ja&q=apache+POST+%8B%96%89%C2
035835403/01/14 17:29ID:nziy2bwN
>>357
ありがとうございます。
しかしそれをみても、わからない・・・
The requested method POST is not allowed for the URL ***.php3
となってます。
もうちょっと勉強します。

0359nobodyさん03/01/14 22:49ID:???
>>358
PHP-4.3.0なのにphp3??
*.php3→*.phpにすればなおるかも。
0360nobodyさん03/01/15 05:20ID:RBRicbNg
PHPとSSIを一緒に動かすにはどうしたらいいですか?
教えて下さい
0361nobodyさん03/01/15 06:39ID:???
>>360
httpd.confをちゃんと書け。以上。
0362nobodyさん03/01/15 07:05ID:RBRicbNg
調べたんですけど意味が分からないんです・・・
036336203/01/15 08:03ID:RBRicbNg
例えば*.phpを鯖にあげて、その*.phpの中にssiを埋め込みたい
って事です
アドバイスおながいします
036412603/01/15 08:10ID:pIr+HNI+
アップローダーはじめました
http://www6.ocn.ne.jp/~endou/ten.html
0365nobodyさん03/01/15 08:10ID:???
>>363
phpでやった方が高機能だと思うのだけれど。
0366nobodyさん03/01/15 08:21ID:???
>>363
意味無いじゃん
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」とかな。
■ このスレッドは過去ログ倉庫に格納されています