?

áEÓê¤ÎïLwebshll2019

Current Path : /home/webyoo/www/backup/allback/docteur-site/cv/sym/a/leumi/site/
Upload File :
Current File : /home/webyoo/www/backup/allback/docteur-site/cv/sym/a/leumi/site/smart_search.php

<?php
include "start.php";

// =====================================================================
//  Recherche "intelligente" — analyse une phrase en langage naturel
//  (hébreu) et la traduit en critères pour listing-all-properties.php.
//  100% PHP, sans API : extraction par mots-clés + liste réelle des villes.
// =====================================================================

$q = isset($_REQUEST['q']) ? trim($_REQUEST['q']) : '';

// Si vide : retour à la liste
if ($q === '') {
    header("Location: listing-all-properties.php");
    exit;
}

$params   = array();
$keywords = array();

// Normalisation légère des guillemets hébreux (ממ"ד / ממ״ד)
$qn = str_replace(array('×´', 'â€', '“', '"', '׳', '\''), '"', $q);

// ---- 1) Nombre de pièces -------------------------------------------
$rooms = '';
if (preg_match('/(\d+)\s*(?:\.5\s*)?חדר/u', $qn, $m)) {
    $rooms = $m[1];
} else {
    // nombres écrits en lettres
    $wordNums = array(
        'עשרה'=>'10','תשע'=>'9','שמונה'=>'8','שבע'=>'7','שש'=>'6','שיש'=>'6',
        'חמש'=>'5','×רבע'=>'4','שלוש'=>'3','שתי'=>'2','שני'=>'2','×חד'=>'1','חדר '=>'1'
    );
    foreach ($wordNums as $w => $n) {
        if (mb_stripos($qn, $w) !== false && mb_stripos($qn, 'חדר') !== false) { $rooms = $n; break; }
    }
}
if ($rooms !== '') { $params['room'] = $rooms; }

// ---- 2) Type de bien (ordre : du plus spécifique au plus générique) -
$typeMap = array(
    'דירת גן'      => 'דירת גן',
    'דירת גג'      => 'דירת גג',
    'פנטה×וז'      => '×’×’ / פנטה×וז',
    'דופלקס'       => 'דופלקס',
    'קוטג'         => 'בית פרטי / קוטג',
    'וילה'         => 'בית פרטי / קוטג',
    'בית פרטי'     => 'בית פרטי / קוטג',
    'דו משפחתי'    => 'דו משפחתי',
    'סטודיו'       => 'סטודיו / לופט',
    'לופט'         => 'סטודיו / לופט',
    'מרתף'         => 'מרתף',
    'יחידת דיור'   => 'יחידת דיור',
    'יחידה'        => 'יחידת דיור',
    'דירה'         => 'דירה',
);
foreach ($typeMap as $kw => $val) {
    if (mb_stripos($qn, $kw) !== false) { $params['type_property'] = $val; break; }
}

// ---- 3) Équipements (features[]) -----------------------------------
$featureMap = array(
    'ממ"ד'        => 'mamad',
    'ממד'         => 'mamad',
    'מרחב מוגן'   => 'mamad',
    'ממ"ק'        => 'mamak',
    'ממק'         => 'mamak',
    'מקלט'        => 'shelter',
    'מרפסת'       => 'balcony',
    'מעלית'       => 'elevator',
    'מיזוג'       => 'air_cond',
    'מזגן'        => 'air_cond',
    '×—× ×™×”'        => 'parking',
    '×—× ×™×™×”'       => 'parking',
    'מחסן'        => 'storeroom',
    'סורג'        => 'bars',
    'חימו×'       => 'heater',
    'נגיש'        => 'accessibility',
    'חיות'        => 'pets',
    'מחמד'        => 'pets',
    'חצר'         => 'courtyard',
    'משופצ'       => 'renovated',
    'מרוהט'       => 'furnished',
    'ריהוט'       => 'furnished',
    'בלעדי'       => 'exclusive',
    'שותפ'        => 'roommates',
    '×’×™× ×”'        => 'garden',
);
$features = array();
foreach ($featureMap as $kw => $key) {
    if (mb_stripos($qn, $kw) !== false && !in_array($key, $features, true)) {
        $features[] = $key;
    }
}
if (!empty($features)) { $params['features'] = $features; }

// ---- 4) Ville / région : comparaison avec les valeurs réelles en base
$locResult = mysqli_query($link, "SELECT DISTINCT city FROM rent_properties WHERE city <> '' UNION SELECT DISTINCT region FROM rent_properties WHERE region <> ''");
$places = array();
if ($locResult) {
    while ($r = mysqli_fetch_row($locResult)) {
        $p = trim($r[0]);
        if ($p !== '') { $places[] = $p; }
    }
}
// Trier du plus long au plus court pour capter les noms composés d'abord
usort($places, function ($a, $b) { return mb_strlen($b) - mb_strlen($a); });
foreach ($places as $place) {
    if (mb_stripos($qn, $place) !== false) {
        $keywords[] = $place;
        break; // une localité suffit
    }
}

// ---- 5) Mot-clé de recherche ---------------------------------------
if (!empty($keywords)) {
    $params['key-word'] = implode(' ', $keywords);
} elseif (empty($params)) {
    // Rien reconnu : on transmet la phrase telle quelle en recherche libre
    $params['key-word'] = $q;
}

// ---- On transporte aussi la phrase complète (affichage + ré-édition)
$params['q'] = $q;

// ---- Redirection vers la page de résultats -------------------------
header("Location: listing-all-properties.php?" . http_build_query($params));
exit;



web shell, Coded By 2019