3

私はPHPに少し慣れていないので、いくつかの異なるアイデアを得たいという質問があります. イントロセクション、いくつかのラジオボタン、および送信ボタンを備えた html フォームとして開く PHP スクリプトを作成しています。ユーザーが [送信] をクリックすると、選択した静的テキスト ファイル (電子ブック) があり、ユーザーが選択した長さに応じて、PHP スクリプトでファイルから単語を削除する必要があります (ラジオ ボタンには 1,2,3 のラベルが付いています)。 、等)。

これは私が遊んでいるものです:

<?php
    $myTextFile = "ebook.txt";
    $fileContents = get_file_contents($myTextFile);
    $txtTok = strtok("allremoveddelimiters", $myTextFile);

    while ($txtTok != false){
    echo $txtTok;
    $myTok = strtok("allremoveddelimiters");
    }

?>

選択したすべての区切り文字を文字列から削除すると、すべてが 1 行に表示されます。これは私が立ち往生したところです。私が今しなければならないことは、特定の長さの単語 (ユーザーがラジオ ボタンで選択したもの) をテキスト ファイルから取り出し、変更された txt ファイルを画面に出力することです。爆発()関数を見てきましたが、本当に理解しているかどうかはわかりません。str_replace() も試してみましたが、必要な機能を実行していないようでした。または、完全な機能を理解していませんでした。また、preg_() 関数を使用しないようにアドバイスされました。私は、txtファイルを取得してすべての単語を配列に入れ、ユーザーが選択した長さの単語を取り出して、更新された配列を文字列として出力したいと考えていますが、これまでのところ私は'

あらゆる方向へのプッシュは確かに高く評価されます。他の情報が必要な場合は、アドバイスしてください。

例: 完全な文字列にはこれが含まれます -

トム・ソーヤーの冒険という名前の本を読まなければ、あなたは私のことを知りません。しかし、それは問題ではありません。あの本はマーク・トウェイン氏によって作られたもので、彼は主に真実を語った. 言いふらすこともあったが、主に彼は真実を語った。それは何もありません。

そして、ユーザーが選択肢から 3 つを選択した場合 -

Adventures of Sawyer という名前の本を読まなければ、私のことはわかりません。それは問題ではありません。マーク・トウェイン氏が作ったあの本、彼は主に真実を語った。彼が伸ばしたことがあり、主に彼は真実を話しました。それは何もありません。

4

1 に答える 1

2

これについて簡単に考えると、正規表現を見ることをお勧めします。これにより、長さに基づいて単語を簡単に抽出できるようになります。ただし、理解するのは非常に複雑です。

preg_replace、 http://php.net/manual/en/function.preg-replace.phpの方向にあなたをプッシュします。これにより、(正規表現が機能したら)指定された長さの単語を抽出し、それらを空の文字列に置き換えることができます。

作成された正規表現をテストするには、 http://public.kvalley.com/regex/regex.aspなどのサイトを参照することをお勧めします。

ざっと見てみると、次の表現は 4 文字の単語に一致すると思います。

\b(\w{4})\b

文字列の 4 を、一致させたい単語の長さに置き換えます。正規表現を簡単に分解すると、\b は単語の境界 (つまり、スペース、ピリオド) を表し、\w は単語の文字 (文字または数字) を表し、{4} は前の項目に 4 回一致することを意味します (つまり、4文字の単語)。私は次のことがうまくいくと信じています。

$myReplacedString = preg_replace('/\b(\w{4})\b/', '', $myString);
$myTrimmedString = trim(preg_replace('/\s\s+/', ' ', $myReplacedString));

$myString は、ファイルから取得した文字列です。

これでうまく説明できることを願っています。

于 2012-10-24T15:41:26.623 に答える