PHPでデータベースから取得した英単語表を、複数ワードで検索し、赤文字に変換して表示する

PHPでデータベースから英単語とその意味を表示するページを下記のように作成しています。
小学校のWord一覧
中学校のWord一覧
SimpleWikipediaの1500_Word一覧
LongmanDictionaryWord一覧
NGSL_Word一覧を見る
Oxford-3000_Word一覧
Oxford-5000_Word一覧
英単語集(14万語)
ANC30000英単語集

これらのページで、単語の一部(複数でも)を検索し、それに当てはまる部分を赤文字で表示しようとしました。
PHPでもプログラムの仕方がわからないので、AIに尋ねました。

「Perplexity」https://www.perplexity.ai/)、「ChatGPT」(https://chat.openai.com/)を利用しました。

そこで示されたのが、次のような記述でした。

foreach ($keywords as $keyword) {
$text = preg_replace("/$keyword/i", "$0", $text);
}
echo $text;

この中で、$keywordsは検索した複数のwordの配列。$textは検索する文章。
一度に検索して赤文字で示すことができるので大変良かった。
しかし、英単語(あるいは英語の文章)と意味の表で行っているときに、少し不具合を感じることがあった。
「an sp」というような短い文字で複数検索すると、赤い文字を設定するための記述「<span 」などが、2つ目のwordで引っかかってしまうのです。
AIをいろいろ試してみたのですが、うまくいきませんでした。
そこで思いついたのが、文字を赤く変えるのは最後だけにして、それまでは記号で置き換えるというものです。PHPにそれほど詳しくないので、自分の知識の範囲での対処法です。
そこで、上記を、回りくどく

foreach ($word_array as $keys) {
//タグのspanの文字がワードの文字に検索されないように一旦記号に置き換える
$word_s = preg_replace("/$keys/i", "★$0●", $word_s);//$word_sは検索用 文字列の$wordと同じもの
}
//記号を赤文字に設定するタグに置き換える
$kigou = ['★','●'];
$replaces = ["",""];
echo ""; echo str_replace($kigou, $replaces, $word_s); echo "";

と書き換えることによって、「span 」などの文字を置き換えるタグを拾わないようにしたものです。

PHPでの検索で、大文字・小文字のどちらにもそのままの文字で色を変える方法

ANC30000英単語集

で検索文字に対応させて、赤文字を表示させようとして、大文字や小文字に関係なく、そして元の大文字小文字を生かしたまま、赤文字で表示させるにはどうすればよいかを、工夫してみた。

もっと簡単な方法もあるのかもしれないが、今の私にはこのくらいのことしか、思いつかなかった。

 

$first = stripos($word, $keyword);//wordの0から数えて何文字目から一致するか。大文字小文字関係ない
if( $first !==false ){
// $wordの中に$keywordと一致するものがない時、falseとなる
$char = strlen($keyword);//半角1文字として。全角は2としてカウント
$mark = substr($word, $first, $char);//$firstから$char文字数をmark
$remark = str_ireplace($mark,"<mark>$mark</mark>",$word);
echo "{$remark}";
} else {
echo $word;
}

stripos関数で、大文字、小文字に関係なく、一致するものがあるか、ないかを調べる。

なければ、falseが返ってくる。あれば0から数えて何文字目にあるかを示してくれる。

次に、strlen関数で、調べるkeywordが何文字あるかを取得する。

subustr関数で、変更するのはwordの何文字目から何文字かを取得する。

この時

str_replace($keyword,"<mark>$keyword</mark>",$word)

を使うと、keywordが「aa」だったとして、wordが「Aa…」なら、「aa…」と変換されてしまう。

wordの中で使用されているkeywordに一致する部分をmarkとして取得し、str_ireplace関数で、大文字・小文字の区別がいらない関数で変換する。

<mark></mark>はstyleで

<style>
mark {
color: #ff0000;
}
</style>

を設定している。

CSVファイルをダブルコーテーションで囲んでデータベースのテーブルにインポート

サーバーのデータベースからCSVファイルをインポート使用しても、

 CSV 入力のカラム数が不正です (行: 2)。」

インポートしようとしていたのは

ネットで調べて、解決できたことは

各項目に「 ” ” 」がついていないから?

ダブルコーテーションで囲む必要があった。

テキストエディタで見ると

確かに、データだけがならんでいる状態。

それで、CSVファイルで使用しているCassava Editor の「オプション」から

でチェックを入れて保存。

そのcsvファイルをテキストエディタで確認すると

ダブルコーテーションで囲む

ダブルコーテーションで囲む

確かにダブルコーテーションで囲まれている。

その後、データベースにインポート。

この時注意することは、何度もインポート失敗を繰り返していると、データベースのテーブルに、1行ずつデータが入り、

「 id 」のカウントが増えているので、実際にデータがインポートされるのは、最終idカウント以後のデータということになる。

数個であればデータを編集する必要がある。その手間を省くなら、デーブルを新たに作った方がいい。

サイトマップを作成してみる

サイトマップを作成-自動生成ツール「sitemap.xml Editor」を利用して、サイトマップを作成してみる。

