#b-navbar { height:0px; display:none; visibility:hidden; }

ページ

2015年5月17日日曜日

Emeditor起動時の「アクセスが拒否されました」を表示させないようにする




EXEファイルのショートカットから起動するといつもこうなる。





原因: 以下の複合要因です


  1. 起動時はテキストファイルが開かれるが、
  2. その際にテンプレートファイルを使う設定になっている
  3. そのテンプレートファイルのパスがおかしい。おそらくディレクトリを指定してしまっているなど。




対処方法:
    テンプレートファイルを使う設定にしない



手順:


  1. メニュー ⇒ 設定のプロパティ - [ファイル] タブ
  2. 下の方にあるボタンを押して、[新規作成時の詳細] ダイアログ ボックス

  3. [テンプレートを使用] チェック ボックスを外す





これでOK













2015年5月10日日曜日

プリインストール版のOffice2013の 32bit版を64bit版にする方法




まだまだMS的には32bit推奨なため、手順はややこしいです。
とりあえず、32bit版のOfficeはアンインストールせずに始めてみましょう。
焦らない焦らない ^ ^;

================================================

(1)アカウントページに行く。

https://downloadoffice.getmicrosoftkey.com
https://downloadoffice.getmicrosoftkey.com/Account/Index
※要ログイン
※要プロダクトキー


(2)「今すぐダウンロード」ボタンは押しません! ⇒ 32bit版になってしまうから。(Setup.x86.ja-JP_・・・・・.exeは32bit版)

そこでまずは、「今すぐダウンロード」ボタンのリンクURLを取得します


================================================

(2-1) リンクURL取得するには、緑色の「今すぐダウンロード」ボタンを右クリック→メニューから「ショートカットのコピー」 → クリップボードにURLが入ります

(2-2別の方法 )または、「今すぐダウンロード」でとりあえずダウンロードだけして、メニューから「ダウンロードの表示」で、ダウンロードの履歴を表示して → ファイル名を右クリック→メニューから「ダウンロードリンクのコピー」 → クリップボードにURLが入ります

================================================

(3) 前項のURLを一部書き換えます。86を64に変えるだけです。
URL の 中の"platform=x86" を "platform=x64" に変更して・・・


(4) ブラウザで開きます。

Setup.x64.ja-JP_・・・・・.exe(64bit版)がダウンロードされます。

================================================


ここまできたら64bit版の準備ができたことになりますので、
※できればここで復元ポイントを作成しましょう


(5) 32bit版のOfficeを アンインストールします。

(6) あとは、(4)の.exeファイルを実行(ダブルクリック)して、64bit版のインストーラーの指示どおりに進みます。



================================================
たぶん2010でも同じようなものだと思う。


当方:Windows7OS64bit、Office2007→  2013 PI版 Home&Business 64bit
参考:プレインストール用の 64 ビット版 Office 2013 のインストール方法
http://support.microsoft.com/kb/2814147/JA

2015年5月3日日曜日

PHP:スクレイピングを簡単に行う関数

<?php
/* 利用例:sample

  $val = fetch_val_from_URL_ver3 (
   "http://www.yahoo.com/",
   "/lang=\"([\s\S]+?)\"/i"
  );

     print_r ( $val ) ; //en-US
     print "<br />";



  $array= fetch_val_from_URL_ver3 (
   "",
   "/lang=\"([\w\-]+?)\"[\s\S]+?<title>([\s\S]+?)<\/title>/i"
  );

     print_r ( $array ) ; //Array ( [0] => [1] => en-US [2] => Yahoo )
     print "<br />";



*/


