[PHP]PHP7実行時、VCRUNTIME140.dll is missingエラーが出るとき

windowsでphp7を実行したとき、下記のエラーが出る場合があります。

Unable to start the program as VCRUNTIME140.dll is missing on your computer. 
Try reinstalling the program to fix this problem.

無いと出力されているVCRUNTIME140.dllですが、これはVisual C++ Runtime14.0の意味です。
ダウンロードページを見ると、下記の通りたしかにランタイムが必要との記載があります

VC11, VC14 & VC15
More recent versions of PHP are built with VC11, VC14 or VC15 (Visual Studio 2008, 2012 or 2015 compiler respectively)
– and include improvements in performance and stability.
– The VC14 builds require to have the Visual C++ Redistributable for Visual Studio 2015 x86 or x64 installed


該当のランタイムは、Microsoftのサイトより無料でダウンロード可能です。下記のリンクからダウンロードとインストールを行ってみて下さい。
Visual Studio 2015 の Visual C++ 再頒布可能パッケージ

https://www.microsoft.com/ja-JP/download/details.aspx?id=48145

[PHP]composerのインストールでUnable to find the wrapper “https”エラー

PHPでcomposerをインストールしようとしたとき、以下のようにUnable to find the wrapper "https"エラーが出る場合があります。

>php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Warning: copy(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1
Warning: copy(https://getcomposer.org/installer): failed to open stream: No such file or directory in Command line code on line 1

この理由として、php.iniでhttpsが実行できない設定になっている可能性があります。

対処法は、php.iniを開きphp_opensslのextensionがコメントアウトされている場合は、コメントを外してください。
php.ini自体がない場合は、php.ini-developmentをコピーしてphp.iniを作ります。

#extension=php_openssl.* 
↓
extension=php_openssl.* 

また、phpのインストールディレクトリをデフォルトの位置(windowsだとc:\php)から変更している場合は、上記に加えてextension_dirの設定も必要になる場合があります。

; extension_dir = "ext"
↓
extension_dir = "C:\path\to\php\php-7.1.3\ext"

[WordPress] while( have_post() )ループでループカウンタの取得方法は?

WordPressの記事一覧をループしているときに、最初の1件目のみ処理を変えたいときがあります。
このような場合は、$wp_queryオブジェクトが持っているcurrent_post変数に、ループカウンタが保存されていますので、これを利用すると便利です。
また、post_count変数に件数が保存されているので、post_countを比較することで最後の時のみ特定の処理を行うことができます。

current_post変数は0から始まることに注意が必要です。

具体的には、have_posts()のループ内に、下記のような感じで判定式を書けばOKです。

if( have_posts() ) {
    while ( have_posts() ) {
        the_post();
        if ( $wp_query->current_post === 0 ) {
            // 最初の記事の時の処理
        }
        if ( $wp_query->current_post === $wp_query->post_count -1 ) {
            // 最後の記事の時の処理
        }
        ...
    }
}

XDebugを有効化したときのメモ

chromeにextensionを追加する


  • インストール先
    Xdebug helper

  • インストールされたextensionのアイコンを右クリック -> オプションを選択する
    IDE keyの項目を、使っている開発環境に合わせる


PHPの環境を作る



[PHP_XDEBUG]
report_zend_debug = 0
zend_extension = "C:\home\php\xdebug\php_xdebug-2.5.0-5.6-vc11-x86_64.dll"
xdebug.remote_enable=on
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

  • 設定が行えたか確認する

php -r "phpinfo();" | grep -i debug

ゴルフ初心者が室内練習でお勧めのグッズはコレ(DAIYA:スイング525)



ゴルフがうまくなりたくて良い練習道具を探していたのですが、フォームの練習にピッタリだと思ったので購入したのがダイヤというメーカが作っているスイング525という練習器具です。

ずっと拒んでいたゴルフをどうしてもやらなければいけなくなり、仕方なく始めたのですが、ゴルフスコアがなかなか良くなりませんでした。自分でもフォームが悪い事は分かっていたのですが、どうしたら良いのか分からずにいました。スウィングフォームで検索をしているうちにこの商品にたどり着きました。

室内練習が出来て便利!


部屋の中で練習できる道具を探していたので、自分にピッタリでした。
やはり、思い立った時に家の中で練習できるのは理想的です。また、商品レビューでもとても良い評価だったので、迷うことなく購入を決めました。

一人での練習は、練習結果のフィードバックが大事


商品の説明で正しいフォームを音が導いてくれるとの事でしたが、使ってみてその良さが良く分かりました。間違ったフォームだと変な場所で音が鳴るので直ぐに分かります。今までの自分のフォームは間違っていたのだと再認識しました。やはり音が鳴るのがポイントでとても分かりやすいのです。



 

[FuelPHP]複数DBへ接続時、エラー”Database type not defined in”が出るときにチェックする事

FuelPHPでは、DBへの接続定義を, fuel/app/config/$ENV/db.phpで管理されています。

インストール直後の開発環境では、以下のようになってます。

return array(
    'default' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=fuel_dev',
            'username'   => 'root',
            'password'   => 'root',
        ),
    ),
);

