14. august 2003 - 20:38
Der er
63 kommentarer og 3 løsninger
find kilde.
Hejza. har et mærkelig spm :D. skal bruge en kode som henter et dokument (html/txt) og skal kunne søge i den. Det skal finde et sted hvor der eks stor navn ="rasmus"; og ligger rasmus ned i en variabel.. Kan nogen det?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
14. august 2003 - 20:41
#1
$data = file_get_contents("URL_TIL_FILEN"); $namePos = strpos($data, "navn =")+7; $nameStr = substr( $str, $namePos ); $name = substr( $nameStr, 0, strpos($nameStr, "\"") ); så skulle rasmus gerne være i $name;
14. august 2003 - 20:43
#2
namePos = strpos($data, "navn =")+7; --> +7 ? skal det være noget andet hvis det inden er i lægere?
14. august 2003 - 20:43
#3
omend jeg er sikker på at det kan gøres mere elegant via regExp osv -- eller hvis PHP har et funktionsbibliotek til håndtering af key="value" data...
14. august 2003 - 20:47
#4
jeg for altså fejl...:
Fatal error: Call to undefined function: file_get_contents() in c:\inetpub\wwwroot\rasmus\12send\test.php on line 2
Linjien er som eks.:
www.rasmusmadsen.dk/test/index.php?id=20 Kan du klare den?
14. august 2003 - 20:47
#5
namePos markerer starten på strengen [navn ="rasmus".........] da vi først skal læse fra efter det første " ,så skal vi 7 pladser fremad n a v n _ = " r a s m u s " 1 2 3 4 5 6 7| resultatet er at $nameStr bliver rasmus" ..... den sidste kommando $name = substr( $nameStr, 0, strpos($nameStr, "\"") ); skærer alt efter " væk så vi står tilbage med rasmus
14. august 2003 - 20:48
#6
jeg for altså fejl...:
Fatal error: Call to undefined function: file_get_contents() in c:\inetpub\wwwroot\rasmus\12send\test.php on line 2
Linjien er som eks.:
www.rasmusmadsen.dk/test/index.php?id=20 Kan du klare den?
14. august 2003 - 20:48
#7
må jeg se php-koden, hvor du bruger file_get_contents
14. august 2003 - 20:51
#8
<?php
$her = "
http://80.160.115.22/rasmus/mere.php?id=2"; echo $her;
$data = file_get_contents($her);
$namePos = strpos($data, "navn =")+7;
$nameStr = substr( $str, $namePos );
$name = substr( $nameStr, 0, strpos($nameStr, "\"") );
echo $name;
?>
14. august 2003 - 20:52
#9
hmmm .. har lige opdaget at file_get_contents() er en forholdsvis ny funktion ... men her er et workarround : function file_get_contents($filename, $use_include_path=0) { /* reads out the complete contents of $filename */ $handle = fopen ($filename, "r",$use_include_path); $contents = fread ($handle, filesize ($filename)); fclose ($handle); return $contents; } som du bare føjer ind i dit script _inden_ du bruger file_get_contents()
14. august 2003 - 20:53
#10
så din kode vil blive
<?php
function file_get_contents($filename, $use_include_path=0) {
/* reads out the complete contents of $filename */
$handle = fopen ($filename, "r",$use_include_path);
$contents = fread ($handle, filesize ($filename));
fclose ($handle);
return $contents;
}
$her = "
http://80.160.115.22/rasmus/mere.php?id=2"; echo $her;
$data = file_get_contents($her);
$namePos = strpos($data, "navn =")+7;
$nameStr = substr( $str, $namePos );
$name = substr( $nameStr, 0, strpos($nameStr, "\"") );
echo $name;
?>
14. august 2003 - 20:55
#12
ohh .. lige et hurtigt fix-up
<?php
function file_get_contents($filename, $use_include_path=0) {
/* reads out the complete contents of $filename */
$handle = fopen ($filename, "r",$use_include_path);
$contents = fread ($handle, filesize ($filename));
fclose ($handle);
return $contents;
}
$her = "
http://80.160.115.22/rasmus/mere.php?id=2"; echo $her;
$data = file_get_contents($her);
$namePos = strpos($data, "navn =")+7;
$nameStr = substr( $data, $namePos );
$name = substr( $nameStr, 0, strpos($nameStr, "\"") );
echo $name;
?>
14. august 2003 - 20:57
#14
hvad version af php bruger du...
14. august 2003 - 20:57
#15
ingen ide.. :( hvordan finder jeg ud af det? sorry hvis det lyder dumt..
14. august 2003 - 20:58
#16
prøver lige det mit dominw.. to sec..
14. august 2003 - 21:00
#17
14. august 2003 - 21:06
#18
nogen ideR?
14. august 2003 - 21:06
#19
14. august 2003 - 21:07
#20
den er tilbage igen.. prøvede lige at omdåbe den til txt, for at se om fejlen var der..
14. august 2003 - 21:07
#21
14. august 2003 - 21:08
#22
jeg kan fint nok hente "rasmus" ud -- har du fundet ud af, hvad din php-version er...
14. august 2003 - 21:09
#23
nej ved du nogen jeg finder ud af det?
14. august 2003 - 21:09
#24
prøv at lav en fil med følgende indhold <?php phpinfo(); ?> så får du det at vide
14. august 2003 - 21:12
#25
php 4 kan det passe?
14. august 2003 - 21:13
#26
hvad har du?
14. august 2003 - 21:18
#27
kunne du hjælpe mig videre?
14. august 2003 - 21:26
#28
har prøvet en anden kode (en helt anden) som også åber en dokument, lavet til word. Den kan heller ikke finde filen :( er det min com?
14. august 2003 - 21:35
#29
Kunne det tænkes du ikke har slået fopen wrapper til i din php.ini? Prøv og tjekke denne linie: allow_url_fopen = On
14. august 2003 - 21:36
#30
; Whether to allow the treatment of URLs (like http:// or ftp://) as files. allow_url_fopen = On står der hos mig, hvad skal der stå?
14. august 2003 - 21:37
#31
Den skulle være ok.
14. august 2003 - 21:39
#32
detox --> hvad for en? den med on?
14. august 2003 - 21:43
#33
Ja
14. august 2003 - 21:43
#34
ok.. har du andre ider?
14. august 2003 - 21:46
#35
bearhugx --> har du nogen ider?
14. august 2003 - 21:49
#36
Det her virker her, hvis jeg har forstået spørgsmålet:
<?
function contents($filename, $use_include_path=0) {
/* reads out the complete contents of $filename */
$handle = fopen ($filename, "r",$use_include_path);
$contents = fread ($handle, 20000);
fclose ($handle);
return $contents;
}
$her = "
http://80.160.115.22/rasmus/mere.php?id=2"; echo $her;
$data = contents($her);
$namePos = strpos($data, "rasmus");
$name = substr($data, $namePos, 6 );
echo "<br />" . $name;
?>
14. august 2003 - 21:50
#37
det virker.. .Hurra........ Svar lige... Jes man
14. august 2003 - 21:52
#38
nej der lille fejl i den kode.. Jeg ved ikke hvad navnet er. $namePos = strpos($data, "rasmus"); det skal den finde... det vil være forskelligt.. kan du klare den?
14. august 2003 - 21:54
#39
detox.. du leder efter "rasmus" i teksten, trækker "rasmus" ud.. lol for en omvej for at udskrive rasmus :o)
14. august 2003 - 21:55
#40
squashguy --> hvis du læser spm vil du se det ikke er det jeg vil..
14. august 2003 - 21:55
#41
yep, i know.. det var bare en bemærkning til detox :)
14. august 2003 - 21:56
#42
detox --> er du der endnu? der stadig denne lille fejl :(
14. august 2003 - 21:59
#43
var lige væk - havde nogle andre ting at se til...
14. august 2003 - 22:00
#44
prøv denne preg_match("/name=\"(.*)\"/", $str, $match); $name = $match[1];
14. august 2003 - 22:01
#45
jeg har php 4.3 -- og da fopen også tidligere end ver. 4 har skulle kunne klare åbning af http://, så kan jeg ikke forstå, hvorfor den ikke vil åbne URL'en i $her -- kan det være at det har noget med at der er ?id=2 i ????
14. august 2003 - 22:01
#46
er ikke så god til det.. hvor?
14. august 2003 - 22:01
#47
i forhold til detoxs eksempel: preg_match("/navn=\"(.*)\"/", $data, $match); $name = $match[1];
14. august 2003 - 22:03
#48
fejl i linje 17 preg_match("/navn=\"(.*)\"/", $data, $match); koden:
<?
function contents($filename, $use_include_path=0) {
/* reads out the complete contents of $filename */
$handle = fopen ($filename, "r",$use_include_path);
$contents = fread ($handle, 20000);
fclose ($handle);
return $contents;
}
$her = "
http://80.160.115.22/rasmus/mere.php?id=2"; echo $her;
$data = contents($her);
$namePos = strpos($data, "rasmus");
$name = substr($data, $namePos, 6 );
preg_match("/navn=\"(.*)\"/", $data, $match);
$name = $match[1];
echo "<br />" . $name;
?>
14. august 2003 - 22:07
#49
hmm, kunne heller ikke lige se logikken ;-)
<?
function contents($filename, $use_include_path=0) {
/* reads out the complete contents of $filename */
$handle = fopen ($filename, "r",$use_include_path);
$contents = fread ($handle, 20000);
fclose ($handle);
return $contents;
}
$her = "
http://80.160.115.22/rasmus/mere.php?id=2"; echo $her;
$data = contents($her);
preg_match("/navn=\"(.*)\"/", $data, $match);
$name = $match[1];
echo "<br />" . $name;
?>
Men den finder ikke noget der passer til regexp'en.
14. august 2003 - 22:08
#50
den melder fejl i linje 17
14. august 2003 - 22:09
#51
tilpasset så der må være mellemrum preg_match("/name *= *\"([^\"]*)/", $str, $match); $name = $match[1];
14. august 2003 - 22:09
#52
Sådan her:
<?
function contents($filename, $use_include_path=0) {
/* reads out the complete contents of $filename */
$handle = fopen ($filename, "r",$use_include_path);
$contents = fread ($handle, 20000);
fclose ($handle);
return $contents;
}
$her = "
http://80.160.115.22/rasmus/mere.php?id=2"; echo $her;
$data = contents($her);
preg_match("/navn = \"(.*)\"/", $data, $match);
$name = $match[1];
echo "<br />" . $name;
?>
14. august 2003 - 22:09
#53
ja takker... MEGET.. hvem skal have points?
14. august 2003 - 22:10
#54
squashguy-> hehe, det er du skrap til!
14. august 2003 - 22:11
#55
Tja, måske hvis vi kunne dele den i tre.
14. august 2003 - 22:11
#56
jeg vil sige at squashguys metode med regExp er langt mere "nice" end mit substring-lir :-)
14. august 2003 - 22:15
#57
nu er mere.php: <?php echo "hejza"; ?> <SCRIPT LANGUAGE=JAVASCRIPT> <!-- navn ="claus"; //--> </SCRIPT> Så kan den ikke finde navnet.. Kan man lave om på det?
14. august 2003 - 22:15
#58
Ja, det er vidst en god idé at beherske de der regexp!
14. august 2003 - 22:18
#59
Med squashguy's sidste rettelse:
<?
function contents($filename, $use_include_path=0) {
/* reads out the complete contents of $filename */
$handle = fopen ($filename, "r",$use_include_path);
$contents = fread ($handle, 20000);
fclose ($handle);
return $contents;
}
$her = "
http://80.160.115.22/rasmus/mere.php?id=2"; echo $her;
$data = contents($her);
preg_match("/navn *= *\"(.*)\"/", $data, $match);
$name = $match[1];
echo "<br />" . $name;
?>
14. august 2003 - 22:18
#60
preg_match("/navn\s*=\s*\"(.*)\"/", $data, $match);
14. august 2003 - 22:21
#61
takker svarer i to andre?
14. august 2003 - 22:22
#62
korrekt, regulære udtryk styrer :) svar
14. august 2003 - 22:23
#63
squashguy >> vil både " *" og "\s*" fange 0+ spaces ???
14. august 2003 - 22:25
#64
ja. \s vil dog fange alle white spaces.
14. august 2003 - 22:29
#65
well.. jeg har små sommerfugle i maven - det er første gang at jeg har kunne kigge på et regExp udtryk og så fatte præcis, hvordan det fungerer - unden at skulle slå en masse op :-))) men der går nok et stykke tid før jeg selv kan hive sådanne ud af ærmet selv :-)
14. august 2003 - 22:32
#66
c",)
Vi tilbyder markedets bedste kurser inden for webudvikling