Ergänzend zu der Antwort von FaronWeissAlles gibt es hier eine fertige Klasse, die mit Hilfe dem von ihm angesprochenen Levensthein Algorithmus einen Prozentwert für die Gleichheit oder Ungleichheit von zwei Strings ausspuckt:

https://github.com/akalongman/php-string-compare

Da es nur eine Klasse ist, könntest Du auch einfach nur die Funktionen übernehmen, die Du brauchst.

...zur Antwort

Moin Moin,

Dein Pastebin-Code ist soweit eigentlich in Ordnung. Ich habe ihn bei mir mit einer cmd Datei getestet, die einfach nur "Hallo Welt" in eine Datei ausgibt und er funktioniert.

Kommen wir also zur Fehlersuche. Da Du keine Fehlermeldungen angegeben hast gehe ich davon aus, dass Deine start.php aufgerufen wird und keine Fehler zu sehen sind, aber auch nichts passiert.

Zuerst einmal, funktioniert der direkte Aufruf? Sprich wenn Du über "Start -> Ausführen" mit cmd die Konsole aufmachst und dort

cmd.exe /c "C:\Users\???\Desktop\webinterface\start.cmd"

eingibst, passiert dann das, was Du erwartest?

Wenn das nicht der Fall ist, wäre die Fehlerausgabe interessant. Wenn es funktioniert, verwende in Deiner start.php bitte mal den folgenden Code:

$handle = popen('cmd /c "C:\Users\???\Desktop\webinterface\start.cmd"', 'r');
$read = fread($handle, 2096);
echo "Ausgabe der .cmd Datei:\r\n".$read;
pclose($handle);

Gibt Deine start.php eine Ausgabe oder einen Fehler zurück?

Die nächste Frage ist, wo funktioniert das Skript nicht? Funktioniert es vielleicht bei Dir lokal, aber dann versuchst Du es auf einem Webhost auszuführen, und da geht es nicht?

Wenn dem so ist dann läuft auf dem Webhost vermutlich Linux und cmd Dateien können nicht ausgeführt werden.

Ein weiterer Ansatz wäre, eine einfachere cmd Datei auszuführen, die einfach nur etwas in eine Datei schreibt. Erstelle dazu eine cmd Datei mit diesem Inhalt:

@ECHO Hello world>> C:\Users\???\Desktop\start.txt

Gib dann die neue Datei in der start.php an und schau, ob in der Datei start.txt auf dem Desktop etwas erscheint.

Letztlich, wenn Dir die obigen Ansätze nicht helfen, wäre interessant, was denn in der .cmd Datei eigentlich steht beziehungsweise, was sie tun soll und was anstelle dessen, was Du erwartest, dann wirklich passiert.

Gruß, goosejan

...zur Antwort

Moin NerdyByNature!

Hier kam ja bereits der Vorschlag, AppGini zu benutzen, was sicher eine gute Wahl ist, wenn Du tatsächlich einfach nur ein benutzerfreundliches Interface brauchst, um eine Datenbank zu befüllen.

Meiner Erfahung nach reicht das jedoch meist nicht aus, die Seiten wollen ja auch auf einer Webseite dargestellt werden oder in eine Warenwirtschaft integriert, eben irgendwie genutzt werden.

Wenn das der Fall ist stößt AppGini relativ schnell an seine Grenzen. Von daher schlage ich hier einmal eine Alternative vor, die eine höhere Lernkurve hat, aber auch wesentlich flexibler ist.

Ich drösel das Thema hier der Übersichtlichkeit halber mal ein wenig auf.

Tools

IDE/Editor

Ich selbst benutze für die PHP Entwicklung PHPStorm von JetBrains, allerdings bist Du da mit über 100€ dabei. Die 30 Tage Testversion ist aber einen Blick wert. Vorher habe ich NetBeans genutzt, was ich auch empfehlen kann.

Grundsätzlich würde ich immer eine IDE empfehlen, aufgrund der integrierten Projektverwaltung. Ein Editor wir Notepad++ reicht für sehr kleine Projekte, sobald aber die Quelltextbasis wächst ist man in der Regel dankbar für PHPStorm, Netbeans, eclipse und verwandte Produkte.

MySQL Verwaltung

Als Programm zur Verwaltung von MySQL benutze ich SQLYog. Davon gibt es eine kostenfreie Community Version, die allerdings nur direkt zu Datenbanken verbinden kann, nicht über SSH oder PHP Tunnel. Aber auch auf jeden Fall einen Blick wert.

Laufzeitumgebung/XAMPP

Als letztes Tool kommen wir zum XAMPP. Ich habe lange XAMPP genutzt bevor ich öfter auf das Problem stieß, dass Code bei mir lief, sich auf dem Server dann aber anders verhielt. Ich bin hier dann zuerst zu vagrant gewechselt und mittlerweile beschäftige ich mich mit docker.