これを、複数DBへの接続対応するために、例えば’default2’を定義したうえで…

return array(
    'default' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=fuel_dev',
            'username'   => 'root',
            'password'   => 'root',
        ),
    ),

    'default2' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=fuel_dev2',
            'username'   => 'root',
            'password'   => 'root',
        ),
    ),    
);

以下の形でSQLを発行してもエラーになってしまいます。

$sql = 'select * from tbl_test';
\DB::query($sql)->execute('default2');

出力されるエラーは下記の通りです。

Fuel\Core\FuelException [ Error ]:
Database type not defined in "default2" configuration or 
"default2" configuration does not exist

fuel/core/classes/database/connection.php @ line 72

上記のエラーが発生する理由は、default以外のdb定義をする場合にはtypeの設定が必要なためです。
以下のような感じで'type' => 'pdo',の指定を追加すれば、エラーが解消されました。

return array(
    'default' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=fuel_dev',
            'username'   => 'root',
            'password'   => 'root',
        ),
    ),
    'default2' => array(
        'type' => 'pdo',
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=fuel_dev2',
            'username'   => 'root',
            'password'   => 'root',
        ),
    ),    
);

上記のエラーが出ていた、fuel/core/classes/database/connection.phpの72行目を見ると、確かにtypeの定義がない時にエラーになっています。

if ( ! isset($config['type']))
{
    throw new \FuelException('Database type not defined in "'.$name.'" configuration or "'.$name.'" configuration does not exist');
}

それでは、defaultの時のtypeはどこで指定されているのでしょうか?
調べてみると、fuel\core\config\db.phpで指定が行われているようでした。
ここに、DB検索を実行時にデータソースを指定しなければdefaultの定義が有効になる事と、default定義のtypeはpdoであることが記載されています。

