Ik wil uit een stuk tekst een aantal variabelen halen, en deze bijv gebruiken voor in een database, nu zat ik al te kijken naar preg_split e.d. maar kom er niet helemaal uit.


Een voorbeeldje:

Stel ik heb de tekst:
.blalblalbla bladibla naam: piet blabla nogmeer bla bla plaats: amsterdam bla bla bladibladibladi land: nerderland bladibla... enz enz enz

Dan wil ik bijvoorbeel uit die tekst de naam de plaats en het land halen, en die 3 gegevens gebruiken voor verdere verwerking voor bij een database.

Hoe krijg ik die gegevens netjes eruit is dus de vraag.

Bedankt voor de hulp!
strstr, maar dan moeten of de variabelen bij jou al bekend zijn, of het wordt een heeeeeeeele grote reqex
Variabelen zijn onbekend.

Het kan dus elke keer een andere tekst zijn met een andere naam en plaats enzo :)
maar het is wel iderekeer naam+plaas wat je wil hebben? en staat er idere keer meteen een : achter?
Ik denk dat het niet haalbaar is, of je krijgt geen 100% nauwkeurige antwoorden.
voorbeeld tekst:

Mijn naam is Jason, samen met mijn vriendin, mijn vriendin haar naam is Kim. Allebei woonachtig in Alkmaar zijn op vakantie gegaan naar Canada, Halifax om precies te zijn. Toen ik terug kwam uit het vakantieland merkte ik dat het land waar ik woon, Nederland eigenlijk heel saai is.


PHP kan nooit 100 % zeker zeggen hoe ik heet, in welke plaats ik woon en in welk land.
iedere keer : idd.

Php zou het moeten kunnen vinden want het is elke keer naam: gevolgd door de eigenlijke naam.
Zelfs niet als het altijd achter een : staat, want met dubbele namen (Willem Jan :)) gaat het dan al mis...
True, maar heb eens even gekeken, mijn voorbeeld is niet helemaal juist.
Voor zover ik weet worden de variabelen in het tekstformaat dat ik heb gevolgd door een nieuwe regel.


Dus:

blablabla naam: Willem Jan
Bla dibla bladibla plaats: Amsterdam
Ik ben ff wat aan het proberen, het lukt nog niet helemaal, maar als ik iets vind post ik het wel ff.

Edit2:
Heb er dit van weten te maken, maar weet niet of het precies doet wat jy wil:
<?php

function str_zoek($str, $zoek){
	$result = '';
	
	$array = str_word_count($str, 2);
	
	$key = array_search($zoek, $array);
	
	while ($current = current($array)) {
	   if (key($array) == $key) {
	   		next($array);
			$result = $array[key($array)];
	   }else{
	   		next($array);
	   }
	}
	return $result;
}

$str = 'bla bla naam: Boaz bla bla plaats: Doesburg bla bla';

echo 'Naam: '.str_zoek($str, 'naam').'<br />'.PHP_EOL;
echo 'Plaats: '.str_zoek($str, 'plaats').'<br />'.PHP_EOL;

?>
Zo iets?

<?
error_reporting(E_ALL);

if( preg_match_all('/(naam|plaats|land):(.+)\s/i', $tekst, $aMatch) )
{
print_r($aMatch);
}
?>

Dit is niet getest trouwens...
Bovenstaande geeft mee naam en plaats geen land.

Het ziet er dus als volgt uit:

Ik heb een txt file/variabele in plat tekst formaat.
Daar staan gegevenscategorieën in en de bijbehorende gegevens.

Deze staan in het formaat:

categorie: gegeven

Na gegeven altijd een nieuwe regel.

Een stukje php zou dus het volgende moeten kunnen denk ik:

Scannen naar de opgegeven categorieën.
Bij het spotten van een categorie alles erna tot aan het regeleinde inlezen en in een variabele opslaan voor die categorie.

Bedankt voor alle hulp tot dusver!

Reageren