本文整理汇总了PHP中soundex函数的典型用法代码示例。如果您正苦于以下问题:PHP soundex函数的具体用法?PHP soundex怎么用?PHP soundex使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了soundex函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct( $data = NULL, $options = NULL ){
$options = new GLU( $options );
if( $data instanceof iterator ) {
$str = '';
foreach($data as $v ) $str .= ' ' . $v;
$data = $str;
}
if( is_array( $data ) ) $data = implode(' ', $data );
$data = preg_split("/[\s,\.\:\/\\\]+/", trim(preg_replace('/[^a-z0-9\s,\.\:\/\\\]/i', '', strtolower($data))));
$words = array();
foreach( $data as $word ){
if( strpos(self::$stopwords, $word . '|') !== FALSE ) continue;
if( ! $options->disable_stemmer ) $word = PorterStemmer::stem( $word );
$len = strlen( $word );
if( $len < 3 || $len > 30 ) continue;
if( strpos(self::$stopwords, $word . '|') !== FALSE ) continue;
if( ! isset( $words[ $word ] ) ) $words[ $word ] = 0;
$words[$word]++;
if( $len < 6 || $options->disable_soundex ) continue;
$word = soundex( $word );
if( ! isset( $words[ $word ] ) ) $words[ $word ] = 0;
$words[$word]++;
}
parent::__construct( $words );
}
示例2: umwords_build
function umwords_build($p, $o)
{
$ratio = 50;
$min = $p * $ratio;
$limit = $min . ', ' . ($min + $ratio);
$r = sql_inner('pub_art.id,msg', 'qda', 'qdm', 'id', 'kv', 'where nod="ummo" limit ' . $limit);
if ($r) {
foreach ($r as $k => $v) {
$v = str_replace("'", ' ', $v);
//$v=str_replace('-',' ',$v);
$rb = str_word_count($v, 2);
if ($rb) {
foreach ($rb as $ka => $va) {
if ($va == strtoupper($va) && !umwords_dicos($va) && strlen($va) > 1) {
$rd[] = array($k, $va, $ka, soundex($va));
//idart,voc,pos,sound
$rc[$va] = array($k, $va, $ka, soundex($va));
}
}
}
}
}
//if(auth(6))umwords_sav($rc);
return $rd;
$ret = count($rc);
$ret .= make_table($rc);
return $ret;
}
示例3: compare
function compare($debug = false)
{
$first = $this->str1;
$second = $this->str2;
$this->levenshtein = levenshtein($first, $second);
$this->similarity['value'] = $sim = similar_text($first, $second, $perc);
$this->similarity['percentage'] = $perc;
if ($debug) {
echo "{$first} | {$second}<br>";
echo "leven: " . $this->levenshtein;
echo '<br>similarity: ' . $sim . ', ' . $perc . '%<br><br>';
}
$soundex1 = soundex($first);
$soundex2 = soundex($second);
$this->soundex['levenshtein'] = levenshtein($soundex1, $soundex2);
$this->soundex['similarity'] = $sim = similar_text($soundex1, $soundex2, $perc);
$this->soundex['percentage'] = $perc;
if ($debug) {
echo "Soundex: " . $soundex1 . ", " . $soundex2 . "<BR>";
echo 'levenshtein: ' . $this->soundex['levenshtein'] . '<br>';
echo 'similarity: ' . $sim . ', ' . $perc . '%<br><br>';
}
$m1 = metaphone($first);
$m2 = metaphone($second);
$this->metaphone['levenshtein'] = levenshtein($m1, $m2);
$this->metaphone['similarity'] = $sim = similar_text($m1, $m2, $perc);
$this->metaphone['percentage'] = $perc;
if ($debug) {
echo "metaphone: " . $m1 . ", " . $m2 . "<br>";
echo 'levenshtein: ' . $this->metaphone['levenshtein'] . '<br>';
echo 'similarity: ' . $sim . ', ' . $perc . '%<br>';
echo '<br>-------------------<br>';
}
}
示例4: search_items
function search_items()
{
$search_string = $this->input->post('keyword');
$search_string = preg_replace('/[^a-zA-Z0-9_ %\\[\\]\\.\\(\\)%&-]/s', '', $search_string);
$words = explode(" ", $search_string);
$data = $this->browse_gallery_model->get_all_search_strings();
$row = 0;
$row_array = array();
$ad_array = array();
foreach ($data as $text) {
$text_word = explode("~", $text['Title_Text']);
$ad_id = $text['ad_id'];
$count = 0;
foreach ($text_word as $single) {
foreach ($words as $keyword) {
if (soundex(strtoupper($keyword)) == soundex(strtoupper($single)) || metaphone(strtoupper($keyword)) == metaphone(strtoupper($single))) {
$count = $count + 1;
}
}
}
if (intval($count) > 0) {
array_push($row_array, $ad_id);
}
}
if (!empty($row_array)) {
$data['ads'] = $this->browse_gallery_model->get_gallery_ads_by_adid($row_array);
$data['top'] = $this->browse_gallery_model->get_top_categories();
$this->load->view('search_items_view', $data);
} else {
$data['ads'] = NULL;
$data['top'] = $this->browse_gallery_model->get_top_categories();
$this->load->view('search_items_view', $data);
}
}
示例5: get_matches
function get_matches($rq)
{
if (strtolower(trim($rq->artist)) != 'mokele') {
return array();
}
if (soundex($rq->track) != soundex('hiding in your insides')) {
return array();
}
$pi = new stdclass();
$pi->artist = "Mokele";
$pi->track = "Hiding In Your Insides";
$pi->album = "You Yourself are Me Myself and I am in Love";
$pi->source = "Mokele.co.uk";
$pi->size = 4971780;
$pi->bitrate = 160;
$pi->duration = 248;
$pi->extra_headers = array("X-Something: foo", "X-WTF: bar");
// anything cURL supports:
// NB this url should be url encoded properly:
// $pi->url = "ftp://user:pass@ftp.example.com/foo/bar.mp3";
// $pi->url = "scp://10.180.255.129/home/rj/mp3/TomWaits/Time.mp3"; // if your curl supports it!
// $pi->url = "file:///home/rj/mp3/Zero 7 - The Garden/Zero 7 - 11 - Crosses.mp3";
// $pi->url = "http://playdar:password@www.playdar.org/secret/hiding.mp3";
$pi->url = "http://play.mokele.co.uk/music/Hiding%20In%20Your%20Insides.mp3";
$pi->score = (double) 1.0;
return array($pi);
}
示例6: create_sound_query
function create_sound_query($in)
{
$out = null;
$in = explode(' ', $in);
foreach ($in as $word) {
$word = soundex($word);
$out .= " OR (SUBSTRING(SOUNDEX(p.post_text), 1, 4)='{$word}')";
}
return '(' . substr($out, 4) . ')';
}
示例7: interpret
public static function interpret($value, $config = null)
{
if (is_array($value)) {
sort($value);
$string = implode(" ", $value);
} else {
$string = (string) $value;
}
$soundex = soundex($string);
return intval(ord(substr($soundex, 0, 1)) . substr($soundex, 1));
}
示例8: onAfterInit
public function onAfterInit()
{
if (!Director::isDev()) {
// Only on live site
$errorcode = $this->owner->failover->ErrorCode ? $this->owner->failover->ErrorCode : 404;
$extract = preg_match('/^([a-z0-9\\.\\_\\-\\/]+)/i', $_SERVER['REQUEST_URI'], $rawString);
if ($errorcode == 404 && $extract) {
$uri = preg_replace('/\\.(aspx?|html?|php[34]?)$/i', '', $rawString[0]);
$parts = preg_split('/\\//', $uri, -1, PREG_SPLIT_NO_EMPTY);
$page_key = array_pop($parts);
$sounds_like = soundex($page_key);
// extend ignored classes with child classes
$ignoreClassNames = array();
if ($configClasses = Config::inst()->get('Intelligent404', 'intelligent_404_ignored_classes')) {
foreach ($configClasses as $class) {
$ignoreClassNames = array_merge($ignoreClassNames, array_values(ClassInfo::subclassesFor($class)));
}
}
// get all pages
$SiteTree = SiteTree::get()->exclude('ClassName', $ignoreClassNames);
// Translatable support
if (class_exists('Translatable')) {
$SiteTree = $SiteTree->filter('Locale', Translatable::get_current_locale());
}
// Multisites support
if (class_exists('Multisites')) {
$SiteTree = $SiteTree->filter('SiteID', Multisites::inst()->getCurrentSiteId());
}
$ExactMatches = new ArrayList();
$PossibleMatches = new ArrayList();
foreach ($SiteTree as $page) {
if ($page->URLSegment == $page_key) {
$ExactMatches->push($page);
} elseif ($sounds_like == soundex($page->URLSegment)) {
$PossibleMatches->push($page);
}
}
$ExactCount = $ExactMatches->Count();
$PossibleCount = $PossibleMatches->Count();
$redirectOnSingleMatch = Config::inst()->get('Intelligent404', 'redirect_on_single_match');
if ($ExactCount == 1 && $redirectOnSingleMatch) {
return $this->RedirectToPage($ExactMatches->First()->Link());
} elseif ($ExactCount == 0 && $PossibleCount == 1 && $redirectOnSingleMatch) {
return $this->RedirectToPage($PossibleMatches->First()->Link());
} elseif ($ExactCount > 1 || $PossibleCount > 1 || !$redirectOnSingleMatch) {
$ExactMatches->merge($PossibleMatches);
$content = $this->owner->customise(array('Pages' => $ExactMatches))->renderWith(array('Intelligent404Options'));
$this->owner->Content .= $content;
}
}
}
}
示例9: existeInDBByEntreprise
public static function existeInDBByEntreprise($nomTuteur, $idEntreprise)
{
$tuteursIdentique = [];
// Order by est obligatoire !
// Si un tuteur est créer entre temps, cela n'infue pas les id dans les formulaires des autres
$tuteurs = Tuteur::where('idEntreprise', $idEntreprise)->orderBy('idUtilisateur')->get();
foreach ($tuteurs as $tuteur) {
if (soundex($nomTuteur) == soundex($tuteur->details->nom)) {
array_push($tuteursIdentique, $tuteur);
}
}
return $tuteursIdentique;
}
示例10: compareSoundex
function compareSoundex($v1, $v2)
{
$v1 = soundex($v1);
$v2 = soundex($v2);
$v1_major = (ord($v1[0]) - ord('A')) * 1000;
$v2_major = (ord($v2[0]) - ord('A')) * 1000;
$v1_minor = substr($v1, 1);
$v2_minor = substr($v2, 1);
// return similarity percentage
$total_major = (ord('Z') - ord('A')) * 1000;
$total_minor = 999;
return ($total_major - abs($v2_major - $v1_major)) / $total_major * 50 + ($total_minor - abs($v2_minor - $v1_minor)) / $total_minor * 50;
}
示例11: existeInDBByCP
public static function existeInDBByCP($nomEtablissement, $codePostal)
{
$entreprisesIdentique = [];
// Order by est obligatoire !
// Si une entreprise est créer entre temps, cela n'infue pas les id dans les formulaires des autres
$entreprises = Entreprise::where('cp', $codePostal)->orderBy('id')->get();
foreach ($entreprises as $entreprise) {
if (soundex($nomEtablissement) == soundex($entreprise->nom)) {
array_push($entreprisesIdentique, $entreprise);
}
}
return $entreprisesIdentique;
}
示例12: wpshop_search_where_in_order
public function wpshop_search_where_in_order($where)
{
global $wpdb;
if (!empty($_GET) && !empty($_GET['s']) && !empty($_GET['post_type']) && $_GET['post_type'] == WPSHOP_NEWTYPE_IDENTIFIER_ORDER) {
$where = "\tAND {$wpdb->posts}.post_type = '" . WPSHOP_NEWTYPE_IDENTIFIER_ORDER . "'";
if (!empty($_GET['s'])) {
$s_soundex = soundex($_GET['s']);
$s = strtoupper($_GET['s']);
$where .= "AND (\n\t\t\t\t\t\t\t\t\t( \t\n\t\t\t\t\t\t\t\t\t\t{$wpdb->posts}.ID IN (\n\t\t\t\t\t\t\t\t\t\t\tSELECT PM.post_id AS ID\n\t\t\t\t\t\t\t\t\t\t\tFROM {$wpdb->postmeta} AS PM\n\t\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\tPM.meta_key = '_order_postmeta'\n\t\t\t\t\t\t\t\t\t\t\t\tAND UPPER( PM.meta_value ) LIKE '%{$s}%'\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\tPM.meta_key = '_order_info'\n\t\t\t\t\t\t\t\t\t\t\t\tAND UPPER( PM.meta_value ) LIKE '%{$s}%'\n\t\t\t\t\t\t\t\t\t\t\t\tOR SOUNDEX( PM.meta_value ) = '{$s_soundex}'\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t{$wpdb->posts}.post_author IN (\n\t\t\t\t\t\t\t\t\t\t\tSELECT U.ID\n\t\t\t\t\t\t\t\t\t\t\tFROM {$wpdb->users} AS U\n\t\t\t\t\t\t\t\t\t\t\tINNER JOIN {$wpdb->usermeta} AS UM\n\t\t\t\t\t\t\t\t\t\t\tON ( UM.user_id = U.ID )\n\t\t\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\tUPPER( U.user_email ) LIKE '%{$s}%'\n\t\t\t\t\t\t\t\t\t\t\t\t\tOR SOUNDEX( U.user_email ) = '{$s_soundex}'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\tUM.meta_key = 'first_name'\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND UPPER( UM.meta_value ) LIKE '%{$s}%'\n\t\t\t\t\t\t\t\t\t\t\t\t\tOR SOUNDEX( UM.meta_value ) = '{$s_soundex}'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\tUM.meta_key = 'last_name'\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND UPPER( UM.meta_value ) LIKE '%{$s}%'\n\t\t\t\t\t\t\t\t\t\t\t\t\tOR SOUNDEX( UM.meta_value ) = '{$s_soundex}'\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)";
}
/*$metas_to_inspect = array( '_order_postmeta', '_order_info');
$first = $first_word = true;
$where .= ' OR ' .$wpdb->posts.'.post_type = "' .WPSHOP_NEWTYPE_IDENTIFIER_ORDER. '"';
$where .= ' AND ';
if ( !empty($_GET['entity_to_search']) && $_GET['entity_to_search'] == 'customer' ) {
$words = explode(' ', wpshop_tools::varSanitizer( addslashes($_GET['s']) ));
foreach ( $words as $word ) {
$first = true;
if ( !$first_word ) {
$where .= ' OR ';
}
$where .= '('.$wpdb->postmeta .'.meta_key = "_order_info" AND '.$wpdb->postmeta .'.meta_value LIKE "%' .$word. '%")';
$first_word = false;
}
}
else {
$word = wpshop_tools::varSanitizer( addslashes($_GET['s']) );
$where .= '('.$wpdb->postmeta .'.meta_key = "_order_postmeta" AND '.$wpdb->postmeta .'.meta_value LIKE "%' .$word. '%")';
}
add_filter('posts_join_request', array($this, 'wpshop_search_join'));
}*/
}
//echo '<pre>'; print_r($where); echo '</pre>'; exit();
return $where;
}
示例13: getAlbumId
/**
* @param $artist name or spotify uri
* @param $album name
* @return spotify:album:uri or false
*/
function getAlbumId($artist, $album)
{
if (!is_spotify_uri($artist)) {
$artist = $this->getArtistId($artist);
}
if (!$artist) {
return false;
}
$disco = $this->getArtistAlbums($artist);
foreach ($disco as $a) {
if ($a['album'] == $album) {
//d("exact match");
return $a['id'];
}
if (soundex($a['album']) == soundex($album)) {
//d("fuzzy match");
return $a['id'];
}
}
return false;
}
示例14: pleac_Soundex_Matching
function pleac_Soundex_Matching()
{
#-----------------------------
$code = soundex($string);
#-----------------------------
$phoned_words = metaphone("Schwern");
#-----------------------------
// substitution function for getpwent():
// returns an array of user entries,
// each entry contains the username and the full name
function getpwent()
{
$pwents = array();
$handle = fopen("passwd", "r");
while (!feof($handle)) {
$line = fgets($handle);
if (preg_match("/^#/", $line)) {
continue;
}
$cols = explode(":", $line);
$pwents[$cols[0]] = $cols[4];
}
return $pwents;
}
print "Lookup user: ";
$user = rtrim(fgets(STDIN));
if (empty($user)) {
exit;
}
$name_code = soundex($user);
$pwents = getpwent();
foreach ($pwents as $username => $fullname) {
preg_match("/(\\w+)[^,]*\\b(\\w+)/", $fullname, $matches);
list(, $firstname, $lastname) = $matches;
if ($name_code == soundex($username) || $name_code == soundex($lastname) || $name_code == soundex($firstname)) {
printf("%s: %s %s\n", $username, $firstname, $lastname);
}
}
#-----------------------------
}
示例15: getPreMatched
public function getPreMatched($lastname, $firstname, $gender, $email)
{
$matchedOrders = array();
$sound_lastname = soundex($lastname);
$sound_firstname = soundex($firstname);
// Mage::log("searching Match for ". $sound_firstname." ".$sound_lastname." ".$gender , null, 'xulin.log');
$customers = Mage::getModel('customer/customer')->getCollection()->addAttributeToSelect('firstname')->addAttributeToSelect('lastname')->addAttributeToSelect('gender')->addAttributeToSelect('email');
$i = 0;
foreach ($customers as $customer) {
if ($email == $customer->getEmail()) {
Mage::log("Email Matched", null, 'xulin.log');
return array("status" => "emailmatched", "customerid" => $customer->getId());
}
if ($sound_firstname == soundex($customer->getFirstname()) && $sound_lastname == soundex($customer->getLastname()) && $gender == $customer->getGender()) {
$matchedOrders[] = $customer->getId();
}
$i++;
}
Mage::log($matchedOrders, null, 'xulin.log');
Mage::log("times: " . $i, null, 'xulin.log');
return array("status" => "searching", "customerids" => $matchedOrders);
}