2010-06-24 4 views
2

(Désolé révision en ce qui concerne le caractère $ Expliquer par exemple aussi bien!).insensible à la casse « soustraire » un texte d'une autre (php)

je dois effectuer un test sur deux variables de chaîne:

$ a, $ b

Si $ a est contenu dans $ b, j'ai besoin de voir si leur "différence" ($ b- $ a) contient le caractère $. Le cas échéant, puis retourner la « différence », sinon dans tous les autres cas, le test doit retourner FALSE

$ a ne devrait se produire également à la FIN $ b ...

$ b = « ABCDE " $ a = "cde" devrait aboutir à vrai (pas détecté $)

$ b = "Zyw $ ABCDE" $ a = "cde" devrait donner lieu à de faux (détecté $)

$ b = "cdeab" $ a = "cde" devrait donner false (PAS à la fin)

$ b = "zxwq" $ a = "cde" devrait donner lieu à de faux ($ a doesnt existe $ b)

HTH!

+1

Pouvez-vous faire un exemple? –

+0

Est-ce que leur "différence" peut être au-delà d'un caractère? Avant et après ? Est-ce que $ b est toujours plus long que $ a? –

Répondre

1
  • Utilisez strpos pour déterminer la position d'un $ b
  • $ Utilisez substr pour obtenir les pièces de b $ qui ne contiennent pas $ un
  • Utilisez strpos pour vérifier si ces pièces contiennent $.
+2

stripes plutôt que des strpos –

0

Modifier: mise à jour après modification question

Cela devrait fonctionner:

<?php 

function string_func_thing($a, $b) { 
    $count = 0; 

    //get $b with $a removed 
    $result = str_ireplace($a, '', $b, $count); 

    //if $a was not in $b 
    if (!$count) { 
     return false; 
    } 
    //if whatever is left contains $ 
    if (false !== strpos($result, '$')) { 
     return false; 
    } 

    return true; 
} 


var_dump(string_func_thing('ter', 'computer$')); //bool(false) 
var_dump(string_func_thing('ter', 'computer')); //bool(true) 
var_dump(string_func_thing('hello', 'computer')); //bool(true) 
0
$ret = false; 
if (strpos($b, $a) !== false) { 
    $ret = (substr_count($b) > substr_count($a)); 
} 

$ ret est votre réponse

0
$a = 'cde'; 
$regex = '/^[^$]*' . $a . '$/m'; 
if (preg_match($regex, $b)) { 
    # Successful match 
} else { 
    # Match attempt failed 
}