base64でエンコードする。
メール本体のように、8ビットクリーンではないトランスポート層でもバイナリデータが生き残るように設計されている。
<?php $str = "高リスク仮想通貨株にガートマン氏も賭け"; echo base64_encode($str); ?>
結果:
6auY44Oq44K544Kv5Luu5oOz6YCa6LKo5qCq44Gr44Ks44O844OI44Oe44Oz5rCP44KC6LOt44GR
随机应变 ABCD: Always Be Coding and … : хороший
base64でエンコードする。
メール本体のように、8ビットクリーンではないトランスポート層でもバイナリデータが生き残るように設計されている。
<?php $str = "高リスク仮想通貨株にガートマン氏も賭け"; echo base64_encode($str); ?>
結果:
6auY44Oq44K544Kv5Luu5oOz6YCa6LKo5qCq44Gr44Ks44O844OI44Oe44Oz5rCP44KC6LOt44GR
URIまたはURLで使用できる文字をRFC3986で定義している。
This document obsoletes [RFC2396], which merged “Uniform Resource Locators” [RFC1738] and “Relative Uniform Resource Locators” [RFC1808] in order to define a single, generic syntax for all URIs.
RFC3986が分散したURIの定義を全て統合することを狙っている。
予約文字は不可、!、♯などの非予約文字は自由に使用可。
例えば、チルダをurlencodeすると、%7Eに変換されるが、rawurlencodeなら、チルダとなる。
<?php $str = "~"; echo urlencode($str). "<br>"; echo rawurlencode($str);

mecabはphp7.0とphp5.*では、クラスの書き方が異なります。
例:MeCab_Tagger
例:\MeCab\Tagger
その為、git-cloneもしくはwgetでファイルを取得して展開した後に、以下のようにコンパイルするかと思いますが、./configureで、phpのバージョンを指定する必要があります。
phpize ./configure make make install
configureでphp-configとmecab-configを指定しますが、さくらの場合、php-configをphpのバージョンごとにディレクトリを分けて管理されている為、利用しているバージョンのディレクトリを指定して、configureしなければなりません。
./configure --with-php-config=/usr/local/php/5.6/bin/php-config --with-mecab=/usr/local/bin/mecab-config
上記は5.6ですが、phpinfoで確認できます。
これを解決するのに、5時間ぐらい調べて何度も試していました。馬鹿ですね。
configure:os,cupやバージョンを調べたり、関連ツールを調査
make ソースコードをコンパイル
make install は既定のディレクトリにコピー
正規表現で、keyの先頭に”38″がついていた場合には、pタグでlocalstorageのvalueを表示しています。
window.onload = function(){
var list = document.getElementById(“list”)
for (var i =0; i < localStorage.length; i++){
var p = document.createElement("p");
list.appendChild(p);
var str = localStorage.key(i);
if ( str.match(/^38/)){
p.innerHTML = localStorage.getItem(str);
}
}
}
[/php]

