php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 02-07-2009, 14:16
RamonaS
 Registrierter Benutzer
Links : Onlinestatus : RamonaS ist offline
Registriert seit: Mar 2009
Beiträge: 177
RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Index 0 aus array entfernen?

Hallo,

Ich möchte per echo den inhalt aller array-elemente ausgeben, ausser dem ersten elemend - index 0

Das habe ich so gemacht:
PHP-Code:
foreach($arr as $line)
 {
$zt=explode("|",trim($line));
  echo 
"<br />".$zt[1]."|".$zt[2]."|".$zt[3]."|".$zt[4]."|".$zt[5];
 } 
Irgendwie sagt mir mein gefühl das man das kürzer schreiben kann.
Geht das oder muß die ECHO-Zeile so lang sein?
Mit Zitat antworten
  #2 (permalink)  
Alt 02-07-2009, 14:20
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
foreach ($arr as $line) {
    echo 
"<br />" trim(substr($linestrpos($line"|")));


Geändert von h3ll (02-07-2009 um 14:23 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 02-07-2009, 14:21
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

array_shift() und implode() könnten helfen.

Alternativ:
strpos() und substr()
__________________
Wir werden alle sterben
Mit Zitat antworten
  #4 (permalink)  
Alt 02-07-2009, 14:40
RamonaS
 Registrierter Benutzer
Links : Onlinestatus : RamonaS ist offline
Registriert seit: Mar 2009
Beiträge: 177
RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Danke h3ll

Bei dir ist noch'n kleiner schönheitsfehler drin, der string befinnt mit einm | der dort weg sollte.


...aber ich hatte selber eine zündende idee, und zwar beinhaltet index 0 eine timestamp und ist somit immer gleich lang, habe jetzt das hier angewendet

echo "<br />".trim(substr($line,11));

das funktioniert sehr gut.
Mit Zitat antworten
  #5 (permalink)  
Alt 02-07-2009, 14:41
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RamonaS Beitrag anzeigen
Danke h3ll

Bei dir ist noch'n kleiner schönheitsfehler drin, der string befinnt mit einm | der dort weg sollte.
Dann erhöhe den Wert des Offsets um 1.
Mit Zitat antworten
  #6 (permalink)  
Alt 02-07-2009, 14:59
RamonaS
 Registrierter Benutzer
Links : Onlinestatus : RamonaS ist offline
Registriert seit: Mar 2009
Beiträge: 177
RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Jetzt wirds peinlich hier:-)

>Dann erhöhe den Wert des Offsets um 1.
Was ist das denn wieder....Offsets kenn ich nur von meinen fehlermeldungen, wenn ich mit einem array was anstelle bis nix mehr geht:-)
Mit Zitat antworten
  #7 (permalink)  
Alt 02-07-2009, 15:04
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RamonaS Beitrag anzeigen
Jetzt wirds peinlich hier:-)

>Dann erhöhe den Wert des Offsets um 1.
Was ist das denn wieder....Offsets kenn ich nur von meinen fehlermeldungen, wenn ich mit einem array was anstelle bis nix mehr geht:-)
Ich meine die Startposition von substr():

PHP: substr - Manual
Mit Zitat antworten
  #8 (permalink)  
Alt 02-07-2009, 15:10
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RamonaS Beitrag anzeigen
Jetzt wirds peinlich hier:-)
Ja - weil du dich jetzt schon zum wiederholten Male darauf hinweisen lässt, bitte die [quote]-Tags zu nutzen, wenn du aus einem Vorposting zitierst!
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 03-07-2009, 12:41
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Dabei genügt es schon, einfach auf den "Zitieren"-Button zu drücken.

Zitat:
Zitat von RamonaS Beitrag anzeigen
...aber ich hatte selber eine zündende idee, und zwar beinhaltet index 0 eine timestamp und ist somit immer gleich lang, habe jetzt das hier angewendet

echo "<br />".trim(substr($line,11));
Wer sagt, dir dass ein Timestamp immer eine Zahl mit elf Ziffern ist?

PHP-Code:
echo date('Y-m-d H:i:s'1000000000), $lf;
// gibt: 2001-09-09 03:46:40 (für CET) 
Also schneidet dein Script bei Daten vor dem 9. September ein Zeichen zu viel ab.
Ich kann mir allerdings deine Antwort auf dieses Argument schon denken ...

Zitat:

das funktioniert sehr gut.
Das liegt im Auge des Betrachters, ich würde einen Einzeiler vorziehen.

PHP-Code:
$zt 'a|b|c|d|e';
$lf '<br />';

// die unvermeidliche preg_replace()-Lösung: B-)
echo preg_replace('/\A[^|]*\|/'''$zt), $lf
Der passt auch noch, wenn sich das Format des zu entfernenden Teils einmal ändert, weil keine feste Länge angenommen, sondern nach dem Trennzeichen gesucht wird. Man kann das natürlich auch mit strpos() und substr() nachbauen ...

Die Standard-Stringfunktionen von PHP haben das Problem, dass sie das erste Trennzeichen leider immer stehen lassen:

