ラベル 便利技 の投稿を表示しています。 すべての投稿を表示
ラベル 便利技 の投稿を表示しています。 すべての投稿を表示

2010年7月29日木曜日

wordでルビ付き文をコピーすると面倒だったので、括弧付き文を削除するスクリプト作成

wordでルビ付き文ファイルが送られてきて、その文をコピーすると、括弧にルビがくくられてこれまで困ってきました。

そこで、正規表現を使って、かっことその中の文字列を削除する簡単なスクリプトを書きましたので、ついでにアップしておきます。

http://labo.web-do.com/php/rubi.php

コードは至ってシンプルです。
$result=preg_replace("/\(.*?\)/","",$text);
みたいに置換しました。

「.*?」という指定、とても便利で気に入っています。
greedyでない検索、置換ができて。

2010年5月19日水曜日

正規表現で、テーブルタグを一掃。

tableタグを一掃したくて、正規表現を書いてみたら、
うまくいったようなのでメモです。

$text="<tr><td><img>";
$pattern="(<t(d|r|able).*?>|<\/t(d|r|able).*?>)";
$result=preg_replace("/$pattern/","",$text);
echo $result;

今、tableで組んだ古いスタイルのサイトをリニューアル中なので、これで一気に取り組めそうです。
正規表現って、すごいすね。

「.*?」という「貪欲でない」正規表現、かなり使えますね。
これがないと、他の部分まで食ってしまう。

以下、PHPマニュアルの参照箇所です。

http://jp.php.net/manual/ja/regexp.reference.repetition.php


(■追記:&nbsp;もたくさん仕込まれていることしばしばなので、ついでに
$pattern="(<t(d|r|able).*?>|<\/t(d|r|able).*?>|&nbsp;)";
としてみました。)

2010年5月13日木曜日

複数単語のハイライト

複数単語をハイライトさせようと思い、試行錯誤して出来たので、メモです。

function highlight($content,$word){
  if(is_array($word)){
   $num=count($word);
   $lighted[0]=$content;
   for($j=0;$j<$num;$j++){
    $k=$j+1; //$kを$jの先に進めておく。
//一単語ずつハイライトしていったものを格納。
    $lighted[$k]=str_replace($word[$j],
      "<span class='highlight'>{$word[$j]}</span>",$lighted[$j]);
   }
   return $lighted[$num];
  }
  else{
   $lighted=str_replace($word,"<span class='highlight'>{$word}</span>"
     ,$content);
   return $lighted;
  }
 }

2010年5月9日日曜日

radioボタンの文字部分もクリッカブルに

radioボタンの文字部分をクリックしても選択できるようにしたいと思い、ググって実装したのでメモ。

<input type="radio" id="id1" name="name1" value="1">
<label for="id1">radio1</LABEL>

といったように、inputタグにidを命名してやり、labelでforの対象に、先ほどのidを指定してやればOKに。

ちょっと親切。

参考になったサイト:http://fefnir.com/school/5-1.htm

2010年5月7日金曜日

file名の取得メモ

ファイル名を取得するために、
   echo $_SERVER['PHP_SELF'];
を使おうかと思ったが、ファイル名だけ習得すればいいので、
  $dir=dirname(__FILE__).DIRECTORY_SEPARATOR;
  $file=str_replace($dir,"",__FILE__);
  echo $file;
の方が良い感じだった。

関数化してシンプルに使いたいが、今のところ外部ファイルで独自関数化すると、その外部ファイル名が習得されてしまうので、うまくいっていない。

また、定数化したら便利だろうかと思ったが、定数は一度定義されるとそのまま、と知らず、再定義ができないなど面倒だったのでパスすることに。

PHP5.3からは、__DIR__というマジック定数が用意されたようだが、まだ環境が整備されていないことがありそうなので、これもパスすることに。