Worte auf fremder Seite anzeigen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Worte auf fremder Seite anzeigen

    Hi,

    Folgendes Scirpt soll eine html-Datei einlesen und alle Wörter die darin vorkommen ausgeben - funktioniert aber nicht

    Weder die regulären Ausdrücke noch array_unique arbeiten so wie ich mir das Vorstelle..

    PHP-Code:
    <?
    if(isset($_POST['url'])) {
        $data = implode(" ",file($_POST['url']));
        $data = preg_replace("/<head>(.*)<\/head>/U","",strip_tags($data));
        $data = preg_replace("/<script(.*)<\/script>/U","",strip_tags($data));
        $keys = explode(" ",$data);
        
        for ($i=0;$i<count($keys);$i++) {
            $keys[$i] = trim($keys[$i]);
        }
        array_unique($keys);
        sort($keys);
        echo "<pre>";
        print_r($keys);
    } else {
    ?>
    <form action="<?=$PHP_SELF?>" method="post">
    <p><input name="url"></p>
    <input type="submit">
    </form>
    <?    
    }
    ?>
    [COLOR=darkblue].: 1+1=23 :.[/COLOR]

  • #2
    Re: Worte auf fremder Seite anzeigen

    um das problem einzugrenzen, habe ich bisher folgende debug-maßnahmen ergriffen:
    ___________________
    ___________________
    ___________________
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich versteh den Witz nicht ganz..

      willst du mir nicht helfen?
      [COLOR=darkblue].: 1+1=23 :.[/COLOR]

      Kommentar


      • #4
        funktioniert aber nicht
        ... IST KEINE FEHLERBESCHREIBUNG!

        daher ....

        um das problem einzugrenzen, habe ich bisher folgende debug-maßnahmen ergriffen:
        ___________________
        ___________________
        ___________________
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Weder die regulären Ausdrücke noch array_unique arbeiten so wie ich mir das Vorstelle..
          helfen wollen schon (dazu sind wir ja hier)... aber aufgrund mangelnder beschriebung des Problems nicht können....

          beantworte mal folgende fragen:
          - was willst du machen ? (soll eine lokale Datei ausgelesen werden oder von einem fremden server ?)
          - was stellst du dir vor, wie es aussehen soll oder welches ergebniss möchtest du haben ??

          gruss

          Kommentar


          • #6
            Eventuell könnte strip_tags oder eine eigene preg_match Funktion helfen
            PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

            Kommentar


            • #7
              Original geschrieben von syco23
              willst du mir nicht helfen?
              OffTopic:
              doch.

              aber ich möchte, dass du (und allgemein die fragesteller hier) gleich ein paar nötige informationen mitliefern.
              (das kann z.b. sein, "an dieser stelle habe ich mir den inhalt von array $xy mal mit print_r ausgeben lassen, und dabei kam dies und das heraus. dies enspricht dem, was ich erwarte/dies entspricht nicht dem, was ich erwartet habe". etc. etc. etc.)

              nach einer frage immer erst alle relevanten informationen eine nach der anderen aus dem fragesteller herauskitzeln zu müssen, ist nervig.

              (darüber hinaus kann man bei einem großteil der fragen hier davon ausgehen, dass diese sich schon von selbst erübrigt haben würden, wenn der fragesteller solch elementare debugging-versuche selbst unternommen hätte.
              auch systematisches debugging gehört zum programmieren - aber das scheinen viele hier noch immer nicht verstanden zu haben.)
              Zuletzt geändert von wahsaga; 12.05.2004, 14:08.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hi,

                Entschuldigt bitte die Minimal-Beschreibung des Problems. Ich dacht Ihr Profis, seht gleich wo der Hund drinnen ist

                Also etwas ausführlicher:

                Wenn ich dem Scipt die Url dieser Seite übergebe ( http://www.php-resource.de/forum/sho...088#post257088 ) bekomme ich folgendes Ergebnis:
                Array
                (
                [0] =>
                (weitere 4653 leere Felder)
                [4654] =>
                [4655] => "<pre>";
                print_r($keys);
                }
                [4656] => ",$data);

                for
                [4657] => ",file($_POST['url']));
                $data
                [4658] => "an
                [4659] => #000000;
                [4660] => #000000;
                [4661] => #000000;
                [4662] => #000000;
                [4663] => #000000;
                [4664] => #010187;
                [4665] => #010187;
                [4666] => #CFCFCF
                [4667] => #CFCFCF
                [4668] => #FF4400;
                [4669] => #FF4400;
                [4670] => #cat
                [4671] => #cat
                [4672] => #cat
                [4673] => #cat
                [4674] => #ltlink
                [4675] => #ltlink
                [4676] => #ltlink
                [4677] => #ltlink
                [4678] => $xy
                [4679] => &
                [4680] => &
                [4681] => &
                [4682] => &
                [4683] => &
                [4684] => {
                $data
                [4685] => {
                $keys[$i]
                [4686] => {
                ?>
                <form
                [4687] => ©2000
                [4688] => >
                [4689] => >
                [4690] => >
                [4691] => >
                [4692] => <
                [4693] => <?
                if(isset($_POST['url']))
                [4694] =>
                [4695] =>
                [4696] =>
                [4697] =>
                [4698] =>
                [4699] =>
                [4700] =>
                [4701] =>
                [4702] => Bücher
                [4703] => Events
                [4704] => Forum
                [4705] => Homepagevorlagen
                [4706] => Jobs
                [4707] => Leistungen
                [4708] => News
                [4709] => PHP
                [4710] => PHP-Webhosting
                [4711] => Produkte
                [4712] => Scripts
                [4713] => Top25
                [4714] => Tutorials
                [4715] => Umfragen
                [4716] => kostenlose
                [4717] => phpeXchange
                [4718] => Home
                [4719] => ($i=0;$i<count($keys);$i++)
                [4720] => (Client/Server)--
                [4721] => (LAMP,
                [4722] => (aus
                [4723] => (darüber
                [4724] => (das
                [4725] => (dazu
                [4726] => (soll
                [4727] => (und
                [4728] => -
                [4729] => -
                [4730] => -
                [4731] => -
                [4732] => -
                [4733] => -
                [4734] => -
                [4735] => -
                [4736] => -
                [4737] => -
                [4738] => -
                [4739] => -
                [4740] => --------------------
                [4741] => --------------------
                [4742] => ..
                [4743] => ..
                [4744] => ..
                [4745] => ...
                [4746] => ...--
                [4747] => ....
                [4748] => .STDFont8
                [4749] => .bginput
                [4750] => .thtcolor
                [4751] => /
                [4752] => /
                [4753] => /
                [4754] => /
                [4755] => /
                [4756] => /
                [4757] => 1
                [4758] => 11:10
                [4759] => 11px;
                [4760] => 12-05-2004
                [4761] => 12-05-2004
                [4762] => 12-05-2004
                [4763] => 12-05-2004
                [4764] => 12-05-2004
                [4765] => 12-05-2004
                [4766] => 12-05-2004
                [4767] => 12-05-2004
                [4768] => 12:28
                [4769] => 12px;
                [4770] => 13:02
                [4771] => 13:16
                [4772] => 13:38
                [4773] => 13:46
                [4774] => 14:06
                [4775] => 14:08
                [4776] => 17:46
                [4777] => 1999-2002
                [4778] => 2
                [4779] => 2.2.7
                [4780] => 2002,
                [4781] => 3
                [4782] => 4
                [4783] => 5
                [4784] => 255
                [4785] => 255
                [4786] => 815
                [4787] => 2001
                [4788] => 2001
                [4789] => 2002
                [4790] => 2002
                [4791] => 2002
                [4792] => 2002
                [4793] => 2003
                [4794] => 6074
                [4795] => 6597
                [4796] => 6597
                [4797] => 16518
                [4798] => 8pt;
                [4799] => :
                [4800] => :
                [4801] => :
                [4802] => =
                [4803] => =
                [4804] => =
                [4805] => =
                [4806] => =
                [4807] => ?
                [4808] => ?)
                [4809] => ??
                [4810] => A:active
                [4811] => A:active
                [4812] => A:active
                [4813] => A:hover
                [4814] => A:hover
                [4815] => A:hover
                [4816] => A:link,
                [4817] => A:link,
                [4818] => A:link,
                [4819] => A:visited,
                [4820] => A:visited,
                [4821] => A:visited,
                [4822] => ADMINISTRATOR
                [4823] => ASP,
                [4824] => Ableitung:
                [4825] => Ableitung:
                [4826] => Abraxax
                [4827] => Alle
                [4828] => Anhänge
                [4829] => Ankündigungen--
                [4830] => Anm.:
                [4831] => Anm.:
                [4832] => Anspielungen
                [4833] => Anspielungen
                [4834] => Appz
                [4835] => Archiv
                [4836] => Arial,
                [4837] => Ausdrücke
                [4838] => Ausdrücke
                [4839] => Autor
                [4840] => BACKGROUND-COLOR:
                [4841] => BACKGROUND-COLOR:
                [4842] => BRAINSTORMING
                [4843] => Banner
                [4844] => Beitrag
                [4845] => Beitrag
                [4846] => Beitrag
                [4847] => Beitrag
                [4848] => Beitrag
                [4849] => Beitrag
                [4850] => Beitrag
                [4851] => Beiträge
                [4852] => Beiträge
                [4853] => Beiträge
                [4854] => Beiträge:
                [4855] => Beiträge:
                [4856] => Beiträge:
                [4857] => Beiträge:
                [4858] => Beiträge:
                [4859] => Beiträge:
                [4860] => Beiträge:
                [4861] => Benutzer
                [4862] => Betriebssysteme,
                [4863] => Bücher-Forum--
                [4864] => C
                [4865] => CGI,
                [4866] => CMS
                [4867] => COLOR:
                [4868] => COLOR:
                [4869] => COLOR:
                [4870] => COLOR:
                [4871] => COLOR:
                [4872] => COLOR:
                [4873] => COLOR:
                [4874] => COLOR:
                [4875] => COLOR:
                [4876] => CSS
                [4877] => CSS--
                [4878] => Co.)--
                [4879] => Code
                [4880] => Code
                [4881] => Code
                [4882] => Computer
                [4883] => Contenido
                [4884] => Copyright
                [4885] => Dafür
                [4886] => Datei
                [4887] => Datenbanken--
                [4888] => Dec
                [4889] => Dec
                [4890] => Deine
                [4891] => Design
                [4892] => Deutschland
                [4893] => Developer
                [4894] => Developer
                [4895] => Diese
                [4896] => Diesen
                [4897] => Diesen
                [4898] => Diesen
                [4899] => Diesen
                [4900] => Diesen
                [4901] => Diesen
                [4902] => Diesen
                [4903] => Dieses
                [4904] => Dir
                [4905] => Dir
                [4906] => Dir
                [4907] => Dir
                [4908] => Diskussionen--
                [4909] => Domain
                [4910] => Domains--
                [4911] => DrWeb.de
                [4912] => Druckbare
                [4913] => Du
                [4914] => E-Business
                [4915] => E-Business
                [4916] => Ein
                [4917] => Eingangshalle--
                [4918] => Enterprises
                (Rest entfernt, sieht aber ähnlich aus)
                Ich hätte mir allerdings erwartet, dass jede Zeichkette (Wort) nur 1mal vorkommt (und somit auch maximal 1 leeres Feld vorhanden ist).
                preg_replace arbeit auch nicht so wie ich es mir vostelle. Eigentlich sollte alles vor "</head>" sowie eventuelle Javascripts entfernt werden.

                um das problem einzugrenzen, habe ich bisher folgende debug-maßnahmen ergriffen:
                ___________________
                ___________________
                ___________________
                .. Ich verstehs immer noch nicht.
                Eventuell könnte strip_tags [..] helfen
                .. ist doch eh dabei...

                Gruß,
                syco23
                Zuletzt geändert von syco23; 30.10.2005, 18:51.
                [COLOR=darkblue].: 1+1=23 :.[/COLOR]

                Kommentar


                • #9
                  PHP-Code:
                      $data preg_replace("/<head>(.*)</head>/U","",strip_tags($data));
                  $data preg_replace("/<script(.*)</script>/U","",strip_tags($data)); 
                  Wie soll das denn funktionieren?
                  zuerst entfernst du alle Tags aus $data und suchst dann nach "<head>"?
                  danach entfernst du nochmal alle Tags aus $data und suchst dann nach "<script>"?

                  Kommentar


                  • #10
                    Achso:
                    aus dem php-manual:
                    array array_unique ( array array)
                    array_unique() nimmt array und gibt ein neues Array zurück, aus dem alle doppelten Einträge entfernt wurden.
                    Was passiert bei die mit dem Array, das zurückgegeben wird?

                    Kommentar


                    • #11
                      Danke !

                      Tut mir leid die Fehler waren wirklich dumm. Dass array_unique nicht für sich stehen kann, wusste ich nicht, das erklärt einiges

                      Icb bräuchte jetzt noch Hilfe bei den Regulären Ausdrücken, da komm ich wiedermal nicht weiter.

                      Ich möchte sowohl alles vor </head> als auch eventuelle Javascripts entfernen.

                      Gruß,
                      Syco
                      [COLOR=darkblue].: 1+1=23 :.[/COLOR]

                      Kommentar


                      • #12
                        schau dir deinen code nochmal genau an. Besonders diesen Teil
                        PHP-Code:
                            $data implode(" ",file($_POST['url']));
                            
                        $data preg_replace("/<head>(.*)</head>/U","",strip_tags($data));
                            
                        $data preg_replace("/<script(.*)</script>/U","",strip_tags($data));
                            
                        $keys explode(" ",$data); 
                        Was genau passiert hier?
                        zuerst wird eine Datei als string in die var $data eingelesen.
                        Dann werden mit strip_tags() alle tags aus $data entfernt.
                        Jetzt wird nach dem tag "<head>" gesucht.
                        logischerweise kann dieser tag nicht gefunden werden, da er gerade entfernt wurde.
                        Was also tun?

                        Kommentar


                        • #13
                          Hallo Oppi,

                          Das strip_tags Problem hatte ich schon vor dem letzen Post beseitigt. Wie gesagt, waren wirklich dumme Fehler.

                          Damit jetzt auch das Entfernen von "<head>..</head>" und "<script..</script>" funktioniert, musste ich erst mal alle Zeilenumbrüche entfernen. Darauf muss man mal kommen.
                          [COLOR=darkblue].: 1+1=23 :.[/COLOR]

                          Kommentar


                          • #14
                            oder einfach den modifier m benutzen

                            Kommentar


                            • #15
                              man lernt nie aus
                              [COLOR=darkblue].: 1+1=23 :.[/COLOR]

                              Kommentar

                              Lädt...
                              X