[PHP => Visual Basic lub C++] Jak prze konwertować kod?

Witam, mam napisaną aplikację w PHP. Zawiera ona 2 funkcje form (Pole tekstowe i button) oraz główny kod PHP który pobiera dane z internetu i wyświetla zdjęcie i text. Teraz chciałbym to przenieść do aplikacji tylko za nic nie wiem jak. Czy są do tego jakieś programy?

Z tego co wiem to nie ma możliwości konwersji z PHP to C++. Musisz niestety przepisać kod samodzielnie

Jeśli chodzi o C++ dopiero zaczynam naukę i nie wiem jak napisać to:

$data=@json_decode(file_get_contents('http://adresstrony.pl/'.$_POST['id']),true);

$_POST[‘id’] pobiera mi dane z pola tekstowego

 

a potem wykorzystać pobrane dane w kodzie.

Hmm… C++ jako tako nie ma parsera JSONa w sobie więc musisz poszukać jakiejś gotowej biblioteki do tego

To było przygotowane pod PHP 5.3. Może istnieje jakiś inny sposób importu danych? Po wczytaniu strony wyświetla mi się to tak:

{
   "first_name": "Imie",
   "last_name": "Nazwisko",
   "image": "nazwa zdjęcia"
}

Zależy - jeśli ma to być oparte np na WinForm to będzie to bardzo prosto pobrać informacje z pól tekstowych

HipHop for PHP ale to już wyższa szkoła jazdy

 

A co byś zrobił gdybyś nie miał w php json_decode? Zapewne użył regex lub ręcznego wyszukiwania. C++11 ma regexy które co prawda mi nie działają pod mingw32-g++(kompiluje się wszystko). Trzeba używać <boost/regex.hpp> (niestandardowe), lub ręcznego wyszukiwania. Przykład z ręcznym wyszukiwaniem:

#include <iostream>
#include <string>
using namespace std;

//odpowiednik function
string jsonpseudo(string szukane,string body)
{
   szukane='"'+szukane+'"'+": "+'"';
   int a=body.find(szukane);
   if (-1==a) return "NIEMA";
   body=body.substr(a+szukane.length());
   a=body.find('"');
   if (-1==a) return "NIEMA";
   body=body.substr(0,a);
   return body;
};

int main()
{
   string body=R"raw(
{
   "first_name": "Imie",
   "last_name": "Nazwisko",
   "image": "nazwa zdjęcia"
}
)raw";

   cout << "last_name" " = "<< jsonpseudo("last_name",body)<<endl ;
   cout << "first_name" " = "<< jsonpseudo("first_name",body)<<endl ;
   cout << "image" " = "<< jsonpseudo("image",body)<<endl ;
   cout << "sex" " = "<< jsonpseudo("sex",body)<<endl ;

   return 0;
}

Sformatowane: http://pastebin.com/WMvzcxaV

W C++ nie ma też wczytania pliku z internetu. Musisz pod Windows użyć bibliotek WinInet, libcurl lub WinSocks.

 

 

 

 

 

 

Nie ma. W tytule było o C++ I VB. Po co Ci akurat te języki?

Możesz też swoją aplikację webową przerobić na exe za pomocą PHP Desktop https://code.google.com/p/phpdesktop/ . Nie próbowałem, ale chyba będzie to najlepsze rozwiązanie. 

Jak chcesz robić aplikacje dekopowo-okienkowe w php to masz PHP-Qt i wxPHP.

C++ nie ma w standardzie gui, więc musisz znaleźć sobie jakąś bibliotekę która będzie wyświetlała i obsługiwała przyciski i strony www.

W Windows froms (.NET) do wyświetlania strony w okienku własnej aplikacji służy classa WebBrowser

http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx

W win32 używało sie:

http://msdn.microsoft.com/en-us/library/aa752127(v=vs.85).aspx

http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla

W qt używa się QWebView/QWebPage (za pomocą webkita)

http://qt-project.org/doc/qt-4.8/examples-webkit.html

Oczywiście qt ma też obsługe json https://qt-project.org/doc/qt-5.0/qtcore/json.html

 

 

Co byś nie wybrał będzie źle. Lepiej żebyś dobrze opanował c++ trenując na aplikacjach konsolowych zanim weźmiesz się za programy okienkowe.

Co do kodu php to C++ ma uruchamianie innych programów.

#include <stdlib.h>
system ("dir");

Kod php można uruchomić z linii poleceń:

php.exe -f upload.php >> wynik.txt

czyli

system ("php.exe -f upload.php >> wynik.txt");

Potem w C++ odczytujemy plik wynik.txt (lepsze by było użycie named pipe).

Oczywiście musiałbyś skopiować php.exe, wszystkie jego biblioteki i pliki. U mnie katalog php zajmuj jakieś 90 mega.

Z pewnością można zamiast php.exe użyć biblioteki php5ts.dll.