私はhtmlファイルを解析しています。基本的にスクリプトである大きな文字列があります。文字列は次のようになります。
productId":"12666","chooseText":"オプションを選択...","taxConfig":{"includeTax":true,"showIncludeTax":true,"showBothPrices":false,"defaultTax":19.6,"currentTax ":19.6,"inclTaxTitle":"税込 Tax"}}); var colorarray = new Array();
colorarray["c650"] = 'blush'; Event.observe('attribute698', 'change', function() { var colorId = $('attribute698').value; var attribute = 'attribute698'; var label = colorarray["c"+colorId]; if ($('attribute698').value != '') { setImages(attribute, colorId, label); } }); // var currentColorLabel = 'blush'; // var currentSku = '5010-4-n'; // var currentPosition = 'v'; // //
Event.observe(window, 'load', function() { //
setImages('attribute698', null, currentColorLabel); // });
最初の "(" から最初の ";" までのコンテンツを抽出する必要があります。と問題。
$strScript = $tagscript->item(0)->nodeValue;
//this line returns empty string
$str_slashed = addslashes(trim($strScript) );
$pattern = '/\((.*);/';
preg_match($pattern,$str_slashed,$matches);
echo 'matches'."<br />";
var_dump($matches);
//Add slashes works only if I use it before assignment to other string
$matches = array();
$strScript = addslashes ($tagscript->item(0)->nodeValue);//. "<br />";
$pattern = '/\((.*);/';
preg_match($pattern,$strScript,$matches);
echo 'matches'."<br />";
var_dump($matches);
//str extract method
$posBracket = stripos ($strScript,'(');
echo $posBracket."<br />";
$posSemiColon = strpos ($strScript,';');
echo $posSemiColon."<br />";
$temp = mb_substr ($strScript,$posBracket ,($posSemiColon-$posBracket));
echo $temp."<br />";
上記のコードは小さな文字列に対して機能します
$strScript = "manisha( [is goo girl] {come(will miss u) \and \"play} ; lets go home;";
しかし、長い文字列では機能しません。どうすればこの問題を解決できますか?助けてください!