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 23-09-2003, 20:57
weserweb
 Junior Member
Links : Onlinestatus : weserweb ist offline
Registriert seit: Sep 2002
Ort: 20min vor der ostsee
Beiträge: 234
weserweb ist zur Zeit noch ein unbeschriebenes Blatt
weserweb eine Nachricht über ICQ schicken
Standard Suchen und ersetzen mehrer Platzhalter in einem Textstring

hallo,

ich stecke fest.

ich hole einen textstring ($text) aus db (der text für eine seite mit der id $id - im beispiel $id=184).
in diesem string stehen platzhalter für bilder.
die platzhalter sehen so aus: "##-1" für bild nummer 1, "##-2" für bild nummer 2 etc.

ich lese dann die bilder-tabelle ein und stelle fest, ob bildnummern ($pic_num) für eine seite mit dieser id existieren.

die verarbeitung soll dann in einer while-schleife laufen:
PHP-Code:
$sql mysql_query("SELECT pic_num FROM pages_pics WHERE page_id = '$id'"); 
    while (
$row mysql_fetch_row($sql))
        {
        
$pic_num $row[0];

        
$bild_pfad "../../images/".$id."-".$pic_num.".jpg";

        if (
file_exists($bild_pfad))
            {
            
$bild "<img src='.$bild_pfad.">";
            $text = str_replace("
##-".$pic_num,$bild,$text);
            
}
        } 
ich bekomme bei z.b. 20 bildern und 2 platzhaltern dieses ergebnis:

1) platzhalter ist "##-11" - ergebnis: <img src='../../images/own_pages/184-1.jpg'
und ans bild angehängt die "1" (zweite ziffer aus "11")

2) platzhalter ist "##-12" - ergebnis: <img src='../../images/own_pages/184-2.jpg'
und ans bild angehängt die "2" (zweite ziffer aus "12")

3) das ganze ist nicht sehr elegant, da für jedes bild der gesamte text geprüft werden muss.

hat jemand einen tip, wie statt "bild-1" das gewünschte "bild-11" angezeigt wird?
kann man das ganze besser formulieren?
oder ist der ganze ansatz verkehrt?

danke für jeden tip, wolfgang
Mit Zitat antworten
  #2 (permalink)  
Alt 23-09-2003, 21:04
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

a) entweder sortierst du die ids DESC, beginnst also mit den grössten zahlen

ODER

b) $text = str_replace("\"##-".$pic_num."\"","\"".$bild."\"",$text);
=> davon ausgehend, dass in $text steht '<img src="##-123">'
__________________
Kissolino.com
Mit Zitat antworten
  #3 (permalink)  
Alt 23-09-2003, 21:06
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

ein regulärer ausdruck vielleicht, der dir alles hinter ##- ersetzt, solang es sich um ziffernhandelt?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #4 (permalink)  
Alt 23-09-2003, 21:18
weserweb
 Junior Member
Links : Onlinestatus : weserweb ist offline
Registriert seit: Sep 2002
Ort: 20min vor der ostsee
Beiträge: 234
weserweb ist zur Zeit noch ein unbeschriebenes Blatt
weserweb eine Nachricht über ICQ schicken
Standard

wurzel war zuerst da und trägt den titel MASTER zu recht.

das DESC hat es gebracht im ersten test.

ich muss allerdings noch darüber nachdenken, warum.

warum vor allen dingen die zweite ziffer frei im text angezeigt wurde.

mrhappiness,

ja, sicher besser, aber ich weiss (noch) nicht gut damit umzugehen.

noch einmal zu meiner grundsätzlichen frage:
ist dieser ansatz der richtige? x mal den ganzen text durchgehen?

in jedem fall: herzlichen dank für die schnelle hilfe!
wolfgang
Mit Zitat antworten
  #5 (permalink)  
Alt 23-09-2003, 21:26
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

str_replace ersetzt bei einem wert von 1 in ##-11 den roten teil => ##-11 , damit bleibt 1 über und steht hinter dem ersetzungstext
bei DESC werden die höchsten werte zuerst geliefert, also 11 vor 1 ... jetzt klarer?

ob ein preg_replace() schneller ist, müsstest du testen, in dem fall glaub ich nicht

und anders als die ersetzung in der schleife durchzuführen, wirst du das nicht hinbekommen ... zumindest fällt mir spontan keine bessere lösung ein.

__________________
Kissolino.com
Mit Zitat antworten
  #6 (permalink)  
Alt 23-09-2003, 21:28
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

k, ihr habt ja recht
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 23-09-2003, 21:37
weserweb
 Junior Member
Links : Onlinestatus : weserweb ist offline
Registriert seit: Sep 2002
Ort: 20min vor der ostsee
Beiträge: 234
weserweb ist zur Zeit noch ein unbeschriebenes Blatt
weserweb eine Nachricht über ICQ schicken
Standard

@ wurzel,

jetzt vollkommen klar!!!

die schleife werde ich so belassen, zumal es sich bei den texten um ca. 500 bis 800 wörter handelt.

ich habe den code noch ein wenig geändert, um die verhältnisse deutlicher zu machen:
PHP-Code:
$replace "##-".$pic_num;
$text str_replace($replace,$bild,$text); 
und wieder ist einem verzweifelten geholfen worden!
danke!
Mit Zitat antworten
  #8 (permalink)  
Alt 23-09-2003, 21:41
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von weserweb
.. und wieder ist einem verzweifelten geholfen worden!
danke!
*wurzel_sich_eine_träne_der_rührung_wegdrückt*
__________________
Kissolino.com
Mit Zitat antworten
  #9 (permalink)  
Alt 23-09-2003, 21:49
weserweb
 Junior Member
Links : Onlinestatus : weserweb ist offline
Registriert seit: Sep 2002
Ort: 20min vor der ostsee
Beiträge: 234
weserweb ist zur Zeit noch ein unbeschriebenes Blatt
weserweb eine Nachricht über ICQ schicken
Standard

Zitat:
*wurzel_sich_eine_träne_der_rührung_wegdrückt*
bin nunmehr selbst zutiefst gerührt.
soll das eine nacht der tränen werden?
vielleicht schliesst sich ja noch jemald an?

bitte thread schliessen, sonst wird's zu nass...
Mit Zitat antworten
Antwort

Lesezeichen


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

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

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
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:36 Uhr.