プログラムphpに関するお願いです。

codaというmacのエディターにプラグインを入れて使いやすくしようと思っています。

<?php

$input = "";

$fp = fopen("php://stdin", "r");
while ( $line = fgets($fp, 1024) )
$input .= $line;

fclose($fp);

echo '<p>';
echo $input;
echo '</p>';
?>

上記のプログラムをエディターで文字を選択し実行するとテキストの選択された部分の最初と最後に<p>のタグを吐き出してくれます。

例 テキストテキスト
↓↓↓↓↓

<p>テキストテキスト</p>

これを元にして、下記のようなテキスト1行づつにタグを挟むようにするにはどのようにしたらいいでしょうか?



てきすとてきすと
てきすとてきすと
てきすとてきすと



<ul>
<li>てきすとてきすと</li>
<li>てきすとてきすと</li>
<li>てきすとてきすと</li>
</ul>

の様にしたいです。

どなたかこのようなプログラムを教えて頂ければと思います。
よろしくお願いいたします。なお当方プログラムは素人です。

回答の条件
  • 1人10回まで
  • 登録:2009/06/18 00:15:05
  • 終了:2009/06/21 02:10:10

ベストアンサー

id:tdoi No.1

tdoi回答回数174ベストアンサー獲得回数752009/06/18 02:34:39

ポイント250pt

codaというエディタを知らないので、はずしていたらすみません。

マクロみたいなものをPHPで記述できるという認識ですが、よかったでしょうか?

で、ご希望のプログラムはこんな感じでしょうか?

<?php
define("SEP", "\n");

$fp = fopen("php://stdin", "r");
echo "<ul>" . SEP;
while ( $line = fgets($fp, 1024) ) {
  echo "<li>{$line}</li>" . SEP;
}
echo "</ul>" . SEP;
fclose($fp);
?>

改行に問題があるようであれば、先頭の部分を、

define("SEP", "\r\n");

とか、

define("SEP", "\r");

とかに変えて試してみてください。


何かの参考になれば。

id:daiyaraw

回答ありがとうございました。早速試してみましたができませんでした。

http://www.youtube.com/watch?v=s_p_lLLnLaY

codaの違うプラグインの動画ありがましたので参考までに載せておきます。

上手く文字と行を認識してくれてないのでしょうか?


すみません。できました。プログラムあっていました。

改行コードを無視していて、そのままコピペしてしまい(当方Mac)

プログラムがうまく動いていませんでした。

どうもありがとうございました。

2009/06/21 02:07:51

その他の回答(2件)

id:tdoi No.1

tdoi回答回数174ベストアンサー獲得回数752009/06/18 02:34:39ここでベストアンサー

ポイント250pt

codaというエディタを知らないので、はずしていたらすみません。

マクロみたいなものをPHPで記述できるという認識ですが、よかったでしょうか?

で、ご希望のプログラムはこんな感じでしょうか?

<?php
define("SEP", "\n");

$fp = fopen("php://stdin", "r");
echo "<ul>" . SEP;
while ( $line = fgets($fp, 1024) ) {
  echo "<li>{$line}</li>" . SEP;
}
echo "</ul>" . SEP;
fclose($fp);
?>

改行に問題があるようであれば、先頭の部分を、

define("SEP", "\r\n");

とか、

define("SEP", "\r");

とかに変えて試してみてください。


何かの参考になれば。

id:daiyaraw

回答ありがとうございました。早速試してみましたができませんでした。

http://www.youtube.com/watch?v=s_p_lLLnLaY

codaの違うプラグインの動画ありがましたので参考までに載せておきます。

上手く文字と行を認識してくれてないのでしょうか?


すみません。できました。プログラムあっていました。

改行コードを無視していて、そのままコピペしてしまい(当方Mac)

プログラムがうまく動いていませんでした。

どうもありがとうございました。

2009/06/21 02:07:51
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332009/06/18 07:57:12

ポイント250pt

ご質問のプログラムを下記のように変更すれば対応可能です。

★印の行が変更箇所です。

<?php
$input = "";
$fp = fopen("php://stdin", "r");
while ( $line = fgets($fp, 1024) )
    $input .= ("<li>" . rtrim($line) . "</li>\n");   //★
fclose($fp);
echo "<ul>\n";                                //★
echo $input;
echo "</ul>\n";                               //★
?>
id:daiyaraw

すみません。できました。プログラムあっていました。

改行コードを無視していて、そのままコピペしてしまい(当方Mac)

プログラムがうまく動いていませんでした。

どうもありがとうございました。

2009/06/21 02:08:20
id:tdoi No.3

tdoi回答回数174ベストアンサー獲得回数752009/06/19 18:23:26

Codaで確認できないのでなんですが、挙げてもらったかな変換プラグインのソースから判断すると、こんな感じで動くかもです。

<?
define("SEP", "\n");

$lines = explode(SEP, $_ENV['CODA_SELECTED_TEXT']);
echo "<ul>" . SEP;
foreach ($lines as $line) {
    echo "<li>{$line}</li>" . SEP;
}
echo "</ul>" . SEP;

?>

ちなみに、プラグインの作り方自体には問題ないんですよね?

id:daiyaraw

tdoiさん

引き続き回答いただきありがとうございます。大変感謝しております。

いろいろと試してみましたが、どうもうまく行きませんでした。

間違ったコードを記載するとエラーがでるので、プラグインの作り方は特に問題がないと思います。

質問に記載したプログラムを文字を選択ぜず、同じ行にカーソルが点滅している状態で実行すると

<pテキスト</p>とはきだしてくれます。

曖昧なかんじですみません。

ご存知かとは思いますが、プラグインの説明サイトのURLを記載しておきます。

http://www.panic.com/jp/coda/developer/howto/plugins.php

よろしくお願いいたします。


解決いたしました。本当にありがとうございました。

2009/06/21 02:08:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません