while (($row = $qResult->fetchNumeric()) && count($response) < $numberOfSuggests) { $val = $cipherer->DecryptField($f, $row[0]); if (IsGuid($fType)) { $val = substr($val, 1, -1); } // "_" is added to conver number type to string $fieldControl->suggestValue("_" . $val, $searchFor, $response, $row); } } $_connection->close(); ksort($response, SORT_STRING); foreach ($response as $value => $realValue) { if (count($result) > $numberOfSuggests) { break; } $strValue = $value[0] == '_' ? substr($value, 1) : $value; // .net compatibility issue $strRealValue = $realValue[0] == '_' ? substr($realValue, 1) : $realValue; $pos = my_stripos($strValue, $searchFor, 0); if ($pos === FALSE) { $result[] = array("value" => runner_htmlspecialchars($strValue), "realValue" => $strRealValue); } else { $highlightedValue = runner_htmlspecialchars(substr($strValue, 0, $pos)) . "<b>" . runner_htmlspecialchars(substr($strValue, $pos, strlen($searchFor))) . "</b>" . runner_htmlspecialchars(substr($strValue, $pos + strlen($searchFor))); $result[] = array("value" => $highlightedValue, "realValue" => $strRealValue); } } $returnJSON = array(); $returnJSON['success'] = true; $returnJSON['result'] = $result; echo printJSON($returnJSON); exit;
function injectStyle($str, $style) { $pos = my_stripos($str, 'style="', 0); $quot = '"'; if ($pos === false) { $pos = my_stripos($str, 'style=\'', 0); $quot = '\''; } if ($pos === false) { return $str . ' style="' . $style . '"'; } return substr($str, 0, $pos + 7) . $style . ";" . substr($str, $pos + 7); }
function my_str_ireplace($search, $replace, $str) { $pos = my_stripos($str, $search, 0); if ($pos === false) { return $str; } return substr($str, 0, $pos) . $replace . substr($str, $pos + strlen($search)); }
if ($pos !== FALSE) { $response[] = substr($val, 0, $pos); } else { $response[] = $val; } if ($i > 10) { break; } } } } db_close($conn); $response = array_unique($response); sort($response); // all queries worked without errors, add success marker echo 'suggest_success'; for ($i = 0; $i < 10 && $i < count($response); $i++) { $value = $response[$i]; if ($suggestAllContent) { $str = substr($value, 0, 50); $pos = my_stripos($str, $searchFor, 0); if ($pos === false) { echo $str; } else { echo substr($str, 0, $pos) . "<b>" . substr($str, $pos, strlen($searchFor)) . "</b>" . substr($str, $pos + strlen($searchFor)); } echo "\n"; } else { echo "<b>" . substr($value, 0, strlen($searchFor)) . "</b>" . substr($value, strlen($searchFor), 50 - strlen($searchFor)) . "\n"; } }
$i = 0; while (($row = db_fetch_numarray($rs)) && count($response) < 10) { $val = $cipherer->DecryptField($f, $row[0]); if (IsGuid($fType)) { $val = substr($val, 1, -1); } $controls->getControl($f)->suggestValue($val, $searchFor, $response, $row); } } } db_close($conn); ksort($response, SORT_STRING); $suggestValues = array(); foreach ($response as $value => $realValue) { $suggestValues[] = array("value" => $value, "realValue" => $realValue); } // all queries worked without errors, add success marker $returnJSON['success'] = true; $result = array(); for ($i = 0; $i < 10 && $i < count($suggestValues); $i++) { $value = htmlspecialchars($suggestValues[$i]['value']); $str = $value; $pos = my_stripos($value, $searchFor, 0); if ($pos === false) { $result[] = array("value" => $value, "realValue" => $suggestValues[$i]['realValue']); } else { $result[] = array("value" => substr($value, 0, $pos) . "<b>" . substr($value, $pos, strlen($searchFor)) . "</b>" . substr($value, $pos + strlen($searchFor)), "realValue" => $suggestValues[$i]['realValue']); } } $returnJSON['result'] = $result; echo "<textarea>" . htmlspecialchars(my_json_encode($returnJSON)) . "</textarea>";