Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ereg_replace ???
Forum PHP.pl > Forum > PHP
kabukiman
Nadszedł czas na nauczenie się czegoś bardziej skompikowanego biggrin.gif Powiedzmy, że mam księgę gości i chcę, aby przy wyświetlaniu buźki (znaczki smile.gif winksmiley.jpg itp.) zamieniały się na odpowiednie gify. Czy powinienem użyć do tego funkcji ereg_replace, gdyż nie bardzo działa.

Wpis zawarty jest w zmiennej $tresc, próbowałem tak:

echo ereg_replace (":P","<img src="jezyk.gif">", $tresc");

i nie zamienia.

Co robię źle ?
castor
Cytat
Czy powinienem użyć do tego funkcji ereg_replace, gdyż nie bardzo działa.

zdecydowanie NIE...
...uzyj str_replace.. anie eregi bo nie uzywasz tu zadnego wyrazenia regularnego ..wiec str_replace bedzie szybsze i nie obciazy tak parsera smile.gif
Cytat
Wpis zawarty jest w zmiennej $tresc, próbowałem tak:
echo ereg_replace (":P","<img src="jezyk.gif">", $tresc");

i nie zamienia.
Co robię źle ?

na koncu zaraz po $tresc masz " a nie powinno go tam byc:)

zrob tak:
Kod
echo str_replace(": )","<img src="jezyk.gif">",$tresc);
kabukiman
Kurczę, aż tak szybkiej odpowiedzi się nie spodziewałem tongue.gif

A teraz jak zrobić dużo podmian w jednej linijce, tzn


Kod
echo str_replace(": )","<img src="smile.gif">",$tresc);


i w tym samym momencie

Kod
echo str_replace(":(","<img src="sad.gif">",$tresc);


btw. czy to nie spowoduje drastycznego spadku szybkości działania skryptu?
castor
nawet tego nie poczujesz smile.gif
Kod
function wymienSmiles($text){

   $smiles[0]=": (";

   $smiles[1]=": )";

   $smiles[2]=": D";



   $linki[0]='<img src="smiles.gif">';

   $linki[1]='<img src="smiles.gif">';

   $linki[2]='<img src="smiles.gif">';



    for($i=0;$i<count($smiles);$i++;){

       $text=str_replace($smiles[$i],$linki[$i],$text);

    }

     returne $text;

}

a teraz:
Kod
echo wymienSmiles($text);


oczywiscie tablice z linkami i smilesami musisz se uzupelnic :wink:
kabukiman
taaaaa...

dzięki, działa, działa!!!

tylko musiałem jeden parse error usunąć...

ale jestem niewymownie wdzięczny, męczyłem się z tym od kilku dni.
castor
no tak return a nie returne :wink:
kryr
[quote="castor"]nawet tego nie poczujesz smile.gif
Kod
function wymienSmiles($text){

   $smiles[0]=": (";

   $smiles[1]=": )";

   $smiles[2]=": D";



   $linki[0]='<img src="smiles.gif">';

   $linki[1]='<img src="smiles.gif">';

   $linki[2]='<img src="smiles.gif">';



    for($i=0;$i<count($smiles);$i++;){

       $text=str_replace($smiles[$i],$linki[$i],$text);

    }

     returne $text;

}

[quote]
a nie lepiej uzyc tablicy ascocjacyjnej? smile.gif
castor
Cytat
a nie lepiej uzyc tablicy ascocjacyjnej? smile.gif


kazdy robi jak lubi :wink:

zreszta nie powinno sie uzywac specjalnych znakow jak:;,. itd w polach okreslajacych indexy :wink:
GeoS
No wlasnie - tablice. Ja polecam do tego celu bardzo przyjemna funkcje strtr() smile.gif
castor
a ty myslisz ze wtle to w czym sa te dane przechowywane?

napisz to z strtr() i zobaczymy jakie to przejrzyste bedzie :wink:

zreszta ta fuknkcja nadaje sie do wymiany pojedynczych znakow a jesli chcesz wymieniac jakies CiagiZnakow to tez musisz jako parametr podac tablica z parami (asociacyina) :wink:
GeoS
Castor - co sie tak od razu rzucasz :?: Troche luzu.

Zgadza sie, ze twoj kod jest az do bulu czytelny, tylko cechuje sie duza (zbyteczna :!: ) objetoscia :!: To nie moj problem, ze ktos sie bierze za php i nie jest sobie w stanie w czytelny sposob zapisac takiej tablicy.

Moje rozwiazanie jest szybsze z tego wzgledu, ze nie odpalam petli do tworzenia i zamieniania tresci, tylko ta tablice mam od razu.

PS Chyba nie stanowi problemu (i nie zmniejsza czytelnosci) zapis tablicy, np. w taki sposob:
Kod
$sign = array("+"=>'',

"%22"=>'',

"%23"=>'',

"%24"=>'',

...);

I w czym problem :?:
castor
Cytat
Castor - co sie tak od razu rzucasz :?: Troche luzu.

8)

Cytat
Zgadza sie, ze twoj kod jest az do bulu czytelny, tylko cechuje sie duza (zbyteczna :!: ) objetoscia :!: To nie moj problem, ze ktos sie bierze za php i nie jest sobie w stanie w czytelny sposob zapisac takiej tablicy.

:?:
Cytat
Moje rozwiazanie jest szybsze z tego wzgledu, ze nie odpalam petli do tworzenia i zamieniania tresci, tylko ta tablice mam od razu.


Ooo tak... a co z nia zrobisz jesli moge zaopytac?...
podasz jako argument do strtr() ...tak?..
...to moze wyjasnij mi jak strtr() przeleci HashMape bez petli questionmark.gifquestionmark.gif

"czego ty nie robisz nie znaczy ze nie jest robione"

Cytat
PS Chyba nie stanowi problemu (i nie zmniejsza czytelnosci) zapis tablicy, np. w taki sposob:
Kod
$sign = array("+"=>'',

"%22"=>'',

"%23"=>'',

"%24"=>'',

...);


I w czym problem :?:
´
ty mi powiedz :wink:
DYRA
hi
sorki za "odswierzenie" tematu, ale niemoge sobie poradzic sad.gif
jak do tego kodu dodac zamiane znakow na obrazki ( $tekst = str_replace(":)","<img SRC=smile.gif",$ekst); )
kurde nieumiem sobie z tym poradzic
Cytat
<?
 $kiedy=date("d.m.Y");

if((!$wpis)&&(!$who)) {
 echo "<p>Prosze wpisać dane snitch.gif</p>";
 exit();
}

if(!$wpis) {
 echo "<p>Wpisz wiadomosc !! tongue.gif</p>";
 exit();
}

if(!$who) {
 echo "<p>Podpisz sie pod tym co piszesz snitch.gif</p>";
 exit();
}
if($wpis!="") {
   $plik="kg/ksiega.txt";
    if(file_exists($plik))  
   {
    $wpis="<p style="color:#A9A9A9;font-size:10pt; font-family:verdana, tahoma,helvetica;"><small><i>$kiedy</i></small><br>&nbsp;$wpis<br><a HREF="mailto:$mail"><b>/$who</b></a> <small>($REMOTE_ADDR)</small><br><A HREF="$www"><u>$www</u></A></p>";
    $fid=fopen($plik,"r+");
    $wpis=$wpis. fread($fid,filesize($plik));
    rewind($fid);
    fputs($fid,$wpis);
    fclose($fid);
   }
   else  
   {
    $fid=fopen($plik,"w");
    $wpis="<p style="color:#A9A9A9;font-size:10pt; font-family:verdana, tahoma,helvetica;"><small><i>$kiedy</i></small><br>&nbsp;$wpis<br><a HREF="mailto:$mail"><b>/$who</b></a> <small>($REMOTE_ADDR)</small><br><A HREF="$www"><u>$www</u></A></p>";
    fputs($fid,$wpis);
    fclose($fid);
    }
 echo "<p style="font-size: 10pt; color:#A9A9A9;">Thx za wpis snitch.gif";
 echo "<p><a href="main.php">Back to main page.</a>";
}
?>

jest to prosta ksiega gosic smile.gif
z gory thx
pozdro 4 all
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.