【问题标题】:Split a string into two equal length parts using PHP [duplicate]使用PHP将字符串拆分为两个相等长度的部分[重复]
【发布时间】:2016-01-16 01:39:42
【问题描述】:
【问题讨论】:
标签:
php
arrays
string
split
explode
【解决方案1】:
给你。
$str="Test string";
$middle=strlen($str)/2;
$first=substr($str,0,$middle);
$last=substr($str,$middle);
【解决方案2】:
这将在不破坏单词的情况下拆分,在文本的最可能一半处拆分,但它可以在任何其他字符处拆分(,、.、@ 等)
$data = "Split a string by length without breaking word"; //string
if (strlen($data) % 2 == 0) //if lenhth is odd number
$length = strlen($data) / 2;
else
$length = (strlen($data) + 1) / 2; //adjust length
for ($i = $length, $j = $length; $i > 0; $i--, $j++) //check towards forward and backward for non-alphabet
{
if (!ctype_alpha($data[$i - 1])) //forward
{
$point = $i; //break point
break;
} else if (!ctype_alpha($data[$j - 1])) //backward
{
$point = $j; //break point
break;
}
}
$string1 = substr($data, 0, $point);
$string2 = substr($data, $point);
【解决方案3】:
我认为这是一个好的开始:
$string = "My name is StackOcerflow and I like programming, one more comma. Next sentance.";
$words = preg_split( "/( )/", $string );
print_r($words);
$length = 0;
foreach($words as $word){
$length += strlen($word);
}
$string_new = "";
$string_new2 = "";
$length_half = 0;
foreach($words as $word){
$length_half += strlen($word);
if($length_half >= ($length/2)){
$string_new2 .= $word . ' ';
}else{
$string_new .= $word . ' ';
}
}
echo '<br/><br/>';
echo 'Full=' . $string . '<br/>';
echo 'First=' . $string_new . '<br/>';
echo 'Second=' . $string_new2 . '<br/>';
echo 'First length=' . strlen($string_new) . '<br/>';
echo 'Second=' . strlen($string_new2) . '<br/>';