aranan metnin içinde kesme / tek tırnak ile ilgili php xpath

0 Cevap php

Benim PHP komut dosyası, ben metin düğümleri aramak için XPath'i kullanıyorum. Ben bir kesme işareti ile bir kelime ararken - Her şey yolunda-dışında çalışır.

temelde benim kod bu gibi görünüyor

$keyword = $_GET['keyword'];
...snip...
$xml = simplexml_load_file($data);


 $search = strtolower($keyword);
 $upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 $lower = "abcdefghijklmnopqrstuvwxyz";

$nodes = $xml-xpath("//line[contains(translate(text(),'$upper','$lower'),'$search')]");

Yine, tüm yukarıdaki kodu harika çalışıyor - Ben düğümleri içinde dizeleri için arama yapabilirsiniz ve geri doğru sonuç almak.

However, if a node looks like this: <line number="23">Shall I compare thee to a summer's day?</line>

ve ben bir yaz gününde arayın ... Ben yukarıdaki $nodes on line hataları olsun. Ben "... Yazları" (hayır apos) için ararsanız Dahası, yukarıda satır eşleşmiyor. Yaz adlı içerir - geri dönmek için yukarıdaki satırı almak için tek yolu ... "yaz" için bir arama olacaktır.

Ben stripslashes, addslashes, tohellwithslashes, htmlspecialchars denedim ama hiçbir şey çalışır. Ayrıca, XPATH 1.0, Google, (bu PHP beri kullanmak zorunda değilim ki) göre ben bir kesme işareti kaçmak mümkün olmayacak. Cidden?

Yani burada dahi açmak, birileri bir apostraphe vardı PHP XPATH ile hareket için gerekli bir XML dosyası ile uğraşmak zorunda ZORUNLU! XPATH bu yapamıyorsan, ben bu düğüm dönmek için XPath almak için PHP ne yapabilirim?

0 Cevap