XML名前空間 Javascript
document.documentElement.namespaceURI
element.getElementsByTagNameNS
与えられた名前空間に属し、与えられたタグの名前を持つ要素のリストを返します。
例:
document.getElementsByTagNameNS("http://itunes.apple.com/rss","image")
a=date.getElementsByTagName('entry')[0]
a.getElementsByTagNameNS('http://itunes.apple.com/rss','image');
2014年7月20日日曜日
2014年7月19日土曜日
javascript オブジェクト 作成、プロパティ、メゾット
javascript オブジェクト 作成、プロパティ、メゾット
<script text="text/javascript">
var j = function (e){
var x=0;
var opt = {};
opt.a =function (){
x=x+1;
return x;
}();
opt.b = function(){
x=x-1;
return x;
};
opt.c = function(){
return "opt.c";
};
opt.d = function(){
return "opt.b";
}();
opt.e = function(x){
console.log(x);
console.log(e);
return x;
};
opt.f = function(x){
return x;
}(e);
return opt;
}("引数");
</script>
実行の結果:
2014年7月10日木曜日
Adsense 広告の表示時間を指定
Adsense 広告の表示時間を指定するためのJavascript です。
前略
<br />
<div id="get">
</div>
<script type="text/javascript">
setTimeout("adse()",5000);
function adse(){
var get = document.getElementById("get");
var newel = document.createElement("script");
newel.async = true;
newel.src = '//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
var inst = document.createElement("ins");
inst.className="adsbygoogle";
inst.style.cssText = "display:inline-block;width:300px;height:600px";
inst.setAttribute("data-ad-client", "ca-pub-0000000000000000");
inst.setAttribute("data-ad-slot", "0000000000");
newel.appendChild(inst);
get.appendChild(newel);
}
</script>
2014年6月1日日曜日
SQLite3 ODBC Driver;
SQLite3 ODBC Driver
Private Sub Form_Open(Cancel As Integer)
Dim db As New ADODB.Connection
Dim ss As New ADODB.Recordset
db.Open "DRIVER=SQLite3 ODBC Driver;Database=C:\AccVB\vid.db"
db.CursorLocation = adUseClient
db.Execute "create table tete (id integer primary key ,iid text)"
db.Execute "insert into tete(iid) values (1111111)"
db.Execute "insert into tete(iid) values ('abcde')"
db.Execute "update tete set iid = 'tetetete' where id = 1"
Set ss = db.Execute("select * from tete")
Set Me.lt.Recordset = ss.Clone
db.Close
Set db = Nothing
End Sub
http://www.ch-werner.de/sqliteodbc/
2014年5月18日日曜日
SQLite Command
SQLite Command
忘れたコマンド
Index の作成
sqlite> create index jjj on xx(t1,t2);
sqlite> create unique index uindex on xx (t1,t2);
index の削除
sqlite> drop index uindex;
index の確認
sqlite> .s xx
CREATE TABLE xx (t1,t2,t3,t4, xx);
CREATE INDEX jjj on xx(t1,t2);
sqlite> .d xx
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE xx (t1,t2,t3,t4, xx);
INSERT INTO "xx" VALUES('a','b','c','d',NULL);
INSERT INTO "xx" VALUES('a1','b1','c1','d1',NULL);
INSERT INTO "xx" VALUES('a21','b21','c21','d21',NULL);
INSERT INTO "xx" VALUES('a321','b421','c421','d421',NULL);
INSERT INTO "xx" VALUES('t','t','t','t','t');
CREATE INDEX jjj on xx(t1,t2);
COMMIT;
sqlite>
挿入
sqlite> insert into ff values ('dd');
PRIMARY KEY
sqlite> create table ff (id integer primary key ,name text);
試しに作成したSQLite Databases.
sqlite> .d
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE vid (id integer primarykey ,vid text);
CREATE UNIQUE INDEX vidkey on vid(vid);
COMMIT;
sqlite>
忘れたコマンド
Index の作成
sqlite> create index jjj on xx(t1,t2);
sqlite> create unique index uindex on xx (t1,t2);
index の削除
sqlite> drop index uindex;
index の確認
sqlite> .s xx
CREATE TABLE xx (t1,t2,t3,t4, xx);
CREATE INDEX jjj on xx(t1,t2);
sqlite> .d xx
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE xx (t1,t2,t3,t4, xx);
INSERT INTO "xx" VALUES('a','b','c','d',NULL);
INSERT INTO "xx" VALUES('a1','b1','c1','d1',NULL);
INSERT INTO "xx" VALUES('a21','b21','c21','d21',NULL);
INSERT INTO "xx" VALUES('a321','b421','c421','d421',NULL);
INSERT INTO "xx" VALUES('t','t','t','t','t');
CREATE INDEX jjj on xx(t1,t2);
COMMIT;
sqlite>
挿入
sqlite> insert into ff values ('dd');
PRIMARY KEY
sqlite> create table ff (id integer primary key ,name text);
試しに作成したSQLite Databases.
sqlite> .d
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE vid (id integer primarykey ,vid text);
CREATE UNIQUE INDEX vidkey on vid(vid);
COMMIT;
sqlite>
chcp 65001 UTF-8
chcp 65001 UTF-8
Sqlite Command Line UTF-8 文字を表示するために、
コマンドプロンプトのベージコードを設定します。
Chcp 65001
補足、ページコード;
437 IBM437 OEM United States
932 shift_jis ANSI/OEM Japanese; Japanese (Shift-JIS)
1200 utf-16 Unicode UTF-16, little endian byte order (BMP of ISO 10646);
available only to managed applications
20127 us-ascii US-ASCII (7-bit)
20932 EUC-JP Japanese (JIS 0208-1990 and 0121-1990)
50220 iso-2022-jp ISO 2022 Japanese with no halfwidth Katakana;
Japanese (JIS)
50222 iso-2022-jp ISO 2022 Japanese JIS X 0201-1989;
Japanese (JIS-Allow 1 byte Kana - SO/SI)
51932 euc-jp EUC Japanese
65001 utf-8 Unicode (UTF-8)
2014年5月17日土曜日
PHP Sqlite3 動作しない なぜ
PHP Sqlite3 動作しない
なぜ
Apache/2.2.25 (Win32) PHP/5.4.25
PHP 設定
extension=php_pdo_sqlite.dll
extension=php_sqlite3.dll
実行するとエラー出ます。
Fatal error: Call to undefined function sqlite_open() in C:\Apache\htdocs\Sqlite3\test.php on line 2
extension=php_pdo.dll
を有効にすると、Apache を起動する際、Warning PHP Startup メッセージが2回出ますが。php_pdo.dll が存在しないようです。
PHPマニュアルを見ると
注意:
PHP 5.3 以降ではこのステップは不要です。PDO の DLL は必須ではなくなったからです。
相変わらず
実行するとエラー出ます。
Fatal error: Call to undefined function sqlite_open() in C:\Apache\htdocs\Sqlite3\test.php on line 2
次は
PHP 設定
sqlite3.extension_dir = "C:\PHP\ext"
相変わらず
実行するとエラー出ます。
Fatal error: Call to undefined function sqlite_open() in C:\Apache\htdocs\Sqlite3\test.php on line 2
何かいい方法がありますか?
<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
$result = sqlite_query($db, 'select bar from foo');
var_dump(sqlite_fetch_array($result));
} else {
die($sqliteerror);
}
?>
解決しました?
Class 方法でアクセス出来ました。
PHP は SQLite と SQLite3 両方のマニュアルが存在することですね。
http://jp2.php.net/manual/ja/book.sqlite3.php
<?php
$db = new SQLite3('mysqlitedb.db');
$results = $db->query('SELECT bar FROM foo');
while ($row = $results->fetchArray()) {
var_dump($row);
}?>
2014年4月29日火曜日
Youtube API 3.0 の応用
Youtube API 3.0 の応用
1. Youtube リスト作成、公開、List ID2. 必要な曲を検索する、Video ID
3. Video ID を List ID に追加する。
https://www.youtube.com/user/icq7219388
ラベル:
Google API,
Javascript,
Youtube API3.0
2014年4月10日木曜日
Google 検索パラメーター
Google Search Operators
Google 検索パラメーター
site
inurl
intext
intitle
intitle:index.of "parent directory"
intitle:index.of inurl:admin
intitle:index.of "server at"
"Microsoft-IIS/* server at" intitle:index.of
"Apache/""server at" intitle:index.of
"OmniHTTPd/2.10" intitle:index.of
"OpenSA/1.0.4" intitle:index.of
"Oracle HTTP Server Powered by Apache" intitle:index.of
filetype
filetype:mbx mbx intext:Subject
filetype:pst pst ( contacts | address | inbox )
registry - filetype:reg reg +intext:"internet account manager"
filetype:eml eml +intext:"Subject" +intext:"From"
filetype:reg "Terminal Server Client"
author:@microsoft.com
link:www.sensepost.com
inurl:tech-support inurl:show Cisco
intitle:"switch home page""cisco systems" Telnet -to"
"Looking Glass" (inurl:"lg/" | inurl:lookingglass)
intitle:Welcome to ntop!"
intitle:"statistics of" " advanced web statistics"
inurl:"smb.conf" intext:workgroup" filetype:conf
filetype:vsd vsd network -samples -examples
"VNC Desktop" inurl:5800
allinurl:"exchange/logon.asp"
2014年4月7日月曜日
Google クローラ Agent
Google クローラ Agent
Googlebot(Google ウェブ検索) Googlebot
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Googlebot/2.1 (+http://www.google.com/bot.html)
ニュース用 Googlebot Googlebot-News
Googlebot-News
画像用 Googlebot Googlebot-Image
Googlebot-Image/1.0
動画用 Googlebot Googlebot-Video
Googlebot-Video/1.0
Google モバイル Googlebot-Mobile
「各種携帯端末」(compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)
Google モバイル AdSense
Mediapartners-Google
「各種携帯端末」(compatible; Mediapartners-Google/2.1; +http://www.google.com/bot.html)
Google AdSense
Mediapartners-Google
Google AdsBot を使ったリンク先ページの品質確認
AdsBot-Google
AdsBot-Google (+http://www.google.com/adsbot.html)
robots.txt
robots.txt ファイルの中で、いくつものユーザーエージェントが見つかった場合は、最も限定的なものに従って Google のクロールが行われます。サイトのページをすべてクロールさせたい場合は、robots.txt ファイルを作成する必要はありません。一部のコンテンツに対して Google のクローラによるアクセスをブロックまたは許可する場合は、Googlebot をユーザーエージェントとして指定します。たとえば、サイトのページがどれも Google 検索結果に表示されるようにしたい場合や、AdSense の広告をサイトのページ上に表示したい場合は、robots.txt ファイルは必要ありません。同様に、一部のページに対して Google からのアクセスを一切ブロックしたい場合は、ユーザーエージェント Googlebot をブロックすると、Google の他のユーザーエージェントもすべてブロックされます。
さらに細かくコントロールしたい場合は、より限定的に指定します。たとえば、サイトのページが Google の検索結果に表示されるようにしたいけれども、/personal ディレクトリにある画像はクロールの対象外にしたい場合は、robots.txt を使用して、ユーザーエージェント Googlebot-image による /personal ディレクトリ内のファイルのクロールを禁止する(ただし、Googlebot にはすべてのファイルのクロールを許可する)ように指定します。次に例を示します:
User-agent: Googlebot
Disallow:
User-agent: Googlebot-Image
Disallow: /personal
別の例として、サイトのすべてのページに広告を表示したいけれども、ページを Google 検索結果には表示したくない場合は、次のように、Googlebot をブロックし、Mediapartners-Google によるアクセスは許可します:
User-agent: Googlebot
Disallow: /
User-agent: Mediapartners-Google
Disallow:
robots メタ タグ
ページによっては、次のように、複数の robots metaタグを使用してクローラごとにディレクティブが指定されていることもあります。
<meta name="robots" content="nofollow"><meta name="googlebot" content="noindex">
このような場合は、Google はすべての不許可ディレクティブに従います。つまり、Googlebot は noindex と nofollow の両方のディレクティブに従います。Google によるサイトのクロールとインデックス登録をコントロールする方法のさらに詳しい説明については、こちらをご覧ください。
https://support.google.com/webmasters/answer/1061943?hl=ja
2014年3月21日金曜日
Google 検索エンジン最適化スターターガイド
Google 検索エンジン最適化スターターガイド
Search Engine Optimization Starter Guide - Google
谷歌搜索引擎优化初学者指南 - Google
Google 搜尋引擎最佳化初學者指南
- https://support.google.com/webmasters/answer/35291?hl=ja&ref_topic=3309300
- https://static.googleusercontent.com/media/www.google.co.jp/ja/jp/webmasters/docs/search-engine-optimization-starter-guide-ja.pdf
Search Engine Optimization Starter Guide - Google
- http://static.googleusercontent.com/media/www.google.com/ja//webmasters/docs/search-engine-optimization-starter-guide.pdf
谷歌搜索引擎优化初学者指南 - Google
- http://static.googleusercontent.com/media/www.google.cn/ja/cn/intl/zh-CN/webmasters/docs/search-engine-optimization-starter-guide-zh-cn.pdf
- https://support.google.com/webmasters/answer/35291?hl=zh-Hant&ref_topic=3309300
Google 搜尋引擎最佳化初學者指南
- http://static.googleusercontent.com/media/www.google.com/ja//intl/zh-TW/webmasters/docs/search-engine-optimization-starter-guide-zh-tw.pdf
Twitter ボタン Google+ ボタン
Twitter ボタン
ウェブサイトにボタンを追加してウェブサイトの訪問者がコンテンツを共有したり、あなたとTwitterでつながったりできるようにしましょう。
https://about.twitter.com/ja/resources/buttons#tweet
<a href="https://twitter.com/share" class="twitter-share-button" data-text="ツイッター本文" data-lang="ja" data-count="none" data-dnt="true">ツイート</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
Google+ ボタン
ページに共有ボタンを含めるには、必要な JavaScript を含め、共有タグを追加する方法が最も簡単です。この基本的な実装には、幅を変更できる標準の 20 px 共有ボタンが含まれます。
https://developers.google.com/+/web/share/?hl=ja
<script src="https://apis.google.com/js/plusone.js"></script>
<g:plus action="share"></g:plus>
Google+ 共有リンク
共有リンクは、ネイティブ クライアント アプリケーション、Flash アプリケーション、プライバシーが重要なサイト、+1 ボタンまたは共有ボタンを使用できないその他のユーザー向けに作られています。次のマークアップをサイトに追加すると、訪問者に共有ダイアログをポップアップ表示するシンプルなアイコンが追加されます。
<a href="https://plus.google.com/share?url={URL}" onclick="javascript:window.open(this.href,
'', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;"><img
src="https://www.gstatic.com/images/icons/gplus-64.png" alt="Share on Google+"/></a>
覚えられない AdSense 用語
ページの CTR
ページのクリック率
ページのクリック率(CTR)は、広告のクリック数をページ ビュー数で割った値です。
Page CTR = Clicks / Page views
たとえば、250 ページ ビューのうち 2 回のクリックが発生した場合、広告ユニットのクリック率は 0.8% となります(2/250 = 0.8%)。
クリック単価(CPC)
クリック単価(CPC)は、ユーザーの 1 回の広告クリックから得られる収益額です。広告のクリック単価は広告主が決定し、宣伝内容に応じて競合広告より高いクリック単価が支払われる場合もあります。ページの RPM
インプレッション収益(RPM)
ページのインプレッション収益
インプレッション収益(RPM)は、表示回数 1,000 回あたりの見積もり収益額を表します。インプレッション収益は実際の収益額ではありません。見積もり収益額をページビュー数、表示回数、またはクエリ数で割り、1,000 を掛けた値です。
計算方法:
インプレッション収益 =(見積もり収益額/ページビュー数)×1000
次に例を示します。
ページ ビュー数 25 回での見積もり収益額が 0.15 ドルの場合、ページのインプレッション収益は(0.15 ドル/25)×1,000 = 6 ドルとなります。
広告の表示回数 45,000 回での見積もり収益額が 180 ドルになる場合、広告のインプレッション収益は(180 ドル/45,000)×1,000 = 4 ドルとなります。
インプレッション収益は広告プログラムでよく使用される数値で、チャネルごとの収益を比較する際に役立ちます。
-----
ページのインプレッション収益(RPM)は、見積もり収益額をページ ビュー数で割り、1,000 を掛けた値です。
Page RPM = (Estimated earnings / Number of page views) * 1000
たとえば、ページ ビュー数 25 回での見積もり収益額が 0.15 ドルの場合、ページのインプレッション収益は(0.15 ドル/25)×1,000 = 6 ドルとなります。
カバレッジ
カバレッジとは、広告が 1 回以上表示された広告リクエストの割合です。一般的にカバレッジは、AdSense で関連性の高い広告が掲載されないサイトを特定するのに役立ちます。
計算方法:
カバレッジ =(広告が表示された広告リクエスト数/広告リクエストの合計)×100
たとえば、3 つの広告ユニットを掲載しているページがある場合、広告リクエストは 3 になります。これらの広告ユニットのうち 2 つで広告が表示され、1 つで表示されなかった場合、このページのカバレッジは 66.67% になります。同様に、検索ボックスがある場合、カバレッジが 80 % ということは、平均でクエリ 5 回に 1 回だけ検索結果に広告が表示されないことを意味します。
リンク ユニットの場合、カバレッジには、ユーザーがリンク ユニットの語句をクリックした後に広告が表示されたリンク ユニットの数が反映されます。リンク ユニットを表示するページのカバレッジは、ユーザーのクリックが必要となるため、他の種類の広告ユニットよりかなり低くなります。また、一致しない広告リクエスト数は多くなります。
100% に近い高いカバレッジは、ほとんどのリクエストに対して Google が広告を表示できたことを示します。カバレッジが低い場合は、Google がページに適した広告を表示できず、広告が表示されなかったか代替広告が表示されたことを意味します。カバレッジを最大限に高めるには、カバレッジが低い原因を確認されることをおすすめします。
https://support.google.com/adsense/answer/92360?hl=ja
https://support.google.com/adsense/topic/19363
2014年3月16日日曜日
HTML Head
HTML Head
<?php
// ページ先頭のパラメータ
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
echo '<html xmlns="http://www.w3.org/1999/xhtml">';
echo '<head>';
echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
echo '<title>hpapi</title>';
echo '<link rel="stylesheet" type="text/css" href="link.css" media="screen,all" />';
//echo '<link rel="shortcut icon" href="favicon.ico">';
echo '<link rel="icon" type="image/gif" href="./pic/favicon.gif">';
echo '<meta name="keywords" content="hpapi" />';
echo '<meta name="description" content="hpapi" />';
echo '<link rel="alternate" type="application/atom+xml" title="Atom" href="" />';
echo '<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="" />';
echo '</head>';
echo '<body>';
?>
<?php
//ページの終了
echo '</body>';
echo '</html>';
?>
自己流、ロゴ記録
自己流、ロゴ記録
<?php
function mf_log($log){
error_reporting(0);
date_default_timezone_set('Asia/Tokyo');
$file=basename(__FILE__);
$log_server[$file]=date('c');
$log_server['ip']=$_SERVER['REMOTE_ADDR'];
$log_server['uag']=$_SERVER['HTTP_USER_AGENT'];
$log_server['lg']=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
$log_server['url']=$log;
$log_str='<?php //';
foreach ($log_server as $key=>$val){
$log_str=$log_str.$key.'>'.$val.', ';
unset($val);
unset($key);
}
$log_str=$log_str.'// ?>'."\r\n";
file_put_contents('log.php', $log_str, FILE_APPEND | LOCK_EX);
}
?>
<?php
function mf_log($log){
error_reporting(0);
date_default_timezone_set('Asia/Tokyo');
$file=basename(__FILE__);
$log_server[$file]=date('c');
$log_server['ip']=$_SERVER['REMOTE_ADDR'];
$log_server['uag']=$_SERVER['HTTP_USER_AGENT'];
$log_server['lg']=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
$log_server['url']=$log;
$log_str='<?php //';
foreach ($log_server as $key=>$val){
$log_str=$log_str.$key.'>'.$val.', ';
unset($val);
unset($key);
}
$log_str=$log_str.'// ?>'."\r\n";
file_put_contents('log.php', $log_str, FILE_APPEND | LOCK_EX);
}
?>
userAgent の仕分け
userAgent の仕分け
<?php
switch($_SERVER['HTTP_USER_AGENT']){
case null:
$url='null';
break;
case 'Twitterbot/1.0':
$url='twitter';
break;
case 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)':
$url='facebook';
break;
default:
$url='default';
}
//header("location:{$url}");
echo '<br>';
echo $url;
?>
スマートフォンサイトCSSのmeta要素
スマートフォンサイトCSSのmeta要素
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0" />
<body style="width:70%">
PHPファイルの直接アクセス拒否する
PHPファイルの直接アクセス拒否する
if (basename(__FILE__)==basename($_SERVER["REQUEST_URI"])){
header("location:{$url}");
exit('Error: Cannot modify header information !!!');
}
2014年3月15日土曜日
SimpleXMLでCDATAの取り扱い
SimpleXMLでCDATAの取り扱い
simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);simplexml_load_file($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
$xmlo=simplexml_load_file($this->xmlurl,$class_name = "SimpleXMLElement",LIBXML_NOCDATA);
SimpleXMLElement simplexml_load_file ( string $filename [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false ]]]] )
options
PHP 5.1.0 と Libxml 2.6.0 から、追加の Libxml パラメータ を指定するために options を使用することもできます。
LIBXML_NOCDATA (integer)
CDATA をテキストノードとしてマージ
2014年3月12日水曜日
2014年3月9日日曜日
robots.txtの記録
robots.txtの記録
robots.txtの書き方
SEO設定
robots.txt ファイルが必要となるのは、サイトに検索エンジンのインデックスに登録したくないコンテンツが含まれる場合のみです。サイトのすべてのコンテンツを検索エンジンのインデックスに登録したい場合は、robots.txt ファイルは(空のものでも)必要ありません。
User-agent:
Disallow:
Allow:
一行空ける
Sitemap: http://hpapi.blogspot.com/feeds/posts/default?orderby=UPDATED
User-agent:例
User-agent: //クローラー
User-agent: * //全てのクローラー
User-agent: Mediapartners-Google //指定クローラー
User-agent: Googlebot-Image
User-agent: Googlebot
User-agent:例
Disallow //ブロック
Disallow: / //サイト全体をブロック
Disallow: /directory/ //指定ディレクトリ
Disallow: /file.html //指定ページ
Disallow: /*? //すべての URL へのアクセス
Disallow: /*.txt$ // すべての *.txt
Allow: 例
Allow: //クローラー許可
Allow:/directory/files.html //
基本的に下記でOKですが
User-agent: *
Disallow:
検索エンジンにクローラーされたくない時に
Disallow: /affiliate/
を追加します。
大手サイトの例
http://www.google.co.jp/robots.txt
http://jp.msn.com/robots.txt
https://www.facebook.com/robots.txt
https://twitter.com/robots.txt
http://www.rakuten.co.jp/robots.txt
User-Agent: *
Disallow: /images/ Disallow: /backup/ Disallow: /cgi-bin/ Disallow: /shops/ Shopsがロックされています。
参考
https://support.google.com/webmasters/answer/156449?hl=ja
追記:
サイト管理者やページ作者がクロールを防ぐ (制御する) 手段として ロボット除け規約 が定着しています. その設定方法には以下の2通りの方法があります.
- robots.txt ファイル
- あなたがサイト管理者で, 必要な権限を持っているなら, クローラへの指示を記述した /robots.txt というファイルをサイトのトップに 置いて下さい (http://www.your-site.com/robots.txt など). 例えば, 以下の記述は Steeler があなたのサイトからダウンロードするのを 全面的に 禁止します.
User-agent: Steeler
Disallow: /
- Disallow にはパス名の先頭部分 (プレフィックス) の他, ワイルドカード "*" や パス末尾を表す "$" を使うことができます. 例えば, 以下の記述は /images ディレクトリ以下のコンテンツとともに, 拡張子 .gif を持つコンテンツをアクセス禁止にします.
User-agent: Steeler
Disallow: /images/
Disallow: *.gif$
- アクセスの頻度が問題になる場合, Crawl-delay を指定して下さい. 例えば, 以下の記述はサイトへのアクセスの間隔を 少なくとも 30 秒空けるよう指示します.
User-agent: Steeler
Crawl-delay: 30.0
- Robots メタタグ
- あなたが HTML (テンプレート) のソースを編集できるなら, robots メタタグ を利用することもできます. HTML 文書のヘッダに
<META NAME="robots" CONTENT="noindex,nofollow">
- という行を記述すると, Steeler はその文書からのリンクを たどらなくなります.
2014年3月8日土曜日
Windows FTP 記憶しておきたいコマンド
Windows FTP 記憶しておきたいコマンド
FTPコマンド
-i 複数ファイルの転送の際に対話型プロンプトを表示しないようにします。注:追加してFTPコマンドを起動すると複数ファイルの操作時に対話が表示されなくなります。
例え複数ファイルを削除する際にファイルの確認メッセージが表示されなくなります。
例: delete *.txt
-s:FileName
ftp コマンドが含まれているテキスト ファイルを指定します。これらのコマンドは、
ftp を起動すると自動的に実行されます。このパラメータにスペースを含めること
はできません。リダイレクト (<) の代わりに、このパラメータを使ってください。
例: ファイル
ftpcmd.txt
open
server.net
user
passwd
verbose
cd abc
dir
close
quit
実行方法
ftp -i -s:ftpcmd.txt
FTPサプコマンド
verbose 既定では、verbose は有効になっています。verbose モードが有効になっている
と、ftp のすべての応答が表示されます。ファイル転送が完了すると、転送効率
に関する統計情報も表示されます。
よく使われるコマンド
ftp -i -s:file.txt
FTPコマンド詳細一部
構文
ftp [-v] [-d] [-i] [-n] [-g] [-s:FileName] [-a] [-w:WindowSize] [-A] [Host]
パラメータ
-v FTP サーバーの応答を表示しないようにします。
-d FTP クライアントと FTP サーバー間で渡されたすべてのコマンドを表示して、
デバッグできるようにします。
-i 複数ファイルの転送の際に対話型プロンプトを表示しないようにします。
-n 初期接続を行ったときに、自動的にログオンする機能を無効にします。
-g ファイル名の globbing を無効にします。glob は、ローカル ファイル名
およびパス名で、アスタリスク (*) と疑問符 (?) をワイルドカード文字として
使えるようにします。詳細については、「Ftp : glob」を参照してください。
-s:FileName
ftp コマンドが含まれているテキスト ファイルを指定します。これらのコマンド
は、ftp を起動すると自動的に実行されます。このパラメータにスペースを
含めることはできません。リダイレクト (<) の代わりに、このパラメータを
使ってください。
-a FTP データ接続をバインドするときに、任意のローカル インターフェイスを
使用できることを指定します。
-w:WindowSize
転送バッファのサイズを指定します。既定のウィンドウ サイズは 4096 バイトです。
-A FTP サーバーに匿名ユーザーとしてログオンします。
Host
接続する FTP サーバーのコンピュータ名、IP アドレス、または IPv6 アドレスを
指定します。ホスト名またはアドレスを指定する場合は、行の最後のパラメータ
として指定する必要があります。
2014年3月2日日曜日
訳の分からないuserAgent(ユーザーエージェント)
訳の分からないuserAgent(ユーザーエージェント)
ロポットとユーザーを区別して対応するための Function 。
<?php
mf_rot();
function mf_rot(){
//echo '<br>';
//echo $_SERVER['HTTP_USER_AGENT'];
//echo '<br>';
//echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
//echo '<br><br><br><br><br><br>';
$ulg=array();
$robots=array(' ',
'Java/1.7.0_25',
'Twitterbot/1.0',
'ceron.jp/1.0',
'NING/1.0',
'Apache-HttpClient/4.3 (java 1.5)',
'Google-HTTP-Java-Client/1.17.0-rc (gzip)',
'MetaURI API/2.0 +metauri.com',
'Yahoo:LinkExpander:Slingstone',
'EventMachine HttpClient',
'ShortLinkTranslate',
'msnbot/1.1 (+http://search.msn.com/msnbot.htm)',
'QuerySeekerSpider ( http://queryseeker.com/bot.html )',
'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)',
'Y!J-BRW/1.0 crawler (http://help.yahoo.co.jp/help/jp/search/indexing/indexing-15.html)',
'HTTP_Request2/2.2.1 (http://pear.php.net/package/http_request2) PHP/5.5.9',
'Mozilla/5.0 ()',
'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; SLCC1; .NET CLR 1.1.4322)',
'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)',
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8) AppleWebKit/536.25 (KHTML, like Gecko) Version/6.0 Safari/536.25',
'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko',
'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0)',
'Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1',
'Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)', //***
'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', //***
);
if(!empty($_SERVER['HTTP_USER_AGENT']) and !empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
if (!in_array($_SERVER['HTTP_USER_AGENT'],$robots)){
$ulg=explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
if($ulg['0']=='ja' or $ulg['0']=='ja-jp'){
echo '<br>ja-jP<br>';
echo '<br>is user<br>';
echo '<br>is japanese<br>';
}else{
echo '<br>is not japanese<br>';
echo '<br>exit1<br>';
}
}else{
echo '<br>is Robot<br>';
echo '<br>exit2<br>';
}
}else{
echo '<br>Empty<br>';
}
}
?>
2014年2月23日日曜日
システム連携を加速させる、ショッピングAPI のご紹介
システム連携を加速させる、ショッピングAPI のご紹介
2014/3/13(Thu) 17:00 - 21:30(door16:30)
Yahoo!ショッピングによる、「エンジニア」のためのイベントです。
当社では、2013年10月7日ストアカンファレンスにて「e コマース革命」を宣言いたしました。
同席上にて、テクニカルディレクターより今後すべてのAPIを公開しオープン化を促進していく事も発表させていただいておりますが、この度約50本のAPIをリリースいたします。
本イベントでは、Yahoo!ショッピングのオープン化の戦略、公開するAPIの詳細説明、ec業界のキープレイヤーによるトークセッションなど、各種コンテンツをご用意しております。
エンジニアの皆様の参加を心よりお待ちしています!
感想:
行きたい
2014年2月22日土曜日
$value foreach 内部で解除すべきか、外部解除すべきか?
警告
foreach ループを終えた後でも、 $value は配列の最後の要素を参照したままとなります。 unset() でその参照を解除しておくようにしましょう。
<?php
$v=array('A'=>'aaa',
'B'=>'bbb',
'C'=>'ccc'
);
foreach ($v as $key=>$val){
echo $key;
echo '=>';
echo $val;
echo '<br>';
unset($key);
unset($val);
}
unset($key);
unset($val);
echo 'end foreach<br>';
echo $key;
echo '=>';
echo $val;
echo '<br>';
?>
foreach ループを終えた後でも、 $value は配列の最後の要素を参照したままとなります。 unset() でその参照を解除しておくようにしましょう。
と書いてありますが、foreach 内部で解除すべきか、外部解除すべきか?
<?php
$v=array('A'=>'aaa',
'B'=>'bbb',
'C'=>'ccc'
);
foreach ($v as $key=>$val){
echo $key;
echo '=>';
echo $val;
echo '<br>';
unset($key);
unset($val);
}
unset($key);
unset($val);
echo 'end foreach<br>';
echo $key;
echo '=>';
echo $val;
echo '<br>';
?>
登録:
投稿 (Atom)