string uit string halen.
Goedenmiddag allen,
Ik loop tegen een probleempje aan.
Ik wil uit de string "[include=test.htm]" "test.htm" halen. echter staat de 1e string ergens in een htm bestand.
Ik moet dus opzoek naar het patroon [include= ] en daar het bestand uithalen. preg_replace zal de oplossing zijn, ik word alleen niks wijzer van de teken reeks die nodig is om mijn doel te bereiken.
Kan iemand mij opweg helpen?
Ik loop tegen een probleempje aan.
Ik wil uit de string "[include=test.htm]" "test.htm" halen. echter staat de 1e string ergens in een htm bestand.
Ik moet dus opzoek naar het patroon [include= ] en daar het bestand uithalen. preg_replace zal de oplossing zijn, ik word alleen niks wijzer van de teken reeks die nodig is om mijn doel te bereiken.
Kan iemand mij opweg helpen?
Gesponsorde koppelingen:
wat wil je nu precies?
je verhaal is niet echt duidelijk.
Kan je het misschien verduidelijken dmv een stuk script.
je verhaal is niet echt duidelijk.
Kan je het misschien verduidelijken dmv een stuk script.
als ik het goed voor heb, je hebt een text, met UBB codes in, waaronder de code [include=BESTANDSNAAM].
maar nu wil je de die BESTANDSNAAM uit je text halen ? maar wat wil je hier dan met doen ? ik veronderstel dat je die bestandsnaam dan in je text wilt toevoegen ? bv een stuk text ?
maar nu wil je de die BESTANDSNAAM uit je text halen ? maar wat wil je hier dan met doen ? ik veronderstel dat je die bestandsnaam dan in je text wilt toevoegen ? bv een stuk text ?
jasper wat je zegt klopt helemaal. wat ik met die tekst wil doen maakt opzich niet uit, als ik hem maar in een variabele kan zetten. de bedoelling is zoals de UBB aangeeft om dat bestand ook daadwerkelijk te includen. het is onderdeel van een template parser waarmee ik bezig ben om mezelf OOP aan te leren.
Edit:
dus stel ik heb:
dan wil ik de bestdandsnaam gebruiken om die contents op te halen en ook door me template parser heen te halen en op diezelfde locatie te plaatsten
dus stel ik heb:
dan wil ik de bestdandsnaam gebruiken om die contents op te halen en ook door me template parser heen te halen en op diezelfde locatie te plaatsten
Gewijzigd op 01/01/1970 01:00:00 door M Ypma
Dit kan je bewerken:
Ik ga m nu testen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if (isset($_GET['url'])){
$text = fopen($_GET['url']);
$includesarray = preg_replace('/\(.*?)[include=(.*?)\](.*?)/si', '$2;', $text);
$includes = explode(';', $includesarray)
echo '<ul>' . "\n";
foreach ($includes as $include){
echo '<li>' . $include . '</li>' . "\n";
}
echo '</ul>' . "\n";
}
echo '<form action="" method="GET">' . "\n";
echo '<p><input type="text" name="url"> Het bestand</p>' . "\n";
echo '<p><input type="submit" value="[include=*] Haal alle waardes op de plaats van het sterretje weg."' . "\n";
echo '</form>';
?>
if (isset($_GET['url'])){
$text = fopen($_GET['url']);
$includesarray = preg_replace('/\(.*?)[include=(.*?)\](.*?)/si', '$2;', $text);
$includes = explode(';', $includesarray)
echo '<ul>' . "\n";
foreach ($includes as $include){
echo '<li>' . $include . '</li>' . "\n";
}
echo '</ul>' . "\n";
}
echo '<form action="" method="GET">' . "\n";
echo '<p><input type="text" name="url"> Het bestand</p>' . "\n";
echo '<p><input type="submit" value="[include=*] Haal alle waardes op de plaats van het sterretje weg."' . "\n";
echo '</form>';
?>
Ik ga m nu testen.
";" mist op regel 5
en een 2e syntax mist bij je fopen functie.
vervolgens is er iets mis in je preg_replace()
Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 27 in f:\wamp\www\OOP\classes\test.php on line 4
en een 2e syntax mist bij je fopen functie.
vervolgens is er iets mis in je preg_replace()
Warning: preg_replace() [function.preg-replace]: Compilation failed: missing terminating ] for character class at offset 27 in f:\wamp\www\OOP\classes\test.php on line 4
Gewijzigd op 01/01/1970 01:00:00 door M Ypma
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
if (isset($_GET['url'])){
$text = fopen($_GET['url'], 'r');
$includesarray = preg_replace('/(.*?)\[include=(.*?)\](.*?)/si', '$2;', $text);
$includes = explode(';', $includesarray);
echo '<ul>' . "\n";
foreach ($includes as $include){
echo '<li>' . $include . '</li>' . "\n";
}
echo '</ul>' . "\n";
}
?>
if (isset($_GET['url'])){
$text = fopen($_GET['url'], 'r');
$includesarray = preg_replace('/(.*?)\[include=(.*?)\](.*?)/si', '$2;', $text);
$includes = explode(';', $includesarray);
echo '<ul>' . "\n";
foreach ($includes as $include){
echo '<li>' . $include . '</li>' . "\n";
}
echo '</ul>' . "\n";
}
?>
<form action="" method="GET">
<p><input type="text" name="url"> Het bestand</p>
<p><input type="submit" value="[include=*] Haal alle waardes op de plaats van het sterretje weg">.</p>
</form>
het resultaat geeft:
Resource id #3
Resource id #3
Edit:
bedankt iig vast voor de hulp allen, ben blij dat ik zo snel geholpen word. Zal zeker doorgaan met anderen helpen hier:)
Edit:
mijn fout! ik zie dat het al werkt. de preg_replace werkt prima! bedankt voor de hulp1
Gewijzigd op 01/01/1970 01:00:00 door M Ypma
kijk (werkt niet 100%)
zie ook http://phphulp.jonathanhogervorst.com/include.php3?url=test.txt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
if (is_file(@$_GET['url'])){
$text = readfile($_GET['url']);
?>
<pre>
<?php
echo nl2br($text) . "\n";
?>
</pre>
<?php
$includesarray = preg_replace('/(.*?)\[include=(.*?)\](.*?)/si', '$2;', $text);
$includes = explode(';', $includesarray);
?>
<ul>
<?php
foreach ($includes as $include){
echo '<li>' . $include . '</li>' . "\n";
}
?>
</ul>
<?php
}
?>
<form action="" method="GET">
<p><input type="text" name="url"> Het bestand</p>
<p><input type="submit" value="[include=*] Haal alle waardes op de plaats van het sterretje weg">.</p>
</form>
if (is_file(@$_GET['url'])){
$text = readfile($_GET['url']);
?>
<pre>
<?php
echo nl2br($text) . "\n";
?>
</pre>
<?php
$includesarray = preg_replace('/(.*?)\[include=(.*?)\](.*?)/si', '$2;', $text);
$includes = explode(';', $includesarray);
?>
<ul>
<?php
foreach ($includes as $include){
echo '<li>' . $include . '</li>' . "\n";
}
?>
</ul>
<?php
}
?>
<form action="" method="GET">
<p><input type="text" name="url"> Het bestand</p>
<p><input type="submit" value="[include=*] Haal alle waardes op de plaats van het sterretje weg">.</p>
</form>
zie ook http://phphulp.jonathanhogervorst.com/include.php3?url=test.txt
ik blijf nu zitten met een array welke altijd een key extra overhoud zonder waarde, dit komt door de explode op ";"... geen idee hoe ik die eruit krijg nu...
Edit:
opgelost met substr(), laatste ; weggehaalt
Gewijzigd op 01/01/1970 01:00:00 door M Ypma
mag ik het script eens zien wat je ervan hebt gemaakt?????????????
stuur me ff een pm-etje met het script, please???????



