php variabele in string

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thuron thuron

thuron thuron

19/08/2011 00:20:29
Quote Anchor link
Weet iemand of het mogelijk is om een php variabele naam in een string in een database te gooien, zodat zodra de string opgevraagt wordt, de variabele meteen uit het php script wordt weergegeven. Het gaat in dit geval om een systeem waarin de meeste text op mijn website in de database staat, en via een php functie wordt weergegeven, het is me dus alleen nog niet gelukt met variabelen.
 
PHP hulp

PHP hulp

25/04/2024 13:41:56
 
Write Down

Write Down

19/08/2011 01:17:54
Quote Anchor link
Je wilt dus bv. $string='bla' in de database zetten? Dan kan je is kijken naar eval()

Toevoeging op 19/08/2011 01:18:34:

Overigens is het afgeraden. Waarom zou je dat willen doen?
 
Jacco Brandt

Jacco Brandt

19/08/2011 12:44:21
Quote Anchor link
Zorg dat je zeker weet dat wat in de database goed is. Dit is namelijk een zéér onveilige methode.
 
Fabian M

Fabian M

19/08/2011 13:19:57
Quote Anchor link
Serialisatie:

serialize()
 
Thuron thuron

thuron thuron

19/08/2011 23:32:23
Quote Anchor link
@Write Down: Mocht ik mijn website in de toekomst meertalig willen maken, dan heb ik strings met variabelen in mijn scripts zitten die ik allemaal handmatig zou moeten laten veranderen in plaats van in de database, daarom zoek ik dus een manier om die strings gewoon in de database te kunnen zetten.
Gewijzigd op 19/08/2011 23:32:47 door thuron thuron
 
Write Down

Write Down

20/08/2011 00:00:40
Quote Anchor link
Dat is niet de juiste manier, een juiste manier is een taalsysteem maken.

Wanneer het over een CMS gaat, ben je bijna verplicht een database te gebruiken en dan maak je een veld taal aan, waarin je dan een taalcode zet. De juiste content haal je dan op afhankelijk van de taal die de bezoeker vraagt. (of automatisch)

Als het echter om een minder dynamisch systeem gaat, of om een adminpaneel gaat is het eenvoudiger met taalbestanden te werken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
/* Dit is bijvoorbeeld nederlands.lang */

$lang['index']['welcome'] = 'Welkom!';
$lang['index']['content'] = 'Dit is de startpagina blablabla';

?>


De indeling van de array kan natuurlijk ook anders. Maar ik denk dat je wel slim genoeg bent om dat zelf te bedenken ;-).

Moest je er niet uitkomen, kan je het natuurlijk eens even vragen.
 
Thuron thuron

thuron thuron

21/08/2011 12:33:43
Quote Anchor link
ok, en als ik zo'n taalsysteem zou gaan maken, hoe werkt het dan als ik bijvoorbeeld een string krijg: "Je score tot nu toe is 50." In dit geval is 50 geen standaard maar een variabele die verschilt per gebruiker, hoe zet je dat dan in taalbestand/database
 
Ozzie PHP

Ozzie PHP

21/08/2011 13:07:57
Quote Anchor link
Je kunt toch in je database een tabel met scores bijhouden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
user_id   score
   1        50
   2       120


En dan doe je zoiets als:

echo $text['your_score'] . $score;

En die $text['your_score'] komt dan uit je tekstbestand / database en $score haal je op uit de database.
 
Obelix Idefix

Obelix Idefix

21/08/2011 13:08:55
Quote Anchor link
Die 50 is toch niet afhankelijk van taal-keuze? 50 is in het Engels zelfde als in Duits, Frans en Nederlands. Je zet dan "Je score tot nu toe is" in de database en dan vul je regel aan met de betreffende variabele op het moment dat je de pagina oproept/aanmaakt.
 
Thuron thuron

thuron thuron

21/08/2011 13:43:20
Quote Anchor link
dat is inderdaad mogelijk als de variabele zich aan het begint aan het einde van de zin begeeft, maar wat als deze ergens anders in de zin zit? moet ik dan de 2 delen van de zin apart definiëren?
 
Ozzie PHP

Ozzie PHP

21/08/2011 13:46:40
Quote Anchor link
Ja...

Of je doet het nog iets anders. Op de plek waaar in de vertaling de score moet staan zet jij bijvoorbeeld *score*. Dus:

Je hebt een score van *score* punten.

*score* vervang je dan door de juiste waarde.
 
Thuron thuron

thuron thuron

21/08/2011 13:48:40
Quote Anchor link
door middel van split() bedoel je?
 
Pim -

Pim -

21/08/2011 13:49:23
Quote Anchor link
Je hebt 50 gescoord
You've scored 50

Je hebt dus wel zeker placeholders (oid) nodig. Maar dat kan ook heel makkelijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php vsprintf() ?>
 
Write Down

Write Down

21/08/2011 13:51:05
Quote Anchor link
str_replace('*score*', $database['score'], $lang['score'])
 
Thuron thuron

thuron thuron

21/08/2011 13:52:23
Quote Anchor link
ah! ik ga het maar eens met str_replace proberen, ik laat weten of het gelukt is of niet.
 
Ozzie PHP

Ozzie PHP

21/08/2011 13:52:25
Quote Anchor link
Thuron thuron op 21/08/2011 13:48:40:
door middel van split() bedoel je?

Nee, via http://nl3.php.net/manual/en/function.str-replace.php

Zie ook opmerking hierboven.
 
Thuron thuron

thuron thuron

21/08/2011 14:41:44
Quote Anchor link
ik heb het nu voor elkaar met str_replace en het werkt perfect!!! heel hartelijk bedankt voor alle hulp allemaal!
 
Ozzie PHP

Ozzie PHP

21/08/2011 14:48:41
Quote Anchor link
mooi zo... succes er mee!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.