Wie helpt mij op weg? THANX!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stijn V

Stijn V

27/12/2007 16:45:00
Quote Anchor link
Hallo,

Ik ben nieuw hier op ’t forum; ben net gestart om wat dieper in PHP te duiken, maar heb een vraagje waar ik niet uitkom.

Iemand heeft ooit een php code aan me gegeven om een bepaalde pagina op mijn site te automatisch te laden, zodat ik zelf niet de hele tijd hoef te updaten. De pagina staat om het makkelijk te maken op de volgende locatie: http://www.domein.com/pagina.html

Ik kan twee woorden vervangen voor mijn eigen woorden. “Woord1” wordt door het scriptje vanzelf “vervanging1” en hetzelfde voor “woord2”. Dit wordt “vervanging2”. Nu wil ik nog meer woorden vervangen (oftewel “woord3” naar “vervanging3”, “woord4” naar “vervanging4”, etc. Het moet heel makkelijk zijn, maar ik heb echt alles geprobeerd. Inmiddels heb ik zelfs enkele PHP tutorials gelezen, dus weet inmiddels al aardig wat van de regular expressions, maar ik kom er niet uit. Wie kan mij hiermee verder helpen? Alvast bedankt!



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$a
= file_get_contents("http://www.domein.com/pagina.html");
 $b =  preg_replace("/woord1/", "vervanging1",$a);
 echo preg_replace("(woord2)", "vervanging2",$b,1);

?>


Alvast bedankt!

Stijn
 
PHP hulp

PHP hulp

27/11/2024 07:30:25
 
Stijn V

Stijn V

27/12/2007 16:48:00
Quote Anchor link
enne...

Ik weet dat die ,1 in regel 5 betekent dat er maar één keer vervangen hoeft te worden... Dus die moet eigenlijk weg in het voorbeeld.

Stijn

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$a
= file_get_contents("http://www.domein.com/pagina.html");
 $b =  preg_replace("/woord1/", "vervanging1",$a);
 echo preg_replace("(woord2)", "vervanging2",$b);

?>
 
Joren de Wit

Joren de Wit

27/12/2007 16:50:00
Quote Anchor link
Stijn, niet bumpen...

Is zoiets wat je zoekt?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$sString
= 'Een string waarin {woord} vervangen wordt door {naam} en dus uiteindelijk {kleur} het {plaats} resultaat is';

$aOrigineel = array('{woord}', '{naam}', '{kleur}', '{plaats}');
$aVervanging = array('foo', 'bar', 'groen', 'tweede');

echo str_replace($aOrigineel, $aVervanging, $sString);
?>
 
Stijn V

Stijn V

27/12/2007 17:17:00
Quote Anchor link
Thanx Blanche,

Kan ik dit scriptje ook gebruiken in combinatie met "file_get_contents"? In je voorbeeld kan ik idd wel makkelijk de woorden vervangen als ik als string een stuk tekst opgeeft.

Maar in mijn geval is $sString een extern bestand dat staat op "http://www.domein.com/pagina.html" en de tekst veranderd voortdurend.

Is er een makkelijke combinatie mogelijk tussen "file_get_contents" en jouw voorbeeld?

Thanks again,

Stijn
 
Joren de Wit

Joren de Wit

27/12/2007 17:19:00
Quote Anchor link
Natuurlijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sString
= file_get_contents('http://www.extern.site/bestand.html');
?>
 
Stijn V

Stijn V

27/12/2007 17:25:00
Quote Anchor link
What de f*** man, ik wist dat het makkelijk was, maar zo makkelijk...

Harstikke bedankt voor de snelle hulp!

Ik zal er verder mee gaan stoeien!

Cheers,

Stijn
 
Arend a

Arend a

27/12/2007 18:49:00
Quote Anchor link
Edit:

Shit, gesnapt. Zo dan.

Deze is misschien iets makkelijker bij te houden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$sString
= 'Een string waarin {woord} vervangen wordt door {naam} en dus uiteindelijk {kleur} het {plaats} resultaat is';

$aVervanging = array(
'{woord}' => 'foo',
'{naam}' => 'bar',
'{kleur}' => 'groen',
'{plaats} => 'tweede'
);

echo str_replace(array_keys($aVervanging), array_values($aVervanging), $sString);
?>
Gewijzigd op 01/01/1970 01:00:00 door Arend a
 
Joren de Wit

Joren de Wit

27/12/2007 18:51:00
Quote Anchor link
Jep, die is een stukje netter inderdaad. Je mist alleen een ' achter foo.
 
Stijn V

Stijn V

27/12/2007 19:37:00
Quote Anchor link
Bedankt. Dit werkt echt super! Je kunt er heel veel mee vervangen heb ik gemerkt. Ook alle (lees)tekens zoals <, ", ', en meer. Dat komt goed uit.

Weten jullie ook of het mogelijk is om een hele TAG te vervangen? Ik wil namelijk eeen tag met de class="comments" weghalen.

Bij preg-replace zou ik dan:


"/<div class=\"comments\".*?<\/div>/"

er in zetten, maar deze methode pakt geen speciale tekens zoals de punt, de ster en de escapes.

Wellicht weer een makkelijke oplossing?

Alvast bedankt,

Stijn
 
Joren de Wit

Joren de Wit

27/12/2007 19:44:00
Quote Anchor link
Dat werkt toch wel degelijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$sString
= 'Hier staat niets <div class="comments">Speciale tekens ^!@#*.\"</div> tussen...';
$sString = preg_replace('#<div class="comments">.*?</div>#is', '', $sString);
echo $sString;
?>
 
Stijn V

Stijn V

27/12/2007 20:02:00
Quote Anchor link
Thanx Blanche,

Ik bedoel eigenlijk in één PHP sciptje samen.

Dus én een preg_replace én een array dus in één script, zodat ik het makkelijk kan houden in één script.

Ik wil een standaard scriptje maken, waarbij ik én enkele hele TAGs in één keer kan vervangen (met iets van .*? ) én waarbij ik woorden en andere dingen kan vervangen.

Ik los het nu op door twee scipts te maken. Eén voor preg-replace en daarna laat ik dat bestand grabben via file_get_contents waar ik dan nog een string_replace overheen gooi. Een beetje omslachtig dus, maar ik ben ook pas net bezig...

Bedankt weer als jullie nog wat weten!

Stijn

PS Arend, ik mis ook nog een ' achter '{plaats}
 
Joren de Wit

Joren de Wit

27/12/2007 20:10:00
Quote Anchor link
Wat houdt je tegen om beide bewerkingen in 1 scriptje uit te voeren? Je kunt prima eerst de preg_replace() uitvoeren en daarna de str_replace() met de array's...
 
Stijn V

Stijn V

27/12/2007 20:13:00
Quote Anchor link
@ Blanche:
Wat houdt je tegen om beide bewerkingen in 1 scriptje uit te voeren?

Nou, ik heb veel geprobeerd, maar het werkte echt niet. Ik kreeg het niet aan de praat...
 
Joren de Wit

Joren de Wit

27/12/2007 20:15:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sString
= file_get_contents('...');
$sString = preg_replace('#<div class="comments">.*?</div>#is', '', $sString);

$aVervanging = array(
'{woord}' => 'foo',
'{naam}' => 'bar',
'{kleur}' => 'groen',
'{plaats}' => 'tweede'
);

$sString = str_replace(array_keys($aVervanging), array_values($aVervanging), $sString);

echo $sString;
?>

Niet getest, maar zoiets zal zeker werken!
 
Stijn V

Stijn V

27/12/2007 20:24:00
Quote Anchor link
Wow Blanche dat is bijna hogere wiskunde (voor mij dan :) )

