5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

くだすれPHP(超初心者用)2

1 :nobodyさん:2006/11/27(月) 17:46:42 ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
http://www.php.net/

2 :nobodyさん:2006/11/27(月) 17:52:42 ID:???
では早速。

みなさん、PHPを書く時、<?〜?>か<?php〜?>どちらで書いてます?
最近、後者で書く時が多いのですが、そう癖づけた方がいいのでしょうか?
それともぶっちゃけあまり変わらないから、<?〜?>でも問題ないのでしょうか?

3 :nobodyさん:2006/11/27(月) 18:12:27 ID:???
超初心者はなにも考えず後者を使え

4 :前すれ986:2006/11/28(火) 01:12:54 ID:???
探したら確かに
/usr/share/php5/
にphp.ini-distがありました。

debianだと元々設定ファイルが無いんですね。
/etc以下にはありませんでした。

しかしながら検索で*を使うのを忘れてました。
恥ずかしい限りです。でも皆さんありがとうございます。

5 :QQQ:2006/11/28(火) 11:25:10 ID:trk6Ybn1
テキストボックス一つに対してボタンを二つ用意して
それぞれのボタンで入力に対して異なる処理をさせたいんですが、
どうやったらできますか?
現状ソースは以下
<INPUT TYPE="text" NAME="var" SIZE="20">
<FORM ACTION="http://localhost/search1.php" METHOD=POST>
<INPUT TYPE="submit" VALUE="実行1">    
</FORM>
<FORM ACTION="http://localhost/search2.php" METHOD=POST>
<INPUT TYPE="submit" VALUE="実行2">    
</FORM>
元々、一行目の文を<form>の中に入れてました。ボタンを二つに
したかったので外に出しちゃいましたwこれでは値が渡されません。
あ、これPHPファイルをコールする直前のHTML内の処理ですね。
でもできれば回答お願いします。

6 :nobodyさん:2006/11/28(火) 11:29:04 ID:???
超初心者ですが、foreachについてお聞きしたいことが。
foreachには、
1 foreach(array_expression as $value)
2 foreach(array_expression as $key => $value)
の2つの形式がありますよね?
1では、ループの値は$valueに格納されますが、2のほうでは$keyと$valueに
それぞれ何が格納されて、どんな時に使うのか分かりません。マニュアルを
見たのですが、ピンとこなくて。。。

7 :6:2006/11/28(火) 12:09:48 ID:???
わかりましたので取り下げで。

8 :nobodyさん:2006/11/28(火) 12:18:54 ID:???
>>5
っ name

9 :nobodyさん:2006/11/28(火) 13:46:11 ID:PnRJydza
テキストファイルの中身をすべて出力するには
どうすればよいのでしょうか?
日本語が文字化けしてしまいます・・

10 :nobodyさん:2006/11/28(火) 13:56:58 ID:???
>>2
ローカルでshort open tagをoffにしてるから<?php
<? ?>で動かないことはあっても<?php ?>で動かないことはないからね


11 :nobodyさん:2006/11/28(火) 13:59:20 ID:???
>>9
mb_string 入れてる?
php.ini の [mbstring]の設定は?
読み込もうとしているテキストファイルの文字コードは?

12 :9:2006/11/28(火) 14:17:55 ID:PnRJydza
>>11
文字コード変えてみたらうまくいくました
ありがとうございます

あと、テキストファイルに数行の文が書かれているのですが
読み込んで出力しても、改行がされてませんどうすれば
テキストファイルの内容そのまま出力できますか?


13 :nobodyさん:2006/11/28(火) 14:35:44 ID:???
>>12
どうやって取り込んだの?
file 関数使えばファイル全体を読み込んで配列に格納するし、
fgets で読めばァイルポインタから 1 行づつ取得してるんだろうし。

非エスパーでも回答可能な質問汁。

14 :nobodyさん:2006/11/28(火) 14:41:24 ID:???
>>12
ブラウザで見てるからだろ
ブラウザ上での改行は<br>だから

15 :nobodyさん:2006/11/28(火) 14:41:41 ID:???
<br />つければいいんじゃね

16 :9:2006/11/28(火) 14:41:44 ID:PnRJydza
readfileを使いました。
説明足りなくてごめんなさい

17 :nobodyさん:2006/11/28(火) 14:42:40 ID:???
LFが改行じゃないシステムとか

18 :nobodyさん:2006/11/28(火) 14:46:27 ID:???
>>16
今回は各行の後ろに「改行コード」(コマンドラインへ出力) or 「<br>」(ブラウザへ出力)を
加えたいから、fileで取り組んで配列ループして改行コードを追加しながら出力すればいいんじゃない?

19 :9:2006/11/28(火) 15:03:00 ID:PnRJydza
何度もすいませんm(__)m
配列ループするとテキストファイルの中身の
文の行数だけループはどうすれば?
いろいろな行数のファイルを読み込みたいんですが

20 :nobodyさん:2006/11/28(火) 15:12:23 ID:???
全部読んでまとめてnl2br

21 :nobodyさん:2006/11/28(火) 15:17:15 ID:???
>>19
PHP のマニュアルの foreach を参照のこと。

ttp://jp.php.net/manual/ja/control-structures.foreach.php

他にも方法はあるけどね。

22 :nobodyさん:2006/11/28(火) 17:06:22 ID:???
>>19
ループ使わないやり方
echo str_replace("\n", "<br>", file_get_contents("ファイル"));
\nは改行コードによって変わる

23 :nobodyさん:2006/11/28(火) 17:11:46 ID:???
これでもいけるかな?
echo nl2br(file_get_contents('ファイル名'));

24 :nobodyさん:2006/11/28(火) 20:35:30 ID:xi49mohN
さぁさぁさぁ、超初心者と聞いて俺がきましたよ!
超初心者が聞きます!
……PHPって何ですか?

25 :nobodyさん:2006/11/28(火) 20:36:45 ID:???
嘘つくなハゲ

26 :nobodyさん:2006/11/29(水) 10:28:53 ID:???
opendirでディレクトリ内を開いて書き出した時、
.
..
test.gif

みたいに” . ”が出力されます。これを削除して出力するにはどうしたらいいのでしょうか? 

27 :nobodyさん:2006/11/29(水) 10:37:14 ID:???
while ($entry = readdir($dir)) {
if ($entry == '.' || $entry == '..') {
continue;
}
echo $entry . "\n";
}
とか

28 :nobodyさん:2006/11/29(水) 10:52:27 ID:???
phpこれから勉強しようかなと思ってるんだけど
2ちゃんの壷のlocalhost8095は削除しとかないとダメかな?
アパッチも使おうかなと思ってるんだけど。

29 :nobodyさん:2006/11/29(水) 10:55:37 ID:???
ローカルでテスト中のときだけ壷停止しとけばおk

30 :nobodyさん:2006/11/29(水) 16:41:30 ID:gqW8eidG
フォームで番号入力させてボタン押したら
それをもとにHTMLファイル作成して
そこに飛ぶようにしたいんですけど
どのようにしたらいいでしょうか?
action先にあるphpファイル指定して、ファイル作成して
そのファイルに飛ぶって感じで考えたんですけど
かなり無駄ですよね・・・なにかいい方法ないですか?

31 :nobodyさん:2006/11/29(水) 16:53:50 ID:???
>>30
マルチすんな。

32 :30:2006/11/29(水) 17:00:36 ID:gqW8eidG
ごめんなさい。今日中にやらなきゃだめで・・つい

33 :nobodyさん:2006/11/29(水) 17:48:47 ID:???
つい殺してしまった
つい盗んでしまった

34 :nobodyさん:2006/11/30(木) 04:34:34 ID:9PLb0L+/
http://w1.nirai.ne.jp/freeze/appli/file04.html
↑ここの二択クイズのスクリプトを設置してみたんですけど
エラー(Parse error: syntax error, unexpected '/')が出て動きません。
単純な構文の間違え?考えたのですがわかりません。

エラーが出るのは下のスクリプトの中の←の部分。
前後もおかしいところはないと思うんですが。

どうかわかる方、教えて下さいませ。

