Just nu i M3-nätverket
Gå till innehåll

Innehållet i en textfil till <textarea> (html)


Kalle Dator1
 Share

Rekommendera Poster

Kalle Dator1

Hej !

 

Egentligen säger väl rubriken det mesta...

 

Jag sliter mitt hår för att hitta en lämplig metod - enklast möjliga - för att föra över en textmassa i en vanlig textfil till en s k <textarea> på en webbsida. :thumbsdown:

 

Den ena lösningen efter den andra har snurrat framför mig på skärmen, med java script och med php-kod, men ingen tycks vara på humör att fungera.

Lösningarna som jag hittat på internet, har förresten varit fulla av motsägande och slarviga koder, som jag har tappat allt förtroende för.

 

Jag har andra mindre php-snuttar lite varstans på mina webbsidor (hemsidan) som jag vet fungerar, så php-installationen på datorn är jag inte så orolig för....

Däremot är jag inte någon fena på att skriva php-kod, änu mindre java, även om jag har fuskat lite med båda språken emellanåt.

Så jag föredrar om det finns något enklare och helst bara i html-kod...  Finns det ?

 

/Kalle

Länk till kommentar
Dela på andra webbplatser

Nej, du kan inte  göra det direkt i HTML. Men det behöver nog inte vara jättekomplicerat med PHP, nu är jag ingen expert på PHP men detta borde fungera för dig tycker jag.

<textarea>
<?php
  $myfile = fopen("minfil.txt", "r") or die("Kan ej öppna minfil.txt");
  echo fread($myfile,filesize("minfil.txt"));
  fclose($myfile);
?>
</textarea>

Det är förhoppningsvis enkelt, det är rätt tydligt och du behöver inte blanda in saker som javascript och ajax och sånt.

Länk till kommentar
Dela på andra webbplatser

Tror att .M's förslag med php bör fungera. Om du redan har/använder jQuery så är det inte heller så svårt att aplicera på detta:

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="utf-8">
   <title>myTitle</title>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
   <script type="text/javascript">
      $.get('myfile.txt', function(data) {
         $('#myTextArea').append(data);
      });
   </script>
</head>

<body>
   <textarea id="myTextArea"></textarea>
</body>

</html>
Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

Hej igen !

 

M !

 

Splendido - Magnifique - Elegante.....Denna ska vi ha....

 

Jag får ut texten till <textarea> ur denna minimala kod. Inga problem och inga krångligheter med svårförståelig kod....

 

Cluster !

 

jQuery har jag inte hittills haft att brottas med, men jag ska spara din kod för ev framtida behov, när jag känner för att anta nya utmaningar - ser inte så marig ut !!

 

Har ett par följdfrågor:

Hur ändrar man font och fontstorlek på text inom <textarea>, förutom att man ju kan ändra den i originalet (vilket inte verkar påverka utseendet i <textarea>)  ?

 

Och - kan man låsa texten så att den inte går att manipulera ?

Nu verkar den tillgänglig för vem som helst att ändra i textrutan. Men det ändrar förmodligen inte för någon annan än den tillfälliga användaren - kan man våga anta...  Men ändå !

 

/Kalle

Länk till kommentar
Dela på andra webbplatser

Du får skapa css-regler för att ändra storlek.

<style type="text/css">
  textarea { font-family:Comic Sans MS; font-size:22pt }
</style>

Du kan redigera texten i textrutan, men du kan inte spara om du inte lägger dit en knapp och ser till att det finns kod som sparar om filen. Men du kan lägga på readonly attribut på din textarea, då går den inte att ändra på.

<textarea readonly></textarea>
Länk till kommentar
Dela på andra webbplatser

I så fall så låter det inte som att textarea är det du skall använda...

 

Bättre då en div som du med CSS stylar. Om textfilen innehåller html markup så kommer den tolkas/renderas.

<!DOCTYPE html><html lang="en">   <head>      <meta charset="utf-8">      <title>myTitle</title>      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>      <script type="text/javascript">         $.get('353757.txt', function(data) {            $('#myTextArea').append(data);         });      </script>   <style>   #myTextArea {      width: 10em;      height: 8em;      border: 1px solid #000;      overflow-y: auto;      }   </style>         </head>   <body>      <div id="myTextArea"></div>   </body></html>

Blir nog enklare att komma med råd om du beskriver vad det är du vill åstadkomma, vad är det för innehåll i textfilen, vad är det du skall använda innehållet i textarean till...

Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

M !

 

Fungerade bra med readonly !

 

Cluster !

 

