自分のお店を開く時の心構えとは? >>

WikipediaやPukiWikiなど編集機能が実装されているwebサイトをよく見掛けます。初心者なので手探りでインターネットを調べておりましたらphpによって作成できるとか・・・。同じような質問が本サイトにもあり、そこにはソースが書かれておりましたが出来れば、"答え"だけではなくて学習も兼ねて行いたいので参考になるようなサイトがあれば教えてください。またphp以外でも作成が可能なのであればその情報でも結構です。

宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

まずHTMLを編集するという考えから離れて下さい。


PHPでHTMLを吐きだしてやるのです。

たぶん勉強を開始したすぐだと思うので↑の言葉の意味がご理解いただけないかも知れません。
勉強していくうちにわかっていくので、頭の片隅にでも覚えておいて下さい。

参考URLのPHPの講座を読み進めて、ある程度理解できたら質問の内容に光がさしてくるんじゃないでしょうか?

言語は、PHPで大丈夫です。perlというのも存在するので調べてみても良いかも知れません。

なにはともあれ、頑張ってください!

参考URL:http://www.phppro.jp/school/
    • good
    • 0
この回答へのお礼

アドバイス、大変励みになります。
少しづつ理解していきたいと思います。
ありがとうございました。

お礼日時:2008/05/10 16:23

PHPマニュアル以上のものはありませんのでまずこれを参考にしてください



http://www.php.net/manual/ja/refs.fileprocess.fi …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。

お礼日時:2008/05/10 16:24

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPHPファイルでテキストファイルのデータを編集(読み書き)する方法について

ホームページ内の部分的な文章をブラウザ上で編集できるようにしたいのです。
その文章をテキストファイルに保存して、PHPファイルから、文章を編集する方法について教えてください。

以下は、ネット上で調べて、設定ファイルを編集するソースを利用させて頂いたものです。
イメージは、これで問題ないのですが、以下の場合、改行が含まれる文章の場合は動作しないのです。
設定ファイルを編集するように作られているので仕方ないのかなと思いますが、改行を含んだ文章も利用できるようになりますでしょうか?

##edit.php
<?php
$ini = parse_ini_file('config.ini');
if ($HTTP_POST_VARS['data1']) $ini['data1'] = $HTTP_POST_VARS['data1'];
if ($HTTP_POST_VARS['data2']) $ini['data2'] = $HTTP_POST_VARS['data2'];
if ($HTTP_POST_VARS['data3']) $ini['data3'] = $HTTP_POST_VARS['data3'];

$fp = fopen('config.ini', 'w');
foreach ($ini as $k => $i) fputs($fp, "$k=$i\n");
fclose($fp);
?>

<html>
<title>テキストファイルのデータ更新</title>
</head>
<body>
<form method="post" action="edit.php">
data1の変更 - <input type="text" name="data1" value="<?php print $ini['data1'] ?>"><br>
data2の変更 - <input type="text" name="data2" value="<?php print $ini['data2'] ?>"><br>
data3の変更 - <input type="text" name="data3" value="<?php print $ini['data3'] ?>"><br>
<input type="submit" value="送信">
</form>
</body>
</html>


##config.ini の中身
data1=タイトルです。
data2=サブタイトルです。
data3=本文です。

↑改行した文章も対応したい。。iniファイルをtxtファイルにしないとだめ?

ホームページ内の部分的な文章をブラウザ上で編集できるようにしたいのです。
その文章をテキストファイルに保存して、PHPファイルから、文章を編集する方法について教えてください。

以下は、ネット上で調べて、設定ファイルを編集するソースを利用させて頂いたものです。
イメージは、これで問題ないのですが、以下の場合、改行が含まれる文章の場合は動作しないのです。
設定ファイルを編集するように作られているので仕方ないのかなと思いますが、改行を含んだ文章も利用できるようになりますでしょうか...続きを読む

Aベストアンサー

単に input を単純に textarea にすると、改行も含めて記録はされるが、parse_ini_file で読み出したときに、改行があると、そこから先は読み込まれないようです。

これを防止するために、改行コードを<br>などに変換してしまい、また読み出すときに改行コードに戻してやれば大丈夫です。


