За последние 24 часа нас посетили 18869 программистов и 1623 робота. Сейчас ищут 929 программистов ...

Помогите правильно встроить php...

Тема в разделе "PHP для новичков", создана пользователем Alexdrob, 17 фев 2012.

  1. Alexdrob

    Alexdrob Активный пользователь

    С нами с:
    17 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    Вообщем я полный ноль пока в php так что сильно не бейте...
    Неподскажите как сделать чтоб "$this->item->text" в этом тексте выводилось ну допустим 300 символов?? Я вроде бы нашёл такую тему где показывают как обрезать текст но блин, сам не дохожу как это встроить.. сколько не выпался то выдаёт ошибку, то вообще пишет Parse error
    Код (Text):
    1. <?php
    2. }
    3. if (isset ($this->item->toc))
    4.  echo $this->item->toc;
    5. echo "<div class=\"main-article\">", $this->item->text, "</div>";
    6. if (intval($this->item->modified) != 0 && $this->item->params->get('show_modify_date')) {
    7. $str=views_trim_text($par,$this->item->text);
    8. echo $this->item->text;
    9.  echo "<p class=\"modifydate\">";
    10.  echo JText::_('Last Updated') . ' (' . JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2')) . ')';
    11.  echo "</p>";
    12. }
    13. if ($this->item->params->get('show_readmore') && $this->item->readmore) {
    14. ?>
    Пытался обрезать этим кодом
    Код (Text):
    1. $str = "Обрезать строку по словам Обрезать строку по словам";
    2. $length = 25;
    3.  
    4. function strEx($str, $length){
    5.     $str = explode(" ", $str);
    6.     $nstr = array();
    7.     for($t=0;$t<count($str);$t++){
    8.        $strl = strlen(implode($nstr));
    9.        $strr = strlen(implode($nstr)." ".$str[$t]);
    10.        if($strl<$length && $strr<$length){
    11.           array_push($nstr, " ".$str[$t]);
    12.        }else{
    13.           return trim(implode($nstr));
    14.        }
    15.     }
    16. }
    17.  
    18. echo strEx($str, $length); /*вернет - 'Обрезать строку по'*/
     
  2. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Код (PHP):
    1. function strEx($str,$length) {
    2.          $arr = explode(" ",$str, $length+1);
    3.          unset($arr[$length]);
    4.          return implode(" " ,$arr);
    5. }
    6.  
    Добавлено спустя 1 минуты 0 секунды:
    Код (PHP):
    1. function strEx($str,$length) {
    2.      return implode(" " ,array_slice(explode(" ",$str, $length+1),0,$length));
    3. }
    4.  
     
  3. Alexdrob

    Alexdrob Активный пользователь

    С нами с:
    17 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    а не подскажите как это будет выглядить в коде? почеркну)) полный ноль)
    Код (Text):
    1. <?php
    2. }
    3. if (isset ($this->item->toc))
    4.  echo $this->item->toc;
    5. echo "<div class=\"main-article\">", $this->item->text, "</div>";
    6. if (intval($this->item->modified) != 0 && $this->item->params->get('show_modify_date')) {
    7. $str=views_trim_text($par,$this->item->text);
    8. echo $this->item->text;
    9.  echo "<p class=\"modifydate\">";
    10.  echo JText::_('Last Updated') . ' (' . JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2')) . ')';
    11.  echo "</p>";
    12. }
    13. if ($this->item->params->get('show_readmore') && $this->item->readmore) {
    14. ?>
     
  4. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    strEx это обрезка по словам на основе делиметра "пробел". Вам нужно что? отрезать по словам? Отрезать по кол-ву символов?
     
  5. Alexdrob

    Alexdrob Активный пользователь

    С нами с:
    17 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    Отрезать по кол-ву символов
     
  6. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
  7. Alexdrob

    Alexdrob Активный пользователь

    С нами с:
    17 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    Блин сори, незнаю как синтаксис правильно написать
    Это примерно не покажите как выглядит в коде... Спасибо заранее большое))
    Код (Text):
    1. if (isset ($this->item->toc))
    2.  echo $this->item->toc;
    3. echo "<div class=\"main-article\">", $this->item->text, "</div>";
    4. if (intval($this->item->modified) != 0 && $this->item->params->get('show_modify_date')) {
    5. echo $this->item->text;
    6. define("100",300);
    7. echo mb_substr($this->item->text,0,100);
    8.  echo "<p class=\"modifydate\">";
    9.  echo JText::_('Last Updated') . ' (' . JHTML::_('date', $this->item->modified, JText::_('DATE_FORMAT_LC2')) . ')';
    10.  echo "</p>";
    11. }
     
  8. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    <матное слово>

    0.99$
     
  9. Alexdrob

    Alexdrob Активный пользователь

    С нами с:
    17 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    пффф простенький код... лень идти закидывать деньги...
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    [​IMG]

    99.0$
     
  11. Alexdrob

    Alexdrob Активный пользователь

    С нами с:
    17 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    Крутой форум... один "помог"
    Второй ёрничает) щас чуствую мне ещё на этот пост в ответку прилетит не помощь а какоенить типо.. "Да вы Дно" Взрослые люди)) назвываються... ты лутше "ткни" либо заткнись..
     
  12. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    заменить на
    Код (Text):
    1. echo mb_substr($this->item->text, 0, 300, 'utf-8');
     
  13. Alexdrob

    Alexdrob Активный пользователь

    С нами с:
    17 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    Спасибо большое.
     
  14. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    <матное слово>
    =)
    Alexdrob, мой 6-ой пост чем-нить отличался от найденного вами решения своей проблемы?
     
  15. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ой жаль в треде не поучаствовал))) хотелось бы и на себя характеристику увидеть