#サイトマップを作る
記載するほどでもないが、サイトマップを作るコード。
最終的にxmlファイルを生成するが、phpファイルのままでもいけるかもしれない。
make_stemap.php
$xml = '<?xml version="1.0" encoding="utf-8" ?>'."\n";
$xml .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach($array_movie_id as $value){
$xml .= "<url>";
$xml .= "<loc>https://~/".$value['key']."</loc>";
$get_date = $value['key2'];
$mod_date = substr($get_date, 0, -9);
$xml .= "<lastmod>".$mod_date."</lastmod>";
$xml .= "</url>";
}
$xml .= "</urlset>";
<urlset>
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/xml/sitemap.xml', $xml);
#ページを複製する
通常1つのページを作成し、PPOSTで渡した値で表示を変えるのが通例だが、
SEOの観点から複数のページを作成したいときがある。
##元ファイルがJavascriptの場合
定型部分をJavascriptで記載し、incファイル化
ob_start()関数を使用。元ファイルがJavascriptなのでPHPの変数の影響を受けることなく記載可能。
a.inc
コード内部はJavascript。
b.php
データベースに接続等
ob_start(); //バッファ制御スタート
include("inc/a.inc");
$text = ob_get_clean(); //バッファ制御終了&変数を取得
$something = 可変部分
$something .= $text;
##元ファイルがphpの場合
変数をエスケープする。
a.php
$name = "名前";
$email = "a@gamil.com";
$text = "<?php \$name=\"$name \"; ?>"."\n";
$text .= "<?php \$email =\"$email\"; ?>"."\n";
file_put_contents("b.php", $text);
b.php
<?php $name="名前"; ?>
<?php $email ="a@gamil.com"; ?>
エスケープって便利!
#ajaxによる非同期通信(jQueryを用いた場合)
毎回迷うので、備忘録もかねて。
a.php
let options = {//変数にまとめておくと可読性が増す
type:'POST',
url: 'b.php',
data: fd,
dataType: 'json'
};
$.ajax(
options
).done(function(d){
//json返ってきたので処理
console.log('success');
var src = d.src;
console.log(src);
//let p = $('div.droparea').find('p');
let p = $('div.droparea');
$(p).html('<img src="'+src+'" width="300px" height="169px">');
let img_box = document.getElementById('thumbnail_area')
var protocol = location.protocol;
var host = location.host;
src = protocol + '//' + host + '/' + src.replace('../','');
img_box.textContent = src;
}).fail(function(d){
console.log('false');
let p = $('div.droparea').find('p');
$(p).text("アップロードに失敗しました");
}).always(function(){
//完了
});
#CORSについて
送信元のhtaccessに受け取る側のドメインを記載。
Header append Access-Control-Allow-Origin: https://~
#文字化けについて
HTML-ENTITIESで終わらせるといけない。
HTML-ENTITIESに変換したものをUTF-8に変換する。