[09/20 13:49][twinkle@dione:~/www/cgi-bin]$のように、
[日付][ログインアカウント名@サーバ名:カレントディレクトリ名]$といったような書式でプロンプトを出すには、
.bashrcの最後に以下の1行を追加すればよい (追加したらログアウト、再度ログインのこと)。
PS1="[\$(date +%m/%d) \$(date +%H:%M)][\u@\h:\w]$ "
[09/20 13:49][twinkle@dione:~/www/cgi-bin]$のように、
[日付][ログインアカウント名@サーバ名:カレントディレクトリ名]$といったような書式でプロンプトを出すには、
.bashrcの最後に以下の1行を追加すればよい (追加したらログアウト、再度ログインのこと)。
PS1="[\$(date +%m/%d) \$(date +%H:%M)][\u@\h:\w]$ "
<html><head>
<script type="text/javascript">
<!--
// ^^^^^ 単に <script> と書いても良い。
var xmlhttp;
// 特に IE に対応するために、XMLHttpRequest オブジェクトをブラウザによって作成
function createXmlHttp() {
try {
return new ActiveXObject ("Msxml2.XMLHTTP");
} catch(e) {
try {
return new ActiveXObject ("Microsoft.XMLHTTP");
} catch(e1) {
try {
return new XMLHttpRequest();
} catch(e2) {
return null;
}
}
}
}
// メイン部分。HTML <body> タグの onload のところで関連付けられている。
// よって、ブラウザが HTML を読み込むと同時にこの関数(メソッド)が実行される。
function getContent() {
if ((xmlhttp = createXmlHttp()) == null) {
window.alert("XMLHTTP Initialization Failed.");
} else {
xmlhttp.abort(); // 連続して HTTP 通信する場合は必ず呼び出す。
}
// 1. handleHttpEvent() のように指定すると動かないので注意。
xmlhttp.onreadystatechange = handleHttpEvent;
// 2. 第3パラメータの true / false は、true = 同期, false = 非同期
// なお、セキュリティ上の理由により open で指定できる URL は
// HTML のダウンロード元と同じドメインに限定される。
// (Java のアプレットで言うサンドボックスモデルと同じ意味)
xmlhttp.open('GET', 'https://perltips.twinkle.cc/ajax_result.txt', true);
// 3. ここはオプショナル。
xmlhttp.setRequestHeader("Content-Type", "text/html");
// 4. GET のとき: send(null) / POST のとき: send(a variable)
xmlhttp.send(null);
}
// コールバック関数。
// 上の xmlhttp.onreadystatechange = handleHttpEvent; で関連付けられている。
function handleHttpEvent() {
// readyState の番号の意味は以下の通り。
// 0 = uninitialized
// 1 = loading
// 2 = loaded
// 3 = interactive
// 4 = complete
if ( xmlhttp.readyState == 1) {
// "data" とは、<body> の中の、<span id="data"> の部分
// よって、この部分に "Loading..." が表示される(表示は一瞬だけとなる)
document.getElementById("data").innerHTML = "Loading...";
}
else if ( xmlhttp.readyState == 2) {
// "data" とは、<body> の中の、<span id="data"> の部分
// よって、この部分に "Loaded." が表示される(表示は一瞬だけとなる)
document.getElementById("data").innerHTML = "Loaded";
}
else if (xmlhttp.readyState == 4
&& xmlhttp.status == 200) { // 200 は、HTTP プロトコルにおける正常終了
document.getElementById("data").innerHTML = xmlhttp.responseText;
}
}
// -->
</script>
</head>
<body onload="getContent()">
<div class=content>
<p><span id="data"></span></p>
</div>
</body>
</html>
This is the server-side HTML.
<html><head>
<script type="text/javascript">
<!--
// ^^^^^ 単に <script> と書いても良い。
var xmlhttp;
// 特に IE に対応するために、XMLHttpRequest オブジェクトをブラウザによって作成
function createXmlHttp() {
try {
return new ActiveXObject ("Msxml2.XMLHTTP");
} catch(e) {
try {
return new ActiveXObject ("Microsoft.XMLHTTP");
} catch(e1) {
try {
return new XMLHttpRequest();
} catch(e2) {
return null;
}
}
}
}
// メイン部分。HTML <body> タグの onload のところで関連付けられている。
// よって、ブラウザが HTML を読み込むと同時にこの関数(メソッド)が実行される。
function getContent() {
if ((xmlhttp = createXmlHttp()) == null) {
window.alert("XMLHTTP Initialization Failed.");
} else {
xmlhttp.abort(); // 連続して HTTP 通信する場合は必ず呼び出す。
}
// 1. handleHttpEvent() のように指定すると動かないので注意。
xmlhttp.onreadystatechange = handleHttpEvent;
// 2. 第3パラメータの true / false は、true = 同期, false = 非同期
// なお、セキュリティ上の理由により open で指定できる URL は
// HTML のダウンロード元と同じドメインに限定される。
// (Java のアプレットで言うサンドボックスモデルと同じ意味)
xmlhttp.open('GET', 'https://perltips.twinkle.cc/ajax_result.txt', true);
// 3. ここはオプショナル。
xmlhttp.setRequestHeader("Content-Type", "text/html");
// 4. GET のとき: send(null) / POST のとき: send(a variable)
xmlhttp.send(null);
}
// コールバック関数。
// 上の xmlhttp.onreadystatechange = handleHttpEvent; で関連付けられている。
function handleHttpEvent() {
// readyState の番号の意味は以下の通り。
// 0 = uninitialized
// 1 = loading
// 2 = loaded
// 3 = interactive
// 4 = complete
if ( xmlhttp.readyState == 1) {
// "data" とは、<body> の中の、<span id="data"> の部分
// よって、この部分に "Loading..." が表示される(表示は一瞬だけとなる)
document.getElementById("data").innerHTML = "Loading...";
}
else if ( xmlhttp.readyState == 2) {
// "data" とは、<body> の中の、<span id="data"> の部分
// よって、この部分に "Loaded." が表示される(表示は一瞬だけとなる)
document.getElementById("data").innerHTML = "Loaded";
}
else if (xmlhttp.readyState == 4
&& xmlhttp.status == 200) { // 200 は、HTTP プロトコルにおける正常終了
document.getElementById("data").innerHTML = xmlhttp.responseText;
}
}
// -->
</script>
</head>
<body onload="getContent()">
<div class=content>
<p><span id="data"></span></p>
</div>
</body>
</html>
This is the server-side HTML.
#!/usr/bin/perl -w
# Your own logic from here
#!/usr/bin/perl -w
# Your own logic from here
use URI::Find
#/usr/bin/perl
my $text = 'https://twinkle.cc/i/';
my $url = getURL($text);
sub getURL {
use URI::Find;
my $text = shift;
my $finder = URI::Find->new(
sub {
my($uri, $orig_uri) = @_;
return $uri;
});
$finder->find(¥$text);
my $http_URL_regex =
q{¥b(?:https?|shttp)://(?:(?:[a-zA-Z0-9](?:[-a-zA-Z0-9]*[a-zA-Z0-9])} .
q{?¥.)*[a-zA-Z](?:[-a-zA-Z0-9]*[a-zA-Z0-9])?¥.?|[0-9]+¥.[0-9]+¥.[0-9} .
q{]+¥.[0-9]+)(?::[0-9]*)?(?:/(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-F} .
q{a-f][0-9A-Fa-f])*(?:;(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0} .
q{-9A-Fa-f])*)*(?:/(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0-9A-} .
q{Fa-f])*(?:;(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])} .
q{*)*)*(?:¥?(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f} .
q{])*)?)?(?:#(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-} .
q{f])*)?(?![-_.!~*'()a-zA-Z0-9;/?:@&=+$,#])}; #}}
return $text =~ /($http_URL_regex)/ ? $1 : '';
}
1;
use URI::Find
#/usr/bin/perl
my $text = 'https://twinkle.cc/i/';
my $url = getURL($text);
sub getURL {
use URI::Find;
my $text = shift;
my $finder = URI::Find->new(
sub {
my($uri, $orig_uri) = @_;
return $uri;
});
$finder->find(¥$text);
my $http_URL_regex =
q{¥b(?:https?|shttp)://(?:(?:[a-zA-Z0-9](?:[-a-zA-Z0-9]*[a-zA-Z0-9])} .
q{?¥.)*[a-zA-Z](?:[-a-zA-Z0-9]*[a-zA-Z0-9])?¥.?|[0-9]+¥.[0-9]+¥.[0-9} .
q{]+¥.[0-9]+)(?::[0-9]*)?(?:/(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-F} .
q{a-f][0-9A-Fa-f])*(?:;(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0} .
q{-9A-Fa-f])*)*(?:/(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0-9A-} .
q{Fa-f])*(?:;(?:[-_.!~*'()a-zA-Z0-9:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f])} .
q{*)*)*(?:¥?(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-f} .
q{])*)?)?(?:#(?:[-_.!~*'()a-zA-Z0-9;/?:@&=+$,]|%[0-9A-Fa-f][0-9A-Fa-} .
q{f])*)?(?![-_.!~*'()a-zA-Z0-9;/?:@&=+$,#])}; #}}
return $text =~ /($http_URL_regex)/ ? $1 : '';
}
1;