Frage

Ich muss Wörter in einer Zeichenfolge unter Verwendung von PHP oder JavaScript (vorzugsweise PHP) zählen. Das Problem ist, dass die Zählung das gleiche sein muss wie in Microsoft Word, da die Personen dort ihre Originaltexte zusammenstellen, so dass dies ihr Referenzrahmen ist. PHP hat eine Wortzählfunktion (http://php.net/manual/en/function.str-word-count.php) Aber das ist nicht 100% gleich, soweit ich weiß.

Irgendwelche Zeiger?

War es hilfreich?

Lösung

Das eigentliche Problem hier ist, dass Sie versuchen, eine Lösung zu entwickeln, ohne die genauen Anforderungen wirklich zu verstehen. Dies ist kein Codierungsproblem wie ein Problem mit den Spezifikationen.

Der Kern des Problems ist das dein Wortzählungsalgorithmus unterscheidet sich von unterschiedlich von Wörter Wortzählungsalgorithmus-möglicherweise aus gutem Grund, da es verschiedene Kantenwände ohne offensichtliche Antworten zu berücksichtigen gibt. Ihre Frage sollte also wirklich sein: "Welchen Algorithmus berechnet die Wortzahl mit Wort?" Und wenn Sie ein wenig darüber nachdenken, kennen Sie die Antwort bereits-es ist geschlossene, proprietäre Software, so dass niemand es sicher kann. Und selbst wenn Sie tun Arbeiten Sie es aus, dies ist keine öffentliche Oberfläche, sodass sie in der nächsten Version leicht geändert werden kann.

Grundsätzlich denke ich, dass es im Grunde eine schlechte Idee ist, Ihre Software so zu entwerfen, dass sie identisch mit etwas funktioniert, das Sie nicht vollständig verstehen können. Persönlich würde ich mich darauf konzentrieren, nur eine eigene Wortzahl zu entwickeln. Dokumentieren Sie den Algorithmus dahinter und zu rechtfertigen, warum es ein ist angemessen Methode zum Zählen von Wörtern (darauf hingewiesen, dass es keinen wahren Weg gibt).

Wenn du muss Entsprechend dem Versuch von Word aus einem kurzsichtigen Geschäftsgrund besteht die Aufgabe Nummer eins darin, herauszufinden, welche Methodik sie anwenden, bis Sie einen Algorithmus auf Papier aufschreiben können. Dies wird jedoch nicht einfach sein, wird sehr schwer vollständig zu überprüfen und sich ohne vorherige Ankündigung zu ändern ...:-/

Andere Tipps

SharePoint verfügt über einen Harte Grenze von 50.000 einzigartigen Berechtigungen das kann sein Per Liste definiert und wenn Ihre Organisation von großer Größe oder (wahrscheinlicher) erheblicher Umsatz erheblich ist, werden Sie dieses Limit treffen. Erstellen einer automatisierten Lösung, um die Sicherheit der Elementebene zu erstellen, wird sichergestellt, dass Sie diese Grenze noch schneller treffen.

Die kompliziertere Sicherheit ist, dass die langsamere Gesamtleistung des Gesamtstandorts wird, wird auch die Indizierung für die Suche verlangsamt und der Versuch, Sicherheit in einem solchen Szenario zu steuern, ist das Sachen der Albträume.

es kann fertig sein (wie Waqas darauf hingewiesen), aber wenn dies wirklich die Anforderung ist, ist es möglich, dass SharePoint nicht das beste Werkzeug ist, das nicht erfüllt, was Sie versuchen, das zu erreichen, was Sie versuchen. >.

Wenn Sie in SharePoint-land stecken, müssen Sie ein benutzerdefiniertes Front-Ende erstellen, das benutzerdefinierte CAML-Abfragen verwendet, um die Back End-Daten aufzurufen. Oh, und schalten Sie die Indizierung der spezifischen Listen in den Listeneinstellungen aus, damit sie nicht in einem einfachen Krieger gefunden werden können.

Der folgende JS -Code enthält eine Wortanzahl von 67. OpenOffice gibt die gleiche Nummer.

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;
}

Sie können diesen Code für die Wortzahl verwenden

<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

und laden Sie die Mootools -Bibliothek herunter ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top