php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.01.2012, 16:17  
Neuer Benutzer
 
Registriert seit: 11.01.2012
Beiträge: 4
PHP-Kenntnisse:
Anfänger
juce befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] preg_replace und substr kombinieren?

Hallo zusammen

Ich bin absoluter PHP-Anfänger und kämpfe gerade mit meinem ersten Problem.

Ich möchte gern preg_replace und substr kombinieren, sodass zusätzlich einige Zeichen umgewandelt werden.

Momentan wird mir der Text zwar gekürzt aber ich kriege einfach nicht die Kombination hin. Der Text kommt direkt aus der Datenbank. Jeglicher Versuch preg_replace einzubauen scheiterte. Kann mir vielleicht irgendjemand auf die Sprünge helfen, wie ich das umsetzen kann?
PHP-Code:
<?php echo substr('DB_TEXT',0,45);?>...

Danke schonmal
juce ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.01.2012, 16:25  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

wenn du nun vielleicht noch einen Beispiel-String angeben könntest und WAS du eigentlich vorhast (bitte das Ziel für den Beispiel-String), kann man dir auch helfen.
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 11.01.2012, 16:42  
Neuer Benutzer
 
Registriert seit: 11.01.2012
Beiträge: 4
PHP-Kenntnisse:
Anfänger
juce befindet sich auf einem aufstrebenden Ast
Standard

Momentan steht es so:

PHP-Code:
<?php if (###DB_TEXT### > 45) {?>
<?php 
echo substr('###DB_TEXT###',0,45);?>...
<?php } else {?>###DB_TEXT###<?php }?>
Jetzt möchte ich aber, dass die Sonderzeichen die aus der Datenbank kommen, gar nicht erst angezeigt werden oder gewandelt werden. In Prinzip wäre das nicht so schlimm, da die Sonderzeichen richtig angezeigt werden, es sein denn, sie stehen am Ende eines Titels, dann wird durch substr das Sonderzeichen in HTML geschrieben und das möchte ich vermeiden.

Beispielsweise steht dann
Text Text Text Text Text Text&raq...

Weißt du was ich meine?
juce ist offline   Mit Zitat antworten
Alt 11.01.2012, 17:07  
Erfahrener Benutzer
 
Registriert seit: 06.04.2009
Beiträge: 251
PHP-Kenntnisse:
Fortgeschritten
BlackSpirit befindet sich auf einem aufstrebenden Ast
BlackSpirit eine Nachricht über MSN schicken
Standard

Wandelst du Sonderzeichen in eine Zeichenreferenz um bevor du sie in die DB schreibst?
Ist keine gute Lösung!
Speicher lieber den Text komplett (auf injections achten!) und konvertiere ihn vor der Ausgabe.

Zitat:
Momentan steht es so:

PHP-Code:
<?php if (###DB_TEXT### > 45) {?>
<?php 
echo substr('###DB_TEXT###',0,45);?>...
<?php } else {?>###DB_TEXT###<?php }?>
Das kann garnicht funktionieren...
http://www.php.de/php-einsteiger/489...nsammlung.html (Lerne Grundlagen | Quellensammlung)


Ansonsten kannst du es z.B.: mal mit so einen regex probieren:
Code:
#^(.{0,45})&.*$#
(bricht den string aber bei jeden & ab...)

lg
__________________
Lerne, Software zu schätzen und bedanke dich für die positiven Aspekte, bevor der Entwickler die Motivation zum weiterentwickeln verliert.
BlackSpirit ist offline   Mit Zitat antworten
Alt 11.01.2012, 17:12  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Einfacher als regex ist str_replace. Hab dein Ziel nicht verstanden, deshalb ein Schuß ins Blaue:
PHP-Code:
//$dbText wird erst auf 15 Zeichen gekürzt und dann alle Zeichen aus der Blacklist entfernt
$dbText "###DB_TEXT###!1245678876544abcder4343232222111";
$charBlackList = array("#","!");
$cleanText str_replace($charBlackList"",  substr($dbText,0,15)); 
jspit ist offline   Mit Zitat antworten
Alt 11.01.2012, 17:43  
Neuer Benutzer
 
Registriert seit: 11.01.2012
Beiträge: 4
PHP-Kenntnisse:
Anfänger
juce befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von BlackSpirit Beitrag anzeigen
Wandelst du Sonderzeichen in eine Zeichenreferenz um bevor du sie in die DB schreibst?
Nein, natürlich nicht. Das sind nur Markierungen quasi Platzhalter darin wird der Text von der DB ausgegeben (SQL-Query). Habe sie mal im Beispiel unten weggelassen sonst irritiert das glaubig zu sehr. Das mit den kürzen funktioniert. Ich suche nur noch eine Möglichkeit beides miteinander zu verknüpfen.

Ich wollte es so schreiben aber da passiert nichts:
PHP-Code:
<?php echo substr('DB_TEXT' ,0,45);?><?php echo preg_replace('&raquo;',' ','DB_TEXT');?>...
juce ist offline   Mit Zitat antworten
Alt 11.01.2012, 18:11  
Neuer Benutzer
 
Registriert seit: 11.01.2012
Beiträge: 4
PHP-Kenntnisse:
Anfänger
juce befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von jspit Beitrag anzeigen
Einfacher als regex ist str_replace. Hab dein Ziel nicht verstanden, deshalb ein Schuß ins Blaue:
Danke Danke Danke der Schuß ins Blaue hat funktioniert
juce ist offline   Mit Zitat antworten
Alt 12.01.2012, 08:26  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

bitte lass zukünftig den Unsinn, in jeder Zeile PHP zu starten und am Ende wieder zu beenden (per Tag) das verlangsamt die Verarbeitung nur und macht dein Script auch noch umständlich zu lesen
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Arrays kombinieren - wie? pfump PHP Einsteiger 30 11.02.2011 11:35
2 scripte kombinieren ??? wicca PHP Einsteiger 13 11.01.2011 21:44
[Erledigt] Lohnt sich die Funktion substr()? Extremefall PHP Tipps 2010 5 06.09.2010 19:01
[Erledigt] Substr Problem / Vergleich mit anderer Spalte fufubaer PHP Tipps 2010 5 18.08.2010 17:39
substr() problem mit kyrillisch (utf8) Alex0815 PHP Tipps 2010 2 16.07.2010 13:22
[Erledigt] checkbox mit &lt;select&gt; kombinieren zwantE PHP Tipps 2010 19 08.07.2010 16:04
Frage zu substr() fulltilt PHP Tipps 2009 8 02.04.2009 12:04
[Erledigt] substr() Problem owii PHP Tipps 2008 11 20.10.2008 11:06
Mehrere Arrays unterschiedlicher Größe kombinieren querfisch PHP Tipps 2007 9 31.03.2007 21:34
2 Arrays kombinieren Transmitter PHP Tipps 2006 5 02.01.2006 16:16
String bearbeiten - substr + ? web2 PHP Tipps 2007 5 02.11.2005 13:46
[Erledigt] Tabellen kombinieren Datenbanken 6 16.10.2005 10:29
Arrays kombinieren PHP Tipps 2005-2 1 12.09.2005 00:45
JavaScript mit PHP kombinieren? PHP Tipps 2005-2 18 27.06.2005 11:30
Mit substr nur Teile eines Strings anzeigen PHP Tipps 2004 2 08.09.2004 13:20

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_replace(\/&raquo;/\, sql statement nur teilweise auswählen substr, <?php echo substr ..., str_replace kombinieren, php preg_replace substr, str_replace und substr kombinieren php

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum