Initial commit
This commit is contained in:
75
func_highlight.php
Normal file
75
func_highlight.php
Normal file
@ -0,0 +1,75 @@
|
||||
<?php
|
||||
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
|
||||
function highlight_results($text, $suchart, $query, $split="|", $ln_zaehler="1") {
|
||||
|
||||
if ($suchart == 1){
|
||||
$suchopt = "{0,1}";
|
||||
}else{
|
||||
$suchopt = "";
|
||||
}
|
||||
|
||||
|
||||
$query1 = preg_replace('/\s{2,}/sm',' ',$query,PREG_SET_ORDER); //Mehr als zwei leerzeichen entfernen
|
||||
$query2 = preg_replace("/(\+{0,}\*{0,}%{0,})(\"([^\"]+)\"\*{0,}%{0,}\+{0,}|\+{0,}\*{0,}%{0,}(\w+)\*{0,}%{0,}\+{0,})/", '|\2', $query1); // gleich wie in suche.php: + * und " richtig interpretieren
|
||||
$query3 = preg_replace("/\-{1,}\|\"([^\"]+)\"\s*|\-{1,}\|(\w+)\s*/", '', $query2); // Alle Begriffe die ein Minus haben entfernen
|
||||
$query4 = preg_replace("/\"|\\\/", '', $query3); // Hochkomma, Backlash entfernen
|
||||
$query5 = preg_replace("/\s{0,1}\|/", '|', $query4); // Leerzeichen in Verbindung mit | entfernen. Es kann nur 1 Leerzeichen geben, wegen query1
|
||||
$query6 = preg_replace("/^\||\s$/", '', $query5); // Erstes | entfernen und letztes Leerzeichen
|
||||
$query6 = str_replace (array("ä", "ö", "ü", "ß", "Ä", "Ö", "Ü"), array("ä", "ö", "ü", "ß", "Ä", "Ö", "Ü"), $query6);
|
||||
|
||||
$results = explode($split, $query6);
|
||||
foreach($results as $result) {
|
||||
|
||||
|
||||
if($ln_zaehler == 6){
|
||||
$zahl_r = 255;
|
||||
$zahl_g = 150;
|
||||
$zahl_b = 255;
|
||||
$ln_zaehler = 1;
|
||||
}
|
||||
|
||||
if($ln_zaehler == 5){
|
||||
$zahl_r = 150;
|
||||
$zahl_g = 150;
|
||||
$zahl_b = 255;
|
||||
$ln_zaehler = 6;
|
||||
}
|
||||
|
||||
if($ln_zaehler == 4){
|
||||
$zahl_r = 150;
|
||||
$zahl_g = 255;
|
||||
$zahl_b = 255;
|
||||
$ln_zaehler = 5;
|
||||
}
|
||||
|
||||
if($ln_zaehler == 3){
|
||||
$zahl_r = 155;
|
||||
$zahl_g = 255;
|
||||
$zahl_b = 150;
|
||||
$ln_zaehler = 4;
|
||||
}
|
||||
|
||||
if($ln_zaehler == 2){
|
||||
$zahl_r = 255;
|
||||
$zahl_g = 150;
|
||||
$zahl_b = 150;
|
||||
$ln_zaehler = 3;
|
||||
}
|
||||
|
||||
if($ln_zaehler == 1){
|
||||
$zahl_r = 255;
|
||||
$zahl_g = 255;
|
||||
$zahl_b = 150;
|
||||
$ln_zaehler = 2;
|
||||
}
|
||||
|
||||
|
||||
$text = preg_replace('/([^öäüß\w\d][^"&ref="]{1,})(' . preg_quote($result, '/') . ')([^öäüß\w\d])'.$suchopt.'/i', //suchmuster --> letzter * = ähnliche Suche
|
||||
'\1<span style="background-color:rgb('.$zahl_r.', '.$zahl_g.', '.$zahl_b.')"><b>\2</b></span>\3', //ersatz
|
||||
$text); //zeichenkette
|
||||
# [^"&ref="]{1,} --> Syntaxhighlighting nicht innerhalb des Links, der zu bibleserver verweist &ref=1.Mose3,5 --> &ref=<span style ...>1Mose..
|
||||
|
||||
}
|
||||
return $text;
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user