トップのURL(https://www.can-chan.com/)を入力して、数分。

作成されたサイトマップXMLファイルをダウンロード

XMLファイルダウンロードsitemap.xml

と表示されたものをダウンロードする。

これをサーバーにアップロード。

グーグルウェブマスターツールにアクセスして、sitemap.xmlを送信します。

検出されたページ数1000頁と表示された。

 

 

No tags for this post.

さくらインターネットWEBフォントのすたい見本

さくらWEBフォントの名前とスタイル

1.アルファベットの識別がしやすい

  • ▼A1 Mincho▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼UD Shin Go Conde90 L▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Ryumin Medium KL▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Ryumin Regular KL▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Cinema Letter▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Midashi Min MA31▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Talking▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Haruhi Gakuen▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼UD Shin Go Regular▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼UD Shin Go Medium▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼UD Shin Go Conde90 M▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼UDDigiKyokasho R JIS2004▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • 2.アルファベットや数字の区別がわかりづらい
  • ▼Hiragino Maru Gothic W4 JIS2004▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼GSanSerif-B▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Shimanami JIS2004▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Shin Go Regular▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Shin Go Medium▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Gothic MB101 Bold▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Midashi Go MB31▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Jun 201▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Jun 501▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Shin Maru Go Regular▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Folk Regular▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Folk Medium▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Maru Folk Regular▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Maru Folk Medium▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Kakumin Regular▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Kaimin Sora Bold▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Suzumushi▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Shin Maru Go Futoline▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼Reisho 101▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼NOW-GM▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • ▼GSanSerif-B▲あへゑアハヘエカロニ琇工八人入口力二徧巖邉永012701’”’”2;:7Bb@@ILab’”‘doOPZQ,”‘”qp;:+ijflke.’12’.,”‘l'”mn”IJ”OP:;'”9″‘0★
  • バーコードリーダーで入力~win・AndroidとiPad・iPhone

    バーコードリーダーで入力しても出力が違った

    Windows10/Android

    iPad/iPhone

    その様子をYouTubeにアップしてみた。

    でPHPを利用し、ページを作成。バーコードリーダーで読み取ったら次の行を追加して、連続して入力できるようにした。WindowsPCやAndroidスマートフォンでは予定通りの動きだったので、満足していた。

    ところが、

    iPadを利用して同様のことを行うと、次の行は空白行ができて、1行空けたところに入力欄が作成されてしまう。

    https://www.northwind.mydns.jp/samples/table_sample1.php

    を参考にし、さらにJavascriptでOnchangeを利用して自動的に入力欄をふやすようにしていたのだが・・・

    どうしてこうなるのだろう?

    No tags for this post.

    Accessフォームでボタンから文字を入力する

    に入力の様子を示した動画をアップしました。

    作成するのに

    1.ボタンクリックでテキストボックスに文字入力

    https://hatenachips.blog.fc2.com/blog-entry-7.html

    2.操作を簡略にした50音表示盤
    http://j.tokkyoj.com/data/G09B/3029457.shtm

    を参考にさせてもらいました。1のサイトはアクセスフォームで電卓テンキーを作成するものでしたが、文字を入力するのに利用できそうなので、やってみました。

    2は、あいうえおの50音表を作るのに、濁点を押せば濁音が、半濁点を押せば半濁音が表示させることができるということで、指示棒を1度さすだけで音を示せるというアイデアを活用させていただきました。「か」+「゛」を「が」にするにはまだ高度な設定がいりそうなので、この形にしました。

    アクセスフォーム内ではラベルというアイテムを利用しています。イベントプロシージャなどほぼすべてを1のサイトのまま利用させていただきました。

    拗音、濁音、半濁音を表にし、数字キー、アルファベット大文字小文字、一部記号のボタン表示になりました。

    手作りマスクを作ってみる〜〜コロナウィルス感染症対策?

    20200516161715_p.jpg20200516161532_p.jpg20200516161653_p.jpg
    コロナウィルス感染症はどこまで広まってるのやら?

    東京都も感染が明らかになっている人も1日数十人に収まっているという。
    抗体検査も東大が500人という一部の人に実施したところ、検査した人の0.6%人抗体ができていたという。
    PCR検査数が諸外国に比べ圧倒的に少なく抑えられ?少なくしか実施できず?感染が明らかになった人数はあまり増えていない。
    「アベノマスク」も小さかったり(まだ届かないが)ゴミ、カビ、髪の毛などの異物が混入してるとか、普通の製品ならば商品としての製造者・品質などの品質表示もないらしい。こんなものを国が流通させていいのだろうか?
    自分で作れば、そんなことも許せるということで、You Tubeを参考に作ってみました。
    モデルさんも顔が半分隠れるならということで、写真付きで4方向からの写真付きです。
    !タグ!手作りマスク,アベノマスク,コロナウィルス感染症,PCR検査,抗体検査

    No tags for this post.

    それぞれのお出迎え

    我が家では、いろいろな場所で、いろいろなアイテムが出迎えてくれます。

    かわいい、さくらっ子。

    今年の干支にちなんだ、ねずみの置物。

    そして、野山で小さいながらも、目を楽しませてくれるものからのリース。

    20200214_110456.jpg20200214_110445.jpg
    20200214_110400.jpg

    みんな、私が作ったものではありません。

    妻が制作したもの。

    妻のお姉さんが制作したもの。

    そんな小さな置物で、心が癒されます。

    No tags for this post.

    鐘楼側の蝋梅が 最初の一輪が咲いた。

    20200206_170531.jpg
     蝋梅も。 畑の方にあるのは早くから咲いて、 もう満開を過ぎてしまいました。 ところが、 鐘楼横に飢えている蝋梅は、 今まで。 つぼみのままでしたが、 今日最初の一輪が 咲いていました。 昨日京都 新庄はとても寒い一日でしたが、 そんな中で咲いてくれました。 ここに。 文章を書いているのは、 Google 日本語入力を利用して。 書いています。 今まで。 テンヤ丸 が入力できませんでしたが、 今日初めて。 読点や句読点が 自動的に入るのが、 わかりました。 この文章は、 音声入力で 入力しています。 すごい。 これだけ文章が入力できるととても楽になります。

    !タグ!Google 日本語入力,ロウバイ,読点,句読点,

    No tags for this post.

    暖冬に寝不足かもね福寿草 #jhaiku

    20200117_084701.jpg
    雪のない庭を眺めてみれば、福寿草が眠たげな顔をのぞかせている。

    雪が降っていればたっぷり眠ることもできるのに、ひどいじゃないかと言わんばかり。
    一体どうしたんだ、日本!いや、地球!
    温暖化を早く食い止めてくれないと、我々はゆっくり眠ることもできない!
    (冬季間の眠りをじっくり確保したい福寿草連合)
    雪が降らないと除雪をしなくてもよいのだが、そのしわ寄せが梅雨時期や夏の台風となっては困りものだ。
    今年はスキー場も全然オープンできないとか。
    異常だ。
    !タグ!福寿草,温暖化,,,

    No tags for this post.

    ヒメとタビの初猫団子X型

    20200109_134052.jpg
    いつも追っかけ合いを繰り返しているヒメとタビ。

    3匹が猫団子になれるのかを楽しみにしているのですが、なかなかです。
    そんな今朝、ふと見ると背中合わせとはいえ、くっついて寝ていた。
    これまでもタビのほうはヒメが寝ているところに近づいては、ヒメの体を舐めてやっていた。
    ところがそんなサービスを受けながら、ヒメはまもなく目覚めては、舐めているタビに手を出し足を出して突っかかっていく。
    やれやれ、と思ってみることが多かったのに、今日は、見事だった。
    !タグ!ヒメ,タビ,猫団子,,

    No tags for this post.

    ロウバイが数輪の花を咲かす

    20191230_112923.jpg
    この時期も暖冬なのだろう。

    畑に植えているロウバイが数輪咲いた。
    蝋燭のような艶があるという蝋梅。
    新庄では咲かないということも聞いたこともあるが、我が家のロウバイも少しずつ寒さに慣れてきたのか、いや、暖冬、温暖化のせいなのか、花を楽しませてくれる。
    !タグ!ロウバイ,蝋梅,暖冬,温暖化,

    No tags for this post.

    原稿用紙でルビを振る

    以前ここでも紹介したが、今回ルビを打つにあたって、Wordでのルビを振るようにしてみると、2文字が人マスに入ってしまうとか、一字ずつにしても上に詰まってしまうなどになって、何とかならないものかと、また

    ぜんばのブログ

    をのぞいてみる。そこには丁寧に記載されていた。

    マス目付き原稿用紙設定でルビを振る方法 [Word]

    にしめしてあった。

    ルビは1文字ずつ振ること。

    漢字もルビも頭に全角のスペースを入れる

    この2つで漢字が上に詰まることなく、おさまった。

    ぜんばのブログさんに感謝です。

    庭木に小鳥たちが

    DSCN6213.JPG
    庭木に小鳥たちがやってきます。

    今朝はジョウビタキにシジュウカラ。
    紅葉を楽しんだ庭木も、今はすっかり葉が落ちてしまいました。
    落ちてしまったから、次の楽しみもやってきます。
    庭木にやってくる小鳥たちの姿がよく見えるようになりました
    冬の楽しみの一つです。
    写真の中に、ジョウビタキが1羽、シジュウカラが2羽写っています。
    !タグ!冬,楽しみ,小鳥,ジョウビタキ,シジュウカラ,

    No tags for this post.

    ヒメは、やっぱりヒメに。

    20191214_155312.jpg20191214_153354.jpg20191214_154442.jpg
    白くてちっちゃな猫が来て、ヒメってつけたけど、しだいに毛並みも茶色が目につき始め、噛んだり爪立てたりのやんちゃぶり発揮するようになってきた。

    そこで、「噛むな」とかけて、カンナと改名。
    しかしながら飼い主の方がその名前を「噛んで」ばかり。なかなか名前が出てこない。
    やっぱりもとに戻してヒメに。
    そのヒメさんも、生後2ヶ月(推定)で、890gとなった。

    No tags for this post.