Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中切分点后的字符串?_Php - Fatal编程技术网

如何在PHP中切分点后的字符串?

如何在PHP中切分点后的字符串?,php,Php,这是计数后切片文本的代码 好吧,这个函数工作得很好,计数后剪切文本。但是这个系统在任何标记之后剪切字符串,比如在“,”或“只是任何单词”之后剪切。必须在“点”之后剪切 就像这样:Lorem ipsum doler坐amet。坐好,asd。 计数和核对后:Lorem ipsum doler sit amet 无论字符串中的内容是什么,它必须在计数后剪切字符串,并且必须检查“点”,因为它必须在计数和“点”后剪切 那我该怎么办呢?如果我理解正确的话。 你有一些绳子。在字数“length”之后,你们想在

这是计数后切片文本的代码

好吧,这个函数工作得很好,计数后剪切文本。但是这个系统在任何标记之后剪切字符串,比如在“,”或“只是任何单词”之后剪切。必须在“点”之后剪切

就像这样:Lorem ipsum doler坐amet。坐好,asd。 计数和核对后:Lorem ipsum doler sit amet

无论字符串中的内容是什么,它必须在计数后剪切字符串,并且必须检查“点”,因为它必须在计数和“点”后剪切


那我该怎么办呢?如果我理解正确的话。 你有一些绳子。在字数“length”之后,你们想在“length”之后找到下一个数字“dot”并在那个里剪切字符串吗? 我会这样做:

<?php
function string_excerpt($string, $count){
    $words = explode(' ', $string);
    if (count($words) > $count)
    {
        $words = array_slice($words, 0, $count);
        $string = implode(' ', $words);
    }
    return $string;
}

$string = "Some texts";

//The amount of words we want to show
$count = 18;

echo string_excerpt($string, $count);?>
函数字符串\u摘录($string,$count){
$tmpString=explode(“”,$string);
$returnWord='';
$id=0;
foreach($tmpString作为$word){

如果($id那么如果我理解正确的话。 你们有一些字符串。在字数“length”之后,你们想在“length”后面找到下一个数字“dot”并在那个里剪切字符串吗? 我会这样做:

<?php
function string_excerpt($string, $count){
    $words = explode(' ', $string);
    if (count($words) > $count)
    {
        $words = array_slice($words, 0, $count);
        $string = implode(' ', $words);
    }
    return $string;
}

$string = "Some texts";

//The amount of words we want to show
$count = 18;

echo string_excerpt($string, $count);?>
函数字符串\u摘录($string,$count){
$tmpString=explode(“”,$string);
$returnWord='';
$id=0;
foreach($tmpString作为$word){
如果($id请尝试此解决方案:

function string_excerpt($string, $count){
    $tmpString = explode(' ',$string);
    $returnWord = '';
    $id = 0;
    foreach($tmpString as $word){
        if($id <= $count) {
            $returnWord .= $word.' ';
            $id++;
        }
    }
    if(strpos($word,'.')===false){// no dot in last word.
        for($i=$id; $i<=count($tmpString);$i++){// till we not found dot, add next word
            $returnWord .= $tmpString[$i].' ';
            if(strpos($tmpString[$i],'.')!==false){//dot found...
                break;
            }
        }
    }
    return $returnWord;
}

尝试以下解决方案:

function string_excerpt($string, $count){
    $tmpString = explode(' ',$string);
    $returnWord = '';
    $id = 0;
    foreach($tmpString as $word){
        if($id <= $count) {
            $returnWord .= $word.' ';
            $id++;
        }
    }
    if(strpos($word,'.')===false){// no dot in last word.
        for($i=$id; $i<=count($tmpString);$i++){// till we not found dot, add next word
            $returnWord .= $tmpString[$i].' ';
            if(strpos($tmpString[$i],'.')!==false){//dot found...
                break;
            }
        }
    }
    return $returnWord;
}



如果输入是“Lorem ipsum doler坐在amet.坐在done,asd.计数后”怎么办
计数为
9
?结果应该是什么?例如,计数10个单词后,它必须检查10个单词内部的点标记,如果它找到点,则必须在点后剪切。使用“.”和
explode
可能更好。检查每个数组元素中的单词数,在保留时将它们添加到虚拟数组中ping跟踪总计数。如果总数大于“$count”,则停止添加文本,使用伪数组将字符串重新组合在一起并添加“.”,然后返回字符串。因此,如果我理解正确,您希望在字数之后拆分字符串。然后,如果其中有一个点,您希望再次在点上拆分它吗?请回答10个单词后分开。如果有30个单词会发生什么?它会分成3个10个单词的字符串,还是2个10个单词的字符串和20个单词的字符串?你真的必须把你的问题写下来。所以如果我说$count=100,它必须在100个单词中计算找到点。你是对的,也许它在100个单词中找不到任何点。所以在这种情况下,它必须超过c计数并在计数附近找到点。如果输入是“Lorem ipsum doler sit amet.sit done,asd.after count”怎么办
计数为
9
?结果应该是什么?例如,计数10个单词后,它必须检查10个单词内部的点标记,如果它找到点,则必须在点后剪切。使用“.”和
explode
可能更好。检查每个数组元素中的单词数,在保留时将它们添加到虚拟数组中ping跟踪总计数。如果总数大于“$count”,则停止添加文本,使用伪数组将字符串重新组合在一起并添加“.”,然后返回字符串。因此,如果我理解正确,您希望在字数之后拆分字符串。然后,如果其中有一个点,您希望再次在点上拆分它吗?请回答10个单词后分开。如果有30个单词会发生什么?它会分成3个10个单词的字符串,还是2个10个单词的字符串和20个单词的字符串?你真的必须把你的问题写下来。所以如果我说$count=100,它必须在100个单词中计算找到点。你是对的,也许它在100个单词中找不到任何点。所以在这种情况下,它必须超过c计数并在计数附近找到点。它工作正常,但我发现了一些错误。如果我将计数值更改为100,它会显示:未定义的偏移量:140 in$returnWord.=$tmpString[$I].';If(strop($tmpString[$I],')!==false){//dot find…break;可能在第行:for($i=$id;$IIT不是正确的答案..例如,两个单词之间的10个空格将返回错误的答案。是的,对。几分钟前。我意识到当我添加更多单词时,它工作正常,但我发现了一些错误。如果我将计数值更改为100,它会显示:未定义的偏移量:140 in$returnWord.=$tmpString[$i].';If(strpos($tmpString[$i],')!=false){//找到点…断开;可能在行中:for($i=$id;$IIT不是正确答案..例如,两个单词之间的10个空格将返回错误答案。是的,对。几分钟前。我意识到当我添加更多单词时,您的解决方案正在剪切html标记。因此,我的html页面正在使用此解决方案。好的,您没有提到html。如果您想要,我将尝试获得更好的解决方案并改进答案。添加一个包含HTML的示例,我将改进它。好的,我正在尝试您的解决方案。我更改它,现在就尝试。您的解决方案正在剪切HTML标记。因此,我的HTML页面正在为此解决方案哭泣。好的,您没有说关于HTML的内容。如果您需要,我将尝试获得更好的解决方案并改进答案。添加一个包含HTML的示例,我将改进它。好的,我正在尝试您的解决方案解决方案我改了,现在试试。