webForumDet fria alternativet

stristr() variant som struntar i html, hjälp!

PHP

4 svar · 376 visningar · startad av herq

Medlem sedan aug. 2000238 inlägg
Frågan#1
Medlem sedan dec. 2003153 inlägg
#2

Har inte testat detta, men du kan använda funktionen eregi() i stil med:

// Returns TRUE if needle is found, FALSE if not or on error
function stristr2($haystack, $needle) {
  return eregi(">".$needle."<", $haystack);
}

Om du även vill få tillbaka de "nålar" den hittade så får du modifiera funktionen lite. Läs då dokumentationen för ereg().

Medlem sedan aug. 2000238 inlägg
#3

mmm visst funkar stristr2(), MEN det förutsätter att den efterfrågade needle har > och < precis intill sig.

$haystack = "en <a href="index.html">jättebra länk</a>";

stristr2("index.html", $haystack)
// returns false, som önskat

stristr2("jättebra länk", $haystack)
// returns true, som önskat

stristr2("länk", $haystack)
// returns false, skulle vilja att det blev true här istället.

vill även att det ska funka om > och < överhuvudtaget inte alls finns i $haystack, självklart då förutsatt att needle finns i $haystack.

Medlem sedan aug. 2000238 inlägg
#4

det fick bli så här, och det funkar precis som jag vill:

function stristr3 ($haystack, $needle) {
        return stristr (strip_tags ($haystack), $needle);
}

ngn som har en "snyggare"/bättre lösning? välkomnas isf.

lunne82>> tack för inspirationen.

Medlem sedan dec. 2003153 inlägg
#5

vill även att det ska funka om > och < överhuvudtaget inte alls finns i $haystack, självklart då förutsatt att needle finns i $haystack.

Tanken var väl att du skulle sköta finliret med regexet själv. :)
Alla sätt är bra utom de dåliga... :bire

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)