Google Analyticsのビューの設定でサイト内検索をonにします。

shuffle関数と配列の重みづけ
配列を重みづけしてシャッフルしたいと思います。
まず、単純な配列のシャッフル。
<?php
$arr = array('SBI証券','楽天証券','カブドットコム証券','松井証券','マネックス証券','岡三オンライン証券','GMOクリック証券','ライブスター証券');
shuffle($arr);
echo $arr[0]. "にしました。";
?>
岡三オンライン証券にしました。
重みづけの関数。
<?php
$arr = array(
'SBI証券' => 30,
'楽天証券' => 30,
'カブドットコム証券' => 5,
'松井証券' => 5,
'マネックス証券' => 15,
'岡三オンライン証券'=> 5,
'GMOクリック証券' => 5,
'ライブスター証券' => 5
);
function array_rand_weighted($entries){
$sum = array_sum($entries);
$rand = rand(1, $sum);
foreach($entries as $key => $weight){
if(($sum -= $weight) < $rand) return $key;
}
}
$sec = array_rand_weighted($arr);
echo $sec. "にしました。";
?>
ああ、ダメだ。
やりたいのは、シャッフルした後の配列の順番の重みづけなので全然違いますね。これではどうでしょう?
係数とランダムな数を掛け合わせて、ソートします。
<?php
$min = 1;
$max = 10;
$arr = array(
'SBI証券' => 30,
'楽天証券' => 30,
'カブドットコム証券' => 5,
'松井証券' => 5,
'マネックス証券' => 15,
'岡三オンライン証券'=> 5,
'GMOクリック証券' => 5,
'ライブスター証券' => 5
);
foreach($arr as $key => $weight){
$result[$key] = $weight * mt_rand($min, $max);
}
arsort($result);
var_dump($result);
?>
array(8) { [“楽天証券”]=> int(270) [“SBI証券”]=> int(120) [“マネックス証券”]=> int(60) [“ライブスター証券”]=> int(45) [“松井証券”]=> int(45) [“岡三オンライン証券”]=> int(30) [“GMOクリック証券”]=> int(20) [“カブドットコム証券”]=> int(15) }
値はさておき、近いのではないでしょうか。
$minと$maxの値を狭めることで、ボラティリティを低くできると思います。
条件分岐で先頭の文字を削除する
strstr最速といわれていますが、ここでは先頭の文字を判別すのに、preg_matchを使います。
<?php
$bank = '株式会社三井住友銀行';
if(preg_match("/銀行/", $bank)){
echo $bank. "は銀行です。";
}
$word = array('株式会社三井住友銀行','ソニー銀行株式会社','シティバンク、エヌ・エイ東京支店');
foreach($word as $value){
if(preg_match("/^株式会社/", $value)){
echo $value. "は前株です。<br>";
} elseif(preg_match("/株式会社$/", $value)) {
echo $value. "は後ろ株です。<br>";
} else {
echo $value. "は株式会社ではありません。<br>";
}
}
株式会社三井住友銀行は銀行です。
株式会社三井住友銀行は前株です。
ソニー銀行株式会社は後ろ株です。
シティバンク、エヌ・エイ東京支店は株式会社ではありません。
先頭文字を削除する
if(preg_match("/^hoge/", $text)){
$text = ltrim($text, 'hoge');
}
ISO 3166-1 alpha-2
ISO 3166-1は、IOSによって発行されている国のコード。
alpha-2は、ラテン文字2文字で、alpha-3はラテン文字3文字。
例
United States 840 USA US
United Kingdom 826 GBR GB
India 356 IND IN
Japan 392 JPN JP
France 250 FRA FR
ロゴはgif、jpg, pngのどれにするべき?
JPG:サイズが小さい、非可逆圧縮、色数が大井、圧縮すると画質が悪くなる、サムネイルなどに適す
PNG:容量が大きい、圧縮しても画質が落ちない、グラフィック画像などに適す
GIF:svgやaiと相性が良い、256色しかない、グレースケール画像・アニメーション・フォント・バナーに適す
JPGは加工に適しておらず、容量優先の際に推奨されています。
画質が求められる場合は、PNGが良いようです。
ロゴはGIFかPNGが良いようです。
$_POSTでスクリプトの送信を制限する
$postをそのまま受け取ると、htmlタグやスクリプトを受け取ってしまいます。
例えば、以下のように、h1タグでhogeを囲って送ると、送られた先のhtmlでhogeがh1で表示されるケースを考えていましょう。
<h1>hoge</h1>
この場合、”htmlspecialchars” postから受け取った値を文字列に変換します。
$_SESSION["hoge"] = htmlspecialchars($_POST["foo"]);
結果、以下のように文字列として値が表示されます。
hoge
Google Analyticsの画面が真っ白になった時
一度ログアウトし、再度ログインしても画面が真っ白。

閲覧できなくなった期間程度のブラウザの閲覧履歴を削除すると治ります。
Googleのヘルプページを見ても、解決策が見つからなかった時は、さすがに焦りました。
topへ戻る:Javascript
#page-top {
position: fixed;
bottom: 20px;
right: 20px;
font-size: 77%;
}
#page-top a {
background: #EEEEEE;
color: #fff;
width: 80px;
padding: 25px;
text-align: center;
display: block;
border-radius: 5px;
}
#page-top a:hover {
backgorund: rgba(144, 144,144, 0.8);
}
$(function(){
var topBtn = $('#page-top');
topBtn.hide();
$(window).scroll(function(){
if($(this).scrollTop() > 450){
topBtn.fadeIn();
} else {
topBtn.fadeOut();
}
});
topBtn.click(function(){
$('body,html').animate({
scrollTop: 0
}, 500);
return false;
});
});
相対パス
相対パスは
../hoge.php
更に上は
../../hoge.php
CSSをどこに置くか?
inlineでやりたいところですが、複数のHTMLファイルに対して共通のCSSを適用するため、外部にフォルダを作成し、そこに入れて読み込むことが一般的かと思います。
<link rel="stylesheet" type="text/css" href="asset/css/styles.css" />
多数の人間が制作に関わった場合などは、パーツによって、このclassはxxx.cssファイル、このidはyyy.cssファイルを読み込む、など、1つのページでも複数のcssファイルを読み込むことがあります。
問題は、大規模サイトで、CSSファイルを5~6個位読み込んでいて、後からチームにジョインした人が改修しようとした際に、それぞれ書き方も別々の為、なにがなんだかわからなくなる、ということがあります。
そこで、コーディングガイドラインを作成しようとなります。
では、Googleのコーディングガイドラインをみてみましょう。
– Not reccomended
<!DOCTYPE html> <title>HTML sucks</title> <link rel="stylesheet" href="base.css" media="screen"> <link rel="stylesheet" href="grid.css" media="screen"> <link rel="stylesheet" href="print.css" media="print"> <h1 style="font-size: 1em;">HTML sucks</h1> <p>I’ve read about this on a few sites but now I’m sure: <u>HTML is stupid!!1</u> <center>I can’t believe there’s no way to control the styling of my website without doing everything all over again!</center>
-recommended
<!-- Recommended --> <!DOCTYPE html> <title>My first CSS-only redesign</title> <link rel="stylesheet" href="default.css"> <h1>My first CSS-only redesign</h1> <p>I’ve read about this on a few sites but today I’m actually doing it: separating concerns and avoiding anything in the HTML of my website that is presentational. <p>It’s awesome!
外部ファイルは一つにして、そこから読み込むことが推奨されています。その他も参考になります。
https://google.github.io/styleguide/htmlcssguide.html#CSS_Style_Rules