kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: MetaTag title auslesen

    geschrieben von juwely

    Hallo

    ich habe eine kleine Funktion um aus einer Webseite den <title> TAG auszulesen
    // --------------------------------------------- 
    
    function get_meta_title($url, $len=1024) { 
    	
    	$handle = fopen($url, 'r');
    	$content = fread($handle, $len);
    	fclose($handle);
    	
    	if ( preg_match("/<title>(.+)<\/title>/siU", $content, $matches)) { 
    			$title = $matches[1];
    		}
    		else { 
    			$title = ''; 
    		}
    	
    	return $title; 
    }
    
    // ---------------------------------------------


    damit nicht die komplette Datei gelesen werden muss, habe ich $len=1024

    jetzt die Frage:
    welcher Wert ist für $len sinnvoll, damit möglichst wenig ausgelesen wird,
    aber (relativ) sicher ist, dass innerhalb dieser Größe der komplette <title> TAG enthalten ist ?!

    oder ist es besser, die $url Zeilen-Weise auszulesen ... fgets() ...
    und sobald die Zeile den <title> TAG enthält, dann das Auslesen "abbrechen" ?

    // --------------------------------------------- 
    
    function get_meta_title2($url, $len=1024) { 
    	
    	$handle = fopen($url, 'r');
    
    	while (($buffer = fgets($handle, $len)) !== false) {
    		if (strstr($buffer, '<title>')) { 
    			if ( preg_match("/<title>(.+)<\/title>/siU", $buffer, $matches)) { 
    				$title = $matches[1];
    			}
    			else { 
    				$title = ''; 
    			}
    			break; 
    		}
    	}
    	
    	fclose($handle);
    
    	return $title; 
    }
    
    // ---------------------------------------------


    wie ist es am schnellsten / besten ?
    ... oder gibt es noch andere (bessere) Methode zum <title> TAG auslesen ... dom ?

  • in: abraham twitteroauth curl_getinfo liefert kein Werte?

    geschrieben von juwely

    Hallo

    ich will abraham twitteroauth verwenden
    siehe ... https://github.com/abraham/twitteroauth/blob/master/twitteroauth/twitteroauth.php

    una Abfragen funktionieren auch, ich bekomme Ergebnisse,
    Aber die HEADER Information fehlt ... ?

    also im TwitterOauth Object bleiben diese Elemente immer leer ???

    $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
    $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
    $this->url = $url;


    bzw mit print_r Ausgabe des TwitterOAuth Object

    TwitterOAuth Object
    (
        [http_code] => 
        [url] => 
        [host] => https://api.twitter.com/1.1/
        [timeout] => 30
        [connecttimeout] => 30
        [ssl_verifypeer] => 
        [format] => json
        [decode_json] => 1
        [http_info] => 
        [useragent] => TwitterOAuth v0.2.0-beta2
    // ... usw 
    )


    kein Status: http_code, keine url und keine sonstigen Header-Angaben (http_info) ??

    also scheint hir curl_getinfo() nicht zu funktionieren ?!
    ... oder die function getHeader($ch, $header) ... ???
    bei curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
    werden ja auch gar keine Parameter angegeben die aber in getHeader() erwartet werden
    ... es kommt auch keine Fehlermeldung .. einfach keine (Header / curl_getinfo Daten)


    .. Wenn ich aber eine andere (selbst gebaute) CURL Abfrage mache (ohne Klasse)
    dann geht curl_getinfo() ohne Probleme .... warum NICHT in der class TwitterOAuth ()

    jemand ne Idee, wie ich da auch an Daten aus curl_getinfo() komme ??
  • in: mySQL: wann wird int zu klein für Timestamp ?

    geschrieben von juwely

    ok, Datum als INT (timestamp) zu speichernt macht wenig Sinn, das sehe ich ein,
    u.a. weil ... wenn man Geburtsdatum Speichern will, braucht man ja auch vor 1970


    fatfreddy schrieb:
    Wenn Du nicht dem Vorschlag von hackyourlife folgen magst, solltest Du dir, wenn ich mich nicht verrechnet habe, in ca. 275 (Natürlich hab ich mich verrechnet. :slant:) 94 Jahren Gedanken machen. :biggrin:


    hmmm .. ich habe was gefunden .... Timstamp passit in int bis: UTC 2038-01-19 (03:14:07)
    also wie kommst Du auf 94 Jahre ... sind eher noch 25 Jahre und ein paar Zerquetschte :)

    ahhh ... ok ... kapiert .... gemeint ist dabei wahrscheinlich int mit Vorzeichen,
    ... bei int UNSIGNED ist es dann bis: 2106-02-07 (01:28:15) ... daher die 94

    zum Datentyp TIMESTAMP
    ... TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.

    ... also auch "nur" bis 2038
    das bringt also gegenüber int nicht mehr, gegenüber int UNSIGED sogar weniger

    aber mit Datentyp DATETIME
    ... DATETIME ... range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59' UTC

    ... schon besser, auch vor 1970 und bis zum Jahr 9999

    sehe ich das richtig, Datentyp TIMESTAMP (und DATETIME)
    wird wie ein Datum-String gespeichert ? ... im Format:
    YYYY-MM-DD HH:MM:SS


    ... quasi wie ein VARCHAR (19), nur dass es "anders" ausgelesen werden kann
    oder ist TIMESTAMP anders als DATETIME ... in der Doku sieht beides gleich aus

    also wenn Datentyp DATETIME (oder TIMESTAMP) ist, dann geht sowas:
    SELECT * FROM table where datum1 BETWEEN '2012-10-01 00-00-00' AND '2012-11-24 23:59:59'

    was mit VARCHAR nicht gehen würde ?


    und ... Frage zum Verständnis zu int in PHP und MySQL
    bei Server 64 bit System ist PHP_INT_MAX = 9223372036854775807
    aber in MySQL ist Maximum von int (SIGNED) = 2147483647 .. bzw: int (UNSIGED) = 4294967295

    also ist int in MySQL immer "nur" 32bit int .... und bigint dann das 64bit int ???
    ... gibt es bei MySQL keinen Unterschied ob auf 32bit oder 64 bit Server ?



  • in: mySQL: wann wird int zu klein für Timestamp ?

    geschrieben von juwely

    Hallo

    Der (Unix) Timestamp zählt ja die Sekunden seit 01.01.1970

    zur Zeit ist er 10 Zeichen lang, z.B:
    1353753033


    daher kann man den (noch) in MySQL Speichern mit
    int (10) UNSIGNED


    Aber ab welchen Datum wird der (Unix) Timestamp zu "groß" für int ???
    und sollte man jetzt schon Speichern von Timestamp in MySQL mit bigint() machen ?

    Laut MySQL Doku: int() UNSIGNED max = 4294967295
    .. ist das der Wert bei 32bit oder bei 64bit Server ?
    Bei der Doku: http://dev.mysql.com/doc/refman/5.5/en/numeric-types.html steht keine Hinweis dazu ?!

    ab wann (welches Datum) ist int() UNSIGNED zu "klein" für einen (Unix) Timestamp ? (bei 64 bit)
    und sollte man den lieber gleich als bigint() Speichern? .. wieviele max. Stellen hat bigint() UNSIGNED ?

    PS: wenn der Server (http) auf 64 bit läuft, ist dann MySQL automatich auch 64bit ?
    bzw. wie bekomme ich heraus, ob der MySQL Server auf 64bit läuft ?

    und .... wie kann ich in PHP (nicht in MySQL) eine (int)$variable auf UNSIGNED setzen ?

  • in: variblen vergleichen ohne Groß/kleinschrift

    geschrieben von juwely

    also erstmal, nur zur Erklärung
    mit dem strtolower() innerhalb der if-Bedingung wird die Variable nicht wirklich geändert / umgewandelt, sondern nur temporär innerhalb der if-Bedingung zum Vergleichen,
    danach ist die Groß/Klein-Schreibung noch vorhanden.

    $name1 = 'Peter'; 
    $name2 = 'peter'; 
    
    if ( strtolower($name1) == strtolower($name2) )
    {
      print "<p>Die Namen sind gleich.</p>\n"; 
    }
    
    // danach ist $name1 immernoch = 'Peter' also mit Großbuchstaben


    zu trim() ... Beispiel:

    $kw_name = $_POST['kw_name'];
    $kw_name = trim($kw_name);
    $kw_name = mysql_real_escape_string($kw_name);


    oder wie @hackyourlife schreibt, gleich in einer Zeile kombinieren :)

    Wenn es ein mehrzeiliges Eingabe-Feld ist (textarea)
    kann man mit chop() auch Zeilenumbruch am Ende entfernen

    $text = $_POST['eingabe_text'];
    $text = chop($text);
    $text = trim($text);
    $text = mysql_real_escape_string($text);


    oder direkt die Steuer-Zeichen entfernen, bzw. duch Leerzeichen ersetzen
    damit auch innerhalb im Text kein Umbruch ist

    $text = str_replace("\r",' ',$text);  // --- Zeilenvorschub 
    $text = str_replace("\n",' ',$text);  // --- Zeilenumbruch 
    $text = str_replace("\t",' ',$text);  // --- Tabulator / Einrückung


    Noch ein Tip: ... mehrere Leerzeichen zu einem Leerzeichen machen
    wenn Du die Steuerzeichen zu Leerzeichen ersetzt hast oder
    wenn Eingabe zB. ist:
    Peter      Lustig
    dann soll daraus werden:
    Peter Lustig


    $name = preg_replace('/ {2,}/', ' ', $name);


    und danach noch einzelne Leerzeichen am Anfang oder Ende entfernen mit
    $name = trim($name);


    und wenn wir schon dabei sind ...

    Du kannst auch generell alle Sonderzeichen ausschließen,
    und nur Buchstaben und Zahlen im String übrig lassen

    $text = preg_replace("/[^0-9a-zA-Z äöüÄÖÜß]/","",$text);


    damit bleiben nur nur 0-9 und a-z und A-Z und "Leerzeichen" und äöüÄÖÜß übrig
    ... bei den Sonderzeichen (äöüÄÖÜß) musst Du evtl aufpassen ob UTF-8 oder ISO
  • in: variblen vergleichen ohne Groß/kleinschrift

    geschrieben von juwely

    ja, das ist klar
    aber wird nicht über Setzen der Werte für locale auch das (Tastaturlayout) festgelegt ?!

    mit
    setlocale(LC_ALL, "en_US");
    ist das $ (Dollar-Zeichen) auf SHIFT+2
    mit
    setlocale(LC_ALL, "de_DE");
    ist das $ (Dollar-Zeichen) auf SHIFT+4

    ok, das ist jetzt hier vielleicht schon off-topic, aber nochmal die Frage: wie ist definiert, welche Zeichen bei strtolower() bzw. strtoupper() geändert werden und welche nicht ?

    bzw. welche Zeichen in strcasecmp() verglichen werden (und welche nicht) ?
  • in: HTML Farbgenerator gesucht!

    geschrieben von juwely

    dann erklär mal bitte, was genau du suchst,

    was meinst du mit HTML Farbgenerator ?

    Meinst Du vielleicht einen Color-Picker, bei dem der User eine Farbe per Klick auswählen kann
    welche dann für weitere Zwecke (Formular-Übergabe) verwendet wird ?

    wenn ja... dann such mal
    ... nach "jQuery color picker" ... BSP: http://www.digitalmagicpro.com/jPicker/ oder mind. 10 andere
    ... oder "JS color picker" ... BSP: http://jscolor.com/try.php

    ansonsten, wenn für eigene Zwecke, dann kann ich noch empfehlen:

    http://www.w3schools.com/tags/ref_colorpicker.asp
    http://www.w3schools.com/tags/ref_colormixer.asp
    http://www.w3schools.com/tags/ref_colornames.asp
  • in: variblen vergleichen ohne Groß/kleinschrift

    geschrieben von juwely

    Eine Alternative wäre wohl auch ... beide mit strtolower()

    if ( strtolower($name_vali) == strtolower($name_wertetabelle) ) 
    {
    }


    bzw. andersrum ... beide mit strtoupper()

    if ( strtoupper($name_vali) == strtoupper($name_wertetabelle) ) 
    {
    }


    aber .... strcasecmp() ist wahrscheinlisch die "schönere" Methode
    denn bei den anderen beiden vom vom Wert locale abhängig ist
    was bei Umlauten (Ä, Ö, Ü, ä, ö ,ü) mit passendem locale geht

    obwohl .. bei strcasecmp() steht in Kommentare auch: "... be sure to use the correct locale"
    also auch da wohl aufpassen mit locale Settings und Umlauten

    Was ist mit Zahlen / Sonderzeichen die auf der gleichen Taste (mit Shift) liegen ?
    ... als Bsp
    3
    und
    §
    ....... oder
    +
    und
    *
    .... etc. ?

  • in: Wikipedia API: opensearch ... limit ?

    geschrieben von juwely

    och nee, da muss man sich ja anmelden und auch noch um Freigabe betteln ...

    Wikipedia opensearch hat sowieso komische Ergebnise ....

    es kommt z.B. mit dem Suchwort: 'bier' das Ergebnis: "Couleur" ??? :(

    BSP: opensearch "bier" XML

    <Item>
    <Image source="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d1/M%C3%BChlberg_-_Zum_ersten_Mal_in_Wichs.jpg/32px-M%C3%BChlberg_-_Zum_ersten_Mal_in_Wichs.jpg" width="32" height="50"/>
    <Text xml:space="preserve">Couleur</Text>
    <Description xml:space="preserve">Couleur (franz. „Farbe“) ist die Bezeichnung für die Gesamtheit aller Kleidungs- und Schmuckstücke sowie aller Accessoires und Gebrauchsgegenstände, auf denen oder mit denen die Mitglieder farbentragender bzw. </Description>
    <Url xml:space="preserve">http://de.wikipedia.org/wiki/Couleur#Zipfel_und_Zipfelbund</Url>
    </Item>


    im Gesamten Wikipedia-Artikel "Couleur" existiert nicht einmal das Wort "bier" ... :(
    .. ein Zusammenhang Suchanfrage <---> Ergebnis ist nicht zu erkennen

    bei JSON ist das Ergbnis nicht dabei ??? opensearch "bier" JSON (fm)
    .. verschiedene Ergebnisse durch anderes Format (xml / json) ?? ...

    möep !!! ... unbrauchbar ?

    PS:
    ich will eigenlich zum Such-Begriff möglichst viele passende Worte (Synonyme, etc) finden,
    aber ... "Couleur" zur Suche: "Bier" ist ja vollkommener blödsinn ...

    schön wäre (for "bier") Ergebnisse wie: Bierfaß, Bierflasche, Weizenbier, ...
    und ebenso Worte, die zum Thema "passen" aber nicht das Teil-Wort "bier" enthalten.
    wie z.B.: Brauerei, Pils, Hopfen, etc ...

    kann mir jemand noch andere Bezugsquellen für sowas sagen (die man per PHP auslesen kann) ?
    ... außer: openthesaurus, das kenne ich schon.

    Danke!

  • in: Wikipedia API: opensearch ... limit ?

    geschrieben von juwely

    Hallo

    wie kann ich für Wikipedia API opensearch das limit (Anzahl Ergebnisse) erhöhen ?

    ich bekomme immer nur max. 15 Ergebnisse ??

    BSP: http://de.wikipedia.org/w/api.php?action=opensearch&search=bier&limit=100&format=jsonfm

    in der HELP (mini-Doku) zu action=opensearch steht was von maximal 100 (für bots)

    Parameters:
    ...
    limit - Maximum amount of results to return
    No more than 100 (100 for bots) allowed
    Default: 10
    ...


    aber wie sage ich der Wikipedia API, das mein PHP-Script als "bot" daher kommt ?

    Die Daten lese ich so ein:
    <?php 
    // ------------------------------------------------------------------------ 
    
    $url = 'http://de.wikipedia.org/w/api.php?action=opensearch&search=bier&limit=100&format=xml'; 
    
    $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    
    ## curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0");
    
    // --- User-Agent als Bot aus Beispiel von: https://www.mediawiki.org/wiki/API
    
    curl_setopt($ch, CURLOPT_USERAGENT, 'User-Agent: MyCoolTool/1.1 (http://example.com/MyCoolTool/; MyCoolTool@example.com)');
    
    $rawdata = curl_exec($ch);
    
    curl_close ($ch);
    
    // ------------------------------------------------------------------------ 
    
    $xmlobject = simplexml_load_string($rawdata); 
    
    // ------------------------------------------------------------------------ 
    
    #### DEBUG AUSGABE ####
    
    print "<pre>\n"; 
    print_r($xmlobject); 
    print "</pre>\n"; 
    
    // ------------------------------------------------------------------------ 
    ?>


    das funktioniert auch .... aber immer nur mit max. 15 Ergebnisse

    ... wie muss HEADER und USERAGENT (und ...?... ) aussehen,
    damit ich auch an die 100 möglichen Ergebnisse dran komme ?

Login zum Webhosting ohne Werbung!