2014/7/31 現在、さくらインターネットの標準の PHP バージョンが 5.4.29 で、cURL が 7.36.0 ですが、このバージョンもオプションの意味合いに関係があります。 curl_setopt 上のリンクは、cURL のオプションの一覧です。 CURLOPT_BINARYTRANSFER が必要無くなっています PHP 5.1.3 以降では、このオプションは何の効果も無いとあります。 CURLOPT_RETURNTRANSFER を使うのみでいいそうです。 CURLOPT_RETURNTRANSFER TRUE を設定すると、curl_exec() の返り値を 文字列で返します。http で WEB ページを呼び出した結果が必要な場合に設定します。FTP の処理などでは、特に何も結果はありません。 CURLOPT_SSL_VERIFYHOST で値1 は使え無い 『値 1 は、cURL 7.28.1 以降では使えなくなりました』とありますが、通常今まで PHP では false を指定して処理しています。テストでは、仮に true や 2 を指定しても動作しているようですが・・・。 この値は、SSL を使用する時に設定しますが、対となる CURLOPT_SSL_VERIFYPEER というオプションがあり、これこそ false にしないと動作しません。 CURLOPT_SSL_VERIFYPEER SSL を使用する際に設定します。 FALSE を設定すると、cURL はサーバー証明書の検証を行いません。cURL 7.10 以降、デフォルト値は TRUE なので、false に明示的に設定する必要があります。 CURLOPT_POSTFIELDS http でファイルをアップロードする際に使用します。ファイルを送信するには、ファイル名の先頭に @ をつけてフルパスを指定します PHP 5.2.0 以降、このオプションに @ プレフィックスつきでファイルを渡したときは value が配列でなければならなくなりました$data = array( 'target' => '@' . realpath("./lightbox_a.jpg") ); curl_setopt($curl, CURLOPT_POSTFIELDS, $data );PHP 5.5.0 以降、@ プレフィックスは非推奨になりました。 また、ファイルを CURLFile で送信できるようになりました。 @ プレフィックスを無効化して、 @ で始まる値を安全に渡せるようにするには、 CURLOPT_SAFE_UPLOAD オプションを TRUE と設定します。 CURLOPT_VERBOSE デバッグトレースしたい時に使用。CURLOPT_STDERR で指定したファイルに出力されます$handle = fopen("./debug.txt", "w"); curl_setopt($curl, CURLOPT_STDERR, $handle);CURLOPT_WRITEHEADER 転送のヘッダ部分が書き込まれるファイルを指定します$handle = fopen("./ret_header.txt", "w"); curl_setopt($curl, CURLOPT_WRITEHEADER, $handle);CURLOPT_CONNECTTIMEOUT 接続の試行を待ち続ける秒数。いつも、30 ぐらいでテストしています。 ( 0 だと、タイムアウトなし ) CURLOPT_FTP_SSL マニュアル本文には無いけれど、投稿部分に記述があり、実際にそれで動作する事を確認しました。curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_ALL);CURLFTPSSL_NONE、CURLFTPSSL_TRY、CURLFTPSSL_CONTROL、CURLFTPSSL_ALL があるようです。 CURLOPT_HEADER TRUE を設定すると、ヘッダの内容も出力します。ですが、通常必要無いので false にします。 CURLOPT_URL 呼び出す対象です。http:// であったり、https:// であったり、ftp:// であったりします。ftp で SSL を使用する場合は、CURLOPT_FTP_SSL で指定して動作しています。https:// の場合は、CURLOPT_SSL_VERIFYPEER と CURLOPT_SSL_VERIFYHOST だけで動作します。(FTP でも指定します) CURLOPT_POST TRUE を設定すると、HTTP POST を行います。POST は、 application/x-www-form-urlencoded 形式で 行われます(一般的なものです)。データは、CURLOPT_POSTFIELDS で連想配列にして設定します CURLOPT_HTTPHEADER 設定する HTTP ヘッダフィールドの配列。 array('Content-type: text/plain', 'Content-length: 100') 形式です。 CURLOPT_FILE FTP で、転送内容が書き込まれるファイル。$fp = fopen("./target.zip","w"); curl_setopt($ch, CURLOPT_FILE, $fp);CURLOPT_PUT http の PUT コマンドや、FTP のアツプロード時に使用する( true にする )。ファイルアップロードは、CURLOPT_INFILESIZE と、CURLOPT_INFILE が必要になります$file_path = "./winofsql.png"; curl_setopt($curl, CURLOPT_INFILESIZE, filesize ( $file_path )); $handle = fopen($file_path, "r"); curl_setopt($curl, CURLOPT_INFILE, $handle);CURLOPT_FOLLOWLOCATION TRUE を設定すると、サーバーが HTTP ヘッダの一部として送ってくる "Location: " ヘッダの内容をたどります (これは再帰的に行われます)。よって、リダイレクトを自動化したい場合、つまり最終的な結果だけ欲しい場合に使用します。 関連する記事 PHP の cURL でファイルアップロード PHP : cURL で FTP + SSL ダウンロード PHP の cURL で ftp サーバーにファイルをアップロードする(SSLなし) ローカルの PHP を使ってコマンドプロンプトより簡単にバイナリファイルをアップロードする PHP : リモートのファイルサイズを取得する
|
|
2024年06月30日
PHP で cURL はオプションが全て。いろいろあるので、ちょっとまとめ【2014/7/31の記事】
2019年08月25日
PHP : 画像を返す処理( readfile ) と画像を縮小する処理( GD )
この PHP を指定ファイル名で呼び出すと、幅を 100px で縮小された画像を返します( 無ければ縮小画像を返します )。 ▼ 縮小 imagecopyresampled
<?php
$debug = false;
// *************************************
// 画像があるフォルダの相対パス
// *************************************
$image_dir = 'images';
// *************************************
// QueryString より対象の
// 画像ファイル名を取得
// *************************************
$file = "{$image_dir}/{$_GET['name']}";
// *************************************
// 画像が存在しない場合は、
// エラー用の画像をブラウザに返す
// *************************************
if ( !file_exists( $file ) || $_GET['name'] == '' ) {
header("Content-Type: image/png");
$file = "{$image_dir}/error.png";
header('Content-Length: ' . filesize($file));
readfile($file);
exit();
}
// *************************************
// ファイルの MIME を取得
// *************************************
$mime = image_type_to_mime_type( exif_imagetype( $file ) );
// *************************************
// ファイル名から拡張子を除いた部分を
// 取得して、縮小ファイルのファイルの
// パスを作成する( .jpg )
// *************************************
$path_parts = pathinfo($_GET['name']);
$small_file = "{$image_dir}/s/{$path_parts['filename']}.jpg";
// *************************************
// 縮小ファイルがなければ作成して
// ブラウザに返す、あればそのまま返す
// *************************************
if ( !file_exists( $small_file ) ) {
if ( ImageConvert( $image_dir, $_GET['name'], exif_imagetype( $file ) ) ) {
header("Content-Type: image/jpeg");
header('Content-Length: ' . filesize($small_file));
readfile($small_file);
}
else {
// 縮小に失敗した場合は、大きい元のファイルを返す
header("Content-Type: {$mime}");
header('Content-Length: ' . filesize($file));
readfile($file);
}
}
else {
header("Content-Type: image/jpeg");
header('Content-Length: ' . filesize($small_file));
readfile($small_file);
}
// *************************************
// ファイルを縮小して保存
// *************************************
function ImageConvert( $dir, $filename, $type ) {
log_print( "$dir, $filename, $type" );
// *************************************
// ファイルの属性等を取得
// *************************************
$target = getimagesize( "$dir/$filename" );
log_print( print_r($target,true) );
// 現在のサイズ
$width = $target[0];
$height = $target[1];
$width_new = 100; // 幅固定
// *************************************
// 縮小後の高さを計算で求める
// *************************************
$height_new = (int)( ($height/$width)*$width_new );
$target_path = "$dir/$filename";
$jpeg = false;
// *************************************
// 画像の種類によって、オブジェクト作成方法を選択する
// *************************************
if ( $type == 2 ) {
$jpeg = @imagecreatefromjpeg( $target_path );
}
if ( $type == 3 ) {
$jpeg = @imagecreatefrompng( $target_path );
}
if ( $type == 4 ) {
$jpeg = @imagecreatefromgif( $target_path );
}
if ( $jpeg === false ) {
return false;
}
log_print( "現画像取得" );
// *************************************
// 新しい空のイメージ
// *************************************
$jpeg_new = @imagecreatetruecolor( $width_new, $height_new );
if ( $jpeg_new === false ) {
return false;
}
log_print( "新しい画像取得" );
// *************************************
// サイズ変更して新しいイメージへ転送
// *************************************
$ret = @imagecopyresampled(
$jpeg_new,
$jpeg,
0,
0,
0,
0,
$width_new,
$height_new,
$width,
$height
);
if ( !$ret ) {
return false;
}
log_print( "縮小完了" );
// *************************************
// JPEG ファイルとして、
// クオリティ 75 で出力
// *************************************
$path_parts = pathinfo($filename);
$ret = @imagejpeg ( $jpeg_new, "$dir/s/{$path_parts['filename']}.jpg", 75 );
if ( !$ret ) {
return false;
}
log_print( "ファイル出力完了:$dir/s/{$path_parts['filename']}.jpg" );
return true;
}
// *************************************
// デバッグログ
// *************************************
function log_print( $msg ) {
if ( !$GLOBALS['debug'] ) {
return false;
}
file_put_contents("debug.log", $msg ,FILE_APPEND );
file_put_contents("debug.log", "\n" ,FILE_APPEND );
}
?>
2019年08月21日
PHP における標準的なテスト用アップロードのテンプレート
1) 一度にアップロードできるファイルは一つです。 2) PHP とおなじ場所にファイルをアップロードします( 本来は場所を変えるべきです ) 3) アップロードできる最大サイズは 1048576 バイトです 4) アップロードするファイル名の日本語対応をしないので、uniqid() 関数でファイル名を作成しています 5) 拡張子は、アップロードされたファイルとおなじものを使用しています 6) PHP が $_FILE にセットする MIME が画像の場合は、HTML で画像を表示します
<!DOCTYPE html>
<html>
<head>
<meta content="width=device-width initial-scale=1.0 minimum-scale=1.0 maximum-scale=1.0 user-scalable=no" name="viewport">
<title>単純ファイルアップロード</title>
<meta charset="utf-8">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css">
<link rel="stylesheet" href="https://lightbox.sakura.ne.jp/demo/two-section.css">
<style>
#extend {
white-space: pre;
}
</style>
</head>
<body>
<div id="head">
<form
enctype="multipart/form-data"
method="POST">
<div>
<input name="target" type="file" class="ml-4 btn btn-outline-primary">
<input type="submit" name="send" value="アップロード" class="ml-4 btn btn-outline-primary">
<a class="ml-4 btn btn-info" href="<?= $_SERVER["PHP_SELF"] ?>">GET 再読み込み</a>
<input type="hidden" name="MAX_FILE_SIZE" value="1048576">
</div>
</form>
</div>
<div id="extend">
<?php
if ( $_SERVER['REQUEST_METHOD'] == "POST" ) {
// 拡張子を得る為に pathinfo
$path_parts = pathinfo($_FILES['target']['name']);
$file_name = uniqid() . ".{$path_parts['extension']}";
// アップロード先の パス
$upload = realpath("./");
$upload .= DIRECTORY_SEPARATOR . $file_name;
// アップロード先の パス の表示
print "$upload\n";
// PHP のアップロード処理( 一時ファイルを移動 )
if ( move_uploaded_file($_FILES['target']['tmp_name'], $upload ) ) {
print "<p>アップロードに成功しました</p>\n";
}
else {
print "<p>アップロードに失敗しました</p>\n";
}
// アップロード情報の表示
print_r( $_FILES );
// 画像の場合は HTML で表示
if ( stristr($_FILES['target']['type'],'image' ) != false ) {
print "<img src='{$file_name}'>";
}
}
?>
</div>
</body>
</html>
2019年08月20日
PHP : MySQL から JSON 文字列を返す自作(テスト用) API テンプレート
access-control-allow-origin: * を出力して JavaScript から自由に読み込めるようにしています。 fetch_all を使用してJSON 文字列を一括で取得しています。
<?php
error_reporting( E_ALL & ~E_NOTICE );
session_cache_limiter('nocache');
session_start();
// 取得対象列
$list = "社員コード,氏名,フリガナ,所属,性別,作成日,更新日,給与,ifnull(手当,0) as 手当,ifnull(管理者,'') as 管理者";
// json encode オプション
$flg = 0x0000;
// JavaScript ajax 用
header( "Access-Control-Allow-Origin: *" );
header( "Content-Type: application/json; charset=utf-8" );
// DB 接続
$mysqli = new mysqli('サーバ', 'ユーザ', 'パスワード', 'データーベース');
if ( $mysqli->connect_error ) {
// 接続失敗
$json = array( "error" => "Connect Error ({$mysqli->connect_errno}) {$mysqli->connect_error}" );
}
else {
// json encode オプション
if ( $_GET["pretty"] != "no" ) {
$flg = $flg | JSON_PRETTY_PRINT;
}
if ( $_GET["escape"] != "no" ) {
$flg = $flg | JSON_UNESCAPED_UNICODE;
}
$mysqli->set_charset("utf8");
// ~E_NOTICE なので、単純化
if ( $_GET["name"] == "" ) {
$query = "select {$list} from 社員マスタ";
}
else {
$query = "select {$list} from 社員マスタ";
// 条件オプション
$query .= " where 氏名 like ?";
}
// SQL 準備
$stmt = $mysqli->prepare($query);
if ( $stmt === false ) {
// SQL 失敗
$json = array( "error1" => "$mysqli->error : {$query}" );
}
else {
// バインドは変数で
$param = "%{$_GET["name"]}%";
// パラメータの数が一致しない場合の warning を出さない為の @ 抑制
@$stmt->bind_param('s', $param );
if ( false === $stmt->execute() ) {
$json = array( "error2" => "$mysqli->error" );
}
else {
// MySQL ネイティブドライバ限定(PHP 5.3.0 以降)
$result = $stmt->get_result();
if ( $result === false ) {
$json = array( "error3" => "$mysqli->error" );
}
else {
// DB 読み出し成功
$json = $result->fetch_all( MYSQLI_ASSOC );
}
}
}
}
print json_encode( $json, $flg );
?>
2016年11月20日
ImageMagick を Windows(32ビット)の PHP で利用する
php 5.4 と 5.6 で動作確認しました Windows + PHP で ImageMagick するには、こちらからダウンロードします(サイトが無くなっているのでインターネットアーカイブです) ここからは、画像フォーマット用の DLL を手に入れる事ができます ( ImageMagick-6.8.0-vc9 というフォルダに 画像フォーマット用を含めた DLL が入っています ) 最新は、pecl からダウンロードする事ができますが、画像フォーマットの dll が pecl 側には無いので、上記の消失サイトのインターネットアーカイブからダウンロードできるものをコピーして利用可能です。( pecl 側の全てのファイルを、ImageMagick-6.8.0-vc9 の中にコピーして上書きしたものを使用します )
※ phpinfo() で、NTS か TS かを確認します。( 上の例は NTS ) 対象となる PHP 用の dll を配置して、php.ini で参照します(例:最初の画像) それ以外にも、Windows 用の DLL がたくさん用意されているので、そのフォルダを適当に配置して、PATH 環境変数に追加して使用します。( php.ini の記述例 : extension=C:\php\imagick\php_imagick.dll ) 正しく設定できれば、以下のようになります。(PHP Version 5.4.13)
※ pecl 側のみだと、ImageMagick supported formats が no values で空になります。 マニュアル 画像処理 [ImageMagick] : php オンラインマニュアル
<?php
// 画像
$image = new Imagick("1382552847536630.jpeg");
// トリミング
$image->cropImage(300, 300, 600, 200);
// 出力
$image->writeImage('crop.jpg');
?>
OK
関連する記事 PHP : 曲線が必要ならば ImageMagick ( 但し使えるかどうかはサーバー次第 )
2015年10月10日
PHPで、ベタベタな日付チェック。汎用的とも言うw
フォーマットチェックを兼ねて、explode で分割し、3つの配列になった場合のみ、checkdate しますが、引数にはそれぞれ +0 を書いておくといいですね。
// 【生年月日】
$ymd = explode("/", $_POST['birthday']);
if ( count($ymd) != 3 ) {
$ErrorMessage .= "日付のフォーマットが正しくありません<br>";
}
else {
if( !checkdate( $ymd[1]+0,$ymd[2]+0,$ymd[0]+0 ) ) {
$ErrorMessage .= "日付が正しくありません<br>";
}
}
大昔は、checkdate 部分は自作したものですが、各言語にそれなりのがあると思います。その際、必要な値を文字列から分割する必要があるので、どうしてもこういう発想になります。 正規表現使うより説明しやすいってのあります。大昔は、2000年になる前の頃の事ですが、言語と呼ばれるものも未発達だったので、2000年がうるう年である事をチェックするのに、自分で書いた記憶のある人も世の中には沢山居ます。 通常は、100年で割り切れると、うるう年では無いわけですが、400年で割り切れる 2000年はうるう年なので、気を使ったもんです。
2015年09月28日
PHP でカタカナのフリガナ入力のチェック
preg_match で、カタカナのみでなりたっているかどうかをチェックするならば、
if ( !preg_match("/^[ァ-ー]+$/u", $entry) ) {
print "全てカタカナで入力して下さい";
}
本当は、30FF までがカタカナの範囲ですが、一般的には ァ〜ー で十分です。この範囲の文字が最初から最後まで続いていなかったらエラーです。 ただ、この場合ですと、半角と全角のスペースが許され無いので、一般的にフリガナとしては正しい仕様とするならば、"/^[ ァ-ー]+$/u" として、[] の中に半角と全角のスペースを追加します また、逆のひらがなのふりがなの場合は、長音を追加する事が必要になります。
2014年11月11日
TCPDF で罫線を引く
罫線を引く処理をまとめておけば、それは罫線だけ印刷された印刷物の上にデータを印刷する処理をアプリ側で実装できます(AddPage の後に毎回出力)。そのためには、少なくとも四角形と直線だけ引ける必要があります。 Line メソッド 二つの座標と、罫線の属性を定義した配列で直線を引けます Line( $x1, $y1, $x2, $y2, array( "width" => 幅, "color" => array( 0, 0, 0 ) ) ); ※ array( 0, 0, 0 ) は黒 Rect メソッド 四角形(4つの直線)を作成できます。塗りつぶしもかねているので、以下の書式は塗りつぶしをしない書式です $line_style = array( "width" => 幅, "color" => array( 0, 0, 0 ) ); Rect( $x, $y, $w, $h, "D", array( "all" => $line_style ) ); 4角形なので、4つを別々に定義できますが、all にすると一度に全て定義した事になります
// ***********************************************
// 罫線印字
// ***********************************************
function load_form( $pdf, $cur_position ) {
$left = 5;
$top = 5;
$width = 200;
$height = 285;
$line_height = $GLOBALS['line_height'];
$line_style = array('width' => 0.1, 'color' => array(0, 0, 0) );
$body_style = array(
'T' => $line_style,
'R' => $line_style,
'B' => $line_style,
'L' => $line_style );
$pdf->Rect( $left, $top, 200, 285, 'D', $body_style );
$line_top = $cur_position;
for( $i = 0; $i < 30; $i++ ) {
$ly = ($i-1) * $line_height + $line_top;
$pdf->Line( $left, $ly, $left + $width, $ly );
}
}
getLastH で現在のフォントでの文字高さを取得
// ダミーで印字して、現在のフォントでの // 行の高さを決定する $pdf->SetXY( -100, -100 ); $pdf->Cell(1, 0, " ", 0, 0, "L"); $GLOBALS['line_height'] = $pdf->getLastH();
2014年11月06日
フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの DB 処理部分
アクセスカウンターの文字列表示部部下は、PHP 画像(GD)として埋め込むアクセスカウンターの画像出力部分の作成 を参照して下さい。 ここの get_value() 関数の戻り値を $img_text = get_value(); としてセットするだけです。 ※ require_once( "example_db.php" ); も必要です ▼ example_db.php
<?php
function get_value() {
// ***********************************************
// グローバル変数
// ***********************************************
$server = 'サーバー';
$db_name = 'データベース';
$user = 'ユーザ';
$password = 'パスワード';
// ***********************************************
// データベース接続
// ***********************************************
$connect = @ new mysqli($server, $user, $password, $db_name);
if ($connect->connect_error) {
return "----------";
}
$query = "update counter ";
$query .= " set c1 = LAST_INSERT_ID( c1+1 ) ";
$query .= " where rkey = 1";
$result = $connect->query($query);
if ( !$result ) {
return "==========";
}
$query = "select LAST_INSERT_ID()";
$result = $connect->query($query);
if ( !$result ) {
return "==========";
}
$row = $result->fetch_array(MYSQLI_BOTH);
$ret = sprintf( "%010d", $row[0]+0 );
return $ret;
}
?>
要点は、LAST_INSERT_ID( n ) を使用して、カウンター用のレコードの一つの列を更新して、その結果を取得して使用しているところです。 テストに使ったテーブル定義
CREATE TABLE `counter` ( `rkey` int(11) NOT NULL, `c1` int(11), `c2` int(11), PRIMARY KEY (`rkey`) )
この方法ですと、一つのテーブルの1レコードだけで複数のカウンターを管理できます。
フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの画像出力部分の作成
アクセスカウンターのカウントアップは、データベースを使用すると簡単です。その部分は別に作成するほうが内容の重要な部分が明確になります。 数字画像を作成するのは、imagettftext を使用すれば容易です。文字に対していろいろ装飾するには、追加処理が必要ですが、ここでは単純に白い背景に対して黒い文字を『GN-キルゴ』というフォントで出力します。 ※「GN-キルゴ」は、漫画『キルミーベイベー』のタイトルロゴをイメージしたフォントです ▼ 実際の PHP による画像表示![]()
<?php
// ***********************************************
//
// プログラム名 : アクセスカウンターの下準備
// 作 成 者 : lightbox
// 作 成 日 : 2014/10/31
// ソ ー ス : UTF-8N
//
// 概要 : 指定したフォントで数字文字列画像作成
//
// ***********************************************
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
// ***********************************************
// 使用するフォント
// ***********************************************
$font_path = "GN-KillGothic.ttf";
// ***********************************************
// 初期テキスト
// ***********************************************
$img_text = "8888888888";
// ***********************************************
// 幅と高さ
// ***********************************************
$width = 220;
$height = 30;
// ***********************************************
// キャンバス作成
// ***********************************************
$im = imagecreatetruecolor( $width, $height );
// ***********************************************
// 画像の背景色( 白 )
// ***********************************************
$white = imagecolorallocate( $im, 255, 255, 255 );
imagefilledrectangle($im, 0, 0, $width, $height, $white);
// ***********************************************
// 画像の文字色( 黒 )
// ***********************************************
$black = imagecolorallocate( $im, 0, 0, 0 );
// ***********************************************
// 使用不可サイトのチェック
// ***********************************************
$site = false;
$target_sites = array("http://toolbox.winofsql.jp/","http://logicalerror.seesaa.net/");
foreach( $target_sites as $target ) {
$len = strlen( $target );
$ref = substr( $_SERVER['HTTP_REFERER'], 0, $len );
if ( $target == $ref ) {
$site = true;
break;
}
}
// ***********************************************
// 【使用許可サイトの場合】
// ここに、DB から取得した文字列をセットする処理
// を入れる予定です
// ***********************************************
if ( $site ) {
$img_text = "1235467890";
}
// ***********************************************
// フォントより文字列画像作成
// ***********************************************
imagettftext(
$im,
20, // サイズ
0, // 角度
5, // x 座標
25, // y 座標
$black,
$font_path,
$img_text);
// ***********************************************
// ブラウザへ出力
// ***********************************************
header('Content-Type: image/png');
imagepng($im);
// ***********************************************
// 後処理
// ***********************************************
imagecolordeallocate( $im, $black );
imagecolordeallocate( $im, $white );
imagedestroy($im);
?>
imagefilledrectangle は、その名の通り( FILL ) 四角形の塗りつぶし処理です。 関連する記事 フリーフォントを使って PHP 画像(GD)として埋め込むアクセスカウンターの DB 処理部分
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。 Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。 また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。 ※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです 対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。※ エキスパートモードで表示しています アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります
<% if:page_name eq 'archive' -%> アーカイブページでのみ表示される内容 <% /if %> <% if:page_name eq 'category' -%> カテゴリページでのみ表示される内容 <% /if %> <% if:page_name eq 'tag' -%> タグページでのみ表示される内容 <% /if %>この記述は、以下の場所で使用します![]()
|
|










php 5.4 と 5.6 で動作確認しました
Windows + PHP で ImageMagick するには、
※ phpinfo() で、NTS か TS かを確認します。( 上の例は NTS )
対象となる PHP 用の dll を配置して、php.ini で参照します(例:最初の画像)
それ以外にも、Windows 用の DLL がたくさん用意されているので、そのフォルダを適当に配置して、PATH 環境変数に追加して使用します。( php.ini の記述例 : extension=C:\php\imagick\php_imagick.dll )
正しく設定できれば、以下のようになります。(PHP Version 5.4.13)
※ pecl 側のみだと、ImageMagick supported formats が no values で空になります。
マニュアル
preg_match で、カタカナのみでなりたっているかどうかをチェックするならば、
※ エキスパートモードで表示しています
アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります


















