Blogブログ

PHPで任意の文字数以上を…にしたい

2016/10/22

表示文字数が決まっていて10文字以上は…にしたいという場合ありますよね?

今回はそんな時に便利な関数についてです。

<?php
 function myMb_truncate ( $str , $length = 20 , $etc = '...' ) {
     if ( $length == 0 ) { return ''; }

     if ( mb_strlen ( $str , 'utf8') > $length ) {
         return mb_substr ( $str , 0 , $length , 'utf8' ).$etc;
     } else {
         return $str;
     }
 }
 $str = 'あいうえおかきくけこさすせそ';
 $length = 10;
 echo myMb_truncate ( $str , $length );
?>

今回指定したのは10文字なので   あいうえおかきくえこ…    と表示されます。
任意の文字数に満たない場合は…はつかずそのまま表示されます。
文字コードの部分は適時変えて下さい。

crontab使ってwordpress記事をサイトへ自動表示

2015/12/12

wordpressの記事を取得し、サイトへ反映!
最初にwordpressから生成されるxmlを読み込むというやり方で行ったが、読み込みがかなり遅延していてサイト表示に6秒かかるという無残な形に。。
原因はxmlファイルが実際に存在しているのではなくhttp://wordpressドメイン/?feed=rss2という感じでアクセスするとリアルタイムでxmlデータを作成して返していたのでアクセスする毎に毎回データを作っているから遅延していました。

方法を変えて、記事を取得し、そのデータをファイルに記録してそれを読み込むことにしました。
記事取得部分のphp(仮にwordpress.phpとします)はcronで3時間毎に回す形に変更。

/etc/rc.d/init.d/crond status

cron動作確認。OK

00 0-23/3 * * * root /usr/bin/php /xxx/xxx/worpress.php

3時間ごとにwordpress.phpにタッチ
cronの書き方は下記を参照
http://www.server-memo.net/tips/crontab.html

定期実行するPHP
wordpress.phpの中身

//Wordpressのxmlデータを取得
$blog = file_get_contents ( 'http://ワードプレスのURL/?feed=rss2' );
//記事タイトル・記事URL・記事日付・記事カテゴリーに分解
preg_match_all('@<item>.*?<title>(.*?)</title>.*?<link>(.*?)</link>.*?<pubDate>(.*?)</pubDate>.*?<category>(.*?)</category>.*?</item>@s' , $blog , $match , PREG_SET_ORDER );
$con = count ( $match );
for ( $i = 0 ; $i < $con ; $i ++ ) {
	$data[$i]['title'] 		= $match[$i][1];
	$data[$i]['url'] 		= $match[$i][2];
	$data[$i]['date'] 		= date ( "Y.m.d" , strtotime ( $match[$i][3] ) );
	$data[$i]['category'] 	= str_replace ( "]]>" , "" , str_replace ( "<![CDATA[" , "" , $match[$i][4] ) );
	//ファイルに保存するために連結してString型に。¥n¥n¥nを各データのセパレータにする
	$data_string.= $data[$i]['title'].'¥n¥n¥n'.$data[$i]['url'].'¥n¥n¥n'.$data[$i]['date'].'¥n¥n¥n'.$data[$i]['category']."\n";
}
//あとは$dataをfwite()を使ってファイルに保存すればOK。
//その後呼び出したいページからこの生成したファイルを読み込めば格段にスピードが早くなって読み込めます。

PHPでアップロードされた画像のサイズをチェックする

2013/09/01

フォームを扱う時に画像のアップロードをしたい場合があります。

そんな時にwidthを320px heightを240pxとかの任意のサイズの画像を指定したい場合のやり方を解説します。

エラーチェックでアップロードされた画像がそのサイズなのかをチェックします。

続きを読む »