[PHP] Content in variabele vervangen door nieuwe inhoud *

Pagina: 1
Acties:
  • 458 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • broodjekipburger
  • Registratie: Maart 2002
  • Laatst online: 14:24
De volgende korte vraag is wellicht buitengewoon eenvoudig voor jullie techneuten, maar ik ben er zelf niet uitgekomen. Alle hulp wordt zeer gewaardeerd.

Uitgangspunt:
- Een stuk content in de variabele $data

Doel:
- Een aantal variabelen in $data vervangen

Voorbeeld:
- '?afdeling=1&pagina=1' vervangen door 'dit'
- '?afdeling= 1 &pagina=2' vervangen door 'enditook'
- '?afdeling= 2 &pagina=1' vervangen door 'weerietsanders'.
Noot: In een database heb ik per afdeling een overzicht met welke paginaid bij welke paginanaam hoort.

Actie:
Ik wil de variabele $data loopen en alle paginaid’s vervangen door de betreffende paginanaam.

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 20:15

Onbekend

...

Het klinkt alsof je geen controle hebt op '?afdeling=1&pagina=1'.
Gebruik je een standaard tool zoals Joomla o.i.d.?

Verder hoort dit topic in PRG denk ik. :)

[ Voor 0% gewijzigd door Onbekend op 18-11-2007 22:07 . Reden: Typfout ]

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Dan zeg je toch gewoon $data = $paginanaam en dat parse je. Of denk ik te makkelijk?

Acties:
  • 0 Henk 'm!

  • broodjekipburger
  • Registratie: Maart 2002
  • Laatst online: 14:24
Onbekend schreef op zondag 18 november 2007 @ 17:35:
Het klinkt alsof je geen controle hebt op '?afdeling=1&pagina=1'.
Gebruik je een standaard tool zoals Joomla o.i.d.?

Verdor hoort dit topic in PRG denk ik. :)
Had ik inderdaad misschien ergens anders moeten plaatsen; mijn fout.
Verder heb ik inderdaad geen invloed op de content in $data. Anders was ik er zelf nog wel uitgekomen ;)

[ Voor 44% gewijzigd door broodjekipburger op 18-11-2007 17:38 ]


Acties:
  • 0 Henk 'm!

  • broodjekipburger
  • Registratie: Maart 2002
  • Laatst online: 14:24
Terw_Dan schreef op zondag 18 november 2007 @ 17:36:
Dan zeg je toch gewoon $data = $paginanaam en dat parse je. Of denk ik te makkelijk?
Dit begrijp ik niet.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Aangenomen dat het over PHP gaat (je noemt namelijk geen taal; maar $data doet me dat vermoeden) hoort dit topic in PRG. Zie ook Waar hoort mijn topic?

WEB >> PRG

Verder mis ik een beetje wat je zelf al geprobeerd hebt. Of wat je gezocht/gevonden hebt en wat daar niet aan werkte eventueel. Dat is hier namelijk wel de bedoeling / gangbaar. Zie daarvoor Programming Beleid Quickstart. Dan lees je meteen ook dat we graag tussen [ en ] de taal zien in de topictitle. Die heb ik nu even voor je aangevuld.

Heb je al eens gekeken naar str_replace en/of preg_replace?

Tot slot: Je topic met 2 reacties achter elkaar omhoog schoppen is hier ook not-done (zie topickick binnen 24 uur). Gebruik voortaan, als je nog iets wil toevoegen aan je vorige post, de edit knop (Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif) dus liever ;)

[ Voor 46% gewijzigd door RobIII op 18-11-2007 17:43 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Zal ik hem dan maar even verplaatsen ;)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
8)7 Ik word gek 7(8)7

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Toolskyn
  • Registratie: Mei 2004
  • Laatst online: 22-06 11:01

Toolskyn

€ 500,-

Je hebt het over het vervangen van concent uit een variabele, je hebt het over data die je uit een database haalt en je hebt het daarnaast nog eens over urls (query strings). Wat is nu eigenlijk waar het probleem zit? En hoe is de situatie op het moment dat het niet verder lukt (concrete code, wat voor variabelen zijn er, wat staat er dan in?)

Zoals ik het nu begrijp heb je een database waarin je voor elke pagina in een bepaalde afdeling de paginanaam hebt. Je wil uit de query string (via $_GET) je paginanummer en afdelingsnummer halen, een query op de database loslaten om de goede pagina te krijgen en vervolgens de paginanaam vervangen van een een stukje in de string $data. Ik denk dat je in dat geval voor het vervangen str_replace moet gebruiken.

