Php 从txt文件中获取数据(用户选择的字长)后显示单词

Php 从txt文件中获取数据(用户选择的字长)后显示单词,php,arrays,Php,Arrays,我对PHP有点陌生,有一个问题我想了解一些不同的想法。我正在编写一个PHP脚本,它将以html表单的形式打开,包含一个简介部分、几个单选按钮和一个提交按钮。当用户单击submit时,我选择了一个静态文本文件(电子书),我希望PHP脚本根据用户选择的长度从文件中删除单词(单选按钮标记为1、2、3等) 这就是我一直在玩的东西: <?php $myTextFile = "ebook.txt"; $fileContents = get_file_contents($myTextFi

我对PHP有点陌生,有一个问题我想了解一些不同的想法。我正在编写一个PHP脚本,它将以html表单的形式打开,包含一个简介部分、几个单选按钮和一个提交按钮。当用户单击submit时,我选择了一个静态文本文件(电子书),我希望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");
    }

?>

我已经把我的字符串从所有选择的分隔符中去掉,它在一行上全部回音。这就是我陷入困境的地方。我现在需要做的是从文本文件中提取一定长度的单词(用户通过单选按钮选择),然后将更改后的txt文件打印到屏幕上。我已经看过explode()函数,但我不确定我是否真正理解它。我还玩了str_replace(),但它似乎没有达到我所需要的效果,或者我只是不理解完整的函数。另外,有人建议我不要使用preg_()函数。我假设我想将txt文件中的所有单词放入一个数组中,然后将用户选择长度的单词取出,然后将更新后的数组打印回字符串,但到目前为止,我还没有找到一个新手可以理解的示例

任何方向的推动都会受到欢迎。如果需要任何其他信息,请告知

例如: 完整字符串将包含以下内容-

如果你没有读过一本书,你就不会了解我 汤姆·索耶历险记;但那没关系。那本书是我写的 马克·吐温先生,他主要讲了实话。有些事情 他伸了个懒腰,但主要是说了实话。那没什么

如果用户从选项中选择了3个-

不知道我有没有读过一本名叫《索耶历险记》的书;那没关系。马克·吐温先生写的那本书,主要讲的是实话。他讲了很多事情,主要是讲了实话。那没什么


快速思考这个问题,我建议您看看正则表达式。这将很容易让您根据长度提取单词。不过,它们可能很难理解

我会把你推向preg_替换的方向。这将允许您(一旦有了工作正则表达式)提取指定长度的单词,并用空字符串替换它们

我建议您去一个类似的网站,测试创建的正则表达式

快速查看后,我相信以下表达式与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是您从文件中获取的字符串


我希望这能很好地解释这一点。

+1对于“向任何方向推动”,我在这里有点困惑。例如,让我们假设您的文件由一个字符串组成:
I,like,do'x-some bi-magic
,并且我选择了“2”作为目标长度。结果字符串应该是什么样的?您可以添加一些
ebook.txt
的内容,还可以添加带有特定内容的示例输出吗length@raina77ow-在示例字符串中,如果用户要单击“2”,您会给出“I,like,do'x-一些双魔法”然后我希望脚本删除do&bi以读取“我喜欢x一些魔法”。@ProgNewbie所以您也需要去除所有分隔符?事实上,
\b(\w{4,})\b
将匹配具有4个或更多字母的单词。您必须使用
\w{4}
来严格匹配。