PHP & MYSQL Hämta mysql med html-kod och ta bort html-koden

Permalänk
Medlem

PHP & MYSQL Hämta mysql med html-kod och ta bort html-koden

Här lite problem idag. Hämtar poster från en mysql-databas. Posterna är sparade med html-kod som talar om stlk, färg osv på texten. Finns det någon enkel php-funktion som kanske overridar all sådan information ? så oavsätt om det är en table i posten so outputar sidan det som ren text....

Vore mycket tacksam för svar. Jag vill inte ta bort taggarna för gott utan bara när det visas på just denna sidan.

Permalänk
Medlem

Javisst!

<?php $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>'; echo strip_tags($text); echo "\n"; // Allow <p> and <a> echo strip_tags($text, '<p><a>'); ?>

strip_tags()

Visa signatur

[Intel i7 4770K] [ GTX 1070] [Asus ROG VI Gene] [Corsair AX860] [Corsair 16GB Vengeance LP] [120GBIntel 520] [Bitfenix Phenom M]

Citera för svar

Permalänk
Entusiast

Kort svar: Läs in html-filen som en ren text-fil och behandla den med PHPs utmärkta text-verktyg. Spara resultatet i en variabel och mata ut den som vilken annan html-kod som helst. exempelvis PHPs diverse string-kommandon. Ex: str_replace

Mer utförligt:
När man pysslar med dynamiska sidor i PHP, brukar man i regel ha bitar av HTML-koden och allt tillhörande i korta delfiler som agerar "templates".
Dessa läser man in i en eller flera variabler, som man sedan bearbetar och till sist matar ut den färdiga HTML-koden.

Är sidan populär och/eller "hårt belastad", så försöker man minimera beabetningen av HTML-koden, och överlåter en del av de dynamiska bitarna till javascripten istället. Detta för att inte överbelasta servern. Man överlåter alltså en del av arbetet till klienten.
Det är dock viktigt att hålla alla säkerhetsrelaterade funktioner på serversidan.

En bra och väl designad sida behöver inte efterbehandlas speciellt mycket varken server-side eller client-side.

Det du efterfrågar, tror jag passar jquery bättre. Det vill säga ett javascript-bibliotek designad att underlätta modifering av HTML-kod "on the fly".
Om du däremot hämtar kod externt, och har inga möjligheter att anpassa HTML-koden och/eller dess javascripts, så kan jag tipsa om antigen PHP Simple HTML Parser, eller rentav XPath.

Nu har PHP en del rätt kompetenta "parsers" för HTML-kod, fast jag rekommenderar att använda dessa sparsamt, och ni bör kanbske överväga att designa om funktionerna så att ni slipper efterbehandla HTML-koden och dess tillhörande CSS.

Lite tips att läsa på om:
PHP Simple HTML DOM Parser
http://php.net/manual/en/class.domxpath.php
http://jquery.com/

Sedan, om du vill ha lite mer detaljerad hjälp, så ge oss lite exempel på vad det du vill göra. Använd CODE-taggarna, samt SPOILER-taggarna om det är mycket kod.

Visa signatur

Bästa programmen till Linux - v2.0
Linux-guide: Val av grafisk miljö. (Att välja distribution).
-
Everyone should have a SGoC in their systems (SGoC: SysGhost on a Chip)

Permalänk
Medlem
Skrivet av nivv:

Javisst!

<?php $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>'; echo strip_tags($text); echo "\n"; // Allow <p> and <a> echo strip_tags($text, '<p><a>'); ?>

strip_tags()

Detta var precis vad jag letade efter, hittade inte det innan, får tacka för det.
¨
Får även tacka Sysghost för synpunkterna. Låter lite för avancerat för mig dock. Det är dock bara när man går in och skall hämta en hel post från mysql som jag kommer behöva mata ut detta. strip_tags() skall endast vara en temporär lösning på det hela. Givetvis skulle jag tagit bort taggarna innan posterna lades in i databasen, men det är lätt att vara efterklok.

Att ersätta taggarna var ett alternativ, som jag fortfarande strävar efter. Tyvärr så innehåller databasen nära 100k rader just nu, och alla har taggar i som skall bort.

Tack så mycket iallafall.

Permalänk
Medlem

Gör ett engångs-jobb som uppdaterar posterna. In och ut. Så slipper du det i andra ändan liggandes konstant.

Visa signatur

På tok för många datorer för att skriva här

Permalänk
Medlem
Skrivet av orig_rejser:

Gör ett engångs-jobb som uppdaterar posterna. In och ut. Så slipper du det i andra ändan liggandes konstant.

Lutar mot det, det var som sagt mest en temporär lösning. Tyvärr är anledningen till att det är html i posterna för att vi ville dumpa sidorna exakt så dom såg ut. Och det finns en poäng i att ha det så men som sagt.... Blir nog att ta bort taggarna.