文字列から文字列を検索 preg_match_all関数

PHP関数 | Published 2011/02/20 at 3:48 PM

文字列検索で使える関数が、preg_match_all

いろんなパターンで配列情報として取得して、文字列(HTML)の加工ができる

http://php.net/manual/ja/function.preg-match-all.php

ナビメニューで、テンプレートタグで一覧を取得して、PHP情報として出力したとき
wp_list_categories
wp_list_pages

WP前提のサイトの場合、あまりないかもしれないが
旧サイトで、前後メニューまでCSS変えてるので、活かしたいなんてときとか


<?php
preg_match_all("|<p[^>]+>(.*)</p>|U",
'<p><a href="">aaaaaaaaaaa</a></p>
<p><a href="">bbbbbb</a></p>
<p><a href="">cccc</a></p>
<p><a href="">ddddd</a></p>
<p><a href="">eeeee  </a></p>'
,$out, PREG_PATTERN_ORDER);
print_r($out);
?>
変換<br>
<?php
for($wi=0;$wi<count($out[0]);$wi++){
  echo   $out[0][$wi].'<br>';
  if( $wi!= count($out[0])-1){
   if (strpos($out[0][$wi],'current') ){
    $out[0][$wi+1] = str_replace('class="', 'class="nafter ', $out[0][$wi+1]);

   }
    }

}
print_r($out);
?>

上記の例は、cssでcurrent という文字列があった場合に次のメニューのCSSに、nafter を追加してます。

一番最後にcurrent があるときには、次がないの追加しない

前も変えるなんてときは、もうひとつ置き換え処理が入る

※上記例は、liタグでなpタグでかこまれている場合です。

配列の差分を取得するarray_diff関数

PHP関数 | Published 2011/01/08 at 2:07 AM

http://www.php.net/manual/ja/function.array-diff.php

自作関数やプラグインを作成したときに、引数で渡した値と、自作関数やプラグイン内で宣言している値や取得した値との差分を抽出することができる。

除外カテゴリなどに使える

入力されたHTMLタグを HTML エンティティにするhtmlentities関数

PHP関数 | Published 2010/12/17 at 10:15 PM

http://jp.php.net/manual/ja/function.htmlentities.php

HTML エンティティをHTMLタグにするhtml_entity_decode関数

PHP関数 | Published 2010/12/17 at 10:12 PM

http://jp.php.net/manual/ja/function.html-entity-decode.php

文字列を配列にするexplode関数

PHP関数 | Published 2010/12/17 at 10:04 PM

http://jp.php.net/manual/ja/function.explode.php