Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: strpos ? substr? potrzebuje wyciac kawałek zmiennej.
Forum PHP.pl > Forum > PHP
maxi77
witam

taka sytuacja:
$tekst = "To jest tekst. To jest drugi tekst. To jest trzeci tekst. To jest czwarty tekst. To jest piaty tekst. To jest szosty tekst."

potrzebuje dostac sie funkcji ktora obetnie mi zdania ktore sa po 3 kropce do konca. z obcieciem tego ciagu po pierwszym zdaniu daje sobie rade uzywajac substr($tekst, 0, strpos($tekst, ".")); ale jak obciac od trzecij kropki? lub czwartej?
dzieki!
sratatata
  1. <?php
  2.  
  3. $str = "To jest tekst. To jest drugi tekst. To jest trzeci tekst. To jest czwarty tekst. To jest piaty tekst. To jest szosty tekst.";
  4.  
  5. print implode('.', array_slice(explode('.', $str), '3', '3'));
  6.  
  7. // lub
  8.  
  9. function strcut( $str, $char, $pos ) {
  10. $i = 1;
  11. $a = explode( $char, $str );
  12. $r = array();
  13. foreach ( $a as $b ) {
  14. if( $pos < $i ) {
  15. $r[] = $b;
  16. }
  17. $i++;
  18. }
  19.  
  20. return implode( $char, $r );
  21. }
  22.  
  23. $char = ".";
  24. $pos = 3;
  25. echo strcut($str, $char, $pos);
  26.  
  27. ?>
nospor
@sratatata chyba nie do konca zrozumiales o co chodzilo. Autor pytal o pozostawienie tekstu do trzeciej kropki a nie za nia.
Poza tym 3 to liczba i nie ma sensu, wrecz jest nielogiczne, brac ja w apostrof '3'

Poprawiona wersja

  1. $str = "To jest tekst. To jest drugi tekst. To jest trzeci tekst. To jest czwarty tekst. To jest piaty tekst. To jest szosty tekst.";
  2.  
  3. print implode('.', array_slice(explode('.', $str), 0, 3));
  4.  
sratatata
Cytat(nospor @ 12.06.2019, 09:32:13 ) *
@sratatata chyba nie do konca zrozumiales o co chodzilo. Autor pytal o pozostawienie tekstu do trzeciej kropki a nie za nia.
Poza tym 3 to liczba i nie ma sensu, wrecz jest nielogiczne, brac ja w apostrof '3'

Poprawiona wersja

  1. $str = "To jest tekst. To jest drugi tekst. To jest trzeci tekst. To jest czwarty tekst. To jest piaty tekst. To jest szosty tekst.";
  2.  
  3. print implode('.', array_slice(explode('.', $str), 0, 3));
  4.  

od
nospor
Cytat
potrzebuje dostac sie funkcji ktora obetnie mi zdania ktore sa po 3 kropce do konca.

"Obetnie po" oznacza mniej wiecej - wywali za a poczatek zachowa.

Rowniez te intencje zawarte sa w nastepnym zdaniu i przykladzie
Cytat
z obcieciem tego ciagu po pierwszym zdaniu daje sobie rade uzywajac substr($tekst, 0, strpos($tekst, "."));


Gdzie ewidentnie widac co maxi chce uzyskac. Ale to trzeba czytac calosc a nie po lebkach
sratatata
Cytat(nospor @ 12.06.2019, 11:24:03 ) *
"Obetnie po" oznacza mniej wiecej - wywali za a poczatek zachowa.

Rowniez te intencje zawarte sa w nastepnym zdaniu i przykladzie


Gdzie ewidentnie widac co maxi chce uzyskac. Ale to trzeba czytac calosc a nie po lebkach

fakt. moj blad.
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-2024 Invision Power Services, Inc.