Podgląd kodu PHP w aplikacji

0

Podpowiedzcie. Co będzie potrzebne by zrobić "podgląd" jak wygląda tekst (o treści zwykłego posta na forum) itd, w mojej aplikacji.

A tekst jest o takiej zawartości jak pisanie posta na forum itp, czyli podgląd musi dodawać znaczniki code i otwierać obrazki w znacznikach img itp itd...

wystarczy do tego zwykly WebBrowser ? czy nalezy jakiś mały kodzik w PHP jeszcze dodać do aplikacji ?

0

WebBrowser wystarczy ale aby podgląd wyglądał realistycznie był (przynajmniej bardzo zbliżony do rzeczywistego) to musisz wiedzieć jakie style zostały użyte na forum np.: jaka czcionka, tło itp. i to wszystko ustawić w swoich stylach. Po prostu robisz sobie szablon coś w rodzaju:

<!DOCTYPE html>
<html>
<head>
<title>Podgląd/title>
<style>
<!-- tu wstawiasz style  -->
</style>
</head>
<body>
<!-- tu wstawiasz tresc -->
</body>
</html>

Musisz także pamiętać że przed wstawieniem treści musisz wszystkie znaczniki BBCode pozamieniać na odpowiadający im kod HTML (najlepiej za pomocą wyrażeń regularnych) i dopiero taki dokument ładujesz do WebBrowser (z pamięci lub tymczasowego pliku)

PHP wykonuje się po stronie serwera i WebBrowser nic z tym nie zwojujesz... a w ogóle nie wiem po co do tego miało by być potrzebne PHP.

0

zalezy mi głównie na sprawdzaniu czy obrazek w tagach IMG nie wygasł i chcialbym aby byly widoczne obrazki ktore sa umieszczone w tagach IMG
@kAzek

0

jesli po stronie serwera to sprawdzasz jaki kod naglowka zwrocil obrazek i na podstawie tego wiesz czy obrazek ze zrodla istnieje.

po stronie klienta mozesz to zwyklym javascriptem machnac :)

nie musisz tych obrazkow w ogole ladowac i ogladac:P

0

a w VB.NET jak to zrobic?

0

Musisz wyjaśnić bardziej co chcesz zrobić.
Ja to rozumiem tak: Masz jakąś apkę w WinForms z kontrolką WebBrowser na którym jest otwarte jakieś forum i TextBox gdzie wpisujesz coś w stylu Mój post z obrazkiem [IMG]linkDoobrazka[/IMG] i chcesz teraz w aplikacji zobaczyć podgląd posta. Tak? Bo nazwa tematu jest trochę myląca.

0

Tak, dokładnie o to mi chodzi - aby zrobić "podgląd" tego postu i sprawdzić między innymi czy obrazek w tagach IMG jest aktywny

1

To trzeba by regexami mielić ten tekst wejściowy i wyświetlać sformatowany tekst w RichTextBoxie. np szukasz regexem [b]tekstu pomiędzy znacznikami wyboldowania[/b] i wyświetlasz to odpowiednio, to samo z [img]link[/img] wyłuskujesz link, pobierasz obrazek i wklejasz do richtextboxa.

Edit:
Albo zainteresuj się tym:
http://bbcode.codeplex.com/

0

Masz przykład

    Function RegexReplace(ByVal match As Match)
        Try
            Select Case LCase(match.Groups(1).Value)
                Case "img"
                    Return "<img src=""" & match.Groups(2).Value & """/>"
                Case "b"
                    Return "<b>" & match.Groups(2).Value & "</b>"
                Case "i"
                    Return "<i>" & match.Groups(2).Value & "</i>"
                Case "color"
                    Return "<span style=""color: " & match.Groups(2).Value & ";"">" & match.Groups(3).Value & "</span>"
            End Select

        Catch ex As Exception
        End Try
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Const HTML_TEMPLATE As String = "<!DOCTYPE html><html><head><title>Podgląd</title>" & _
                                        "<style>body {{background-color: #000000; color: #FFEBCD; " & _
                                        "font-size: 12px; text-align: justify; font-family: arial, " & _
                                        "verdana, sans-serif;}} img {{border: 1px solid #FFD700;}}></style>" & _
                                        "</head><body>{0}</body></html>"
        Dim BBCODE_PATTERNS() As String = {"\[(img)\](.+?)\[\/img\]", _
                                        "\[(b)\](.+?)\[\/b\]", _
                                        "\[(i)\](.+?)\[\/i\]", _
                                         "\[(color)=([#0-9A-F]+?)\](.+?)\[\/color\]"}

        Dim html As String = RichTextBox1.Text
        Dim MatchEval As New MatchEvaluator(AddressOf RegexReplace)
        For Each pattern As String In BBCODE_PATTERNS
            html = Regex.Replace(html, pattern, MatchEval, RegexOptions.IgnoreCase or RegexOptions.Multiline)
        Next
        WebBrowser1.DocumentText = String.Format(HTML_TEMPLATE, html)
    End Sub

EDIT albo wykorzystaj parser do którego link podał @dam1an

1 użytkowników online, w tym zalogowanych: 0, gości: 1