php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.07.2005, 13:31  
Benutzer
 
Registriert seit: 13.07.2005
Beiträge: 69
madhatter
Standard eine Frage zu str_replace()

Ich habe ein kleines Problem, was ich irgendwie nicht lösen kann.

Ich habe in einer DB einige Links die ich von einer anderen Seite beziehe. Leider sind einige der Links fehlerhaft.
Es gibt z.B. einige die sowas enthalten:

http://www.beispielsite.de/JPG/http:...e/jpg/1234.jpg

nun wollte ich mit str_replace alles vor dem zweiten http:// abschneiden. Leider weiß ich nicht wie ich das hinkriege.
Die offizielle Funktions-Referenz gibt zu diesem Thema nichts her mind. konnte ich nichts finden.

Wäre klasse, wenn mir jemand da helfen könnte.
Danke.
madhatter ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 27.07.2005, 14:07  
Neuer Benutzer
 
Registriert seit: 14.07.2005
Beiträge: 27
mristau2k5
mristau2k5 eine Nachricht über ICQ schicken mristau2k5 eine Nachricht über MSN schicken
Standard

ich würde das aufsplitten an http://, weiss aber nicht genau, ob das mit explode() so geht, dann kann man den letzten Index des Arrays nehmen, das ist die richtige URL, http:// davor setzen und fertig, oder eben mit strsplit() glaub die Funktion heisst so an http:// splitten.

Also mit strsplit müsste man eben erstmal das erste http:// abschneiden, danach dasselbe nochmal, dann ist der zweite Teil die Url, muss noch http:// dran und fertig, ich kenne die Syntax von strsplit nicht ganz auswendig, aber ich glaub es war
string strsplit(substring, string)
also direkt die Funktionsrückgabe, oder
strsplit(substring, part1, part2)

sorry, ich hab keine Ahnung was genau in php stimmt, ist in den Sprachen, die ich kenne unterschiedlich, aber auf http://php.net kannst ja nachschauen

mit str_replace könnte es auch gehen, aber das würde dann zwei http:// finden, vllt gehts mit ereg_replace besser, aber damit hab ich noch net so große Erfahrungen
mristau2k5 ist offline  
Alt 27.07.2005, 14:07  
Gast
 
Beiträge: n/a
Standard

Zitat:
Die offizielle Funktions-Referenz gibt zu diesem Thema nichts her mind. konnte ich nichts finden.
Bitte ?
Steht doch alles da in Handbuch.
 
Alt 27.07.2005, 14:15  
Neuer Benutzer
 
Registriert seit: 14.07.2005
Beiträge: 27
mristau2k5
mristau2k5 eine Nachricht über ICQ schicken mristau2k5 eine Nachricht über MSN schicken
Standard

ups, war in php sogar die falsche Funktion

also sowas wie strsplit gibts in php net direkt
mristau2k5 ist offline  
Alt 27.07.2005, 14:42  
Gast
 
Beiträge: n/a
Standard

Zitat:
also sowas wie strsplit gibts in php net direkt
Bitte ?
Wo guckst du denn nach ?
Im Wochenplan der Verkehrsbetriebe oder im PHP-Handbuch ?
 
Alt 27.07.2005, 15:06  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 104
ajo_silent
Standard

@ CIX88:

du klingst sehr genervt.
mristau2k5 hat sich echt Mühe gegeben, konstruktive Antworten zu schreiben, was ich bei dir nicht sehen kann.

Gruß

ajo
ajo_silent ist offline  
Alt 27.07.2005, 15:13  
Erfahrener Benutzer
 
Registriert seit: 15.07.2005
Beiträge: 230
zapate
Standard

PHP-Code:
<?

$text
="http://www.beispielsite.de/JPG/http://www.beispielsite.de/jpg/1234.jpg ";

if (
ereg("^http://.*http://",$text)) {$text=ereg_replace(".*([url]http://.*[/url])","\\1",$text);}


echo 
$text;
?>
zapate ist offline  
Alt 27.07.2005, 16:19  
Neuer Benutzer
 
Registriert seit: 14.07.2005
Beiträge: 27
mristau2k5
mristau2k5 eine Nachricht über ICQ schicken mristau2k5 eine Nachricht über MSN schicken
Standard

