Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][RegEx] Jak wyciąć taki tekst?
Forum PHP.pl > Forum > Przedszkole
slwy
  1. <!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> <w:LsdException Locked="false" Name="Default Paragraph Font" /> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]>
  2. <style>
  3. /* Style Definitions */
  4. table.MsoNormalTable
  5. {mso-style-name:Standardowy;
  6. mso-tstyle-rowband-size:0;
  7. mso-tstyle-colband-size:0;
  8. mso-style-noshow:yes;
  9. mso-style-parent:"";
  10. mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
  11. mso-para-margin:0cm;
  12. mso-para-margin-bottom:.0001pt;
  13. mso-pagination:widow-orphan;
  14. font-size:10.0pt;
  15. font-family:"Times New Roman";
  16. mso-ansi-language:#0400;
  17. mso-fareast-language:#0400;
  18. mso-bidi-language:#0400;}
  19. </style>
  20. <![endif]-->


mam problem z wycięciem tego używając wyrażeń regularnych. używam takiego dopasowania, ale nie działa:
  1. <?php
  2. preg_replace('/<!--[.*]*?-->/, ', $value);
  3. ?>

tzn wycina tylko pierwszy komentarz.
deirathe
To jest tekst który chcesz wyciągnąć. Czy chcesz coś z niego wyciągnąć? Btw użyj kropki przed gwiazdką. Tyle że u masz zapytanie niezachłanne, więc się skończy na pierwszym ]-->, pokaż resztę tego dokumentu to będzie można coś zdziałać
erix
Nie ma sensu się męczyć; użyj programu o nazwie Tidy, on odwala całą brudną robotę. winksmiley.jpg
zegarek84
Cytat(slwy @ 12.03.2009, 10:45:39 ) *
mam problem z wycięciem tego używając wyrażeń regularnych. używam takiego dopasowania, ale nie działa:
  1. <?php
  2. preg_replace('/<!--[.*]*?-->/, ', $value);
  3. ?>

tzn wycina tylko pierwszy komentarz.

sprawdź czy o to chodziło co podałem - wplotłem między komentarze tekst który sie zostanie - to co robiłeś było w zasadzie dobrze tylko zapomniałeś drugiego apostrofu do pustego ciągu i wynik z preg_replace trzeba przypisać do zmiennej (w preg_match nie trzeba więc to zapewne zmyliło):
  1. <?php
  2. $txt='<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> <w:LsdException Locked="false" Name="Default Paragraph Font" /> </w:LatentStyles> </xml><![endif]--> udało się<!--[if gte mso 10]>
  3. <style>
  4. /* Style Definitions */
  5. table.MsoNormalTable
  6. {mso-style-name:Standardowy;
  7. mso-tstyle-rowband-size:0;
  8. mso-tstyle-colband-size:0;
  9. mso-style-noshow:yes;
  10. mso-style-parent:"";
  11. mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
  12. mso-para-margin:0cm;
  13. mso-para-margin-bottom:.0001pt;
  14. mso-pagination:widow-orphan;
  15. font-size:10.0pt;
  16. font-family:"Times New Roman";
  17. mso-ansi-language:#0400;
  18. mso-fareast-language:#0400;
  19. mso-bidi-language:#0400;}
  20. </style>
  21. <![endif]-->';
  22. $txt = preg_replace('/<!--.*?-->/s', '', $txt);
  23. echo $txt;
  24. ?>


poprawka - drobny błąd...
slwy
@zegarek84
działa gites, tylko jeszcze nie wycina styli.

ogólnie: to jest początek zmiennej kodu strony (treść artykułu). smartym robie truncate i on mi ucina zamykający znacznik komentarza html, co powoduje, że wyświetlają się te krzaczki. już wyeliminowałem błąd przy dodawaniu arytkułu, ale chcę jeszcze poprawić wyświetlanie już istniejących.
zegarek84
poprawiłem - dodałem modyfikator s w wyrażeniu...
slwy
aaaaj, wystarczy dodac jeszcze parametry znajdujace znaki lamania linii smile.gif i przejechać taki tekst najpierw anty-łamaczem, następnie anty-komentarzem i gra smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.