Her har jeg det til at replace %custom=variabel% med ?variabel=ny-tekst-istedet
men er der en bedre måde at gøre dette på? Samtidig har jeg også et problem med når %custom= står som det første i $input, lige så snart der kommer et tegn foran, så virker det efter hensigten igen.
"variabel" er bruger defineret, og kan derfor være hvad som helst.
Det er også derfor at jeg leder efter %custom= og så finder hvornår der kommer et % igen for at afslutte den, og så kigger hvad der er imellem %custom= og %. På den måde ved jeg så hvad jeg skal kigge efter med $_GET[];
Kan være det er lidt svært at gennemskue ud fra koden hvad det faktisk er jeg gør med det, men netop derfor jeg gerne ville have det optimeret til noget som gjorde det mere overskueligt og meget gerne få det til at fungere bedre. Det fungerer som det er pt, men ikke når %custom= er det første i $input
$format = array(); // Dette bygger array'et ud fra hvilket $_GET[$key] du kan få fat i fra linket. foreach($_GET as $key => $value) { $format_key = "%custom=" . $key . "%"; $format[$key] = $value; }
function formatText(&$text,$change) { $text = strtr($text, $change); return $text; }
Men at vende den om så den leder teksten igennem først og derefter kigger på $_GET, så kan det nok ikke gøres meget nemmere end det du har gjort. Beklager jeg ikke har været helt så god til at hjælpe.
Jah du bygger dine replace's på de ting du finder i dit link og ikke den anden vej rundt. Du søger dit link igennem for variabler og replacer ud fra det, hvor at du gav udtryk for at du ville søge teksten for variabler der skulle hentes. Men det er en lige så god måde at gøre det på.
Hvordan det skulle gøres er egentligt lidt lige meget, bare det rigtige sker i sidste ende, og det gør det med det sidste jeg forsøgte.
Ved så bare ikke om det er en dum måde at gøre det på, der er jo også en del af de $_GET som ikke har noget med det at gøre, selv om det nok betyder så lidt at man ikke opdager det.
Der er kommet forslag til løsninger, så det vil jeg ikke brug tid på. Men du skrev at du havde et problem med hvis "%custom=" stod i starten af $input - så virker det ikke. Det skyldes at du tester om resultatet af strpos() er <> 0. Hvis "%custom=" står i starten, så vil strpos() returnere 0; hvis "%custom=" slet ikke findes, så returnerer strpos() NULL. Ingen af delene er <> 0 sådan som du tester det.
"Det skyldes at du tester om resultatet af strpos() er <> 0." Det gør jeg da ikke?
Jeg tester da om strpos() er > -1, altså 0 eller over. Så hvis den returnerede 0, så ville den da stadig blive godkendt.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.