Wie erstellt man so eine Webseite?

  • Ersteller pfannkuchen2001
  • Erstellt am
das sieht nun so aus: http://johannes-froelich.de/blog.php

irgendwie auch komisch ;)

hast du noch eine Idee?


PS.: Ja, das mit dem caching muss ich mir wirklich ansehen... aber ich dachte dass caching möglicherweise nicht das beste ist, wenn man die ganze zeit noch am editieren und ändern ist... Gruß
 
Ich denke es müsste auch so heissen:

<?php

foreach($aTumblr as $posts) {
echo '<p>';
echo 'Titel: '.$posts['content']['title'].'<br/>';
echo 'Inhalt: '.$posts['content']['body'];
echo '</p>';
}

?>

also "posts" nicht "post"? aber einen unterschied macht es auch nicht, da ich immernoch nichts angezeigt bekomme... (unten auf der Webseite)

Warum nur?

Gruß
 
Achso klar. Hab was übersehen.

Es ist nicht foreach($aTumblr... sondern
foreach($aTumblr['posts'] as ...

So müsste es funktionieren.
Und wenn du das print_r rausnimmst, sieht's auch gut aus :)

Manis
 
  • Gefällt mir
Reaktionen: pfannkuchen2001
Du bist mein persönlicher Held heute Abend, wohnst du in der Nähe von Weimar? Dann fahr ich dir nen Kasten Bier vorbei!!!!

:clap:

Eine Frage noch: das PHP script bekommt Bilder so:
<img src="http://media.tumblr.com/4d67d03f98ca65feb477b9055fb9c6cf/tumblr_inline_mmydhzZCWS1qz4rgp.jpg"/>
(zum Beispiel) Gibt es eine möglichkeit, schon im Script diese Links zu ersetzen? das dann da stehen würde:

<a class="einzelbild" href="http://media.tumblr.com/4d67d03f98ca65feb477b9055fb9c6cf/tumblr_inline_mmydhzZCWS1qz4rgp.jpg">
<img src="http://media.tumblr.com/4d67d03f98ca65feb477b9055fb9c6cf/tumblr_inline_mmydhzZCWS1qz4rgp.jpg"/ width="200" height="200"></a>

Ich hatte mir so überlegt, dass man ja mit einem CSS script das machen könnte?
so ala:
<style type="text/css">img { *mache mich selbst zu einem link zu mir, und mache mich gleichzeitig noch klein...* ;}</style>


geht das?
Das wär der Knaller!


Gruß!
 
Ich hatte mir so überlegt, dass man ja mit einem CSS script das machen könnte?
Schön wärs. Nein, CSS ist nur zum formattieren da. Was anderes kann es auch nicht.
Wenn, dann müsstest du das mit JavaScript machen.

Aber du kannst es auch mit PHP machen.
Es ist zwar mehr Gebastel als was anderes und sobald Tumblr irgendwas ändert, gehts nicht mehr, aber es funktioniert momentan:
$string = $post['content']['body'];
while(true) {
//Position finden
$position = strpos($string, '<img src="', $offset);
if($position === false) break; //Bricht die Schlaufe ab, wenn nichts mehr gefunden wird.
$position_end = strpos($string, '"/>', $offset);
$length = $position_end - $position;

//Teil ausschneiden
$string_part = substr($string, $position, $length);

//URL rausfiltern
$url = explode('<img src="', $string_part);
$url = explode('"/>', $url[1]);
$url = $url[0];

//Neuen String zusammensetzen
$new_string = '<a class="einzelbild" href="'.$url.'"><img src="'.$url.'" width="200" height="200"></a>';
$string_before = substr($string, 0, $position);
$string_after = substr($string, $position_end+3);
$string = $string_before.$new_string.$string_after;

//Offset berechnen
$offset = $position_end + 3 + 56; // +3 wegen "/> am Ende des Original img. +extra (zusätzliche Zeichen des ersetzten Strings)
}
echo $string;

Liesse sich mit RegEx bestimmt schöner machen, aber ich kann das leider nicht.

Manis

PS: Komme aus der Schweiz, wohne also recht weit weg von Weimar.
 
  • Gefällt mir
Reaktionen: pfannkuchen2001
Hmmm, das sieht extrem gut aus, und ist wirklich ziemlich genau das was ich meinte ;)

ich habe jetzt diesen Codeblock in mein blog.php (vor die finale ausgabe der tumbler posts) eingesetzt und leider passiert garnichts.. Ich habe mal zwischen 1. und 2. Zeile ein "echo $string;" gesetzt, und hatte eigentlich erwartet, dass irgendetwas zu sehen ist. das ist es aber nicht. also habe ich entweder den Block an die falsche stelle gesetzt, oder das:
$string = $post['content']['body'];
funktioniert nicht so recht...

Erkennst du da einen fehler?

Gruß


Pfannkuchen
 
Kannst du mal den ganzen Code posten?
Wäre hilfreich.

Danke!
Manis
 
<!DOCTYPE html>
<html lang="de">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JF - Architektur und Visualisierung</title>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/mouseover.css" rel="stylesheet" />
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js?v=2.1.4"></script>
<link rel="stylesheet" href="fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.5" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.5"></script>
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.5"></script>
<link rel="stylesheet" href="/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script>
<script type="text/javascript" src="js/fancybox.js"></script>
<link rel="stylesheet" href="fancybox/source/jquery.fancybox.css?v=2.1.4" type="text/css" media="screen" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />
<script type="text/javascript">
$(document).ready(function () {
$(".fancybox").fancybox();
});
</script>
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');

ga('create', 'UA-40957054-1', 'johannes-froelich.de');
ga('send', 'pageview');
</script>
</head>

<body>
<div class="spacer50"></div>
<div class="container">
<div class="row offset2">
<div class="span12" style="float:left">
<div class="span8" style="float:left;">
<div class="row">
<p align="center">
<FONT SIZE=3 style="font-family:ueberschrift"> <a href="index.html">PORTFOLIO </a><a href="blog.html">&nbsp;&nbsp;&nbsp;BLOG </a><a href="contact.html">&nbsp;&nbsp;&nbsp;KONTAKT </a></p>
</div>
</div>

<div class="spacer30"></div>
<div class="spacer30"></div>
<font size="2">
<font style="font-family:text">

</div>
</div>
<style type="text/css">img {width: 100px; height: 100px;}</style>
<?php
$nStartTime = microtime(true);
require dirname(__FILE__).'/phpTumblr/clearbricks/_common.php';
require dirname(__FILE__).'/phpTumblr/class.read.tumblr.php';

$oTumblr = new readTumblr('johannesfroelich');


//$oTumblr->getPosts(0,3,'video');
$oTumblr->getPosts(null,'all','regular');
//$oTumblr->getPosts(null,null,null,36624807);

$nEndTime = microtime(true);
$nExecTime = $nEndTime - $nStartTime;
if ($aTumblr['stats']['num-inarray'] > 0) { $nExecTimePerPost = $nExecTime / $aTumblr['stats']['num-inarray']; } else { $nExecTimePerPost = 0; }
//echo $aTumblr['stats']['num-inarray'].' posts parsed in '.$nExecTime.'s, that means '.$nExecTimePerPost.'s per post !'."\n\n";

$aTumblr = $oTumblr->dumpArray();

?>




<?php
$string = $post['content']['body'];
echo $string;
while(true) {
//Position finden
$position = strpos($string, '<img src="', $offset);
if($position === false) break; //Bricht die Schlaufe ab, wenn nichts mehr gefunden wird.
$position_end = strpos($string, '"/>', $offset);
$length = $position_end - $position;

//Teil ausschneiden
$string_part = substr($string, $position, $length);

//URL rausfiltern
$url = explode('<img src="', $string_part);
$url = explode('"/>', $url[1]);
$url = $url[0];

//Neuen String zusammensetzen
$new_string = '<a class="einzelbild" href="'.$url.'"><img src="'.$url.'" width="200" height="200"></a>';
$string_before = substr($string, 0, $position);
$string_after = substr($string, $position_end+3);
$string = $string_before.$new_string.$string_after;

//Offset berechnen
$offset = $position_end + 3 + 56; // +3 wegen "/> am Ende des Original img. +extra (zusätzliche Zeichen des ersetzten Strings)
}
echo $string;

?>



<?php
foreach($aTumblr['posts'] as $posts) {
echo '<p>';
echo 'Datum: '.$posts["time"].'<br/>';
echo 'Titel: '.$posts["content"]["title"].'<br/>';
echo 'Inhalt: '.$posts["content"]["body"];
echo '</p>';
echo '<hr>';
}

?>

</div><!--/.fluid-container-->

<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="twitter-bootstrap-v2/docs/assets/js/jquery.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-transition.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-alert.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-modal.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-dropdown.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-scrollspy.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-tab.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-tooltip.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-popover.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-button.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-collapse.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-carousel.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-typeahead.js"></script>

<!-- centered stuff goes here-->
</div>
</div>
</div>
</div>

<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="js/jquery.lazyload.js" type="text/javascript"></script>


</body>
</html>


Gruß
 
Ich hab mal alles wieder eingefügt, weil ich doch ein paar Kleinigkeiten verändert habe.
Hoffe, du hast nix dagegen.

Hier das Resultat:
<?php
function replaceImgWithA($string) {
while(true) {
//Position finden
$position = strpos($string, '<img src="', $offset);
if($position === false) break; //Bricht die Schlaufe ab, wenn nichts mehr gefunden wird.
$position_end = strpos($string, '"/>', $offset);
$length = $position_end - $position;

//Teil ausschneiden
$string_part = substr($string, $position, $length);

//URL rausfiltern
$url = explode('<img src="', $string_part);
$url = explode('"/>', $url[1]);
$url = $url[0];

//Neuen String zusammensetzen
$new_string = '<a class="einzelbild" href="'.$url.'"><img src="'.$url.'" width="200" height="200"></a>';
$string_before = substr($string, 0, $position);
$string_after = substr($string, $position_end+3);
$string = $string_before.$new_string.$string_after;

//Offset berechnen
$offset = $position_end + 3 + 56; // +3 wegen "/> am Ende des Original img. +extra (zusätzliche Zeichen des ersetzten Strings)
}
return $string;
}
?>

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JF - Architektur und Visualisierung</title>



<link href="css/bootstrap.css" rel="stylesheet">



<link href="css/mouseover.css" rel="stylesheet" />

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="fancybox/source/jquery.fancybox.pack.js?v=2.1.4"></script>
<link rel="stylesheet" href="fancybox/source/helpers/jquery.fancybox-buttons.css?v=1.0.5" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.5"></script>
<script type="text/javascript" src="fancybox/source/helpers/jquery.fancybox-media.js?v=1.0.5"></script>

<link rel="stylesheet" href="/fancybox/source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script>

<script type="text/javascript" src="js/fancybox.js"></script>
<link rel="stylesheet" href="fancybox/source/jquery.fancybox.css?v=2.1.4" type="text/css" media="screen" />

<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />


<script type="text/javascript">
$(document).ready(function() {
$(".fancybox").fancybox();
});
</script>


<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-40957054-1', 'johannes-froelich.de');
ga('send', 'pageview');

</script>



</head>
<body>

<div class="spacer50"></div>
<div class="container">
<div class="row offset2">
<div class="span12" style="float:left">
<div class="span8" style="float:left;">

<div class="row">
<p align="center"> <font size=3 style="font-family:ueberschrift"> <a href="index.html">PORTFOLIO </a><a href="blog.html">&nbsp;&nbsp;&nbsp;BLOG </a><a href="contact.html">&nbsp;&nbsp;&nbsp;KONTAKT </a></p>
</div>
</div>

<div class="spacer30"></div>
<div class="spacer30"></div>
<font size="2">
<font style="font-family:text">

</div>
</div>
<style type="text/css">img {width: 100px; height: 100px;}</style>
<?php
require dirname(__FILE__).'/phpTumblr/clearbricks/_common.php';
require dirname(__FILE__).'/phpTumblr/class.read.tumblr.php';

$oTumblr = new readTumblr('johannesfroelich');


$oTumblr->getPosts(null,'all','regular');

$aTumblr = $oTumblr->dumpArray();

foreach($aTumblr['posts'] as $post) {
echo '<p>';
echo 'Datum: '.$post["time"].'<br/>';
echo 'Titel: '.$post["content"]["title"].'<br/>';
echo 'Inhalt: '.replaceImgWithA($post["content"]["body"]);
echo '</p>';
echo '<hr/>';
}

?>

</div><!--/.fluid-container-->

<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="twitter-bootstrap-v2/docs/assets/js/jquery.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-transition.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-alert.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-modal.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-dropdown.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-scrollspy.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-tab.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-tooltip.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-popover.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-button.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-collapse.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-carousel.js"></script>
<script src="twitter-bootstrap-v2/docs/assets/js/bootstrap-typeahead.js"></script>

<!-- centered stuff goes here-->
</div>
</div>
</div>
</div>

<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="js/jquery.lazyload.js" type="text/javascript"></script>


</body>
</html>
 
  • Gefällt mir
Reaktionen: pfannkuchen2001
OH MEIN GOTT!!!!! Es ist genau das was ich mir vorgestellt habe!!!!

Was war denn der Fehler?

Ich habe jetzt auch mal einen kleinen PHP Schnipsel gebastelt:
foreach($aTumblr['posts'] as $post) {
echo '<p>';
$timestamp=$posts["time"];
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp).'<br/>';
echo 'Datum: '.$post["time"].'<br/>';
echo 'Titel: '.$post["content"]["title"].'<br/>';
echo 'Inhalt: '.replaceImgWithA($post["content"]["body"]);
echo '</p>';
echo '<hr/>';
}