Ik was zoiets aan het maken als het volgende wat dus nergens op slaat en aantoont dat ik echt een beginner ben die er nog niet veel van snapt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sString
= file_get_contents('http://www.extern.site/bestand.html');

$aVervanging = preg_replace('#<div class="comments">.*?</div>#is', '', $sString);

$bVervanging = array(
'{woord}' => 'foo',
'{naam}' => 'bar',
'{kleur}' => 'groen',
'{plaats}' => 'tweede'
);

echo str_replace(array_keys($aVervanging), array_values($aVervanging), $sString);
echo preg_replace("(<head>.*?<\/head>)", "xxxxxxxxxx",$b);
?>


iig super bedankt!

Volgens mij kan je hiermee nu maar één TAG vervangen (de class="comments" in het voorbeeld) als ik het goed heb. Zou je nog meer preg_replce vervangingen kunnen doen door iets toe te voegen???

Als ik té lastig ben zeg het maar hoor, want wat je net hebt gepost is al super waardevol voor me!

Cheers,

Stijn
 
Joren de Wit

Joren de Wit

27/12/2007 20:27:00
Quote Anchor link
Tuurlijk, als je wilt kun je 100 versies van preg_replace() achter elkaar zetten. Of het nuttig is, is een tweede maar het kan wel...
 
Stijn V

Stijn V

27/12/2007 20:42:00
Quote Anchor link
Thanx, maar de 2e en 3e preg_replace kan ik er niet makkelijk bij zetten. Lukt me nog niet. Ik probeer nu zoiets, maar dat slaat nergens op...:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sString
= file_get_contents('...');
$sString = preg_replace('#<div class="comments">.*?</div>#is', '', $sString);
           preg_replace('#<div class="post">.*?</div>#is', '', $sString);
           preg_replace('#<div class="rating">.*?</div>#is', '', $sString);

$aVervanging = array(
'{woord}' => 'foo',
'{naam}' => 'bar',
'{kleur}' => 'groen',
'{plaats}' => 'tweede'
);

$sString = str_replace(array_keys($aVervanging), array_values($aVervanging), $sString);

echo $sString;
?>


Thanx again :)
 
Joren de Wit

Joren de Wit

27/12/2007 20:43:00
Quote Anchor link
Je bent dichtbij:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$sString
= file_get_contents('...');
$sString = preg_replace('#<div class="comments">.*?</div>#is', '', $sString);
$sString = preg_replace('#<div class="post">.*?</div>#is', '', $sString);
$sString = preg_replace('#<div class="rating">.*?</div>#is', '', $sString);

// etc...
?>


Je moet het resultaat van de preg_replace natuurlijk wel weer opslaan in een variabele. Anders kun je er niet verder mee werken..
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Stijn V

Stijn V

27/12/2007 21:15:00
Quote Anchor link
Echt super bedankt Blanche!

Ik heb het net even getest en het werkt echt geweldig!


Respect, Hulde! Hoe kan ik je bedanken?

Stijn
 



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.