function fetch_val_from_URL_ver3 ( $CRON_URL , $REGEX_val  ) {

/*

★メモ:
 ・日本語を正規表現に含む場合は、UTF8でコードを書いて下さい。
    それ以外は、関数の中のUTF-8に統一している箇所を修正してください。

 ・改行コードは正規表現が面倒になるので取得後に、一律削除しています。


★引数;

 ・CRON_URL は"http://~"からいれてください。
 ・CRON_URL を 空欄"" にすると、前回呼び出したHTMLを再利用します。
  ※ そのため、 $fv_global_html はグローバル変数名です。
 
 ・REGEX_val は正規表現です。
   日本語を正規表現に含む場合は、UTF8で表現式を書いて下さい。
 
 
★返り値:

 ・REGEX_val の正規表現で、(かっこ) で囲った表現部分を抽出して、値または配列を返します。
 
 ・REGEX_val の (かっこ)が1個の時は、値を返します。2個以上の時は、配列を返します。
 
 
 
★バグシューティング:

 ・関数を記述しているPHPファイル は UTF-8 ですか? (スクレイプの対象ページの文字コードは関係ありません。
  関数の中の mb_convert_encoding 処理で UTF8 に固定処理をしているからです。
  もしこの関数を、UTF-8以外のスクリプトで記述する場合は、関数内のmb_convert_encoding部分を修正して下さい )
 
 ・正規表現は正しいですか? regexpal.com が便利ですよ。
 ・正規表現に、タグの </ があるときは 「<\/」にエスケープしてください
 ・この関数内で、$fv_global_html という変数名をグローバルとして利用しています。

★ヒント

 ・相手先のサーバーのためにも、同じページを何度も呼ばないようにしましょう。
   CRON_URLを 空欄""にすると、前回呼び出した時のHTMLを再利用できます。
 
 ・改行を含む任意の一文字は [\s\S] 、 数値は ([\-\d\.\,]+?) を使うといいでしょう。
 
 ・UserAgentを変えるとこともできます

★その他

 ・無保証で無責任です。目的にかかわらず、自由に改変して利用できます。
  クレジット表記や、連絡は不要です。
 
 ・バグ等のご連絡 は、sakai[-_atmark_-]quel.jp へ
 ・Programmed by Hiroyuki.Sakai, Infolio,inc.

*/


 //設定 
 global $fv_global_html;
 $flg_ReUse_contents = false;
 unset($ary_match);
 
 //取得
 if ( $CRON_URL == "" ) {//urlがヌルの時は ReUse_contents をtrueに
   $flg_ReUse_contents = true;
 }
 
 if ( $flg_ReUse_contents == true ) {
  
  //$fv_global_htmlはそのまま再利用
  if ( $fv_global_html =="" ) {//空かどうかのチェックだけ行う
   print "No data URL:E:001 $CRON_URL ";
   print "<br /> " ;
   return false ;
  }
  
  
 }else {
  //新規取得
  
   //接続準備
   $options = array(
    'http' => array(
     'method' => 'GET',
     'header' => 'User-Agent: Mozilla/5.0 ( PHP fetch-val-from-URL-ver3 ) ',
    ),
   );
   $context = stream_context_create($options);

   //取得
   $fv_global_html = file_get_contents( $CRON_URL, false, $context);
   $fv_global_html = str_replace ("\r\n","\n",$fv_global_html);
   $fv_global_html = str_replace ("\r","\n",$fv_global_html);
   
   //UTF8に統一する
   $fv_global_html = mb_convert_encoding ($fv_global_html,"UTF-8",mb_detect_encoding($fv_global_html));
   
   unset ( $context ) ;
   
 }
 
 
 //改行は正規表現が面倒になるので一律削除 (このブロックが不要であればコメントアウトしてください)
 $fv_global_html =  str_replace("\r","",$fv_global_html ) ;
 $fv_global_html =  str_replace("\n","",$fv_global_html) ;
 
  
 //抽出
 preg_match( $REGEX_val , $fv_global_html ,$ary_match );
 
 
 //マッチがないとき
 if ( isset($ary_match[1]) ) {
   
 } else {
  $val = "" ;
  print "Nomatch E:003 <br />$REGEX_val<br />in $CRON_URL ";
  print "<br /> " ;
  return false ;
  
 }
 
 //数字ならばカンマ削除
 $ary_match = array_map (  function ( $vn ) {
  
  if ( preg_match("/[\d\.\,\/\s]+?/", $vn) ) {
   return str_replace ( "," , "" , $vn ) ;
  }else {
   return $vn ;
  }
  
 } , $ary_match  );
 
 
 //配列か変数値を返す
 if ( count($ary_match) == 2 ) {
  
  return $ary_match[1];
  
 }else {
  
  $ary_match[0]=NULL;
  return $ary_match;
  
 }
 

}




?>


Search Keyword: php, function, scraping , scraper class