?>


-- Ich möchte damit die Unix time in ein Lesbares format umwandeln und ausgeben... was ist da falsch? Irgendeine Idee?



ICH DANKE DIR VON HERZEN FÜR DIE HILFE!!!!!!
 
Du hast $posts['time'], aber ich habe die $posts wieder zu $post geändert, weil in der Variable immer nur ein einziger Post ist.
Dann müsste es klappen.

Aber bist du dir sicher, dass du gmdate() und nicht date() benutzen willst?

Manis
 
gmdate rechnet die Zeit immer in Greenwich Mean Time aus. date nimmt afaik die Zeitzone die in der php.ini eingestellt ist.
 
  • Gefällt mir
Reaktionen: pfannkuchen2001
Ich danke dir wirklich sooo sehr!

Ich hoffe, dass ich dir auch mal so helfen kann!!!

DANKE!


Gruß

Pfannkuchen
 
Freut mich, dass ich die helfen konnte.

Manis
 
Oh ja!

nur das mit dem Caching bekomme ich nicht hin ;)
eigentlich sollte am Quelltext doch nur das hier passieren:

<style type="text/css">img {width: 100px; height: 100px;}</style>
<?php



require dirname(__FILE__).'/phpTumblr/clearbricks/_common.php';
require dirname(__FILE__).'/phpTumblr/class.read.tumblr.php';
require dirname(__FILE__).'/phpTumblr/class.read.tumblr.cache.php';



