Wie erstellt man so eine Webseite?

Hallo,

ich bin dem problem glaube ich auf die schliche gekommen:
es ist so, dass wenn man in tumblr einen Beitrag editiert, dann wird aus dem
<img alt="image" src="http://media.tumblr.com/b3e1bc976e10fa0d600f860e7/tumblr_inline_mn604rgp.jpg"/>
ein
<img alt="image" src="http://media.tumblr.com/b3e1bc976e10fa0d600f860e7/tumblr_inline_mn604rgp.jpg" />

also ein leerzeichen vor dem /> am ende.

im script wird das hiermit gesucht:
$position_end = strpos($string, '"/>', $offset);

wie kann ich nun im php script ein
$position_end = strpos($string, '" />', $offset);
ODER
$position_end = strpos($string, '"/>', $offset);

einbauen?

Das sollte doch nicht wirklich sehr kompliziert sein oder?

Vielen Dank,

Pfannkuchen
 
Hey,

Damit konnte jetzt auch niemand rechnen :D

Ich denke, es müsste auch ohne Anführungszeichen funktionieren.
Also einfach:
$position_end = strpos($string, '/>', $offset);

Wenn das nicht geht müssen wir einfach zuerst nach dem einen und dann nach dem anderen prüfen und schauen, ob eines der beiden was sinnvolles liefert.

Manis
 
Hallo mal wieder!

ich habe mal wieder das selbe Problem! Ich wollte grad mal probieren, ob ich ich von einem Wordpress server die Posts in meine Webseite einfügen kann. das ganze sieht im Groben genau so aus wie oben, die bildurl ist ein wenig anders als von Tumblr und zwar so:
<p><a href="http://johannes-froelich.de/wordpress/wp-content/uploads/2015/01/Plakat1.jpg"><img class="alignnone size-medium wp-image-21" src="http://johannes-froelich.de/wordpress/wp-content/uploads/2015/01/Plakat1-212x300.jpg" alt="Plakat1" width="212" height="300" /></a></p>

nun würde ich das gern wieder ersetzen.
Das Scruipt habe ich so gut ich konnte angepasst:

Code:
<?php
function replaceImgWithA($string) {
while(true) {
//Position finden
$position = strpos($string, '<img class="alignnone size-medium wp-image-9" 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 class="alignnone size-medium wp-image-9" src="', $string_part);
$url = explode('"/>', $url[1]);
$url = $url[0];

//Neuen String zusammensetzen
$new_string = '<a class="einzelbild" href="'.$url.'"><img src="'.$url.'" width="150" height="150"></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;
}

/* Short and sweet */

require('./wordpress/wp-blog-header.php');
?>

ich Rufe das ganze so auf:

Code:
<?php
				
				$posts = get_posts('numberposts=10&order=DES');
				foreach ($posts as $post) : setup_postdata( $post ); ?>
				<?php the_date(); echo "<br />"; ?>
				<?php the_title(); ?>    
				<?php replaceImgWithA(the_content()); ?> 
				<?php echo '</br>'; ?>
				<?php echo '</br>'; ?>
				<?php echo '<hr/>'; ?>
				
				<?php
				endforeach;
				?>

Was funktioniert:
Ich bekomme die Posts aus dem Wordpress server - sogar so formatiert wie ich das erstmal möchte.
Die Bild URLs werden leider nicht ersetzt.

Wo liegt der Fehler?

Ich würde mich mal wieder sehr über weitere Hilfe freuen!!!

Gruß und danke schonmal im Voraus!!

Pfannkuchen

PS: mir fällt grad auf, dass wordpress in den Link sowas "wp-image-21" hineinbaut. die 21 ist die Anzahl der hochgeladenen Bilder - sollte also mitwandern! Ideen wie man das machen knnte?!
 
Zurück
Oben Unten