Als ik het goed heb begrepen zijn het alleen allemaal wel vrij basisdingen wat je hier moet doen. Google geeft de antwoorden: Query string, database en tekst vervangen.

gewooniets.nl


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Er vanuit gaande dat het inderdaad om een GET request icm PHP gaat vraag ik me af waar jullie zo moelijk over doen?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$data = '?afdeling=1&data=1';     // First, we get our data string.
parse_string($data, $variables);  // Next, we parse it to retrieve its variables

$pagina = (int) $variables['afdeling']; // Convert them to appropriate type and assign them:
$data   = (int) $variables['data'];

// Perform checks - you'd probably want some smarter algorithm here than a series of if-loops.
if($pagina == 1 && $data == 1)
  $data = 'dit';

if($pagina == 1 && $data == 2)
  $data = 'enditook';

// etc


Geen idee echter of dit precies is wat je bedoelt, je vraag is ambigu at best. Punt blijft hetzelfde, als je enkel variabelen uit een URL string wilt hebben moet je parse_str gebruik en niet zelf gaan lopen klieren met preg_replace / str_replace etc. :) Mocht $data onderdeel zijn van een langere string en je alleen dat gedeelte veranderen kun je natuurlijk wel prima str_ireplace oid gebruiken om vervolgens de replace zelf uit te voeren, maar ik vraag me af waar je hiermee naartoe wilt.

[ Voor 25% gewijzigd door FragFrog op 19-11-2007 00:48 ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • Equator
  • Registratie: April 2001
  • Laatst online: 09-09 15:29

Equator

Crew Council

#whisky #barista

Volgens mij wil de topicstarter niets anders dan de text in $data bewerken met str_replace()

Het mooiste is om dan te werken met een stack-based parser (staan volgens mij enkele voorbeelden hier op GoT) maar als het bij 3 te vervangen dingen blijft is het niet echt nodig.. :)

Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Equator schreef op maandag 19 november 2007 @ 11:23:
Het mooiste is om dan te werken met een stack-based parser (staan volgens mij enkele voorbeelden hier op GoT) maar als het bij 3 te vervangen dingen blijft is het niet echt nodig.. :)
Het is een URL string en hij wil 1 bepaalde 'actie' ondernemen aan de hand van de variabelen daarin. Lijkt mij typisch een gevalletje CMS waarin elke pagina een afdeling- en paginanummer hebben en met (unieke) naam in de backoffice komen - tenminste, dat is hoe ik en volgens mij ook Toolskyn het interpreteren :) Een stack-based parser is dan equivalent aan koffiebonen malen met een 50 ton stoomwals :+

* FragFrog blijft erbij dat de TS wat meer context moet geven :)

[ Voor 10% gewijzigd door FragFrog op 19-11-2007 12:16 ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Of wil je soms URLs in je $data vervangen door search-engine friendly URLs?

In dat geval moet je ofwel de database in voor iedere URL in je $data variabele, of je vraagt in een keer alle verwijzingen op, zoekt dan in $data, en vervangt de URLs middels een lookup in je "cache".

Als je inderdaad URLs uit $data wilt filteren & vervangen, raad ik je aan eens te kijken naar preg_match en preg_replace. Indien je niet bekend bent met regular expressions kun je info vinden op php.net en regular-expressions.info
offtopic:
Daar dacht ik aan na het bekijken van de link in je signature. bah bah bah wat een zoekmachine vervuiling is dat zeg!

  • broodjekipburger
  • Registratie: Maart 2002
  • Laatst online: 14:24
B-Man schreef op maandag 19 november 2007 @ 16:25:
Of wil je soms URLs in je $data vervangen door search-engine friendly URLs?

In dat geval moet je ofwel de database in voor iedere URL in je $data variabele, of je vraagt in een keer alle verwijzingen op, zoekt dan in $data, en vervangt de URLs middels een lookup in je "cache".

Als je inderdaad URLs uit $data wilt filteren & vervangen, raad ik je aan eens te kijken naar preg_match en preg_replace. Indien je niet bekend bent met regular expressions kun je info vinden op php.net en regular-expressions.info
Je hebt helemaal gelijk, B-Man. Het is me gelukt op deze wijze e.e.a. te realiseren.
Pagina: 1