PHP-Code:
echo strstr($zt'|'), $lf;
echo 
strpbrk($zt'|'), $lf
Eine interessante Lösung wäre auch noch die mit preg_split(), aber man muss dazu dann noch list() bemühen. Eleganten Quellcode zu schreiben, ist halt in PHP nicht wirklich drin:
PHP-Code:
// preg_split(,$zt, 2) teilt $zt nur einmal (in [b]2[/b] Teile),
// list (, $out) verwirft den ersten gleich wieder
list (, $out) = preg_split('/\|/'$zt2);
echo 
$out$lf
Eventuell geht das auch mit explode() -- ich war zu faul, es zu testen.

Ein (in PHP zumindest bis 5.2.x nicht möglicher) Einzeiler wäre:
PHP-Code:
echo (preg_split('/\|/'$zt2))[1], $lf
In anderen Script-Sprachen geht sowas.

Geändert von fireweasel (03-07-2009 um 12:44 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 03-07-2009, 14:58
RamonaS
 Registrierter Benutzer
Links : Onlinestatus : RamonaS ist offline
Registriert seit: Mar 2009
Beiträge: 177
RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von fireweasel Beitrag anzeigen

Also schneidet dein Script bei Daten vor dem 9. September ein Zeichen zu viel ab.
Ich kann mir allerdings deine Antwort auf dieses Argument schon denken ...

// die unvermeidliche preg_replace()-Lösung: B-)
echo preg_replace('/\A[^|]*\|/', '', $zt), $lf;
Naja, ich hab eigentlich keine daten von der zeit als timestamp noch kürzer als 10 zeichen war

...aber ich werde die "unvermeidliche preg_replace()-Lösung" von dir zum einsatz bringen.

Ich muß dir allerdings gestehen, die regex sind für mich noch viel schlimmer als mit arrays rum zu handieren. Ich lass die dann gleich so denn wenn ich da dran fummel tut sie garantiert nicht mehr.

Ok danke für den hinweiß ich werde das dann einbauen.
Mit Zitat antworten
  #11 (permalink)  
Alt 03-07-2009, 16:05
RamonaS
 Registrierter Benutzer
Links : Onlinestatus : RamonaS ist offline
Registriert seit: Mar 2009
Beiträge: 177
RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

@fireweasel

So ich hab das jetzt so gemacht:
PHP-Code:
if(isset($_GET['uo']) and $_GET['uo']=="s"# Link wurde geklickt
 
{echo "<br /><br />";
  
$arr=explode("\n",file_get_contents($_SERVER["DOCUMENT_ROOT"]."/useronline.txt"));
  foreach(
$arr as $line)
   {echo 
"<br />".preg_replace('/\A[^|]*\|/','',$line),"\n";} # Ganze Zeile anzeigen, ausser Arayy Index 0
 
}
else
 {echo 
"<a href='".$_SERVER['PHP_SELF']."?uo=s'>(".$all.")</a>";}

unset(
$dx,$arr,$line,$zt); 
Würdest du sagen das dieser scriptteil jetzt perfekt ist oder nur zu 100% ok?
Für änderungsvorschläge hab ich immer ein offenes auge.


Mit Zitat antworten
  #12 (permalink)  
Alt 03-07-2009, 16:18
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Nein, das ist nicht schön!
1. witzig eingerückt! (kaum lesbar)
2. PHP_SELF ermöglicht u.U. XSS Attacken
3. Wozu das unset() ?
__________________
Wir werden alle sterben
Mit Zitat antworten
  #13 (permalink)  
Alt 03-07-2009, 16:24
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

1. Viel kürzer von der Textlänge ist das jetzt auch nicht.
2. Übersichtlicher ist es auch sicher nicht.
3. Schneller schon gar nicht.
Warum also sowas?
Mit Zitat antworten
  #14 (permalink)  
Alt 03-07-2009, 17:21
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von RamonaS Beitrag anzeigen
...aber ich werde die "unvermeidliche preg_replace()-Lösung" von dir zum einsatz bringen.
Das ist in so einem simplen Fall keine gute Idee.

explode leistest hier ganz simpel das gewünschte.
Reguläre Ausdrücke sind i.a.R. kostenintensiver als einfache Stringfunktionen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #15 (permalink)  
Alt 03-07-2009, 20:45
RamonaS
 Registrierter Benutzer
Links : Onlinestatus : RamonaS ist offline
Registriert seit: Mar 2009
Beiträge: 177
RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von combie Beitrag anzeigen
Nein, das ist nicht schön!
1. witzig eingerückt! (kaum lesbar)
2. PHP_SELF ermöglicht u.U. XSS Attacken
3. Wozu das unset() ?
zu 2:
Was macht ihr da an stelle von PHP_SELF ? Das soll halt flexibel sein, wird im footerbereich eigeblendet auf jeder seite, also kann ich da kein festen dateinamen einsetzen.

zu 3:
Damit ich auch sicher bin das die varablen/arrays sich nicht addieren oder sowas in der art.

Wie würdest du dieses script schreiben wenn es deins wäre?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zeile aus Array entfernen? Daether PHP Developer Forum 2 21-07-2006 10:44
Max index von array tine_ PHP Developer Forum 2 01-02-2005 12:53
define und array-index uschi PHP Developer Forum 4 06-08-2003 17:34
Name des Array-Index TobiaZ PHP Developer Forum 12 21-03-2003 17:06
Array- Elemente anhand des values aus dem array entfernen Thommy PHP Developer Forum 12 30-10-2001 20:05

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:38 Uhr.