Jag kan inget om PHP :o så svara på detta inlägg precis så som ni ville ha svaret i början på eran PHP karriär ;)
Kan jag med PHP leta igenom en mapp med olika filer?
Om ja:
Skulle jag då kunna få se ett exempel på hur det skulle se ut.
mvh icaaq
17 svar · 729 visningar · startad av icaaq
Jag kan inget om PHP :o så svara på detta inlägg precis så som ni ville ha svaret i början på eran PHP karriär ;)
Kan jag med PHP leta igenom en mapp med olika filer?
Om ja:
Skulle jag då kunna få se ett exempel på hur det skulle se ut.
mvh icaaq
Jag återtupplivar denna tråd då rubriken stämmer överens med denna fråga.Jag har denna xml-fil:
[red]
<?xml version="1.0" encoding="utf-8" ?>
<master>
<mast artikelnummer="7772030" url="/parkstolpar_varm.html" />
<mast artikelnummer="7772031" url="/parkstolpar_kall.html" />
</master>[/red]
Och frågan lyder: Hur kan jag först och främst ta reda på om artikelnr finns i denna xml-fil? Finns artikelnr vill jag få ut det artikelnummrets url.
Nån som känner sig manad att hjälpa en nybörjare inom PHP?
mvh icaaq
Hur läser du dina XML-filer? Expat eller DOM, eller något annat?
Jag hittade ett exempel på PHPportalen, som såg ganska lätt ut.
http://www.phpportalen.net/moduler.php?modul=artikel&id=22
Jag tänkte använda den.....eller har du nån annan lösning som är lättare?
mvh icaaq
Jag har kommit en bit ....en väldigt liten bit men ändock en bit, frågan lyder nu
[red]:
function parseXML() {
global $XML_data;
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "elementData");
xml_parse($xml_parser, $XML_data);
xml_parser_free($xml_parser);
}
[/red]
Hur får jag in min XML-fil i $XML_data ?
mvh icaaq
JAg hoppar mellan exemplena.....och har nu hittat xmlize() istället men jag får det inte att fungera xmlize() ser ut så här
function xmlize($data) {
$data = trim($data);
$vals = $index = $array = array();
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $vals, $index);
xml_parser_free($parser);
$i = 0;
$tagname = $vals[$i]['tag'];
if ( isset ($vals[$i]['attributes'] ) )
{
$array[$tagname]['@'] = $vals[$i]['attributes'];
} else {
$array[$tagname]['@'] = array();
}
$array[$tagname]["#"] = xml_depth($vals, $i);
return $array;
}
och jag försöker anropa den så här:
$file = "mast.xml";
'här nedanför kommer felet
$master xmlize($file);
men jag får:
Parse error: parse error in /docs/phptest/topp.php on line 161
hur ska jag göra?
för mer info om xmlize kolla här
http://www.hansanderson.com/php/xml/
mvh icaaq
Det är inte omöjligt, men det kräver lite eftertanke och en del kod...
Hav tålamod - någon kommer säkert ha tid att hjälpa dig inom snart!
Här är en grundkod som kan användas för att ta reda på svaret till
Hur kan jag först och främst ta reda på om artikelnr finns i denna xml-fil? Finns artikelnr vill jag få ut det artikelnummrets url.
Vassego!
(antar data enligt http://www.webforum.nu/showthread.php?s=&postid=539451#post539451 )
<?php
function startElement($parser, $name, $attrs=''){
global $artikelnummer,$current_tag;
$current_tag=$name;
switch($name){
case 'MAST':
$artikelnummer[$attrs['ARTIKELNUMMER']]=$attrs['URL'];
break;
default:
break;
}
}
function endElement($parser, $name, $attrs=''){
global $current_tag;
switch($name){
default:
break;
}
}
function characterData($parser, $data){
global $current_tag;
switch($current_tag){
default:
break;
}
}
$xml_file = 'mast.xml'; // Du kan använda en URL här om du vill (och om din PHP-konfiguration tillåter;)
$type = 'UTF-8';
$xml_parser = xml_parser_create($type);
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
xml_set_element_handler($xml_parser, 'startElement','endElement');
xml_set_character_data_handler($xml_parser, 'characterData');
if (!($fp = fopen($xml_file, 'r'))) {
die("Could not open $xml_file for parsing!\n");
}
$current_index=0;
while ($data = fread($fp, 4096)) {
if (!($data = utf8_encode($data))) {
echo 'ERROR'."\n";
}
if (!xml_parse($xml_parser, $data, feof($fp))) {
die("XML error".xml_error_string(xml_get_error_code($xml_parser)));
}
}
xml_parser_free($xml_parser);
// Nu har du lagrat all info i array:en $artikelnummer.
// $artikelnummer[ett_nummer] = en_url
// Alla data i filen:
echo '<table border="1">';
foreach ( $artikelnummer as $key => $value ) {
echo "<tr>";
echo "<td>$key</td>";
echo "<td>$value</td>";
echo "</tr>\n";
}
echo'</table><hr>';
// Och ta reda på om ett visst artikelnummer finns:
$detduvillha = '7772031' ;
if ($artikelnummer[$detduvillha]) {
echo "$detduvillha".' = "'."$artikelnummer[$detduvillha]".'"';
}
?>
Jag är en slarvpelle - men *nu* stämmer koden iallafall :OO
jag får
XML errornot well-formed (invalid token)
nu ser koden ut så här:
http://member.webforum.nu/1029/test2.txt
mvh icaaq
Det var min XML som f[rr sig en snyting...nu funkar det.....
[redigerad]
Jaha - du hade löst problemet medan jag skrev att det nog var XML-filen på mitt som vanligt ganska omständiga vis :e :birp
Jag har ett litet problem bara, hur göra jag för att include:a URL:en?
på denna sektion menar jag:
$detduvillha = '7772031' ;
if ($artikelnummer[$detduvillha]) {
//här vill jag include:a $detduvillhas URL
echo "$detduvillha".' = "'."$artikelnummer[$detduvillha]".'"';
}
mvh icaaq
Läs lite på http://www.php.net/manual/en/features.remote-files.php ;)