1. TOP
  2. Web

[サーバ] さくらインターネットでpdfimagesを使う

カテゴリ:
Web
サーバ
| トラックバック(0)
投稿者:yo yo

サーバレンタルサービス、さくらインターネットのスタンダードプランへXPDFの派生であるpoploerをインストールして、pdfimagesを使えるようにする。サーバへファイルをダウンロードして、展開して、コンパイルして、インストールする。

  # ホームディレクトリにソースを保存するディレクトリを作成
  % mkdir -p $HOME/local/src
  % cd $HOME/local/src
  
  ## ファイルはftpでアップロードしてもOK。
  # popplerのインストール。
  % wget https://poppler.freedesktop.org/poppler-0.51.0.tar.xz
  % tar -xvzf poppler-0.51.0.tar.xz
  % cd poppler-0.51.0
  % ./configure -prefix=$HOME/local
  % make
  % make install
  
  # poppler-dataのインストール。
  % cd ../
  % wget https://poppler.freedesktop.org/poppler-data-0.4.7.tar.gz
  % tar -xvzf poppler-data-0.4.7.tar.gz
  % cd poppler-data-0.4.7
  % make install datadir=$HOME/local/share
  
  # 動作確認
  % $HOME/local/bin/pdfimages

  # pdfimages version 0.51.0

公式や先人達

[Wordpress] 管理画面の投稿・カスタムポスト一覧に独自カラムを追加する

カテゴリ:
Web
Wordpress
| トラックバック(0)
投稿者:yo yo

管理画面投稿一覧に「カラムラベル」を追加

/**
* 管理画面投稿一覧に「カラムラベル」を追加
*
* @param	array	$columns
*/
function add_custom_column_label( $columns ) {
  $columns['customlabel'] = 'カスタムラベル';
  return $columns;

  /* *******
  	// リファレンスではこう書いてある。
    return array_merge( $columns, array('customlabel' => 'カスタムラベル') );
  ******* */

}
// 投稿タイプ post へ追加する場合
add_filter( 'manage_post_posts_columns', 'add_custom_column_label' );
// カスタム投稿タイプ hoge へ追加する場合
//add_filter( 'manage_hoge_posts_columns', 'add_custom_column_label' );
// 全ての posts へ追加する場合(全ての固定ページが対象だったらpostsをpagesに変更する)
//add_filter( 'manage_posts_columns', array( $this, 'add_custom_column_label' ) );

リファレンス:Plugin API/Filter Reference/manage posts columns

管理画面投稿一覧に「カスタムラベルに対応する列」を追加

/**
* 管理画面投稿一覧に「カスタムラベルに対応する列」を追加
*
* @param	string	$column_name	The name of the column being rendered.
* @param	int		$int			The ID of the post being rendered.
* @since	1.8
*/
function add_custom_column_body( $column_name, $post_id ) {
	if($column_name ==='customlabel'){
	  echo 'カスタムラベルに対応する列の内容を表示できます';
  }
}

// 投稿タイプ post へ追加する場合
add_filter( 'manage_post_posts_custom_column', array( $this, 'add_custom_column_body' ), 20, 2 );
// カスタム投稿タイプ hoge へ追加する場合
//add_filter( 'manage_hoge_posts_custom_column', array( $this, 'add_custom_column_body' ), 20, 2 );
// 全ての posts へ追加する場合(全ての固定ページが対象だったらpostsをpagesに変更する)
//add_filter( 'manage_posts_custom_column', array( $this, 'add_custom_column_body' ), 20, 2 );

リファレンス:Plugin API/Action Reference/manage posts custom column

[その他] ウェブAPIが使えるインターネットFAX

カテゴリ:
Perl / PHP
Web
その他
| トラックバック(0)
投稿者:yo yo

ウェブAPIが使えたり、メールの送受信によってFAXを送れるサービスメモ。

たとえば

  1. フォームに入力・送信
  2. PHPとかで整形しメール添付でネットFAXに送信
  3. そのメール添付内容をFAXで送信
  4. フォーム・fax内容をデータベースに登録

的なものを目指す。