<?php
$ini = parse_ini_file('config.ini');
if ($HTTP_POST_VARS['data1']) $ini['data1'] = $HTTP_POST_VARS['data1'];
if ($HTTP_POST_VARS['data2']) $ini['data2'] = $HTTP_POST_VARS['data2'];
if ($HTTP_POST_VARS['data3']) $ini['data3'] = $HTTP_POST_VARS['data3'];
$fp = fopen('config.ini', 'w');
foreach ($ini as $k => $i) {
$i = preg_replace("/\r\n|\r|\n/", "<br>", $i);
fputs($fp, "$k=$i\n");
}
fclose($fp);
?>

<html>
<title>テキストファイルのデータ更新</title>
</head>
<body>
<form method="post" action="edit.php">
data1の変更 - <textarea name ="data1" rows="5" cols="40"><?php echo preg_replace("/<br>/", "\n", $ini['data1']); ?></textarea><br>
data2の変更 - <textarea name ="data2" rows="5" cols="40"><?php echo preg_replace("/<br>/", "\n", $ini['data2']); ?></textarea><br>
data3の変更 - <textarea name ="data3" rows="5" cols="40"><?php echo preg_replace("/<br>/", "\n", $ini['data3']); ?></textarea><br>
<input type="submit" value="送信">
</form>

<table>
<tr><td>data1</td><td><?PHP echo preg_replace("/\n/", "<br>\n", $ini['data1']); ?></td></tr>
<tr><td>data2</td><td><?PHP echo preg_replace("/\n/", "<br>\n", $ini['data2']); ?></td></tr>
<tr><td>data3</td><td><?PHP echo preg_replace("/\n/", "<br>\n", $ini['data3']); ?></td></tr>
</table>
</body>
</html>

単に input を単純に textarea にすると、改行も含めて記録はされるが、parse_ini_file で読み出したときに、改行があると、そこから先は読み込まれないようです。

これを防止するために、改行コードを<br>などに変換してしまい、また読み出すときに改行コードに戻してやれば大丈夫です。


<?php
$ini = parse_ini_file('config.ini');
if ($HTTP_POST_VARS['data1']) $ini['data1'] = $HTTP_POST_VARS['data1'];
if ($HTTP_POST_VARS['data2']) $ini['data2'] = $HTTP_POST_VARS['data2'];
if ($HTTP_...続きを読む

Qテキストデータから指定行の削除

phpでサイトを作っています。
テキストデータを一行ずつ表示させ、指定した行を削除したいのですが、どうすればいいのでしょうか?
-- data.txt --
aaa,data1,
bbb,data1,
ccc,data1,
ddd,data1,

-- php --
<?php
$del=$_POST['del_no'];
if($del!=""){
$data_all = file("data.txt");
for($i=0;$i<count($data_all);$i++){
$data_array = explode(",",$data_all[$i]);
if($data_array[0]!=$del){//削除データ以外を再書き込み
$txt="$data_array[0],$data_array[1],\n";

$fp = fopen("data.txt", "w");
flock($fp,1);

foreach ($txt as $line) {// 1行ずつファイルへ書き込み?
fwrite($fp, $line);
}
fclose($fp);
break;
}
}
}
?>
<b>data list</b>
<?
$data_all = file("data.txt");
for($i=0;$i<count($data_all);$i++){
$data_array = explode(",",$data_all[$i]);
echo "$data_array [0]<br />";
echo "<form method=\"post\">";
<input type=\"hidden\"name=\"del_no\" value=\"$data_array[0]\" />";//削除するデータをPOST
echo "<input type=\"submit\" value=\"削除\" />";
echo "</form>";
}
?>
こうすると、テキストデータが白紙になってしまいます。
よろしくお願いします。

phpでサイトを作っています。
テキストデータを一行ずつ表示させ、指定した行を削除したいのですが、どうすればいいのでしょうか?
-- data.txt --
aaa,data1,
bbb,data1,
ccc,data1,
ddd,data1,

-- php --
<?php
$del=$_POST['del_no'];
if($del!=""){
$data_all = file("data.txt");
for($i=0;$i<count($data_all);$i++){
$data_array = explode(",",$data_all[$i]);
if($data_array[0]!=$del){//削除データ以外を再書き込み
$txt="$data_array[0],$data_array[1],\n";

$fp = fopen("dat...続きを読む

Aベストアンサー

余計なことが多いわりに、必要なことをやってない感じですね。
前半部分を直すならこんな感じでどうでしょう?
(csv系の関数でやったほうが見やすくなるとは思いますが
一応原文を最大限いかしてみました)

$fname="data.txt";
$del=isset($_POST['del_no'])?$_POST['del_no']:"";
if($del!=""){
$data_all = file($fname);
$fp = fopen($fname, "w");
for($i=0;$i<count($data_all);$i++){
$data_array = explode(",",$data_all[$i]);
if($data_array[0]!=$del){
$txt="$data_array[0],$data_array[1],\n";
fwrite($fp, $txt);
}
}
fclose($fp);
}

QPHPでサーバー上の書き換えたhtmlを上書き保存したい

サーバー上のhtmlファイルをPHPで修正(不要データ削除)後に、上書きをしたいのですが、なかなかうまくいきません。上書きの方法を教えてください。
$data = @file_get_contents(\'./index.html\');
$data = str_replace(\'該当文字\', \'\', $data);
echo $data;
ここまでは出来ました。
残りはindex.htmlを上書きするだけなのですが。。

Aベストアンサー

書き換えの権限があるならfwriteしてください

http://www.php.net/manual/ja/function.fwrite.php

QPHP ボタンが押されたら処理を実行する

PHPプログラミングをしています。
「はい」というボタンが押されたらこの処理を行い、
「いいえ」というボタンが押されたらこの処理を行う
ということはどうすれば実装できるのでしょうか?

Aベストアンサー

どういう環境下で作っておられるのかが全然わかりませんが、
PHPというこですので、Webベースのフォームですよね。

たとえば、「はい」ボタンと「いいえ」ボタンをそれぞれフォームのSubmitにしておいて、
POST先のフォームで処理を分ければどうでしょうか。

送信元
<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="1">
<input type="submit" value="はい">
</form>

<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="0">
<input type="submit" value="いいえ">
</form>


送信先
$answer = $_POST["answer"];

if($answer == 1){
// 「はい」の時の処理
}else{
// 「いいえ」の時の処理
}


ちなみに、自分から自分へPOSTすればPHPスクリプトも2つに分けずにできると思います。
また、POSTじゃなくGETでも同様のことはできると思います。

どういう環境下で作っておられるのかが全然わかりませんが、
PHPというこですので、Webベースのフォームですよね。

たとえば、「はい」ボタンと「いいえ」ボタンをそれぞれフォームのSubmitにしておいて、
POST先のフォームで処理を分ければどうでしょうか。

送信元
<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" value="1">
<input type="submit" value="はい">
</form>

<form name="Hai" method="POST" action="hoge.php">
<input type="hidden" name="answer" ...続きを読む

Q配列をPOSTで受けとる

タイトルのまんまですが
配列をformで送って
それをPOSTで受け取りたいのですが
うまくいきません

具体的に言うと
<?php
print"<form method=POST action=action.php>";

for($i=0; $i<$n; $i++){
   print"<input type=text name=foo[$i]>";
}
print"<input type=hidden name=n value=$n>";
print"<input type=submit value=go>";
print"<form>";
?>


///////////以下action.php//////////////////
<?php
$n = $_POST["n"];
for($j=0; $j<$n; $j++){
   $foo[$j] = $_POST["foo[$j]"];
   print"$foo[$j]";
}
?>


こんな感じのことがしたいのですが
うまくいきません
どうもPOSTされてないみたいでfoo[$j]はnullです
凡ミスな気がしなくもないんですが...プログラム初心者なんで↓↓
教えてください
よろしくお願いします

タイトルのまんまですが
配列をformで送って
それをPOSTで受け取りたいのですが
うまくいきません

具体的に言うと
<?php
print"<form method=POST action=action.php>";

for($i=0; $i<$n; $i++){
   print"<input type=text name=foo[$i]>";
}
print"<input type=hidden name=n value=$n>";
print"<input type=submit value=go>";
print"<form>";
?>


///////////以下action.php//////////////////
<?php
$n = $_POST["n"];
for($j=0; $j<$n; $j++){
   $foo[$j] = $_POST["foo[$j...続きを読む

Aベストアンサー

atsuGTさんこんにちは。


受け取り側は

$foo = $_POST["foo"];

とするだけで$fooに送信された配列が格納されます。


$_POST["foo[添え字]"] ではなく、
$_POST["foo"][添え字] となります。

Q投稿記事を論理削除

PHPで掲示板の機能の一つである論理削除機能を作成しようと思っています。削除キーに削除パスワードを入力して、削除ボタンを入力(または投稿番号を指示)したときに投稿者の記事を削除(物理削除ではありません)するようにしたいのです。投稿番号や削除キー、削除ボタンは作成したのですが、hiddenやif文を使用することまではわかったのですが、肝心のスクリプト部分がどうしてわからないのです。なにか例のようなものでも記述していただけないでしょうか?
よろしくお願いいたします。

Aベストアンサー

>moon_nightさん
フォロー感謝です。

>msnxlさん
#1 のソースで、1つ勘違いされそうなところを見つけましたので、注釈を。

view_item(); // 記事表示関数の呼び出し

これはPHPに用意された関数ではなく、ユーザー定義関数としています。
記事表示部のロジックを省略したかったので、便宜上、ユーザー定義関数として記述しました。
view_item という関数は存在しませんので、ご注意ください。

Qファイル書込みで一行もしくは部分的に上書きする

教えて下さい。
下のようなテキストデータがあります(sample01.txtとします)
(内容)
1111000000000000
1111000000000000
1111000000000000
これを
1111000000000000
1111001111110000
1111000000000000
と言うふうに2行目もしくは部分的に上書きして保存したいです。
よろしくお願いします。

Aベストアンサー

この問題に対するよくある解決策です。下に行くほど手間ですが大きなデータが扱えるようになります。

1.ファイルが小さければ、全部配列に読み込んで、必要な操作を行ったあと同じファイル名で書き出す

2.ファイル名を変更してバックアップファイルとする作る。
バックアップを読み込み専用で開き、元のファイル名で新しいファイルを書き込みモードwで開く。

1行ずつfgetsで読み込み、ファイルにfputsで書き出す。
操作したい行が来たらその操作を行って同様にファイルに書き出す。
残りを全部書き出しす。
全部成功したらバックアップを削除する。エラーが起きたら編集中のファイルは削除してバックアップを元のファイル名にする

3.1行の長さを決まった長さにして(いわゆる固定長レコード)r+モードでfopenし、レコード長xレコード数で目的の場所にfseekして特定のレコードをfread/fwriteで上書きする。レコードの修正かレコードの末尾の追加の操作は効率がいい。レコードの挿入・削除が発生するときは全部fread/fwriteする。

4.ファイルが巨大で全部fread/fwriteするが重い処理になるなら、別途索引ファイル(インデックス)をつくり、レコードの追加はファイル末尾に追記し、インデックスファイルに検索キーとレコードの番号かファイルポインタの位置を記録する。これで目的のレコードがファイル中のどこにあるかを知ることができる。レコードの削除はインデックスに目印をつけるだけにして、実際にディスクから消去するのは負荷の低いときにガベージコレクションで行う。

5.4までやるくらいなら出来合いのデータベースを使うほうがよい。MySQLとかPostgresqlなど。

この問題に対するよくある解決策です。下に行くほど手間ですが大きなデータが扱えるようになります。

1.ファイルが小さければ、全部配列に読み込んで、必要な操作を行ったあと同じファイル名で書き出す

2.ファイル名を変更してバックアップファイルとする作る。
バックアップを読み込み専用で開き、元のファイル名で新しいファイルを書き込みモードwで開く。

1行ずつfgetsで読み込み、ファイルにfputsで書き出す。
操作したい行が来たらその操作を行って同様にファイルに書き出す。
残りを全部書き出しす...続きを読む

Qphpやmysqlで作る簡易掲示板作成について

php mysqlに関してド初心者です。簡易掲示板を作成する課題があるのですが、どう調べてもわからない箇所があり、まいっています。1つは編集、削除の際にパスワードの入力を求める。具体的にはパスワード入力ができるようにしたformを表示し入力させる。2つめは入力されたパスワードと書き込み時に保存したパスワードを比較し、一致の場合のみ編集削除が動作するようにする。というものです。どう書けばいいのかさえわかりません。教えて頂けたら有り難いです

Aベストアンサー

#2です

別途おなじような質問をなげているようですが
この回答が役にたたなかったなら別にそれでいいので
ベストアンサーなし質問を閉じてから
別途質問をたてるのがマナーじゃない?


人気Q&Aランキング

おすすめ情報