php tabelle parsen und als array zurückgeben

nightryu

Mitglied
hiho :3 ich stehe vor einer schweren aufgabe...
ich habe eine tabelle (html) wie in bild1 und source1.

view.php

HTML:
				<table border="0" width="100%" cellpadding="0" cellspacing="2">
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">1</td>
							<td width="47%" valign="top" class="xbody">Fate
</td>
							<td width="3%" align="right" valign="top" class="xhead bold">1</td>

							<td width="47%" valign="top" class="xbody">Schicksal
</td>
					</tr>
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">2</td>
							<td width="47%" valign="top" class="xbody">Oak Ring
</td>
							<td width="3%" align="right" valign="top" class="xhead bold">2</td>
							<td width="47%" valign="top" class="xbody">Der Ochre-Ring

</td>
					</tr>
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">3</td>
							<td width="47%" valign="top" class="xbody">Allies
</td>
							<td width="3%" align="right" valign="top" class="xhead bold">3</td>
							<td width="47%" valign="top" class="xbody">Der Freund
</td>

					</tr>
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">4</td>
							<td width="47%" valign="top" class="xbody">Challenge
</td>
							<td width="3%" align="right" valign="top" class="xhead bold">4</td>
							<td width="47%" valign="top" class="xbody">Die Herausforderung
</td>
					</tr>

					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">5</td>
							<td width="47%" valign="top" class="xbody">Duel
</td>
							<td width="3%" align="right" valign="top" class="xhead bold">5</td>
							<td width="47%" valign="top" class="xbody">Das Duell
</td>
					</tr>
					<tr>

							<td width="3%" align="right" valign="top" class="xhead bold">6</td>
							<td width="47%" valign="top" class="xbody">Blanc Law
</td>
							<td width="3%" align="right" valign="top" class="xhead bold">6</td>
							<td width="47%" valign="top" class="xbody">White Wolf Demon
</td>
					</tr>
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">7</td>

							<td width="47%" valign="top" class="xbody">Independence
</td>
							<td width="3%" align="right" valign="top" class="xhead bold">7</td>
							<td width="47%" valign="top" class="xbody">Unabhängigkeit
</td>
					</tr>
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">8</td>
							<td width="47%" valign="top" class="xbody">Depths

</td>
							<td width="3%" align="right" valign="top" class="xhead bold">8</td>
							<td width="47%" valign="top" class="xbody">In der Tiefe
</td>
					</tr>
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">9</td>
							<td width="47%" valign="top" class="xbody">Beast King
</td><td colspan="2"></td>

					</tr>
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">10</td>
							<td width="47%" valign="top" class="xbody">Juuousei
</td><td colspan="2"></td>
					</tr>
					<tr>
							<td width="3%" align="right" valign="top" class="xhead bold">11</td>

							<td width="47%" valign="top" class="xbody">Desire
</td><td colspan="2"></td>
					</tr></table>

ich wollte diese irgendwie als array ausgeben... also nur die werte davon...
das linke ist der originaltitel und das rechte der deutsche titel.
ich wollte das a la
$a[1][en] = "Fate"
$a[1][de] = "Schicksal"
$a[2][en] = "Oak Ring"
$a[2][de] = "Der Ochre-Ring"
$a[3][en] = "Challenge"
$a[3][de] = "Die Herausforderung"
...
$a[9][en] = "Beast King"
$a[9][de] = ""
$a[10][en] = "Juuousei"
$a[10][de] = ""


könnte mir da jemand unter die arme greifen?^^
 
Zuletzt bearbeitet:
Hi!

Habe ich das richtig verstanden...:
Du möchtest die vorhandene Tabelle mit PHP auslesen und die Werte in
ein Array schreiben, richtig?
Nun, wie wird denn die Tabelle generiert?

