Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ strpos ? substr? potrzebuje wyciac kawałek zmiennej.

Napisany przez: maxi77 11.06.2019, 18:22:46

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!

Napisany przez: sratatata 12.06.2019, 07:25:01

  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. http://www.php.net/print http://www.php.net/implode('.', http://www.php.net/array_slice(http://www.php.net/explode('.', $str), '3', '3'));
  6.  
  7. // lub
  8.  
  9. function strcut( $str, $char, $pos ) {
  10. $i = 1;
  11. $a = http://www.php.net/explode( $char, $str );
  12. $r = http://www.php.net/array();
  13. foreach ( $a as $b ) {
  14. if( $pos < $i ) {
  15. $r[] = $b;
  16. }
  17. $i++;
  18. }
  19.  
  20. return http://www.php.net/implode( $char, $r );
  21. }
  22.  
  23. $char = ".";
  24. $pos = 3;
  25. http://www.php.net/echo strcut($str, $char, $pos);
  26.  
  27. ?>

Napisany przez: 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. http://www.php.net/print http://www.php.net/implode('.', http://www.php.net/array_slice(http://www.php.net/explode('.', $str), 0, 3));
  4.  

Napisany przez: sratatata 12.06.2019, 11:18:30

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. http://www.php.net/print http://www.php.net/implode('.', http://www.php.net/array_slice(http://www.php.net/explode('.', $str), 0, 3));
  4.  

od

Napisany przez: nospor 12.06.2019, 11:24:03

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

Napisany przez: sratatata 12.06.2019, 11:36:51

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.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)