Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmiana enterów w cudzysłowiach
Forum PHP.pl > Forum > PHP
php programmer
Hej,
meczę się już z tym pół godziny,
Jak zamienić entery na przykłąd na '<br />' ,
ale tylko takie, które znajdują się w cudzysłowiach

na przykład z
Cytat
raz dwa \n trzy "cztery \n pięć \n " sześć \n

aby powstało
Cytat
raz dwa \n trzy "cztery <br /> pięć <br /> " sześć \n
Mordoran
moze explode" title="Zobacz w manualu PHP" target="_manual() po cudzyslowiu ( " ) i w parzystych indeksach tabeli zmieniac nl2br" title="Zobacz w manualu PHP" target="_manual()
NuLL
W moze by tak preg_replace" title="Zobacz w manualu PHP" target="_manual ?
php programmer
Cytat(NuLL @ 24.09.2007, 12:48:11 ) *



Co to za odpowiedź, problem tkwi że żaden pattern mi nie działa,
aczkolwiek myślę, że @Mordoran ma fajny pomysł
NuLL
Cytat
ma fajny pomysł

i zaj.....e wydajny... tiredsmiley.gif
php programmer
Ale przynajmniej podał konkretne rozwiązanie, które działa i się nie wymądrza,
a rzucać nazwami funkcji to każdy umie.
Mordoran
Wydajny czy nie, to kto wie, ale tak na szybko to wymyslilem, jak jedna rzecz nie wychodzi to zawsze mozna z 2 strony podejsc do zagadnienia.
NuLL
Cytat
rzucać nazwami funkcji to każdy umie.
Oczekujesz gotowego rozwiazania leniu ? na to nie licz aaevil.gif

===
EDIT : Wez pod uwage ze ja o gotowca nie prosilem - wystarczylaby mi wskazowka. Pozatym forum nie sluzy do dawania sobie gotowcow a do dyskusji.
php programmer
Weź ty mnie nie lecz, to po co w ogóle tu wchodzisz,
chyba żeby sobie posty nabijać głupimi gadkami,
jak pamiętam to niedawno podałem ci gotowe rozwiąznie
na które nie mogłeś znaleźć rozwiązania,
ale jakoś siebie to nie nazywasz leniem

http://forum.php.pl/index.php?showtopic=74...mp;hl=strtotime

Cytat
EDIT : Wez pod uwage ze ja o gotowca nie prosilem - wystarczylaby mi wskazowka. Pozatym forum nie sluzy do dawania sobie gotowcow a do dyskusji.


czyli jak bym rzucił strtotime" title="Zobacz w manualu PHP" target="_manual
to by była wskazówka i już na pewno byś się domyślił co dalej zrobić [ironia]
michal74
Najprosciej mozna chyba zrobic tak:

  1. <?php
  2.  
  3. $st_temp = "to jest tekst\n" .
  4.  "w kilku liniach,\n" .
  5.  "ooo, nawet w trzech!";
  6.  
  7. $st_temp = ereg_replace ("(.)(\n)", "1<br />", $st_temp);
  8.  
  9. print ($st_temp);
  10.  
  11. ?>


no ale jak bedzie kolo siebie wiecej /n/n to juz nie zadziala...

pozdrawiam
zimi
najprostszym i chyba najczasochłonniejszym (jeśli chodzi o pisanie) rozwiązaniem będzie przelecenie po stringu i jeśli minąłeś nieparzystą ilość cudzysłowów zamiana \n na <br /> a jeśli parzystą to brak tej zamiany
podobnie z explode jak już zasugerowano, zamieniać co drugi element tablicy
co do wydajności to ta kwestia w tym przypadku jest niemal absurdalna, trzeba by chyba gigabajty przerabiać żeby była wyraźna różnica czasu, operacje na stringach są tak krótkie, że szkoda gadać
jeśli chodzi o wyrażenia regularne (to one przecież też szybkie nie są) to obawiam się że wzorzec będzie dość skomplikowany (tym bardziej będzie to wolny sposóB), postaram się przypomnieć co nieco, te regexp-y to z głowy wypadają że szok :/, niemal na pewno trzeba będzie użyć asercji...

PS. ja bym chyba wybrał explode moim zdaniem bardzo zmyślne i krótkie rozwiązanie... i będzie na pewno działać
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.