在多行php中中断长字符串变量
我创建了一个存储很长字符串的变量,我想把这个变量打印成多行在多行php中中断长字符串变量,php,html,Php,Html,我创建了一个存储很长字符串的变量,我想把这个变量打印成多行 $test ="This is some example text , I want to print this variable in 3 lines"; 上述$test的输出将是 This is some example text, I want to print this variabale in 3 lines 注意:我想在每15个字符后加一行,或者每行有相等的字符。我不想在变量赋值过程中添加break标记或任何其他标记。现
$test ="This is some example text , I want to print this variable in 3 lines";
上述$test的输出将是
This is some example text,
I want to print this
variabale in 3 lines
注意:我想在每15个字符后加一行,或者每行有相等的字符。我不想在变量赋值过程中添加break标记或任何其他标记。现在一切正常。您只需传递字符数中的$string和@maxlenght,函数将返回带有剪切字符串的表 不要断章取义, 千万别和maxLenght约会, 唯一需要记住的是,你需要注意逗号的用法,即:单词,单词
$test ="This is some example text, I want to print this variable in 3 lines dasdas das asd asd asd asd asd ad ad";
function breakString($string, $maxLenght) {
//preparing string, getting lenght, max parts number and so on
$string = trim($string, ' ');
$stringLenght = strlen($string);
$parts = ($stringLenght / $maxLenght );
$finalPatrsNumber = ceil($parts);
$arrayString = explode(' ', $string);
//defining variables used to store data into a foreach loop
$partString ='';
$new = array();
$arrayNew = array();
/**
* go througt every word and glue it to a $partstring
*
* check $partstring lenght if it exceded $maxLenght
* then delete last word and pass it again to $partstring
* and create now array value
*/
foreach($arrayString as $word){
$partString.=$word.' ';
while( strlen( $partString ) > $maxLenght) {
$partString = trim($partString, ' ');
$new = explode(' ', $partString);
$partString = '';
$partString.= end($new).' ';
array_pop($new);
//var_dump($new);
if( strlen(implode( $new, ' ' )) < $maxLenght){
$value = implode( $new, ' ' );
$arrayNew[] = $value;
}
}
}
// /**
// * psuh last part of the string into array
// */
$string2 = implode(' ', $arrayNew);
$string2 = trim($string2, ' ');
$string2lenght = strlen($string2);
$newPart = substr($string, $string2lenght);
$arrayNew[] = $newPart;
/**
* return array with broken $parts of $string
* $party max lenght is < $maxlenght
* and breaks are only after words
*/
return $arrayNew;
}
/**
* sample usage
* @param string $string
* @param int $maxLenght Description
*/
foreach( breakString($test, 30) as $line){
echo $line."<br />";
}
顺便说一句,你可以很容易地在这里添加一些规则,如:
最后一行没有一个字符,或者在某些单词上没有中断,等等;
好了,现在一切都好了。您只需传递字符数中的$string和@maxlenght,函数将返回带有剪切字符串的表 不要断章取义, 千万别和maxLenght约会, 唯一需要记住的是,你需要注意逗号的用法,即:单词,单词
$test ="This is some example text, I want to print this variable in 3 lines dasdas das asd asd asd asd asd ad ad";
function breakString($string, $maxLenght) {
//preparing string, getting lenght, max parts number and so on
$string = trim($string, ' ');
$stringLenght = strlen($string);
$parts = ($stringLenght / $maxLenght );
$finalPatrsNumber = ceil($parts);
$arrayString = explode(' ', $string);
//defining variables used to store data into a foreach loop
$partString ='';
$new = array();
$arrayNew = array();
/**
* go througt every word and glue it to a $partstring
*
* check $partstring lenght if it exceded $maxLenght
* then delete last word and pass it again to $partstring
* and create now array value
*/
foreach($arrayString as $word){
$partString.=$word.' ';
while( strlen( $partString ) > $maxLenght) {
$partString = trim($partString, ' ');
$new = explode(' ', $partString);
$partString = '';
$partString.= end($new).' ';
array_pop($new);
//var_dump($new);
if( strlen(implode( $new, ' ' )) < $maxLenght){
$value = implode( $new, ' ' );
$arrayNew[] = $value;
}
}
}
// /**
// * psuh last part of the string into array
// */
$string2 = implode(' ', $arrayNew);
$string2 = trim($string2, ' ');
$string2lenght = strlen($string2);
$newPart = substr($string, $string2lenght);
$arrayNew[] = $newPart;
/**
* return array with broken $parts of $string
* $party max lenght is < $maxlenght
* and breaks are only after words
*/
return $arrayNew;
}
/**
* sample usage
* @param string $string
* @param int $maxLenght Description
*/
foreach( breakString($test, 30) as $line){
echo $line."<br />";
}
顺便说一句,你可以很容易地在这里添加一些规则,如:
最后一行没有一个字符,或者在某些单词上没有中断,等等;
试试这个
<?php
$test ="This is some example text , I want to print this variable in 3 lines";
$explode=explode(" ",$test);
$String='';
$newString='';
$maxCharacterCount=23;
foreach ($explode as $key => $value) {
$strlen=strlen($String);
if($strlen<=$maxCharacterCount){
$String.=' '.$value;
}else{
$newString.=$String.' '.$value.'<br>';
$String='';
}
}
$finalString= $newString.$String;
echo $finalString;
?>
试试这个
<?php
$test ="This is some example text , I want to print this variable in 3 lines";
$explode=explode(" ",$test);
$String='';
$newString='';
$maxCharacterCount=23;
foreach ($explode as $key => $value) {
$strlen=strlen($String);
if($strlen<=$maxCharacterCount){
$String.=' '.$value;
}else{
$newString.=$String.' '.$value.'<br>';
$String='';
}
}
$finalString= $newString.$String;
echo $finalString;
?>
试试这个
<?php
$test ="This is some example text , I want to print this variable in 3 lines";
$array = str_split($test, 10);
echo implode("<br>",$array);
基于此链接
试试这个
<?php
$test ="This is some example text , I want to print this variable in 3 lines";
$array = str_split($test, 10);
echo implode("<br>",$array);
基于此链接
最简单的解决方案是使用wordwrap,并在新行上分解,如下所示:
$array = explode( "\n", wordwrap( $str, $x));
其中,$x是要包装字符串的字符数。
复制自最简单的解决方案是使用wordwrap,并在新行上分解,如下所示:
$array = explode( "\n", wordwrap( $str, $x));
其中,$x是要包装字符串的字符数。
复制自以及您打算如何确定何时应显示换行符?-还有,你有没有自己尝试过让它发挥作用?如果是这样的话,请在问题中加上你的任何错误。我不知道,我想在每15个字符后加一行。@SadamAfridi检查我的回答,以及你打算如何确定何时应该出现换行符?-还有,你有没有自己尝试过让它发挥作用?如果是这样的话,请把它和你遇到的任何错误一起包括在问题中。我不知道,我想在每15个字符后面加一行。@SadamAfridi检查我的答案。没有其他选项需要添加,或者括号中有一些选项。。。就像字数计算一样……如果字符串中没有逗号,那么这将不起作用。@daulat您无法预测每个单词的长度。。。您不能仅根据特定的字数剪切字符串,并期望行的长度大致相同…您不需要添加其他选项,或者括号中的内容有一些选项。。。就像字数计算一样……如果字符串中没有逗号,那么这将不起作用。@daulat您无法预测每个单词的长度。。。你不能只根据特定的字数剪切一个字符串,而期望行的长度大致相同……我会尝试按照它来做。你的最后一句话需要一些明确的代码:用progres编码;我想普姆有点长;扑通一声,未加注释。。。。所以不可读:pI将尝试跟随它。你的最后一句话将需要一些明确的代码:在progres中编码;我想普姆有点长;扑通一声,未加注释。。。。太不可读了:P汉克斯,它对我有用。@SadamAfridi你不介意它把一个单词分成两行吗?是的,这仍然是一个问题,但很难防止将单词分成两行,你有什么解决办法吗@普拉尚特的解决方案并没有切中要害。您可以在这里定义12个字符的最大行长度max@SadamAfridi通过编辑,现在两者都可以工作了。。。无法理解编辑会发生什么。。。Prashant的解决方案现在是错误的答案。。。奇怪的事情发生在这里…:谢谢,它对我有用。@SadamAfridi如果它把一个单词分成两行,你不介意吗?是的,这仍然是一个问题,但很难防止将单词分成两行,你有什么解决办法吗@普拉尚特的解决方案并没有切中要害。您可以在这里定义12个字符的最大行长度max@SadamAfridi通过编辑,现在两者都可以工作了。。。无法理解编辑会发生什么。。。Prashant的解决方案现在是错误的答案。。。奇怪的事情发生在这里…: