Vérifiez la Longueur de la Chaîne En PHP
J'ai une chaîne de caractères qui est de 141 caractères. En utilisant le code suivant, j'ai une instruction if pour renvoyer un message si la chaîne est plus ou moins de 140.
libxml_use_internal_errors(TRUE);
$dom = new DOMDocument();
$dom->loadHTMLFile($source);
$xml = simplexml_import_dom($dom);
libxml_use_internal_errors(FALSE);
$message = $xml->xpath("//div[@class='contest']");
if (strlen($message) < 141)
{
echo "There Are No Contests.";
}
elseif(strlen($message) > 142)
{
echo "There is One Active Contest.";
}
J'ai utilisé var_dump sur $message et il montre la chaîne est [0]=> string(141)
, voici mon problème. Quand j'ai changer les chiffres pour l'instruction if <130 et >131 il renvoie toujours le 1er message, bien que la chaîne est supérieure à 131. N'importe quel nombre, j'utilise moins de 141 je reçois toujours "Il n'y a Pas de Concours." m'est revenue.
- Ce n'est pas sur XPath, mais de la simple logique.
Vous devez vous connecter pour publier un commentaire.
essayer la syntaxe commune à la place:
switch
surstrlen($message)
serait encore plus rapide...[0]=> string(141)
moyen $message est un tableau de sorte que vous devriez fairestrlen($message[0]) < 141
...[0]=> string(141)
signifie que $message est un tableau, pas de chaîne, et $message[0] est une chaîne de 141 caractères$message
est probablement pas une chaîne, mais un tableau. Utilisation$message[0]
pour accéder au premier élément.xpath ne pas retourner une chaîne de caractères. Elle retourne un tableau avec les éléments xml, qui peut être utilisé à la chaîne.
strlen()
attend une chaîne). 'Array' est toujours plus court que141
caractères.Un XPath solution est d'utiliser:
où $k, doit être remplacé par un numéro.
Elle correspond à la longueur de chaîne de l' $k-th (dans l'ordre du document)
div
dans le document XML qui a unclass
attribut avec la valeur "concours".Parce que
$xml->xpath
toujours renvoyer un tableau,strlen
s'attend à un chaîne.