getElementById に、innerHTMLを付ければOKですね。
var key = document.getElementById("myid").innerHTML;
var value = document.getElementById("myid2").innerHTML;
if (key && value){
storage.setItem(key, value);
}
key = "";
value = "";
<?php
$code = array('3808','8893');
$name = array('オウケイウェイヴ','新日本建物');
?>
<h4>お気に入り銘柄</h4>
<p id = "code"><?php echo $code[0]; ?></p>
<p id = "name"><?php echo $name[0]; ?></p>
<script type="text/javascript">
if(typeof localStorage == 'undefined'){
document.write("<p>お使いのブラウザではお気に入り機能が使えません。</p>");
} else {
var storage = localStorage;
function setlocalStorage(){
var key = document.getElementById("textkey").value;
var value = document.getElementById("textdata").value;
if (key && value){
storage.setItem(key, value);
}
key = "";
value = "";
viewStorage();
}
function removeStorage(){
var key = document.getElementById("textkey").value;
storage.removeItem(key);
key = "";
viewStorage();
}
function removeallStorage(){
storage.clear();
viewStorage();
}
function viewStorage() {
var list = document.getElementById("list")
while(list.firstChild)list.removeChild(list.firstChild);
for (var i=0; i < storage.length; i++){
var _key = storage.key(i);
var tr = document.createElement("tr");
var td1 = document.createElement("td");
var td2 = document.createElement("td");
list.appendChild(tr);
tr.appendChild(td1);
tr.appendChild(td2);
td1.innerHTML = _key;
td2.innerHTML = storage.getItem(_key);
}
}
function load(){
var list = document.getElementById("list")
while (list.firstChild) list.removeChild(list.firstChild);
for (var i =0; i < localStorage.length; i++){
var _key = localStorage.key(i);
var tr = document.createElement("tr");
var td1 = document.createElement("td");
var td2 = document.createElement("td");
list.appendChild(tr);
tr.appendChild(td1);
tr.appendChild(td2);
td1.innerHTML = _key;
td2.innerHTML = localStorage.getItem(_key);
}
}
}
</script>
<h4>お気に入り銘柄入力フィールド</h4>
<p> code : <input id="textkey" type="text"/> 銘柄名:<input id="textdata" type="text"/></p>
<p align="right"><button id="button" onclick="setlocalStorage()">保存</button>
<button id="button" onclick="removeStorage()">削除</button>
<button id="button" onclick="removeallStorage()">全て削除</button></p>
<h4>入力結果</h4>
<table class="tagForList2">
<tr>
<th>コード</th><th>銘柄名</th>
</tr>
<tbody id="list">
</tbody>
</table>

bodyでonloadしてdisplay = “none”とすると、処理に時間がかかった場合、onloadが終わるまで表示されるので、bodyのonloadよりも綺麗に見えますね。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>表示</title>
</head>
<body>
<a href="#" onclick="btn1_click()">今日の運勢を見る</a><br>
<p id="p1">大吉</p>
<script>
document.getElementById("p1").style.display = "none";
function btn1_click(){
var y1 = document.getElementById("p1");
if(y1.style.display=="block"){
y1.style.display ="none";
}else{
y1.style.display ="block";
}
}
</script>
</body>
</html>
globalでロカールスコープの変数をグローバルでも使えるようにします。
<?php
function sell($name){
$code = "8411";
echo $name."さんは" .$code."を空売りしています。";
}
sell('Barclays Bank');
echo $code. "は、出来高の多い銘柄です。"
?>
Barclays Bankさんは8411を空売りしています。は、出来高の多い銘柄です。
globalで宣言します。
<?php
function sell($name){
global $code;
$code = "8411";
echo $name."さんは" .$code."を空売りしています。";
}
sell('Barclays Bank');
echo $code. "は、出来高の多い銘柄です。"
?>
Barclays Bankさんは8411を空売りしています。8411は、出来高の多い銘柄です。
下層をつくるには、更にarray()でくくってあげればOKですね。
<?php $stock= array( '0' => array ( 'code' => '4578', 'name' => 'ラクオリア創薬', 'price' => '5550', 'pts' => array ( 'pprice' => '5550', 'volume' => '100', ) ), '1' => array ( 'code' => '3825', 'name' => 'リミックスポイント', 'price' => '892', 'pts' => array ( 'pprice' => '911', 'volume' => '40400' ) ) ); var_dump($stock); ?>
array(2) { [0]=> array(4) { [“code”]=> string(4) “4578” [“name”]=> string(21) “ラクオリア創薬” [“price”]=> string(4) “5550” [“pts”]=> array(2) { [“pprice”]=> string(4) “5550” [“volume”]=> string(3) “100” } } [1]=> array(4) { [“code”]=> string(4) “3825” [“name”]=> string(27) “リミックスポイント” [“price”]=> string(3) “892” [“pts”]=> array(2) { [“pprice”]=> string(3) “911” [“volume”]=> string(5) “40400” } } }