Anführungszeichen

Beispiel ausführen

Typographisch korrekte Anführungszeichen sieht man selten auf Webseiten. Meist kommen Zollzeichen " zum Einsatz.

Diese automatisch zu ersetzen ist keine ganz triviale Aufgabe, da sie ineinander verschachtelt auftreten können und es auch legitime Verwendungen für das Zollzeichen gibt. Man denke zum Beispiel an den 19"-Monitor der kleiner als der 21"-Monitor ist.

Dieses Beispiel funktioniert daher auch nicht 100%ig, kann aber immerhin als kleine Anregung dienen.

<?php
/**
* einfache Zollzeichen durch richtige Anführungszeichen ersetzen
*/ 

class quotation_marks
{
 var 
$right'&rdquo;';
 var 
$left '&bdquo;';
 
 function 
french_quote($v)
 {
     
$pattern = array('/"\b/','/\b"/');
     
$replacement=array($this->left,$this->right);
     return 
preg_replace($pattern,$replacement,$v);
 }

    function 
do_quote($v)
    {
     return 
$v[1].$this->french_quote($v[2]);
    }
      function 
set_braces($l,$r)
{
  
$this->left $l;
  
$this->right $r;

}
      function 
set_style($s)
{
 switch(
$s){
 case 
'french':
  
$this->set_braces('&laquo;','&raquo;');
 break;
 case 
'single':
  
$this->set_braces('&lsquo;','&rsquo;');
 break;
 case 
'double':
  
$this->set_braces('&ldquo;','&rdquo;');
 break;

 }
}
    function 
quote($v)
    {

     return 
preg_replace_callback('/(>|^)([^<]*)/', array($this,'do_quote'),$v);
    }
}

$text = <<< EOT
<pre>
Das ist ein "Test", es sollen alle "Zollzeichen" durch richtige 
"Anführungszeichen" ersetzt werden.
Aber nicht die in innerhalb von "HTML-Tags" wie 
zum Beispiel <a href="http://example.org">bei Verweisen</a>.


"Ich gehe jetzt!", sagte Tim, "und wasche mir die Finger."

Ein kluger Kopf sagte: "Man beachte auch <a href="http://example.org">besondere Schachtelungen</a> im Algorithmus"

"Aber, bei "Tüttelchen" nach einem Satzzeichen klappt es nicht - oder etwa doch?"

Mein 21"-Monitor ist besser als Dein 19"-Monitor.


Aber wenn es nun ein einzelner 19"-Monitor ist?

</pre>
EOT;

$arr = array('default','single','double','french');

$obj = new quotation_marks();

foreach (
$arr as $a)
{
 
printf('<h1>%s</h1>',$a);
 
$obj->set_style($a);
 echo 
$obj->quote($text);
}
?>

Hinweise zum DatenschutzImpressum © 2005-2008 S. Eickhoff