Suche auf lima-city
-
in: String kürzen aber nich Wort abschneiden
geschrieben von feedping
Hallo
ich würde die zweite Methode nehmen, .... ohne preg_replace()
das soll man ja - vwenn möglich - vermeiden / Alternative nutzen
... liest man so
-
in: Open-Source Projekt anlegen
geschrieben von feedping
Hallo
ich möchte für ein PHP-Script als öffentliches Open-Source Projekt anlegen
es soll alle Entwicklungen abbilden (Archiv alter Versionen) und User (Besucher) sollen Bugs melden,
Feedback geben und eigene Erweiterungen entwickeln können.
und frage mich, welche Plattform dafür am geeignsten ist
ich kenne vom Suchen sourceforge.net http://sourceforge.net oder github.com https://github.com
habe aber keine Ahnung wie es dort "drinnen" aussieht
Welches "System" sollte man als "Anfänger" nutzen ... oder ein ganz anderes "System" ???
Empfehlungen ? ... Erfahrungen ?
und gibt es dabei eswas Besonderes zu beachten, z.B. Versionen, Lizenz, Kosten, etc. ?
-
in: Grösse der Ausgabe einer Seite in Bytes
geschrieben von feedping
Na ok
dann so
<?php $pagedata = file_get_contents('http://..../..../dateiname.php'); $tmp_file_name = $mypath.'\test.txt'; $handle = fopen($tmp_file_name,"w", 0666); fwrite($handle,$pagedata); fclose($handle); $pagesize = filesize ($tmp_file_name); echo "Groesse: ". $pagesize." Byte"; ?>
aber gibt es wirklich keine PHP interne Funktion,
um die Byte-Größe der Ausgabe zu ermitteln?
hab ich graf entdeckt: bei SelfHTML Forum
... Ergo liefert strlen() tatsächlich die Länge des Strings in Bytes ... .
stimmt diese Aussage? ... ist von 2006 ^^oOo ...
dann wäre $pagesize = strlen($pagedata); ja "einfacher" ... ?
-
in: Array-Daten in MySQL speichern
geschrieben von feedping
Hallo
Danke, ...ahhhhhh .... MySQl JOIN ...
das kann ich nutzen um FollowBack zu finden, also IDs in beiden Tabellen gleich
$result1 = mysql_query(" SELECT * FROM ".$db_tabelle1.", ".$db_tabelle2." WHERE ".$db_tabelle1.".followerr_id = ".$db_tabelle2.".friends_id AND ".$db_tabelle1.".user_id = '".$loguser_id."' ");
doch noch was gelernt ...JOINs :) .... Prima für das Suchen von "Verbindungen"
Aber einen Sinn für die Updates der neuen IDs sehe ich darin noch keinen,
denn dazu müsste ich je "Typ" (Follower und Friends) jewels noch eine "neue" Tabelle anlegen
um dort die jeweils neuen IDs aus der API-Abfrage zu speichern.
... und dann für neue IDs mit = und für verlorene IDs mit <> Abfragen
und dann diese zwei Ergebnisse wieder in den ursprünglichen Tabellen speichern,
.... klingt für mich nach deutlich mehr Aufwand als zweimal die Array durchzugehen
würde schon funktionieren .... fragt sich nur was performanter / schneller ist ....
weil bei jedem Aufruf die "neuen" Tabellen mit bis zu tausenden IDs zu füllen oOo...
oder ist das deutlich besser als ein foreach() mit sooooo vielen Werten zum Vergleich
mal anders gefragt (ohne MySQL) ... wie vergleicht man am besten 2 einfache Arrays
und bekommt als Ergebnis 2 neue Arrays, eins mit den neuen Einträgen und das Andere
mit den raus-geflogenen Werten.
ich finde meine Methode schon garnicht schlecht, hier als BSP:
$array1 = ("100", "101", "102", "104", "106", "108"); // --- aus API $array2 = ("100", "102", "103", "104", "107"); // --- aus DB $new_data = array(); foreach( $array1 as $item1) { if (!in_array( $item1 , $array2 ) { $new_data[] = $item1; } } $lost_data = array(); foreach( $array2 as $item2) { if (!in_array( $item2 , $array1 ) { $lost_data[] = $item2; } } - - - - - - - - - - - - Ergebnis: (für DB Updates) $new_data = array ("101", "106", "108"); $lost_data = array ("103", "107");
aber vielleicht gehts DAS ja auch besser
:)
-
in: Grösse der Ausgabe einer Seite in Bytes
geschrieben von feedping
Danke
mit ob_get_length scheint es ja schon zu funktionieren
aber ich brauche die Ausgabe der Byte-Grösse von einer anderen Datei aus
ich habe jetzt einfach die Datei per http aufgerufen,
dann bekomme ich die HTML-Ausgabe und nicht den PHP-Code
und dann mb_strlen() ... stimmt doch dann so, oder ?
<?php $pagedata = file_get_contents('http://..../..../dateiname.php'); $pagesize = mb_strlen($pagedata, 'latin1'); echo "Groesse: ". $pagesize." Byte"; ?>
@xxbashxx
Den Wert brauche ich für Tests, bei welchen Aufrufen (mit Parameter)
ob die Ausgabe eine bestimmte mindest-Größe hat ....
@hemiolos
mit Ausgabe meine ich den HTML-Code, der vom Script bei Aufruf erzeugt wird.
also ohne Bilder oder ander Medien, länge des HTML-Quellcode Strings
-
in: Array-Daten in MySQL speichern
geschrieben von feedping
Hallo
ja, das soll ein Analysetool werden. So wie hunderte andere auch.
Man wird ja wohl noch für seinen eigenen Account eine Analyse machen dürfen,
und genau dafür wird die Twitter-API ja auch bereit gestellt, um Tools damit zu bauen
Alle Daten die man mit der API abfragen kann sind öffentlich für jederman zugänglich
es wird ja auch nichts gehackt oder ausgespäht, nur Verfügbares abgefragt und sortiert.
Auch gibt es doch schon viele solcher Tools, auch "deutsche", also kann ich mir nicht vorstellen dass das ein rechtliches Problem darstellt, wenn man als User seine eigenen Verbindungen in Twitter analysiert. Ich gehe also davon aus, das Twitter-Analysen grundsätzlich erlaubt sind. Sollte jemand andere Informationen dazu kennen, dann kann er diese gerne hier als Antwort screiben.
zu Daten (Sruktur):
... völlig egal welche Twitter-interne Datenbank dahinter steht, die API-Abfrage liefert ein json Code (Objekt/Array) und genau darum geht es mir bei diesem Übungs-Projekt: externe Daten (Objekt/Array) in eigener Datenbank (MySQL) verwalten.
zu Sicherheit:
... deswegen gibt es ja das oAuth Verfahren von Twitter, bei dem der User authentifizieren muss, um das Tool zu nutzen,
zu Traffic:
... da hat Twitter schon dran gedacht und jeder Applikation ein Limit der Abfragen (pro Stunde) gesetzt.
muss ja auch nicht Twitter sein, aber ich will was mit ner API üben, da bringt CMS wenig
also bleib ich erstmal dran ... mir gehts jetzt nicht um das Warum, sondern um das Wie
zur ursprünglichen Frage
egal wie ich es angehe, muss ich doch immer beide Arrays komplett durchgehen ?
oder?
$array1 = (IDs aus der API) ... (API-Response mit REST API / curl / json )
$array2 = (IDs aus der DB) ... (aus Abrage mit SELECT * WHERE user_id = $logged_in_userid )
das sind 2 einfache Arrays mit fortlaufenden Keys und der Nummer im Vaue
dann ..
foreach( $array1 as $item1) {
if (!in_array( $item1 , $array2 ) { ... Aktion für Neue ID .. } // neue ID ist nicht in DB-Array
}
foreach( $array2 as $item2) {
if (!in_array( $item2 , $array1 ) { ... Aktion für Lost ID .. } // die ID aus DB ist nicht in API-Response
}
So hab ich zuwest die Abfrage aller IDs aus der DB (um $array2 zu bekommen)
und dann für jede einzele Aktion Insert bzw. Update (oder Delete) Abfragen
Wie soll das direkt über eine MySQl Abfrage mit WHERE gehen ? also ohne $array2 zu holen?
Sorry, ich kapiers nicht wie? ... Code-Beispiel .. nur so grob ?!
Danke
-
in: Array-Daten in MySQL speichern
geschrieben von feedping
Hallo
also im Klartext geht es darum eine kleines TwitterTool zu basteln, das denke ich durchaus "legal" ist
deren Haupt-Aufgabe soll es sein, neue und verlorene Follower / Friends zu erkennen
und herauszufnden, welche User, denen man folgt auch zurück-folgen.
Beim ersten Login (Twitter oAuth) werden alle Follower-IDs und alle Friends-IDs per Twitter API abgeholt und gespeichert.
es gibt (derzeit) zwei Tabellen: (mySQL)
a) id - UserID - FollowerID ... (id = Auto Increment)
b) id - UserID - FriendsID
Bei jedem weiteren Aufrufen werden dann wieder diese IDs von der API abgeholt und mit dem Bestand in der DB verglichen.
Neue Follower oder Friends werden hinzugefügt, verlorene Folower und Friends werden gelöscht
Per Script (PHP) soll der User dann abfragen können:
- welche anderen User (seit letzem Aufruf) neue Follower bzw. neue Friends (=following) sind
- welche der Follower (seit letzem Aufruf) entfolgt sind bzw. auch welche Freunde weg sind
- welche anderen User zurück-folgen (Followed by User and Following back)
- usw...
Wenn das erstmal gut funktioniert, ist geplant das mit weitern Listen zu erweitern,
z.B. Listen, Favoriten, Retweets, Erwähnungen, etc.
... aber erstmal die Grundfunktion
Script läuft bisher etwa so: (am Bsp Follower, analog dann auch Friends, etc)
... bei mir jetzt noch mit einem Array und serialize()
if ( USER logged with in oAuth) {
if ( USER startet Aktion) {
+ hole neue Follower IDs von API = Array a
+ hole alte Follower IDs von DB = Array b
+ vergleiche IDs (if in_array) neue IDs an Array b anfügen, verlorene aus Array b raus werfen
+ speichere neues Array b in DB
}
}
das klappt zwar, aber stimmt schon, mit einzelnen Zeilen könnte man viel mehr "machen"
zu jeder ID ein Datum und ein Status dazu
- dann kann man Abfragen machen wie "neue Follower seit Datum x" ... besser als seit letzem Aufruf
- oder auch UnFollowed User in der DB behalten und mit entsprechendem Status merkieren
- oder auch haerausfinden wenn jemand der schonmal entfolgt ist wieder folgt ... etc.
Habe eine zweite Version angefangen, die mit einzelnen Zeilen arbeitet (ohne serialize)
aber da hab ich noch nicht kapiert, wie ich die Vergleiche Neue / Alte IDs anders machen kann
bisher vergleiche ich mit if ( in_array ) ... für Beispiele mit WHERE wäre ich sehr dankbar
a) id - UserID - FollowerID - Datum - Status
b) id - UserID - FriendsID - Datum - Status
foreach ( IDs aus der API-Abfrage ) {
INSERT INTO ... (wenn ID noch nicht in DB ist) ...
UPDATE ... SET status = 'lost' ... (wenn ID nicht mehr in Array aus API ist)
...
}
... ?
So jetzt wisst Ihr "etwas" genauer, was ich machen will, und könnt mir vielleicht besser helfen.
Zur Info: ja ich weiss, das es schon ähnliche Twitter Tools gibt aber ich nutze das quasi als Übung, um PHP und MySQL etwas besser kennen zu lernen. Mit MySQL habe ich noch sehr wenig Erfahrung. Und zum Einsatz kommen soll das Script nur privat für mich und für einige Freunde. Und was gibts besseres als ein konkretes Projekt, um daran zu lernen, Twitter API deshalb, weil es ganz gut dokumentiert ist und immer Daten "zum damit arbeiten" liefert, also Ideal zum üben.
-
in: Grösse der Ausgabe einer Seite in Bytes
geschrieben von feedping
Hallo
Wie ermittle ich die Größe der Ausgabe einer Seite in Byte
nicht die Dateigröße, sondern nur die der Ausgabe
wenn ich ein Script habe, das zwar 10 KB PHP-Quellcode hat (Dateigröße)
aber am Ende nur ein einziges Wort ausgibt, sind das ja bestimmt nur wenige Byte
Dateigröße ist klar ... $groesse = filesize($datei); ...
aber wie kann ich die Byte-Größe der Ausgabe ermittel?
mit fopen oder so bekomme ich ja auch wieder den Quellcode ?!
(PS: die datei liegt im gleichen Server/Webspace/Verzeichnis)
? -
in: Array-Daten in MySQL speichern
geschrieben von feedping
oki, danke
Edit:
habe jetzt mal beide methoden ausprobiert
und wenn ich das mit einem grossen array als serialize in TEXT speichere
dann ist die Script-Laufzeit deutlich geringer, als hunderte einzelne Zeilen durchgehen
ok, in einzelnen Zeilen ist es vielleicht "ordenlicher" aber wohl lagsamer (für meinen Zweck)
weil ich so anstatt einem MySQL query soviele brauche, wie es Änderungen gibt.
... oder ich mache da grundsätzlich was falsch ... oOo ...
noch ne Frage zum Daten-Typ
die Nummern sind bis zu 20 Zeichen lang (String aus Zahlen)
was ist da besser , bigint oder varchar ?
Danke! -
in: Array-Daten in MySQL speichern
geschrieben von feedping
Hallo
Ich habe ein Script, das für jeden User eine gewisse Anzahl an SubIDs verwaltet
also zu jedem User gibt es eine variierende Zahl an dazugehörigen Nummern (SubIDs)
Bei Aufruf des Scripts wird eine aktuelle Liste der Nummern (SubIDs) geladen (als Array)
dann soll geprüft werden, welche Veränderungen der frisch geladenen Nummern (SubIDs)
zum Bestand in der DB gibt ... ob neue dazu gekommen sind oder ob alte nicht mehr aktuell sind.
jetzt die Frage:
ist es besser die einzelnen Nummern als eigene DB-Einträge (Zeilen) zu speichern ?
dann hätte ich direkten Zugriff und kann sie schnell einzeln entfernen / neue INSERTen
oder alle in einen grossen TEXT Block mit serialize() um das ganze Array zu speichern ?
dann muss ich für Änderungen immer das ganze Array (alle Nummern) durchgehen
Manche User haben bis zu 5000 Nummern zugewiesen, andere nur 10
wie würdet Ihr es machen? einzelne Zeilen je Nummer oder alle in einem Block?
Danke
-
in: eMail Validierung pattern ?
geschrieben von feedping
Hallo
ok, habs getestet, geht also doch
es ist nur etwas verwirrend, das bei erfolgreicher Validierung kein bool(true) zurückgegeben wird,
sondern der String der eMail-Adresse aber bei nicht validen eMails kommt ein bool(false) ...
also man muss nur "richtig herum" abfragen, dann klappt's damit.
nicht if ( $emailcheck === true ) ... sondern if ( $emailcheck === false ) ....
(!)
ABER ... bei Tests bekomme ich damit auch name@example.d als korrekte eMail
(beachte .d .... also nur ein Buchstabe TLD) ... doch nicht sooooo ganz ...
DANKE an fabo für die Funktion, die scheint mir unter all den Varianten,
die ich bisher so gesehen habe, die bisher beste zu sein ...
-
in: eMail Validierung pattern ?
geschrieben von feedping
chatter schrieb:
Wenn die Filter-Erweiterung zur Verfügung steht (wie bei Lima) kannst du einfach die Funktion filter_var() benutzen.
$ergebnis = filter_var ('test@example.com', FILTER_VALIDATE_EMAIL);
hatte ich auch schon gefunden,
aber da steht im Kommentar;
FILTER_VALIDATE_EMAIL allows incomplete e-mail addresses to be validated, for examle john@gmail will validate as a proper e-mail address.
hier: http://www.php.net/manual/de/filter.filters.validate.php#101468
also ist das ja eher Sinnlos.
-
in: eMail Validierung pattern ?
geschrieben von feedping
Hallo
wie soll ich eine eMail prüfen,
ist es mitt eregi oder mit preg_match besser / richtig ?
wie lautet der richtige / beste pattern ?
"^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$" "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$" "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/" ...usw.
welcher "ausdruck" ist der "beste" ... es gibt da ja sooo viele Beispiele ...
-
in: PHP mysql_real_escape_string bringt leere Variable
geschrieben von feedping
Hallo
für Nutzung von mysql_real_escape_string muss vorher die MySQL Verbindung stehen!
hast Du den Quellcode schnmal überprüft, ob Du Dir mit mysql_real_escape_string auch die "richtige" Variable umwandelst?
wenn es bei allen anderen Strings funktioniert, nur nei name nicht, kann es fast nur ein Schreibfehler sein.
if ( !empty($_REQUEST['name']) ) {
$dername = trim($_REQUEST['name']);
...
$dername = mysql_real_escape_string($name);
}
so würde $dername leer sein, weil $name nicht definiert ist
also:
$dername = mysql_real_escape_string($dername);
sonst scheib mal den Quellcode hier, dann sehen wir mehr -
in: Alles geht wieder - Langweilig!
geschrieben von feedping
pixilab schrieb:
Der reinste Serverstrofismus hier :-)
Den Fehler kannte ich noch garnicht, ich hoffe die finden den Server wieder^^.
503 Service Unavailable No server is available to handle this request.
immernoch verschollen ?
schade, in der Zeit in der ich hier dabei bin ist der Webspace mehr Down als da
da kann man machen nix ... will ja nicht mekern bei gratis, aber leicht frustrierend so
:(
-
in: Prüfen ob URL ein RSS-Feed ist
geschrieben von feedping
ok aber ich bekomme damit ein leeres Objekt ?!
$doc = new DOMDocument(); $doc->load($url); $channels = $doc->getElementsByTagName("channel"); echo "<pre>\r\n"; print_r($channels); echo "</pre>\r\n";
was ist da falsch?
habe es auch mal versucht mit simplexml_load_file($url);
da bekomme ich Daten im Objekt, aber auch nicht alle
alles was innerhalb <![CDATA[ ........... ]]> steht bleibt ein leeres Objekt?
?
-
in: Prüfen ob URL ein RSS-Feed ist
geschrieben von feedping
Hallo
wie kann ich am einfachsten (schnell) prüfen
ob es sich bei einer übermittelten URL um einen RSS-Feed handelt ?
also nicht ob überhaupt erreichbar, sondern ob der Inhalt im RSS / Atom Format ist?
? -
in: mysql abfrage where not ?
geschrieben von feedping
trueweb schrieb:
SQL kennt nur <>
Danke,
habe nochmal gesucht und doch noch was gefunden
... WHERE status NOT IN ('publish')
damit kann man auch gleich mehrere Werte als Bedingung angeben
... WHERE status NOT IN ('publish', 'abgelaufen')
denn mit <> hab ich so das Gefühl, dass das eigentlich für Zahlen-Werte ist,
weniger geeignet für Strings, oder? -
in: Problem mit Grafik Datei
geschrieben von feedping
Hallo
versuch doch mal ohne das führende Slash /
#oben {
background:url(images/oben.jpg);
width: 865px;
padding-right: 30px;
}
oder die komplette URL (http-Adresse) zum Bild
background:url(http://metin35.lima-city.de/images/oben.jpg);
PS: meine Güte hat Dein Quellcode viele Leerzeilen oOo -
in: Umfrage mit HTML bzw JavaScript erstellen
geschrieben von feedping
yorecords schrieb:
Also werd ich mich wohl entweder mit PHP beschäftigen müssen, oder darauf verzichten..
ja, definitiv brauchst Du zum senden einer eMail PHP, wird mit JS wohl nicht funktionieren
auch würde ich mir nicht bei jedem Absenden des Formulars ne E-Mail kommen lassen
sondern die Ergebnisse speichern (mysql oder file-basiert)
so kannst Du eine Auswertung dieser Ergebnisse gleich "kompakt" ansehen
und ggfs Dir einmal am Tag auch den neuesten Stand zusenden.
Hinweis: Wenn Du mit ein Formular Online stellt, das dann mit PHP weiter-verarbeitet werden soll,
dann bitte nicht ganz die Sicherheit vergessen (Filter der Eingabe, etc)
Tip: googeln nach "php umfrage tutorial" oder "php umfrage erstellen" oder ähnliches
BSP ... Umfrage mit PHP selbst für Leute die sich 0 auskennen! .... etc.
oder gleich ein "fertiges" kleines PHP-Script für Umfragen verwenden oder Umfragen
aber auch dabei gilt: die sind oft nur rudimentär, ohne Sicherheit
(hacking-Schutz durch Eingabe-Filter, etc.)
Viel Erfolg!
-
in: div element auf webseite paltzieren mit css
geschrieben von feedping
my-free-farm schrieb:
... einfach mal mit mehreren browsern probieren und ihr seht die unterschiede
Hallo
oft hilft es, wenn man bei den umgebenden (aüßeren) DIVs die margin und padding auf 0 setzt
entweder alle CSS-Klassen einzeln, oder glaobal für alle Elemente mit *
* { margin:0px; padding:0px; border: 0px; }
und dann jedem Element das Abstände haben soll, auch wieder welche zuweisen (Listen, etc.)
PS: Deine Klasse li ist vom Namen her nicht so gut gewählt,
bzw. Du kannst die Listen-Elemente direkt ansprechen
.links li { }
und nicht (wie bei Dir) mit eingeschobener .li CSS-Klasse ( ist sonst sehr verwirrend)
.links .li li { }
oder? -
in: mysql abfrage where not ?
geschrieben von feedping
Hallo
gibt es für MySQL eine Abfrage um die Datensätze zu finden,
wo bei einem Feld kein bestimmter Wert drin steht ?
WHERE NOT habe ich ausprobiert, ging aber leider nicht.
ich möchte z.B. alle Datensätze, die im Feld status nicht den Wert 'publish' haben
geht das? und wie geht das?
Danke