• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Einzelnes Zeichen aus Array/String?

Rocky007

Mitglied
Hallo,
ich lasse mir über folgende Konstruktion Zeichen aus einer Webseite ausgeben:

PHP:
<?php
foreach($search as $s) {
    $td1 = $s->find('td[class=DexFang]');
    $td2 = $s->find('td');
    //echo $s;
    foreach($td1 as $t1) {
        //echo $t1;
    }
    foreach($td2 as $t2) {
        //echo $t2;
        $t2_1 = explode('</td></tr>', $t2);
        //echo $t2_1[0];
        $t3_1 = explode('<td class="DexFang">', $t2_1[0]);
        //echo $t3_1[0];
        $t4_1 = explode('</td>', $t3_1[0]);
        //echo $t4_1[0];
        $t5_1 = explode('<td>', $t4_1[0]);
        //echo $t5_1[1];
        $t6_1 = explode('(', $t5_1[1]);
        //echo $t6_1[1];
        $t7_1 = explode(')', $t6_1[1]);
       
        $fang = $t7_1[0];
    }
}
?>

$fang sieht nach der ganzen "Operation" folgendermaßen aus: 000011000100*++
Nun möchte ich jede einzelne Ziffer bzw. jedes einzelne Symbol daraus mit einer MySQL Query verwerten, jedoch weiss ich nicht wie ich die einzeln bekomme, habe schon verschiedene array_ und string_ Komponenten versucht.

Hoffe ihr könnt mir helfen,
Vielen Dank schonmal
 
Werbung:
PHP:
<?php
  $string = "000011000100*++";
 
  for ($i = 0; $i < strlen($string); $i++)
       echo "$string[$i] <br />";

?>
 
Werbung:
Das steht in $fang nicht das, was du uns hier geschrieben hast.

Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Habe nun mal | zeichen drum gemacht:

PHP:
foreach($search as $s) {
    $td1 = $s->find('td[class=DexFang]');
    $td2 = $s->find('td');
    //echo $s;
    foreach($td1 as $t1) {
        //echo $t1;
    }
    foreach($td2 as $t2) {
        //echo $t2;
        $t2_1 = explode('</td></tr>', $t2);
        //echo $t2_1[0];
        $t3_1 = explode('<td class="DexFang">', $t2_1[0]);
        //echo $t3_1[0];
        $t4_1 = explode('</td>', $t3_1[0]);
        //echo $t4_1[0];
        $t5_1 = explode('<td>', $t4_1[0]);
        //echo $t5_1[1];
        $t6_1 = explode('(', $t5_1[1]);
        //echo $t6_1[1];
        $t7_1 = explode(')', $t6_1[1]);
       
        $fang = "|".$t7_1[0]."|";
        echo $fang;
    }
}

folgendes sagt $fang aus: |||1||||1||||0||||0||||0||||0||||1||||0||||0||||1||||0||||0||||1||||||||+||||+|
 
Du willst doch $fang nach der Schleife weiterverarbeiten, oder? Also wäre es doch wohl interessanter, $fang nach der Schleife auszugeben!
 
Werbung:
Wenn ich es nach der Schleife ausgebe, bekomme ich genau das letzte "+" zeichen.
Jedoch möchte ich alle vorangegangenen Sachen auch weiterverarbeiten
 
Und darüber bist du verwundert? Noch mal genau hinsehen:
PHP:
$fang = $t7_1[0];
Was passiert denn da???
 
Folgendes habe ich als Grundlage

HTML:
<table id="DexFangTab">      <colgroup><col width="150" /></colgroup>      <tr style="background:#ccccff;"><td class="DexFang">Blau / Rot</td><td>          (1) Startpokemon bei Professor Eich (Alabastia)</td></tr>      <tr style="background:#ffffcc;"><td class="DexFang">Gelb</td><td>                (1) Azuria City Farmhaus (Gl&uuml;ckliches Pikachu) </td></tr>      <tr style="background:#cccc66;"><td class="DexFang">Gold / Silber</td><td>        (0) </td></tr>      <tr style="background:#ccffff;"><td class="DexFang">Kristall</td><td>            (0) </td></tr>      <tr style="background:#ffccff;"><td class="DexFang">Rubin / Saphir </td><td>      (0) </td></tr>      <tr style="background:#66ff66;"><td class="DexFang">Smaragd</td><td>              (0) </td></tr>      <tr style="background:#ccff99;"><td class="DexFang">Blattgr&uuml;n / Feuerrot</td><td> (1) Startpokemon</td></tr>      <tr style="background:#f0f0f0;"><td class="DexFang">Diamant / Perl </td><td>      (0) Tausch aus &auml;lteren GBA-Editionen (erscheint dann im Park der Freunde im Bereich "Ebene") </td></tr>      <tr style="background:#ccd0d0;"><td class="DexFang"><a href="../games/ds/platin/">Platin</a> </td><td>              (0) Tausch aus &auml;lteren GBA-Editionen </td></tr>      <tr style="background:#eeee77;"><td class="DexFang"><a href="../games/ds/hs/">HeartGold / SoulSilver</a> </td><td>  (1) Von Prof. Eich (nach dem Sieg &uuml;ber Rot) </td></tr>      <tr style="background:#ffffff;"><td class="DexFang"><a href="../games/ds/bw/">Schwarz / Wei&szlig;</a> </td><td>  (0)  </td></tr>      <tr style="background:#ffffff;"><td class="DexFang"><a href="../games/ds/bw2/">Schwarz / Wei&szlig; 2</a> </td><td>  (0)  </td></tr>              <tr style="background:#99ffcc;"><td class="DexFang"><a href="../games/3ds/xy/">X / Y</a> </td><td>  (1) In Illumina City von Professor Platan (Auswahl aus den Kanto-Startern) </td></tr>        <tr style="background:#f5fffa"><td> &nbsp; </td><td> &nbsp; </td></tr>      <tr style="background:#f5fffa"><td class="DexFang"><a href="../games/ds/fushigi/"> Mystery Dungeon </a> </td><td>    (+) Freudenturm E1-E5 </td></tr>      <tr style="background:#f5fffa"><td class="DexFang"><a href="../games/ds/dungeon2/"> Mystery Dungeon 2 </a> </td><td> (+) Verwirrwald </td></tr>    </table>

Dort will ich die Ziffern/Zeichen in Klammern

dafür muss ich ja alles exploden was ich nicht will....
Und $fang = $t7_1[0]; sind genau die zeichen in den Klammern, nur dass ich sie umbenenne
 
Werbung:
Rate mal, warum ich dir den Link zur Doku gepostet habe :( Kopfschüttel :(
 
Werbung:
Zurück
Oben