$oTumblr = new readTumblr('johannesfroelich');
$tumblrObj = new readTumblrCache('johannesfroelich','/phpTumblr/tmp',3600);


$oTumblr->getPosts(null,'all','regular');

$aTumblr = $oTumblr->dumpArray();

foreach($aTumblr['posts'] as $post) {
echo '<p>';
$timestamp=$post["time"];
echo date("d. m. Y\ H:i:s", $timestamp).'<br/>';

//echo 'Titel: '.$post["content"]["title"].'<br/>';
echo '<br/>';
echo $post["content"]["title"].'<br/>';

echo replaceImgWithA($post["content"]["body"]);
echo '</p>';
echo '<hr/>';
}

-- jedenfalls nach der Dokumentation: https://code.google.com/p/phptumblr/wiki/Documentation

blöderweise bekomme ich duzende von diesen Nachrichten:

Warning: file_put_contents() [function.file-put-contents]: SAFE MODE Restriction in effect. The script whose uid is 1089 is not allowed to access / owned by uid 0 in /var/www/web135516/html/phpTumblr/class.read.tumblr.cache.php on line 96

Warning: file_put_contents(/johannesfroelich.start-0.num-1.type-all.inc) [function.file-put-contents]: failed to open stream: No such file or directory in /var/www/web135516/html/phpTumblr/class.read.tumblr.cache.php on line 96

