Globale Variablen ...

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

  • Globale Variablen ...

    Hi,
    hier mal wieder ein Problem.

    Ich habe eine globale Variable, die $anz_bilder heisst.
    So definiert: global $anz_bilder;

    Jetzt fülle ich die Variable und das echo gibt mir auch 129 wieder:

    $anz_bilder = count($dateilist_jpg);
    echo $anz_bilder;

    Dann rufe ich eine Funktion auf, die check_thumbnail heisst:

    for ($i = 0; $i < count($dateilist_nitf); $i++)
    {
    $pfad_nitf = "$verzeichnis_nitf/$dateilist_nitf[$i]";

    check_thumbnail($pfad_nitf);

    echo $anz_bilder;

    ......

    Das echo nach der Funktion gibt auch die richtige Zahl wieder.

    Die Funtion selber sieht so aus:

    function check_thumbnail($pfad_nitf)
    {
    echo $anz_bilder;
    for ($i = 0; $i < $anz_bilder; $i++)
    {
    echo "bla";
    $teilstring = substr($pfad_nitf,strlen($pfad_nitf)-12,7);
    }
    }

    Das echo $anz_bilder gibt mir jetzt gar nichts zurück und in die For-Schleife geht er auch.

    Warum ???

    Wenn ich das jetzt ausführe, gibt
    Manus manum lavat.

  • #2
    Probier das so:

    function check_thumbnail($pfad_nitf)
    {
    global $anz_bilder;
    echo $anz_bilder;
    for ($i = 0; $i < $anz_bilder; $i++)
    {
    echo "bla";
    $teilstring = substr($pfad_nitf,strlen($pfad_nitf)-12,7);
    }
    }

    CAT Music Files

    Kommentar


    • #3
      Hi Sky,
      es funzt und warum ???

      Ich kenne das nur, das eine globale Variable überall gilt. Ist das in PHP nicht so ???
      Manus manum lavat.

      Kommentar


      • #4
        Zitat PHP-Manual, Seite http://www.php.net/manual/en/languag...bles.scope.php
        In PHP global variables must be declared global inside a function if they are going to be used in that function. An example: [...]

        CAT Music Files

        Kommentar


        • #5
          Hi,
          wieder ein Problem:

          Ich habe diese Fkt.

          $inhalt = str_replace ("\.nitf","_thumbnail.jmp",$inhalt);

          Das .nitf soll durch _thumbnail.jmp ersetzt werden. Es funktioniert aber nur, wenn ich den . vor nitf wegnehme. Dann habe ich in der Ausgabe aber den Punkt zuviel. Warum funktioniert das nicht mit dem Escapen ???
          Manus manum lavat.

          Kommentar


          • #6
            Hat sich schon erledigt, daraus resultiert aber eine andere Frage.

            Wie kann ich zwei Änderungen in einer Zeile vornehmen.

            BsP:

            Zeile: <A HREF="./AngelaxMerkel_1411828.nitf">Angela Merkel</A>

            Nun soll ./ in ../ geändert werden und .nitf in _thumbnail.jmp

            Ist das möglich ???
            Manus manum lavat.

            Kommentar


            • #7
              $zeile = str_replace('./','../',str_replace('.nitf','_thumbnail.jmp',$zeile))

              CAT Music Files

              Kommentar


              • #8
                Hier mal wieder ein neues Problem:

                Ich habe jetzt eine Datei generiert, die so aussieht:

                <HTML>
                <HEAD>
                <TITLE>Merkel und Stoiber heizen Debatte um Kanzlerkandidatur weiter an</TITLE>
                <META content="www.dpa-info.com" name="GENERATOR">
                <TOBJECT>
                <TOBJECT.SUBJECT TOBJECT.SUBJECT.REFNUM="11000000" TOBJECT.SUBJECT.CODE=POL>
                </TOBJECT>
                <IPTC7901.WIREHEAD IPTC7901.PRIORITY="4" IPTC7901.CATEGORY="pl" IPTC7901.MSGNUM="8" IPTC7901.KEYWORD="/Parteien/CDU/CSU/" IPTC7901.TIMEDATE="20011229 112120+0100" IPTC7901.SVCID="onl" IPTC7901.CATCHLINE="/brennpunkte/">
                </HEAD>
                <BODY ID="DPA-NEWSBOX"><HEDLINE>
                <font face="arial,helvetica" size="2" color="#000000"><b>Merkel und Stoiber heizen Debatte um Kanzlerkandidatur weiter an</b></font><br><br>
                </HEDLINE>

                <font face="arial,helvetica" size="2" color="#000000">Berlin (dpa) - CDU-... unterbreiten.</font>

                <BLOCK>
                <TABLE ID="REFERENCED-IMAGES">
                <TBODY>

                <TR><TD>
                <IMG SRC="../../publishedPictures/AngelaxMerkel_1411828_thumbnail.jpg">
                </TD></TR>

                </TBODY>
                </TABLE>
                </BLOCK>

                </BODY>
                </HTML>

                Jetzt möchte ich das <IMG SRC="../../publishedPictures/AngelaxMerkel_1411828_thumbnail.jpg">

                an die Stelle des Tags </HEDLINE> haben.

                Geht das und wenn ja, wie
                Manus manum lavat.

                Kommentar


                • #9
                  preg_match("/<IMG(.*)>/i",$inhalt,$matches);
                  $inhalt = str_replace("<IMG$matches[1]>",'',str_replace('</HEDLINE>',"IMG$matches[1]>",$inhalt));

                  CAT Music Files

                  Kommentar


                  • #10
                    Hi Sky,
                    jetzt zerschiesst das ein bisschen meine Ausgabe, da ich schon mal eine Variable matches habe. Muss es unbedingt matches sein, oder kann man den frei wählen ???
                    Manus manum lavat.

                    Kommentar


                    • #11
                      Hab schon gemerkt, man kann die Variable frei wählen
                      Manus manum lavat.

                      Kommentar


                      • #12
                        Wenn ich die Funktion einfüge

                        $inhalt = str_replace("<IMG$tach[1]>",'',str_replace('</HEDLINE>',"IMG$tach[1]>",$inhalt));

                        ist die Ausgabe:

                        IMG SRC="../../publishedPictures/AngelaxMerkel_1411828_thumbnail.jpg">

                        Also fehlt am Anfang ein <

                        Wenn ich das < aber jetzt vor das IMG$tach[1]>",$inhalt)); einfüge, verschwindet gleich alles ???
                        Manus manum lavat.

                        Kommentar


                        • #13
                          Hm, hast du nach der Änderung (< dazu) denn wieder das Original oder bereits die bearbeitete Version genommen?

                          CAT Music Files

                          Kommentar


                          • #14
                            Hähhh ???

                            Mein Quellcode sieht dann so aus:

                            if ($temp[$i]!=$temp[$i-1])
                            {
                            //Datei mit der Endung .html wird zum Editieren geöffnet
                            $fp = fopen(preg_replace("!\.nitf$!i",".html","$verz_html/$dateilist_nitf[$i]"),'wb') or die ("Couldn't create file");
                            //Änderungen in der Datei werden vollzogen
                            $inhalt = str_replace ("</HL1>","</b></font><br><br>",$inhalt);
                            $inhalt = str_replace ("</P><P>","<br><br>",$inhalt);
                            $inhalt = str_replace ("</P>","</font>",$inhalt);
                            $inhalt = str_replace ("<P>","<font face=\"arial,helvetica\" size=\"2\" color=\"#000000\">",$inhalt);
                            $inhalt = str_replace ("</PERSON></BYLINE>","</b></font>",$inhalt);
                            $inhalt = str_replace ("<BYLINE><PERSON>","<font face=\"arial,helvetica\" size=\"2\" color=\"#000000\">",$inhalt);
                            $inhalt = preg_replace("!<location>.*?</location>!i","",preg_replace("!<(.*?)nitf>!i","<$1HTML>",preg_replace("!<(.*?)hl1>!i","<$1font face=\"arial,helvetica\" size=\"2\" color=\"#000000\"><b>",$inhalt)));
                            $inhalt = str_replace('./','../../publishedPictures/',str_replace('.nitf','_thumbnail.jpg',$inhalt));
                            $inhalt = str_replace('<A HREF','<IMG SRC',$inhalt);
                            $inhalt = preg_replace("!\">.*?</a>!i","\">",$inhalt);
                            preg_match("!<IMG(.*)>!i",$inhalt,$tach);
                            $inhalt = str_replace("<IMG$tach[1]>",'',str_replace('</HEDLINE>',"IMG$tach[1]>",$inhalt));

                            $neuername = preg_replace("!\.nitf$!i",".html","$verz_html/$dateilist_nitf[$i]");

                            fwrite($fp,$inhalt);
                            fclose($fp);

                            //Variable $datum wir zum sortieren benötigt
                            $dateiliste2[$i] = $datum." ".$zeit." <a href=\"$neuername\">$matches[1]</a>";
                            }

                            Hilft das ???
                            Manus manum lavat.

                            Kommentar


                            • #15
                              Ok, try

                              \<IMG$tach[1]>

                              CAT Music Files

                              Kommentar

                              Lädt...
                              X