Monthly Archives: 5月 2017

「php」DateTimeクラスのdiffで日時の比較

phpコード
$day1 = new DateTime(‘2017-03-24’);
$day2 = new DateTime(‘2017-05-17’);

$intervalday = $day1->diff($day2);

echo $intervalday->format(‘%a日’);

「Android」画像ファイルパスを取得するメモ

Javaコード
public static String getRealFilePath( final Context context, final Uri uri ) {
if ( null == uri ) return null;
final String scheme = uri.getScheme();
String data = null;
if ( scheme == null )
data = uri.getPath();
else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {
data = uri.getPath();
} else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {
Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null );
if ( null != cursor ) {
if ( cursor.moveToFirst() ) {
int index = cursor.getColumnIndex( ImageColumns.DATA );
if ( index > -1 ) {
data = cursor.getString( index );
}
}
cursor.close();
}
}
return data;
}

「Java」getModifiers()の使い方

Javaコード
import java.lang.reflect.Modifier;
public class DemoTa {

public static void main(String[] args) {
DemoTa dt = new DemoTa();
@SuppressWarnings(“rawtypes”)
Class cft = dt.getClass();

//属性を返す
int i = cft.getModifiers();
String retval = Modifier.toString(i);
System.out.println(“Class Modifier = ” + retval);
}

}

結果
Class Modifier = public

「struts2」アノテーション@ParentPackageの使い方

@ParentPackage
Actionクラスが継承する名前空間。指定したパッケージの設定を引き継く。

1.struts.xml
<package name=”demo” namespace=”/” extends=”struts-default”>
<result-types>
//some code
</result-types>
</package>

2.SampleAction.java
@ParentPackage(“demo”)

public class SampleAction{

//some code

}

「struts2」インターフェースSessionAwareを実装してsessionの操作コード

Javaコード
import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class SessionSampleAction extends ActionSupport implements SessionAware {
private Map session;
public void setSession(Map session) {
this.session = session;
}
public String execute() {
this.session.put(“USER_NAME”, “YAMA”);
return SUCCESS;
}
}

「PHP」XMLを配列に変換するコード

phpコード
function xml2ArrFunc($xmlResource, $flag=true) {
if ($flag === true) {
$dom = new DOMDocument();
$dom->loadXML($xmlResource);
$xmlResource = $dom->documentElement;
$rootNodeName = $xmlResource->nodeName;
}

$result = false;
if ($xmlResource->hasChildNodes()) {
foreach ($xmlResource->childNodes as $childNode) {
if ($childNode->nodeType != XML_TEXT_NODE) {
if ($childNode->hasAttribute(‘name’)) {
$key = $childNode->getAttribute(‘name’);
} else {
$key = $childNode->nodeName;
}
$child = xml2ArrFunc($childNode, false);
if ($child===false) {
$result[$key] = $childNode->nodeValue;
} else {
$result[$key] = $child;
}
}
}
}

return $flag===true?array($rootNodeName=>$result):$result;
}

Linuxにphp7.0をyumでインストールするメモ

1.php7のダウンロード
http://php.net/get/php-7.0.0.tar.gz/from/a/mirror

2.php7の解凍
#tar zxvf php-7.0.0.tar.gz
#cd php-7.0.0

3.依存パッケージをインストール
#yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

4.コンパイル
./configure –prefix=/alidata/server/php-7.0 \
–with-config-file-path=/alidata/server/php-7.0/etc \
–with-mysql=mysqlnd \
–with-pdo-mysql=mysqlnd \
–with-mysqli=mysqlnd \
–with-gd \
–with-iconv \
–with-zlib \
–enable-xml \
–enable-bcmath \
–enable-shmop \
–enable-sysvsem \
–enable-inline-optimization \
–enable-mbregex \
–enable-fpm \
–enable-mbstring \
–enable-ftp \
–enable-gd-native-ttf \
–with-openssl \
–enable-pcntl \
–enable-sockets \
–with-xmlrpc \
–enable-zip \
–enable-soap \
–without-pear \
–with-gettext \
–enable-session \
–with-mcrypt \
–with-curl \
–with-jpeg-dir \
–with-freetype-dir \
–with-xpm-dir=/usr \
–with-bz2

5.#make && make install

6.php.iniのコピー
#cp php.ini-production /alidata/server/php-7.0/etc/php.ini
#cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#cp php-fpm.conf.default php-fpm.conf
#cp www.conf.default www.conf

7.ln -sの操作
#ln -s /alidata/server/php-7.0/bin/php /usr/bin/php
#ln -s /alidata/server/php-7.0/sbin/php-fpm /usr/bin/php-fpm

8.php -v

Linuxでメモリ開放スクリプトコード

#vi /opt/free.sh

#!/bin/bash
sync
free -m |grep -i mem |awk ‘{if($4 < 400){ printf(“3”) > “/proc/sys/vm/drop_caches”}}’;

crontab -e
20 * * * * /opt/free.sh

「PHP」乱数を生成する方法(array_rand,mt_rand)

1.mt_rand()
<?php
$tmp=array();
while(count($tmp)<5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);
?>

2.array_rand()
<?php
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?>

「jQuery入門」チェックボックスのonchange()とボタンのremoveClass()、addClass()のサンプル

①JSPコード
<input id=”reg_checkbox” type=”checkbox” >登録する
②jQueryコード
$(‘#reg_checkbox’).on(‘change’, function(){
if ($(this).is(‘:checked’)) {
$(‘.test_submit’).prop(‘disabled’, false);
$(‘.test_submit’).removeClass(“cft_class1”).addClass(“cft_class2”);
} else {
$(‘.test_submit’).prop(‘disabled’, true);
$(‘.test_submit’).removeClass(“cft_class2”).addClass(“cft_class1”);
}
});