0
숫자 대신 가변 인덱스를 사용할 때 SimpleXML 노드를 설정 해제하는 데 문제가 있습니다.
$highlights = new SimpleXMLElement($prj['project_xmldata']);
$node=$_POST['node'];
if(count($highlights->highlights->highlight)>0) {
unset($highlights->highlights->highlight[$node]);
print_r($highlights);
}
에서 print_r 성명의 내용은 여전히 원래 XML 데이터를 보여줍니다
다음은 SimpleXML을 호출 내 코드입니다. 그러나 변수$node
대신 숫자 인덱스를 사용하여 노드를 설정 해제 한 경우 올바른 응답을 얻지 만 설정을 해제 한 노드는 제거됩니다.
변수를 큰 따옴표로 캡슐화하고 $ _POST [ 'node'] 값이 올바른지 확인했습니다. 내가 잘못된 것을하고 있습니까, 아니면 변수를 대괄호 안에 넣을 수 있습니까? 당신이에 코드와 날이 말하는 것을 알려
그게 전부입니다! 나는 그것이 (is_numeric) 그것이 정수인지를 단순히 확인하는 것으로 생각했지만 여전히 문자열이었다. settype을 사용하여 작동시킬 수있었습니다. 도움을 많이 주셔서 감사합니다! –
굉장한 : D 나는 그것이 기뻤다. – trevorkavanaugh
엄지 손가락 :'is_numeric'은 거의 결코 당신이 원하는 기능이 아닙니다. 날 믿지 않니? 'is_numeric ("1.09e52")'을 시도하십시오. 즉, 이것은 SimpleXML이 Not Normal PHP가되는 또 다른 사례입니다. 실제 PHP 배열의 경우 '$ variable [0]'및'$ variable [ "0"]'이 가장 확실합니다 **는 ** 동일합니다. – IMSoP