Zum Inhalt springen

Markus.K

Mitglieder
  • Gesamte Inhalte

    92
  • Benutzer seit

  • Letzter Besuch

Beiträge von Markus.K

  1. Was meinst du damit...? Gibt es da ne Rubrik? Einen Link oder sowas?
    Also ich hab hier einen Schnipsel...

    <?
    function findfile($location='',$fileregex='') {
    if (!$location or !is_dir($location) or !$fileregex) {
    return false;
    }

    $matchedfiles = "";

    $all = opendir($location);
    while ($file = readdir($all)) {
    // Ists eine Datei?
    if (is_dir($location.'/'.$file) and $file <> ".." and $file <> ".") {
    $matchedfiles.= $file . "<br>";
    }
    // Ists ein Verzeichnis?
    elseif (!is_dir($location.'/'.$file)) {
    if (preg_match($fileregex,$file)) {
    $matchedfiles.= $file . "<br>";;
    }
    }
    }
    closedir($all);
    unset($all);
    return $matchedfiles;
    }

    $htmlfiles = findfile('U:/','/\.html?$/');
    [...]
    ?>[/PHP]

    Das Ding läuft (so ähnlich jedenfalls) als Bestandteil der index.php auf meinem localhost daheim - der Aufbau der Rückgabe in $matchedfiles müsste natürlich etwas verfeinert werden. In Deinem Fall zB durch Checkboxen.;) und der Regex für die Dateien wird vermutlich irgendwas in der Art /\.(doc|xls|ppt|xxx)$/ sein - aber welche Dateien genau du hast, wirst du selbst sicher am Besten wissen.

    Die Funktion findfile sollte bei Dir vielleicht zweistufig arbeiten:

    1. Schritt: Je eine Liste Verzeichnisse und eine Liste Dateien einlesen

    2. Schritt: Die beiden Listen (separat) sortieren, und zusammengekettet als Result zurückgeben.

    Eine Datei würde wie folgt als HTML angezeigt:

    [code]<input type="checkbox" name="chk42" value="//SERVER/Dateien/file01.doc">file01.doc[/code]

    wobei die 42 natürlich ein fortlaufender Zähler ist. Und dein submit.php untendrunter darf alle chk1..chk999 (jaa...) durchtesten und die angeklickten im passenden Kontext in die DB schreiben.

    Ein Unterverzeichnis (auch [font=Courier New][b]..[/b][/font] wäre ein Verzeichnis, welches - anders als in obigem Schnipsel - zu beachten ist!) liefert einen Link auf das gleiche Anzeigeprogramm, nur dass hier dann das entsprechende Verzeichnis aufgelistet wird.

    Und ich möchte wetten, wenn Du das Ding etwas durchdenkst (und die Implementierung passt), lassen sich die Dateien für Deinen Zweck um Klassen eleganter als über den Windows-eigenen Datei-Öffnen-Dialog auswählen.

  2. Hab mir gerade nochmal den Thread angeschaut, vor allem deine Beschreibung, worauf das Ganze hinausläuft (beitrag #8). Und irgendwie frag ich mich, ob Du nicht noch einen gänzlich anderen Ansatz verfolgen solltest... wenn die Dokumente doch alle in einem Verz. (samt Unterverzeichnissen?) auf dem Fileserver liegen, müsste es doch möglich sein, dass der Webserver auf ebendiese Verzeichnisstruktur zumindest Leserechte bekommt, sprich man könnte den gesamten Verzeichnisinhalt via PHP auslesen und im Browser anzeigen -- und mithin dort anweisen, wenn eine Datei samt Verzeichnisname in die DB aufgenommen werden sollte.

    Nur mal so am Rande eingeworfen... ;)

  3. Ja :(

    ... ist das eine Sicherheitslücke, die ich da die ganze Zeit missbrauche und nur der IE hat sie? Ich verstehe nicht, warum das nur im IE geht, das sollten doch *eigentlich* auch Mozilla und Opera verstehen...

    ... habe auch mal OnBlur() und andere Fokus-Dinger ausprobiert - kein Erfolg... :( Aber wenn das nur im IE geht, dann bringt es mir irgendwie gar nix....

    An eine Sicherheitslücke glaub ich nicht. Vielleicht einfach ein JS-Fehler?

    Spiel mal mit folgendem Schnipsel rum, hab ich eben quick'n'dirty in ein .html gehackt, und in FF 1.5 getestet:

    <form name="testForm">
    
    <input name="inpTest" type="file">
    
    <form>
    
    <a href="javascript:alert(document.testForm.inpTest.value);">Hier testen</a>

    Wenn das so klappt, dann müsste es auch klappen, den testForm.inpTest.value beim Submit eines Forms komplett zu übergeben...

  4. ach jetzt verstehe ich :D hmm, also ich habe sowas noch nie gebraucht, aber eine idee wäre es mit JS den Inhalt des Fensters, nachdem die Datei ausgewählt worden ist, auszulesen und ein hiddenfield mit diesem inhalt zu erzeugen. weiss nicht obs geht, aber da würde ich ansetzen
    Doch! Das Auslesen per JS ist denk ich mal schon ein guter Ansatz (sicher besser als mein kruder Ansatz mit VBS:floet:). Ich würde aber irgendwie anraten, den file-Input ausserhalb desjenige Formulars zu legen, mit welchem man letztlich das PHP zum Speichern aufruft.

    also ganz grob:

    
    <script>
    
    function SubmitForm() {
    
      document.sForm.inpDateiname.value = document.iForm.inpDatei.value;
    
    }
    
    </script>
    
    <form name="iForm">
    
    <input type="file" name="Datei" value="">
    
    </form>
    
    <form name="sForm" action="xyz.php" onSubmit="SubmitForm();">
    
    <input type="hidden" name="Dateiname" value="">
    
    <input type="submit" value="Los damit">
    
    </form>
    
    

    Obs so geht, hab ich aber nicht getestet...

  5. Wenn ich input type="file" verwende, bekomme ich nur den Dateinamen einer Datei, aus "C:\Temp\test.doc" wird "test.doc" ... ich brauche aber unbedingt den ganzen Pfad, da ich den Link zu dieser Datei in einer Datenbank speichern will....
    Die Datei selbst möchtest du sicher nicht in der Datei oder sonstwie auf dem Server speichern? Fürchte, nur mit HTML-Mitteln wirst du da nicht hinkommen. Der Webserver (und mithin PHP) hat einfach keine direkte Verbindungzum lokalen Dateisystem des Users, und der <input type=file> macht nichts anderes, als den kompletten Inhalt der Datei (samt Dateiname, aber halt ohne Pfad) an den Server zu übermitteln.

    Schonmal über ein VBScript nachgedacht? Ist zwar "böse" und nur für IEgitt, dürfte Deine Idee aber am leichtesten lösen. Zumal wenn ich davon ausgehen darf, dass es sich hierbei um eine rein interne Angelegenheit handeln dürfte.

  6. Darf ich mal ganz blöde fragen, welche IT-Kenntnisse Du schon mitbringst?

    Und zum Thema zertifizierte Weiterbildung: Schau mal auf http://pi1.fernuni-hagen.de/cbt/cbt.html

    Die Kurse hier sind mit ca. 200€ inkl. Prüfungszertifikat denk ich mal wesentlich bezahlbarer als SGD, und einige dürften einem potenziellen Ausbildungsbetrieb signalisieren, dass Du schon in der Materie drin bist. Vielleicht kann Dir das auch bezgl. meines Vorschlags mit dem Seiteneinstieg ein paar Türen öffnen - inhaltlich und vom Anspruch sind die Kurse (mache da gerade den Java+DB) übrigens nicht ohne, aber machbar.

  7. Also, wenn überhaupt SGD, dann wird dieses Zertifikat allenfalls dafür taugen, wenn man anschließend als Branchenfremder in eine betriebliche IT-Qualifikation (sei es als weitere Ausbildung, sei es als Umschulung) reinkommen will. Im Extremfall könnte das heissen: Zertifikat machen, bei entsprechendem Betrieb für schmales Gehalt als Quereinsteiger reinkommen (ich weiss, die Chancen dafür sind nicht unbedingt so prall), dort noch vier Jahre Praxiserfahrung sammeln, und dann zur Externenprüfung bei der örtlichen IHK anmelden.

    Ob es das Geld wert ist, vermag ich nicht zu beurteilen, hab da aber gewisse Zweifel. Ist auch eine Frage der Relation, und um wie viel es die Chancen auf den Einstieg tatsächlich steigern könnte.

  8. Neu schreiben ist nicht nötig. Statt $var=rand lese den Wert aus einer Textdatei ein bzw. setze $var=1 wenn Datei noch nicht vorhanden ist, oder nix sinnvolles (also einen Wert 1..3) zurückliefert.

    vor dem switch $var passend inkrementieren, also ($var==3?$var=1:$var++) und nach dem switch den neuen $var in gleiche Textdatei zurückschreiben.

    Ist doch kein Problem, oder?

    EDIT: Hmpf, zu langsam...

  9. ich benötige in cgi eine funktion, die bei aufruf eine internetseite anping, wenn antwoert erfolgreich war soll er weiterleiten auf die page im negativ fall soll er auf eine andere weiterleiten...
    Zunächstmal: CGI ist keine Programmiersprache, sondern eher ein Konzept;) Erstmal machen wirs in Perl, und wenn das klappt, basteln wir das in ein CGI um.

    Der erste Schritt besteht darin, die Doku zur Hand zu nehmen. Und siehe da: Das Beispiel in http://www.perl.com/doc/manual/html/lib/Net/Ping.html tut bis auf die Ausgabe im Browser eigentlich schon alles was du willst.

  10. Das Problem dabei ist, dass ich keine DB hinterlegen kann. Und ohne DB ist das glaube ich zu aufwendig. Oder hättest du in der Hinsicht noch einen Vorschlag?
    Mal abgesehen davon, dass ich das für reichlich merkwürdig halte, wer ein Intranet mit u.a. 1000 PDfs betreibt, sollte wohl auch Freiraum für einen MySQL oder so haben... ich hab meine ersten Versuche mit Perl mittels CSV-Dateien gelöst, und bei relativ kleinen Datenbeständen ging das von der Performance her sogar. Hier auf der Arbeit halten wir das so, dass für kleine Datenmengen (also im Regelfall max. 20 Datensätze und vielleicht bis zu fünf Felder) mit Textdateien agiert wird, was dabei zum Teil sogar performanter als per Datenbank ist. Dafür haben wir sogar eine eigene Klasse implementiert, die die Zugriffe auf die Daten steuern. Wesentlich aufwendiger wirds sicher nicht, wenn es (was ich mal vermute) solche Klassen auf schon fertig zum Runterladen gibt, z.B. mal hier suchen gehen;)

    Allerdings fürchte ich, für Deine Belange könnte das mit Textdatei schon etwas kritisch werden. Also wenn Dein Arbeitgeber eine sinnvolle Lösung will, mach ihm mal klar, dass eine Datenbank ziemlich unverzichtbar sein dürfte. Wesentliche Anforderungen (Kosten) bestehen eigentlich nicht, wenn schon ein Intranet vorhanden ist, und der Aufwand sowas zu installieren sollte für einen angehenden FISI wohl erlernbar sein.

  11. Die Sprache wäre nicht das Problem. (Kann Javascript und n bissle PHP), aber der Aufwand ist denke ich bei den vorgeschlagenen Möglichkeiten zu hoch.

    Die Lösung mit den vielen HTML Pages war auch mein erster Einfall, aber das ist zu Ressourcen fressend. Ich denke ich werde mir eine andere Lösung überlegen müssen.

    Danke auf jeden Fall für eure Beiträge. ;)

    Naja, angesichts der Anzahl der zu durchsuchenden Dokumente würd ich aus meiner Erfahrung heraus sagen, dass Du mit genannter Lösung gar nicht soo viel Aufwand haben wirst. Verzeichnis (ggf. rekursiv) einlesen, für jedes PDF ein pdftotext, das dabei entstehende .txt mit einem geeigneten Insert in die DB schieben ist zB in Perl in weniger als 100 Codezeilen unterzubringen - und in PHP dürfte es in gleicher Größenordnung liegen. Sonderlich anspruchsvoll ist die Aufgabe auch nicht, also ich würde es als gute Übung empfehlen, um auch mehr als nur "n bissle" PHP draufzukriegen :) Würd ich für mich (bin da aber auch routiniert drin) ca. 2 Stunden Arbeit ansetzen.

    Das zweite Prg., welches die Suche anschmeißt, dürfte in PHP sogar wesentlich einfacher als in Perl sein...

  12. Du könntest den Text aller PDF`Dokumente manuell rauskopieren und den Text in ein HTML Dokument kopieren, die Überschrift des Textes der jeweiligen Seite dann als Link zum Dokument selbst. Nun kann jeder der diese Seite öffnet in der sich mehrere Megabyte Text befinden praktisch alle Dokumente durchsuchen, nach einem Wort. Das ist naütlich so ziemlich das krankeste was ich mir vorstellen könnte, weil es auch keineswegs Sinnvoll ist. Die Dokumente werden immer von oben anch unten durchsucht und die Wörter tauchen wahrscheinlich haufenweise auf und am Ende bringts doch irgendwie recht wenig.
    Also, vom Ansatz her tatsächlich gar nicht soo absurd wie man denken könnte. Also stellen wir das Grundkonzept der Suche mal so um, dass nicht in HTML-Seiten, sondern vernünftig in einer Datenbank (SELECT ... FROM suche WHERE worte LIKE "%$suchbegriff%"). Dann brauchts noch ein Indexerstellungsskript und einen cronjob für dieses (oder wenn die Seiten nicht stündlich geändert werden, kann das auch der Verantwortliche manuell anschmeißen, oder man integriert den Aufruf in das eigene CMS oder oder oder...).

    Die eigentliche Arbeit kommt nun: Das Indexprogramm greift sich nun eine jede PDF-Datei und liest den Text dieses Dokuments per gs ein. Wie das genau geht, mal ins gs-Manual schauen, hilfsweise mal nach ps2ascii googeln oder hier schauen. In die Datenbanktabelle wird nun Name und Pfad des PDFs zusammen mit dem Inhalt abgelegt. Richtig rund wird die Sache übrigens, wenn man nicht nur PDF, sondern ggf. gleich die Seiten des drumherumliegenden Intranets oder gar Webauftritts mit einliest und auf genau gleiche Weise ablegt.

    Die Suchfunktion pickt sich nun also einfach einen SELECT mit genau dem genannten Suchbegriff und spuckt Links auf sämtliche passenden Seiten (PDFs) aus.

    Ungefähr so in der Art haben wir kürzlich was für einen Kunden montiert... ca. 3000 HTML-Seiten plus weit über 1000 (größtenteils aber nur einseitige) PDFs und das Ganze geht auf einer hardwaretechnisch nicht soo schwachen LAMPe wirklich ratzfatz ab.

  13. ???
    Äääähmjaaaa... wird vermutlich daran liegen, dass ich nur mit perl-kompatiblen ("Standard"!) RegExen agiere. ereg_replace scheint da nach einem oberflächlichen Blick ins Manual etwas anders zu ticken...

    Einen Versuch hab ich aber noch...

    ereg_replace

    Tipp: Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace().
    Ich hoffe mal, beim Aufruf bist du nicht auf ereg_replace eingeschränkt.;)
  14. wenn ich so einen String habe C[32_14] wie kann ich denn mit regulären ausdrücken nur diesen Teil 32_14 rausparsen ?

    Es sollen also das C[ und das ] wegfallen!

    Kann mir jemand bei dem RegExp helfen ?

    In Perl würde sich das wie folgt lesen:

    $str = "C[32_14]";

    $str =~ m/C\[(.+?)\]/;

    $match = $1;

    oder etwas kompakter:

    $result = "C[32_14]";

    $result =~ s/C\[(.+?)\]/\1/;

    --> liefert den ersten minimalen Treffer zwischen "C[" und "]" zurück.

    Wie das in Javascript umzusetzen ist, wäre die nächste Frage. ->SelfHTML müsste helfen.

  15. Als "Platzhalter" muss hier die Folge (.+?) dienen: Der . als "beliebiges Zeichen" + für ein oder mehr Vorkommen dieses Zeichens (alternativ * wenn da auch gar kein Zeichen kommt) und ? für minimales Matching. Letzteres ist erforderlich, da ja mehrere Kommentarfolgen vorkommen, und nur genau diese und nicht der richtige Text zwischen zwei Kommentaren erschlagen wird.

    Vollständig: /<!--(.+?)-->/

    @Carnie: Dein Ausdruck würde allenfalls Kommentare aus beliebig vielen Minuszeichen erschlagen;)

  16. Richtig erkannt....

    Und wenn ich selbst Ahnung hätte würd ich ja niemanden beauftragen...oder?

    Nee, schon klar:) Es gibt ja noch den Unterschied, ob man soviel Ahnung hat, dass man "mitreden" kann oder auch soviel, dass man es selbst machen könnte. Und selbst wenn letzteres erfüllt ist, muss das ja auch noch nicht bedeuten, dass man die nötigen Ressourcen (Zeit...) dafür hat.

    Und für ersteren Fall meine leidige Erfahrung: Viele Projekte werden oft dadurch richtig schwierig (oder scheitern gar), wenn der Auftraggeber nicht richtig darlegen kann, was er eigentlich will und so letztlich die Beteiligten aneinander vorbeireden. Mit so einem Fall darf ich mich gerade wieder mal rumärgern:(

  17. Es scheint mir auch sehr Unseriös zu sein. Den Sinn und Zweck kann man nicht erkennen und wer schon eine Angebotsseite so programmiert, dass man es nicht mal markieren kann, dazu noch in einem Deutsch ...
    Ich würds nicht unbedingt als "unseriös" abstempeln, kann auch einfach nur massive Unkenntnis des Anbieters über die Terminologie sein. Mit anderen Worten: Er/sie/es hat zwar eine ungefähre Vorstellung von der zu erstellenden Anwendung, aber absolut überhaupt keine Ahnung von der Materie.

    Angebote > 20T€ sind also schon allein aufgrund des nötigen Beratungsbedarfs als realistisch einzustufen:D Aber damit ich auch eine Chance auf den Job kriege: Ich machs für 19.999€

  18. Und manchmal sollte ich auch das Handbuch lesen *oops*

    Beschreibung

    int preg_match ( string Suchmuster, string Zeichenkette [, array &Treffer [, int Flags [, int Versatz]]] )

    Durchsucht Zeichenkette nach Übereinstimmungen mit dem in Suchmuster angegebenen regulären Ausdruck.

    Falls der Parameter Treffer angegeben wurde, wird er mit den Suchergebnissen gefüllt. $treffer[0] enthält dann den Text, der mit dem kompletten Suchmuster übereinstimmt, $treffer[1] den Text, der mit dem ersten eingeklammerten Teil-Suchmuster übereinstimmt und so weiter.

    Damit und mit dem genannten Regex sollte der Kurs aber zu finden sein:)

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...