Thoralf Knuth: Unverständliches printf-Verhalten

Beitrag lesen

Hallo zusammen,

ich hab eine Frage zu PHPs (s)printf, mit der ich nicht weiterkomme.
Ich kann den Code auf folgende Schnippsel reduzieren. Ziel ist es, mittels argument swapping ein einfaches Template zu füllen.

$a='%1$u: %2$s<br />';  
printf( $a, 0, "Bla" );

funktioniert einwandfrei und gibt erwartungsgemäß zurück:
0: Bla<br />

$a='  
	<dt id="gb٪1$u"><strong>٪2$s</strong> ٪3$s schrieb am <abbr title="٪4$s">٪5$s</abbr>:</dt>  
	<dd>  
		٪6$s  
		٪7$s  
		<address>٪8$s | ٪9$s</address>  
	</dd>  
';  
printf( $a, 0, "Bla" );

Hier wird der Formatstring ungeparsed durchgereicht und ich versteh's nicht.

Gruß, Thoralf