erste Wort von mehreren Wörtern im Text finden bzw. Position herausfinden!

hwcsteffen

Mitglied
Hallo,

ich habe zwei Wörter nach denen ich suche. Wie kann ich herausfinden, welches das erste Wort im Text ist von den beiden. Denn ich möchte nur das erste Wort von den beiden ersetzen!

Der Text ist in einer DB. Das ersetzen habe ich schon herausgefunden!

PS: kann man die Positionen von Wörtern herausbekommen?
 
Sorry, nicht getestet, sollte aber so gehen
PHP:
$str = 'Das ist ein Text! Das ist ein Text!';

$tos = array('ist', 'das', 'ein', 'idiot?', '..');

$strarray = explode(' ', $str);

for($i = 0; $i <= count($tos); $i++) {

if(in_array($tos[$i], $strarray) ) {

$word1 = stripos($str, $tos[$i]);

$pos[] = $word1;

}

}
 
ok, sry aber das folgende Script funktioniert aufjedenfall:

PHP:
<?php

$str = 'Das ist ein Text! Der es in sich hat';

$tos = array('ist', 'das', 'ein', 'idiot?', '..');

$strarray = explode(' ', $str);

for($i = 0; $i <= count($tos); $i++) {

if(in_array($tos[$i], $strarray) ) {

$word1 = stripos($str, $tos[$i]);

$pos[] = $word1;
$pos2[] = $tos[$i];

}
}

for($y = 0; $y < count($pos2); $y++) {

$pos2e[] = strlen($pos2[$y]);

}

unset($pos2, $i, $y);

for($z = 0, $k = 0; $z < count($pos), $k < count($pos2e); $z++, $k++) {

$var = intval($pos2e[$k]+$pos[$z]-1);
echo 'Position: '.$pos[$z] . ' - ' . $var;
echo '<br />';

}
 
Zuletzt bearbeitet:
Ganz schön kompliziert gelöst. Hier eine einfachere Lösung:
PHP:
$str = 'Das ist ein Text! Das ist ein Text!';
$tos = array('ist', 'das', 'ein', 'idiot?', '..');
$matches = array();
foreach( $tos as $term ) {
	$matches[] = stripos($str, $term);
}
$matches = array_filter($matches, 'is_int');
asort($matches);
foreach( $matches as $key => $pos ) {
	echo '"'.$tos[$key].'" wurde an der Position '.$pos.' gefunden.';
}
 
Zurück