PHP ist eine serverseitige Sprache, du musst also etwas an den Server schicken, damit PHP hier etwas interpretieren kann.
Wenn du wirklich diese Tabelle so wie sie ist auslesen möchtest, bleib nur Javascript, da
es sich bei JS um eine clientseitige Sprache handelt.

Hier könntest du mit document.getElementsByTagName('td') die Klasse und den Wert (innerHTML) auslesen und verarbeiten.

Viele Grüße,
Jacka
 
Zitat von Jacka:
Wenn du wirklich diese Tabelle so wie sie ist auslesen möchtest, bleib nur Javascript

Was kann ihn der Tabelle Java Script besser als PHP ,habe zwar auch die frage nicht verstanden ,aber deine Antwort noch weniger !

Gruß No-Body:)
 
Hi!

Na ja, mit Javascript könnte man den Inhalt der Tabelle schon noch auselesen und zwar über die TD Elemente. Mit PHP nicht ohne irgendetwas zum Server zu senden..

Die Frage ist natürlich: Was fange ich dann damit an bzw. wozu das Ganze?
Möglich ist es, sinvoll sei aber dahingestellt.

Grüße,
Jacka
 
Also ich glaube das er den inhalt ,aus einer Datenbank holt und dann kann er ja mit PHP alles machen ,aber finde deine Lösung schon interesant ,bin was Java Script angeht noch anfänger ,aber macht Sinn

mfg No-Body:)
 
ja, also die tabelle habe ich von der seite eines bekannten ausgelesen (mit erlaubnis versteht sich^^).
und ich bekomme eben nur das html davon, nun möchte ich das ganze html aber eben zerlegen und in ein array nach dem oben genannten musters schreiben. Habe den ganzen HTMLCode der Tabelle also in einer Variable vorliegen^^ Tut mir leid dass ich das etwas unklar formuliert habe :o)
 
Ah!

OK, du hast die HTML Daten in einer PHP-Variablen?
Jetzt hab ich´s verstanden :)

Wenn es sich nur um diese 11 Datensätze handelt, würde ich das per Hand machen ;)
"scherz"

Klingt jetzt vielleicht etwas verrückt, aber in diesem Fall würde ich fast soweit gehen und die Tabelle ausgeben und mit JS auslesen.
Denn in PHP bleibt dir nur durch Textsuche Positionen bestimmen und das stückweise auseinander rupfen der Strings...

Grüße,
Jacka
 
hmm... ich dachte da könnte man vielleicht ne funktion schreiben die das macht.. mit ner schleife... das ganze läuft in hoher anzahl mehrmals nacheinander ab^^ weil er das damals alles von hand erfasst hat, und ich will das nun in eine datenbank bringen :o)

dazu ruf ich das ganze auf, lass die seite mit nem metarefresh zur nächsten seite hopsen und da das nächste auslesen etc :o)
 
Prinzipiell kannst du dir die Daten dort extrahieren, aber es ist nicht ganz so einfach.

Welches Textpositionen könnte man zum auslesen nehmen?
Vielleicht "</" oder die Klassennamen.

Nicht einfach, ich werde mal ein bisschen grübeln.

Grüße,
Jacka
 
das wäre toll wenn dir etwas einfiele... mir steht eine funktion zur verfügung die den string zwischen zwei definierten strings auslesen kann. (get_string_between)

PHP:
function get_string_between($string, $start, $end){
	$string = " ".$string;
	$ini = strpos($string,$start);
	if ($ini == 0) return "";
	$ini += strlen($start);
	$len = strpos($string,$end,$ini) - $ini;
	return substr($string,$ini,$len);
}

falls das weiterhilft :)


edit//: habe gerade etwas interessantes gefunden... die vorraussetzungen werden erfüllt. Aber ich sehe damit leider nicht ganz durch wie ich damit das erreiche was ich suche... das ganze nennt sich js_extractor (nichts mit javascript, ist kürzel des namens vom entwickler^^)
Url:http://jacksleight.com/code
 
Zuletzt bearbeitet:
Zurück