webForumDet fria alternativet

Hjälp med script

Webbutveckling

4 svar · 680 visningar · startad av gabrielf

Medlem sedan mars 20096 inlägg
Frågan#1

Jag har ett potentiellt problem på en hemsida jag administrerar. Saken är den att jag i en modul vill hämta ett bibelord från bibeln.se. Koden som ligger på hemsidan ser ut som följer:

<script language="Javascript" 
src="http://www.bibeln.se/pren/syndikering.jsp?
kund=info@en.kyrka.se"> </script>

och den sidan som är source för scriptet ser ut såhär:

<!--
document.writeln('<span class="bibel_ord">S&aring; &auml;lskade Gud v&auml;rlden, att han gav den sin ende son, f&ouml;r att var och en som tror p&aring; honom inte ska g&aring; under, utan ha evigt liv.</span><br><a href="http://www.bibeln.se/pren/instruktion.jsp" class="bibel_link">Joh&nbsp;3:16</a><p align="right"><a href="http://www.bibeln.se" target="_new" class="bibelnse_link">bibeln.se</a></p>');
					//-->

Mitt problem är att bibeln.se inte verkar vara 100% tillgänglig och jag var nån gång med om att den inte svarade och då laddade inte min sida heller. Jag vill skydda mig från detta och undrar om någon har nån idé om hur man skulle kunna göra det. Kan man köra nåt script i bakgrunden som uppdaterar då och då istället för att laddningen körs varje sidvisning? Det skulle väl dessutom ge en snabbare sida. Hur gör jag i så fall det?

Tacksam för all hjälp!

Medlem sedan mars 2007845 inlägg
#2

Är det ett slumpat bibelord du får eller dagens ord?

Jag skulle lösa det hela med php istället. Antingen köra något cron på natten som hämtar ordet om det är dagens eller så hämta några att slumpa från och byta ut dom nästa natt.

Medlem sedan mars 20096 inlägg
#3

Det är dagens bibelord jag får så det uppdateras varje dag. Hur kan jag lösa det med php? Jag har dessvärre rätt dålig koll på sådant.

Medlem sedan mars 2007845 inlägg
#4

I cron-skriptet något i den här stilen.

<?php
$str = file_get_contents('http://www.bibeln.se/pren/syndikering.jsp? kund=info@en.kyrka.se');

$str = preg_replace('document.writeln(\'', '', $str);
$str = preg_replace('\');', '', $str);

file_put_contents('./dagens_ord.txt', $str); ?>

Först hämtas strängen. Sen tas JavaScript-delen bort och sen skrivs den ner till en fil,

Om din sida använder php så kan du antingen sätta detta där det ska visas.

<?php echo file_get_contents('./dagens_ord.txt'); ?>

Eller så hämtar du det tidigare i skriptet och visar det med.

<?= $dagens_ord ?>

Det finns ingen felkoll i det där, men det gör det inte i din JavaScript heller.

Medlem sedan mars 20096 inlägg
#5

Tack så mycket!

Nu när Loopia äntligen ativerat Crontab så fungerar det fint.

UPDATE: Hmm, verkar trots allt inte fungera. dagens_ord.txt förblir tom. file_get_contents verkar inte fungera. Om man tar bort rad 4 och 5 så ändrar inte det på det.

259 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)