私は、たまーに、頭をクリーニングするのに、音楽をききます。始まりは、μ's(ミューズ)で、スクールアイドルシリーズの礎を築いた、現在まで続くアイドルグループの創設者であります。
よく聞くスタート・ミュージックが輝夜の城で踊りたい(μ's)で始まります。
https://music.youtube.com/watch?v=VTKMRBPCut0&list=RDAMVMVTKMRBPCut0
(YouTube music)
このシリーズ初代には、
https://music.youtube.com/watch?v=yCz_vEmTHFQ&list=RDAMVMVTKMRBPCut0
ことり ちゃんが可愛いと思っています。
現在、地元では「蓮の空」(はすのそら)と言う、ユニットが頑張っています。あなたの近くは?
https://music.youtube.com/watch?v=S0ioLEIPxZk&list=RDAOlh1QZ1CE9hl6f_ZrCh8efA
よろしかったら、応援してあげてください。
animationで外せないのが、私的に「スパイ・ファミリー」アーニャが可愛く、これは推しです。
パピリ孔明の歌で踊っているのを紹介。
https://music.youtube.com/watch?v=e_mJqwHd06I
わたしは、YouTube music でお気に入りを流しながら、リフレッシュしますが、皆様の気分転換などを教えていただくと嬉しくおもいます。
これ知っています?
この子が分かれば、それなりの、通ですよ。(りんなAI)ですよ。
さて、リフレッシュ出来たら、ちょっとだけ頭を使ってみましょう。
perlとpython比較をしながら紹介します。最後にふたつを上げます。
#!C:/xampp/Perl/bin/perl
# This is a perl header.
################## Another way to specify. ##################
#!C:/xampp/Perl/bin/perl5.32.1
#############################################################
# information.
# File my_perl.cgi
# address1 http://localhost/perl_test/my_perl.cgi
# address2 http://127.0.0.1/perl_test/my_perl.cgi
# environment xampp:xampp/htdocs/perl_test/
# in xampp:xamp/perl/bin/perl5.32.1
## script Start
$this_script = 'http://localhost/perl_test/my_perl.cgi';
#!C:/Python/python -X utf8
# coding=utf-8
# This is a python header.
################## python(anconda header) ###################
#!C:/anaconda/python -X utf8
# coding=utf-8
#############################################################
# information.
# File my_python.cgi
# address1 http://localhost/python_test/my_python.cgi
# address2 http://127.0.0.1/python_test/my_python.cgi
# environment xampp:xampp/htdocs/python_test/
# outside:Python/python 3.12.1
## script Start
this_script = 'http://localhost/python_test/my_python.cgi'
概ねの概略と1,2行目に注意してください。
$point_err = 'bol1_1';
$point_return = 'bol2_0';
$settig_msgA = 'NO Settig.';
$settig_msgB = 'NO Settig.';
$error_detail = 'No Error.';
sub my_error(error_detail){
#callされた時点での変数内容に従う。
if($point_err eq 'bol1_1'){
print "Content-type:text/html\n\n";
print "<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"UTF-8\"><title>Error</title></head><body>";
}
print "<h1>エラー発生(An error has occurred.)</h1><h2>detail $_[0]</h2><div style=\"background-color: #000066;color: #cccccc;font-size: 12px;margin: 3px;padding: 3px;\">$settig_msgA</div><div style=\"background-color: #006600;color: #cccccc;font-size: 12px;margin: 3px;padding: 3px;\">$settig_msgB</div><br>";
if($point_return eq 'bol2_1'){
return;
}
print"</body></html>\n";
exit;
}
# &my_error('test error.');
point_err = bool(1)
point_return = bool(0)
settig_msgA = 'NO Settig.'
settig_msgB = 'NO Settig.'
error_detail = 'No Error.'
def my_error(error_detail):
if point_err:
print ("Content-type:text/html\n\n")
print ('<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"UTF-8\"><title>Error</title></head><body>')
print ('<h1>エラー発生(An error has occurred.)</h1><h2>detail :'+error_detail+'</h2><div style=\"background-color: #000066;color: #cccccc;font-size: 12px;margin: 3px;padding: 3px;\">'+settig_msgA+'</div><div style=\"background-color: #006600;color: #cccccc;font-size: 12px;margin: 3px;padding: 3px;\">'+settig_msgB+'</div><br>')
if point_return:
return
print ('</body></html>\n')
exit()
# my_error('オープン前エラー Occurrence before opening <b>test.</b>')
htmlの外側で発生した時と、html内部で仮発生させて戻る時の仕様になっています。
print "Content-type:text/html\n\n";
print '<!DOCTYPE html><html lang="ja"><head><meta charset="UTF-8"><title>my perl</title></head><BODY BGCOLOR="#ffffff">'."\n";
$point_err = 'bol1_0';# ここからはErrorでヘッダーが要らない。
$point_return = 'bol2_1';# ここからはError表示後戻ってくる。
print <<MY_EOF ;
<h1>test system</h1>
<p>日本語を話せる、システムです。「This is a system that allows you to speak Japanese.」<br>
カンニングペーパー「コピペオンライン英和翻訳 『Multilingal Online Translation』」はMicrosoftストアーで。<br>
The cheat sheet "Copy and Paste Online English-Japanese Translation 『Multilingal Online Translation』" is available at the Microsoft Store.<br>
ブラウザ、拡張機能もお忘れなく。わからない時は、質問AIですよ。「Don't forget your browser and extensions. When you don't understand, there is a question AI.」</p><br>
MY_EOF
print ('Content-type:text/html'+'\n'+'\n')
print ('<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"UTF-8\"><title>my pyton</title></head><BODY BGCOLOR=\"#ffffff\">\n')
point_err = bool(0)
# ここからはErrorでヘッダーが要らない。
point_return = bool(1)
# ここからはError表示後戻ってくる。
print ('<h1>test system</h1>'+'\n')
print ('<p>日本語を話せる、システムです。「This is a system that allows you to speak Japanese.」<br>\n')
print ('カンニングペーパー「コピペオンライン英和翻訳 『Multilingal Online Translation』」はMicrosoftストアーで。<br>\n')
print ('The cheat sheet \"Copy and Paste Online English-Japanese Translation 『Multilingal Online Translation』\" is available at the Microsoft Store.<br>\n')
print ('ブラウザ、拡張機能もお忘れなく。わからない時は、質問AIですよ。「Don\'t forget your browser and extensions. When you don\'t understand, there is a question AI.」</p><br>\n')
htmlの書き出しと、Error処理の切り替えです。
###### 時間取得
sub time_get {
$date_sec = time;
($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime($date_sec);
@week = ('日','月','火','水','木','金','土');
$m_week = $week[$wday]; #koko2013/02/21
# 日時のフォーマット
$full_date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",$year+1900,$mon+1,$mday,$week[$wday],$hour,$min,$sec);
$date = sprintf("%04d/%02d/%02d",$year+1900,$mon+1,$mday);
$date1 = sprintf("%04d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec);
$date2 = sprintf("%04d年%02d月%02d日",$year+1900,$mon+1,$mday);
$date3 = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
$return_hour=$hour;
}
###### 時間取得
import datetime
now = datetime.datetime.now()
formatted_date = now.strftime("%Y/%m/%d %H:%M:%S")
it_day = now.strftime("%Y年%m月%d日")
it_time = now.strftime("%H時%M分%S秒")
pytoonは数字になって出て来ない?
# 受信
if ($ENV{'REQUEST_METHOD'} eq "POST") {
$post_flag = 1;
if ($ENV{'CONTENT_LENGTH'} > 51200) { &my_error("投稿量が大きすぎます"); }
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
$post_flag = 0;
$query = $ENV{'QUERY_STRING'};
if(length($query) > 15){&my_error("GETは受け付けていません。");}
}
$tmp_q_m = '<b>get or post.</b>:'.length($query).'<br>query:'.$query;
$settig_msgA = $tmp_q_m;
&my_error('testエラー Test query.<b>test.</b>');
# 受信
import re
import sys
import os
req_met = os.environ.get('REQUEST_METHOD')
if req_met == 'POST':
for query in sys.stdin:
os.environ.get('CONTENT_LENGTH')
pass
else :
query = os.environ.get('QUERY_STRING')
if len(query) > 0 and req_met != 'POST':
tmp_q_m = '<b>not post.</b>:'+str(len(query))+'<br>query:'+query
settig_msgB = tmp_q_m
# 受信したアドレスバーに付いている情報をBに入れておく。2行は最終的に要らない。
if len(query) > 10 :
language = len(query)
tmp_q_m = '<b>get or post.</b>:'+str(len(query))+'<br>query:'+query
settig_msgA = tmp_q_m
my_error('testエラー Test query.<b>test.</b>')
post,get
#
# この項目は無し。
my_hash = {}
#my_hkey_list0 = list(my_hash.keys())
my_hash['name'] = ''
my_hash['subm'] = ''
my_hash['comment'] = ''
my_hash['url'] = ''
my_hash['l_tim'] = formatted_date
my_hash['to_day'] = it_day
# 一応、使うhash(連想配列)のkeyとValue(値)を初期化して置く。
come = ''
変数の初期化宣言。
foreach ( split(/&/, $query) ) {
($key, $val) = split(/=/);
$key =~ tr/+/ /;
$key =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($1))/eg;
$key =~ s/&/&/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
$key =~ s/\r\n/<br>/g;
$key =~ s/\r|\n/<br>/g; #key end
$val =~ tr/+/ /;
$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;
$val =~ s/\r\n/<br>/g;
$val =~ s/\r|\n/<br>/g;
if($key eq 'comment'){
$come = $val;
$come =~ s/<br>/\n/g;
}
#
#
$my_hash{$key} = $val;
}
key_myh = list(my_hash.keys())
import urllib.parse
key0=''
value0=''
buf_arrey = query.split("&")
from urllib.parse import parse_qs
if "" != buf_arrey:
for my_buf in buf_arrey:
mytem_buf = my_buf
mytem_buf += '='
key_val_arry = mytem_buf.split("=")
key0 = key_val_arry[0]
value0 =key_val_arry[1]
key0 = re.sub(r'\+', ' ', key0)
key0 = re.sub(r'%([0-9a-fA-F][0-9a-fA-F])', lambda x: chr(int(x.group(1), 16)), key0)
# key0 = urllib.parse.unquote(key0)
key0 = re.sub(r'&', '&', key0)
key0 = re.sub(r'<', '<', key0)
key0 = re.sub(r'>', '>', key0)
key0 = re.sub(r'\r\n', '<br>', key0)
key0 = re.sub(r'\r|\n', '<br>', key0)
my_key = key0
value0 = re.sub(r'\+', ' ', value0)
# 私が馬鹿なのでここは出来ません。
# value0 = re.sub(r'%([0-9a-fA-F][0-9a-fA-F])', lambda x: chr(int(x.group().encode('utf-8').decode('ascii', 'ignore'), 16)), value0)
value0 = re.sub(r'%([0-9a-fA-F][0-9a-fA-F])', lambda x: chr(int(x.group(1), 16)), value0)
# I don't have the power to change it.
# value0 = re.sub(r'\x', '%', value0)
value0 = urllib.parse.unquote(value0)
value0 = re.sub(r'&', '&', value0)
value0 = re.sub(r'<', '<', value0)
value0 = re.sub(r'>', '>', value0)
value0 = re.sub(r'\r\n', '<br>', value0)
value0 = re.sub(r'\r|\n', '<br>', value0)
my_val = value0
if my_key == 'comment':
value0 = re.sub(r'<br>', '\n', value0)
come = value0
key_c=0
for key_myh_s in key_myh:
if key0 == key_myh_s:
key_c=1
if key_c==0:
if "" != my_val:
my_val = value0
#I can't get around to it, so I'll try putting it out.
my_hash[my_key] = my_val
# print (f'key={my_key} value={my_val}<br>\n')
# end field。
keyとValueに日本語を使える様にして、一部出来ないの。
&my_key_value();
sub my_key_value(){
foreach $key (keys %in) {
print "key=$key value=$in{$key}<br>\n";
}
}
# &my_key_value();
def my_key_value():
key_list0 = list(my_hash.keys())
print(key_list0)
print ('<br>\n')
for i, val0 in enumerate(key_list0):
if i == len(key_list0) - 1:
print('last: '+val0+' :'+my_hash[val0]+'<br>\n')
else:
print('middle '+val0+' :'+my_hash[val0]+'<br>\n')
my_key_value()
hash「連想配列」の書き出し。
&time_get();
print <<MY_EOF ;
<br>
現在の日付と時刻: $date_sec<br>
$full_date Japanise style. きょうは、$date2 で時計は $date3<br>
これをComment欄に貼り付けでご利用してください。"%E6%97%A5%E6%9C%AC%E8%AA%9E%E9%9D%9E%E5%AF%BE%E5%BF%9C"<br>
<!-- <form action="$this_script" method="GET"> -->
<form action="$this_script" method="POST">
<table border=0 cellspacing=1>
<tr><td><b>name</b></td><td><input type=text name=name size=28 value="$my_hash{'name'}" maxlength="12" class=f></td></tr>
<tr><td><b>submit</b></td><td><input type=text name=subm size=100 value="$my_hash{'subm'}" maxlength="100"class=f></td></tr>
<tr><td colspan=2><b>comment</b><br><textarea cols=70 rows=7 name=comment wrap="soft" class=f>$come</textarea></td></tr>
<tr><td><b>url</b></td><td><input type=text size=52 name=url value="$my_hash{'url'}" maxlength="60" class=f></td></tr>'
<tr><td><input type=submit value="submit"></td><td><input type=reset value="reset"></td></tr>
</form></table><br>
<b><font color="#ff00ff">receives</font></b><br>
name=$my_hash{'name'}<br>comment<br>$my_hash{'comment'}<br>It OK?<br>
<br><a href="$this_script">reload</a><br>
MY_EOF
# &my_error('test message.all end!!');
print "<br><br><br></body></html>\n";
exit;
print('<br>\n')
print("現在の日付と時刻: ", now)
print('<br>'+formatted_date+' Japanise style. きょうは、'+it_day+'で時計は'+it_time+'<br>\n')
print ('これをComment欄に貼り付けでご利用してください。\"%E6%97%A5%E6%9C%AC%E8%AA%9E%E9%9D%9E%E5%AF%BE%E5%BF%9C\"<br>\n')
#print ('<form action=\"'+this_script+'\" method=\"GET\">\n')
print ('<form action=\"'+this_script+'\" method=\"POST\">\n')
print ('<table border=0 cellspacing=1>\n')
print ('<tr><td><b>name</b></td><td><input type=text name=name size=28 value=\"'+my_hash['name']+'\" maxlength=\"12\" class=f></td></tr>\n')
print ('<tr><td><b>submit</b></td><td><input type=text name=subm size=100 value=\"'+my_hash['subm']+'\" maxlength=\"100\"class=f></td></tr>'+'\n')
print ('<tr><td colspan=2><b>comment</b><br><textarea cols=70 rows=7 name=comment wrap=\"soft\" class=f>'+come+'</textarea></td></tr>'+'\n')
print ('<tr><td><b>url</b></td><td><input type=text size=52 name=url value=\"'+my_hash['url']+'\" maxlength=\"60\" class=f></td></tr>'+'\n')
print ('<tr><td><input type=submit value=\"submit\"></td><td><input type=reset value=\"reset\"></td></tr>\n')
print ('</form></table><br>\n')
print('<b><font color="#f0f">receives</font></b><br>\n')
print ('name='+my_hash['name']+'<br>comment<br>'+my_hash['comment']+'<br>It OK?<br>\n')
print ('<br><a href="'+this_script+'">reload</a><br>\n')
# my_error('test message.all end!!')
print ('<br><br><br></body></html>\n')
exit()
書き出して、おわり。
最後に抜けていないか確認のため。
#!C:/xampp/Perl/bin/perl
# This is a perl header.
################## Another way to specify. ##################
#!C:/xampp/Perl/bin/perl5.32.1
#############################################################
# information.
# File my_perl.cgi
# address1 http://localhost/perl_test/my_perl.cgi
# address2 http://127.0.0.1/perl_test/my_perl.cgi
# environment xampp:xampp/htdocs/perl_test/
# in xampp:xamp/perl/bin/perl5.32.1
## script Start
$this_script = 'http://localhost/perl_test/my_perl.cgi';
$point_err = 'bol1_1';
$point_return = 'bol2_0';
$settig_msgA = 'NO Settig.';
$settig_msgB = 'NO Settig.';
$error_detail = 'No Error.';
sub my_error(error_detail){
#callされた時点での変数内容に従う。
if($point_err eq 'bol1_1'){
print "Content-type:text/html\n\n";
print "<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"UTF-8\"><title>Error</title></head><body>";
}
print "<h1>エラー発生(An error has occurred.)</h1><h2>detail $_[0]</h2><div style=\"background-color: #000066;color: #cccccc;font-size: 12px;margin: 3px;padding: 3px;\">$settig_msgA</div><div style=\"background-color: #006600;color: #cccccc;font-size: 12px;margin: 3px;padding: 3px;\">$settig_msgB</div><br>";
if($point_return eq 'bol2_1'){
return;
}
print"</body></html>\n";
exit;
}
# &my_error('test error.');
print "Content-type:text/html\n\n";
print '<!DOCTYPE html><html lang="ja"><head><meta charset="UTF-8"><title>my perl</title></head><BODY BGCOLOR="#ffffff">'."\n";
$point_err = 'bol1_0';# ここからはErrorでヘッダーが要らない。
$point_return = 'bol2_1';# ここからはError表示後戻ってくる。
print <<MY_EOF ;
<h1>test system</h1>
<p>日本語を話せる、システムです。「This is a system that allows you to speak Japanese.」<br>
カンニングペーパー「コピペオンライン英和翻訳 『Multilingal Online Translation』」はMicrosoftストアーで。<br>
The cheat sheet "Copy and Paste Online English-Japanese Translation 『Multilingal Online Translation』" is available at the Microsoft Store.<br>
ブラウザ、拡張機能もお忘れなく。わからない時は、質問AIですよ。「Don't forget your browser and extensions. When you don't understand, there is a question AI.」</p><br>
MY_EOF
###### 時間取得
sub time_get {
$date_sec = time;
($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime($date_sec);
@week = ('日','月','火','水','木','金','土');
$m_week = $week[$wday]; #koko2013/02/21
# 日時のフォーマット
$full_date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",$year+1900,$mon+1,$mday,$week[$wday],$hour,$min,$sec);
$date = sprintf("%04d/%02d/%02d",$year+1900,$mon+1,$mday);
$date1 = sprintf("%04d/%02d/%02d %02d:%02d:%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec);
$date2 = sprintf("%04d年%02d月%02d日",$year+1900,$mon+1,$mday);
$date3 = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
$return_hour=$hour;
}
# 受信
if ($ENV{'REQUEST_METHOD'} eq "POST") {
$post_flag = 1;
if ($ENV{'CONTENT_LENGTH'} > 51200) { &my_error("投稿量が大きすぎます"); }
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
$post_flag = 0;
$query = $ENV{'QUERY_STRING'};
if(length($query) > 15){&my_error("GETは受け付けていません。");}
}
$tmp_q_m = '<b>get or post.</b>:'.length($query).'<br>query:'.$query;
$settig_msgA = $tmp_q_m;
&my_error('testエラー Test query.<b>test.</b>');
#
#
foreach ( split(/&/, $query) ) {
($key, $val) = split(/=/);
$key =~ tr/+/ /;
$key =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($1))/eg;
$key =~ s/&/&/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
$key =~ s/\r\n/<br>/g;
$key =~ s/\r|\n/<br>/g; #key end
$val =~ tr/+/ /;
$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg;
$val =~ s/\r\n/<br>/g;
$val =~ s/\r|\n/<br>/g;
if($key eq 'comment'){
$come = $val;
$come =~ s/<br>/\n/g;
}
#
#
$my_hash{$key} = $val;
}
&my_key_value();
sub my_key_value(){
foreach $key (keys %in) {
print "key=$key value=$in{$key}<br>\n";
}
}
# &my_key_value();
&time_get();
print <<MY_EOF ;
<br>
現在の日付と時刻: $date_sec<br>
$full_date Japanise style. きょうは、$date2 で時計は $date3<br>
これをComment欄に貼り付けでご利用してください。"%E6%97%A5%E6%9C%AC%E8%AA%9E%E9%9D%9E%E5%AF%BE%E5%BF%9C"<br>
<!-- <form action="$this_script" method="GET"> -->
<form action="$this_script" method="POST">
<table border=0 cellspacing=1>
<tr><td><b>name</b></td><td><input type=text name=name size=28 value="$my_hash{'name'}" maxlength="12" class=f></td></tr>
<tr><td><b>submit</b></td><td><input type=text name=subm size=100 value="$my_hash{'subm'}" maxlength="100"class=f></td></tr>
<tr><td colspan=2><b>comment</b><br><textarea cols=70 rows=7 name=comment wrap="soft" class=f>$come</textarea></td></tr>
<tr><td><b>url</b></td><td><input type=text size=52 name=url value="$my_hash{'url'}" maxlength="60" class=f></td></tr>'
<tr><td><input type=submit value="submit"></td><td><input type=reset value="reset"></td></tr>
</form></table><br>
<b><font color="#ff00ff">receives</font></b><br>
name=$my_hash{'name'}<br>comment<br>$my_hash{'comment'}<br>It OK?<br>
<br><a href="$this_script">reload</a><br>
MY_EOF
# &my_error('test message.all end!!');
print "<br><br><br></body></html>\n";
exit;
続いて
#!C:/Python/python -X utf8
# coding=utf-8
# This is a python header.
################## python(anconda header) ###################
#!C:/anaconda/python -X utf8
# coding=utf-8
#############################################################
# information.
# File my_python.cgi
# address1 http://localhost/python_test/my_python.cgi
# address2 http://127.0.0.1/python_test/my_python.cgi
# environment xampp:xampp/htdocs/python_test/
# outside:Python/python 3.12.1
## script Start
this_script = 'http://localhost/python_test/my_python.cgi'
point_err = bool(1)
point_return = bool(0)
settig_msgA = 'NO Settig.'
settig_msgB = 'NO Settig.'
error_detail = 'No Error.'
def my_error(error_detail):
if point_err:
print ("Content-type:text/html\n\n")
print ('<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"UTF-8\"><title>Error</title></head><body>')
print ('<h1>エラー発生(An error has occurred.)</h1><h2>detail :'+error_detail+'</h2><div style=\"background-color: #000066;color: #cccccc;font-size: 12px;margin: 3px;padding: 3px;\">'+settig_msgA+'</div><div style=\"background-color: #006600;color: #cccccc;font-size: 12px;margin: 3px;padding: 3px;\">'+settig_msgB+'</div><br>')
if point_return:
return
print ('</body></html>\n')
exit()
# my_error('オープン前エラー Occurrence before opening <b>test.</b>')
print ('Content-type:text/html'+'\n'+'\n')
print ('<!DOCTYPE html><html lang=\"ja\"><head><meta charset=\"UTF-8\"><title>my pyton</title></head><BODY BGCOLOR=\"#ffffff\">\n')
point_err = bool(0)
# ここからはErrorでヘッダーが要らない。
point_return = bool(1)
# ここからはError表示後戻ってくる。
print ('<h1>test system</h1>'+'\n')
print ('<p>日本語を話せる、システムです。「This is a system that allows you to speak Japanese.」<br>\n')
print ('カンニングペーパー「コピペオンライン英和翻訳 『Multilingal Online Translation』」はMicrosoftストアーで。<br>\n')
print ('The cheat sheet \"Copy and Paste Online English-Japanese Translation 『Multilingal Online Translation』\" is available at the Microsoft Store.<br>\n')
print ('ブラウザ、拡張機能もお忘れなく。わからない時は、質問AIですよ。「Don\'t forget your browser and extensions. When you don\'t understand, there is a question AI.」</p><br>\n')
import datetime
now = datetime.datetime.now()
formatted_date = now.strftime("%Y/%m/%d %H:%M:%S")
it_day = now.strftime("%Y年%m月%d日")
it_time = now.strftime("%H時%M分%S秒")
# 受信
import re
import sys
import os
req_met = os.environ.get('REQUEST_METHOD')
if req_met == 'POST':
for query in sys.stdin:
os.environ.get('CONTENT_LENGTH')
pass
else :
query = os.environ.get('QUERY_STRING')
if len(query) > 0 and req_met != 'POST':
tmp_q_m = '<b>not post.</b>:'+str(len(query))+'<br>query:'+query
settig_msgB = tmp_q_m
# 受信したアドレスバーに付いている情報をBに入れておく。2行は最終的に要らない。
if len(query) > 10 :
language = len(query)
tmp_q_m = '<b>get or post.</b>:'+str(len(query))+'<br>query:'+query
settig_msgA = tmp_q_m
my_error('testエラー Test query.<b>test.</b>')
my_hash = {}
#my_hkey_list0 = list(my_hash.keys())
my_hash['name'] = ''
my_hash['subm'] = ''
my_hash['comment'] = ''
my_hash['url'] = ''
my_hash['l_tim'] = formatted_date
my_hash['to_day'] = it_day
# 一応、使うhash(連想配列)のkeyとValue(値)を初期化して置く。
come = ''
key_myh = list(my_hash.keys())
import urllib.parse
key0=''
value0=''
buf_arrey = query.split("&")
from urllib.parse import parse_qs
if "" != buf_arrey:
for my_buf in buf_arrey:
mytem_buf = my_buf
mytem_buf += '='
key_val_arry = mytem_buf.split("=")
key0 = key_val_arry[0]
value0 =key_val_arry[1]
key0 = re.sub(r'\+', ' ', key0)
key0 = re.sub(r'%([0-9a-fA-F][0-9a-fA-F])', lambda x: chr(int(x.group(1), 16)), key0)
# key0 = urllib.parse.unquote(key0)
key0 = re.sub(r'&', '&', key0)
key0 = re.sub(r'<', '<', key0)
key0 = re.sub(r'>', '>', key0)
key0 = re.sub(r'\r\n', '<br>', key0)
key0 = re.sub(r'\r|\n', '<br>', key0)
my_key = key0
value0 = re.sub(r'\+', ' ', value0)
# 私が馬鹿なのでここは出来ません。
# value0 = re.sub(r'%([0-9a-fA-F][0-9a-fA-F])', lambda x: chr(int(x.group().encode('utf-8').decode('ascii', 'ignore'), 16)), value0)
value0 = re.sub(r'%([0-9a-fA-F][0-9a-fA-F])', lambda x: chr(int(x.group(1), 16)), value0)
# I don't have the power to change it.
# value0 = re.sub(r'\x', '%', value0)
value0 = urllib.parse.unquote(value0)
value0 = re.sub(r'&', '&', value0)
value0 = re.sub(r'<', '<', value0)
value0 = re.sub(r'>', '>', value0)
value0 = re.sub(r'\r\n', '<br>', value0)
value0 = re.sub(r'\r|\n', '<br>', value0)
my_val = value0
if my_key == 'comment':
value0 = re.sub(r'<br>', '\n', value0)
come = value0
key_c=0
for key_myh_s in key_myh:
if key0 == key_myh_s:
key_c=1
if key_c==0:
if "" != my_val:
my_val = value0
#I can't get around to it, so I'll try putting it out.
my_hash[my_key] = my_val
# print (f'key={my_key} value={my_val}<br>\n')
# end field。
def my_key_value():
key_list0 = list(my_hash.keys())
print(key_list0)
print ('<br>\n')
for i, val0 in enumerate(key_list0):
if i == len(key_list0) - 1:
print('last: '+val0+' :'+my_hash[val0]+'<br>\n')
else:
print('middle '+val0+' :'+my_hash[val0]+'<br>\n')
my_key_value()
print('<br>\n')
print("現在の日付と時刻: ", now)
print('<br>'+formatted_date+' Japanise style. きょうは、'+it_day+'で時計は'+it_time+'<br>\n')
print ('これをComment欄に貼り付けでご利用してください。\"%E6%97%A5%E6%9C%AC%E8%AA%9E%E9%9D%9E%E5%AF%BE%E5%BF%9C\"<br>\n')
#print ('<form action=\"'+this_script+'\" method=\"GET\">\n')
print ('<form action=\"'+this_script+'\" method=\"POST\">\n')
print ('<table border=0 cellspacing=1>\n')
print ('<tr><td><b>name</b></td><td><input type=text name=name size=28 value=\"'+my_hash['name']+'\" maxlength=\"12\" class=f></td></tr>\n')
print ('<tr><td><b>submit</b></td><td><input type=text name=subm size=100 value=\"'+my_hash['subm']+'\" maxlength=\"100\"class=f></td></tr>'+'\n')
print ('<tr><td colspan=2><b>comment</b><br><textarea cols=70 rows=7 name=comment wrap=\"soft\" class=f>'+come+'</textarea></td></tr>'+'\n')
print ('<tr><td><b>url</b></td><td><input type=text size=52 name=url value=\"'+my_hash['url']+'\" maxlength=\"60\" class=f></td></tr>'+'\n')
print ('<tr><td><input type=submit value=\"submit\"></td><td><input type=reset value=\"reset\"></td></tr>\n')
print ('</form></table><br>\n')
print('<b><font color="#f0f">receives</font></b><br>\n')
print ('name='+my_hash['name']+'<br>comment<br>'+my_hash['comment']+'<br>It OK?<br>\n')
print ('<br><a href="'+this_script+'">reload</a><br>\n')
# my_error('test message.all end!!')
print ('<br><br><br></body></html>\n')
exit()
おわり。
皆様の理解に繋がればと、思い例として出しました。力不足があり、満足できないところは、皆様のご努力で解決に至る事を、望みます。
x は「Space」x「Space」で、定数は分かるし(x)で関数は、分かるのだが・・・? xとXは検索では区別しない。