Skocz do zawartości

Zdjęcie
- - - - -

program w php - pomoc

php program php pomoc php

9 odpowiedzi w tym temacie
  • Zaloguj się, aby dodać odpowiedź
abef6600
0
Neutralna

Napisano 19 marca 2014 - 16:21

#1

Witam. Proszę o pomoc w programie php. Wpisujemy tekst i po 3 wyrazie ma postawić przecinek a po piątym kropkę. Jak takie coś zrobić, pętla zapewne explode


  • 0

unbreak

    WT Elite

  • 1 937 postów
    • Czas spędzony online: 27d 8h 43m 36s
506
Znakomita!
  • Location/home/unbreak

Napisano 19 marca 2014 - 16:57

#2

Jeżeli chcesz żeby to działało za pomocą pętli i explode to robisz to tak:

$text = "Lorem ipsum dolor sit amet consectetur adipiscing elit";
$words = explode(" ",$text);
$new_text = "";
foreach($words as $k=>$w){
  $new_text .= $w;
  if( $k == 2 ) $new_text .= ", ";
  elseif( $k == 4 ) $new_text .= ". ";
  else $new_text .= " ";
}

echo $new_text; //Lorem ipsum dolor, sit amet. consectetur adipiscing elit

Ale można to zrobić też za pomocą preg_replace:

$text = "Lorem ipsum dolor sit amet consectetur adipiscing elit";
$new_text = preg_replace("/^(([a-zA-Z0-9]+ ){3})(([a-zA-Z0-9]+ ){2})(.+)$/","$1, $3. $5",$text);

echo $new_text;

  • 1

webDeveloper


abef6600
0
Neutralna

Napisano 19 marca 2014 - 17:57

#3

 

Jeżeli chcesz żeby to działało za pomocą pętli i explode to robisz to tak:

$text = "Lorem ipsum dolor sit amet consectetur adipiscing elit";
$words = explode(" ",$text);
$new_text = "";
foreach($words as $k=>$w){
  $new_text .= $w;
  if( $k == 2 ) $new_text .= ", ";
  elseif( $k == 4 ) $new_text .= ". ";
  else $new_text .= " ";
}

echo $new_text; //Lorem ipsum dolor, sit amet. consectetur adipiscing elit

Ale można to zrobić też za pomocą preg_replace:

 

I działa to już o co prosiłem czy jak? :)


  • 0

zonic

    WT Elite

  • 2 911 postów
    • Czas spędzony online: 134d 2h 28m 23s
472
Znakomita!
  • LocationToruń

Napisano 19 marca 2014 - 18:49

#4

I działa to już o co prosiłem czy jak? :)

A nie możesz sprawdzić? Chcesz zadanie domowe odesłać bez testowania? :) 


  • 0

abef6600
0
Neutralna

Napisano 19 marca 2014 - 19:04

#5

A nie możesz sprawdzić? Chcesz zadanie domowe odesłać bez testowania? :)

 

znaczy to uruchomiłem i jakieś dziwne znaki pokazało :)
Więc coś do poprawy jest bo chodzi o to że tekst wpisujesz :)


  • 0

studenciak

    Użytkownik

  • 53 postów
    • Czas spędzony online: 3h 6m 29s
4
Neutralna

Napisano 19 marca 2014 - 19:16

#6

znaczy to uruchomiłem i jakieś dziwne znaki pokazało :)
Więc coś do poprawy jest bo chodzi o to że tekst wpisujesz :)

Dostałeś dokładnie to, czego potrzebujesz.
Do zmiennej text na początku masz przypisany jakiś $text. Na koniec wyśweitlany jest ten tekst z Twoim przecinkiem i kropką...

musisz po prostu dorobić wpisywanie tekstu do zmiennej $text.


  • 0

zonic

    WT Elite

  • 2 911 postów
    • Czas spędzony online: 134d 2h 28m 23s
472
Znakomita!
  • LocationToruń

Napisano 19 marca 2014 - 19:19

#7

znaczy to uruchomiłem i jakieś dziwne znaki pokazało :)
Więc coś do poprawy jest bo chodzi o to że tekst wpisujesz :)

Rozumiesz w ogóle co się dzieje w tym kodzie?


  • 0

abef6600
0
Neutralna

Napisano 19 marca 2014 - 21:00

#8

nie :(


  • 0

zonic

    WT Elite

  • 2 911 postów
    • Czas spędzony online: 134d 2h 28m 23s
472
Znakomita!
  • LocationToruń

Napisano 19 marca 2014 - 21:12

#9

nie :(

No to musisz poświęcić trochę czasu na naukę podstaw PHP. Nie rozwiązujemy tutaj prac domowych.


  • 0

unbreak

    WT Elite

  • 1 937 postów
    • Czas spędzony online: 27d 8h 43m 36s
506
Znakomita!
  • Location/home/unbreak

Napisano 20 marca 2014 - 09:00

#10

W skrócie, podzieliliśmy cały tekst na słowa. później przelatujemy te słowa po kolei dodając do nowej zmiennej i jeżeli dane słowo jest 3 lub 5 z kolei (w kodzie 2 i 4 ponieważ indeksuje od 0) to po nim umieszczamy odpowiedni znak przecinek lub kropkę, a na koniec wyświetlamy nowy tekst.


  • 1

webDeveloper






Również z jednym lub większą ilością słów kluczowych: php, program php, pomoc php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych