PHP Mein PHP-Noob Frage Thread

sry, bei mir funktionieren beide nicht...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$array = file_get_contents("Weapons/Ump.txt");
$zerlegt = explode("|", $array);
$dmg = $zerlegt[1];
$echo $dmg;
?>


</body>
</html>

Parse error: syntax error, unexpected T_VARIABLE in /mnt/web7/30/21/52249221/htdocs/Html/Combatarms/test.php on line 13
 
$echo geht auch nicht sondern ohne $

€: und $array = file_get_contents(...)
passt im Grunde auch nicht. Funktion ändert sich zwar nicht - aber file_get_contents gibt einen String zurück.
Das ist schlechter Stil. Ein Array wird das erst mit explode(..) ;) und selbst das wird normal nicht mit $array benannt, aber das nur am Rande
 
Zuletzt bearbeitet:
PHP:
$file_array=file('text.blabla');
	
	
	foreach($file_array AS $data) 
	{
	 	$data=split('|', $data);		
		echo $data[1];
         }

Versuch das mal bei dir einzubauen.
 
hey danke
ich möchte aber die Werte dann in verschiedenen Variablen, da ich mit ihnen weiterrechne!

Auserdem will ich später ein Funktion bauen, mit der man noch weitere Werte für weitere (virtuelle) Waffen hinzufügen kann. D.h. ich habe dann pro Waffe eine Textdatei... jetzt will ich aber das alle angzeigt werden nach dem Schema das wir hier schon haben. Dabei möchte ich aber nicht immer selber den Dateinamen eintragen! Ich möchte auch erstmal nur mit Textdateien arbeiten.

Ich hab mir dabei bis jetzt gedacht, dass ich die Namen der Textdateien in einer weiteren Textdatei speichern lassen könnte und dann aus dieser die Dateinamen abrufen lasse und mit so einer foreach schleife den Vorgang für jede Datei wiederholen lasse?
Richtiger Ansatz?
 
naja das ist doch kein problem...

Hier mal wie nen Array "Waffen" aufgebaut sein könnte:

PHP:
$waffen['M4A1']['dmg']=80;
$waffen['M4A1']['reichweite']=80;
$waffen['M4A1']['magazin']=80;

$waffen['AK47']['dmg']=80;
$waffen['AK47']['reichweite']=80;
$waffen['AK47']['magazin']=80;

Du musst dich halt nur drum kümmern das das array richtig gefüllt wird.

ps: Pro waffe eine datei halte ich für unnötig. Warum nich eine Datei wo alle waffen drin sind?

Eine Zeile = Eine Waffe
Pro Zeile XX Spalten, mit ";" getrennt.
 
vielen Dank schomal, aber könntest du vll. mal ein Beispiel Script und txt.txt vorstellen? Wäre echt nett ;D
 
Sei mir nicht böse, aber ein bißchen Eigeninitiative wäre nicht schlecht ;)


In Hanni2k's Post um 15:05 findest du alles was du brauchst.
Die Textdatei könnte so aussehen:
m4a1;80;40;100

und anstatt "|" explodest du über ";"

(kannst auch nach PHP und CSV googlen, da gibts X Tuts)
 
sry bin einfach zu blöd ;(

<?php
$file_array=file('weapons/Ump.txt');


foreach($file_array AS $data)
{
$data=split('|', $data);
echo $data[0];
}
?>

Ump|29|30|3,3|Mittel|SingleShot

Warning: split() [function.split]: REG_EMPTY in /mnt/web7/30/21/52249221/htdocs/Html/Combatarms/test.php on line 15


EDIT: noch ne kleine Frage: Kann man in einem div:hover einen anderen Inhalt darstellen lassen als in dem div?
 
Zuletzt bearbeitet:
Verwende explode und nicht split, split ist deprecated (und bei split brauchst du wohl Regex-Ausdrücke, deswegen KÖNNTS nicht gehen)

PHP:
<?php
$file_array=file('test.txt');

foreach($file_array AS $data) 
{
	$waffendaten = explode('|', $data); 
	echo $waffendaten[0];
} 
?>
 
ok super ;D
funktioniert und kapiert :)


vll. habt ihr ja auch noch ne antwort hierdrauf:

EDIT: noch ne kleine Frage: Kann man in einem div:hover einen anderen Inhalt darstellen lassen als in dem div?
Heute 17:50
 
noch was: je nach Waffenname soll jetzt eine Hintergrundatei (png) ausgewählt werden.
<?php
$file_array=file('weapons/Ump.txt');

foreach($file_array AS $data)
{
$waffendaten = explode('|', $data);
$name = $waffendaten[0];
$dmg = $waffendaten[1];
$k = $waffendaten[2];
$t = $waffendaten[3];
$recoil = $waffendaten[4];
$firemode = $waffendaten[5];
}


?>


Und dann


Und folgendes sol dann ausgegeben werden: <div style="background-image:url($name.png);">

Ich hab da mal was gelesen das man irgendwie einen backslah machen muss damit Php erkennt welche Sachen Php und welche andere sind...

Gruß Tim
 
PHP:
echo '<div style="background-image:url('.$name.'png);">';

Aber wieso versucht du es nicht einfach nen bisschen, nur so kannst du was lernen, wenn andere es dir nur vorkauen wirst du immer auf Hilfe angewiesen sein.
(bei Kleinigkeiten)..
 
Zuletzt bearbeitet:
hier schnell hingeschrieben (geht nicht unter ie6, >ie6 ka, musst du probieren. normal ist :hover nur für Anker vorgesehn afair)

HTML:
<html>
<head>
<title>test</title>

<style type="text/css">
#test {
	width: 300px;
	height: 300px;
	background-color: blue;
}

#test .zeigen-bei-nicht-hover {
	display: inline;
}

#test .zeigen-bei-hover {
	display: none;
}

#test:hover {
	background-color: yellow;
}

#test:hover .zeigen-bei-hover {
	display: inline;
}

#test:hover .zeigen-bei-nicht-hover {
	display: none;
}
</style>

</head>

<body>

<div id="test">
<span class="zeigen-bei-nicht-hover">bla bla bla bla</span>
<span class="zeigen-bei-hover">bla2 bla2 bla2</span>
</div>

</body>
</html>

Im FF 2.x gehts. Normalerweise macht man sowas aber eher mit Java Script.

Eins noch, aus reiner Nächstenliebe:

PHP:
<div style="background-image:url(<?=$name;?>.png);">

mfg,
Patric

PS
Kauf dir ein PHP-Buch ;)
http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-2310
Das hab ich in einer alten Auflage vor Jahren gekauft, ist ganz gut für den absoluten PHP-Anfänger
 
Eins noch, aus reiner Nächstenliebe:


PHP:
<div style="background-image:url(<?=$name;?>.png);">

Nicht alle Webserver gehen mit <?= ( Einstellungssache ) damit es auf "jedem" Server läuft
folgendes lieber verwenden:

PHP:
<div style="background-image:url(<?PHP $name;?>.png);">
//Oder halt wenn alles in PHP gehalten ist s.o
 
Zurück
Oben