Trebam php funkciju

poruka: 7
|
čitano: 1.571
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Trebam php funkciju

Trebam php funkciju koja pretvara string

$string = "ovo je neki string";u ovo

$string = "ovo-je-neki-string";

googlao sam ali nisam ništa  pronašao (ili nisam dobro tražio), jel to neka replace funkcija koja bi trebala zamijeniti razmak(whitespace) ili nešto sasvim drugo?

k1.c0
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Trebam php funkciju

riješio sam problem. Ponovo sam googlao "php whitespace replace" i nasao sam stranicu na kojoj je objašnjeno o funkciji str_replace .. evo linka ako nekome nekada to zatreba

k1.c0
Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
Trebam php funkciju

Trebaš to za parsanje stringova koje ćeš koristit u URL-u?

dr. Mito Korupcija, doktor političkih znanosti.
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: Trebam php funkciju

Sada mi se javio novi problem: Imam file index.php i tamo sam stavio da mi link na vijest bude u ../kategorija/neki-naslov ovo neki naslov sam napravio pomocu $naslov = str_replace(" ", "-", $naslov); funkcije i ali kad pokusam otići na vijest ..sport/Lorem-Ipsum ispisuje mi na ekran Error 404 - Not found , a na .../sport/bbbbb tu mi se prikaze  red iz baze gdje naslov bbbbb. pokusao sam u ospirnije.php napraviti ovo pri vadjenu redova iz baze

$naslov = $_GET['naslov'];

if(strpos($nas, '-')!== false){  //ovo mi je ako naslov ima crticu u sebi da se crtica zamijeni razmakom pa da se odabere pravi naslov iz baze koji nema crtice između riječi
            $naslov = str_replace("-", " ", $naslov);
        }
        elseif (strpos($naslov, "-") == false){ //a ovo mi je ako je naslov bez crtice da bude kako i treba biti, npr. bbbbb
            $naslov = $_GET['naslov'];
        }
       
        $result = mysql_query( "SELECT * FROM vijesti ", $connect);

$result = mysql_query("SELECT * FROM vijesti WHERE naslov='$naslov' ", $connect);

while ($row=mysql_fetch_assoc($result)){

  echo $row['naslov'] . "<br />" ;

  echo $row['sadrzaj'] . "<br />";

  echo $row['datum'] . " " . $row['autor'] . " " . $row['kategorija'];

}Što misliš bi li valjalo da u kod gdje dodajem vijesti(dodaj.php) dodati da se razmak u naslovu mijenja crticom

$naslov = $_POST['naslov'];

$naslov = str_replace(" ", "-" , $naslov);

k1.c0
17 godina
neaktivan
offline
Trebam php funkciju

Iz ovoga pretpostavlja da vijesti vadiš iz baze prema nekakvom unique ključu, ako je tako, ključ iz url-a mora biti jednak onome iz baze.

 

Dakle, ili ćeš prilikom dodavanja vijesti ključ formatirati odmah pa će ti se svi razmaci zamjeniti sa "-" ili ćeš raditi str_replace(' ', '-', $str) prilikom dohvata vijesti iz baze.Tako je svejedno.

Možda ti je malo brži prvi način gdje ćeš u bazu spremati već formatirani ključ. Dodatna opcija bi ti bila ova (struktura url-a):

 

http://www.mojsite.com/vijesti/1/trebam-php-funkciju/

 

To ti je još sigurniji način dohvata vijesti jer ga dohvaćaš i po id-u i po ključu u tablici.

dr. Mito Korupcija, doktor političkih znanosti.
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Trebam php funkciju

ok, hvala na savjetu

k1.c0
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: Trebam php funkciju
k1c0 kaže...

Sada mi se javio novi problem: Imam file index.php i tamo sam stavio da mi link na vijest bude u ../kategorija/neki-naslov ovo neki naslov sam napravio pomocu $naslov = str_replace(" ", "-", $naslov); funkcije i ali kad pokusam otići na vijest ..sport/Lorem-Ipsum ispisuje mi na ekran Error 404 - Not found , a na .../sport/bbbbb tu mi se prikaze  red iz baze gdje naslov bbbbb. pokusao sam u ospirnije.php napraviti ovo pri vadjenu redova iz baze

$naslov = $_GET['naslov'];

if(strpos($nas, '-')!== false){  //ovo mi je ako naslov ima crticu u sebi da se crtica zamijeni razmakom pa da se odabere pravi naslov iz baze koji nema crtice između riječi
            $naslov = str_replace("-", " ", $naslov);
        }
        elseif (strpos($naslov, "-") == false){ //a ovo mi je ako je naslov bez crtice da bude kako i treba biti, npr. bbbbb
            $naslov = $_GET['naslov'];
        }
       
        $result = mysql_query( "SELECT * FROM vijesti ", $connect);

$result = mysql_query("SELECT * FROM vijesti WHERE naslov='$naslov' ", $connect);

while ($row=mysql_fetch_assoc($result)){

  echo $row['naslov'] . "<br />" ;

  echo $row['sadrzaj'] . "<br />";

  echo $row['datum'] . " " . $row['autor'] . " " . $row['kategorija'];

}Što misliš bi li valjalo da u kod gdje dodajem vijesti(dodaj.php) dodati da se razmak u naslovu mijenja crticom

$naslov = $_POST['naslov'];

$naslov = str_replace(" ", "-" , $naslov);

E ali ovdje imaš dosta grešaka. Gledaj ovako:

prvi dio ti uopće ne treba već samo ovo:

 

$naslov = str_replace= ("-"," ",htmlspecialchars(trim($_GET['naslov']))); 

 

zatim

 

$result = mysql_query( "SELECT * FROM vijesti ", $connect); 

ti ne treba,

 

zatim trebao  ovo bi dodati u dodat.php

$naslov = str_replace(" ", "-" , htmlspecialchars(trim($naslov))); umjesto $naslov = str_replace(" ", "-" , $naslov);

 

i trebao bi staviti u obje uvjet if(isset($_get['naslov'] tj. $_post['naslov'])).

 

E sada malo pojašnjenje.

Ne tebaš stavljati uvjet za funkciju str_replace. Već sama funkcija će zamijeniti "-" sa " " ako je znak nađen. Tako da je taj dio suvišan. 

Što se tiče korištenja trim htmlspecialchars najbolje da pogledaš sam, a stavljaš sve unutar isset() uvjeta jer ne želiš da ti izbaci grešku ako variabla ne postoji.

 

I da još nešto:

if(strpos($nas, '-')!== false) vraća true(istina) ako je nađen "-" unutar $nas, zato je elseif(strpos($naslov, "-") == false) POTPUNO SUVIŠNO (iako je cijeli uvjet suvišan, ali zanemarivši to), jer je else u potpunosti jednaka s elseif(strpos($naslov, "-") == false (ako prvi uvjet nije ostvaren vratiti će false, dakle nije nađeno i ne trebaš to dodatno navoditi).

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice