質問

PHPまたはJavaScript(できればPHP)を使用して文字列内の単語をカウントする必要があります。問題は、カウントがMicrosoft Wordで機能するのと同じである必要があることです。なぜなら、それは人々が元のテキストを組み立てて参照フレームであるからです。 PHPには単語カウント関数があります(http://php.net/manual/en/function.str-word-count.php)しかし、それは私が知っている限り100%同じではありません。

ポインターはありますか?

役に立ちましたか?

解決

ここでの本当の問題は、正確な要件を実際に理解せずにソリューションを開発しようとしていることです。これは、仕様の問題ほどコーディングの問題ではありません。

問題の核心はそれです 君の ワードカウントアルゴリズムは異なります 言葉 ワードカウントアルゴリズム - 明白な回答なしで考慮すべきさまざまなエッジケースがあるため、正当な理由で潜在的に。したがって、あなたの質問は、実際に「単語数を計算するために単語を使用するものですか?」である必要があります。そして、これについて少し考えれば、あなたはすでに答えを知っています - それはクローズドソース、独自のソフトウェアであるので、誰も確実に知ることができません。そして、たとえあなたであっても 行う 解決してください。これはパブリックインターフェイスではないため、次のバージョンで簡単に変更できます。

基本的に、私はあなたのソフトウェアがあなたが完全に理解できないものと同じように機能するようにあなたのソフトウェアを設計することは基本的に悪い考えだと思います。個人的には、私はあなた自身の正気な言葉を開発することに集中します、 その背後にあるアルゴリズムの文書化 そしてそれがなぜあるのかを正当化します 適正 単語をカウントする方法(本当の方法はないことを指摘しています)。

もし、あんたが しなければならない 近視眼的なビジネス上の理由でのWordの試みに準拠している場合、ナンバーワンのタスクは、紙にアルゴリズムを書き留めることができるポイントまで使用する方法を解決することです。しかし、これは簡単ではなく、完全に確認するのが非常に難しく、予告なしに変更する義務があります...: - /

他のヒント

SharePointには、 50,000個の固有の権限リストごとに定義され、あなたの組織が重要なサイズであるか(もっと可能性が高い)かなりの代謝回数を見た場合、その制限を打つでしょう。アイテムレベルのセキュリティを作成するための自動化されたソリューションを作成すると、その制限がさらに速くなるようにします。

より複雑なセキュリティは、全体的なサイトのパフォーマンスが遅くなり、検索のインデックス付けも遅くなり、そのようなシナリオでセキュリティを管理しようとしています。

は(ワイカが指摘されているように)行うことができますが、それが実際に必要な場合はSharePointがあなたがしようとしていることを達成するための最良のツールではない可能性があります。

これをSharePoint-Landで起動している場合は、カスタムCAMLクエリを使用してバックエンドデータを呼び出すために使用した一種のカスタムフロントエンドを作成する必要があります。ああ、リスト設定で特定のリストの索引付けをオフにして、単純なクロールに見つかりません。

次のJSコードは67の単語カウントを提供します。OpenOfficeは同じ数字を示します。

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

このコードをWord Countに使用できます

<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

Mootoolsライブラリをダウンロードしてください...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top