phpはreact-nativeのiconfontを生成する.jsonプロファイル
3726 ワード
react-nativeの
1.次のコードを任意のphp接尾辞ファイルとして保存する
2.iconfontのアイコンファイルを解凍して変換ファイルのルートディレクトリに入れてダウンロードにアクセスする上のコードはphp 7の環境で正常な動作をテストする です.
react-native-vector-icons
コンポーネントを使用する場合、unicodeコードのiconfont.json
プロファイルを自分で生成する必要があります.アイコンが少ない場合は自分で手書きでいいですが、数十個以上の百個の時はハハハです.ここではphp生成プログラムを書いて、直接使用することができます.1.次のコードを任意のphp接尾辞ファイルとして保存する
", $css));
if (empty($icons) || !is_array($icons)) {
exit('Not find icon');
}
return $icons;
}
private static function build($icons = [], $isBuild = true) {
$glyphMap = [];
if ($isBuild) {
$glyphMap = "import {createIconSet} from 'react-native-vector-icons';
const glyphMap = {
";
}
foreach ($icons as $value) {
if (strpos($value, self::$delimiter) === false) {
continue;
}
list($key, $val) = explode(self::$delimiter, $value);
if (!is_numeric($val)) {
$val = hexdec($val);
}
if (strpos($key, '-') !== false) {
$key = str_replace('-', '_', $key);
}
if ($isBuild) {
$glyphMap .= ' ' . $key . ': ' . $val . ",
";
} else {
$glyphMap[$key] = $val;
}
}
if ($isBuild) {
$glyphMap = rtrim($glyphMap, ",
");
$glyphMap .= "
}
const iconFont = createIconSet(glyphMap, 'iconfont', 'iconfont.ttf');\r
export {iconFont}\r
";
}
return $glyphMap;
}
private static function scandir($path = '', $filename = '') {
if (!is_dir($path)) {
return false;
}
foreach(scandir($path) as $file) {
if ($file != '.' && $file != '..') {
$_path = $path . DIRECTORY_SEPARATOR . $file;
if (is_dir($_path)) {
$data = self::scandir($_path, $filename);
if (!empty($data)) {
return $data;
}
} else {
if (strpos($_path, 'iconfont.css') !== false) {
return file_get_contents($_path);
}
}
}
}
return false;
}
}
2.iconfontのアイコンファイルを解凍して変換ファイルのルートディレクトリに入れてダウンロードにアクセスする