[PHP]ereg_replace werkt niet in while loop

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • nikao
  • Registratie: November 1999
  • Laatst online: 10-02-2022
ik heb dynamische pagina's die ik van relevante keywords wil voorzien.

dit doe ik door een deel van de content die ik uit de dbase haal, in de metatags te zetten.

nu wil ik echter uiteraard niet alle woorden als keyword hebben, vandaar dat ik die eruit wil filteren.

nu heb ik een textfile met daarin de woorden die ik eruit wil hebben, gescheiden door een |

ik lees de file in als string, en explode dan op die | om er zo een array van te maken.

dan loop ik de array langs om per woord uit de textfile die uit de keywords te halen.

alleen het probleem is dat ik steeds een lege string terugkrijg..
terwijl als ik dezelfde code buiten de whileloop gebruik.. het wel werkt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$keyword = ereg_replace(" ",",","$feit");
$keyword .= ",";
$keyword .= ereg_replace(" ",",","$sub_feit");

$file=file_get_contents("includes/keywords.txt","r");
$list = explode("|", $file);

//$keyword = ereg_replace("$list[0]","","$keyword");

$i == 0;
$limit = count($list); 

while ($i <= $limit) {
    $replace = $list[$i];
    $keyword = ereg_replace("$replace","","$keyword");
    $i++; 
}


$feit en $sub_feit zijn de 2 elementen die ik uit de dbase haal die ik wil gebruiken voor mijn keywords..

iemand enig id wat er fout gaat?

Acties:
  • 0 Henk 'm!

Verwijderd

Dit werkt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
$keywords = "Rode sappige aardbeien uit Nederland";
$keywords = strtolower(str_replace(" ", ",", $keywords));

$file = file_get_contents("keywords.txt", "r");
$list = explode("|", $file);

for($i=0; $i<count($list); $i++) {
    $keywords = str_replace($list[$i], "", $keywords);
}

echo trim($keywords, ",");


keywords.txt:
code:
1
rode|nederland


Wat er mis gaat met jouw code kan ik ook niet ruiken, kan aan veel dingen liggen. Valt me mee dat dit topic nog open is :)

[ Voor 46% gewijzigd door Verwijderd op 22-07-2004 16:20 ]


Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$keyword = ereg_replace(" ",",","$feit"); 
$keyword .= ","; 
$keyword .= ereg_replace(" ",",","$sub_feit"); 

$file=file_get_contents("includes/keywords.txt","r"); 
$list = explode("|", $file); 

//$keyword = ereg_replace("$list[0]","","$keyword"); 

$i == 0; // <----- HIER GAAT HET FOUT MOET ZIJN: $i = 0;
$limit = count($list); 

while ($i <= $limit) { // <----- HIER OOK MOET ZIJN: $i < $limit
    $replace = $list[$i]; 
    $keyword = ereg_replace("$replace","","$keyword"); 
    $i++; 
}
?>


Netter:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<? 
$keyword = ereg_replace(" ",",","$feit"); 
$keyword .= ","; 
$keyword .= ereg_replace(" ",",","$sub_feit"); 

$file=file_get_contents("includes/keywords.txt","r"); 
$list = explode("|", $file); 

//$keyword = ereg_replace("$list[0]","","$keyword"); 

$limit = count($list);

for ($i = 0; $i < $limit; $i ++) {
    $replace = $list[$i]; 
    $keyword = ereg_replace("$replace","","$keyword"); 
} 
?>

[ Voor 90% gewijzigd door Fles op 22-07-2004 16:26 ]


Acties:
  • 0 Henk 'm!

  • nikao
  • Registratie: November 1999
  • Laatst online: 10-02-2022
bedankt allebei! .. werkt inderdaad zo..

nu alleen nog ff de replace aanpassen.. want "de" weghalen gaat nu nog neit lekker.. wordt nu ook uit woorden als "rode" en "woorden" gehaald.

daar duik ik nu maar ff in ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Graveheart schreef op 22 juli 2004 @ 16:22:

Netter:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<? 
$keyword = ereg_replace(" ",",","$feit"); 
$keyword .= ","; 
$keyword .= ereg_replace(" ",",","$sub_feit"); 

$file=file_get_contents("includes/keywords.txt","r"); 
$list = explode("|", $file); 

//$keyword = ereg_replace("$list[0]","","$keyword"); 

$limit = count($list);

for ($i = 0; $i < $limit; $i ++) {
    $replace = $list[$i]; 
    $keyword = ereg_replace("$replace","","$keyword"); 
} 
?>
Netterder:

PHP:
1
2
3
4
5
6
7
8
9
// init
$keywords   = str_replace(' ', ',', $feit.','.$sub_feit); 
$file       = file_get_contents('includes/keywords.txt', 'r'); 
$list       = explode('|', $file); 

// replacements
for ($i = 0; $i < count($list); $i++) { 
    $keyword = ereg_replace($list[$i], '', $keywords); 
}


[/einde flauwe-niets-te-doen-modus]

[ Voor 18% gewijzigd door Verwijderd op 22-07-2004 16:34 ]


Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
[ook niets te doen mieren neukers mode]
Korter
PHP:
1
2
3
4
5
6
7
8
9
10
<?
// init 
$keywords    = str_replace(' ', ',', $feit.','.$sub_feit); 
$list        = explode('|', file_get_contents('includes/keywords.txt', 'r')); 

// replacements 
for ($i = 0; $i < count($list); $i++) // <-- let vooral op dit enorme verschil
  $keyword = ereg_replace($list[$i], '', $keywords); 
//<-- zie ook hier het resultaat
?>

[/ook niets te doen mieren neukers mode]

[ Voor 53% gewijzigd door Fles op 22-07-2004 16:43 ]


Acties:
  • 0 Henk 'm!

  • DR
  • Registratie: December 2000
  • Niet online

DR

Korter
PHP:
1
2
3
4
5
<?
$keywords    = str_replace(' ', ',', $feit.','.$sub_feit);
$list        = explode('|', file_get_contents('includes/keywords.txt'));
 $keyword = str_replace($list, '', $keywords);
?> 

[ Voor 42% gewijzigd door DR op 22-07-2004 16:47 . Reden: Alleen varnamen kloppen nu niet, maar idee is er wel gok ik ;) ]


Acties:
  • 0 Henk 'm!

Verwijderd

Kortst:

PHP:
1
2
$keyword = str_replace(explode('|',file_get_contents('keywords.txt')),'',
str_replace(' ',',',$feit.','.$sub_feit));


Met word-wrapje, dus eigenlijk een one-liner.

[/mode kansloos, zinloos en hopeloos]

Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Korter
PHP:
1
2
3
<?
$keyword = str_replace(explode('|', file_get_contents('includes/keywords.txt')), '', str_replace(' ', ',', $feit.','.$sub_feit));
?> 

[/mode net iets langzamer dan mijn voorganger]

[ Voor 33% gewijzigd door Fles op 22-07-2004 16:54 ]

Pagina: 1