abfrage ob link mit oder ohne http eingegeben wurde
peter
- php
guten abend,
ich lese aus einer datenbank url´s aus und gebe sie auch aus. das funktioniert auch. jedoch hab ich da ein kleines problem. bei manchen url´s steht vor ein http und bei manchen nicht.
ich würde jetzt gerne abfragen, ob das http vorhanden ist und wenn nicht soll er es davorsetzen.
meine kenntnisse sind eher begrenzt muss ich schonmal dazusagen.
mit diesem projket versuche ich gerde mir ein paar sachen beizubringen.
viele grüße
peter
Hi,
ich würde jetzt gerne abfragen, ob das http vorhanden ist und wenn nicht soll er es davorsetzen.
meine kenntnisse sind eher begrenzt muss ich schonmal dazusagen.
Dann erweitere sie hier: http://www.php.net/manual/en/ref.strings.php
MfG ChrisB
Hallo,
Dann erweitere sie hier: http://www.php.net/manual/en/ref.strings.php
Und da konkret http://www.php.net/manual/en/function.substr.php
Mit Hilfe dessen kannst du den Anfang des Strings mit "http://" bzw. "https://" vergleichen und falls es fehlt einfach davor dazulegen.
Jeena
also ich verstehe es noch cniht so ganz. er gibt mir nicht die ersten zeichen aus.
ich dachte jetzt, dass iche ine if abfrage machen kann. also sind die ersten zeichen http:// dann nicht hinzufügen sonst hinzufühgen.
aber das geht dann ja nicht
grüsse peter
ich komme der sache näher:
<?php
$ergebnis = mysql_query($abfrage);
?>
<?
$abfrage = "SELECT url FROM funtstuecke ORDER BY tag DESC";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$string = "$row->url;";
$string = substr($string, 0, 7);
echo $string;
if($string; == "http://")
{
echo "$row->url;";
}
else
{
echo "$string;'$row->url;'";
}
}
?>
allerdings ist da irgendwo ein fehler drin.
es funktioniert nicht. aber wenn ich mir den substr alleine anzeigen lasse passt es.
Probiers mal so:
...
if($string == "http://")
{
echo "$row->url;";
}
else
{
echo "http://".$row->url;
}
...
kürzer wäre das hier:
...
if($string != "http://") echo "http://"; // Wenn http nicht vorhanden ausgeben...
echo "$row->url;"; // Der Rest der URL
...
Gruß
Frank
vielen dank.
es funktioniert.
viele gruesse
peter
Falls du es noch liesst, es funktioniert zwar, schöner wäre jedoch folgendes:
...
if($string == "http://")
{
echo $row->url;
}
else
{
echo "http://".$row->url;
}
...
...
if($string != "http://") echo "http://";
echo $row->url;
...
Die Semikolon's haben da nichts zu suchen und die Anführungszeichen gehören da auch nicht hin ;)
Gruß
Frank
if($string; == "http://")
--------------^
{
echo "$row->url;";
wieso nicht simpel
echo $row->url;
}
[/code]
mfg Beat
ich hab da mal etwas versucht:
<?php
if ( substr("$row->url;",0,7)=='http://')
{
echo "$row->url;";
}
else
{
echo "http://""$row->url;";
}
?>
ist der ansatz richtig?
Hi,
echo "$row->url;";
}
else
{
echo "http://""$row->url;";
ist der ansatz richtig?
Lerne bitte, mit Zeichenketten in PHP umzugehen.
Dazu gehört auch, Variablen nicht unsinnigerweise in solche zu packen, wenn es gar nicht notwendig ist.
MfG ChrisB
Mahlzeit peter,
zusätzlich zu den anderen hilfreichen Hinweisen möchte ich noch gerne eine Anmerkung loswerden.
bei manchen url´s steht vor ein http und bei manchen nicht.
Das ist nicht korrekt. Nur bei den Zeichenketten, bei denen ein "http://" (oder "https://", "ftp://" o.ä.) davorsteht, handelt es sich um gültige URL - bei den anderen hingegen nicht ... das sind offenbar lediglich irgendwelche mehr oder weniger zufälligen Zeichenketten.
MfG,
EKKi