also 1.
@CIX88
str_split gibt es, ich hab auf php.net geschaut
aber die str_split in php hat nicht dieselbe Funktion, wie in einigen anderen Programmiersprachen, daher kam das Problem

Edit: ich hab mit strings zerlegen in PHP noch nicht wirklich gearbeitet, nur in Delphi und Ada, da gabs strsplit(substr, str1, str2) damit hätte man das lösen können, hab das jetzt eben fälschlich auf php übertragen, bzw. verwechselt, mit strsplit gibt es nicht, meinte ich dann, dass es das eben in dieser Art in php nicht direkt gibt, sondern man sich ne Behelfsfunktion machen könnte, die das so macht.

2. ich würde sowieso vorschlagen, die Links direkt in der db zu ändern, so ein rest vorne nervt und macht die db größer, als sie sein müsste
3. strings an einem Zeichen trennen hab ich bisher nur mit explode() gemacht und mit str_replace() bestimmte Zeichen rausgelöscht oder ersetzt
4. vllt könnte man das Problem auch an der Wurzel beheben, bevor die Links in die db eingefügt werden, wenn in nem Script nämlich bei einem link kein http davor steht, dann wird automatisch der heimatpfad davorgesetzt

blabla.de wird also zu http://test.de/... /blabla.de
5. danke ajo_silent

Im Endeffekt denk ich, dass das Problem mit dem Code von Zapate gelöst werden könnte, vllt kann man statt ereg auch preg verwenden, weiss nicht, was besser ist
mristau2k5 ist offline  
Alt 27.07.2005, 17:16  
Gast
 
Beiträge: n/a
Standard

Zitat:
du klingst sehr genervt.
mristau2k5 hat sich echt Mühe gegeben, konstruktive Antworten zu schreiben, was ich bei dir nicht sehen kann.
Ich bin heute so ruhig wie schon lange nimmer,
aber wenn jemand schreibt »Die offizielle Funktions-Referenz gibt zu diesem Thema nichts her mind. konnte ich nichts finden.« , da frag ich mich schon wo er gelesen hat.
Tipp mal bei Google php+str_replace() ein, und wenn dort keine bauchbaren Informationen kommen, fresse ich ein Besen inkl. der Putzfrau.

Für das oben genante Problem, gibt es viele Möglichkeiten:
- split()
- preg_split()
- str_replace()
- preg_replace()
usw. usw.

... und auf php.net kann man alles nochmal in Ruhe nachlesen
 
Alt 27.07.2005, 20:48  
Erfahrener Benutzer
 
Registriert seit: 15.07.2005
Beiträge: 230
zapate
Standard

@mristau2k5:

$text=preg_replace("/.*(http:\/\/.*)/","\\1",$text);
zapate ist offline  
 


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
Frage zu Session SmileMan PHP Tipps 2008 1 08.10.2007 11:22
Ein kleine Frage zum posten hier im Forum Kein Genie Off-Topic Diskussionen 3 20.03.2006 13:40
Frage zu Counter PHP Tipps 2006 1 17.02.2006 21:45
Access Frage - Datenbankverbindung abfragen reimondo Off-Topic Diskussionen 1 01.10.2005 18:24
Blöde Frage " oder ' FireFIghter PHP Tipps 2005-2 7 22.09.2005 07:06
[Erledigt] Einfache Frage! Datenbanken 2 21.09.2005 08:27
Frage zu Speicherreservierung in PHP FiSiHRO PHP Tipps 2005-2 4 13.09.2005 12:00
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
Technische Frage zur Realisation einer Online-Umfrage Stefano PHP Tipps 2005 5 16.03.2005 17:39
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Frage zur Formatierung von Text obi PHP Tipps 2004 1 03.11.2004 13:35
Frage zum Einfügen von Fotos PHP Tipps 2004 11 26.09.2004 14:28
[Erledigt] Frage! PHP Tipps 2004 4 27.07.2004 11:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
delphi strreplace, str_replace .jpg abschneiden, php str_replace wwenn genau stimmt, str_replace zeichen trennen, str_replace links, str_replace unterschiedliche länge

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:18 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.