Jump to content
php.lv forumi

tagu aizvietošana tekstā ar linkiem


renathy

Recommended Posts

Man ir teksts. Ir atslēgvārdi (ielādēti no db) masīvā. Katram atslēgvārdam pretim ir links.

Ir jāaizvieto tekstā atrastie atslēgvārdi ar doto linku.

Te jāņem vērā, pirmkārt, ka lielie/mazie burtie neskaitās. Otrkārt, ka jāaizvieto tikai vārdi, kas tiešām ir vārdi. Piemēram, "hedgehog" ir vārds un ja meklē pēc "hedge", tad vārdu "hedgehog" nevajadzētu saskaldīt. Savukārt, "hedge." vai "hedge+" vajadzētu pārveidot par linku.

 

Šeit tātad sanāk, ka taisu ciklu pa keywordiem un tad jātaisa preg_match.

 

Pirmkārt, jau jāuzraksta regulārā izteiksme. (teiksim, kas varētu nestrādā šajā variantā - /\b(hedge)\b/i

 

Otrkārt, jautājums ir svarīgāks, vai šeit neradīsies performances problēmas, ja atslēgvārdu saradīsies šausmīgi daudz...?

 

 

Es domāju, ka ar šo daudzi saskārušies... Varbūt kāda pieredze šajā jautājumā?

Edited by renathy
Link to comment
Share on other sites

Ja var rasties situācija, ka katrs otrais vārds būs kaut kāds links, tad jāpārdomā, vai tas mēsls beigās vispār būs lietojams bez rupjiem vārdiem. Un diez vai tas radikāli iebremzēs.

 

Bet citi varianti būtu:

a) Nezinu tikai, kāda ir šīs funkcijas iekšējā realizācija, bet var ar str_replace un masīvu, pirms tam masīvus atbilstoši sagatavojot, saģenerējot ciklā visas atļautās vārda formas { " lol ", " lol.", " lol," } un tad vienā piegājienā replace'ojot.

b) Vai glabāt jau uzģenerētu tekstu un pārģenerēt, kad rodas jauns keywords.

Link to comment
Share on other sites

Varbūt veikt attiecīgā teksta aizstāšanu ar linkiem klienta-pusē? PHP vajag tikai izvadīt masīvu un JavaScript parūpējas par visu pārējo. Mazāka noslodze uz servera.

 

P.S. Jebkura gadījumā... arī variants.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...