ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
1431
1431
EMPFEHLEN
-
10.07.09 18:38 #1
Ich möchte gerne das letzte Zeichen eines Strings auslesen lassen.
Mein Problem
Ich überprüfe mit fsockopen ob bestimmte Links erreichbar sind, auf localhost alles kein Problem, nur online auf meinem Server zeigt er mir bei allen Adressen mit / am Ende das er sie nich erreicht.
Jetzt bräuchte ich ne Möglichkeit dieses / am Ende (falls vorhanden) zu erkennen und zu löschen (löschen kann ich brauch nur wie mans erkennt).
Ich kanns nicht komplett entfernen (str_replace) oder spliten (explode), da teilweise auch Seiten in Unterordnern als Link vorhanden sind - diese würden dann nicht mehr funktionieren.^-_-^Mata ne
Supercat1510
-
PHP-Code:
while ($string[strlen($string)-1] === '/') {
$string = substr($string, 0, -1);
}
// oder
$string = rtrim($string, '/');
Markus Wulftange
-
10.07.09 18:44 #3
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Hi,
Sollte funktionieren.PHP-Code:$url = "http://some.url.com/";
if($url[ strlen($url) - 1 ] == '/' )
$url[ strlen($url) - 1 ] = '';
echo $url;
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Wie "löscht" du denn das letzte Zeichen?
Das wird mit Sicherheit auch der Weg sein um es zu erkennen.
Du verwendest sicherlich substr. Dann kannst damit auch "löschen".
Hier mal beides:
Edit:PHP-Code:if (substr($str, -1) == "/")
{
$str = substr($str, 0, strlen($str) - 2);
}
Ohne es zu testen, denke ich das man so nicht auf Strings schreiben kann. Das Lesen geht.Geändert von ZodiacXP (10.07.09 um 18:52 Uhr)
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
10.07.09 18:51 #5
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Habe darüber kurz nachdenken müssen und denke den Grund gefunden zu haben:
Es ist nachvollziehbar warum PHP das macht.
Ein String ist ein Array von Zeichen, so wie man es aus anderen Sprachen (Java, C, C++) etc. kennt. Von daher kann man über diesen Weg lesen und schreiben.
Ein "leeres Zeichen" macht folgendes:PHP-Code:$s = "Dies ist ein Text.";
$s[15] = "S";
echo $s; // Ausgabe: Dies ist ein TeSt.
Das kann jeder gern nachprüfen, hiermit:PHP-Code:$s = "Dies ist ein Text.";
$s[15] = "";
// ist gleichbedeutent mit
$s [15] = chr(0);
// also ein vorhandenes Zeichen
Von daher geht deine Variante. Hatte ich mich geirrt. Aber wir beide wissen jetzt, dass das Zeichen nicht gelöscht wurde sondern durch ein anderes ersetzt.PHP-Code:$s = "foo";
$s[0] = "";
$s[1] = chr(0);
echo ord($s[0]) . " = " . ord($s[1]);
Geändert von ZodiacXP (10.07.09 um 19:09 Uhr)
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
Eine leere Zeichenkette und eine Zeichenkette nur bestehend aus dem Zeichen 0x00 ist nicht dasselbe!
PHP-Code:$str1 = "";
$str2 = chr(0);
var_dump($str1 === $str2);
Markus Wulftange
-
Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!
MfG, Zod
__________________
rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)
-
10.07.09 23:29 #9
Hab jetz mal das von Saftmeister modifiziert - das von Zodiac wollte nich richtig laufen.
Habs jetz so gelöst:
Ich habs über den Umweg mit * gemacht, da er mir ohne das ein Fragezeichen in ner Raute gebracht hat.PHP-Code:if($addy[strlen($addy) - 1] == '/' ) {
$addy[strlen($addy) - 1] = "*";
}
$addy = str_replace("*", "", $addy);
$addy = explode("?", str_replace("http://", "",$addy));
if(@fsockopen ($addy[0], 80, $errno, $errstr, 30) != FALSE){
echo $ok;
}
else {
echo $wrong;
}
Funktioniert jetz bei mir wie ichs wollte
^-_-^Mata ne
Supercat1510
Ähnliche Themen
-
Sed - letztes Vorkommen eines Strings
Von OnePixel im Forum Linux & UnixAntworten: 11Letzter Beitrag: 26.02.10, 11:32 -
letztes Zeichen eines Formulars
Von ChrisDongov im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 12.04.05, 18:58 -
PHP - Letztes Zeichen eines Dateinamens auslesen!
Von anearlycascade im Forum PHPAntworten: 1Letzter Beitrag: 30.11.04, 17:29 -
Erste x Zeichen eines Strings formatieren
Von raspunicum im Forum PHPAntworten: 4Letzter Beitrag: 06.09.04, 16:50 -
bestimmtes Zeichen am ende eines Strings
Von Rodney im Forum PHPAntworten: 2Letzter Beitrag: 29.10.03, 13:05





Zitieren


Grundsätzlich scheint es jedoch zu funktionieren. Nehme ich statt dem Leerstring einen gültigen Buchstaben bspw. "a", funktioniert das. Seltsam nicht?
Login






[PHP][Snippet] Array zu XML konvertieren