Inget märkvärdigt och 'top secure' med texten. Den innehåller "bara" en programbeskrivning och lite bakgrundsinformation nedanför presentationen av ett VB-program, som webbsidan i övrigt visar en bild av...

 

Det slog mig bara att texten var så lättändrad i textarean, men nu med 'readonly' är ju detta fixat - även om den inte gick att ändra tidigare  i sitt ursprung...!

 

Sedan tyckte jag att texten var lite småstilad, vilket inte verkade gå att ändra på, varken från originalet eller med manipulation i <textarea>

 

Har inte hunnit testa M:s förslag på CSS-regler, och är inte säker på att jag fortfarande har css installerat på datorn, sedan jag migrerade till Windows10. Återstår att kolla !

 

Stort tack för hjälpen, båda ! !

 

/Kalle

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

 och är inte säker på att jag fortfarande har css installerat på datorn, sedan jag migrerade till Windows10. Återstår att kolla !

 

CSS är inget man installerar, det finns inbyggt i webläsaren.

  • Gilla 1
Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

CSS är inget man installerar, det finns inbyggt i webläsaren.

Kan så vara - nu.... Desto bättre !

 

Men senast jag hade någonting med detta att göra, handlade det om att ha det installlerat.

Möjligt att jag minns fel - börjar bli för gammal att hålla allt i huvudet...

 

Anhåller om tålamod<<<<<<<<

Länk till kommentar
Dela på andra webbplatser

  • 3 years later...
Kalle Dator1
På 2017-04-07 på 06:50, skrev .M:

Nej, du kan inte  göra det direkt i HTML. Men det behöver nog inte vara jättekomplicerat med PHP, nu är jag ingen expert på PHP men detta borde fungera för dig tycker jag.


<textarea>
<?php
  $myfile = fopen("minfil.txt", "r") or die("Kan ej öppna minfil.txt");
  echo fread($myfile,filesize("minfil.txt"));
  fclose($myfile);
?>
</textarea>

Det är förhoppningsvis enkelt, det är rätt tydligt och du behöver inte blanda in saker som javascript och ajax och sånt.

Hej igen !

 

Är lite nyfiken om jag skulle kunna skicka texten till en <textarea>, eller till en iframe (title) på en närbelägen webbsida (i samma katalog), och hur jag i så fall hanterar detta !

 

Grejen är den att jag tänker överföra texten från en textfil, som räknar besöken på min hemsida enligt:

$file = fopen("Count.txt","r");
$contents = fgets($file)+1;
fclose($file);
$file=fopen("Count.txt","w");
fwrite($file,$contents);
fclose($file);

 

 

M v h

 

/Kalle

Länk till kommentar
Dela på andra webbplatser

Du har koden (enl. tidigare fungerande exempel ovan) för att läsa in textfilen och presentera (i en div eller annan tag) den på alla sidor du vill att besökarna skall se den.

Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

Hej Cluster, och tack för ditt svar !

 

Låter enkelt det som du beskriver, men jag är väl lite trögfattad: 

 

Det är ju en sak att överföra en text (från ex. en textfil) till en kontroll på samma sida där den skapas. Men vad använder man för transfereringskod för att adressera textinnehållet till en kontroll på en annan sida ?

Och ska det då ske mellan de två webbsidorna i den gemensamma katalogen, alldeles bortsett från deras förekomst på internet, eller ska det ske via cyberrymden och http://.... till http://... om du förstår hur jag menar.

 

Layouten är följande, att en sida som heter index.php tar hand om och utför uppdateringen av textfilen Count.txt med "+ 1" (ny besökare till hemsidan). Den använder då koden som jag presenterade i det tidigare inlägget.

 

Textfilens nu uppdaterade innehåll ska sedan ut till själva huvudsidan startsida.html, som av olika skäl inte kan vara en php-fil (Annars hade jag kunnat lägga ovannämnda php-script i den !)

 

De är på den sistnämnda sidan jag vill presentera den nya siffran från filen Count.txt. 

 

Då till <title> på en iframe på startsidan som jag lagt efter:

 

Du är beskare nr: [_________]

 

Eller en s k <div>

 

Det är alltså själva utförandet som  jag är ute efter.

Hur bra och lyckad koden i sig än är så har jag ingen aning om själva tillvägagångssättet. 

Visst jag kan labba, men gissar att jag nog får tillbringa några dygn svärandes och frustande, när jag inte har baskunskaperna, medan det säkert är hur enkelt som helst för någon som har dem..

 

M v h

 

