Kuinka etsiä (PHP:ssä) joku tekstinpätkä, ja sitten ottaa sen sisältö siitä niin kauan kunnes löytyy seuraava tietty tekstinpätkä (siis erilainen kuin ensimmäinen)?
Haetkohan kenties tällaista (testaamatonta koodia sitten!):
<?php $mjono = "Tässä hieman tekstiä tämän esimerkin pikaiseen testaukseen"; $haku1 = "hieman"; $haku2 = "pikaiseen"; $haku1_pos = strpos($haku1, $mjono); $haku2_pos = strpos($haku2, $mjono); if ($haku1_pos === false) { exit("1. merkkijonoa ei löytynyt"); } if ($haku2_pos === false) { exit("2. merkkijonoa ei löytynyt"); } $sisalto = substr($mjono, $haku1_pos, $haku2_pos - $haku1_pos); echo "Sisältö: " . $sisalto; ?>
Tuo tarttee varmaan vähän säätöjä. Tuollaisena tulostaa tuon 'eka-falsen'.
lainaus:
Tuo tarttee varmaan vähän säätöjä. Tuollaisena tulostaa tuon 'eka-falsen'.
Niinpä näyttääkin. strpos:lle oli mennyt parametrit väärin päin eli yo. koodi pitäisi olla tällainen:
<?php $mjono = "Tässä hieman tekstiä tämän esimerkin pikaiseen testaukseen"; $haku1 = "hieman"; $haku2 = "pikaiseen"; $haku1_pos = strpos($mjono, $haku1); $haku2_pos = strpos($mjono, $haku2); if ($haku1_pos === false) { exit("1. merkkijonoa ei löytynyt"); } if ($haku2_pos === false) { exit("2. merkkijonoa ei löytynyt"); } $sisalto = substr($mjono, $haku1_pos + strlen($haku1), $haku2_pos - $haku1_pos - strlen($haku1)); echo "Sisältö: " . $sisalto; ?>
Lisäksi muutin sitä sen verran, että $sisalto muuttujaan tulee ainoastaan se teksti mikä on sanojen "hieman" ja "pikaiseen" välissä, joten tulokseksi tulee "tekstiä tämän esimerkin"
Aihe on jo aika vanha, joten et voi enää vastata siihen.