0

私は自分のウェブサイトに公開される電子書籍に取り組んでいます。誰かが固定検索バーを使用してテキストを入力し、ページ上で強調表示できる OSX スポットライト機能を模倣したいと考えています。私はSphiderを使用しようとしていましたが、この結果を得ることはできませんでした.

この類似のスレッドを見つけましたが、私が探しているものとはまったく異なります。

4

1 に答える 1

1

文字列置換を使用して、強調表示する必要があるすべてのテキストを span タグで囲むことができます。次に、そのスパン タグの CSS クラスを作成します。

<?php

$searchString = $_POST['search'];
$EBOOK = str_replace($searchString, "<span class='highlighted'>$searchString</span>", $EBOOK);

次にいくつかのCSS

.highlighted {
  background-color:yellow;
}

次のステップに進むには、javascript を使用して、ユーザーの Web ブラウザを span.highlighted の最初の場所までスクロールします。

ユーザーの検索入力には、エスケープが必要な正規表現で使用される特殊文字が含まれている可能性があるため、検索文字列値を置き換えるために正規表現を使用しないことに注意してください(つまり、preg_replace)。

もちろん、これはすべて理論的なものです...あなたの質問に基づいています。

編集:何か考えただけで、電子ブックのコンテンツにはHTMLタグが含まれているため、私が提案したように文字列置換機能を使用する場合. タグを検索して置換できないように考慮してください。この場合、正規表現の置換が必要になる場合があります

于 2012-03-28T03:07:32.697 に答える