Bagaimana cara membatasi jumlah karakter tanpa memotong kata

Selamat siang. Mohon bantuannya mastah saya ingin membatasi jumlah karakter yang ditampilkan tanpa memotong kata. saya sudah mencoba beberapa cara tapi tidak bekerja, seperti: 1. memakai perulangan

<?php
      include 'config/connection.php';
      $kd_desa = isset($_POST['kd_desa']) ? $_POST['kd_desa'] : '';
      $sql = "SELECT * FROM desa ORDERS LIMIT 8";
      $query = mysqli_query($conn,$sql);
      while ($row = mysqli_fetch_array($query)) {
        $awal = 10;
        $kalimat = $row['detail'];
        $post = substr($kalimat,$awal,1);
        if ($post !=" ") {
          while ($post !=" ") {
            $i = 1;
            $awal = $awal + $i;
            $kalimat = $row['detail'];
            $post = substr($kalimat,0,$awal);
          }
        }
      ?>
      <div class="col-md-3">
        <div class="thumbnail">
          <img class="img-responsive" src="img/1.jpg" alt="Desa Pulesari">
          <div class="caption">
            <h3><?php echo $row['nama_desa']; ?></h3>
            <p><?php echo $post; ?></p>
            <p id="readmore"> <a href="profil-desa.php?kd_desa=<?php echo $row['kd_desa']; ?>">Read more</a></p>
          </div>
        </div>
      </div>
      <?php } ?>

code diatas menghasilkan error saya sudah mencoba merubah max_execution_time di xampp yang awalnya 30 menjadi 300 untuk menghilangkan error tersebut tapi setalah melewati 300 errornya tetap sama.

2. dengan menggunakan str_word_count


<?php
      include 'config/connection.php';

      $kd_desa = isset($_POST['kd_desa']) ? $_POST['kd_desa'] : '';
      $sql = "SELECT * FROM desa ORDERS LIMIT 2";
      $query = mysqli_query($conn,$sql);
      while ($row = mysqli_fetch_array($query)) {
      ?>
      <div class="col-md-3">
        <div class="thumbnail">
          <img class="img-responsive" src="img/1.jpg" alt="Desa Pulesari">
          <div class="caption">
            <h3><?php echo $row['nama_desa']; ?></h3>
            <p><?php (str_word_count($row['detail']) > 60 ? substr($row['detail'],0,200)."[...]" : $row['detail']) ?></p>
            <p id="readmore"> <a href="profil-desa.php?kd_desa=<?php echo $row['kd_desa']; ?>">Read more</a></p>
          </div>
        </div>
      </div>
      <?php } ?>

yang kedua malah tidak ada yang di tampilkan. saya juga telah mencoba memakai substr, tapi katanya malah terpotong tidak rapi. mohoh bantuannya. Terima kasih

avatar irya
@irya

59 Kontribusi 13 Poin

Diperbarui 5 tahun yang lalu

2 Jawaban:

Jawaban Terpilih

coba ini gan <pre> &lt;p&gt; &lt;?php $str = $row['detail']; $jmlchar = 300; if ($str{$jmlchar - 1} != ' ') { $jmlchar = strpos($str, ' ', $jmlchar); } $kata = substr($str, 0, $jmlchar) . '[...]'; echo (str_word_count($row['detail']) &gt; 60 ? $kata : $row['detail']) ?&gt; &lt;/p&gt; </pre>

avatar dianarifr
@dianarifr

642 Kontribusi 316 Poin

Dipost 5 tahun yang lalu

Terima kasih banyak mas @dianarifr atas bantuannya

avatar irya
@irya

59 Kontribusi 13 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban