So-net無料ブログ作成
検索選択

ウィキ記法をふっ飛ばす方法

前回の処理でワードプレスにウィキペディアデータを取り込むことはできたが、ウィキ記法が活きている状態なので、これを取り除くのをやってみる。

ワードプレスにはウィキ記法の受け皿が用意されているので、ウィキ記法を活かしたいという人には無用な情報ですが、ウィキ記法なんて、この先、利用する予定もその気もないという人は下記を試してみてください。
<?php

// キーワード代入
$dikey = "";

// データベース グローバル変数
global $wpdb;

if ( $dikey ) {
  // キーワードに半角、全角スペースが含まれていたら「_」に変換(複合キーワード対策)
	$dikey = preg_replace("/( | )/", "_", $dikey );
	
	// クエリ発行 SQLインジェクション対策
	$dict_sql = $wpdb->prepare( "SELECT page_title, old_text FROM $wpdb->dict WHERE page_title LIKE %s", 
	$dikey.'%' );
	
	// 結果を配列で受け取る
	$dict_rows = $wpdb->get_results($dict_sql);
	
	// 結果があればデータ代入	
	if($dict_rows){
		$text = $dict_rows[0]->old_text;
        // ウィキ記法を取り除く
        $text = preg_replace("/[\[\]\{\}\*\"\'\|]+/u", "", $text);
		echo $text;
	}
}

?>

内容的にはPHPのpreg_replaceで余計な記号をふっ飛ばし、素に近いテキストだけにしたうえで出力しています。

さらに体裁を考えると、下記の処理になる。
// 正規表現(改行コードを基点に分割して配列へ
  $textconray = preg_split("/[\\n]+/u", $text);
  
  // 配列内のキーと値を代入
  foreach ($textconray as $text_key => $text_value){
    $text_value_strlen = strlen($text_value);
      
      // 60バイト(UTF-8で20文字以上であれば)
      if ($text_value_strlen >= 60) {
        // <p>タグで囲んで出力
          echo "<p>".$text_value."</p>";
      }else{
        // (UTF-8で20文字未満であれば)行末に<br />
を追加して出力
        echo $text_value."<br />";
      }
}


nice!(0) 

nice! 0