return array(

    /*
     * If you don't specify a DB configuration name when you create a connection
     * the configuration to be used will be determined by the 'active' value
     */
    'active' => 'default',

    /**
     * Base PDO config
     */
    'default' => array(
        'type'        => 'pdo',
        'connection'  => array(
            'dsn'        => '',
            'hostname'   => '',
            'username'   => null,
            'password'   => null,
            'database'   => '',
            'persistent' => false,
            'compress'   => false,
        ),
        'identifier'   => '`',
        'table_prefix' => '',
        'charset'      => 'utf8',
        'collation'    => false,
        'enable_cache' => true,
        'profiling'    => false,
        'readonly'     => false,
    ),
    ...

[FuelPHP]Windowsだと問題ないのにLinux上だとClass not foundエラーが出るときにチェックすること

Windowだとクラスのロードが問題なく行えるのに、Linux上だとクラスのロードでエラーになる場合は、ファイル名の大文字・小文字のルールが間違っている可能性が高い(主に開発環境はWindowsで本番環境がLinuxだと気づきにくい)。

例えば、Model/ItemMst.phpという名前でモデルを作っている場合、Windowsだとファイル名の大文字小文字を無視するのでphpファイルの読み込みが行えるが、LinuxだとModel/itemmst.phpを読みに行こうとしてエラーになってしまう。

newで指定されだクラス名に対して、実際に何のファイル名でクラスローダがロードを試みているか確認したい場合は、Autoloader::load()の最後当たりにある下記の処理にデバッグログを差し込んでみるとわかりやすい。

[fuel\core\classes\autoloader.php]


class Autoloader
{
    public static function load($class)
    {
        ...

        if ( ! $loaded)
        {
            $path = APPPATH.'classes'.DS.static::class_to_path($class);
error_log("load class[{$class}] -> path={$path}\n" , 3, "/path/to/log.txt");
            if (is_file($path))
            {
                static::init_class($class, $path);
                $loaded = true;
            }
        }


FuelPHPでのログ出力はLogクラスを利用して、Log::info(“message”);などで出力できるが、上記の処理はクラスローダ処理なので、Logクラスを使えないことに注意が必要。もし、事情期のログ出力でLogクラスを使用すると、Logクラスの生成でさらにload()メソッドが呼ばれ…、となり想定しないふるまいになってしまう。

[php]phpQueryをcomposer経由でインストールする

PHPからwebページのスクレイピングを行うための有名なライブラリにphpQueryがあります。
phpQueryを使用すると、htmlに対してjQueryのようなセレクタで、取得したいタグの検索などが簡単に行えるので便利です。

今回はこのphpQueryをcomposer経由でインストールしたうえで、簡単な動作確認を行ってみました。

作業手順


phpQueryパッケージをインストールする


まず、composer self-updateコマンドでcomposer自身のアップデートを行ったうえで、requireコマンドを使用してphpqueryパッケージのインストールを行います。

composer self-update
composer require electrolinux/phpquery

composer reuireでインストールができたら、composer infoコマンドで正しくインストールできたか確認します。今回試した時点ではver0.9.6が最新のバージョンでした。

> composer info electrolinux/phpquery
You are running Composer with SSL/TLS protection disabled.
name     : electrolinux/phpquery
descrip. : phpQuery is a server-side, chainable, CSS3 selector driven Document Object Model (DOM) API based on jQuery JavaScript Library
keywords :
versions : * 0.9.6
type     : library
license  : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText
source   : [git] https://github.com/electrolinux/phpquery.git 6cb8afcfe8cd4ce45f2f8c27d561383037c27a3a
dist     : [zip] https://api.github.com/repos/electrolinux/phpquery/zipball/6cb8afcfe8cd4ce45f2f8c27d561383037c27a3a 6cb8afcfe8cd4ce45f2f8c27d561383037c27a3a

names    : electrolinux/phpquery

インストールしたパッケージの動作確認を行う


動作確認のために簡単なプログラムを作ってみます。
なんでもよいのですが、今回はcomposerのパッケージが検索できるサイトから、名前に”helloworld”を含むパッケージの一覧を取得してみます。

一度ブラウザでアクセスしてみるとわかるのですがhttps://packagist.org/search/のページへ、クエリストリング?q=helloworldを付与したURLで検索が結果が表示され、各パッケージのタイトルはh4タグの中に記載されています。

<?php
require 'fuel/vendor/autoload.php';

// composerのパッケージ一覧から、名前に"helloworld"を含むパッケージを取得
$htmlStr = file_get_contents("https://packagist.org/search/?q=helloworld");

// htmlテキストをスクレイピングして、h4タグの一覧を取得
$dom = phpQuery::newDocument($htmlStr);
$titles = pq($dom)->find("h4");

// 取得したすべてのh4タグタイトルを画面に出力
foreach( $titles as $title ) {
    echo trim( pq($title)->text() ) . "\n";
}

上記のプログラムを実行してみた結果が以下の通りです。
想定通り、helloworldな名前を持つパッケージたちが取得できました。

> php test_phpquery.php

reps_demo/helloworld
brooklab/helloworld
abbert/helloworld
dnconcept/hello-world
nsdhami/hello-world
bagwaa/hello-world
vsonx/hello-world
hurad/hello-world
vdrizheruk/hello-world
eric-clinton/helloworld
wyanez/zf2-helloworld
mshige1979/helloworld
joomlatools/com_helloworld
digitalformula/hello-world
donut/hello_world

[FuelPHP] composer updateでfuelphp/upload 2.0.6のアップデートエラーが出るとき

FuelPHPのフレームワーク使用時にcomposer updateを実行した際、下記のエラーがでてパッケージをアップデートできない場合があります。

> composer update

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - fuelphp/upload 2.0.6 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - fuelphp/upload 2.0.6 requires ext-fileinfo * -> the requested PHP extension fileinfo is missing from your system.
    - Installation request for fuelphp/upload 2.0.6 -> satisfiable by fuelphp/upload[2.0.6].

  To enable extensions, verify that they are enabled in your .ini files:
    - C:\path\to\php.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

上記のエラーはphp自体の環境でphp_fileinfoのエクステンションが有効になっていない場合に出力されるエラーです。この場合は、エラーメッセージにある通りphp.iniの下記設定を変更することでcomposer updateが可能になります。

;extension=php_fileinfo.dll



extension=php_fileinfo.dll

[php]composer self-updateでエラー[Composer\Downloader\TransportException]が出るとき

composerを使用していてcomposer self-updateコマンド実行時に下記のエラーが出る場合があります

[Composer\Downloader\TransportException]
Your configuration does not allow connections to http://getcomposer.org/versions. 
See https://getcomposer.org/doc/06-config.md#secure-http for details.

このエラーが出る理由ですが、composerはファイルのダウンロードをSSL対応したサイトからのみ許容しているのですが、SSL暗号化がされていないサイトへのアクセスが検出されたためです。本来であればSSL経由でアクセス可能なように対処すべきですが、一時的にこのチェックをOFFにして動作させたい場合もあります。

このような場合、下記のコマンドを実行してsecure-httpの設定値をfalseにすれば、self-updateを実行できます。

composer config --global -- secure-http false

設定された内容は、下記のコマンドでチェック可能です。

composer config --list

[php]composer self-updateでエラー[required for SSL/TLS protection]が出るときの対処法

PHPでcomposerのアップデートを行った時、opensslのライブラリでSSL/TLS protectionエラーが出る場合があります。※下記の例の”composer self-update”は、windowsの場合は環境によって”php.exe composer.phar self-update”になる場合もあります。

> php.exe composer.phar self-update

[RuntimeException] 
The openssl extension is required for SSL/TLS protection 
but is not available. 

If you can not enable the openssl extension, 
you can disable this error, at your own risk, 
by setting the 'disable-tls' option to true.

このエラーに対して一時的にSSLのチェックを外したい場合は、下記のコマンドでdisable-tlsのフラグを立てればOKです。

composer config --global -- disable-tls true

上記のコマンドを実行すると、下記のフォルダに設定内容が登録されます
(configの場所はcomposer config --list -vvvでverbose出力すれば確認できます)

C:\Users\ユーザ名\AppData\Roaming\Composer\config.json

設定内容がconfigにセットされているかは、下記のコマンドで確認できます。

composer config --list

‘cURL error 60’エラーが出たときの対処法 ‘cURL error 60: SSL certificate problem: unable to get local issuer certificate’

cURLを使用したプログラムでhttpsのサイトにアクセスしたとき、下記の例外が発生しました。
この問題を解消するために、調べた事・行ったことののメモを書いておきます。

環境: Windows10, PHP7.0.14, GuzzleHttp経由でcURLライブラリを利用

Fatal error: 
Uncaught exception 'GuzzleHttp\Exception\RequestException' with message 
'cURL error 60: SSL certificate problem: 
  unable to get local issuer certificate

エラーの理由


このエラーは、SSL暗号化されているhttpsのサイトにアクセスしようとした際にそのサーバが信頼できるか否かの証明書(ca証明書)が取得できなかった時に発生します。

行ったこと


  • SSLの認証情報をファイルに保存する
    下記のURLの出力結果をダウンロードし、適当なファイルにに保存します。
    今回は、C:\path\to\cacert.pemに保存したものとして説明します。
    http://curl.haxx.se/ca/cacert.pem

  • php.iniを書き換える
    curlのセクションに、コメントアウトされたcurl.cainf定義があるので、ここに先ほどのファイルを指定します


[curl]
curl.cainfo = "C:\path\to\cacert.pem"

  • php.iniを書き換えたくない/変更できない場合
    phpプログラム上に以下のような形で証明書ファイルの場所を指定しても大丈夫です。

$http = new GuzzleHttp\Client([
    'verify' => 'c:\path\to\cacert.pem'
];

Google Client SDKを使っているときにこのエラーが出たときは…


Google Client SDKを使っているときは、先ほど作った$httpを下記の形で指定できるらしいです。
(実際に使っていないので未検証の情報です)

$google = new Google_Client;
$google->setHttpClient($http);

参考:StackOverflow.comでの情報


StackOverflow.comによると、上記の処理を行ったにもかかわらず、エラーが解消されない場合は下記のチェックを行うとよいそうです。
http://stackoverflow.com/questions/29822686/curl-error-60-ssl-certificate-unable-to-get-local-issuer-certificate

php.iniファイルにopenssl.cafileのパラメータが指定されているか
php.iniファイルにcurl.cainfoのパラメータが指定されているか

Red Hat, CentOS, Fedoraを使っている場合...
  /etc/pki/tls/certs/ca-bundle.crtがあれば
  このファイルを見に行くので、ファイルが存在しているか確認する。

Ubuntu, Debianを使っている場合...
  /etc/ssl/certs/ca-certificates.crtがあればこのファイルを見に行くので...(以下同様)

FreeBSDの場合
  /usr/local/share/certs/ca-root-nss.crtがあれば...

OS Xの場合
  /usr/local/etc/openssl/cert.pemがあれば...

Windowsの場合
  C:\windows\system32\curl-ca-bundle.crt があれば...
  C:\windows\curl-ca-bundle.crt があれば...

php.iniファイルにopenssl.cafileやcurl.cainfoのパラメータが正しくセットできているかは、下記のプログラムで確認できます。一台のPCに複数バージョンのPHPがインストールされている場合は、念のために確認しておいた方が良いです。

echo "openssl.cafile: ", ini_get('openssl.cafile'), "\n";
echo "curl.cainfo: ", ini_get('curl.cainfo'), "\n";

[VSCode]VisualStudioCode上で素早く数式の計算を行う方法

VisualStudio Codeを使用している時、ちょっとした計算を素早く行う方法のTipsです。
PowerShellを使う方法と、emmetのショートカット機能を使う方法があります

PowerShellを使用した数式の計算


Ctrl+@で、PowerShellを起動します。


ここで数式を入力してEnterすれば計算結果が出力されます。とても簡単ですね。


emmet(zencoding)のショートカットを使用した数式の計算


.htmlや.phpファイルを開いているときは、emmetのショートカットを使用してエディタ内で計算できます。

数式エディタ内に記入し、範囲選択します。


Ctrl+Shit+P -> "math"と入力してEnterキーを順に押します。


すると、数式が計算結果に変わります。
もちろんCtrl-zで計算前の数式に戻すこともできます。

[WordPress]DBが分かる人に$wp_queryと$wp_the_queryの違いを説明する

WordPressでは、クエリ結果(≒表示すべき記事の情報)を、$wp_queryと$wp_the_queryの2つの変数で管理しています。
この2つの違いは下記のとおりです。

メインクエリの結果:$wp_the_query
現在処理しているクエリ結果: $wp_query

具体的には以下のプログラムのコメントのような感じで、$wp_queryの値が変わっていきます。

// カテゴリ1の記事最新5件を検索
// この時点では、$wp_the_queryと$wp_queryの内容は同じ
query_post('cat=1&order=DES&number=1'); 

// 取得した記事をすべて処理するまで繰り返し
wihle( have_posts() ) {
    // 検索した結果からデータを1レコードフェッチして、作業中記事を$wp_queryグローバル変数にセット
    // この時点で、$wp_the_queryと$wp_queryの内容は異なる。
    the_post();

    // セットされた$wp_queryグローバル変数より、記事のタイトルを取得する
    echo the_title();
}

wp_reset_query();   // wp_queryの内容を$wp_the_queryに戻す

普通だと$wp_query = the_post();といった形で、DBからfetchしたレコードを戻り値として取るところですが、the_post()がfetchした結果をグローバル変数に保存していると考えると分かりやすいです。

[git]エラー”LF will be replaed by CRLF in”が出るとき、特定リポジトリだけ設定を変更する方法

git for Windowsを使用しているときに、git addを使用してファイルを追加すると、下記のワーニングが出る場合があります。これは、gitのインストール時に、改行コードの自動変換を有効にしているためです。

warning: LF will be replaed by CRLF in ...

現在処理しているリポジトリだけ、改行コードの自動変更を行いたくない場合は、下記のコマンドを実行すればよいです。

git config core.autoCRLF false

gitコマンドを使わずに、設定ファイルを直接変更する場合は、.git/config内の[core]に下記の設定を追加すればよいです。通常、[core]の記述は既にあるので、そのような場合はautoCRLF = falseだけ追加すればよいです。

[core]
    autoCRLF = false

また、特定リポジトリだけでなく、システム全体の設定を変更したい場合は–globalオプションをつければ、インストール時の設定内容を変更することができます。

git config --global core.autoCRLF false

[PHP]mcrypt_module_open()でエラー”Call to undefined method”が出るとき

phpのプログラムで、mcrypt_module_open()メソッドをコールしたとき、Call to undefined method...ワーニングが出る場合があります。

この場合、pho.iniでphp_mcrypt.dllモジュールが読み込まれていない可能性があります。php.iniを確認し、extensionの指定がコメントアウトされていたらコメントを外してください。

;extension=php_mcrypt.dll



extension=php_mcrypt.dll

Windows環境で動作させる場合、PHP5.3以降ではMcryptのライブラリがphp.exeにstatic linkされているため、上記の設定は行う必要がありません(コメントアウトされた定義自体がphp.iniに存在しないです)

手元の環境のphp.exeで、本当にmcryptがstatic linkされているか不安な時は、phpinfo()で確認するとよいです。Configure Commandに --with-mcrypt=staticがあれば、リンクされているはずです(なので設定せずに実行可能です)。

また、php7.1ではmcrypt_module_open()が非推奨になっています。非推奨の理由はmcryptが古すぎるためで、代わりにOpenSSLを使用することが奨励されています。

[WordPress]リクエストURLで指定されるクエリストリングの一覧

WordPressでは、?p=123のような形でブラウザからのリクエストパラメータ(クエリストリング)を受け付けることができます。
標準インストールされたWordPressが処理できるパラメータの一覧は下記のとおりです。

m
p
posts
w
cat
withcomments
withoutcomments
s
search
exact
sentence
calendar
page
paged
more
tb
pb
author
order
orderby
year
monthnum
day
hour
minute
second
name
category_name
tag
feed
author_name
static
pagename
page_id
error
attachment
attachment_id
subpost
subpost_id
preview
robots
taxonomy
term
cpage
post_type
embed

この一覧は、wp-includes\class-wp.php上で指定されています。
プラグインを作る時などで、受け入れ可能なパラメータを追加したい場合は、query_varsフィルタで増やすことができます。

下記の例では、custom_keyパラメータを追加しています。

add_filter('query_vars'、function ( $keys ) {
    $keys[] = "custom_key";
    return $key;
});

Windows10でスリープさせる為のショートカットキー

WIndows10を使用している場合、下記のショートカットキーにて素早くPCのスリープが行えます。

Win+X → U → S

各アルファベットの意味は、”eXecute -> shUtdown/sleep -> Sleep”です。

ちなみにシャットダウンの時は、以下の通りです。

Win+X → U → U

ファイアーエムブレムヒーローズはCocos2d-x製? 使用ライブラリの一覧

任天堂より2/2にファイアーエムブレムヒーローズがリリースされました。

このアプリで使用されているオープンソースライブラリの一覧を紹介します。

ファイアーエムブレムヒーローズの使用ライブラリ一覧

WebP
PicoJSON
uripaser - RFC3986 URI parsing library
SS5Player For Cocos2d-x
liboff
libogg
Tremor
Cocos2d-x
POCO C++ Libraries
Protocol Buffer
OpenSSL
sysutsname.h
GTMNSData+zlib.h
GTMDefines.h
Cricket Audio
Android related

上記の、使用オープンソースライブラリの一覧はアプリを起動してフッタメニューから下記の遷移で確認できます。
その他->FAQ等->このアプリについて->権利表記

この一覧を見ると、キャラクターアニメーションは、SpriteStudioを使用して作られているようです。また、音声制御はCricket Audioを使っていて、このライブラリは他にも、消滅都市、ユニゾンリーグ、LINEタワーライジング等のアプリでも使われています。




ファイアーエムブレム MUSIC COLLECTION ピアノバージョン


ファイアーエムブレムの名曲たちが、ピアノバージョンで2月22日に発売予定です。


FIRE EMBLEM MUSIC COLLECTION : PIANO 〜Faith & Engagement〜

【収録曲】
「戦闘マップ1 プレイヤー側の攻撃」“暗黒竜と光の剣"より
「あなたへ続く道」“if"より
「はるかなる理想郷」“封印の剣"より
「Victory is Near」“蒼炎の軌跡"より
「全体マップ3章(解放戦争:それぞれの道)」“外伝"より
「出逢い」“外伝"より
「Father's Back」“蒼炎の軌跡"より
「セリスのテーマ/巡る想い」“聖戦の系譜"より
「リーフ軍、勝利を求めて リーフ」“トラキア776"より
「「I」~安」“覚醒"より
「神竜伝説(A)」“紋章の謎"より
「混沌の落とし子ユンヌ」“暁の女神"より
「貴様らが…姉さんの言葉を語るな! 」“覚醒"より
「光射す彼方へ」“if"より
「過甚の神」“暁の女神"より
「if~ひとり思う~」“if"より

収録曲の視聴はこちらから↓



FIRE EMBLEM MUSIC COLLECTION : PIANO

[WordPress]動画ヘッダーの自動再生を止める方法

WordPressではver.4.7から動画ヘッダーというカスタムビデオヘッダの機能があります。
これを使用すると、記事設置された動画に対する機能ですが、動画が自動で再生開始されていまします。

これを自動再生させたくない場合は、以下のJavaScriptコードをページに記述しておけばよいです。
仕組みとしては、ページがロードされたときにwp-custom-header-videoのidがあるタグを探し、autoplay=”false”に設定を差し替えています。

$( document ).ready( function() {
    $( document ).on( 'wp-custom-header-video-loaded', function() {
        $("#wp-custom-header-video").attr('autoplay',false);
    });
});

this post is licensed under cc by-sa 3.0 http://wordpress.stackexchange.com/questions/254234/