/Kalle

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Om startsidan inte kan vara php så kan du inte få in sk dynamiskt innehåll. En ren html-fil är statisk.

 

En html-fil skickas exakt som den är skriven direkt till användarens webbläsare, servern gör ingenting med den. Det är som att läsa en bok. 

Redigerad av Mr Andersson
Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

Aj då !

 

Kruxet är att jag inte kan lägga in en fungerande php-script i en html-sida. Sidan måste som helhet då även heta .php också om än innehållet är mest html-kod.

Då kan jag inte köra sidan p g a att den då betraktas som "Ej säker' och vägrar starta, vilket var orsaken till att jag fickflytta den befintliga php-scripten till Index.php (som även sköter indikeringen på besök och lämnar upplýsning om varifrån...)

Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

Tillägg:

 

Då kunde jag - sm sagt- behållt startsidan som php och haft hela operationen i startsidan (.php) !

 

Har skaffat certifiering för "https", men jag verkar inte få någon support från no-ip med SCR-underlaget, som är sjutton så krångligt att förstå sig på...

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Det som eventuellt skulle funka är att du på startsida.html gör en omdirigering till din index.php.

 

I <head> avsnittet lägger du till:

<meta http-equiv = "refresh" content = "0; url = index.php" />

 

Och sen flyttar du allt under <body> till index.php 

Om det funkar (utan säkerhetsvarningar) så kan du använda de exemplen som andra skrivit tidigare.

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

När det gäller certifikat så måste dessa installeras på servern, det är inget du kan göra med php. 

Antingen kan du göra det själv om det finns admin-sida eller så måste den som sköter servern lägga in det.

 

Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

Jag har Apache-servern på hemmaplan, i en av mina datorer, som går 24/7 !

 

Det vidrör en fråga jag ställt till supporten på no-ip, var jag ska lägga in kommandon och den kod som skapas med vissa kommandon, som dåligt förklarat ska tillställas servern på något sätt.

 

Delvis en annan fråga än topic, men ändå.....

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Att lägga in certifikat i en Apache-server har jag försökt, men det är en massa krångel med nycklar hit och dit som jag inte får rätt på. Det är inte bara att ge kommando "installera detta certifikat". Men jag har kanske gjort fel. Men, att hantera certifikat är inte enkelt. Kanske det finns nån här som vet hur man gör (rätt)?

 

Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

Vill gärna hoppas på det, att det finns någon med fena på servrar och certifikat...

 

Funderade lite på denna omdirigering:

 

Nu när jag har det så att Index.php tar hand om besökare, innebär detta att jag inte f n behöver ange någon startsida initialt, eftersom index.php dirigerar om till just startsidan, när uppdateringen av antalet besökare avklarats och besöket har analyserats för ursprungsland, -region och -city.

Om jag ska flytta allt under <body> på startsidan till index.php och sedan dirigera tillbaka till startsidan igen (för vilket ändamål ?) känns det att bli lite snurrigt. Då skulle väl lika gärna alltsammans kunna ligga i index.php, vilket inte heller känns sådär helriktigt.....

Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

Tack så länge för goda råd och återkoppling !

 

Måste tillfälligt bryta här för andra göromål som pockar på !

 

Vi hörs, och som sagt - tack så länge. Är öppen för fler råd och anvisningar

 

/Kalle

Länk till kommentar
Dela på andra webbplatser

Kalle Dator1

Hej !

 

Har gått tillbaka och ändrat startsidan från html till php, och det verkar fungera, alldeles frånsett att varningen kommer upp om osäker webbplats. Men det verkar som det sker oavsett...

 

Problemet med att överföra från textfilen till antingen <textarea> eller till <iframe> i någon form, är att den text som eventuellt syns nu är nästan osynlig och med små tecken och svart teckenfärg på röd botten.

Jag hittar inte någon metod att få de stora tecknen som jag hade tidigare, och jag har inte heller kvar hur detta var ordnat då.

Kan inte heller erinra mig om jag hade vare sig Iframe eller textarea  - men tror inte jag använde någon av dem !

Jag fick fram texten på något sätt ändå och till utrymmet efter "Du är besökare nr:"

Länk till kommentar
Dela på andra webbplatser

Som tidigare sagts i denna tråd så är nog varken textarea eller iframe du ska använda. Det är ju ingen av dess egenskaper/funktion som du vill ha egentligen.

 

Använd helt vanligt element (div) och styla (mha css) precis så som du önskar att det ska se ut. 

Länk till kommentar
Dela på andra webbplatser

 Share

×
×
  • Skapa nytt...