一部抜粋(元はhttp://w1.nirai.ne.jp/freeze/appli/files/office/index.htm

///////////////////////////////////////////////////////////////////////////////////個人成績表の表示
function RESULT($name_in){
global $office;
if(file_exists("./quiz/name_$office/$name_in") and $name_in !=null){
echo "名前:".$name_in." ".$office."成績表";
$result = file("./quiz/name_$office/$name_in"); ←この行
$array_cnt = count($result);
echo "<table border='1'>";
echo "<tr><td>DATE&TIME</td><td>LEVEL</td><td>POINT</td><td>TIME</td><td>BAR</td></tr>";
$cnt = 0;
while($cnt < $array_cnt){






35 :nobodyさん:2006/11/30(木) 04:55:17 ID:???
>>34
ソースコードをShift_JISで保存してるから。
問題の行は一個上の echo ... の部分で、表はsjisだと 95 5c。 5c てのは \。
なので 成績表" の " がエスケープされてしまう。

とりあえず 成績表\" のように \ を追加すればいいけど、ソースコードは utf-8n か
euc-jp で書くようにしたほうがいいよ

36 :nobodyさん:2006/11/30(木) 06:35:19 ID:???
>>35
ありがとうございます。解決しました!
しかし、今度はログイン画面や問題表示画面にエラーが出てきたので、引き続き考えてみます。

37 :34:2006/11/30(木) 19:46:18 ID:???
XREAのセーフモードというのが邪魔してるみたいです。

どこかのサイトに書いてあったのを参考に
.htaccessに

<Files index.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

として設置して、よくわからないままエラーメッセージは
出なくなりましたが、成績が記録されないです。

38 :nobodyさん:2006/11/30(木) 19:52:05 ID:???
なぜ記録されないのか調べて、それに応じた対策をとればいい

39 :nobodyさん:2006/12/01(金) 02:03:15 ID:eNWcG6C2
スクリプト内で$_GET['id']=TRUEという処理を使う場合、
外部から$_GET['id']===TRUEになる値を入れることは絶対できない?

40 :nobodyさん:2006/12/01(金) 05:05:05 ID:???
>>39
http://jp.php.net/manual/ja/language.types.boolean.php
---------------------------------------------------
boolean に変換する場合、次の値は FALSE とみなされます。
integer の 0 (ゼロ)
float の 0.0 (ゼロ)
空の文字列、 および文字列の "0"

その他の値は全て TRUE とみなされます (全ての resourceを含みます)。
---------------------------------------------------
hoge.php?id=0 はflase
0以外はtrue

41 :nobodyさん:2006/12/01(金) 06:24:14 ID:???
>>39
無理だと思うけど、$_GETに値を代入するのは気持ち悪いな

42 :nobodyさん:2006/12/01(金) 07:10:53 ID:???
>>40
==ならその通りだけど>>39は===だ

43 :nobodyさん:2006/12/01(金) 13:00:14 ID:foRsHFAa
初めまして^^
配布スクリプトでの質問なんですが
http://php.goinkyo.be/sample/sample.php?sln=2
のバナーランダム表示スクリプトです。
同じバナーが表示されないように出来るのでしょうか??

そのまま設置するとかなりの確率で同じバナーが表示されてしまうのです…

宜しくお願い致します!!

44 :nobodyさん:2006/12/01(金) 13:08:17 ID:???
>>43
前回表示したバナーを記録しといて、表示するためにバナーのリストを読んだ段階で
記録されてるのを除外すればいいんじゃないの

45 :nobodyさん:2006/12/01(金) 13:22:03 ID:foRsHFAa
>>44

早速ありがとうございます!!

いや、当方初心者なものでどんな記述を書き足せば良いか
分からないんですよ、、

簡単なものであれば教えていただけないでしょうか?

46 :nobodyさん:2006/12/01(金) 13:55:23 ID:???
>>43
「ランダム」の意味を盲一回よく考えよう

バナーの種類を二万個ぐらいまで増やせば?

47 :nobodyさん:2006/12/01(金) 16:22:28 ID:???
くだらねーレスだなオイ

48 :nobodyさん:2006/12/01(金) 17:01:57 ID:???
だってくだすれだもん

49 :nobodyさん:2006/12/01(金) 17:35:53 ID:???
バナーを三マンコくらいにしたらいいよ。

50 :nobodyさん:2006/12/01(金) 20:18:22 ID:???
「ガンダム」の意味を教えてください

51 :nobodyさん:2006/12/01(金) 20:57:35 ID:???
「癌堕夢」
中国の孟子さんが癌になる夢を見たらしいよ

52 :nobodyさん:2006/12/01(金) 22:40:05 ID:LbNSuYCs
アップローダー作ろうと思ってるんですが、
アップするファイルを特定の拡張子だけに制限することってできますか?

53 :nobodyさん:2006/12/01(金) 23:41:03 ID:???
>>52
できます

54 :nobodyさん:2006/12/01(金) 23:48:44 ID:LbNSuYCs
>>53
サンクス
関数とか教えて欲しいけど、自分でやってみる!
うぉおおおおおゴールはすぐそこだ

55 :nobodyさん:2006/12/02(土) 06:43:09 ID:???
>>54
とりあえず最初は単純にファイル名だけチェック。
これが出来たら、次のレベル、中身をチェック。


56 :nobodyさん:2006/12/02(土) 08:40:19 ID:???
>>54
どんな拡張子に制限したいのか分からないけど、MIMEタイプを
指定するだけっていう簡単な方法もあるよ。

57 :nobodyさん:2006/12/02(土) 19:32:22 ID:???
普通は容量制限が有るから容量もチェックだな。
1GBとかうpされたら即垢停止。

58 :nobodyさん:2006/12/03(日) 03:10:10 ID:NU1tc6JW
掲示板でユーザーからの投稿をサニタイズ(だったけ?)しない
(htmlspecialchars等かまさない)とき、掲示板閲覧者じゃなくて、
掲示板設置者が気をつける点やこれは取り除いておけってのありますか?
htmlタグやjavascriptで利用者がクッキー盗まれたり、ブラクラへ飛ばされても
一向にかまわないんですが、スクリプト設置者が不利益になるのは避けたいという
(サーバーに対して変なコマンドを使われたりするような)、
そういう趣旨の掲示板です

59 :nobodyさん:2006/12/03(日) 15:39:46 ID:???
>>58
まぁあれだ、巨大な文字を一つ貼り付けられるだけで掲示板として機能しなくなるわけだが。それでもいいのか?

60 :nobodyさん:2006/12/03(日) 16:02:40 ID:???
訴えられるのは管理者だが

61 :nobodyさん:2006/12/03(日) 17:37:54 ID:???
>>58
phpとかの問題ではないが、
裁判沙汰になる可能性を踏まえて海外鯖使う

62 :58:2006/12/03(日) 22:48:21 ID:NU1tc6JW
外部からの変数にeval()とかしない限り何書かれてもおkってことでいいですか?
フォントいじり系は定期的にログ全削除するから平気です
閲覧者のPCが固まっても、管理人は別ルートの管理室出入り口を作るので


63 :nobodyさん:2006/12/03(日) 23:17:23 ID:???
>>62
どんな方法でデータを記録していくのか知らないが、
保存しているデータを、あぼんされてもいいなら放っておけば?

64 :nobodyさん:2006/12/04(月) 00:47:17 ID:???
>>62
仕様が”攻撃者が任意のHTMLやJSを埋め込む事を許容する”という物なら(それを想定した上で管理者に安全に作れば)大丈夫。
ま、せいぜい気を付けるこった。

65 :nobodyさん:2006/12/04(月) 18:10:10 ID:???
なんらかのフィンガープリントを取って、作成した本人のみが閲覧できるようにするベッキー

66 :nobodyさん:2006/12/08(金) 01:11:42 ID:6mMpPBwV
DBの文字コードがUTF-8、phpがEUC-JP、http_inputは空、http_outputはEUC-JPです。
レコード中の1カラム(列名:name)だけが2バイト文字を含む文字列データなのですが、
DBから取り出したレコード($record)をprint_r();でブラウザ上に表示したら見事に化けました。
そこで、$record['name'] = mb_convert_encoding($record['name'],'EUC-JP','UTF-8');
してからprint_r();してみたんですが相変わらず化けたままです。
自分は何を見落としているのでしょうか?

67 :nobodyさん:2006/12/08(金) 03:10:20 ID:P4e+I898
cgiの中でphpを動かすにはどうすればいいですか?
本当に超初心者的質問になっていて申し訳ないのですが

68 :nobodyさん:2006/12/08(金) 09:09:48 ID:???
>>67
サーバの設定を聞いてるなら何を使っているのかを書こう。
ApacheとかIISとかバージョンも含めて。
あと、OSやPHPはどうやって入れたの?

69 :nobodyさん:2006/12/08(金) 09:18:45 ID:M2nmYmnp
スレ違いならすみません。
他サイトでも質問したのですが、回答がなくて・・・。

FFAやInfinity2のようなブラウザで遊べるネットゲームを作りたいと思ったのですが、ある程度システムは決めた状態で、
まず何から作っていけば良いのでしょうか?
ちなみに、携帯専用のゲームの予定です。
以前に作ってみたんですが、いろいろシステムを考えているうちに書き直してばっかりなので、
まったく進まない状態なのです。
皆様が作るとすれば、まずどのようなことから考えて、手をつけていきますか?

FFA
ttp://another-ffa.ddo.jp:8080/cgi-bin/ffa/othersx.cgi

Infinity2
ttp://?www.infinity2.ne.jp:88/?

70 :nobodyさん:2006/12/08(金) 17:13:15 ID:???
日本語でおk

71 :nobodyさん:2006/12/08(金) 18:19:18 ID:???
>>69
作る以前の問題だ。

「ある程度決めた状態」である筈なのに「書き直してばかり」なのは仕様が固まってない証拠。
何を作りたいのか"詳細"に決める事から始めろ。

72 :nobodyさん:2006/12/09(土) 08:24:15 ID:???
普通はDBがutfなら全部utfにしてしまう。理由は文字化けしないから。
どこか一つでも文字コード変換の処理をさせると文字化けの問題と戦うことになるよ。

73 :nobodyさん:2006/12/09(土) 19:20:48 ID:???
やはり統一が基本ですか…
確かに、まだphpソースもそこからincludeするhtmlも数個しか作成してないから
あとはミスなく各種設定ファイルを弄るだけなんですよね。

いやはや、落ち着いているものをひっくり返すのにはどうにも積極的になれなくて…
でも他の方の意見も聞けて、やっと「やるしかない!」という気になりました。
趣味レベルだとどーしても面倒な事があると躊躇ってしまう^^;
レス、大変助かりました。ありがとうございました。

74 :nobodyさん:2006/12/13(水) 15:56:39 ID:vw+L/J5V
6hotの進化版アクセス解析Lapis(ttp://act.st/)を使ってます。
このスクリプトで使ってる.htaccessに他のソースを入れたいのですが
サーバーエラーになってしまいました。

1つの.htaccessにアク解用のタグやIPはじき、
includeのソースを入れたい場合、どう書き込めばいいですか?

75 :nobodyさん:2006/12/13(水) 16:19:42 ID:???
そういや以前.htaccessの偉い人ってスレがあったな
ってか、アク解用のタグってなに?
ってかてか、web政策板できいたら?
レスがあるかは知らんが

76 :nobodyさん:2006/12/14(木) 09:19:59 ID:???
>>nobodyさん
アクセス解析でもhtaccess使ってるし、インクルードもしたいんだけど、
その両方を1つのhtaccessに書き込むと500エラーになってしまうんです。
Web板の方がいいのかな・・・自分2chの空気なんか読んだ事ないからな・・・
ありがとうございました。

77 :nobodyさん:2006/12/14(木) 12:07:39 ID:???
>>76
とりあえず半年ROMっとけ

78 :nobodyさん:2006/12/14(木) 15:02:02 ID:eawOm30r
file_get_contentsとfile_put_contentsでファイルの内容を
別のファイルに書き込みたいんですが
file_put_contentsのさいに、書き込み先のファイルに上書きではなく
もとからあるテキストの下に続けて書き込みたいのですがどうすれば?

79 :nobodyさん:2006/12/15(金) 16:32:56 ID:GA2h1KlN
今まで、register_globals = on の環境でヌクヌクしてたのだけれど、
php のヴァージョンをあげたのを機会に
register_globals = は off にしたほうがよいのかしら?

$a = $_GET['a'] とか $b = $_POST['b'] とかみんな書いてるの?オセーテください

80 :nobodyさん:2006/12/15(金) 16:34:58 ID:???
>>79
うん

81 :79:2006/12/15(金) 16:44:39 ID:???
そか...ありがトン めんどクサイ 世の中になったもんだな...

82 :nobodyさん:2006/12/15(金) 19:45:01 ID:???
>>81
ガンバレヨ
間違っても、無条件にextractとかしないようにね

83 :nobodyさん:2006/12/16(土) 03:07:14 ID:J1is8RMn
環境さえ整っていたら、
DBから取得した1レコードの内容をprint_rで表示した時、
2バイト文字のデータもブラウザ上に化けずに表示されるもんですか?

84 :nobodyさん:2006/12/16(土) 10:08:54 ID:???
>>83
される

85 :nobodyさん:2006/12/16(土) 19:57:15 ID:???
ブラウザの文字コード解析って割と優秀。

86 :hogeman:2006/12/17(日) 23:39:20 ID:Cg0EPVD3
以下のようなに日本語のパラメータを渡そうとると
http://hoge.jp/nameset.php?&name=ほげ

以下のような感じでurlencode?,MIME? された状態になるんですが
http://hoge.jp/nameset.php?&name=%E3%81%BB%E3%81%92

以下のphp内で所得すると
$name = htmlspecialchars( $_GET["name"]);

print $name
の結果が化けるんですが、上手く渡す方法ないでしょうか?



87 :nobodyさん:2006/12/17(日) 23:42:12 ID:???
phpがインストールできないから、質問しようと思ったけど、XAMPPでインストールすることにした。
今ダウンロード中だが、激しく遅い。

88 :nobodyさん:2006/12/17(日) 23:53:00 ID:???
>>86
2byteコードを渡すときは、予めURLエンコードをすべし

「ほげ」を渡したいなら、
name=%82%D9%82%B0

89 :hogeman:2006/12/18(月) 00:39:30 ID:P9WLyRRW
88さんの方法で解決しました、ありがとうございますm(_ _)m

90 :nobodyさん:2006/12/19(火) 13:42:23 ID:Z1TZWbj7
>>61
裁判沙汰になっても安心な鯖会社ってどこっすかね?
2ちゃんが入ってるとこ?

91 :nobodyさん:2006/12/19(火) 14:10:36 ID:???
はやく答えろや。時間がもったいないんだけどな・・・

92 :nobodyさん:2006/12/19(火) 16:48:27 ID:???
>>90
はいはい、厨な質問が来ましたよ。
裁判沙汰になっても安心な鯖会社とか・・( ´,_ゝ`)プッ

93 :nobodyさん:2006/12/19(火) 18:00:43 ID:???
>>92 この板に来てるから要注意

>>90-91 の思考は、全く下記と同じ
http://xoopscube.jp/modules/xhnewbb/viewtopic.php?viewmode=flat&topic_id=2787&forum=5

同板のosCommerceスレで基地外omoti大暴れしてる。
http://pc8.2ch.net/test/read.cgi/php/1165645752/l50

放置です


94 :nobodyさん:2006/12/19(火) 20:50:47 ID:???
あいあい

95 :nobodyさん:2006/12/19(火) 21:23:31 ID:???
>>93
あぁ!omotiか
以前omotiがスレ乱立させてた頃に弄って遊んだ覚えが・・。

まだやってたのか

96 :nobodyさん:2006/12/19(火) 23:02:10 ID:???
美乳おいときますね

97 :nobodyさん:2006/12/19(火) 23:03:49 ID:???
http://sports.yahoo.co.jp/hl?c=photo&d=20061219&a=20061219-00000015-spnavi-spo.view-000

98 :nobodyさん:2006/12/20(水) 23:14:19 ID:???
セッション難しいね。
おまいらどうやって勉強したの?
クッキー程度で十分な仕事しかしてないのか?

セッションスレ逝ってくる。

99 :nobodyさん:2006/12/24(日) 14:31:51 ID:z1YcVJbQ
フォームからのスペース(反核全角)を伴う改行(\n)はどうやって削除してる?
う ん こ    ち ん こ   改行
     改行
   改行
ば か ば か ば か 改行
    改行
しね

みたいなの

100 :nobodyさん:2006/12/24(日) 21:58:47 ID:???
ヒィント:正規表現

101 :nobodyさん:2006/12/25(月) 11:55:32 ID:???
>>99 うんこはトイレ

102 :nobodyさん:2006/12/25(月) 21:56:13 ID:uNaG2oXR
可変変数で
$variables = array('test[0]');
${$variables[0]} = 'aaaaaa';
echo $test[0];

はダメ?

103 :nobodyさん:2006/12/29(金) 01:13:59 ID:???
ここで聞くのも間違っているかもしれませんが質問です。

phpはサーバーサイドで動くプログラムだそうですが、
同じプログラム文を複数の人がほぼ同時にアクセスしても大丈夫なのでしょうか?
ファイルロックについて調べていたら疑問に思いました。

例えばこういうことです。


<?php   
$a = 1;   (1)
$a = 2;   (2)
print $a;  (3)
?>

といった文があるとして最初にアクセスした[ユーザーA]が(2)の処理まで終わり、
(3)の処理に入る前に(有り得るのか分かりませんが)[ユーザーB]が
(1)の処理をしてしまった場合[ユーザーA]が(3)を処理すると[1]と表示して
しまうか知りたいです。

どうかよろしくお願いします。




104 :nobodyさん:2006/12/29(金) 01:34:53 ID:???
>>103
PHPにユーザーからリクエストがある度に新しく生成され、レスポンスを返した後に破棄される。
つまり、同時にアクセスされても全く問題ない。必ず"2"と表示されます。

注意する必要がある物はファイルやデータベースで、これは適切にロックして同時に実行されたPHPを制御してあげれば問題ない。

105 :nobodyさん:2006/12/29(金) 01:47:21 ID:???
>>104
回答ありがとうございます。
phpプログラム自体は同時に接続されてもまったく問題ないが
それ以外の部分に関して操作する場合は気をつけなければならない。
というわけですね。

胸のつかえが取れ、プログラム作成もはかどりそうです
ありがとうございました。

106 :nobodyさん:2006/12/29(金) 10:14:43 ID:???
シングルクオートとダブルクオートの使い分け方を
簡単におしえてくだちい。
シングルクオートのほうが処理速度が1.2倍速いという事は
ググって分かりましたが。

107 :nobodyさん:2006/12/29(金) 10:17:39 ID:???
>>106
文字列内で変数を展開したい時にはダブル

108 :nobodyさん:2006/12/29(金) 11:03:10 ID:???
>>107
まりがとう

109 :nobodyさん:2006/12/29(金) 12:27:29 ID:???
この年末年始の休暇で、PHPを勉強したいなあと思っています。
CSVの中身をランダムに表示したりとか、そういうことから始めたいなあと思っています。

が、わたしはプログラマーではないので、プログラムをちゃんと勉強したことはありません。
本家のマニュアルとかユーザ会のページとか見ても「この関数を使えばなんとかなりそうだなあ」
という程度にはわかるのですが、その先、実際にプログラムにすることができません。

こんなわたしに、PHPのおもしろさや便利さがわかる書籍やサイトがあったら、おしえてください。

よろしくお願いします。

110 :nobodyさん:2006/12/31(日) 15:29:32 ID:???
他人の頼ってる時点でダメポ。

そもそも速度求めるならphpって選択肢無いし。
気にせず使うのが良いよ。

111 :nobodyさん:2006/12/31(日) 15:41:03 ID:???
>>109
面白さや便利さなんて人それぞれ。
自分のやりたいことが明確なら、それが実現できたときに面白さや便利さを感じるんじゃないかね?
なら、そのやりたいことを実現するための方法を見つければいい。

サイトをというなら、PHPのオンラインマニュアルをお勧めするよ。
やりたいことから関数をひける非常に良くできたマニュアルだから。

112 :nobodyさん:2007/01/02(火) 16:59:41 ID:???
クラスの概念がイマイチ掴めない。
まぁ使わなくても何とかなるようなのしか書いてないけどさ…
やっぱり理解したい。

113 :nobodyさん:2007/01/03(水) 08:40:02 ID:???
javaにしとけ。


114 :nobodyさん:2007/01/03(水) 14:48:50 ID:???
日曜プログラマな俺もオブジェ糞指向をマスターしようと、
C++(その前にやるC含む)・Java・Rubyの本をしこたま買い込んだが

ほとんど読んでない

今年は頑張って読んでマスター目指すよ('A`)ノシ

115 :nobodyさん:2007/01/09(火) 23:27:55 ID:k5CRwMBH
思いっきりJavaのパクリです
しかも中途半端ときてます
ほんとうにありがとうございました

116 :nobodyさん:2007/01/11(木) 15:36:01 ID:???

$msg_str .= "";
$msg_str .= "<FONT COLOR=RED SIZE=4>";
$msg_str .= "名前が長すぎます。半角20文字(全角10文字)以内で";
$msg_str .= "入力してください。</FONT><BR>";

とある参考書に書いていました。
一行目の意味が分かりません。無くても表示されます。
解説してもらえたらうれしいです。

117 :nobodyさん:2007/01/11(木) 15:53:20 ID:???
1行目は
$msg_str .= "";
ではなく
$msg_str = "";
でないか?

もし上なら出版社のミス。
下なら、$msg_strの値を空にしてる。

もしこの行より前で $msg_strに値が入っていたら、続けて表示されてしまうから一旦空にしてるんじゃない?

118 :nobodyさん:2007/01/11(木) 16:20:20 ID:???
>>116
$msg_str = "";
がないとNotice errorになる(未定義の変数を使用しましたとか)

119 :nobodyさん:2007/01/11(木) 17:58:19 ID:???
>>117 >>118
お返事ありがとうございます。
仰るとおり、一行目は確かに $msg_str = "";  ですた・・・
なんとなく理解できました。

120 :nobodyさん:2007/01/11(木) 18:18:56 ID:???
例えば、
あいう123えおかきく234けこさ
という文字から234の数字の部分だけ取り出したいのですが、
どうすればよいでしょうか。
"きく"と"けこ"の間を取得すればいいということだけはわかるんですが、
どう書けばいいのかわかりません。

121 :nobodyさん:2007/01/12(金) 13:34:49 ID:6+bHJUiK
ドメインの範囲を教えてください

122 :nobodyさん:2007/01/13(土) 19:39:53 ID:5xFs6m9q
教えてください。
phpでメール送信をしたいのですがまだ環境を全然整えていません。
というか、どの様な環境を構築すればメール送信できるのでしょうか?
鯖用PCはあります。Win2k/AN HTTPDです。
mail()関数を使ったプログラムは書いたのですけど、
  Warning: mail() [function.mail]: "sendmail_from" not set in php.ini
  or custom "From:" header missing in C:\〜\index.php on line 23
というエラーが返ってきました。
additional_headers引数にFromを設定し忘れたので当然だとは思うのですが、
SMTPサーバ?も必要なんですよね?
mail()関数とphp標準機能だけでメールって送れないですよね?
くだらない質問ですいませんが、よろしくお願いします。

123 :nobodyさん:2007/01/13(土) 21:09:08 ID:???
>>120
正規表現



124 :nobodyさん:2007/01/14(日) 14:29:07 ID:???
>>122
windows版phpはsmtpが使える
マニュアルをmailとかで検索しる

125 :nobodyさん:2007/01/14(日) 14:33:39 ID:???
あ・あとその英語のエラーをよく読もうな

126 :122:2007/01/14(日) 23:17:53 ID:3+hBUljF
>>125
ツッコミがいまいち理解できないのですが、ワーニングだから無視できるって事ですか?
それともphp.iniの設定してないからだよ、と?
それともFromヘッダは、設定をしてないのではなくて設定内容が間違っているのだ、
という部分でしょうか?
まさか、sendmail_from≠Fromヘッダなんですかね?
もう少しだけ詳しくご指摘いただけると助かります

>>124
それよりなにより「smtpが使える」とは、mail関数でsmtpを利用できるという意味ですか?
つまりphpとは別にsmtp環境を用意しなきゃいけないという事ですよね?
ちょっとズレますが、本によるとPEAR::Mailはmail/sendmail/smtpの3つのバックエンドに
対応しているらしく、これを目にしたが故に、
ここでいうmailならphp標準機能(よく考えるとPEARは標準機能ではないかf(^^;)だけで
メールが送信できるのかな?これ以上ソフトウェアを入れなくてもいいのかな?
という疑問がわいた次第です。
ご存知の方がおられましたらお願い致します。

127 :nobodyさん:2007/01/15(月) 15:09:32 ID:???
■ おすすめ2ちゃんねる 開発中。。。 by FOX ★
このスレを見ている人はこんなスレも見ています。(ver 0.20)
【桜肉】馬肉大好き【さくら肉】 [珍味]

マジ? PHPとどんな関係?

128 :nobodyさん:2007/01/15(月) 18:36:46 ID:bXy17Ecq
配列で指定したNGワードを弾きたいのですが下のように書いても上手くいきません。

$ng = array('/SEX/', '/crap/', '/fuck/');
if(ereg($ng, $coment)){
$ck = 1;
$txt .= 'NGワード。<br>';
}

下のように書いても駄目でした。
$ng = array("SEX", "crap", "fuck");

arrayの使い方が間違ってるんでしょうか?

129 :nobodyさん:2007/01/15(月) 18:40:49 ID:???
正規表現つかわずにin_array

130 :nobodyさん:2007/01/15(月) 20:48:45 ID:???
>>127
腹が減ってたんじゃね?
それともアレか、馬肉のネット通販サイトでも作ってる奴が居r

そんなスレ貼るから、馬刺し食いたくなってきたわ・・馬は乗るものじゃなくて食い物だな。

131 :128:2007/01/15(月) 23:19:48 ID:bXy17Ecq
if(ereg($ng, $coment)){
をやめにして、

$ng = array("SEX", "crap", "fuck");
if(in_array($coment, $ng)){

としたら上手くいきましたが、入力されたコメントが「SEX」でなく
「SEX SEX」になると弾かないようです。

正規表現を組み合わせて使う方法はないでしょうか?

132 :nobodyさん:2007/01/15(月) 23:50:38 ID:???
log/a.log というファイルの中身が一行しかない(2行以上でない)なら、
そのファイルを消すという動作をしたいのですが、
どのようにすればいいのでしょうか?

133 :nobodyさん:2007/01/16(火) 08:50:28 ID:???
>>132
ヒント:改行コードの数を数える

134 :154:2007/01/16(火) 12:33:03 ID:UiU1h66q
a.log 1列ずつ読んで2列目があれば削除でええのでは

135 :nobodyさん:2007/01/16(火) 14:55:16 ID:???
ありがとうございます
いちおうこれでいけたような気がいます。精進します

$file = 'a.log';
$fp = fopen($file, "r");
$count = 0;
while(!feof ($fp)) {
if ($line = fgets($fp) and substr($line, -1) == "\n") $count++;
}
fclose($fp);
if ($count == 1) unlink($file);


136 :nobodyさん:2007/01/16(火) 15:58:40 ID:???
>>135
最後まで読み込み続けるから行数が多いファイルだと無駄が多いな

137 :nobodyさん:2007/01/16(火) 18:19:50 ID:???
なるほど while の中で
if ($count == 2) {
unlink($file);
break;
}


138 :nobodyさん:2007/01/16(火) 18:29:00 ID:???
違った

if ($count >= 2) {
break;
}
失礼しました。ありがとうございます。


139 :nobodyさん:2007/01/17(水) 14:44:03 ID:???
初心者用の参考書を読んでたら、コードの中に突然見慣れぬ部分が出てきました。

<INPUT TYPE="text" NAME="post_name" MAXLENGTH=20
SIZE=30 VALUE="<?=_hs($post_name)?>>
の VALUE 以降です。

「_hs($post_name)」はユーザー定義関数なんですが、
<?= ?>はショートオープンタグって事なんでしょうか?
「=」って必要なんですか?

140 :nobodyさん:2007/01/17(水) 17:07:15 ID:???
今からphpおぼえるなら「php4」と「php5」のどちらが良いですか?

141 :nobodyさん:2007/01/19(金) 13:11:51 ID:???
>>139
マニュアルの最初に書いてあるよ

>>140
php5

142 :nobodyさん:2007/01/19(金) 18:10:13 ID:???
>>141
「<?= expression ?> は "<? echo expression ?>"のショートカットです。」
とありました。ありがとうございます!
突然説明も無く出て来るんだもんなぁ・・ブツブツ

143 :nobodyさん:2007/01/21(日) 03:05:55 ID:HMt1hfg+
UDPから情報を取得して表示させたく思い、fsockopenで変数に取り込んでるのですが
表示させると「Resource id #1」と表示されてしまいます
情報を表示させる方法はないでしょうか?

144 :nobodyさん:2007/01/22(月) 08:07:10 ID:gxeSGDG4
正規表現についてお願いします

$str = "http://www.google.com/search?q=エリミネーター タンク 外す&hl=ja&lr=&client=opera&rls=ja&start=50&sa=N";

という文章からpreg_replaceを用いて「エリミネーター タンク 外す」を$wordとして抜き出したいときは

$str = preg_replace('/q=.*?&/',"q=".$word."&",$str);

これでいいんでしょうか?

145 :nobodyさん:2007/01/22(月) 14:51:17 ID:???
>>143
あっちのスレでも言われているけど
マニュアル嫁

146 :nobodyさん:2007/01/23(火) 05:52:03 ID:???
preg_match("/\?q=(.*)&/", $str, $matches);
$word = $matches[1];
では?

147 :nobodyさん:2007/01/24(水) 19:36:17 ID:???
register_globals をオンにしたいのですが、方法は
php.ini の register_globals = Off を On に
書き換えてPCを再起動すればいいのでしょうか?

148 :nobodyさん:2007/01/24(水) 20:55:14 ID:???
>>147
まぁそれでも良いけど…

149 :nobodyさん:2007/01/24(水) 21:43:08 ID:???
>>147
PCの再起動でもいいけど、Apacheの再起動でOKだよ

150 :nobodyさん:2007/01/24(水) 22:11:14 ID:???
>>147
悪いことは言わないから、今はoffで勉強して、
いろいろなことが理解できてから、onにしてみることを
強くお勧めします。

151 :nobodyさん:2007/01/25(木) 22:24:09 ID:Ik6V9suO
<html>
<body>

<?php
$time = data(Y);
echo $time;
?>

</body>
</html>

というようにサーバーにアップロードしたんですがエラーになります。
どうしたらいいでしょうか?

152 :nobodyさん:2007/01/25(木) 22:41:03 ID:???
>>151
× data(Y)
○ date("Y")

153 :nobodyさん:2007/01/25(木) 23:07:05 ID:Ik6V9suO
ありがとうございます。
訂正したんですが、Fatal error: Call to undefined function: data() in /home/crom2580/public_html/test/test.php on line 5
こうなるんんですが・・・^^;
転送モードなどパーミッションは関係ありますか?

154 :nobodyさん:2007/01/25(木) 23:15:14 ID:???
>>153
だから、dataではなくてdate
最後は「e」だよ

155 :nobodyさん:2007/01/26(金) 03:35:50 ID:???
なんで名前の付け方にいちいちケチつけられないといけないんですか?ダメですか?

156 :nobodyさん:2007/01/26(金) 04:58:03 ID:umJam6Iu
a.txt
 あいうえお(\n)
 かきくけこ(\n)
 さしすせそ(\n)
 ...

上記のような別ファイルの行数を読み込んで、printで表示させたいのですが、
どのような関数を使えば行数をカウントできるのでしょうか?

157 :nobodyさん:2007/01/26(金) 04:59:27 ID:???
関数data()を使いたいなら、まず定義しれ。

158 :nobodyさん:2007/01/26(金) 10:21:11 ID:Z+xlHRql
ありがとうございます^^
次はこのような文をつくったのですがエラーになってしまいます;;
<html>
<body>
<?php
 $word = "さる";
 if($word == "いぬ") {
   $koe = "ワン!";
 } else if($word == "ねこ") {
   $koe = "ニャン!";
 } else if($word == "さる") {
   $koe = "ウッキー";
 } else {
   $koe = "・・・";
 }
 echo $koe;
?>

</body>
</html>
なにがいけないんでしょうか?

159 :nobodyさん:2007/01/26(金) 10:27:30 ID:???
もしかしてインデント(段下げ)を全角の空白で入力してない?
インデントはTabキーですよ。

160 :nobodyさん:2007/01/26(金) 10:49:20 ID:Z+xlHRql
空白でやってたよーです;;
インデントをいれるべきところはどこでしょうか?
おねがいしますm(__)m

161 :nobodyさん:2007/01/26(金) 10:59:36 ID:???
<html>
<body>
<?php
■$word = "さる";
■if($word == "いぬ") {
■■■$koe = "ワン!";
■} else if($word == "ねこ") {
■■■$koe = "ニャン!";
■} else if($word == "さる") {
■■■$koe = "ウッキー";
■} else {
■■■$koe = "・・・";
■}
■echo $koe;
?>

上記の(■で表示されている部分=空白)です。
空白を消して、インデントを挿入してください。。

162 :nobodyさん:2007/01/26(金) 11:26:23 ID:???
>>158
エラーの内容ぐらい書こうよ
Parse error: parse error, unexpected '@' 〜
なら>>159,161

163 :nobodyさん:2007/01/26(金) 19:15:41 ID:Z+xlHRql
ありがとうございますm(__)m
これからそうします・・・。

164 :nobodyさん:2007/01/27(土) 12:09:25 ID:bB8XjEV+
str_repalceを使って"ハゲ"というような文字を"(データ無し)"に置換できますが
その逆として、フォーム等から送られてきた"(データ無し)"を"ハゲ"に置換する方法はありますか?
> $hoge=str_replace("","ハゲ",$hoge);
等と書いてみましたが反応が無くて困りました。

165 :nobodyさん:2007/01/27(土) 12:51:41 ID:???
>>164
???
if ($hoge == "") $hoge = "ハゲ";
ということかな


166 :nobodyさん:2007/01/27(土) 16:29:47 ID:???
>>148 >>149 >>150

お返事遅れました。
ありがとうございます。参考にいたします。

167 :nobodyさん:2007/01/28(日) 10:56:48 ID:???
PHP6を使ってます。$_ENVの使い方がわかりません。つかってもARRAYとしか表示されませんでした。

168 :nobodyさん:2007/01/28(日) 11:59:53 ID:ZCKLGcFE
phpって何ができるの?
一応htmlとcssはできるんだけど、php使えるようになったら
掲示板とか作る以外に何ができるんでしょうか?

自分なりに調べたんですが、
たとえばメニューを左端に全ページにおいて
もしメニューに何かを追加したいと思ったらhtmlなら全ページ
自力で直さなきゃいけないところを、phpならひとつ直すだけで
全部に反映する。みたいなのがあったんですが。

他にもサイトつくりに便利なことできるんですか?

169 :nobodyさん:2007/01/28(日) 13:15:49 ID:???
これは便利だな
サーバサイドスクリプトでやってるんだろうな

ってのができるようになります

170 :nobodyさん:2007/01/28(日) 13:40:32 ID:???
phpはサーバサイドでは

171 :nobodyさん:2007/01/28(日) 14:57:56 ID:???
ある

172 :nobodyさん:2007/01/29(月) 11:25:24 ID:???
以下の質問内容をMySqlスレで質問したらこちらへ誘導されました、、。
如何でしょうか?解決方法をお教え頂ければと思いますm(_ _)m

>同一マシンで以下の感じで同時起動を行っています。
>格納ディレクトリはもちろん別々です。
>
>【Mysql4.0】
>--
>port=3306
>socket=/tmp/my4.0.sock
>--
>
>【Mysql4.1】
>--
>port=3307
>socket=/tmp/my4.1.sock
>--
>
>設定を確認すると別々に起動しています。
>しかし、php経由で接続を試みると、
>どうしても4.0の方にしか接続できません。
>分かった事は、何やら適当なポートで接続を試みてもすべて4.0に接続しているようです。
>
>これが原因だとは思うのですが、
>なぜport3306と指定しているのに3306以外でも接続できてしまうのでしょうか?
>どうすれば指定された別々のポートでそれぞれのMysqlに接続させることができるのでしょうか?
>
>どなたかこの解決策をご教授頂ければ嬉しいです!

173 :nobodyさん:2007/01/29(月) 12:52:46 ID:???
>>172
「接続を試みた」と言っていますが、
実際にどんなスクリプトで接続を試みたのか判らないと
回答のしようも無いと思いますよ。

174 :nobodyさん:2007/01/29(月) 23:00:02 ID:???
php.iniの設定はちゃんとしてるのか?

175 :172:2007/01/30(火) 00:30:34 ID:???
>>173
申し訳ないです。
PEAR::DBを利用して以下のように接続しました。
--
include_once 'DB.php';
$res = DB::connect('mysql://root:*****@localhost:3307/test');
var_dump($res);
--

上記で期待した動作は、Mysql4.1への接続です。
しかし、ルートのパスワードに対するエラーが返るばかりでした。

そこでMysql4.0のルートに設定してあるパスワードに変更してみるとMysql4.0へ接続できてしまいました。
それ以降、ポートを3308、3309と変更するとすべてMysql4.0へ接続できます。


176 :172:2007/01/30(火) 00:31:54 ID:???
>>174
と言いますと、どの辺りの項目になりますか?
見直してみます!

177 :nobodyさん:2007/02/01(木) 22:05:46 ID:Ak2sQwef
解らないので教えてください。
只今、PHP5.2をインストールし、<? phpinfo() ? > で
テストしたところ、IE、Operaでは正しく表示されましたが、
Firefoxでは<? phpinfo() ? > とそのまま表示されました。
なぜですか?わかる人おしえてください。
サーバーはアパッチ2.2です。

178 :nobodyさん:2007/02/01(木) 22:46:52 ID:???
質問です。
ちょっと限定的なのですが、プロバイダのWAKWAKでホームページスペースを借りて
そこにPHPファイルをアップしてみたのですが、PHPが実行されないです。

WAKWAKのホームページを調べてみたらPHPに関する情報が全くなかったのですが
これはPHPに対応していないということでFAでしょうか?
WAKWAK使いの方いましたらお願いします。

179 :nobodyさん:2007/02/02(金) 08:49:55 ID:???
http://www.wakwak.com/info/homepage/index.html
これ?

ここならPHP使えない

もしかしたらPHPをCGI形式で実行できるかもしれないが、それは問い合わせてみた方がいい。
PHPをCGI形式で実行ってなに?という質問はしないように。

180 :nobodyさん:2007/02/02(金) 15:25:02 ID:???
レスありがとう。
そうですか。やっぱりですね。CGI形式ためしてみます。

181 :nobodyさん:2007/02/04(日) 01:36:25 ID:???
>>177
<?
phpinfo();
?>
でもやってみた?

182 :nobodyさん:2007/02/04(日) 02:09:17 ID:???
>>156
$data = 'a.txt'; //ファイル位置を指定
$file = fule($data); //ファイルを1行ずつ配列に読み込む
$count = count($file); //配列の数をカウント
echo $count; //行数の出力

183 :nobodyさん:2007/02/10(土) 21:29:22 ID:???
質問です!!
ユーザー定義関数とinclude(&require)の違いって何ですか?

ユーザ定義関数は使用後関数内の変数は初期化され、
includeは初期化されずに以降も使われる

ぐらいの違いしかわかりません。

速度の違い何かがあるのでしょうか。
馬鹿な質問だと思いますがよろしくお願いします!!

184 :nobodyさん:2007/02/10(土) 23:36:18 ID:???
>>183
用途が違う、というか、あなたの考えかたからして間違ってる

ユーザ定義関数はその名の通り「ユーザが定義した関数」
include(require等も同等)は「他のファイルを読み込むために使う制御構造」
基本的に全く別の概念のもの。混同しないように。

>ユーザ定義関数は使用後関数内の変数は初期化され、
>includeは初期化されずに以降も使われる
任意の関数内でincludeを使用して別のスクリプトを読み込めば
(読み込んだスクリプトの)変数のスコープはその関数内のみとなるし、
includeでユーザ定義関数だけを読み込むこともできる(もちろん
この読み込んだ関数内の変数のスコープはその関数内だけで、
includeの外からは見えない)。

>ぐらいの違いしかわかりません。
そもそも基本的な事から間違っているから、分かっていないんだと思う。

185 :nobodyさん:2007/02/11(日) 11:14:10 ID:???
>>184
ありがとうございます。別の概念ということですね。
元のphp文で参照できるかできないかもですかね。

でもやっぱりよくわかりません。(別の概念ということは
わかっても本質的な違いが分からないです)


自分の考えではある値AをA'にするユーザ定義関数&別ファイルのphp文と
読み込むincludeを
ユーザー定義関数関数 = ■
include(require)       = ロ
とすると

A→■→A'
A→ロ→A'
のようになりますがこの二つの違いが変数の処理の違い以外わかりません。


よく自分の書いた文章を読むと質問の仕方が悪かったのではと思います。
「ユーザ定義関数を使って処理をするのと別ファイルにphp文を書いて
それをinclude文で処理することの本質的な違いが分かりませんでした。」

自分が理解していないのだとは思いますが、このまま理解せずにやってくのも
アレだと思うので、違いが書いてあるサイトをリンクしていただけるだけでも良いので
教えてください。


186 :nobodyさん:2007/02/11(日) 12:52:18 ID:???
>>185
>A→■→A'
>A→ロ→A'
>のようになりますがこの二つの違いが変数の処理の違い以外わかりません。

↓こういう事かな?(コードは未検証)
---a.php---
<?php
 $c1=$a1+$b1;

---test.php---
<?php
function sub1() {
 global $a2, $b2, $c2;
 $c2=$a2+$b2;
}

$a1=1;
$a2=1;
$b1=2;
$b2=2;

sub1(); // $c1の処理
include 'a.php'; // $c2の処理

echo "\$c1={$c1} \$c2={$c2}";
// $c1=3 $c2=3

a.phpとsub1()は同じ処理だが、関数外で処理(何て言うのか失念)しているか、
関数で処理しているか、の違い。

187 :nobodyさん:2007/02/11(日) 12:54:13 ID:???
(´-`).。oO("$c1の処理"と"$c2の処理"が逆だ・・・)

(続き)
そもそもinclude文というのは、includeで読み込まれるファイルの内容を、
include文そのものと置き換える(もう少し厳密に言えば、include文を
"?>読まれるファイルの内容<?php"に置き換える)処理をしているに
過ぎないので(でも本当はちょっと違う。returnで抜けられる等)、
読み込むファイルの内容を一旦ペーストして考えてみては?


>「ユーザ定義関数を使って処理をするのと別ファイルにphp文を書いて
>それをinclude文で処理することの本質的な違いが分かりませんでした。」

個人的には、複数のphpスクリプト内で同じ処理を行う
(同じ処理のスクリプトが存在する)場合、その関数を
別ファイルにしてincludeで読み込み、複数のファイル間で
共用する、というパターンがほとんど。
人によってはある程度の処理単位で(関数以外も含んでいる)
スクリプトに分割して、それを大元のスクリプトで場合分けして
読み込んで処理、なんて人もいるかも知れない。
この辺は個人の好みのような気がする。

なお速度的にはファイル処理をする関係上悪化してしまう。


参考になりそうなサイト等についてはちょっと分かりません。
個人的には公式マニュアルしか参考にしていないので・・・。

188 :nobodyさん:2007/02/11(日) 19:14:50 ID:???
>>186,187
ありがとうございます。>>186そうです
そういった時に結局やってることは同じじゃないかと思ったわけです。

説明を読むと理解できました。
例えば漢字交じりの文、

「いい天気です。」

があったとすると

includeは
外部ファイル「天気」→「てんき」
いい天気です。 →いいてんきです。 → 実行

でユーザー定義関数は
「天気」→「てんき」と設定

いい天気です → 実行

というように違うということですね。(例えが悪くてすみません)

今までは複数回使う部分(関数)を何でも外部ファイルにして
使ってました。でも>>187の後半部分の方がスマートですね。
なんにしろいろいろとありがとうございました。精進します。




189 :nobodyさん:2007/02/14(水) 12:53:53 ID:???
全く別の概念だから違いとかいうものじゃないってば。
includeは埋め込むもの
functionは何か引数を与えて処理させて返り値を返すもの(それだけじゃないが)

その例えもあいまいで論理的になってないし
公式マニュアルかプログラミング入門書を読んだほうがいいと思うよ


190 :nobodyさん:2007/02/15(木) 02:48:47 ID:???
別のファイルに格納されている文字をばらばらで取り出す方法を教えてください。

別ファイルに
2月12日/豚肉のしょうが焼き/1時30分
2月13日/海鮮丼/2時10分
2月14日/魚の煮付け/1時50分

とデータが格納されていて、
それを表にする

<table>
<tr>
<td>日付</td><td>夕食</td><td>就寝時間</td>
<td>$day</td><td>$dish</td><td>$night</td>
</tr>
</table>
といった感じでわけて取り出したいのです。

191 :nobodyさん:2007/02/15(木) 06:32:56 ID:???
ROOMだとカテゴリ追加や検索を付けるの面倒だから
他に携帯対応のランキングないですか?

192 :nobodyさん:2007/02/16(金) 21:15:51 ID:???
>>189ありがとうございます。
うーん全く別の概念ですか。処理の速さの違いやどんな目的から発展してきたか、
どんな時に有用性があるかは>>188までで大体理解したつもりでした。
やっぱりまだ理解してないのかな…。とりあえず言葉の行き違いが
あると行けないのでもう少し詳しく自分の疑問を説明します。


とりあえず私が言う違いが感じられないとは
使用例や経緯とかではないです。(>>183は簡単に書きすぎました)

私としてはプログラムはどの一部分をとっても

f:a→b

のようにaからbへの対応にしか見えないです。
なので埋め込みと関数の違いが判らないのです。

この二つはプログラムを処理する上で、どんな形でどこから(どこを経由して)
プログラム文(対応)を持ってくるかの違いだけしかないのではと思うわけです。

その意味で言うなら、print文を使用するのもincludeを入れ子構造で100回
繰り返した後にprint文を使用するのも入力aに対して像bは
違いが無いという意味で違いが無いという言葉を使っていました。

以上から>>183では「どのような用途で使い分けるのか?」と質問したほうが
いいと思いました。反省します。
あまり長々と続けても他の皆さんの迷惑になるのであとは自分で調べてみます。
いろいろとありがとうございました。

193 :nobodyさん:2007/02/17(土) 19:06:20 ID:3OVOZ2Sy
リンクされている文字が?に文字化けします。回避方法を
教えてください。
Windows XP
PHP 5.0.1

194 :nobodyさん:2007/02/17(土) 19:14:32 ID:???
文字コードがあってないとか・・・
すごいアバウトな質問で答えようがありません

195 :nobodyさん:2007/02/17(土) 19:27:16 ID:3OVOZ2Sy
>>194
「この設定方をすればOK」という文字コードの基本的な設定方法を教えてもらえませんか?
本やネットを見たのですがそれぞれ文字コードの設定が異なっているように思います。
いろいろ試してみたんですが上手くいきません・・・。

196 :nobodyさん:2007/02/18(日) 01:09:50 ID:???
>>195
つttp://allabout.co.jp/internet/database/closeup/CU20050321A/index.htm
これじゃねーの?

197 :nobodyさん:2007/02/18(日) 02:03:20 ID:k8UF3L2w
>>196
「phpiniの文字コードの設定」には4つありますが、どれが最適なんでしょう?

198 :nobodyさん:2007/02/18(日) 10:04:55 ID:???
>>197
PCが対象だったらEUC→EUCでいいんじゃない?

199 :nobodyさん:2007/02/18(日) 13:02:11 ID:???
<?php
define('NL',"<br />");
function test(){
static $var = 100;
return $var++;
}
echo test().NL;
echo test().NL;
?>
という例文を勉強しているのですが、
実行結果が
100
101
でした。returnのところからすると
101
102
と思ってましたがどういうことでしょう?
ご教授ください。

200 :nobodyさん:2007/02/18(日) 13:24:01 ID:???
$var++ と ++$var の違い。

201 :nobodyさん:2007/02/18(日) 14:18:22 ID:???
PHP初心者のSEです。
環境は PHP4 fedora です。
今社内ネットワーク用のファイルアップローダを作っていて、機能拡張として複数ファイルのアップロードに対応することになりました。
http://search.net-newbie.com/php/feature-fileupload.multiple.html を参考にして
フォームには <input name="userfile[]" type="file" /> をいくつか記述し
POSTデータを受け取ったPHP側は $_FILES['userfile']['name'][n] で配列として処理すればよいと思って
プログラマに訊いてみたら、
「どこでそんなの見たんですか。それはダメです。 name="userfile[]"ではなく、それぞれ固有のnameを指定しないといけません」
と怒られました。
でもどうしてダメなのかわかりません。
input name="userfile[]" を 使ってhいけない理由を教えてください。

202 :nobodyさん:2007/02/18(日) 14:58:28 ID:???
>>198
ありがとうございます。設定してみます。

203 :nobodyさん:2007/02/18(日) 15:30:09 ID:???
>>200
ををー
あざーっすなるほど。

204 :nobodyさん:2007/02/18(日) 15:30:41 ID:vTDBy95k
CSVファイルの行数を書き出すために

$filename = ("log.csv");
$file = file("$filename");
echo count("$file");

と書いてみましたが、どんなCSVを読み込んでも「1」と表示されてしまいます。

CSVファイルの行数を取得する方法、お教え願えませんでしょうか。

205 :nobodyさん:2007/02/18(日) 15:44:35 ID:???
"$file"ってのがマズいんじゃね?なんでも " "でくくりゃいいってもんじゃないよ。

206 :nobodyさん:2007/02/18(日) 16:03:16 ID:vTDBy95k
$filename = ("log.csv");
$file = file("$filename");
echo count($file);

""を外してみましたが、やはり「1」と表示され・・・・・

207 :nobodyさん:2007/02/18(日) 16:12:15 ID:vTDBy95k
すみません

$file = file($filename);
echo count($file);

と記述したところ、行数が出力されました。
ヒントありがとうございました。

" " や ' ' の使い方がいまいちよく分かってません・・・・

208 :nobodyさん:2007/02/18(日) 17:10:57 ID:T5LKQUPj
質問なのですが,同じPHP内にある関数をHTML上で実行するにはどうしたらいいのでしょうか?

209 :nobodyさん:2007/02/18(日) 17:16:06 ID:???
>>207
echo 'クオート、ダブルクオートで調べよ';


210 :nobodyさん:2007/02/20(火) 09:42:40 ID:v0Mu3VTD
ディレクトリ内のファイル数をカウントするのにどんな方法があるでしょうか。

211 :nobodyさん:2007/02/20(火) 11:04:28 ID:???

opendir して read_dir と while を使ってカウントを取るとか。

ファイルのリストを一発でとる関数が実装されるとかいう話を
聞いたことがあるけど、詳細忘れた。

212 :nobodyさん:2007/02/20(火) 11:27:45 ID:v0Mu3VTD
>>211
どうもありがとうございます。

その関数実装されたらいいなぁ・・・

213 :nobodyさん:2007/02/20(火) 19:58:28 ID:???
自分で作ればいいじゃないw

214 :nobodyさん:2007/02/20(火) 21:03:06 ID:v0Mu3VTD
>>213
超初心者なので作れません(><)

>>211
おかげ様で思ってた通りに動作しました
本当にありがとうございました

215 :nobodyさん:2007/02/20(火) 22:17:03 ID:mf88VPVM
2007/02/20/ 20:19:06
にマッチさせる正規表現下さい。

216 :nobodyさん:2007/02/20(火) 22:41:17 ID:???
2007\/02\/20\/ 20:19:06


217 :nobodyさん:2007/02/20(火) 22:48:37 ID:mf88VPVM
>>216
な〜るへそ。
・・・っておい!

218 :nobodyさん:2007/02/20(火) 23:04:34 ID:???
なんか間違っているか?

219 :nobodyさん:2007/02/20(火) 23:25:52 ID:mf88VPVM
>>218
わかるくせに〜

220 :nobodyさん:2007/02/20(火) 23:39:53 ID:???
2007/02/20/ 20:19:06

221 :nobodyさん:2007/02/21(水) 07:26:38 ID:???
>>215
決まったフォーマットから値を抜き出すなら
sscanf( )のほうがいいんじゃない
$date = "2007/02/20/ 20:19:06";
list($year, $month, $day, $hour, $minute, $second) = sscanf($date, "%d/%d/%d %d:%d:%d");

222 :nobodyさん:2007/02/24(土) 20:35:08 ID:???
1、id passを自由に記入して登録してもらい、 
2、その後、ログインする機能をつけたいと思っています 

1でフォームを通じてデータベースに登録するところまではできました 

2ではどうしたらいいのでしょうか  
ログインするページで、データベースから登録された全てのIDパスを読んで、フォームに入れられた情報が合致するかどうかをチェックしているのでしょうか? 

223 :nobodyさん:2007/02/25(日) 02:12:45 ID:???
選択したキーワードをブラウザのコンテキストメニューで任意のデータベースから検索するphpクエリとエンコードを教えてもらいたいのですが、スレ違いでなければお願いします。
OS:mac 10.4
ブラウザ:Safari + SafariStand
追加したい検索データベース:http://www.allcinema.net/prog/index2.php

参照で他の検索クエリとエンコードは下記のようになっています。
Amazon.jp : UTF- : http://www.amazon.co.jp/exec/obidos/external-search/?mode=blended&keyword=@key
goo英和:EUC-:http://dictionary.goo.ne.jp/search.php?MT=@key&kind=ej&mode=0

224 :nobodyさん:2007/02/28(水) 07:23:35 ID:???
RSSに対応していないページの中にある表示させたい部分だけ抜き取って
RSSのように取得して表示させたいのですが・・・・
どなたか教えてくれませんでしょうか?

myrssなどいろんなサービスがありますが
それらだとどーしても不要な部分まで入ってしまうので困ってます。

レッツPHP!にある「新着ブロガー」や「RSSブロガー」と一緒に併用したいのです。
http://php.s3.to/net/#rss

よろしくお願いします

225 :nobodyさん:2007/02/28(水) 11:37:06 ID:wzkUfUn+
>>224
対象htmlを読み込んでpregで抜き取るしかない。

226 :nobodyさん:2007/02/28(水) 11:53:54 ID:ZCccNT7s
XREAの広告免除アカウントなのですが、
ssh接続にてサーバー上でコンパイルした実行ファイルに
phpから引数を渡して実行することはできるのでしょうか?

227 :nobodyさん:2007/02/28(水) 14:52:35 ID:N694lB7M
>>226
XREAのSSHはMySQLやPostgreSQLのコマンドだけが使用可能じゃなかったか?

228 :nobodyさん:2007/02/28(水) 17:08:48 ID:???
>>224
HTML文書に正規表現ってなかなか無謀だな。

64 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)