Vervang woorden lijst
Ik ben bezig met een weerpagina, maar de tekst die ik aangeleverd krijg is engels. Nu heb ik een script ontworpen die ervoor zorgt dat tekst wordt veranderd in het nederlands.
Ik wil ze niet allemaal apart doen dus ik wil het volgende:
als je pagina aanvraagd met parameter, dat hij die parameter gaat veranderen: parameter is: id=NLXX0014 -> vertaal.php?id=NLXX0014
Alleen hij pakt niet nlxx0014.
Kan het ook zonder lijst (zou het fijnst zijn)
Alvast bedankt,
Gewijzigd op 01/01/1970 01:00:00 door AstroVersum
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$search = array ('rain', 'Snow Showers', 'Sunny', 'Partly Cloudy', 'Mostly Clear', 'Cloudy', 'Thursday');
$replace = array ('Regen', 'Sneeuwbuien', 'Zonnig', 'Opklaringen', 'Overwegend helder', 'Bewolkt', 'Donderdag');
$txt = str_replace ($search, $replace, $txt);
?>
$search = array ('rain', 'Snow Showers', 'Sunny', 'Partly Cloudy', 'Mostly Clear', 'Cloudy', 'Thursday');
$replace = array ('Regen', 'Sneeuwbuien', 'Zonnig', 'Opklaringen', 'Overwegend helder', 'Bewolkt', 'Donderdag');
$txt = str_replace ($search, $replace, $txt);
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$vertaal = array(
'rain' => 'Regen',
'Snow Showers' => 'Sneeuwbuien',
'Sunny' => 'Zonnig',
'Partly Cloudy' => 'Opklaringen',
'Mostly Clear' => 'Overwegend helder',
'Cloudy' => 'Bewolkt',
'Thursday' => 'Donderdag',
);
$txt = str_replace ( array_keys( $vertaal ), array_values( $vertaal ), $txt);
?>
$vertaal = array(
'rain' => 'Regen',
'Snow Showers' => 'Sneeuwbuien',
'Sunny' => 'Zonnig',
'Partly Cloudy' => 'Opklaringen',
'Mostly Clear' => 'Overwegend helder',
'Cloudy' => 'Bewolkt',
'Thursday' => 'Donderdag',
);
$txt = str_replace ( array_keys( $vertaal ), array_values( $vertaal ), $txt);
?>
@ Niels; dat is juist hetzelfde als Jan doet. Enige verschil is misschien dat het wat gemakkelijker leest ;-) !
Ja, maar wat natuurlijk wel handig is, is dat je nu je Engelse en je Nederlandse woorden bij elkaar hebt, wat de kans op fouten verkleint. Ik vind hem zo gek nog niet.
Jan - Ponzi: 0-1. Je hebt wel een punt.
@ Ponzi: nou, ik heb 0 zo te zien ;-)
Het moet dus weldegelijk Jan - Ponzi: 1-0 zijn :-) !
Edit:
Of is het ondertussen al 2-0, met zo'n fout... tricky, tricky.
Gewijzigd op 01/01/1970 01:00:00 door Ponzi
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0014');
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0011');
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0010');
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0017');
?>
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0014');
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0011');
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0010');
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0017');
?>
waarom $text altijd overlappen?
moet dit niet :
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0014');
$text .= file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0011');
$text .= file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0010');
$text .= file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0017');
?>
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0014');
$text .= file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0011');
$text .= file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0010');
$text .= file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0017');
?>
??
Gewijzigd op 01/01/1970 01:00:00 door Dizzy
Tsja, of gewoon dit:
Code (php)
1
2
3
2
3
<?php
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0017');
?>
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0017');
?>
Want daar komt het toch op neer...
Op jou manier overschrijf je $text aan het eind toch nog...
Ik wil de pagina die vertaald moet worden in file get contents krijgen. Alleen dat ondersteund geen phpscripts, dus ik moet pagina gebruiken die al omgezet is.
Gewijzigd op 01/01/1970 01:00:00 door AstroVersum
PHP Newbie schreef op 15.04.2007 12:39:
@Dizzy,
Tsja, of gewoon dit:
Want daar komt het toch op neer...
Op jou manier overschrijf je $text aan het eind toch nog...
Tsja, of gewoon dit:
Code (php)
1
2
3
2
3
<?php
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0017');
?>
$text = file_get_contents('http://www.astroversum.nl/overige/weer.html?id=NLXX0017');
?>
Want daar komt het toch op neer...
Op jou manier overschrijf je $text aan het eind toch nog...
srry was een typo! ;) bij de laatste $text moet het natuurlijk ook .= zijn :)
AstroVersum schreef op 15.04.2007 13:13:
Oke.. geen bruikbaar iets tegengekomen. Misschien is mijn probleem niet duidelijk:
Ik wil de pagina die vertaald moet worden in file get contents krijgen. Alleen dat ondersteund geen phpscripts, dus ik moet pagina gebruiken die al omgezet is.
Nu wil ik als ik in de url aanroep
vertaal.php?id=NLXX0014
bij file get contents http://www.astroversum.nl/overige/weer.html?id=NLXX0014 staat
Ik wil de pagina die vertaald moet worden in file get contents krijgen. Alleen dat ondersteund geen phpscripts, dus ik moet pagina gebruiken die al omgezet is.
Nu wil ik als ik in de url aanroep
vertaal.php?id=NLXX0014
bij file get contents http://www.astroversum.nl/overige/weer.html?id=NLXX0014 staat
Ik vind het nog steeds niet helder uitgelegd. Het zou al schelen als je wat langer rond bleef hangen om het probleem helemaal helder te krijgen.
Nu wil ik als ik in de url aanroep
Als ik dat aanroep wil ik dat in het script
komt te staan.
In het bovenstaande voorbeeld werkt het niet of ik moet voor elke plaats een aparte code maken.
Gewijzigd op 01/01/1970 01:00:00 door AstroVersum
Code (php)
1
2
3
4
5
2
3
4
5
<?php
if (isset ($_GET['id'])) {
$text = file_get_contents ('http://www.astroversum.nl/overige/weer.html?id=' . $_GET['id']);
}
?>
if (isset ($_GET['id'])) {
$text = file_get_contents ('http://www.astroversum.nl/overige/weer.html?id=' . $_GET['id']);
}
?>
Zit geen veiligheidscheck op en code niet getest.
Ik zal nu het script verder bouwen en jullie horen het als iets niet lukt
Okee, we PHP-en verder ;-)
Als ik nu heel veel woorden aan de lijst toevoeg die moeten worden vervangen, wordt het laden van de pagina dan trager?
Niemand?
Als het dat wel wordt moet je overwegen om dmv een cronjob elke vijf á tien minuten een nieuw weerbericht te downloaden+vertalen en vervolgens deze in een file opslaan.
Hierdoor bespaar je heel wat rekenkracht en bandbreedte lijkt me(mits je beduidend meer dan 1 bezoeker per 5 á 10 minuten heb ;-))