Problem z new line
5 naročnikov
5 naročnikov
Pišem eno skripto, pa me zanima zakaj, mi ne vrže rezultatov v novo vrtico.. Poskusil, sem tudi z nl2br, pa je efekt isit...
koda:
}
pregmatchall($regex, $text, $matches);
return $matches[$i]"/n";
11 odgovorov
No, pa da se malo bolj pojasnim, zakaj tvoje vprasanje nima nobenega smisla
preg_match_all($regex, $text, $matches);
return $matches[$i]."\n";
Da zadevo razclenimo, pregmatchall() poisce v stringu $text vse, kar matcha expression iz $regex in zadetke nafila v obliki multi-dimensional arraya v spremenljivko $matches.
Do tukaj super, pri vprasanju "zakaj mi ne vrže rezultatov v novo vrstico" se pa malo zaplete:
V $matches[$i] je za katerikoli veljaven indeks v arrayu $matches spet array. Naslednja koda:
return $matches[$i]."\n";
Bo vrnila naslednji string: "Array\n"
Do problema prikazovanja rezultatov v vecih vrsticah sploh se nismo prisli, razen, ce si dejansko zelel vprasat, 'zakaj mi funkcija vrne string "Array\n", namesto da bi mi, kot zelim, v stringu vrnila seznam zadetkov locenih z newline?', kar pa nisi.
Ce si zelel vprasati to, potem bi bila resitev tvojega problema naslednja:
return implode('<br />', $matches[$i]);
(ce zelis HTML newline)
ali
return implode("\n", $matches[$i]);
(ce zelis plain text newline)
Bottom line vsega tega mojega pisanja je, da naslednjic ob vprasanju predstavi cel primer, kaksne podatke filas notri in kaj bi rad dobil ven, ce ob tem seveda predstavis problematicen delcek kode in ob tem se poves vrednosti spremenljivk, ki se v tej kodi nahajajo, ti bo pa mogoce dejansko lahko kdo pomagal.