kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: regExp ... mit Anführungszeichen auslesen ?

    geschrieben von wguide

    nö,
    das gibt Fehlermeldung so
    preg_match_all('/<meta.*charset=([^;"|']*)("|')>/i', $html, $matches);


    unexpected ] in line ...

    ... ach ja .. logisch, das ' muss dann auch escaped werden

    habs jetzt mal so gemacht, ohne das ODER | Pipe Zeichen,
    preg_match_all('/<meta.*charset=(.+?)[\'";].*>/i', $html, $matches);

    und so es scheint es auch zu funktionieren

    DANKE .. das escapen war der wichtige Hinweis ^^ :=)
  • in: regExp ... mit Anführungszeichen auslesen ?

    geschrieben von wguide

    Hallo

    ich möchte aus einem HTML-Code auslesen, welcher charset verwendet wird
    dazu habe ich einen regExp, der aber nur funktioniert, wenn Code mit " ist..

    BSP:
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">


    preg_match_all('/<meta.*charset=([^;"]*)">/i', $html, $matches);


    wie muss ich den RegEx-Pattern ändern,
    damit er sowohl für " als auch für ' funktioniert, also so, dass es auch geht
    wenn so:
    <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>


    also egal, ob mit doppelten oder einfachen "Gänsefüßchen" (Anführungszeichen)
    also egal ob Attribute mit
    "
    oder
    '
    im Code stehen

  • in: Entfernen von &nbsp; geht nicht ?

    geschrieben von wguide

    also jetzt habe ich mir die XML Source nochmal angesehen

    und dort steht an der Stelle, wo ich bei Ausgabe ein &nbsp; bekomme
    dafür 2 Zeichen in UTF-8:
    0xC2
    und
    0xA0
    was in ISO-8859-1 so ausseiht
    "Â  "

    .. ohne die Anführungszeichen ... (also dieses Sonderzeichen plus Leerzeichen)

    <result>
      <id>25</id>
      <name>  Infotext Titel  </name>
      <info>... bla bla ...</info>
    </result>


    aber die Ausgabe von
    $title = (string)$item->name;
    in der foreach()
    ergibt dann:
    &nbsp;&nbsp;Infotext Titel&nbsp;&nbsp;
    mit
    echo $title;


    wenn ich jetzt dieses "Â " im str_replace verwende, dann verschwindet das &nbsp; bei der Ausgabe

    $title = trim(str_replace(' ','',$title));

    echo $title; // ---- ergibt: "Infotext Titel" .... wie gewünscht ohne &nbsp;

    aber schon komisch ... die Daten sind UTF-8, die Seite hat UTF-8 header
    und trotzdem kann ich (muss ich) die ISO-Zeichen im str_replace verwenden ?

    warum ist &nbsp; in der XML (als UTF-8) so komisch codiert ???

  • in: PHP Variable in while-Schleife

    geschrieben von wguide

    gute Frage, was will der TE machen ... ?!?

    a) ... einen User-Login ... Prüfen ob ID existiert und ob das Passwort richtig ist
    oder
    b) ... alle Daten ausgeben ... die einem User (Autor) zugeordnet sind (z.B. Artikel, Kommentare, ... )

    zu a)
    <?php 
    
      $user_id = $_SESSION["BenutzerID"];
      $user_pw = $_SESSION["Password"];
    
      $user_id = mysql_real_escape_string($user_id); 
      $user_pw = mysql_real_escape_string($user_pw); 
    
      $abfrage = "SELECT * FROM usertable WHERE id = '$user_id ' LIMIT 1";
      $ergebnis = mysql_query($abfrage);
      $num_rows = mysql_num_rows($ergebnis);
    
      if ($num_rows == 0) { 
          echo "<br />Keine Daten zu User mit dieser ID gefunden. "\n";    
      }
      else { 
    
      $row = mysql_fetch_object($ergebnis));   // --- wegen LIMIT 1 ist hier keine while-Schleife notwendig
    
           if ($row->pass == $user_pw) { 
              echo "<br />OK ... Login erfolgreich. "\n";    
             }
           else { 
              echo "<br />Fehler ... Passwort ist nicht richtig. "\n";    
             } 
    
      }
    
    ?>


    zu b)
    <?php
      $user_id = $_SESSION["BenutzerID"];
      $user_id = mysql_real_escape_string($user_id); 
    
      $abfrage = "SELECT * FROM tabellenname WHERE id = '$user_id '";
      $ergebnis = mysql_query($abfrage);
      $num_rows = mysql_num_rows($ergebnis);
    
      if ($num_rows == 0) { 
          echo "<br />Keine Daten zu User mit dieser ID gefunden. "\n";    
      }
      else { 
    
      $row = mysql_fetch_object($ergebnis))
      
      $n=1; 
      while($row = mysql_fetch_object($ergebnis))
        {
            echo "<p>--------- Ergebnis Nr: ".$n." ---------\n";  
            echo "<br />Von User-ID: "  . $row->id . "\n";    
            echo "<br />Artikel-Typ: "  . $row->post_type . "\n"; 
            echo "<br />Artikel-Text: " . $row->text . "\n"; 
            echo "<br />Erstellt am: "  . $row->datum . "\n"; 
            echo "</p>\n";  
        $n++; 
        }
    
      }
    
    ?>


    ... oder wie oder was ?!
  • in: Entfernen von &nbsp; geht nicht ?

    geschrieben von wguide

    Hallo

    ich hole Daten aus XML und will diese leicht verändert ausgeben
    die XML-Daten liegen als UTF-8 vor

    im Script habe ich ganz oben auch drin
    :
    header("Content-Type: text/html; charset=utf-8");


    ich lese die Daten mit simplexml_load_file()
    und gebe dann die Titel in einer foreach() aus

    in den Daten ist das Element 'name' der String den ich haben will
    da komme ich auch ran, aber im String sind auch
    &nbsp;

    .. aber diese
    &nbsp;
    bekomme ich nicht weg ?!?

    $data = simplexml_load_file($myfile); 
    
    foreach($data->result as $item) { 
       $title = (string)$item->name;    // -- z.B.: $title = '&nbsp;&nbsp;Infotext Titel&nbsp;&nbsp;'; 
       $title = str_replace('&nbsp;','',$title);
       echo "<br />".$title."\n";       // -- immernoch: $title = '&nbsp;&nbsp;Infotext Titel&nbsp;&nbsp;'; 
    }


    also ich kann die &nbsp; nicht entfernen mit str_replace()
    es bleibt
    &nbsp;&nbsp;Infotext Titel&nbsp;&nbsp;

    ???

    auch wenn ich das (HTML) geschütze Leerzeichen mit utf8_encode() anwende
    $raus = utf8_encode('&nbsp;'); 
    $title = str_replace($raus,'',$title);

    auch dann bleibt es drin ... ist ja eigentlich aus Quatsch ... oder?
    ... oder wie sieht ein (HTML) geschützes Leerzeichen: &nbsp; sonst in UTF-8 aus ?
    oder liegt es an simplexml_load_file() ?

Login zum Webhosting ohne Werbung!