Dem Tmp verzeichnis habe ich 777 gegeben.


Gruß

Pfannkuchen
 
Ah,

die Lösung war: PHP SAFE MODE ausschalten.

Allerdings hat das mit dem caching scheinbar nicht viel gebrahct.... ;) es ist immernoch ziemlich träge...

Naja, mal schauen was es da noch so zu machen gibt!


Gruß
 
Ich bin nicht 100% sicher, aber ich glaube, es liegt daran, dass du immer noch oTumblr anstatt tumblrObj benutzt.

Manis
 
hmm,

ich habe jetzt oTumblr mit tumblrObj ersetzt.
$oTumblr = new readTumblr('johannesfroelich');
$tumblrObj = new readTumblrCache('johannesfroelich','/phpTumblr/tmp',600);


$tumblrObj->getPosts(null,'all','regular');

$aTumblr = $tumblrObj->dumpArray();
das Ergebnis ist das gleiche... Es dauert 5 Sekunden, bis die Seite geladen ist. Gibt es eine möglichkeit irgendwie herauszufinden, was da so lange braucht?
Auf den Cache greift er sicher nicht zu:
1 posts parsed in 4.20538806915s, that means 4.20538806915s per post !

Aber wieso macht er das nicht?
Hmm

EDIT: erledigt... man muss nur genau die Dokumentation lesen ;)


Gruß
 
Ein Problem habe ich nun leider doch festgestellt: diese String Umwandlung hat ein Problem: wenn 2 Bilder hintereinander gepostet werden - also der code so aussieht:
<p><img alt="image" src="http://media.tumblr.com/e422ebe764f2da4d1a53d9d739b68b6f/tumblr_inline_mmyqe0VGlz1qz4rgp.jpg"/><img src="http://media.tumblr.com/6dab4ea679cb0ef1e281c7e72e54eca5/tumblr_inline_mmyrd4HEc11qz4rgp.jpg"/></p>
dann kommt leider soetwas wie im angehängten Screenshot dabeiheraus...

Eine Idee, wie man das beheben kann?


Gruß
 

Anhänge

  • Bildschirmfoto 2013-05-18 um 00.25.21.png
    Bildschirmfoto 2013-05-18 um 00.25.21.png
    45,2 KB · Aufrufe: 110
Zurück
Oben Unten