WebMartinMedlem sedan feb. 20074 inlägg
Hej
Jag vill inkludera text från en txt-fil och det går bra, problemet är att jag vill ha en rubrik och lite inledningstext i fet stil och sedan vill jag att brödtexten ska komma. Jag vill ha all text i en och samma txt-fil.
Skriver jag <?php include ("doc/text.txt"); ?> så kommer ju hela texen infogas.
Jag undrar om det går att göra detta med en array så att jag kan deklarera vad som är rubrik, inledning osv. För det skulle bli många onödiga txt-filer som jag måste ska var för sig.
Hjälp mig...
/Martin
TheMagnusMedlem sedan juli 2006175 inlägg
Det skulle du nog kunna lösa med lite reguljära uttryck. Hur ser textfilen ut, är den uppbyggd på ett specifikt sätt? T.ex. att rad #1 är rubrik, rad #2 är brödtext och rad #3 är signatur eller nåt?
The_HulkMedlem sedan juni 20031 937 inlägg
ska du formatera texten kan du inte använda include utan då passar funktionen file bättre, du kan läsa mer på http://se.php.net/manual/sv/function.file.php
WebMartinMedlem sedan feb. 20074 inlägg
Hej
Jag gjorde en variant på det hela i natt när jag satt uppe, men jag vet inte hur bra det komer att fungera i slutändan.
Min txt-fil ser ut så här:
(heter vilka.txt)
<?php
$rubrik = "Min rubrik";
$ingress = "Inledning";
$text = "Här kommer sedan texten";
$bild = "Bild.jpg";
?>
Sedan körde jag en include på hela filen därefter så skrev jag ut variablerana där jag ville ha dem.
Så här ser php-filen ut:
<?php include ("doc/vilka.txt") ?>
<table width="100%" cellpadding="7" border="0">
<tr>
<td colspan="2"><h1><?php echo "<b> $rubrik </b>" ?></h1></td>
</tr>
<tr>
<td colspan="2"><h3><?php echo "$ingress"; ?></h3></td>
</tr>
<tr>
<td valign="top">
<?php echo "$text"; ?>
</p>
</td>
<td width="200"><img src="<?php echo "$text"; ?>" border="0" galleyimg="no" height="200" width="150" vspace="0" hspace="0" /></td>
</tr>
</table>
Men är det någon som har ett bättre förslag!?
För dessa variabler vil jag sedan kunna uppdatera via en administrations sida.
Kanske ska gå på ditt spår the_hulk...
The_HulkMedlem sedan juni 20031 937 inlägg
Lägg gärna koden i antingen [ kod] ... [ /kod] eller [ php] ... [ /php] så blir det lättare att läsa.
det är bättre att lägga designen i den inkluderade txt-filen. man lägger in kodord där man vill ha dynamiskt material
fil.txt:
<table width="100%" cellpadding="7" border="0">
<tr>
<td colspan="2"><h1><b>{RUBRIK}</b></h1></td>
</tr>
<tr>
<td colspan="2"><h3>{INGRESS}</h3></td>
</tr>
<tr>
<td valign="top">
{TEXT}
</p>
</td>
<td width="200"><img src="{IMAGE}" border="0" galleyimg="no" height="200" width="150" vspace="0" hspace="0" /></td>
</tr>
</table>
$f = file_get_contents("fil.txt");
$s = array("{TEXT}", "{RUBRIK}", "{INGRESS}", "{IMAGE}");
$r = array("Här kommer sedan texten","Min rubrik", "Inledning", "Bild.jpg");
$b = str_replace($s, $r, $f);
echo $b;
kan inte garantera att koden är korrekt eftersom jag inte testat den. men det kanske kan ge lite tips.
/r
En annan lösning för själva PHP-filen är:
$f = file_get_contents("fil.txt");
$d = array();
$d["TEXT"] = "Här kommer sedan texten";
$d["RUBRIK"] = "Min rubrik";
$d["INGRESS"] = "Inledning";
$d["IMAGE"] = "Bild.jpg";
$b = preg_replace('/\{([a-z0-9\-_]*?)\}/ise', 'isset($data[\'\1\']) ? $data[\'\1\'] : \'\'', $f);
echo $b;
WebMartinMedlem sedan feb. 20074 inlägg
Hej
Nu har jag testat din kod the_hulk men jag får det inte att fungera som jag vill.
Jag vill inte ha nå html kod i txt-filer utan bara informationstext i min txt-fil.
Jag vill kunna hämta t ex bara rubriken och sedan pressentera den som <h1> i min php-fil.
Då kan jag lika bra köra en include () direkt för det gör ingen skilland.
händer du med?
TheMagnusMedlem sedan juli 2006175 inlägg
Måste du döpa filen till "vilka.txt"? Döp den till "vilka.php" så går det alldeles utmärkt att inkludera filen och använda dig av variablerna i den andra php-filen.
MatteMedlem sedan aug. 20002 970 inlägg
Lägg rubriken på första raden i din textfil.
Lägg ingressen på andra raden.
Lägg texten på rad 3 och nedåt.
Kör sedan följande:
$content = file('doc/text.txt');
$headline = trim(array_shift($content));
$ingress = trim(array_shift($content));
$content = implode("\n", $content);
Nu har du har du delarna i variabler, och kan göra vad du vill med dem.
WebMartinMedlem sedan feb. 20074 inlägg
Tack Matte
Din kod fungerar alldeless utmärkt.
Nu är problemet löst.
Tackar.