[$variable] men skal se sådan ud som en string ['toppe']
Hej
Jeg har et problem med at få en feks.
her virker det da der hardcodet feks 'tag' $query_string = [ 'tag' => ['tag'], 'kn' => ['koen'], 'varer_kategori' => ['productType'] ];
men skal se sådan ud når jeg prøver at hente variablerne ind. $query_string = [ 'tag' => [$tag], 'kn' => [$koen], 'varer_kategori' => [$productType] ];
Håber det giver mening. Jeg er simpelhen nød til at kunne få det til at se sådan ud ['tag'] selvom det er en variable.
Array $query_string bliver oprettet med de værdier som variabler har - der bliver ikke gemt en reference til variablerne som kan 'hentes' $tag="before"; $query_string = [ 'tag' => [$tag] ]; var_dump($query_string['tag']); $tag="after"; var_dump($query_string['tag']); $query_string = [ 'tag' => [$tag] ]; var_dump($query_string['tag']);
Men jeg forstår godt hvad du vil og det kan sikkert sagtens laves. Måske noget at $query_string hentes fra en function der har adgang til $tag mm.
Synes godt om
Slettet bruger
20. oktober 2021 - 15:28#3
f.eks i en funktion run()
class ... { private $tag; function queryString() { return ['tag' => [$this->tag]]; } function run($args) { $this->tag="before"; var_dump($this->queryString()); $this->tag="after"; var_dump($this->queryString()); } }
print_r, var_dump og echo er bare for at teste at koden virker - din endelige kode skal næppe udskrive den info til slutbrugerne
Synes godt om
Slettet bruger
20. oktober 2021 - 17:09#8
Det er bare for at kigge - den fase i udviklingen hvor man undersøger hvad der sker. En streng kan ligeså godt bare udskrives med echo, men hvis man vil se mere sammensatte ting er echo ikke så god som f.eks var_dump. Jeg bruger sjældent selv var_dump - 8 bogstaver har jeg erstattet med et i: function p(...$ma) { foreach($ma as $m) { echo ($m === false ? "false\n" : ($m === true ? "true\n" : ($m === null ? "null\n" : ( is_array($m) ? var_export($m,true)."\n" : $m."\n")))); } }
Det er super skulle lige være sikker på jeg om jeg skulle brug det for det ville komme til at virke. Bruger også rigtig meget print_r og var_dump til at se om der er noget array og så hvordan opbygning er af informationer. Og hvad jeg skal skrive for at trække den rigtig information ud.
Så har jeg været igang. Nu kan den hente fra class hvis det står statisk private variables class url_function { private $tag; private $koen; private $productType;
Jeg kan hente sådan nu te $tag = 'teen'; private $koen = 'm'; private $productType = 't-shirts';
Det jeg har problemer med er at få de variabler til at virke det er som om den ikke vil acceptere variablerne med expressions.
Kan det være min variable med implode den ikke kan finde ud af...
De ligger bare der så i kan se det. Har prøvet med __construct og så lave det sådan:
public function __construct { $umame_url = $_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; $arr = explode('/', $umame_url); $this->tag = implode('', array_slice($arr, 3, 1)); $this->koen = implode('', array_slice($arr, 4, 1)); $this->productType = implode('', array_slice($arr, 5, 1)); } Men det virkede heller ikke som det skulle så kan den ikke finde ud af det.
Det er til et filtersystem i wordpress som har nogle functioner så man har mulighed for at lave ændringer, i at hvad den skal prevælge.
Jeg bruger $umame_url = $_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]; $arr = explode('/', $umame_url); $this->tag = implode('', array_slice($arr, 3, 1)); $this->koen = implode('', array_slice($arr, 4, 1)); $this->productType = implode('', array_slice($arr, 5, 1)); Til at splitte url op så jeg har mulighed for at lave permalink, og bruge det permalink til at filtere på forhånd når brugeren trykker på det link. Så deler den kan dele alle / op så den kan hente i permalinket som feks. site.dk/shop/teen/f/toppe Den del virker. men filteret har brug for at vide hvad den søger i koden så der bliver prevalgt og det kunne den med:
Den statiske måde virker men det er dur ikke når vi har så mange kategorier, filteret har mulighed for at filtere på det plan, men det på nuværende tidspunkt kan jeg ikke at lave det mere dynamisk. og det er det jeg forsøger på. Måske er der en bedre måde at gøre det på i for virker bedre.
i forhold til at hente filter tekst ned.
Synes godt om
Slettet bruger
21. oktober 2021 - 13:49#13
Hej Morten
Jeg kan ikke helt følge konsepterne - kender heller ikke til wordpress
Når jeg ser ikke gyldig php kode slår tanken mig: Kan du se errors, warning og notices.
Det kan du sikkert - du har jo postet flere omfattende php spørgsmål.
Men alligevel: ved fjernelse af udkommentering i følgende php 7.3 skal de udløses.
Ja har en del spørgsmål men nyder virkelig også at problem løse. Og kode i php :-) Men når jeg kommer til kort spørger jeg her.
Jeg ser ikke nogen fejl men kan altid slå debug til ser bare ikke noget. Jeg vil i hvert fald prøve det du har skrevet. Se om det kan komme nogle errors som jeg kan bruge til noget.
Det jeg koder er i et filter plugin hvor man har mulighed for at redigere lidt fra sin function fil i sin tema. Og det jeg finder på den side jeg har pluginet fra giver nogle udviklings muligheder. Det er gridbuilder plugin. Følger de eksempler de giver. Og så tager jeg den derfra og bygger videre. Dog forstår jeg ikke hvorfor en variable ikke kan bruges i den forbindelse med filteret. Er det noget mit kald i url eller er det implode eller array_slice den ikke acceptere. For når jeg skriver det direkte virker det men desværre er det for omfattende at lave if og elseif på alle filter. Håber det giver mere mening og vil lige se om jeg kan finde nogle fejl frem.
Undskyld sent svar det er på en online server som jeg selv køre hjemme. du må meget gerne få en adgang. jeg sender lige info i privatbesked. kan du ssh console en ubuntu server? For kan bare kopiere stien direkte til filen. Ellers laver jeg bare adgang til dig på ftp.
Synes godt om
Slettet bruger
22. oktober 2021 - 18:29#17
Grunden til jeg spurgte var at jeg har en tilføjelse til #13 som afhænger af om man har adgang til php.ini
Jeg har følgende indstillinger i php.ini vedr. fejl meddelelser
display_errors = On display_startup_errors = On error_reporting = E_ALL html_errors = On log_errors = On
I Ubuntu /etc/php/<php version>/apache2/php.ini
Har man ikke mulighed for at ændre i php.ini antyder følgende at det kan gøres i php scriptet
Jeg vil afstår fra at redigere den Morten, da det jo er en lille ting du selv kan, og fordi jeg ikke vil gå ind i andre ting. 'sudo systemctl restart apache2' derefter. Mvh Benny
Fedt det vil jeg gøre takker :-) Det kan være den kan vise mig noget mere.
Med venlig hilsen Morten
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.