Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ucinanie długiego tekstu
Forum PHP.pl > Forum > PHP
kmpl
Witam,
Posiadam formularz dodawania rozporządzenia. Kiedy dodaję rozdział dotyczący danego
rozporządzenia to jego nazwy są często bardzo długie. Np. Służba wojskowa żołnierzy zawodowych i żołnierzy pełniących służbę kandydacką w razie ogłoszenia mobilizacji, ogłoszenia stanu wojennego i w czasie
wojny.
Znalazłem funkcję ucinającą znaki, tylko mam problem z jej zastosowaniem.

dodawanie_rozporzadzenia.php

  1. <?php
  2. include_once("funkcje.php");
  3.  
  4. //print_r($_POST);
  5. //print_r($_FILES);
  6.  
  7. if($_SESSION['zalogowany']>0){
  8.  
  9. if($_SESSION['idTypUser']<>1){
  10.  
  11. include_once("blad_wejscia.php");
  12.  
  13. }else{
  14. $link=polacz();
  15. echo $nazwa=$_POST['nazwa'];
  16. $dziennik=$_POST['dziennik'];
  17. $data_wejscia=$_POST['data_wejscia'];
  18. $id_rozdzial=$_POST['id_rozdzial'];
  19. echo $plik=$_FILES['plik_upload']['name'];
  20.  
  21.  
  22. if (strstr($_POST['dodaj'],'zapisz')!==FALSE){
  23. $zapisz="insert into rozporzadzenia values(null,'$nazwa','$dziennik','$data_wejscia',$id_rozdzial,'$plik')";
  24. $wynik = mysql_query($zapisz);
  25. echo $id = mysql_insert_id($link);
  26. }
  27. $f = $_FILES['plik_upload'];
  28. IF(isset($f['name']))
  29. {
  30. copy($f['tmp_name'], 'tymcz/'.$f['name']);
  31. //lub
  32. rename($f['tmp_name'], 'tymcz/'.$f['name']);
  33. //lub
  34. move_uploaded_file($f['tmp_name'], 'tymcz/'.$f['name']);
  35. }
  36. form();
  37.  
  38.  
  39. <div id="content-wrap">
  40. <div id="main">';
  41.  
  42.  
  43. polacz();
  44. $id=mysql_query("SELECT * FROM rozdzial");
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. <form enctype="multipart/form-data" action="" method="POST">
  53.  
  54. <table>
  55.  
  56.  
  57. <tr>
  58. <td>nazwa rozporządzenia</td>
  59. <td><input type="text" name="nazwa"></td>
  60. </tr>
  61. <tr>
  62. <td>dziennik ustaw</td> <td><input type="text" name="dziennik"></td>
  63. </tr>
  64. <tr>
  65. <td>data wejścia<font color=red size=3>*</font></td><td><input type="text" name="data_wejscia"></td>
  66. </tr>
  67. </td>
  68. </tr>
  69. <tr>
  70. <td>rozdzial</td>
  71. <td><select name="id_rozdzial">';
  72. while($nazwa=mysql_fetch_array($id)){
  73.  
  74. echo '<option selected="selected" value="'.$nazwa[0].'">'.$nazwa[1].'</option>';
  75.  
  76. }
  77.  
  78.  
  79. echo '</select><pre>';
  80. //print_r($_POST);
  81. echo '<HR>';
  82. //print_r($_FILES);
  83. echo '</pre><HR>';
  84. echo '<input type="file" size="32" name="plik_upload" value="">';
  85.  
  86. <tr>
  87. <td>
  88.  
  89. </tr>
  90. <tr>
  91. <td>
  92. <input class="button" type="submit" name="dodaj" value="zapisz">
  93. </td>
  94.  
  95. <td>
  96.  
  97.  
  98. </td>
  99. </tr>
  100. </table>
  101. </form>
  102.  
  103. </div>
  104.  
  105.  
  106. <div id="sidebar">
  107. <h1>Menu</h1>
  108. <ul class="sidemenu">
  109. <li><a href="index.php?p=900">Strona Główna</a></li>
  110. <li><a href="user.php">Pokaż użytkowników</a></li>
  111. </div>
  112.  
  113. ';
  114. // ID dodanego rekordu
  115. echo strlen($_POST['plik'])+1;
  116.  
  117. if(strstr($_POST['dodaj'],'zapisz')!==FALSE&&$id>0){echo "Rekord o ID: ".$id." zosta?? dodany poprawnie";}elseif(strstr($_POST['dodaj'],'zapisz')!==FALSE){echo "B??d nie udalo si? doda? nowego
  118. rekordu";}
  119.  
  120.  
  121. stopka();
  122.  
  123.  
  124. }
  125. }else{
  126. include_once("login.php");
  127. }
  128. ?>


f_utnijtekst.php

  1. <?php
  2.  
  3. function przytnijTekst($tekst, $iloscZnakow, $zakonczenie = '...') {
  4.  
  5. //jeśli tekst jest dłuższy od określonej ilości znaków dokonujemy modyfikacji
  6. if(strlen($tekst) > $iloscZnakow) {
  7.  
  8. //ilość znaków pomniejszamy o ilość znaków końcówki dopisywanej na koniec tekstu
  9. $iloscZnakow -= strlen($zakonczenie);
  10.  
  11. //z przesłanego tekstu wycinamy tekst o określonej ilości znaków
  12. $tekst = substr($tekst, 0, $iloscZnakow);
  13.  
  14. //odwracamy tekst, tak że jest wyświetlany od końca
  15. $tekst = strrev($tekst);
  16.  
  17. //funkcja
  18. zwraca tekst po pierwszym wystąpieniu spacji, co zabezpiecza nas
  19. //przed wyświetleniem tylko kawałka wyrazu
  20. $tekst = strstr($tekst, ' ');
  21.  
  22. //gdy ciąg już jest prawidłowo przycięty odwracamy tekst ponownie
  23. $tekst = strrev($tekst);
  24.  
  25. //usuwamy spacje z początku i końca tekstu
  26. $tekst = trim($tekst);
  27.  
  28. //na sam koniec doklejamy końcówkę
  29. $tekst .= $zakonczenie;
  30. }
  31.  
  32. return $tekst;
  33. }
  34.  
  35. $tekst = 'Oto pierwszy testowe zdanie, które będziemy ograniczać naszą nową wypasioną funkcją.';
  36.  
  37. echo przytnijTekst($tekst, 45);
  38. //zostanie wyświetlone: Oto pierwszy testowe zdanie, które...
  39.  
  40. ?>


Pozdrawiam
CuteOne
a można wiedzieć z czym dokładnie masz problem o.O ?
kmpl
Nie wiem za bardzo gdzie wkleić kod tej funkcji, lub inaczej jak uciąć zbyt długie nazwy rozdziałów (nazwy rozdziałów są pobierane z bazy Mysql).
erix
A podstawy PHP znasz?
kmpl
Podstawy tak.
erix
No nie jestem pewien, masz przecież w listingu przykładowe użycie...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.