FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Mycket flitig postare
|
Hejsan. Sitter med str_replace(), men blir inte som jag vill..
Jag har en xml fil som jag hämtar data från, bla. en url. url'en är med å ä ö, vilket gör att jag inte kan använda simplehtmldom.. Så jag tänkte att jag skulle försöka byta ut å, ä, ö till %C3%A5, %C3%A4, %C3%B6.. Men får inte till det riktigt..hm PHP-kod:
Jag är medveten om att $real_url alltid kommer att innehålla å ä ö, men jag vill ju att $new_url ska bli utan å ä ö, och istället innehålla de tecknen jag angivit i str_replace skriptet.. http://nelly.com/se/kläder-för-kvinn...top-676373-99/Det där är url'en som jag vill ha omgjord, men går inte för mig :P Någon med förslag? PS. om jag skriver url'en för hand istället för att hämta ut den från XML filen, då blir det rätt. alltså: PHP-kod:
tack |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Har WN som tidsfördriv
|
PHP-kod:
|
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Mycket flitig postare
|
Smart, men fungerade inte riktigt..hm
Får felmeddelande: Warning: file_get_contents(http%3A%2F%2Fnelly.com%2Fse%2Fkl %C3%A4der-f%C3%B6r-kvinnor%2Fsportkl%C3%A4der%2Ftr%C3%B6jor%2Froxy-169%2Fbeach-brights-zipper-169086-54%2F) [function.file-get-contents]: failed to open stream: No such file or directory in C:\Program Files\xampp\htdocs\reaplagg\admin\includes\simple_ html_dom.php on line 70Det verkar fungera bra om jag skriver url'en manuellt. såhär: echo getOrgPrice('http://nelly.com/se/kläder-för-kvinnor/sportkläder/sport-bh/filippa-k-soft-sport-2123/yoga-bra-top-676373-99/'); Men så fort jag använder en variabel istället för klartext så fungerar det inte :S såhär ser det ut med en variabel: echo getOrgPrice($new_url); Använder jag urlencode() runt $real_url och lägger in det i $new_url så blir det felmeddelande. Använder jag $real_url direkt i funktionen istället för $new_url, så händer ingenting.. Inga felmeddelanden, men inga siffror syns heller.. hm. Såhär ser min funktion ut: PHP-kod:
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
Du ska inte URL-encoda "http://"
|
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Mycket flitig postare
|
Är det det som gör att min kod failar.. hm.
Ska testa detta! Kommer säkert göra något jävligt onödigt nu :P Men återkommer! |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Mycket flitig postare
|
Nu fungerar det.. Men jag kanske är onödig i min kod? Ser ni om jag kanske kan städa upp på något sätt? :P
PHP-kod:
|
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Flitig postare
|
För att ta bort "http://" hade jag använt substr istället --> http://php.net/manual/en/function.substr.php
Edit: substr_replace borde passa det du behöver perfekt --> http://www.php.net/manual/en/functio...tr-replace.php Senast redigerad av P3N den 2012-07-28 klockan 13:33 |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Mycket flitig postare
|
Använder nu substr för http, fungerade fint.
Förstår mig dock inte på substr_replace.. jag är en nybörjare inom php tyvärr. |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Flitig postare
|
Jag hade fel om "substr_replace". Den byter bara ut på fasta positioner i strängen som man anger. Fick för mig att den kunde köra replace inom ett visst område ifall det blir "träff" men så var det ju inte.
Men "substr" är användbart till detta iallafall ![]() Senast redigerad av P3N den 2012-07-28 klockan 14:53 |
||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Mycket flitig postare
|
Japp tack!!
![]() Det ända jobbiga nu är att, det tar typ en timme att hämta datan från nellys sida till varje produkt, eftersom att det är typ, 2000 produkter (minst).. haha Men men, vill man ha det på bästa sätt för sina användare, så får man stå ut med väntetiden.. Man kanske kan göra som så att, man hämtar all data från xml filen först, och sätter in det i databasen. sen i en kolumn har man typ "ny" med en 0a eller 1a. 0 = produkten fanns redan i databasen 1 = produkten är ny så första gången man kör skriptet så är alla produkter nya. nästa vecka när man uppdaterar databasen så gör man om alla produkter till 0, och om en produkt som finns i xml redan finns i databasen så stannar 0a kvar. om en produkt finns i xml filen men inte i databasen så får den en 1a. sen när uppdateringen är klar så körs scrapingen på alla produkter med en 1a. då slipper man scrapa på alla produkter som faktiskt redan har original priset.. ![]() viktigt dock kanske att, alla som har en 1a i kolumnen "ny" har en 0a i kolumen "visible". Hämtar nämligen ut alla prudkter med visibile = 1 och när scrapingen är klar, så sätts visible = 1 ![]() ajaa, får sitta och laborera osv :P Jag är rätt ny inom php som sagt, så detta projekt är till för att lära mig mest :P tack för all hjälp! |
||
![]() |
![]() |
Svara |
|
|