Question

J'ai besoin de compter les mots dans une chaîne en utilisant PHP ou JavaScript (de préférence PHP). Le problème est que le comptage doit être le même qu'il fonctionne dans Microsoft Word, car c'est là que les gens assemblent leurs textes d'origine de sorte que c'est leur cadre de référence. PHP a une fonction de comptage des mots (http://php.net/manual/en/fonction.str-word-count.php) Mais ce n'est pas à 100% la même pour autant que je sache.

Des pointeurs?

Était-ce utile?

La solution

Le vrai problème ici est que vous essayez de développer une solution sans vraiment comprendre les exigences exactes. Ce n'est pas un problème de codage comme un problème avec les spécifications.

Le nœud du problème est que ton L'algorithme de comptage de mots est différent de Mots Algorithme de comptage de mots - potentiellement pour une bonne raison, car il existe différentes cas de bord à considérer sans réponses évidentes. Ainsi, votre question devrait vraiment être "Quel algorithme utilise les mots pour calculer le nombre de mots?" Et si vous y réfléchissez un peu, vous connaissez déjà la réponse - c'est un logiciel propriétaire à source fermée, donc personne ne peut le savoir avec certitude. Et même si vous fais Fonctionne-le, ce n'est pas une interface publique, donc elle peut facilement être modifiée dans la version suivante.

Fondamentalement, je pense que c'est fondamentalement une mauvaise idée de concevoir votre logiciel afin qu'il fonctionne de manière identique à quelque chose que vous ne pouvez pas comprendre pleinement. Personnellement, je me concentrerais sur le fait de développer votre propre nombre de mots sain d'esprit, documenter l'algorithme derrière et justifier pourquoi c'est un raisonnable Méthode pour compter les mots (soulignant qu'il n'y a pas de vrai moyen).

Si vous devoir Conforme à la tentative de Word pour une raison commerciale à courte vue, puis la tâche numéro un consiste à déterminer la méthodologie qu'ils utilisent au point où vous pouvez noter un algorithme sur papier. Mais cela ne sera pas facile, sera très difficile à vérifier complètement et est susceptible de changer sans préavis ...: - /

Autres conseils

SharePoint a un limite dure de 50 000 autorisations uniques qui peut être Défini par la liste et si votre organisation est de toute taille significative ou (plus probable) voit un chiffre d'affaires significatif, vous toucherez cette limite. Créer une solution automatisée pour créer une sécurité au niveau des articles garantira que vous appuyez sur cette limite encore plus rapide.

La sécurité la plus compliquée est, la performance globale du site plus lente devient, l'indexation de la recherche est également ralentie et tenter de gérer la sécurité dans un tel scénario est la substitution de cauchemars.

It peut être fait être effectué (comme Waqas a souligné), mais si cela est vraiment l'exigence, il est possible que SharePoint n'est pas le meilleur outil pour accomplir ce que vous essayez de faire.

Si vous êtes bloqué dans SharePoint-Land pour cela, vous devez créer une sorte d'extrémité avant personnalisée qui utilisait des requêtes CAML personnalisées pour appeler les données d'extrémité arrière. Oh, et désactiver l'indexation des listes spécifiques dans les paramètres de liste afin qu'elles ne puissent pas être trouvées dans un simple crawl.

Le code JS suivant donne un nombre de mots de 67. OpenOffice donne le même numéro.

str = "I need to count words in a string using PHP or Javascript (preferably PHP). The problem is that the counting needs to be the same as it works in Microsoft Word, because that is where the people assemble their original texts in so that is their reference frame. PHP has a word counting function (http://php.net/manual/en/function.str-word-count.php) but that is not 100% the same as far as I know.";

wordCount = str.split(/\s+/g).length;
function countWords( $text )
{
    $text = preg_replace('![^ \pL\pN\s]+!u', '', strtolower($text));
    $text = trim( preg_replace('![ \s]+!u', ' ', $text) );

    $count = count( explode(' ', $text) );

    return $count;
}

vous pouvez utiliser ce code pour le nombre de mots

<title>Untitled Document</title>
<script type="text/javascript" src="mootools.svn.js"></script>
<script type="text/javascript">
    window.addEvent('domready', function()
    {   
        $('myInput').addEvent('keyup', function() 
        {
            max_chars = 0;
            current_value   = $('myInput').value;
            current_length  = current_value.length;
            remaining_chars = max_chars+current_length;
            $('counter_number').innerHTML = remaining_chars;
            if(remaining_chars<=5)
            {
                $('counter_number').setStyle('color', '#990000');
            } else {
                $('counter_number').setStyle('color', '#666666');       
            }   
        }); 
    }); 
</script>

<style type="text/css"> 
    body{
        font-family:"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif; 
        font-size:12px;
        color:#000000; 
    }
    a:link, a:visited{color:#0066CC;}
    label{display:block;}
    .counter{
        font-family:Georgia, "Times New Roman", Times, serif;
        font-size:16px; 
        font-weight:bold;
        color:#666666
    } 
</style> 
</head>
<body> 
    <label for="myInput">Write something here:</label> 
    <input type="text" id="myInput" maxlength="20" />  
    <span id="counter_number" class="counter">20</span> 
    Remaining chars

et télécharger la bibliothèque mootools ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top