いろいろメモ

function get_page_data($url, $data = array())
{
    $curl = curl_init($url);
    
    curl_setopt($curl,CURLOPT_POST, TRUE);
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, FALSE);  // オレオレ証明書対策
    curl_setopt($curl,CURLOPT_SSL_VERIFYHOST, FALSE);  // 
    curl_setopt($curl,CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($curl,CURLOPT_COOKIEJAR,      'cookie');
    curl_setopt($curl,CURLOPT_COOKIEFILE,     'cookie');
    curl_setopt($curl,CURLOPT_FOLLOWLOCATION, TRUE); // Locationヘッダを追跡
    //curl_setopt($curl,CURLOPT_REFERER,        "REFERER");
    //curl_setopt($curl,CURLOPT_USERAGENT,      "USER_AGENT"); 
    
    return curl_exec($curl);
}
curl のオプション
    -v // リクエストヘッダの表示
    -o filename // ファイル出力
    -A "useragent" // ユーザーエージェント
    -X GET|POST // リクエストメソッド
    -e URL // リファラー
    -b // クッキー指定

デバッグ

function d() {
    echo '<'.'pre style="text-align:left;background:#fff;color:#333;border:1px solid #ccc;margin:2px;padding:4px;font-family:monospace;font-size:12px">';
    foreach (func_get_args() as $val)
    {
        print_r($val);
    }
    echo '<'.'/pre>';
}

CSV出力

header( 'Content-Type: text/csv charset=SJIS-win' );
header( 'Content-Disposition: attachment;filename='.mb_convert_encoding("hellowork_" . date('YndHis') . ".csv", "SJIS-win", "utf-8"));

$fp = fopen('php://temp', 'r+b');
foreach ($output as $fields) {
    fputcsv($fp, $fields);
}
rewind($fp);
$tmp = str_replace(PHP_EOL, "\r\n", stream_get_contents($fp));
echo mb_convert_encoding($tmp, 'SJIS-win', 'UTF-8');
die;

ベーシック認証

AuthUserFile "/home/hoge/huga/.htpasswd"
AuthName "Member Site"
AuthType BASIC
require valid-user

Satisfy Any

Order Allow,Deny
Allow from 153.162.1.15

データベースとファイルのバックアップ

// バックアップディレクトリの中を全削除
foreach (glob('*.zip') as $file) {
    unlink($file);
}

// 実行時間
$datetime = date('YmdHis');

// DB接続情報
$dbHost = 'localhost';
$dbUser = '';
$dbPass = '';
$dbName = '';

// Mysqlのバックアップファイルを作成
$filePath = __DIR__ . "/";
$fileName = $datetime.'.sql';
$command = "mysqldump ".$dbName." --host=".$dbHost." --user=".$dbUser." --password=".$dbPass." > ".$filePath.$fileName;
system($command);

// wp-contentdディレクトリとSQLファイルをZIP化
$zip_name = $datetime . '_' . md5(microtime(true));
exec('zip ' . $zip_name . ' -r ../wp-content '.$fileName, $output);

// SQLファイルを削除
unlink($filePath.$fileName);

// ダウンロードURLへリダイレクト
header('location: /backup/'.$zip_name.'.zip');
exit();

メルマガ開封をアナリティクスを紐付け

'https://www.google-analytics.com/collect?' . http_build_query(
    array(
        'v'   => 1,
        't'   => 'event',
        'tid' => 'UA-XXXXXXXX-X',
        'cid' => 'ユーザーを特定するID',
        'ec'  => 'monthly_report_mail',
        'ea'  => 'open',
        'el'  => 'sent_' . date('Ymd'),
    )
);