Zu vagrant gibt es folgendes zu sagen: Es ist ein Ruby Script, dass mit Hilfe von VirtualBox einen Entwicklungsrechner bereitstellt. Man hat also ein fertiges Linux mit dem Apache-Server in der richtigen Version, einem MySQL und allem was man sonst noch so installiert hat. Der Vorteil gegenüber einer einfachen Virtualbox ist, dass mehrere Maschinen weniger Platz verbrauchen, der Ordner mit dem Quelltext direkt eingebunden wird und das ganze über Textdateien konfiguriert wird.

Da das Thema aber ein eigenes Kapitel ist nur so viel: Schau Dir mal vagrant und (irgendwann später) PuPHPet an. Wenn das mehr ist, als Du brauchst, ist XAMPP sicher eine gute Wahl.

Nun denn, an's Eingemachte.

Programmierung

Um schnell eine Datenbank nebst Administrationsoberfläche und zugehöriger Webseite hochzuziehen verwende ich Laravel. Das ist ein PHP-Framework, das einem einen Großteil der Arbeit erleichtert oder abnimmt.

Ob es für Dich etwas ist, kommt darauf an, wie weit Du beim Thema Programmierung bereits bist. Es gibt einiges an Frameworks, Laravel ist dabei das mit der meiner Meinung nach flachsten Lernkurve für Einsteiger. Andere die ich bereits genutzt habe und empfehlen kann sind CakePHP und Symfony 2 (davon ist Laravel abgeleitet).

Falls das nach etwas nützlichem klingt, hier noch eine kleine Warnung, Laravel wurde vor kurzem in Version 5 veröffentlicht, was einige sehr tiefgreifende Veränderungen mitgebracht hat. Unter anderem wurden Pfade geändert. Wenn Du Dir Laravel anschaust achte also darauf, auf welche Version sich Tutorials beziehen.

Ich hoffe mal, dass mein Geschreibsel einigermaßen Sinn ergibt. Sonst gerne nachfragen.

Gruß, goosejan :-)

...zur Antwort

Moin,

"sichtbar gestartet" solltest Du vielleicht noch etwas ausführen. Ich gehe davon aus, dass Du ein Konsolenprogramm in php schreibst.

Wenn sichtbar meint, dass Du die .bat Datei in einem neuen Fenster gestartet haben willst, dann ist die Antwort von NerdyByNature genau die richtige.

Wenn Du einfach nur die Ausgabe sehen möchtest dann benutzt Du am einfachsten system(), im Gegensatz zu exec() wird damit einfach nur der Befehl ausgeführt ohne Interaktivität.

Möchtest Du stattdessen die Ausgabe der .bat Datei für deinen PHP-COde sichtbar machen, benutzt Du popen.

Ich hab das mal als Beispiel zusammengefasst:

// Der Pfad zu Deiner .bat Datei
$pfad = 'c:\pfad\zur\datei.bat';

echo "Methode 1\r\n";
/**
* Methode 1
* 
* Die .bat Datei wird einfach nur ausgeführt,
* alle Ausgaben werden in demselben Konsolenfenster
* dargestellt, in dem das PHP Skript gestartet wurde.
**/
system('cmd /c '.$pfad);

echo "Methode 2\r\n";

/**
* Methode 2
* 
* Die .bat Datei wird ausgeführt, alle eventuellen
* Ausgaben werden ausgegeben. Im Beispiel hier maximal
* 2096 Zeichen.
* Hier im Beispiel wird damit die Variable $read gefüllt
* und dann in Zeile 29 einfach ausgegeben.
**/
$handle = popen('cmd /c '.$pfad, 'r');
$read = fread($handle, 2096);
echo "Ausgabe der .bat Datei: ".$read;
pclose($handle);

echo "Methode 3\r\n";
/**
* Methode 3 von NerdyByNature
* 
* Durch die Verwendung von exec zusammen mit start wird ein
* neues Konsolenfenster in Windows geöffnet.
**/
exec('start '.$pfad);
...zur Antwort

Ja, klar geht das, SQLyog z.B. macht genau das.

.

Im Prinzip gibt es zwei Möglichkeiten:

.

Nummer 1: Du übermittelst nur Daten an das php-Script, am besten per Post, das tütet das dann in vorgefertigte SQL-Statements.

.

Nummer 2: Du hast eine Funktion, die alles ungefiltert an den MySQL-Server übergibst und stöpselst die Querys in C# zusammen.

.

Persönlich empfehle ich Dir, einen SOAP Webservice in php zu bauen und von C# aus zu benutzen.

...zur Antwort

Hast Du das hier schon getestet? Einfach neu zuweisen?

http://www.watchingthenet.com/how-to-configure-firefox-to-open-different-types-of-files.html

...zur Antwort