Pregunta

Necesito contar las palabras en una cadena usando PHP o JavaScript (preferiblemente PHP). El problema es que el conteo debe ser el mismo que funciona en Microsoft Word, porque ahí es donde las personas ensamblan sus textos originales, así que ese es su marco de referencia. PHP tiene una función de conteo de palabras (http://php.net/manual/en/function.str-word-count.php) Pero eso no es 100% lo mismo que yo sé.

¿Algún consejo?

¿Fue útil?

Solución

El verdadero problema aquí es que está tratando de desarrollar una solución sin comprender realmente los requisitos exactos. Este no es un problema de codificación tanto como un problema con las especificaciones.

El quid del problema es que su El algoritmo de conteo de palabras es diferente a Palabras Algoritmo de conteo de palabras: potencialmente por una buena razón, ya que hay varios casos de borde a considerar sin respuestas obvias. Por lo tanto, su pregunta debería ser realmente "¿Qué algoritmo usa la palabra para calcular el recuento de palabras?" Y si piensa en esto por un momento, ya sabe la respuesta: es un software de origen cerrado y patentado para que nadie pueda saber con certeza. Y incluso si tu hacer Trabaja, esta no es una interfaz pública, por lo que se puede cambiar fácilmente en la próxima versión.

Básicamente, creo que es fundamentalmente una mala idea diseñar su software para que funcione de manera idéntica a algo que no puede entender completamente. Personalmente, me concentraría en desarrollar un conteo de palabras sensato, Documentar el algoritmo detrás de él y justificar por qué es un razonable Método para contar palabras (señalar que no hay una forma verdadera).

Si usted deber CONFormar el intento de Word por alguna razón comercial miope, entonces la tarea número uno es resolver qué metodología usan hasta el punto en que puede escribir un algoritmo en papel. Pero esto no será fácil, será muy difícil de verificar por completo y puede cambiar sin previo aviso ...:-/

Otros consejos

SharePoint tiene una Límite duro de 50,000 permisos únicos que puede ser Definido por lista y, si su organización es de cualquier tamaño significativo o (más probable) ve una facturación significativa, luego llegará a ese límite. La creación de una solución automatizada para crear seguridad de nivel de artículo se asegurará de que alcance ese límite aún más rápido.

La seguridad más complicada es, el rendimiento general de sitio más lento, la indexación para la búsqueda también se desacelera e intenta administrar la seguridad en dicho escenario es la materia de las pesadillas.

Se puede hacer (como señaló Waqas), pero si ese realmente es el requisito, entonces es posible que SharePoint no sea la mejor herramienta para lograr lo que está intentando hacer.

Si está atascado en SharePoint-Land para esto, entonces tendrá que crear algún tipo de extremo frontal personalizado que usó las consultas de CAML personalizadas para llamar a los datos de reteriorado. Ah, y desactive la indexación de las listas específicas en la configuración de la lista para que no se encuentren en un simple rastreo.

El siguiente código JS proporciona un recuento de palabras de 67. OpenOffice da el mismo número.

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

Puede usar este código para el recuento de palabras

<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

y descargue la biblioteca Mootools ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top