$results = simplexml_load_string($results);
foreach($results as $result){
$result_title = $result->label;
$result_title = preg_replace('#[^a-zA-Z]+Extra Title#', '', $result_title);
$result_title = ltrim($result_title);
最初の preg_replace は、$result->label (XML オブジェクトとして var_dumps) の末尾にあるパターンを取り除き、XML オブジェクトではなく文字列を出力します。
preg_replace は文字列に対してのみ機能し、XML オブジェクトに対しては機能しないと思っていたので、これは驚くべきことです。$resultの Avar_dump
は以下を明らかにします:
object(SimpleXMLElement)#1003 (1) { [0]=> string(31) " Some Text > Extra Title" }
「Some Text」の前の余分な空白に注意してください。ただし、 2 番目の場合、次のltrim($result_title);
エラーが発生します。
キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド 'suggest' がありません
それで、私は何を扱っていますか?文字列かオブジェクトか? また、空白を削除するにはどうすればよいですか?
最初の空白に対して preg_replace を試行しても、上記と同じエラーが出力されます。
$result_title = preg_replace('/\s/', '', $result_title, 1);