Doppelter HTML-Code nach Funktion

DiDiJo

Erfahrenes Mitglied
leute ich hab mein problem.

ich hab mir eine Funktion geschrieben, die mir aus einem beliebig langem text einen 2-Spalten text macht.

Bsp.:

vorher:

"bla bla bla bla bla bla bla bla bla bla bla bla "

danach:

"bla bla bla" "bla bla bla"
"bla bla bla" "bla bla bla"
"bla bla bla"
"bla bla bla"

funktioniert auch super (ich teile den Text ab einer bestimmt zeichenkette (in meinem Fall '# * #')).

Die Funktion macht aus meinem Text ein array was ich anschlißend wieder ausgebe (getrennt durch ein Leerzeichen). Wird das Sonderzeichen gefunden wird das momentane array geschlossen und ein neues wird geöffnet. Die beiden Diffs formatiere ich dann mit CSS.

Nun mein Problem:

Enthält mein Text kein Sonderzeichen funktioniert alles perfekt.
Meine HTML-Struktur sieht dann folgendermaßen aus

HTML:
<div id="main">
    <div id="contentMove" style="position:absolute;left:0px;">
        <div id="textframe">
            <div id="headline"><h1>Willkommen bei der HALLMANN Werkzeugbau GmbH</h1></div>
            <div id="content"><div id="content_left" style="width:590px;">TEXT TEXT TEXT</div>       
        </div>
        <div id="pictureframe">
            <div class="picture"><img src="bild1.jpg" alt=""/></div>
            <div class="picture"><img src="bild2.jpg" alt=""/></div>
        </div>
        <div class="clear"></div>      
    </div>
</div>


Wenn jetzt mein Text Sonderzeichen enthält geht irgendwas schief.
Meine HTML-Struktur sieht dann folgendermaßen aus:

HTML:
<div id="main">
    <div id="contentMove" style="position: absolute; left: 0px;">
        <div id="textframe">
       		<div id="headline"><h1>Unternehmen</h1></div>
        	<div id="content">
        		<div id="content_left" style="width: 275px;">
        			<div id="content">
        				<div id="content_left">
        					TEXT1 TEXT1 TEXT1 TEXT1 
       					</div>
       					<div id="content_right" style="width: 275px;">
                        	TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 TEXT2 
                        </div>
        			</div>
        		</div>
        		<div class="clear"/>
        	 </div>
        </div>
        <div id="pictureframe">
        	<div class="picture"><img alt="" src="bild1.jpg"/></div>
       		<div class="picture"><img alt="" src="bild2.jpg"/></div>
        </div>
        <div class="clear"/>
    </div>
</div>

kann mir mal jemand erklären woher der doppelte content / content_left PART kommt.

hier noch der Aufruf meiner Funktion und die Funktion selber:
PHP:
$content  = multicolumn($site['content']);	

function multicolumn($content) { 
	$words = explode(' ', $content);
	//$x     = count($words);
	//$x     = floor($x / 2);
 	$super = strstr($content,'#*#');
	
 	if ($super != '')
		$return .= '<div id="content_left" style="width:275px;">';
	else
		$return .= '<div id="content_left" style="width:590px;">';
 
	$i = 0;
	foreach ($words as $word) {
		if ($word != '#*#')	$return .=  $word . ' ';
		else {
			$return .= '</div>';
			$return .= '<div id="content_right" style="width:275px;">';
		}
		$i ++;
	}

	$return .= '</div>';
	$return .= '<div class="clear"></div>';
 
	return $return;
}
 
BUBBI - Blind und blöd bin ich.

Noch sehe ich da keinen Fehler, wie sieht denn das Template dazu aus und was steht im var_dump von $site['content'] ?

Vielleicht auch mal geschwungene Klammern beim if verwenden.
 
das var_dump liefert wie gesagt nur den text (den ich aus einer DB lade) ... ausgegeben wird er so:

PHP:
<?php
	include_once 'inc/header.php';
	$kid 	  = $_REQUEST['kid'];
	
	$tmp	  = strpos($site['content'],'</h1>') + 5;
	$headline = substr($site['content'],0,$tmp);
	$content  = multicolumn(substr($site['content'],$tmp));	
?>

<div id="textframe">
    <div id="headline"><?= $headline?></div>
    <div id="content"><?= $content?></div>
</div>
<div id="pictureframe">
    <div class="picture"><img src="<?=$site['bild1']?>" alt=""/></div>
    <div class="picture"><img src="<?=$site['bild2']?>" alt=""/></div>
</div>
<div class="clear"></div>

und die Datei wird per Ajax geöffnet / verarbeitet. Meine Javascript/ajayx funktion ruft quasi die seite content.php (der code in diesem post) mit einem parameter auf (kid)
 
Tut mir leid ich seh da nicht viel. Also schieb ich den Fehler jetz auf AJAX, weil bei dem inneren content_left die style angabe fehlt, welche in PHP deutlich gegeben ist.
 
ich habbet ... es ist weder mein PHP Code oder der AJAX Code schuld. Es lag mal wieder an meiner schusseligkeit. Die Texte füge ich über ein Adminsystem in die DB ein. Und in diesem Adminsystem steckt auch dieser komische FCK-Editor ... nun habe ich mir einfach von der Startseite testweise Text kopiert und in eine andere Seite eingbaut.

Ich habe leider nicht gemerkt, dass noch 2 divs mitkopiert worden ... unter anderem das div ohne stylesheet angabe. ich hab jetzt knapp 2 stunden damit verbacht den fehler zu suchen :rolleyes::rolleyes::rolleyes: .....


mann mann mann hoffentlich lerne ich aus diesem fehler :)
 
Zurück