2011-12-28 1 views
0

Как написать следующее в php?Как создать разрыв строки в php после указанного количества символов?

Если количество символов без пробела превышает 75, создайте разрыв строки.

Функция wordwrap, кажется, считает пробелы слишком, поэтому я не уверен, что смогу это использовать. Я только хочу сломать, когда my $ description больше 75 символов, и пробелов нет.

Спасибо за помощь!

+0

Хотите ли вы сломать слово? –

+0

Попробуйте написать то, что вам нужно, и задавать вопросы, когда вы застряли. – vdbuilder

+0

Если эти данные отображаются как HTML, не лучше ли будет обрабатывать их на уровне пользовательского интерфейса? Например: вы можете использовать свойство word-wrap css и установить его в «break-word» – dkulkarni

ответ

0

Я предполагаю, что вы хотите разорвать пространство, а не просто символ.

Это не очень эффективно, но оно должно работать.

$array = str_split($input); 
$iNumChars = 0; 
$sOutput = ""; 
foreach($array as $char) { 
if($char != " ") $iNumChars++; 
if($iNumChars > 75 && $char == " "){ 
    $sOutput .= "\n".$char; 
    $iNumChars = 0; 
}else{ 
    $sOutput .= $char; 
    } 
} 
+0

Почему первый '$ iNumChars ++;'? –

+0

Почему бы и нет? Я должен добавить его кое-как .. Как еще я собираюсь подсчитать количество символов? –

+0

Я не следую вашей логике. [Проверить это] (http://www.ideone.com/bTAp0) и сравнить его с [вашей версией] (http://www.ideone.com/sGNRI) (образец текста относится к 1-й версии) , –

-1

Найти длину строки.

если STRLEN (строка)> 75

Поиск пробельных в строке (StrPos)

, если никаких пробелов не найдено, то вы можете создать разрыв строки

+0

Не настоящий ответ, и она хотела исключить пробелы в графе, которые вы не учли. –

+0

Ок. Я исправляю себя. Сначала найдите позицию пробела в строке. Если pos больше, чем 75, тогда создайте разрыв строки после 75 символов. – Shraddha

0

надеюсь, что это будет работать, попробуйте.:

// $str is your string 
$explode = explode(" ", $str); 

foreach($explode as $key=>$val){ 
    if($key <= '75'){ 
     $join_arr = " " . $val; 

     if($key == '75'){ 
      // Line Break Here 
      $join_arr .= "<br>"; 
     } 

     echo $join_arr; 
    } 
    else{ 
     exit(); 
    } 
} 

всего 76 символов.

+0

Я думаю, что это то, что мне нужно. Завтра я сделаю снимок и дам вам знать. Я пытаюсь найти решение в течение последнего часа, и сейчас это проходит мимо моего сна. :) Спасибо! – Andi

+0

ваш прием :) –