サービス名 FAX番号 送受信 WEB API ページ単価 月額費用 初期費用
秒速FAX送信(ToonesインターネットFAX) - 株式会社Karigo 03、IP、他、既存利用可 送信 JSON形式 7~10円/枚(月5000枚以下で10円) 無料 無料
受信 JSON形式(日時、fax番号、枚数、受信元番号、送信元番号、PDF) 8円/枚・3円/枚・無料 498円・798円・980円 1,050円
InterFAX 03、既存利用可 送信 メール(添付ファイル) or XML-SOAP形式 22円/枚+税 1,000円+税(250円分送信無料) 無料
受信 メール(添付ファイル) or XML-SOAP形式(日時、fax番号、枚数、送信元番号、PDF・TIFF) 10円/枚+税(1000ページ分無料) 2,200円+税 1,500円+税
FaximoSilver - 送受信 メール(添付ファイル) or XML-SOAP形式 12円/枚+税 940円+税 1,500円+税

[js] 電話番号のフォーマット、フォームでのバリデーション的なアレ

カテゴリ:
Web
javascript
| トラックバック(0)
投稿者:yo yo

電話番号のパターン

国内固定番号系10桁、最初の桁は「0」
0XXXX X XXXX5桁-1桁-4桁
0XXX XX XXXX4桁-2桁-4桁
0XX XXX XXXX3桁-3桁-4桁
0X XXXX XXXX2桁-4桁-4桁
フリーダイヤル、ナビダイヤル、Q2 (0120,0800,0570,0990)
0XX0 XXX XXX4桁-3桁-3桁
携帯、PHS、IP電話等(020,050,060,070,080,090)11桁、最初の桁は「0」
0X0 XXXX XXXX3桁-4桁-4桁
特番系(110、199他)3桁、最初の桁は「1」
1XX3桁

イメージとコード

フォームに入力された電話番号のjavascriptでのバリデートの流れ。ハイフン有り無しでも正確に判別できるようにする。細かくやるなら「先頭が090か」など逐一条件分岐する。

  1. 先頭が0である
  2. ハイフン(-)でsplitすると、1つ(ハイフン未入力時)、もしくは3つ(ハイフン入力時)に分割できる
  3. ハイフン(-)を除いて10~11桁である
  4. splitした3つの内、1つ目の番号の塊が3桁、2つ目・3つ目が4桁になっている。
  5. splitした3つの内、1つ目の番号の塊が2~5桁、2つ目が1~4桁、3つ目が4桁になっている。

だいたいこんなイメージで下記の様な感じに書く。とりあえずのメモ。コピペしても動きません。


入力欄からハイフンをそもそも消してしまう場合はコレを記述する


参考

[php] 「ページの有効期限切れ・フォーム再送信の確認」の対策

カテゴリ:
Perl / PHP
Web
| トラックバック(0)
投稿者:yo yo

原因

  • SESSIONを使っている
  • POSTでパラメータを送信
  • ブラウザの「戻る」を押した

犯人はだれだ?

原因は、PHPでSESSIONを使うと(デフォルト設定では)自動でキャッシュ制御用のHTTPヘッダーが送出され、それによりクライアント側のキャッシュが使用不可にされるため。(参考:floatingdays: PHPでブラウザキャッシュを有効にする)

つまり、下記条件を全て満たした場合にこの現象が発生する。

  • HTTP POSTで遷移してきた。
  • SESSIONを使っている。(session_start()してるか、php.ini等でsession.auto_start=1に設定している。)
  • 次のページに行ってから、ブラウザの履歴機能(JavaScriptのhistory.back()を含む)で戻ってきた。
PHPで 「Webページの有効期限が切れてます」となる時の傾向と対策 - floatingdays

対策

方法1

session_start()する前に、session_cache_limiter('none')を書く。SESSIONを利用しても余計なHTTPヘッダが送出されない。

  session_cache_limiter('none');
  session_start();
  // フォーム

cache_limiterにnoneというパラメータは無いからパラメータエラーとなり、結果的にHTTPヘッダを送信しないという挙動になっているらしい。

PHP: session_cache_limiter - Manual

方法2 こっちが正解

header();に色々書いて、ブラウザキャッシュを表示させる。ただし、SESSIONの最新情報が入っていないので注意が必要。

  session_start();
  header('Expires:-1');
  header('Cache-Control:');
  header('Pragma:');
ページの先頭に戻る